Store WorldObject location in a Location object.
This commit is contained in:
parent
75e8deebad
commit
3227e80226
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -123,7 +123,7 @@ public class BoatData implements IXmlReader
|
|||||||
|
|
||||||
final CreatureTemplate template = new CreatureTemplate(npcDat);
|
final CreatureTemplate template = new CreatureTemplate(npcDat);
|
||||||
final Boat boat = new Boat(IdManager.getInstance().getNextId(), template);
|
final Boat boat = new Boat(IdManager.getInstance().getNextId(), template);
|
||||||
boat.getPosition().setHeading(set.getInt("heading"));
|
boat.getLocation().setHeading(set.getInt("heading"));
|
||||||
boat.setXYZ(set.getInt("spawnX"), set.getInt("spawnY"), set.getInt("spawnZ"));
|
boat.setXYZ(set.getInt("spawnX"), set.getInt("spawnY"), set.getInt("spawnZ"));
|
||||||
boat.setPathA(set.getInt("pathIdA"), set.getInt("ticketA"), set.getInt("xTeleNoTicketA"), set.getInt("yTeleNoTicketA"), set.getInt("zTeleNoTicketA"), set.getString("announcerA"), set.getString("message10A"), set.getString("message5A"), set.getString("message1A"), set.getString("message0A"), set.getString("messageBeginA"), paths.get(set.getInt("pathIdA")));
|
boat.setPathA(set.getInt("pathIdA"), set.getInt("ticketA"), set.getInt("xTeleNoTicketA"), set.getInt("yTeleNoTicketA"), set.getInt("zTeleNoTicketA"), set.getString("announcerA"), set.getString("message10A"), set.getString("message5A"), set.getString("message1A"), set.getString("message0A"), set.getString("messageBeginA"), paths.get(set.getInt("pathIdA")));
|
||||||
boat.setPathB(set.getInt("pathIdB"), set.getInt("ticketB"), set.getInt("xTeleNoTicketB"), set.getInt("yTeleNoTicketB"), set.getInt("zTeleNoTicketB"), set.getString("announcerB"), set.getString("message10B"), set.getString("message5B"), set.getString("message1B"), set.getString("message0B"), set.getString("messageBeginB"), paths.get(set.getInt("pathIdB")));
|
boat.setPathB(set.getInt("pathIdB"), set.getInt("ticketB"), set.getInt("xTeleNoTicketB"), set.getInt("yTeleNoTicketB"), set.getInt("zTeleNoTicketB"), set.getString("announcerB"), set.getString("message10B"), set.getString("message5B"), set.getString("message1B"), set.getString("message0B"), set.getString("messageBeginB"), paths.get(set.getInt("pathIdB")));
|
||||||
|
@ -127,13 +127,13 @@ public class ItemsOnGroundManager
|
|||||||
item.setEnchantLevel(result.getInt(4));
|
item.setEnchantLevel(result.getInt(4));
|
||||||
}
|
}
|
||||||
|
|
||||||
item.getPosition().setWorldPosition(result.getInt(5), result.getInt(6), result.getInt(7));
|
item.setXYZ(result.getInt(5), result.getInt(6), result.getInt(7));
|
||||||
item.getPosition().setWorldRegion(World.getInstance().getRegion(item.getLocation()));
|
item.setWorldRegion(World.getInstance().getRegion(item.getLocation()));
|
||||||
item.getPosition().getWorldRegion().addVisibleObject(item);
|
item.getWorldRegion().addVisibleObject(item);
|
||||||
item.setDropTime(result.getLong(8));
|
item.setDropTime(result.getLong(8));
|
||||||
item.setProtected(result.getLong(8) == -1);
|
item.setProtected(result.getLong(8) == -1);
|
||||||
item.setSpawned(true);
|
item.setSpawned(true);
|
||||||
World.getInstance().addVisibleObject(item, item.getPosition().getWorldRegion(), null);
|
World.getInstance().addVisibleObject(item, item.getWorldRegion(), null);
|
||||||
_items.add(item);
|
_items.add(item);
|
||||||
count++;
|
count++;
|
||||||
// add to ItemsAutoDestroy only items not protected
|
// add to ItemsAutoDestroy only items not protected
|
||||||
|
@ -25,16 +25,16 @@ import org.l2jmobius.commons.util.Point2D;
|
|||||||
*/
|
*/
|
||||||
public class Location extends Point2D
|
public class Location extends Point2D
|
||||||
{
|
{
|
||||||
public static final Location DUMMY_LOC = new Location(0, 0, 0);
|
|
||||||
|
|
||||||
protected volatile int _z;
|
protected volatile int _z;
|
||||||
protected volatile int _heading;
|
protected volatile int _heading;
|
||||||
|
protected volatile int _instanceId;
|
||||||
|
|
||||||
public Location(int x, int y, int z)
|
public Location(int x, int y, int z)
|
||||||
{
|
{
|
||||||
super(x, y);
|
super(x, y);
|
||||||
_z = z;
|
_z = z;
|
||||||
_heading = 0;
|
_heading = 0;
|
||||||
|
_instanceId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location(int x, int y, int z, int heading)
|
public Location(int x, int y, int z, int heading)
|
||||||
@ -42,11 +42,12 @@ public class Location extends Point2D
|
|||||||
super(x, y);
|
super(x, y);
|
||||||
_z = z;
|
_z = z;
|
||||||
_heading = heading;
|
_heading = heading;
|
||||||
|
_instanceId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location(WorldObject obj)
|
public Location(WorldObject obj)
|
||||||
{
|
{
|
||||||
this(obj.getX(), obj.getY(), obj.getZ(), obj.getPosition().getHeading(), obj.getInstanceId());
|
this(obj.getX(), obj.getY(), obj.getZ(), obj.getHeading(), obj.getInstanceId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location(int x, int y, int z, int heading, int instanceId)
|
public Location(int x, int y, int z, int heading, int instanceId)
|
||||||
@ -54,6 +55,7 @@ public class Location extends Point2D
|
|||||||
super(x, y);
|
super(x, y);
|
||||||
_z = z;
|
_z = z;
|
||||||
_heading = heading;
|
_heading = heading;
|
||||||
|
_instanceId = instanceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location(StatSet set)
|
public Location(StatSet set)
|
||||||
@ -61,6 +63,7 @@ public class Location extends Point2D
|
|||||||
super(set.getInt("x", 0), set.getInt("y", 0));
|
super(set.getInt("x", 0), set.getInt("y", 0));
|
||||||
_z = set.getInt("z", 0);
|
_z = set.getInt("z", 0);
|
||||||
_heading = set.getInt("heading", 0);
|
_heading = set.getInt("heading", 0);
|
||||||
|
_instanceId = set.getInt("instanceId", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -132,12 +135,36 @@ public class Location extends Point2D
|
|||||||
_heading = heading;
|
_heading = heading;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the instance Id.
|
||||||
|
* @return the instance Id
|
||||||
|
*/
|
||||||
|
public int getInstanceId()
|
||||||
|
{
|
||||||
|
return _instanceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the instance Id.
|
||||||
|
* @param instanceId the instance Id to set
|
||||||
|
*/
|
||||||
|
public void setInstanceId(int instanceId)
|
||||||
|
{
|
||||||
|
_instanceId = instanceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getLocation()
|
||||||
|
{
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_x = loc.getX();
|
||||||
_y = loc.getY();
|
_y = loc.getY();
|
||||||
_z = loc.getZ();
|
_z = loc.getZ();
|
||||||
_heading = loc.getHeading();
|
_heading = loc.getHeading();
|
||||||
|
_instanceId = loc.getInstanceId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -145,12 +172,13 @@ public class Location extends Point2D
|
|||||||
{
|
{
|
||||||
super.clean();
|
super.clean();
|
||||||
_z = 0;
|
_z = 0;
|
||||||
|
_instanceId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location clone()
|
public Location clone()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z);
|
return new Location(_x, _y, _z, _heading, _instanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -159,31 +187,31 @@ public class Location extends Point2D
|
|||||||
return (31 * super.hashCode()) + Objects.hash(_z);
|
return (31 * super.hashCode()) + Objects.hash(_z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj)
|
||||||
|
{
|
||||||
|
if (obj instanceof Location)
|
||||||
|
{
|
||||||
|
final Location loc = (Location) obj;
|
||||||
|
return (getX() == loc.getX()) && (getY() == loc.getY()) && (getZ() == loc.getZ()) && (getHeading() == loc.getHeading()) && (getInstanceId() == loc.getInstanceId());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param x : The X coord to test.
|
* @param x : The X coord to test.
|
||||||
* @param y : The Y coord to test.
|
* @param y : The Y coord to test.
|
||||||
* @param z : The X coord to test.
|
* @param z : The Z coord to test.
|
||||||
* @return True if all coordinates equals this {@link Point2D} coordinates.
|
* @return True if all coordinates equals this {@link Location} coordinates.
|
||||||
*/
|
*/
|
||||||
public boolean equals(int x, int y, int z)
|
public boolean equals(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return (_x == x) && (_y == y) && (_z == z);
|
return (_x == x) && (_y == y) && (_z == z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj)
|
|
||||||
{
|
|
||||||
if (obj instanceof Location)
|
|
||||||
{
|
|
||||||
final Location loc = (Location) obj;
|
|
||||||
return (getX() == loc.getX()) && (getY() == loc.getY()) && (getZ() == loc.getZ()) && (getHeading() == loc.getHeading());
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "[" + getClass().getSimpleName() + "] X: " + _x + " Y: " + _y + " Z: " + _z + " Heading: " + _heading;
|
return "[" + getClass().getSimpleName() + "] X: " + _x + " Y: " + _y + " Z: " + _z + " Heading: " + _heading + " InstanceId: " + _instanceId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,250 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the L2J Mobius project.
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package org.l2jmobius.gameserver.model;
|
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
|
||||||
|
|
||||||
public class ObjectPosition
|
|
||||||
{
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(ObjectPosition.class.getName());
|
|
||||||
|
|
||||||
private final WorldObject _activeObject;
|
|
||||||
private int _heading = 0;
|
|
||||||
private Location _worldPosition;
|
|
||||||
private WorldRegion _worldRegion; // Object localization : Used for items/chars that are seen in the world
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiates a new object position.
|
|
||||||
* @param activeObject the active object
|
|
||||||
*/
|
|
||||||
public ObjectPosition(WorldObject activeObject)
|
|
||||||
{
|
|
||||||
_activeObject = activeObject;
|
|
||||||
setWorldRegion(World.getInstance().getRegion(getWorldPosition()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the x,y,z position of the WorldObject and if necessary modify its _worldRegion.<br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Assert</u>:</b><br>
|
|
||||||
* <li>_worldRegion != null</li><br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Example of use</u>:</b><br>
|
|
||||||
* <li>Update position during and after movement, or after teleport</li><br>
|
|
||||||
* @param x the x
|
|
||||||
* @param y the y
|
|
||||||
* @param z the z
|
|
||||||
*/
|
|
||||||
public void setXYZ(int x, int y, int z)
|
|
||||||
{
|
|
||||||
setWorldPosition(x, y, z);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (World.getInstance().getRegion(getWorldPosition()) != getWorldRegion())
|
|
||||||
{
|
|
||||||
updateWorldRegion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.warning("Object Id at bad coords: (x: " + getWorldPosition().getX() + ", y: " + getWorldPosition().getY() + ", z: " + getWorldPosition().getZ() + ").");
|
|
||||||
if (_activeObject instanceof Player)
|
|
||||||
{
|
|
||||||
((Player) _activeObject).teleToLocation(0, 0, 0);
|
|
||||||
((Player) _activeObject).sendMessage("Error with your coords, Please ask a GM for help!");
|
|
||||||
}
|
|
||||||
else if (_activeObject instanceof Creature)
|
|
||||||
{
|
|
||||||
_activeObject.decayMe();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the x,y,z position of the WorldObject and make it invisible.<br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Concept</u>:</b><br>
|
|
||||||
* <br>
|
|
||||||
* A WorldObject is invisble if <b>_hidden</b>=true or <b>_worldregion</b>==null<br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Assert</u>:</b><br>
|
|
||||||
* <li>_worldregion==null <i>(WorldObject is invisible)</i></li><br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Example of use</u>:</b><br>
|
|
||||||
* <li>Create a Door</li>
|
|
||||||
* <li>Restore Player</li><br>
|
|
||||||
* @param x the x
|
|
||||||
* @param y the y
|
|
||||||
* @param z the z
|
|
||||||
*/
|
|
||||||
public void setXYZInvisible(int x, int y, int z)
|
|
||||||
{
|
|
||||||
int correctX = x;
|
|
||||||
if (correctX > World.WORLD_X_MAX)
|
|
||||||
{
|
|
||||||
correctX = World.WORLD_X_MAX - 5000;
|
|
||||||
}
|
|
||||||
if (correctX < World.WORLD_X_MIN)
|
|
||||||
{
|
|
||||||
correctX = World.WORLD_X_MIN + 5000;
|
|
||||||
}
|
|
||||||
|
|
||||||
int correctY = y;
|
|
||||||
if (correctY > World.WORLD_Y_MAX)
|
|
||||||
{
|
|
||||||
correctY = World.WORLD_Y_MAX - 5000;
|
|
||||||
}
|
|
||||||
if (correctY < World.WORLD_Y_MIN)
|
|
||||||
{
|
|
||||||
correctY = World.WORLD_Y_MIN + 5000;
|
|
||||||
}
|
|
||||||
|
|
||||||
setWorldPosition(correctX, correctY, z);
|
|
||||||
_activeObject.setSpawned(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* checks if current object changed its region, if so, update referencies.
|
|
||||||
*/
|
|
||||||
public void updateWorldRegion()
|
|
||||||
{
|
|
||||||
if (!_activeObject.isSpawned())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final WorldRegion newRegion = World.getInstance().getRegion(getWorldPosition());
|
|
||||||
if (newRegion != getWorldRegion())
|
|
||||||
{
|
|
||||||
getWorldRegion().removeVisibleObject(_activeObject);
|
|
||||||
|
|
||||||
setWorldRegion(newRegion);
|
|
||||||
|
|
||||||
// Add the L2Oject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
|
||||||
getWorldRegion().addVisibleObject(_activeObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the active object.
|
|
||||||
* @return the active object
|
|
||||||
*/
|
|
||||||
public WorldObject getActiveObject()
|
|
||||||
{
|
|
||||||
return _activeObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the heading.
|
|
||||||
* @return the heading
|
|
||||||
*/
|
|
||||||
public int getHeading()
|
|
||||||
{
|
|
||||||
return _heading;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the heading.
|
|
||||||
* @param value the new heading
|
|
||||||
*/
|
|
||||||
public void setHeading(int value)
|
|
||||||
{
|
|
||||||
_heading = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the x position of the WorldObject.
|
|
||||||
* @return the x
|
|
||||||
*/
|
|
||||||
public int getX()
|
|
||||||
{
|
|
||||||
return getWorldPosition().getX();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the y position of the WorldObject.
|
|
||||||
* @return the y
|
|
||||||
*/
|
|
||||||
public int getY()
|
|
||||||
{
|
|
||||||
return getWorldPosition().getY();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the z position of the WorldObject.
|
|
||||||
* @return the z
|
|
||||||
*/
|
|
||||||
public int getZ()
|
|
||||||
{
|
|
||||||
return getWorldPosition().getZ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the world position.
|
|
||||||
* @return the world position
|
|
||||||
*/
|
|
||||||
public Location getWorldPosition()
|
|
||||||
{
|
|
||||||
if (_worldPosition == null)
|
|
||||||
{
|
|
||||||
_worldPosition = new Location(0, 0, 0);
|
|
||||||
}
|
|
||||||
return _worldPosition;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the world position.
|
|
||||||
* @param x the x
|
|
||||||
* @param y the y
|
|
||||||
* @param z the z
|
|
||||||
*/
|
|
||||||
public void setWorldPosition(int x, int y, int z)
|
|
||||||
{
|
|
||||||
getWorldPosition().setXYZ(x, y, z);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the world position.
|
|
||||||
* @param location the new world position
|
|
||||||
*/
|
|
||||||
public void setWorldPosition(Location location)
|
|
||||||
{
|
|
||||||
setWorldPosition(location.getX(), location.getY(), location.getZ());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the world region.
|
|
||||||
* @return the world region
|
|
||||||
*/
|
|
||||||
public synchronized WorldRegion getWorldRegion()
|
|
||||||
{
|
|
||||||
return _worldRegion;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the world region.
|
|
||||||
* @param value the new world region
|
|
||||||
*/
|
|
||||||
public synchronized void setWorldRegion(WorldRegion value)
|
|
||||||
{
|
|
||||||
_worldRegion = value;
|
|
||||||
}
|
|
||||||
}
|
|
@ -46,10 +46,8 @@ public abstract class WorldObject
|
|||||||
private WorldObjectKnownList _knownList;
|
private WorldObjectKnownList _knownList;
|
||||||
private String _name = "";
|
private String _name = "";
|
||||||
private int _objectId;
|
private int _objectId;
|
||||||
private ObjectPosition _position;
|
private WorldRegion _worldRegion;
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
// Objects can only see objects in same instancezone, instance 0 is normal world -1 the all seeing world
|
|
||||||
private int _instanceId = 0;
|
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -91,30 +89,127 @@ public abstract class WorldObject
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Position - Should remove to fully move to WorldObjectPosition
|
/**
|
||||||
public void setXYZ(int x, int y, int z)
|
* Checks if current object changed its region, if so, update references.
|
||||||
|
*/
|
||||||
|
public void updateWorldRegion()
|
||||||
{
|
{
|
||||||
getPosition().setXYZ(x, y, z);
|
if (!isSpawned())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final WorldRegion newRegion = World.getInstance().getRegion(_location);
|
||||||
|
if (newRegion != getWorldRegion())
|
||||||
|
{
|
||||||
|
getWorldRegion().removeVisibleObject(this);
|
||||||
|
|
||||||
|
setWorldRegion(newRegion);
|
||||||
|
|
||||||
|
// Add the WorldOject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion.
|
||||||
|
getWorldRegion().addVisibleObject(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the x,y,z position of the WorldObject and if necessary modify its _worldRegion.<br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Assert</u>:</b><br>
|
||||||
|
* <li>_worldRegion != null</li><br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Example of use</u>:</b><br>
|
||||||
|
* <li>Update position during and after movement, or after teleport</li><br>
|
||||||
|
* @param x the x
|
||||||
|
* @param y the y
|
||||||
|
* @param z the z
|
||||||
|
*/
|
||||||
|
public void setXYZ(int x, int y, int z)
|
||||||
|
{
|
||||||
|
_location.setXYZ(x, y, z);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (World.getInstance().getRegion(_location) != getWorldRegion())
|
||||||
|
{
|
||||||
|
updateWorldRegion();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LOGGER.warning("Object Id at bad coords: (x: " + getX() + ", y: " + getY() + ", z: " + getZ() + ").");
|
||||||
|
if (isPlayer())
|
||||||
|
{
|
||||||
|
((Player) this).teleToLocation(0, 0, 0);
|
||||||
|
((Player) this).sendMessage("Error with your coords, Please ask a GM for help!");
|
||||||
|
}
|
||||||
|
else if (isCreature())
|
||||||
|
{
|
||||||
|
decayMe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the x,y,z position of the WorldObject and make it invisible.<br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Concept</u>:</b><br>
|
||||||
|
* <br>
|
||||||
|
* A WorldObject is invisble if <b>_hidden</b>=true or <b>_worldregion</b>==null<br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Assert</u>:</b><br>
|
||||||
|
* <li>_worldregion==null <i>(WorldObject is invisible)</i></li><br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Example of use</u>:</b><br>
|
||||||
|
* <li>Create a Door</li>
|
||||||
|
* <li>Restore Player</li><br>
|
||||||
|
* @param x the x
|
||||||
|
* @param y the y
|
||||||
|
* @param z the z
|
||||||
|
*/
|
||||||
public void setXYZInvisible(int x, int y, int z)
|
public void setXYZInvisible(int x, int y, int z)
|
||||||
{
|
{
|
||||||
getPosition().setXYZInvisible(x, y, z);
|
int correctX = x;
|
||||||
|
if (correctX > World.WORLD_X_MAX)
|
||||||
|
{
|
||||||
|
correctX = World.WORLD_X_MAX - 5000;
|
||||||
|
}
|
||||||
|
if (correctX < World.WORLD_X_MIN)
|
||||||
|
{
|
||||||
|
correctX = World.WORLD_X_MIN + 5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
int correctY = y;
|
||||||
|
if (correctY > World.WORLD_Y_MAX)
|
||||||
|
{
|
||||||
|
correctY = World.WORLD_Y_MAX - 5000;
|
||||||
|
}
|
||||||
|
if (correctY < World.WORLD_Y_MIN)
|
||||||
|
{
|
||||||
|
correctY = World.WORLD_Y_MIN + 5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
_location.setXYZ(correctX, correctY, z);
|
||||||
|
setSpawned(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return getPosition().getX();
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return getPosition().getY();
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return getPosition().getZ();
|
return _location.getZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHeading()
|
||||||
|
{
|
||||||
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -135,9 +230,9 @@ public abstract class WorldObject
|
|||||||
{
|
{
|
||||||
// Remove the WorldObject from the world
|
// Remove the WorldObject from the world
|
||||||
_isSpawned = false;
|
_isSpawned = false;
|
||||||
World.getInstance().removeVisibleObject(this, getPosition().getWorldRegion());
|
World.getInstance().removeVisibleObject(this, getWorldRegion());
|
||||||
World.getInstance().removeObject(this);
|
World.getInstance().removeObject(this);
|
||||||
getPosition().setWorldRegion(null);
|
setWorldRegion(null);
|
||||||
|
|
||||||
if (Config.SAVE_DROPPED_ITEM)
|
if (Config.SAVE_DROPPED_ITEM)
|
||||||
{
|
{
|
||||||
@ -163,7 +258,7 @@ public abstract class WorldObject
|
|||||||
*/
|
*/
|
||||||
public void pickupMe(Creature creature) // NOTE: Should move this function into Item because it does not apply to Creature
|
public void pickupMe(Creature creature) // NOTE: Should move this function into Item because it does not apply to Creature
|
||||||
{
|
{
|
||||||
final WorldRegion oldregion = getPosition().getWorldRegion();
|
final WorldRegion oldregion = getWorldRegion();
|
||||||
|
|
||||||
// Create a server->client GetItem packet to pick up the Item
|
// Create a server->client GetItem packet to pick up the Item
|
||||||
creature.broadcastPacket(new GetItem((Item) this, creature.getObjectId()));
|
creature.broadcastPacket(new GetItem((Item) this, creature.getObjectId()));
|
||||||
@ -171,7 +266,7 @@ public abstract class WorldObject
|
|||||||
synchronized (this)
|
synchronized (this)
|
||||||
{
|
{
|
||||||
_isSpawned = false;
|
_isSpawned = false;
|
||||||
getPosition().setWorldRegion(null);
|
setWorldRegion(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if this item is a mercenary ticket, remove the spawns!
|
// if this item is a mercenary ticket, remove the spawns!
|
||||||
@ -219,18 +314,18 @@ public abstract class WorldObject
|
|||||||
{
|
{
|
||||||
// Set the x,y,z position of the WorldObject spawn and update its _worldregion
|
// Set the x,y,z position of the WorldObject spawn and update its _worldregion
|
||||||
_isSpawned = true;
|
_isSpawned = true;
|
||||||
getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition()));
|
setWorldRegion(World.getInstance().getRegion(getLocation()));
|
||||||
|
|
||||||
// Add the WorldObject spawn in the _allobjects of World
|
// Add the WorldObject spawn in the _allobjects of World
|
||||||
World.getInstance().storeObject(this);
|
World.getInstance().storeObject(this);
|
||||||
|
|
||||||
// Add the WorldObject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
// Add the WorldObject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
||||||
getPosition().getWorldRegion().addVisibleObject(this);
|
getWorldRegion().addVisibleObject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this can synchronize on others instances, so it's out of synchronized, to avoid deadlocks
|
// this can synchronize on others instances, so it's out of synchronized, to avoid deadlocks
|
||||||
// Add the WorldObject spawn in the world as a visible object
|
// Add the WorldObject spawn in the world as a visible object
|
||||||
World.getInstance().addVisibleObject(this, getPosition().getWorldRegion(), null);
|
World.getInstance().addVisibleObject(this, getWorldRegion(), null);
|
||||||
onSpawn();
|
onSpawn();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,8 +356,8 @@ public abstract class WorldObject
|
|||||||
spawnY = World.WORLD_Y_MIN + 5000;
|
spawnY = World.WORLD_Y_MIN + 5000;
|
||||||
}
|
}
|
||||||
|
|
||||||
getPosition().setWorldPosition(spawnX, spawnY, z);
|
_location.setXYZ(spawnX, spawnY, z);
|
||||||
getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition()));
|
setWorldRegion(World.getInstance().getRegion(getLocation()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// these can synchronize on others instances, so they're out of synchronized, to avoid deadlocks
|
// these can synchronize on others instances, so they're out of synchronized, to avoid deadlocks
|
||||||
@ -270,7 +365,7 @@ public abstract class WorldObject
|
|||||||
World.getInstance().storeObject(this);
|
World.getInstance().storeObject(this);
|
||||||
|
|
||||||
// Add the WorldObject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
// Add the WorldObject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
||||||
final WorldRegion region = getPosition().getWorldRegion();
|
final WorldRegion region = getWorldRegion();
|
||||||
if (region != null)
|
if (region != null)
|
||||||
{
|
{
|
||||||
region.addVisibleObject(this);
|
region.addVisibleObject(this);
|
||||||
@ -302,7 +397,7 @@ public abstract class WorldObject
|
|||||||
|
|
||||||
public boolean isSpawned()
|
public boolean isSpawned()
|
||||||
{
|
{
|
||||||
return getPosition().getWorldRegion() != null;
|
return getWorldRegion() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSpawned(boolean value)
|
public void setSpawned(boolean value)
|
||||||
@ -310,7 +405,7 @@ public abstract class WorldObject
|
|||||||
_isSpawned = value;
|
_isSpawned = value;
|
||||||
if (!_isSpawned)
|
if (!_isSpawned)
|
||||||
{
|
{
|
||||||
getPosition().setWorldRegion(null);
|
setWorldRegion(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,26 +438,27 @@ public abstract class WorldObject
|
|||||||
return _objectId;
|
return _objectId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObjectPosition getPosition()
|
|
||||||
{
|
|
||||||
if (_position == null)
|
|
||||||
{
|
|
||||||
_position = new ObjectPosition(this);
|
|
||||||
}
|
|
||||||
return _position;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return getPosition().getWorldPosition();
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return reference to region this object is in
|
* Gets the world region.
|
||||||
|
* @return the world region
|
||||||
*/
|
*/
|
||||||
public WorldRegion getWorldRegion()
|
public synchronized WorldRegion getWorldRegion()
|
||||||
{
|
{
|
||||||
return getPosition().getWorldRegion();
|
return _worldRegion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the world region.
|
||||||
|
* @param value the new world region
|
||||||
|
*/
|
||||||
|
public synchronized void setWorldRegion(WorldRegion value)
|
||||||
|
{
|
||||||
|
_worldRegion = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -370,7 +466,7 @@ public abstract class WorldObject
|
|||||||
*/
|
*/
|
||||||
public int getInstanceId()
|
public int getInstanceId()
|
||||||
{
|
{
|
||||||
return _instanceId;
|
return _location.getInstanceId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -378,7 +474,7 @@ public abstract class WorldObject
|
|||||||
*/
|
*/
|
||||||
public void setInstanceId(int instanceId)
|
public void setInstanceId(int instanceId)
|
||||||
{
|
{
|
||||||
_instanceId = instanceId;
|
_location.setInstanceId(instanceId);
|
||||||
|
|
||||||
// If we change it for visible objects, me must clear & revalidates knownlists
|
// If we change it for visible objects, me must clear & revalidates knownlists
|
||||||
if (_isSpawned && (_knownList != null))
|
if (_isSpawned && (_knownList != null))
|
||||||
@ -575,6 +671,6 @@ public abstract class WorldObject
|
|||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "" + _objectId;
|
return getClass().getSimpleName() + ":" + _name + "[" + _objectId + "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,6 @@ import org.l2jmobius.gameserver.model.ChanceSkillList;
|
|||||||
import org.l2jmobius.gameserver.model.Effect;
|
import org.l2jmobius.gameserver.model.Effect;
|
||||||
import org.l2jmobius.gameserver.model.ForceBuff;
|
import org.l2jmobius.gameserver.model.ForceBuff;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.ObjectPosition;
|
|
||||||
import org.l2jmobius.gameserver.model.Party;
|
import org.l2jmobius.gameserver.model.Party;
|
||||||
import org.l2jmobius.gameserver.model.Skill;
|
import org.l2jmobius.gameserver.model.Skill;
|
||||||
import org.l2jmobius.gameserver.model.Skill.SkillTargetType;
|
import org.l2jmobius.gameserver.model.Skill.SkillTargetType;
|
||||||
@ -72,8 +71,8 @@ import org.l2jmobius.gameserver.model.actor.instance.NpcWalker;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Pet;
|
import org.l2jmobius.gameserver.model.actor.instance.Pet;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.RaidBoss;
|
import org.l2jmobius.gameserver.model.actor.instance.RaidBoss;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.RiftInvader;
|
import org.l2jmobius.gameserver.model.actor.instance.RiftInvader;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.SiegeFlag;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.SiegeFlag;
|
||||||
import org.l2jmobius.gameserver.model.actor.knownlist.CreatureKnownList;
|
import org.l2jmobius.gameserver.model.actor.knownlist.CreatureKnownList;
|
||||||
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
|
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
|
||||||
import org.l2jmobius.gameserver.model.actor.status.CreatureStatus;
|
import org.l2jmobius.gameserver.model.actor.status.CreatureStatus;
|
||||||
@ -320,10 +319,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ObjectPosition pos = getPosition();
|
final Location pos = getLocation();
|
||||||
if (pos != null)
|
if (pos != null)
|
||||||
{
|
{
|
||||||
spawnMe(getPosition().getX(), getPosition().getY(), getPosition().getZ());
|
spawnMe(pos.getX(), pos.getY(), pos.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
setTeleporting(false);
|
setTeleporting(false);
|
||||||
@ -563,7 +562,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
broadcastPacket(new TeleportToLocation(this, x, y, z, getHeading()));
|
broadcastPacket(new TeleportToLocation(this, x, y, z, getHeading()));
|
||||||
|
|
||||||
// Set the x,y,z position of the WorldObject and if necessary modify its _worldRegion.
|
// Set the x,y,z position of the WorldObject and if necessary modify its _worldRegion.
|
||||||
getPosition().setXYZ(x, y, z);
|
getLocation().setXYZ(x, y, z);
|
||||||
|
|
||||||
if (!isPlayer())
|
if (!isPlayer())
|
||||||
{
|
{
|
||||||
@ -865,7 +864,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
// Mobius: Do not move when attack is launched.
|
// Mobius: Do not move when attack is launched.
|
||||||
if (isMoving())
|
if (isMoving())
|
||||||
{
|
{
|
||||||
stopMove(getPosition().getWorldPosition());
|
stopMove(getLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the Attack Speed of the Creature (delay (in milliseconds) before next attack)
|
// Get the Attack Speed of the Creature (delay (in milliseconds) before next attack)
|
||||||
@ -4221,8 +4220,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
* <br>
|
* <br>
|
||||||
* <b><u>Concept</u>:</b><br>
|
* <b><u>Concept</u>:</b><br>
|
||||||
* <br>
|
* <br>
|
||||||
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use,
|
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use, Npcs who
|
||||||
* Npcs who don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
* don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
||||||
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
||||||
* <br>
|
* <br>
|
||||||
* <b><u>Actions</u>:</b><br>
|
* <b><u>Actions</u>:</b><br>
|
||||||
@ -4292,8 +4291,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
* <br>
|
* <br>
|
||||||
* <b><u>Concept</u>:</b><br>
|
* <b><u>Concept</u>:</b><br>
|
||||||
* <br>
|
* <br>
|
||||||
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use,
|
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use, Npcs who
|
||||||
* Npcs who don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
* don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
||||||
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
||||||
* <br>
|
* <br>
|
||||||
* <b><u>Actions</u>:</b><br>
|
* <b><u>Actions</u>:</b><br>
|
||||||
@ -4371,8 +4370,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
* <br>
|
* <br>
|
||||||
* <b><u>Concept</u>:</b><br>
|
* <b><u>Concept</u>:</b><br>
|
||||||
* <br>
|
* <br>
|
||||||
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use,
|
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use, Npcs who
|
||||||
* Npcs who don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
* don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
||||||
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
||||||
* <br>
|
* <br>
|
||||||
* <b><u>Actions</u>:</b><br>
|
* <b><u>Actions</u>:</b><br>
|
||||||
@ -4567,6 +4566,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
* Return the orientation of the Creature.
|
* Return the orientation of the Creature.
|
||||||
* @return the heading
|
* @return the heading
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _heading;
|
||||||
@ -5050,7 +5050,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
// All data are contained in a CharPosition object
|
// All data are contained in a CharPosition object
|
||||||
if (pos != null)
|
if (pos != null)
|
||||||
{
|
{
|
||||||
getPosition().setXYZ(pos.getX(), pos.getY(), pos.getZ());
|
getLocation().setXYZ(pos.getX(), pos.getY(), pos.getZ());
|
||||||
setHeading(pos.getHeading());
|
setHeading(pos.getHeading());
|
||||||
|
|
||||||
if (this instanceof Player)
|
if (this instanceof Player)
|
||||||
|
@ -12128,7 +12128,7 @@ public class Player extends Playable
|
|||||||
if (getTrainedBeast() != null)
|
if (getTrainedBeast() != null)
|
||||||
{
|
{
|
||||||
getTrainedBeast().getAI().stopFollow();
|
getTrainedBeast().getAI().stopFollow();
|
||||||
getTrainedBeast().teleToLocation(getPosition().getX() + Rnd.get(-100, 100), getPosition().getY() + Rnd.get(-100, 100), getPosition().getZ());
|
getTrainedBeast().teleToLocation(getLocation().getX() + Rnd.get(-100, 100), getLocation().getY() + Rnd.get(-100, 100), getLocation().getZ());
|
||||||
getTrainedBeast().getAI().startFollow(this);
|
getTrainedBeast().getAI().startFollow(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ public class Boat extends Creature
|
|||||||
final MoveData m = new MoveData();
|
final MoveData m = new MoveData();
|
||||||
|
|
||||||
// Calculate and set the heading of the Creature
|
// Calculate and set the heading of the Creature
|
||||||
getPosition().setHeading((int) (Math.atan2(-sin, -cos) * 10430.378350470452724949566316381) + 32768);
|
getLocation().setHeading((int) (Math.atan2(-sin, -cos) * 10430.378350470452724949566316381) + 32768);
|
||||||
m._xDestination = x;
|
m._xDestination = x;
|
||||||
m._yDestination = y;
|
m._yDestination = y;
|
||||||
m._zDestination = z; // this is what was requested from client
|
m._zDestination = z; // this is what was requested from client
|
||||||
|
@ -179,7 +179,7 @@ public class PlayerKnownList extends PlayableKnownList
|
|||||||
final Player otherPlayer = (Player) object;
|
final Player otherPlayer = (Player) object;
|
||||||
if (otherPlayer.isInBoat())
|
if (otherPlayer.isInBoat())
|
||||||
{
|
{
|
||||||
otherPlayer.getPosition().setWorldPosition(otherPlayer.getBoat().getLocation());
|
otherPlayer.getLocation().setLocation(otherPlayer.getBoat().getLocation());
|
||||||
activeChar.sendPacket(new CharInfo(otherPlayer, activeChar.isGM() && otherPlayer.getAppearance().isInvisible()));
|
activeChar.sendPacket(new CharInfo(otherPlayer, activeChar.isGM() && otherPlayer.getAppearance().isInvisible()));
|
||||||
|
|
||||||
final int relation = otherPlayer.getRelation(activeChar);
|
final int relation = otherPlayer.getRelation(activeChar);
|
||||||
|
@ -80,7 +80,7 @@ public class BoatPathHolder
|
|||||||
final double distance = Math.sqrt((dx * dx) + (dy * dy));
|
final double distance = Math.sqrt((dx * dx) + (dy * dy));
|
||||||
final double cos = dx / distance;
|
final double cos = dx / distance;
|
||||||
final double sin = dy / distance;
|
final double sin = dy / distance;
|
||||||
boat.getPosition().setHeading((int) (Math.atan2(-sin, -cos) * 10430.378350470452724949566316381) + 32768);
|
boat.getLocation().setHeading((int) (Math.atan2(-sin, -cos) * 10430.378350470452724949566316381) + 32768);
|
||||||
boat.vd = new VehicleDeparture(boat, path.speed1, path.speed2, path.x, path.y, path.z);
|
boat.vd = new VehicleDeparture(boat, path.speed1, path.speed2, path.x, path.y, path.z);
|
||||||
boat.boatSpeed = path.speed1;
|
boat.boatSpeed = path.speed1;
|
||||||
boat.moveToLocation(path.x, path.y, path.z, path.speed1);
|
boat.moveToLocation(path.x, path.y, path.z, path.speed1);
|
||||||
|
@ -1056,18 +1056,18 @@ public class Item extends WorldObject
|
|||||||
{
|
{
|
||||||
// Set the x,y,z position of the Item dropped and update its _worldregion
|
// Set the x,y,z position of the Item dropped and update its _worldregion
|
||||||
setSpawned(true);
|
setSpawned(true);
|
||||||
getPosition().setWorldPosition(x, y, z);
|
getLocation().setXYZ(x, y, z);
|
||||||
getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition()));
|
setWorldRegion(World.getInstance().getRegion(getLocation()));
|
||||||
|
|
||||||
// Add the Item dropped to _visibleObjects of its WorldRegion
|
// Add the Item dropped to _visibleObjects of its WorldRegion
|
||||||
getPosition().getWorldRegion().addVisibleObject(this);
|
getWorldRegion().addVisibleObject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
setDropTime(Chronos.currentTimeMillis());
|
setDropTime(Chronos.currentTimeMillis());
|
||||||
|
|
||||||
// this can synchronize on others instancies, so it's out of synchronized, to avoid deadlocks
|
// this can synchronize on others instancies, so it's out of synchronized, to avoid deadlocks
|
||||||
// Add the Item dropped in the world as a visible object
|
// Add the Item dropped in the world as a visible object
|
||||||
World.getInstance().addVisibleObject(this, getPosition().getWorldRegion(), dropper);
|
World.getInstance().addVisibleObject(this, getWorldRegion(), dropper);
|
||||||
if (Config.SAVE_DROPPED_ITEM)
|
if (Config.SAVE_DROPPED_ITEM)
|
||||||
{
|
{
|
||||||
ItemsOnGroundManager.getInstance().save(this);
|
ItemsOnGroundManager.getInstance().save(this);
|
||||||
|
@ -48,8 +48,8 @@ import org.l2jmobius.gameserver.model.sevensigns.SevenSigns;
|
|||||||
import org.l2jmobius.gameserver.model.sevensigns.SevenSignsFestival;
|
import org.l2jmobius.gameserver.model.sevensigns.SevenSignsFestival;
|
||||||
import org.l2jmobius.gameserver.model.siege.Siege;
|
import org.l2jmobius.gameserver.model.siege.Siege;
|
||||||
import org.l2jmobius.gameserver.model.skill.conditions.ConditionPlayerState;
|
import org.l2jmobius.gameserver.model.skill.conditions.ConditionPlayerState;
|
||||||
import org.l2jmobius.gameserver.model.skill.conditions.ConditionUsingItemType;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.conditions.ConditionPlayerState.CheckPlayerState;
|
import org.l2jmobius.gameserver.model.skill.conditions.ConditionPlayerState.CheckPlayerState;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.conditions.ConditionUsingItemType;
|
||||||
import org.l2jmobius.gameserver.model.skill.effects.EffectTemplate;
|
import org.l2jmobius.gameserver.model.skill.effects.EffectTemplate;
|
||||||
import org.l2jmobius.gameserver.model.skill.funcs.Func;
|
import org.l2jmobius.gameserver.model.skill.funcs.Func;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
@ -1201,7 +1201,7 @@ public class Formulas
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Siege siege = SiegeManager.getInstance().getSiege(player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ());
|
final Siege siege = SiegeManager.getInstance().getSiege(player.getX(), player.getY(), player.getZ());
|
||||||
if ((siege == null) || !siege.isInProgress())
|
if ((siege == null) || !siege.isInProgress())
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -56,7 +56,7 @@ public class CannotMoveAnymoreInVehicle implements IClientIncomingPacket
|
|||||||
if (player.isInBoat() && (player.getBoat().getObjectId() == _boatId))
|
if (player.isInBoat() && (player.getBoat().getObjectId() == _boatId))
|
||||||
{
|
{
|
||||||
player.setBoatPosition(new Location(_x, _y, _z));
|
player.setBoatPosition(new Location(_x, _y, _z));
|
||||||
player.getPosition().setHeading(_heading);
|
player.setHeading(_heading);
|
||||||
player.broadcastPacket(new StopMoveInVehicle(player, _boatId));
|
player.broadcastPacket(new StopMoveInVehicle(player, _boatId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ public class RequestGetOnVehicle implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.setBoatPosition(new Location(_x, _y, _z));
|
player.setBoatPosition(new Location(_x, _y, _z));
|
||||||
player.setXYZ(boat.getPosition().getX(), boat.getPosition().getY(), boat.getPosition().getZ());
|
player.setXYZ(boat.getLocation().getX(), boat.getLocation().getY(), boat.getLocation().getZ());
|
||||||
player.broadcastPacket(new GetOnVehicle(player, boat, _x, _y, _z));
|
player.broadcastPacket(new GetOnVehicle(player, boat, _x, _y, _z));
|
||||||
player.revalidateZone(true);
|
player.revalidateZone(true);
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ public class RequestRecordInfo implements IClientIncomingPacket
|
|||||||
final Player otherPlayer = (Player) object;
|
final Player otherPlayer = (Player) object;
|
||||||
if (otherPlayer.isInBoat())
|
if (otherPlayer.isInBoat())
|
||||||
{
|
{
|
||||||
otherPlayer.getPosition().setWorldPosition(otherPlayer.getBoat().getLocation());
|
otherPlayer.getLocation().setLocation(otherPlayer.getBoat().getLocation());
|
||||||
player.sendPacket(new CharInfo(otherPlayer, player.isGM() && otherPlayer.getAppearance().isInvisible()));
|
player.sendPacket(new CharInfo(otherPlayer, player.isGM() && otherPlayer.getAppearance().isInvisible()));
|
||||||
final int relation = otherPlayer.getRelation(player);
|
final int relation = otherPlayer.getRelation(player);
|
||||||
if ((otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != null) && (otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != relation))
|
if ((otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != null) && (otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != relation))
|
||||||
|
@ -28,9 +28,9 @@ public class FakePlayerInfo implements IClientOutgoingPacket
|
|||||||
public FakePlayerInfo(Npc cha)
|
public FakePlayerInfo(Npc cha)
|
||||||
{
|
{
|
||||||
_activeChar = cha;
|
_activeChar = cha;
|
||||||
_activeChar.setClientX(_activeChar.getPosition().getX());
|
_activeChar.setClientX(_activeChar.getX());
|
||||||
_activeChar.setClientY(_activeChar.getPosition().getY());
|
_activeChar.setClientY(_activeChar.getY());
|
||||||
_activeChar.setClientZ(_activeChar.getPosition().getZ());
|
_activeChar.setClientZ(_activeChar.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -52,7 +52,7 @@ public class OnVehicleCheckLocation implements IClientOutgoingPacket
|
|||||||
packet.writeD(_x);
|
packet.writeD(_x);
|
||||||
packet.writeD(_y);
|
packet.writeD(_y);
|
||||||
packet.writeD(_z);
|
packet.writeD(_z);
|
||||||
packet.writeD(_boat.getPosition().getHeading());
|
packet.writeD(_boat.getHeading());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,8 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
|
|
||||||
public class PlaySound implements IClientOutgoingPacket
|
public class PlaySound implements IClientOutgoingPacket
|
||||||
{
|
{
|
||||||
|
private static final Location DUMMY_LOC = new Location(0, 0, 0);
|
||||||
|
|
||||||
private final int _unknown;
|
private final int _unknown;
|
||||||
private final String _soundFile;
|
private final String _soundFile;
|
||||||
private final boolean _isObject;
|
private final boolean _isObject;
|
||||||
@ -40,7 +42,7 @@ public class PlaySound implements IClientOutgoingPacket
|
|||||||
_soundFile = soundFile;
|
_soundFile = soundFile;
|
||||||
_isObject = false;
|
_isObject = false;
|
||||||
_objectId = 0;
|
_objectId = 0;
|
||||||
_loc = Location.DUMMY_LOC;
|
_loc = DUMMY_LOC;
|
||||||
_duration = 0;
|
_duration = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +57,7 @@ public class PlaySound implements IClientOutgoingPacket
|
|||||||
_soundFile = soundFile;
|
_soundFile = soundFile;
|
||||||
_isObject = false;
|
_isObject = false;
|
||||||
_objectId = 0;
|
_objectId = 0;
|
||||||
_loc = Location.DUMMY_LOC;
|
_loc = DUMMY_LOC;
|
||||||
_duration = 0;
|
_duration = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ public class StopMoveInVehicle implements IClientOutgoingPacket
|
|||||||
packet.writeD(_player.getBoatPosition().getX());
|
packet.writeD(_player.getBoatPosition().getX());
|
||||||
packet.writeD(_player.getBoatPosition().getY());
|
packet.writeD(_player.getBoatPosition().getY());
|
||||||
packet.writeD(_player.getBoatPosition().getZ());
|
packet.writeD(_player.getBoatPosition().getZ());
|
||||||
packet.writeD(_player.getPosition().getHeading());
|
packet.writeD(_player.getHeading());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ public class VehicleInfo implements IClientOutgoingPacket
|
|||||||
packet.writeD(_boat.getX());
|
packet.writeD(_boat.getX());
|
||||||
packet.writeD(_boat.getY());
|
packet.writeD(_boat.getY());
|
||||||
packet.writeD(_boat.getZ());
|
packet.writeD(_boat.getZ());
|
||||||
packet.writeD(_boat.getPosition().getHeading());
|
packet.writeD(_boat.getHeading());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ public class Util
|
|||||||
{
|
{
|
||||||
return 1000000;
|
return 1000000;
|
||||||
}
|
}
|
||||||
return calculateDistance(obj1.getPosition().getX(), obj1.getPosition().getY(), obj1.getPosition().getZ(), obj2.getPosition().getX(), obj2.getPosition().getY(), obj2.getPosition().getZ(), includeZAxis);
|
return calculateDistance(obj1.getX(), obj1.getY(), obj1.getZ(), obj2.getX(), obj2.getY(), obj2.getZ(), includeZAxis);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -123,7 +123,7 @@ public class BoatData implements IXmlReader
|
|||||||
|
|
||||||
final CreatureTemplate template = new CreatureTemplate(npcDat);
|
final CreatureTemplate template = new CreatureTemplate(npcDat);
|
||||||
final Boat boat = new Boat(IdManager.getInstance().getNextId(), template);
|
final Boat boat = new Boat(IdManager.getInstance().getNextId(), template);
|
||||||
boat.getPosition().setHeading(set.getInt("heading"));
|
boat.getLocation().setHeading(set.getInt("heading"));
|
||||||
boat.setXYZ(set.getInt("spawnX"), set.getInt("spawnY"), set.getInt("spawnZ"));
|
boat.setXYZ(set.getInt("spawnX"), set.getInt("spawnY"), set.getInt("spawnZ"));
|
||||||
boat.setPathA(set.getInt("pathIdA"), set.getInt("ticketA"), set.getInt("xTeleNoTicketA"), set.getInt("yTeleNoTicketA"), set.getInt("zTeleNoTicketA"), set.getString("announcerA"), set.getString("message10A"), set.getString("message5A"), set.getString("message1A"), set.getString("message0A"), set.getString("messageBeginA"), paths.get(set.getInt("pathIdA")));
|
boat.setPathA(set.getInt("pathIdA"), set.getInt("ticketA"), set.getInt("xTeleNoTicketA"), set.getInt("yTeleNoTicketA"), set.getInt("zTeleNoTicketA"), set.getString("announcerA"), set.getString("message10A"), set.getString("message5A"), set.getString("message1A"), set.getString("message0A"), set.getString("messageBeginA"), paths.get(set.getInt("pathIdA")));
|
||||||
boat.setPathB(set.getInt("pathIdB"), set.getInt("ticketB"), set.getInt("xTeleNoTicketB"), set.getInt("yTeleNoTicketB"), set.getInt("zTeleNoTicketB"), set.getString("announcerB"), set.getString("message10B"), set.getString("message5B"), set.getString("message1B"), set.getString("message0B"), set.getString("messageBeginB"), paths.get(set.getInt("pathIdB")));
|
boat.setPathB(set.getInt("pathIdB"), set.getInt("ticketB"), set.getInt("xTeleNoTicketB"), set.getInt("yTeleNoTicketB"), set.getInt("zTeleNoTicketB"), set.getString("announcerB"), set.getString("message10B"), set.getString("message5B"), set.getString("message1B"), set.getString("message0B"), set.getString("messageBeginB"), paths.get(set.getInt("pathIdB")));
|
||||||
|
@ -127,13 +127,13 @@ public class ItemsOnGroundManager
|
|||||||
item.setEnchantLevel(result.getInt(4));
|
item.setEnchantLevel(result.getInt(4));
|
||||||
}
|
}
|
||||||
|
|
||||||
item.getPosition().setWorldPosition(result.getInt(5), result.getInt(6), result.getInt(7));
|
item.setXYZ(result.getInt(5), result.getInt(6), result.getInt(7));
|
||||||
item.getPosition().setWorldRegion(World.getInstance().getRegion(item.getLocation()));
|
item.setWorldRegion(World.getInstance().getRegion(item.getLocation()));
|
||||||
item.getPosition().getWorldRegion().addVisibleObject(item);
|
item.getWorldRegion().addVisibleObject(item);
|
||||||
item.setDropTime(result.getLong(8));
|
item.setDropTime(result.getLong(8));
|
||||||
item.setProtected(result.getLong(8) == -1);
|
item.setProtected(result.getLong(8) == -1);
|
||||||
item.setSpawned(true);
|
item.setSpawned(true);
|
||||||
World.getInstance().addVisibleObject(item, item.getPosition().getWorldRegion(), null);
|
World.getInstance().addVisibleObject(item, item.getWorldRegion(), null);
|
||||||
_items.add(item);
|
_items.add(item);
|
||||||
count++;
|
count++;
|
||||||
// add to ItemsAutoDestroy only items not protected
|
// add to ItemsAutoDestroy only items not protected
|
||||||
|
@ -25,16 +25,16 @@ import org.l2jmobius.commons.util.Point2D;
|
|||||||
*/
|
*/
|
||||||
public class Location extends Point2D
|
public class Location extends Point2D
|
||||||
{
|
{
|
||||||
public static final Location DUMMY_LOC = new Location(0, 0, 0);
|
|
||||||
|
|
||||||
protected volatile int _z;
|
protected volatile int _z;
|
||||||
protected volatile int _heading;
|
protected volatile int _heading;
|
||||||
|
protected volatile int _instanceId;
|
||||||
|
|
||||||
public Location(int x, int y, int z)
|
public Location(int x, int y, int z)
|
||||||
{
|
{
|
||||||
super(x, y);
|
super(x, y);
|
||||||
_z = z;
|
_z = z;
|
||||||
_heading = 0;
|
_heading = 0;
|
||||||
|
_instanceId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location(int x, int y, int z, int heading)
|
public Location(int x, int y, int z, int heading)
|
||||||
@ -42,11 +42,12 @@ public class Location extends Point2D
|
|||||||
super(x, y);
|
super(x, y);
|
||||||
_z = z;
|
_z = z;
|
||||||
_heading = heading;
|
_heading = heading;
|
||||||
|
_instanceId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location(WorldObject obj)
|
public Location(WorldObject obj)
|
||||||
{
|
{
|
||||||
this(obj.getX(), obj.getY(), obj.getZ(), obj.getPosition().getHeading(), obj.getInstanceId());
|
this(obj.getX(), obj.getY(), obj.getZ(), obj.getHeading(), obj.getInstanceId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location(int x, int y, int z, int heading, int instanceId)
|
public Location(int x, int y, int z, int heading, int instanceId)
|
||||||
@ -54,6 +55,7 @@ public class Location extends Point2D
|
|||||||
super(x, y);
|
super(x, y);
|
||||||
_z = z;
|
_z = z;
|
||||||
_heading = heading;
|
_heading = heading;
|
||||||
|
_instanceId = instanceId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Location(StatSet set)
|
public Location(StatSet set)
|
||||||
@ -61,6 +63,7 @@ public class Location extends Point2D
|
|||||||
super(set.getInt("x", 0), set.getInt("y", 0));
|
super(set.getInt("x", 0), set.getInt("y", 0));
|
||||||
_z = set.getInt("z", 0);
|
_z = set.getInt("z", 0);
|
||||||
_heading = set.getInt("heading", 0);
|
_heading = set.getInt("heading", 0);
|
||||||
|
_instanceId = set.getInt("instanceId", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -132,12 +135,36 @@ public class Location extends Point2D
|
|||||||
_heading = heading;
|
_heading = heading;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the instance Id.
|
||||||
|
* @return the instance Id
|
||||||
|
*/
|
||||||
|
public int getInstanceId()
|
||||||
|
{
|
||||||
|
return _instanceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the instance Id.
|
||||||
|
* @param instanceId the instance Id to set
|
||||||
|
*/
|
||||||
|
public void setInstanceId(int instanceId)
|
||||||
|
{
|
||||||
|
_instanceId = instanceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Location getLocation()
|
||||||
|
{
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_x = loc.getX();
|
||||||
_y = loc.getY();
|
_y = loc.getY();
|
||||||
_z = loc.getZ();
|
_z = loc.getZ();
|
||||||
_heading = loc.getHeading();
|
_heading = loc.getHeading();
|
||||||
|
_instanceId = loc.getInstanceId();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -145,12 +172,13 @@ public class Location extends Point2D
|
|||||||
{
|
{
|
||||||
super.clean();
|
super.clean();
|
||||||
_z = 0;
|
_z = 0;
|
||||||
|
_instanceId = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Location clone()
|
public Location clone()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z);
|
return new Location(_x, _y, _z, _heading, _instanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -159,31 +187,31 @@ public class Location extends Point2D
|
|||||||
return (31 * super.hashCode()) + Objects.hash(_z);
|
return (31 * super.hashCode()) + Objects.hash(_z);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj)
|
||||||
|
{
|
||||||
|
if (obj instanceof Location)
|
||||||
|
{
|
||||||
|
final Location loc = (Location) obj;
|
||||||
|
return (getX() == loc.getX()) && (getY() == loc.getY()) && (getZ() == loc.getZ()) && (getHeading() == loc.getHeading()) && (getInstanceId() == loc.getInstanceId());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param x : The X coord to test.
|
* @param x : The X coord to test.
|
||||||
* @param y : The Y coord to test.
|
* @param y : The Y coord to test.
|
||||||
* @param z : The X coord to test.
|
* @param z : The Z coord to test.
|
||||||
* @return True if all coordinates equals this {@link Point2D} coordinates.
|
* @return True if all coordinates equals this {@link Location} coordinates.
|
||||||
*/
|
*/
|
||||||
public boolean equals(int x, int y, int z)
|
public boolean equals(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return (_x == x) && (_y == y) && (_z == z);
|
return (_x == x) && (_y == y) && (_z == z);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object obj)
|
|
||||||
{
|
|
||||||
if (obj instanceof Location)
|
|
||||||
{
|
|
||||||
final Location loc = (Location) obj;
|
|
||||||
return (getX() == loc.getX()) && (getY() == loc.getY()) && (getZ() == loc.getZ()) && (getHeading() == loc.getHeading());
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "[" + getClass().getSimpleName() + "] X: " + _x + " Y: " + _y + " Z: " + _z + " Heading: " + _heading;
|
return "[" + getClass().getSimpleName() + "] X: " + _x + " Y: " + _y + " Z: " + _z + " Heading: " + _heading + " InstanceId: " + _instanceId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,250 +0,0 @@
|
|||||||
/*
|
|
||||||
* This file is part of the L2J Mobius project.
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
package org.l2jmobius.gameserver.model;
|
|
||||||
|
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
|
||||||
|
|
||||||
public class ObjectPosition
|
|
||||||
{
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(ObjectPosition.class.getName());
|
|
||||||
|
|
||||||
private final WorldObject _activeObject;
|
|
||||||
private int _heading = 0;
|
|
||||||
private Location _worldPosition;
|
|
||||||
private WorldRegion _worldRegion; // Object localization : Used for items/chars that are seen in the world
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Instantiates a new object position.
|
|
||||||
* @param activeObject the active object
|
|
||||||
*/
|
|
||||||
public ObjectPosition(WorldObject activeObject)
|
|
||||||
{
|
|
||||||
_activeObject = activeObject;
|
|
||||||
setWorldRegion(World.getInstance().getRegion(getWorldPosition()));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the x,y,z position of the WorldObject and if necessary modify its _worldRegion.<br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Assert</u>:</b><br>
|
|
||||||
* <li>_worldRegion != null</li><br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Example of use</u>:</b><br>
|
|
||||||
* <li>Update position during and after movement, or after teleport</li><br>
|
|
||||||
* @param x the x
|
|
||||||
* @param y the y
|
|
||||||
* @param z the z
|
|
||||||
*/
|
|
||||||
public void setXYZ(int x, int y, int z)
|
|
||||||
{
|
|
||||||
setWorldPosition(x, y, z);
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (World.getInstance().getRegion(getWorldPosition()) != getWorldRegion())
|
|
||||||
{
|
|
||||||
updateWorldRegion();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
LOGGER.warning("Object Id at bad coords: (x: " + getWorldPosition().getX() + ", y: " + getWorldPosition().getY() + ", z: " + getWorldPosition().getZ() + ").");
|
|
||||||
if (_activeObject instanceof Player)
|
|
||||||
{
|
|
||||||
((Player) _activeObject).teleToLocation(0, 0, 0);
|
|
||||||
((Player) _activeObject).sendMessage("Error with your coords, Please ask a GM for help!");
|
|
||||||
}
|
|
||||||
else if (_activeObject instanceof Creature)
|
|
||||||
{
|
|
||||||
_activeObject.decayMe();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set the x,y,z position of the WorldObject and make it invisible.<br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Concept</u>:</b><br>
|
|
||||||
* <br>
|
|
||||||
* A WorldObject is invisble if <b>_hidden</b>=true or <b>_worldregion</b>==null<br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Assert</u>:</b><br>
|
|
||||||
* <li>_worldregion==null <i>(WorldObject is invisible)</i></li><br>
|
|
||||||
* <br>
|
|
||||||
* <b><u>Example of use</u>:</b><br>
|
|
||||||
* <li>Create a Door</li>
|
|
||||||
* <li>Restore Player</li><br>
|
|
||||||
* @param x the x
|
|
||||||
* @param y the y
|
|
||||||
* @param z the z
|
|
||||||
*/
|
|
||||||
public void setXYZInvisible(int x, int y, int z)
|
|
||||||
{
|
|
||||||
int correctX = x;
|
|
||||||
if (correctX > World.WORLD_X_MAX)
|
|
||||||
{
|
|
||||||
correctX = World.WORLD_X_MAX - 5000;
|
|
||||||
}
|
|
||||||
if (correctX < World.WORLD_X_MIN)
|
|
||||||
{
|
|
||||||
correctX = World.WORLD_X_MIN + 5000;
|
|
||||||
}
|
|
||||||
|
|
||||||
int correctY = y;
|
|
||||||
if (correctY > World.WORLD_Y_MAX)
|
|
||||||
{
|
|
||||||
correctY = World.WORLD_Y_MAX - 5000;
|
|
||||||
}
|
|
||||||
if (correctY < World.WORLD_Y_MIN)
|
|
||||||
{
|
|
||||||
correctY = World.WORLD_Y_MIN + 5000;
|
|
||||||
}
|
|
||||||
|
|
||||||
setWorldPosition(correctX, correctY, z);
|
|
||||||
_activeObject.setSpawned(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* checks if current object changed its region, if so, update referencies.
|
|
||||||
*/
|
|
||||||
public void updateWorldRegion()
|
|
||||||
{
|
|
||||||
if (!_activeObject.isSpawned())
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
final WorldRegion newRegion = World.getInstance().getRegion(getWorldPosition());
|
|
||||||
if (newRegion != getWorldRegion())
|
|
||||||
{
|
|
||||||
getWorldRegion().removeVisibleObject(_activeObject);
|
|
||||||
|
|
||||||
setWorldRegion(newRegion);
|
|
||||||
|
|
||||||
// Add the L2Oject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
|
||||||
getWorldRegion().addVisibleObject(_activeObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the active object.
|
|
||||||
* @return the active object
|
|
||||||
*/
|
|
||||||
public WorldObject getActiveObject()
|
|
||||||
{
|
|
||||||
return _activeObject;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the heading.
|
|
||||||
* @return the heading
|
|
||||||
*/
|
|
||||||
public int getHeading()
|
|
||||||
{
|
|
||||||
return _heading;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the heading.
|
|
||||||
* @param value the new heading
|
|
||||||
*/
|
|
||||||
public void setHeading(int value)
|
|
||||||
{
|
|
||||||
_heading = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the x position of the WorldObject.
|
|
||||||
* @return the x
|
|
||||||
*/
|
|
||||||
public int getX()
|
|
||||||
{
|
|
||||||
return getWorldPosition().getX();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the y position of the WorldObject.
|
|
||||||
* @return the y
|
|
||||||
*/
|
|
||||||
public int getY()
|
|
||||||
{
|
|
||||||
return getWorldPosition().getY();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return the z position of the WorldObject.
|
|
||||||
* @return the z
|
|
||||||
*/
|
|
||||||
public int getZ()
|
|
||||||
{
|
|
||||||
return getWorldPosition().getZ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the world position.
|
|
||||||
* @return the world position
|
|
||||||
*/
|
|
||||||
public Location getWorldPosition()
|
|
||||||
{
|
|
||||||
if (_worldPosition == null)
|
|
||||||
{
|
|
||||||
_worldPosition = new Location(0, 0, 0);
|
|
||||||
}
|
|
||||||
return _worldPosition;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the world position.
|
|
||||||
* @param x the x
|
|
||||||
* @param y the y
|
|
||||||
* @param z the z
|
|
||||||
*/
|
|
||||||
public void setWorldPosition(int x, int y, int z)
|
|
||||||
{
|
|
||||||
getWorldPosition().setXYZ(x, y, z);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the world position.
|
|
||||||
* @param location the new world position
|
|
||||||
*/
|
|
||||||
public void setWorldPosition(Location location)
|
|
||||||
{
|
|
||||||
setWorldPosition(location.getX(), location.getY(), location.getZ());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Gets the world region.
|
|
||||||
* @return the world region
|
|
||||||
*/
|
|
||||||
public synchronized WorldRegion getWorldRegion()
|
|
||||||
{
|
|
||||||
return _worldRegion;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the world region.
|
|
||||||
* @param value the new world region
|
|
||||||
*/
|
|
||||||
public synchronized void setWorldRegion(WorldRegion value)
|
|
||||||
{
|
|
||||||
_worldRegion = value;
|
|
||||||
}
|
|
||||||
}
|
|
@ -46,10 +46,8 @@ public abstract class WorldObject
|
|||||||
private WorldObjectKnownList _knownList;
|
private WorldObjectKnownList _knownList;
|
||||||
private String _name = "";
|
private String _name = "";
|
||||||
private int _objectId;
|
private int _objectId;
|
||||||
private ObjectPosition _position;
|
private WorldRegion _worldRegion;
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
// Objects can only see objects in same instancezone, instance 0 is normal world -1 the all seeing world
|
|
||||||
private int _instanceId = 0;
|
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -91,30 +89,127 @@ public abstract class WorldObject
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Position - Should remove to fully move to WorldObjectPosition
|
/**
|
||||||
public void setXYZ(int x, int y, int z)
|
* Checks if current object changed its region, if so, update references.
|
||||||
|
*/
|
||||||
|
public void updateWorldRegion()
|
||||||
{
|
{
|
||||||
getPosition().setXYZ(x, y, z);
|
if (!isSpawned())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final WorldRegion newRegion = World.getInstance().getRegion(_location);
|
||||||
|
if (newRegion != getWorldRegion())
|
||||||
|
{
|
||||||
|
getWorldRegion().removeVisibleObject(this);
|
||||||
|
|
||||||
|
setWorldRegion(newRegion);
|
||||||
|
|
||||||
|
// Add the WorldOject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion.
|
||||||
|
getWorldRegion().addVisibleObject(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the x,y,z position of the WorldObject and if necessary modify its _worldRegion.<br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Assert</u>:</b><br>
|
||||||
|
* <li>_worldRegion != null</li><br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Example of use</u>:</b><br>
|
||||||
|
* <li>Update position during and after movement, or after teleport</li><br>
|
||||||
|
* @param x the x
|
||||||
|
* @param y the y
|
||||||
|
* @param z the z
|
||||||
|
*/
|
||||||
|
public void setXYZ(int x, int y, int z)
|
||||||
|
{
|
||||||
|
_location.setXYZ(x, y, z);
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (World.getInstance().getRegion(_location) != getWorldRegion())
|
||||||
|
{
|
||||||
|
updateWorldRegion();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
LOGGER.warning("Object Id at bad coords: (x: " + getX() + ", y: " + getY() + ", z: " + getZ() + ").");
|
||||||
|
if (isPlayer())
|
||||||
|
{
|
||||||
|
((Player) this).teleToLocation(0, 0, 0);
|
||||||
|
((Player) this).sendMessage("Error with your coords, Please ask a GM for help!");
|
||||||
|
}
|
||||||
|
else if (isCreature())
|
||||||
|
{
|
||||||
|
decayMe();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the x,y,z position of the WorldObject and make it invisible.<br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Concept</u>:</b><br>
|
||||||
|
* <br>
|
||||||
|
* A WorldObject is invisble if <b>_hidden</b>=true or <b>_worldregion</b>==null<br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Assert</u>:</b><br>
|
||||||
|
* <li>_worldregion==null <i>(WorldObject is invisible)</i></li><br>
|
||||||
|
* <br>
|
||||||
|
* <b><u>Example of use</u>:</b><br>
|
||||||
|
* <li>Create a Door</li>
|
||||||
|
* <li>Restore Player</li><br>
|
||||||
|
* @param x the x
|
||||||
|
* @param y the y
|
||||||
|
* @param z the z
|
||||||
|
*/
|
||||||
public void setXYZInvisible(int x, int y, int z)
|
public void setXYZInvisible(int x, int y, int z)
|
||||||
{
|
{
|
||||||
getPosition().setXYZInvisible(x, y, z);
|
int correctX = x;
|
||||||
|
if (correctX > World.WORLD_X_MAX)
|
||||||
|
{
|
||||||
|
correctX = World.WORLD_X_MAX - 5000;
|
||||||
|
}
|
||||||
|
if (correctX < World.WORLD_X_MIN)
|
||||||
|
{
|
||||||
|
correctX = World.WORLD_X_MIN + 5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
int correctY = y;
|
||||||
|
if (correctY > World.WORLD_Y_MAX)
|
||||||
|
{
|
||||||
|
correctY = World.WORLD_Y_MAX - 5000;
|
||||||
|
}
|
||||||
|
if (correctY < World.WORLD_Y_MIN)
|
||||||
|
{
|
||||||
|
correctY = World.WORLD_Y_MIN + 5000;
|
||||||
|
}
|
||||||
|
|
||||||
|
_location.setXYZ(correctX, correctY, z);
|
||||||
|
setSpawned(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return getPosition().getX();
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return getPosition().getY();
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return getPosition().getZ();
|
return _location.getZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getHeading()
|
||||||
|
{
|
||||||
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -135,9 +230,9 @@ public abstract class WorldObject
|
|||||||
{
|
{
|
||||||
// Remove the WorldObject from the world
|
// Remove the WorldObject from the world
|
||||||
_isSpawned = false;
|
_isSpawned = false;
|
||||||
World.getInstance().removeVisibleObject(this, getPosition().getWorldRegion());
|
World.getInstance().removeVisibleObject(this, getWorldRegion());
|
||||||
World.getInstance().removeObject(this);
|
World.getInstance().removeObject(this);
|
||||||
getPosition().setWorldRegion(null);
|
setWorldRegion(null);
|
||||||
|
|
||||||
if (Config.SAVE_DROPPED_ITEM)
|
if (Config.SAVE_DROPPED_ITEM)
|
||||||
{
|
{
|
||||||
@ -163,7 +258,7 @@ public abstract class WorldObject
|
|||||||
*/
|
*/
|
||||||
public void pickupMe(Creature creature) // NOTE: Should move this function into Item because it does not apply to Creature
|
public void pickupMe(Creature creature) // NOTE: Should move this function into Item because it does not apply to Creature
|
||||||
{
|
{
|
||||||
final WorldRegion oldregion = getPosition().getWorldRegion();
|
final WorldRegion oldregion = getWorldRegion();
|
||||||
|
|
||||||
// Create a server->client GetItem packet to pick up the Item
|
// Create a server->client GetItem packet to pick up the Item
|
||||||
creature.broadcastPacket(new GetItem((Item) this, creature.getObjectId()));
|
creature.broadcastPacket(new GetItem((Item) this, creature.getObjectId()));
|
||||||
@ -171,7 +266,7 @@ public abstract class WorldObject
|
|||||||
synchronized (this)
|
synchronized (this)
|
||||||
{
|
{
|
||||||
_isSpawned = false;
|
_isSpawned = false;
|
||||||
getPosition().setWorldRegion(null);
|
setWorldRegion(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if this item is a mercenary ticket, remove the spawns!
|
// if this item is a mercenary ticket, remove the spawns!
|
||||||
@ -219,18 +314,18 @@ public abstract class WorldObject
|
|||||||
{
|
{
|
||||||
// Set the x,y,z position of the WorldObject spawn and update its _worldregion
|
// Set the x,y,z position of the WorldObject spawn and update its _worldregion
|
||||||
_isSpawned = true;
|
_isSpawned = true;
|
||||||
getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition()));
|
setWorldRegion(World.getInstance().getRegion(getLocation()));
|
||||||
|
|
||||||
// Add the WorldObject spawn in the _allobjects of World
|
// Add the WorldObject spawn in the _allobjects of World
|
||||||
World.getInstance().storeObject(this);
|
World.getInstance().storeObject(this);
|
||||||
|
|
||||||
// Add the WorldObject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
// Add the WorldObject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
||||||
getPosition().getWorldRegion().addVisibleObject(this);
|
getWorldRegion().addVisibleObject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// this can synchronize on others instances, so it's out of synchronized, to avoid deadlocks
|
// this can synchronize on others instances, so it's out of synchronized, to avoid deadlocks
|
||||||
// Add the WorldObject spawn in the world as a visible object
|
// Add the WorldObject spawn in the world as a visible object
|
||||||
World.getInstance().addVisibleObject(this, getPosition().getWorldRegion(), null);
|
World.getInstance().addVisibleObject(this, getWorldRegion(), null);
|
||||||
onSpawn();
|
onSpawn();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,8 +356,8 @@ public abstract class WorldObject
|
|||||||
spawnY = World.WORLD_Y_MIN + 5000;
|
spawnY = World.WORLD_Y_MIN + 5000;
|
||||||
}
|
}
|
||||||
|
|
||||||
getPosition().setWorldPosition(spawnX, spawnY, z);
|
_location.setXYZ(spawnX, spawnY, z);
|
||||||
getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition()));
|
setWorldRegion(World.getInstance().getRegion(getLocation()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// these can synchronize on others instances, so they're out of synchronized, to avoid deadlocks
|
// these can synchronize on others instances, so they're out of synchronized, to avoid deadlocks
|
||||||
@ -270,7 +365,7 @@ public abstract class WorldObject
|
|||||||
World.getInstance().storeObject(this);
|
World.getInstance().storeObject(this);
|
||||||
|
|
||||||
// Add the WorldObject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
// Add the WorldObject spawn to _visibleObjects and if necessary to _allplayers of its WorldRegion
|
||||||
final WorldRegion region = getPosition().getWorldRegion();
|
final WorldRegion region = getWorldRegion();
|
||||||
if (region != null)
|
if (region != null)
|
||||||
{
|
{
|
||||||
region.addVisibleObject(this);
|
region.addVisibleObject(this);
|
||||||
@ -302,7 +397,7 @@ public abstract class WorldObject
|
|||||||
|
|
||||||
public boolean isSpawned()
|
public boolean isSpawned()
|
||||||
{
|
{
|
||||||
return getPosition().getWorldRegion() != null;
|
return getWorldRegion() != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSpawned(boolean value)
|
public void setSpawned(boolean value)
|
||||||
@ -310,7 +405,7 @@ public abstract class WorldObject
|
|||||||
_isSpawned = value;
|
_isSpawned = value;
|
||||||
if (!_isSpawned)
|
if (!_isSpawned)
|
||||||
{
|
{
|
||||||
getPosition().setWorldRegion(null);
|
setWorldRegion(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -343,26 +438,27 @@ public abstract class WorldObject
|
|||||||
return _objectId;
|
return _objectId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ObjectPosition getPosition()
|
|
||||||
{
|
|
||||||
if (_position == null)
|
|
||||||
{
|
|
||||||
_position = new ObjectPosition(this);
|
|
||||||
}
|
|
||||||
return _position;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return getPosition().getWorldPosition();
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return reference to region this object is in
|
* Gets the world region.
|
||||||
|
* @return the world region
|
||||||
*/
|
*/
|
||||||
public WorldRegion getWorldRegion()
|
public synchronized WorldRegion getWorldRegion()
|
||||||
{
|
{
|
||||||
return getPosition().getWorldRegion();
|
return _worldRegion;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the world region.
|
||||||
|
* @param value the new world region
|
||||||
|
*/
|
||||||
|
public synchronized void setWorldRegion(WorldRegion value)
|
||||||
|
{
|
||||||
|
_worldRegion = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -370,7 +466,7 @@ public abstract class WorldObject
|
|||||||
*/
|
*/
|
||||||
public int getInstanceId()
|
public int getInstanceId()
|
||||||
{
|
{
|
||||||
return _instanceId;
|
return _location.getInstanceId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -378,7 +474,7 @@ public abstract class WorldObject
|
|||||||
*/
|
*/
|
||||||
public void setInstanceId(int instanceId)
|
public void setInstanceId(int instanceId)
|
||||||
{
|
{
|
||||||
_instanceId = instanceId;
|
_location.setInstanceId(instanceId);
|
||||||
|
|
||||||
// If we change it for visible objects, me must clear & revalidates knownlists
|
// If we change it for visible objects, me must clear & revalidates knownlists
|
||||||
if (_isSpawned && (_knownList != null))
|
if (_isSpawned && (_knownList != null))
|
||||||
@ -575,6 +671,6 @@ public abstract class WorldObject
|
|||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
return "" + _objectId;
|
return getClass().getSimpleName() + ":" + _name + "[" + _objectId + "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,6 @@ import org.l2jmobius.gameserver.model.Duel;
|
|||||||
import org.l2jmobius.gameserver.model.Effect;
|
import org.l2jmobius.gameserver.model.Effect;
|
||||||
import org.l2jmobius.gameserver.model.ForceBuff;
|
import org.l2jmobius.gameserver.model.ForceBuff;
|
||||||
import org.l2jmobius.gameserver.model.Location;
|
import org.l2jmobius.gameserver.model.Location;
|
||||||
import org.l2jmobius.gameserver.model.ObjectPosition;
|
|
||||||
import org.l2jmobius.gameserver.model.Party;
|
import org.l2jmobius.gameserver.model.Party;
|
||||||
import org.l2jmobius.gameserver.model.Skill;
|
import org.l2jmobius.gameserver.model.Skill;
|
||||||
import org.l2jmobius.gameserver.model.Skill.SkillTargetType;
|
import org.l2jmobius.gameserver.model.Skill.SkillTargetType;
|
||||||
@ -74,8 +73,8 @@ import org.l2jmobius.gameserver.model.actor.instance.NpcWalker;
|
|||||||
import org.l2jmobius.gameserver.model.actor.instance.Pet;
|
import org.l2jmobius.gameserver.model.actor.instance.Pet;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.RaidBoss;
|
import org.l2jmobius.gameserver.model.actor.instance.RaidBoss;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.RiftInvader;
|
import org.l2jmobius.gameserver.model.actor.instance.RiftInvader;
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.SiegeFlag;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
import org.l2jmobius.gameserver.model.actor.instance.Servitor;
|
||||||
|
import org.l2jmobius.gameserver.model.actor.instance.SiegeFlag;
|
||||||
import org.l2jmobius.gameserver.model.actor.knownlist.CreatureKnownList;
|
import org.l2jmobius.gameserver.model.actor.knownlist.CreatureKnownList;
|
||||||
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
|
import org.l2jmobius.gameserver.model.actor.stat.CreatureStat;
|
||||||
import org.l2jmobius.gameserver.model.actor.status.CreatureStatus;
|
import org.l2jmobius.gameserver.model.actor.status.CreatureStatus;
|
||||||
@ -322,10 +321,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ObjectPosition pos = getPosition();
|
final Location pos = getLocation();
|
||||||
if (pos != null)
|
if (pos != null)
|
||||||
{
|
{
|
||||||
spawnMe(getPosition().getX(), getPosition().getY(), getPosition().getZ());
|
spawnMe(pos.getX(), pos.getY(), pos.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
setTeleporting(false);
|
setTeleporting(false);
|
||||||
@ -565,7 +564,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
broadcastPacket(new TeleportToLocation(this, x, y, z, getHeading()));
|
broadcastPacket(new TeleportToLocation(this, x, y, z, getHeading()));
|
||||||
|
|
||||||
// Set the x,y,z position of the WorldObject and if necessary modify its _worldRegion.
|
// Set the x,y,z position of the WorldObject and if necessary modify its _worldRegion.
|
||||||
getPosition().setXYZ(x, y, z);
|
getLocation().setXYZ(x, y, z);
|
||||||
|
|
||||||
if (!isPlayer())
|
if (!isPlayer())
|
||||||
{
|
{
|
||||||
@ -891,7 +890,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
// Mobius: Do not move when attack is launched.
|
// Mobius: Do not move when attack is launched.
|
||||||
if (isMoving())
|
if (isMoving())
|
||||||
{
|
{
|
||||||
stopMove(getPosition().getWorldPosition());
|
stopMove(getLocation());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get the Attack Speed of the Creature (delay (in milliseconds) before next attack)
|
// Get the Attack Speed of the Creature (delay (in milliseconds) before next attack)
|
||||||
@ -4267,8 +4266,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
* <br>
|
* <br>
|
||||||
* <b><u>Concept</u>:</b><br>
|
* <b><u>Concept</u>:</b><br>
|
||||||
* <br>
|
* <br>
|
||||||
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use,
|
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use, Npcs who
|
||||||
* Npcs who don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
* don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
||||||
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
||||||
* <br>
|
* <br>
|
||||||
* <b><u>Actions</u>:</b><br>
|
* <b><u>Actions</u>:</b><br>
|
||||||
@ -4338,8 +4337,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
* <br>
|
* <br>
|
||||||
* <b><u>Concept</u>:</b><br>
|
* <b><u>Concept</u>:</b><br>
|
||||||
* <br>
|
* <br>
|
||||||
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use,
|
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use, Npcs who
|
||||||
* Npcs who don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
* don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
||||||
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
||||||
* <br>
|
* <br>
|
||||||
* <b><u>Actions</u>:</b><br>
|
* <b><u>Actions</u>:</b><br>
|
||||||
@ -4417,8 +4416,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
* <br>
|
* <br>
|
||||||
* <b><u>Concept</u>:</b><br>
|
* <b><u>Concept</u>:</b><br>
|
||||||
* <br>
|
* <br>
|
||||||
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use,
|
* A Creature owns a table of Calculators called <b>_calculators</b>. Each Calculator (a calculator per state) own a table of Func object. A Func object is a mathematic function that permit to calculate the modifier of a state (ex : REGENERATE_HP_RATE...). To reduce cache memory use, Npcs who
|
||||||
* Npcs who don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
* don't have skills share the same Calculator set called <b>NPC_STD_CALCULATOR</b>.<br>
|
||||||
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
* That's why, if a Npc is under a skill/spell effect that modify one of its state, a copy of the NPC_STD_CALCULATOR must be create in its _calculators before addind new Func object.<br>
|
||||||
* <br>
|
* <br>
|
||||||
* <b><u>Actions</u>:</b><br>
|
* <b><u>Actions</u>:</b><br>
|
||||||
@ -4613,6 +4612,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
* Return the orientation of the Creature.
|
* Return the orientation of the Creature.
|
||||||
* @return the heading
|
* @return the heading
|
||||||
*/
|
*/
|
||||||
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _heading;
|
||||||
@ -5096,7 +5096,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder
|
|||||||
// All data are contained in a CharPosition object
|
// All data are contained in a CharPosition object
|
||||||
if (pos != null)
|
if (pos != null)
|
||||||
{
|
{
|
||||||
getPosition().setXYZ(pos.getX(), pos.getY(), pos.getZ());
|
getLocation().setXYZ(pos.getX(), pos.getY(), pos.getZ());
|
||||||
setHeading(pos.getHeading());
|
setHeading(pos.getHeading());
|
||||||
|
|
||||||
if (this instanceof Player)
|
if (this instanceof Player)
|
||||||
|
@ -12433,7 +12433,7 @@ public class Player extends Playable
|
|||||||
if (getTrainedBeast() != null)
|
if (getTrainedBeast() != null)
|
||||||
{
|
{
|
||||||
getTrainedBeast().getAI().stopFollow();
|
getTrainedBeast().getAI().stopFollow();
|
||||||
getTrainedBeast().teleToLocation(getPosition().getX() + Rnd.get(-100, 100), getPosition().getY() + Rnd.get(-100, 100), getPosition().getZ());
|
getTrainedBeast().teleToLocation(getLocation().getX() + Rnd.get(-100, 100), getLocation().getY() + Rnd.get(-100, 100), getLocation().getZ());
|
||||||
getTrainedBeast().getAI().startFollow(this);
|
getTrainedBeast().getAI().startFollow(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +87,7 @@ public class Boat extends Creature
|
|||||||
final MoveData m = new MoveData();
|
final MoveData m = new MoveData();
|
||||||
|
|
||||||
// Calculate and set the heading of the Creature
|
// Calculate and set the heading of the Creature
|
||||||
getPosition().setHeading((int) (Math.atan2(-sin, -cos) * 10430.378350470452724949566316381) + 32768);
|
getLocation().setHeading((int) (Math.atan2(-sin, -cos) * 10430.378350470452724949566316381) + 32768);
|
||||||
m._xDestination = x;
|
m._xDestination = x;
|
||||||
m._yDestination = y;
|
m._yDestination = y;
|
||||||
m._zDestination = z; // this is what was requested from client
|
m._zDestination = z; // this is what was requested from client
|
||||||
|
@ -179,7 +179,7 @@ public class PlayerKnownList extends PlayableKnownList
|
|||||||
final Player otherPlayer = (Player) object;
|
final Player otherPlayer = (Player) object;
|
||||||
if (otherPlayer.isInBoat())
|
if (otherPlayer.isInBoat())
|
||||||
{
|
{
|
||||||
otherPlayer.getPosition().setWorldPosition(otherPlayer.getBoat().getLocation());
|
otherPlayer.getLocation().setLocation(otherPlayer.getBoat().getLocation());
|
||||||
activeChar.sendPacket(new CharInfo(otherPlayer, activeChar.isGM() && otherPlayer.getAppearance().isInvisible()));
|
activeChar.sendPacket(new CharInfo(otherPlayer, activeChar.isGM() && otherPlayer.getAppearance().isInvisible()));
|
||||||
|
|
||||||
final int relation = otherPlayer.getRelation(activeChar);
|
final int relation = otherPlayer.getRelation(activeChar);
|
||||||
|
@ -80,7 +80,7 @@ public class BoatPathHolder
|
|||||||
final double distance = Math.sqrt((dx * dx) + (dy * dy));
|
final double distance = Math.sqrt((dx * dx) + (dy * dy));
|
||||||
final double cos = dx / distance;
|
final double cos = dx / distance;
|
||||||
final double sin = dy / distance;
|
final double sin = dy / distance;
|
||||||
boat.getPosition().setHeading((int) (Math.atan2(-sin, -cos) * 10430.378350470452724949566316381) + 32768);
|
boat.getLocation().setHeading((int) (Math.atan2(-sin, -cos) * 10430.378350470452724949566316381) + 32768);
|
||||||
boat.vd = new VehicleDeparture(boat, path.speed1, path.speed2, path.x, path.y, path.z);
|
boat.vd = new VehicleDeparture(boat, path.speed1, path.speed2, path.x, path.y, path.z);
|
||||||
boat.boatSpeed = path.speed1;
|
boat.boatSpeed = path.speed1;
|
||||||
boat.moveToLocation(path.x, path.y, path.z, path.speed1);
|
boat.moveToLocation(path.x, path.y, path.z, path.speed1);
|
||||||
|
@ -1117,18 +1117,18 @@ public class Item extends WorldObject
|
|||||||
{
|
{
|
||||||
// Set the x,y,z position of the Item dropped and update its _worldregion
|
// Set the x,y,z position of the Item dropped and update its _worldregion
|
||||||
setSpawned(true);
|
setSpawned(true);
|
||||||
getPosition().setWorldPosition(x, y, z);
|
getLocation().setXYZ(x, y, z);
|
||||||
getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition()));
|
setWorldRegion(World.getInstance().getRegion(getLocation()));
|
||||||
|
|
||||||
// Add the Item dropped to _visibleObjects of its WorldRegion
|
// Add the Item dropped to _visibleObjects of its WorldRegion
|
||||||
getPosition().getWorldRegion().addVisibleObject(this);
|
getWorldRegion().addVisibleObject(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
setDropTime(Chronos.currentTimeMillis());
|
setDropTime(Chronos.currentTimeMillis());
|
||||||
|
|
||||||
// this can synchronize on others instancies, so it's out of synchronized, to avoid deadlocks
|
// this can synchronize on others instancies, so it's out of synchronized, to avoid deadlocks
|
||||||
// Add the Item dropped in the world as a visible object
|
// Add the Item dropped in the world as a visible object
|
||||||
World.getInstance().addVisibleObject(this, getPosition().getWorldRegion(), dropper);
|
World.getInstance().addVisibleObject(this, getWorldRegion(), dropper);
|
||||||
if (Config.SAVE_DROPPED_ITEM)
|
if (Config.SAVE_DROPPED_ITEM)
|
||||||
{
|
{
|
||||||
ItemsOnGroundManager.getInstance().save(this);
|
ItemsOnGroundManager.getInstance().save(this);
|
||||||
|
@ -48,8 +48,8 @@ import org.l2jmobius.gameserver.model.sevensigns.SevenSigns;
|
|||||||
import org.l2jmobius.gameserver.model.sevensigns.SevenSignsFestival;
|
import org.l2jmobius.gameserver.model.sevensigns.SevenSignsFestival;
|
||||||
import org.l2jmobius.gameserver.model.siege.Siege;
|
import org.l2jmobius.gameserver.model.siege.Siege;
|
||||||
import org.l2jmobius.gameserver.model.skill.conditions.ConditionPlayerState;
|
import org.l2jmobius.gameserver.model.skill.conditions.ConditionPlayerState;
|
||||||
import org.l2jmobius.gameserver.model.skill.conditions.ConditionUsingItemType;
|
|
||||||
import org.l2jmobius.gameserver.model.skill.conditions.ConditionPlayerState.CheckPlayerState;
|
import org.l2jmobius.gameserver.model.skill.conditions.ConditionPlayerState.CheckPlayerState;
|
||||||
|
import org.l2jmobius.gameserver.model.skill.conditions.ConditionUsingItemType;
|
||||||
import org.l2jmobius.gameserver.model.skill.effects.EffectTemplate;
|
import org.l2jmobius.gameserver.model.skill.effects.EffectTemplate;
|
||||||
import org.l2jmobius.gameserver.model.skill.funcs.Func;
|
import org.l2jmobius.gameserver.model.skill.funcs.Func;
|
||||||
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
import org.l2jmobius.gameserver.model.zone.ZoneId;
|
||||||
@ -1201,7 +1201,7 @@ public class Formulas
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Siege siege = SiegeManager.getInstance().getSiege(player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ());
|
final Siege siege = SiegeManager.getInstance().getSiege(player.getX(), player.getY(), player.getZ());
|
||||||
if ((siege == null) || !siege.isInProgress())
|
if ((siege == null) || !siege.isInProgress())
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -56,7 +56,7 @@ public class CannotMoveAnymoreInVehicle implements IClientIncomingPacket
|
|||||||
if (player.isInBoat() && (player.getBoat().getObjectId() == _boatId))
|
if (player.isInBoat() && (player.getBoat().getObjectId() == _boatId))
|
||||||
{
|
{
|
||||||
player.setBoatPosition(new Location(_x, _y, _z));
|
player.setBoatPosition(new Location(_x, _y, _z));
|
||||||
player.getPosition().setHeading(_heading);
|
player.setHeading(_heading);
|
||||||
player.broadcastPacket(new StopMoveInVehicle(player, _boatId));
|
player.broadcastPacket(new StopMoveInVehicle(player, _boatId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ public class RequestGetOnVehicle implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
player.setBoatPosition(new Location(_x, _y, _z));
|
player.setBoatPosition(new Location(_x, _y, _z));
|
||||||
player.setXYZ(boat.getPosition().getX(), boat.getPosition().getY(), boat.getPosition().getZ());
|
player.setXYZ(boat.getLocation().getX(), boat.getLocation().getY(), boat.getLocation().getZ());
|
||||||
player.broadcastPacket(new GetOnVehicle(player, boat, _x, _y, _z));
|
player.broadcastPacket(new GetOnVehicle(player, boat, _x, _y, _z));
|
||||||
player.revalidateZone(true);
|
player.revalidateZone(true);
|
||||||
}
|
}
|
||||||
|
@ -125,7 +125,7 @@ public class RequestRecordInfo implements IClientIncomingPacket
|
|||||||
final Player otherPlayer = (Player) object;
|
final Player otherPlayer = (Player) object;
|
||||||
if (otherPlayer.isInBoat())
|
if (otherPlayer.isInBoat())
|
||||||
{
|
{
|
||||||
otherPlayer.getPosition().setWorldPosition(otherPlayer.getBoat().getLocation());
|
otherPlayer.getLocation().setLocation(otherPlayer.getBoat().getLocation());
|
||||||
player.sendPacket(new CharInfo(otherPlayer, player.isGM() && otherPlayer.getAppearance().isInvisible()));
|
player.sendPacket(new CharInfo(otherPlayer, player.isGM() && otherPlayer.getAppearance().isInvisible()));
|
||||||
final int relation = otherPlayer.getRelation(player);
|
final int relation = otherPlayer.getRelation(player);
|
||||||
if ((otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != null) && (otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != relation))
|
if ((otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != null) && (otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != relation))
|
||||||
|
@ -28,9 +28,9 @@ public class FakePlayerInfo implements IClientOutgoingPacket
|
|||||||
public FakePlayerInfo(Npc cha)
|
public FakePlayerInfo(Npc cha)
|
||||||
{
|
{
|
||||||
_activeChar = cha;
|
_activeChar = cha;
|
||||||
_activeChar.setClientX(_activeChar.getPosition().getX());
|
_activeChar.setClientX(_activeChar.getX());
|
||||||
_activeChar.setClientY(_activeChar.getPosition().getY());
|
_activeChar.setClientY(_activeChar.getY());
|
||||||
_activeChar.setClientZ(_activeChar.getPosition().getZ());
|
_activeChar.setClientZ(_activeChar.getZ());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -52,7 +52,7 @@ public class OnVehicleCheckLocation implements IClientOutgoingPacket
|
|||||||
packet.writeD(_x);
|
packet.writeD(_x);
|
||||||
packet.writeD(_y);
|
packet.writeD(_y);
|
||||||
packet.writeD(_z);
|
packet.writeD(_z);
|
||||||
packet.writeD(_boat.getPosition().getHeading());
|
packet.writeD(_boat.getHeading());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,8 @@ import org.l2jmobius.gameserver.network.OutgoingPackets;
|
|||||||
|
|
||||||
public class PlaySound implements IClientOutgoingPacket
|
public class PlaySound implements IClientOutgoingPacket
|
||||||
{
|
{
|
||||||
|
private static final Location DUMMY_LOC = new Location(0, 0, 0);
|
||||||
|
|
||||||
private final int _unknown;
|
private final int _unknown;
|
||||||
private final String _soundFile;
|
private final String _soundFile;
|
||||||
private final boolean _isObject;
|
private final boolean _isObject;
|
||||||
@ -40,7 +42,7 @@ public class PlaySound implements IClientOutgoingPacket
|
|||||||
_soundFile = soundFile;
|
_soundFile = soundFile;
|
||||||
_isObject = false;
|
_isObject = false;
|
||||||
_objectId = 0;
|
_objectId = 0;
|
||||||
_loc = Location.DUMMY_LOC;
|
_loc = DUMMY_LOC;
|
||||||
_duration = 0;
|
_duration = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,7 +57,7 @@ public class PlaySound implements IClientOutgoingPacket
|
|||||||
_soundFile = soundFile;
|
_soundFile = soundFile;
|
||||||
_isObject = false;
|
_isObject = false;
|
||||||
_objectId = 0;
|
_objectId = 0;
|
||||||
_loc = Location.DUMMY_LOC;
|
_loc = DUMMY_LOC;
|
||||||
_duration = 0;
|
_duration = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ public class StopMoveInVehicle implements IClientOutgoingPacket
|
|||||||
packet.writeD(_player.getBoatPosition().getX());
|
packet.writeD(_player.getBoatPosition().getX());
|
||||||
packet.writeD(_player.getBoatPosition().getY());
|
packet.writeD(_player.getBoatPosition().getY());
|
||||||
packet.writeD(_player.getBoatPosition().getZ());
|
packet.writeD(_player.getBoatPosition().getZ());
|
||||||
packet.writeD(_player.getPosition().getHeading());
|
packet.writeD(_player.getHeading());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ public class VehicleInfo implements IClientOutgoingPacket
|
|||||||
packet.writeD(_boat.getX());
|
packet.writeD(_boat.getX());
|
||||||
packet.writeD(_boat.getY());
|
packet.writeD(_boat.getY());
|
||||||
packet.writeD(_boat.getZ());
|
packet.writeD(_boat.getZ());
|
||||||
packet.writeD(_boat.getPosition().getHeading());
|
packet.writeD(_boat.getHeading());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ public class Util
|
|||||||
{
|
{
|
||||||
return 1000000;
|
return 1000000;
|
||||||
}
|
}
|
||||||
return calculateDistance(obj1.getPosition().getX(), obj1.getPosition().getY(), obj1.getPosition().getZ(), obj2.getPosition().getX(), obj2.getPosition().getY(), obj2.getPosition().getZ(), includeZAxis);
|
return calculateDistance(obj1.getX(), obj1.getY(), obj1.getZ(), obj2.getX(), obj2.getY(), obj2.getZ(), includeZAxis);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,21 +59,13 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private volatile int _instanceId = 0;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -578,7 +570,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -588,7 +580,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -598,7 +590,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -608,7 +600,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -618,7 +610,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getInstanceId()
|
public int getInstanceId()
|
||||||
{
|
{
|
||||||
return _instanceId;
|
return _location.getInstanceId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -628,7 +620,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading, _instanceId);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -640,9 +632,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -677,7 +667,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -688,12 +678,13 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setInstanceId(int instanceId)
|
public void setInstanceId(int instanceId)
|
||||||
{
|
{
|
||||||
if ((instanceId < 0) || (_instanceId == instanceId))
|
final int oldInstanceId = getInstanceId();
|
||||||
|
if ((instanceId < 0) || (oldInstanceId == instanceId))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Instance oldI = InstanceManager.getInstance().getInstance(getInstanceId());
|
final Instance oldI = InstanceManager.getInstance().getInstance(oldInstanceId);
|
||||||
final Instance newI = InstanceManager.getInstance().getInstance(instanceId);
|
final Instance newI = InstanceManager.getInstance().getInstance(instanceId);
|
||||||
if (newI == null)
|
if (newI == null)
|
||||||
{
|
{
|
||||||
@ -703,7 +694,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
if (isPlayer())
|
if (isPlayer())
|
||||||
{
|
{
|
||||||
final Player player = getActingPlayer();
|
final Player player = getActingPlayer();
|
||||||
if ((_instanceId > 0) && (oldI != null))
|
if ((oldInstanceId > 0) && (oldI != null))
|
||||||
{
|
{
|
||||||
oldI.removePlayer(_objectId);
|
oldI.removePlayer(_objectId);
|
||||||
if (oldI.isShowTimer())
|
if (oldI.isShowTimer())
|
||||||
@ -727,7 +718,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
else if (isNpc())
|
else if (isNpc())
|
||||||
{
|
{
|
||||||
final Npc npc = (Npc) this;
|
final Npc npc = (Npc) this;
|
||||||
if ((_instanceId > 0) && (oldI != null))
|
if ((oldInstanceId > 0) && (oldI != null))
|
||||||
{
|
{
|
||||||
oldI.removeNpc(npc);
|
oldI.removeNpc(npc);
|
||||||
}
|
}
|
||||||
@ -737,7 +728,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_instanceId = instanceId;
|
_location.setInstanceId(instanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -766,11 +757,9 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
_location.setInstanceId(loc.getInstanceId());
|
||||||
_heading = loc.getHeading();
|
|
||||||
_instanceId = loc.getInstanceId();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -782,7 +771,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -804,7 +793,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -826,7 +815,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -848,7 +837,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,21 +59,13 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private volatile int _instanceId = 0;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -578,7 +570,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -588,7 +580,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -598,7 +590,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -608,7 +600,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -618,7 +610,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getInstanceId()
|
public int getInstanceId()
|
||||||
{
|
{
|
||||||
return _instanceId;
|
return _location.getInstanceId();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -628,7 +620,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading, _instanceId);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -640,9 +632,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -677,7 +667,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -688,12 +678,13 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setInstanceId(int instanceId)
|
public void setInstanceId(int instanceId)
|
||||||
{
|
{
|
||||||
if ((instanceId < 0) || (_instanceId == instanceId))
|
final int oldInstanceId = getInstanceId();
|
||||||
|
if ((instanceId < 0) || (oldInstanceId == instanceId))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Instance oldI = InstanceManager.getInstance().getInstance(getInstanceId());
|
final Instance oldI = InstanceManager.getInstance().getInstance(oldInstanceId);
|
||||||
final Instance newI = InstanceManager.getInstance().getInstance(instanceId);
|
final Instance newI = InstanceManager.getInstance().getInstance(instanceId);
|
||||||
if (newI == null)
|
if (newI == null)
|
||||||
{
|
{
|
||||||
@ -703,7 +694,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
if (isPlayer())
|
if (isPlayer())
|
||||||
{
|
{
|
||||||
final Player player = getActingPlayer();
|
final Player player = getActingPlayer();
|
||||||
if ((_instanceId > 0) && (oldI != null))
|
if ((oldInstanceId > 0) && (oldI != null))
|
||||||
{
|
{
|
||||||
oldI.removePlayer(_objectId);
|
oldI.removePlayer(_objectId);
|
||||||
if (oldI.isShowTimer())
|
if (oldI.isShowTimer())
|
||||||
@ -727,7 +718,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
else if (isNpc())
|
else if (isNpc())
|
||||||
{
|
{
|
||||||
final Npc npc = (Npc) this;
|
final Npc npc = (Npc) this;
|
||||||
if ((_instanceId > 0) && (oldI != null))
|
if ((oldInstanceId > 0) && (oldI != null))
|
||||||
{
|
{
|
||||||
oldI.removeNpc(npc);
|
oldI.removeNpc(npc);
|
||||||
}
|
}
|
||||||
@ -737,7 +728,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_instanceId = instanceId;
|
_location.setInstanceId(instanceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -766,11 +757,9 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
_location.setInstanceId(loc.getInstanceId());
|
||||||
_heading = loc.getHeading();
|
|
||||||
_instanceId = loc.getInstanceId();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -782,7 +771,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -804,7 +793,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -826,7 +815,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -848,7 +837,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
private int _objectId;
|
private int _objectId;
|
||||||
/** World Region */
|
/** World Region */
|
||||||
private WorldRegion _worldRegion;
|
private WorldRegion _worldRegion;
|
||||||
|
/** Location */
|
||||||
|
private final Location _location = new Location(0, 0, -10000);
|
||||||
|
/** Instance */
|
||||||
|
private Instance _instance;
|
||||||
/** Instance type */
|
/** Instance type */
|
||||||
private InstanceType _instanceType;
|
private InstanceType _instanceType;
|
||||||
private Map<String, Object> _scripts;
|
|
||||||
/** X coordinate */
|
|
||||||
private volatile int _x = 0;
|
|
||||||
/** Y coordinate */
|
|
||||||
private volatile int _y = 0;
|
|
||||||
/** Z coordinate */
|
|
||||||
private volatile int _z = -10000;
|
|
||||||
/** Orientation */
|
|
||||||
private volatile int _heading = 0;
|
|
||||||
/** Instance id of object. 0 - Global */
|
|
||||||
private Instance _instance;
|
|
||||||
private boolean _isSpawned;
|
private boolean _isSpawned;
|
||||||
private boolean _isInvisible;
|
private boolean _isInvisible;
|
||||||
private boolean _isTargetable = true;
|
private boolean _isTargetable = true;
|
||||||
|
private Map<String, Object> _scripts;
|
||||||
|
|
||||||
public WorldObject(int objectId)
|
public WorldObject(int objectId)
|
||||||
{
|
{
|
||||||
@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getX()
|
public int getX()
|
||||||
{
|
{
|
||||||
return _x;
|
return _location.getX();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getY()
|
public int getY()
|
||||||
{
|
{
|
||||||
return _y;
|
return _location.getY();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getZ()
|
public int getZ()
|
||||||
{
|
{
|
||||||
return _z;
|
return _location.getZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public int getHeading()
|
public int getHeading()
|
||||||
{
|
{
|
||||||
return _heading;
|
return _location.getHeading();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public Location getLocation()
|
public Location getLocation()
|
||||||
{
|
{
|
||||||
return new Location(_x, _y, _z, _heading);
|
return _location;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -647,9 +641,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setXYZ(int newX, int newY, int newZ)
|
public void setXYZ(int newX, int newY, int newZ)
|
||||||
{
|
{
|
||||||
_x = newX;
|
_location.setXYZ(newX, newY, newZ);
|
||||||
_y = newY;
|
|
||||||
_z = newZ;
|
|
||||||
|
|
||||||
if (_isSpawned)
|
if (_isSpawned)
|
||||||
{
|
{
|
||||||
@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setHeading(int newHeading)
|
public void setHeading(int newHeading)
|
||||||
{
|
{
|
||||||
_heading = newHeading;
|
_location.setHeading(newHeading);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
@Override
|
@Override
|
||||||
public void setLocation(Location loc)
|
public void setLocation(Location loc)
|
||||||
{
|
{
|
||||||
_x = loc.getX();
|
_location.setXYZ(loc.getX(), loc.getY(), loc.getZ());
|
||||||
_y = loc.getY();
|
_location.setHeading(loc.getHeading());
|
||||||
_z = loc.getZ();
|
|
||||||
_heading = loc.getHeading();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance2D(int x, int y, int z)
|
public double calculateDistance2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -773,7 +763,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistance3D(int x, int y, int z)
|
public double calculateDistance3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.sqrt(Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2));
|
return Math.sqrt(Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -795,7 +785,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq2D(int x, int y, int z)
|
public double calculateDistanceSq2D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -817,7 +807,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif
|
|||||||
*/
|
*/
|
||||||
public double calculateDistanceSq3D(int x, int y, int z)
|
public double calculateDistanceSq3D(int x, int y, int z)
|
||||||
{
|
{
|
||||||
return Math.pow(x - _x, 2) + Math.pow(y - _y, 2) + Math.pow(z - _z, 2);
|
return Math.pow(x - getX(), 2) + Math.pow(y - getY(), 2) + Math.pow(z - getZ(), 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user