From 3227e80226a4bfc3220d35676888f0088e9b7261 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 23 Nov 2021 00:45:29 +0000 Subject: [PATCH] Store WorldObject location in a Location object. --- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/data/xml/BoatData.java | 2 +- .../instancemanager/ItemsOnGroundManager.java | 8 +- .../l2jmobius/gameserver/model/Location.java | 64 +++-- .../gameserver/model/ObjectPosition.java | 250 ------------------ .../gameserver/model/WorldObject.java | 174 +++++++++--- .../gameserver/model/actor/Creature.java | 26 +- .../gameserver/model/actor/Player.java | 2 +- .../gameserver/model/actor/instance/Boat.java | 2 +- .../actor/knownlist/PlayerKnownList.java | 2 +- .../model/holders/BoatPathHolder.java | 2 +- .../gameserver/model/item/instance/Item.java | 8 +- .../gameserver/model/skill/Formulas.java | 4 +- .../CannotMoveAnymoreInVehicle.java | 2 +- .../clientpackets/RequestGetOnVehicle.java | 2 +- .../clientpackets/RequestRecordInfo.java | 2 +- .../network/serverpackets/FakePlayerInfo.java | 6 +- .../serverpackets/OnVehicleCheckLocation.java | 2 +- .../network/serverpackets/PlaySound.java | 6 +- .../serverpackets/StopMoveInVehicle.java | 2 +- .../network/serverpackets/VehicleInfo.java | 2 +- .../org/l2jmobius/gameserver/util/Util.java | 2 +- .../gameserver/data/xml/BoatData.java | 2 +- .../instancemanager/ItemsOnGroundManager.java | 8 +- .../l2jmobius/gameserver/model/Location.java | 64 +++-- .../gameserver/model/ObjectPosition.java | 250 ------------------ .../gameserver/model/WorldObject.java | 174 +++++++++--- .../gameserver/model/actor/Creature.java | 26 +- .../gameserver/model/actor/Player.java | 2 +- .../gameserver/model/actor/instance/Boat.java | 2 +- .../actor/knownlist/PlayerKnownList.java | 2 +- .../model/holders/BoatPathHolder.java | 2 +- .../gameserver/model/item/instance/Item.java | 8 +- .../gameserver/model/skill/Formulas.java | 4 +- .../CannotMoveAnymoreInVehicle.java | 2 +- .../clientpackets/RequestGetOnVehicle.java | 2 +- .../clientpackets/RequestRecordInfo.java | 2 +- .../network/serverpackets/FakePlayerInfo.java | 6 +- .../serverpackets/OnVehicleCheckLocation.java | 2 +- .../network/serverpackets/PlaySound.java | 6 +- .../serverpackets/StopMoveInVehicle.java | 2 +- .../network/serverpackets/VehicleInfo.java | 2 +- .../org/l2jmobius/gameserver/util/Util.java | 2 +- .../gameserver/model/WorldObject.java | 59 ++--- .../gameserver/model/WorldObject.java | 59 ++--- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- .../gameserver/model/WorldObject.java | 46 ++-- 65 files changed, 872 insertions(+), 1352 deletions(-) delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/ObjectPosition.java delete mode 100644 L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/ObjectPosition.java diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_10.0_MasterClass/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/data/xml/BoatData.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/data/xml/BoatData.java index 0106f123eb..320c97e133 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/data/xml/BoatData.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/data/xml/BoatData.java @@ -123,7 +123,7 @@ public class BoatData implements IXmlReader final CreatureTemplate template = new CreatureTemplate(npcDat); 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.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"))); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java index ca02cfb172..e0e5aaf285 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java @@ -127,13 +127,13 @@ public class ItemsOnGroundManager item.setEnchantLevel(result.getInt(4)); } - item.getPosition().setWorldPosition(result.getInt(5), result.getInt(6), result.getInt(7)); - item.getPosition().setWorldRegion(World.getInstance().getRegion(item.getLocation())); - item.getPosition().getWorldRegion().addVisibleObject(item); + item.setXYZ(result.getInt(5), result.getInt(6), result.getInt(7)); + item.setWorldRegion(World.getInstance().getRegion(item.getLocation())); + item.getWorldRegion().addVisibleObject(item); item.setDropTime(result.getLong(8)); item.setProtected(result.getLong(8) == -1); item.setSpawned(true); - World.getInstance().addVisibleObject(item, item.getPosition().getWorldRegion(), null); + World.getInstance().addVisibleObject(item, item.getWorldRegion(), null); _items.add(item); count++; // add to ItemsAutoDestroy only items not protected diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/Location.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/Location.java index 71dba4e137..82bedf96e6 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/Location.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/Location.java @@ -25,16 +25,16 @@ import org.l2jmobius.commons.util.Point2D; */ public class Location extends Point2D { - public static final Location DUMMY_LOC = new Location(0, 0, 0); - protected volatile int _z; protected volatile int _heading; + protected volatile int _instanceId; public Location(int x, int y, int z) { super(x, y); _z = z; _heading = 0; + _instanceId = 0; } public Location(int x, int y, int z, int heading) @@ -42,11 +42,12 @@ public class Location extends Point2D super(x, y); _z = z; _heading = heading; + _instanceId = 0; } 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) @@ -54,6 +55,7 @@ public class Location extends Point2D super(x, y); _z = z; _heading = heading; + _instanceId = instanceId; } public Location(StatSet set) @@ -61,6 +63,7 @@ public class Location extends Point2D super(set.getInt("x", 0), set.getInt("y", 0)); _z = set.getInt("z", 0); _heading = set.getInt("heading", 0); + _instanceId = set.getInt("instanceId", 0); } /** @@ -132,12 +135,36 @@ public class Location extends Point2D _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) { _x = loc.getX(); _y = loc.getY(); _z = loc.getZ(); _heading = loc.getHeading(); + _instanceId = loc.getInstanceId(); } @Override @@ -145,12 +172,13 @@ public class Location extends Point2D { super.clean(); _z = 0; + _instanceId = 0; } @Override public Location clone() { - return new Location(_x, _y, _z); + return new Location(_x, _y, _z, _heading, _instanceId); } @Override @@ -159,31 +187,31 @@ public class Location extends Point2D 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 y : The Y coord to test. - * @param z : The X coord to test. - * @return True if all coordinates equals this {@link Point2D} coordinates. + * @param z : The Z coord to test. + * @return True if all coordinates equals this {@link Location} coordinates. */ public boolean equals(int x, int y, int 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 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; } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/ObjectPosition.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/ObjectPosition.java deleted file mode 100644 index e28c0cda38..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/ObjectPosition.java +++ /dev/null @@ -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 . - */ -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.
- *
- * Assert:
- *
  • _worldRegion != null

  • - *
    - * Example of use:
    - *
  • Update position during and after movement, or after teleport

  • - * @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.
    - *
    - * Concept:
    - *
    - * A WorldObject is invisble if _hidden=true or _worldregion==null
    - *
    - * Assert:
    - *
  • _worldregion==null (WorldObject is invisible)

  • - *
    - * Example of use:
    - *
  • Create a Door
  • - *
  • Restore Player

  • - * @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; - } -} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/WorldObject.java index de39871515..09bede65a6 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -46,10 +46,8 @@ public abstract class WorldObject private WorldObjectKnownList _knownList; private String _name = ""; private int _objectId; - private ObjectPosition _position; - - // Objects can only see objects in same instancezone, instance 0 is normal world -1 the all seeing world - private int _instanceId = 0; + private WorldRegion _worldRegion; + private final Location _location = new Location(0, 0, -10000); 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.
    + *
    + * Assert:
    + *
  • _worldRegion != null

  • + *
    + * Example of use:
    + *
  • Update position during and after movement, or after teleport

  • + * @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.
    + *
    + * Concept:
    + *
    + * A WorldObject is invisble if _hidden=true or _worldregion==null
    + *
    + * Assert:
    + *
  • _worldregion==null (WorldObject is invisible)

  • + *
    + * Example of use:
    + *
  • Create a Door
  • + *
  • Restore Player

  • + * @param x the x + * @param y the y + * @param z the 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() { - return getPosition().getX(); + return _location.getX(); } public int getY() { - return getPosition().getY(); + return _location.getY(); } 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 _isSpawned = false; - World.getInstance().removeVisibleObject(this, getPosition().getWorldRegion()); + World.getInstance().removeVisibleObject(this, getWorldRegion()); World.getInstance().removeObject(this); - getPosition().setWorldRegion(null); + setWorldRegion(null); 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 { - final WorldRegion oldregion = getPosition().getWorldRegion(); + final WorldRegion oldregion = getWorldRegion(); // Create a server->client GetItem packet to pick up the Item creature.broadcastPacket(new GetItem((Item) this, creature.getObjectId())); @@ -171,7 +266,7 @@ public abstract class WorldObject synchronized (this) { _isSpawned = false; - getPosition().setWorldRegion(null); + setWorldRegion(null); } // 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 _isSpawned = true; - getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition())); + setWorldRegion(World.getInstance().getRegion(getLocation())); // Add the WorldObject spawn in the _allobjects of World World.getInstance().storeObject(this); // 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 // 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(); } @@ -261,8 +356,8 @@ public abstract class WorldObject spawnY = World.WORLD_Y_MIN + 5000; } - getPosition().setWorldPosition(spawnX, spawnY, z); - getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition())); + _location.setXYZ(spawnX, spawnY, z); + setWorldRegion(World.getInstance().getRegion(getLocation())); } // 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); // 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) { region.addVisibleObject(this); @@ -302,7 +397,7 @@ public abstract class WorldObject public boolean isSpawned() { - return getPosition().getWorldRegion() != null; + return getWorldRegion() != null; } public void setSpawned(boolean value) @@ -310,7 +405,7 @@ public abstract class WorldObject _isSpawned = value; if (!_isSpawned) { - getPosition().setWorldRegion(null); + setWorldRegion(null); } } @@ -343,26 +438,27 @@ public abstract class WorldObject return _objectId; } - public ObjectPosition getPosition() - { - if (_position == null) - { - _position = new ObjectPosition(this); - } - return _position; - } - 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() { - return _instanceId; + return _location.getInstanceId(); } /** @@ -378,7 +474,7 @@ public abstract class WorldObject */ public void setInstanceId(int instanceId) { - _instanceId = instanceId; + _location.setInstanceId(instanceId); // If we change it for visible objects, me must clear & revalidates knownlists if (_isSpawned && (_knownList != null)) @@ -575,6 +671,6 @@ public abstract class WorldObject @Override public String toString() { - return "" + _objectId; + return getClass().getSimpleName() + ":" + _name + "[" + _objectId + "]"; } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Creature.java index f6839cfb45..6931af4acd 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -52,7 +52,6 @@ import org.l2jmobius.gameserver.model.ChanceSkillList; import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.ForceBuff; import org.l2jmobius.gameserver.model.Location; -import org.l2jmobius.gameserver.model.ObjectPosition; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Skill; 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.RaidBoss; 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.SiegeFlag; import org.l2jmobius.gameserver.model.actor.knownlist.CreatureKnownList; import org.l2jmobius.gameserver.model.actor.stat.CreatureStat; import org.l2jmobius.gameserver.model.actor.status.CreatureStatus; @@ -320,10 +319,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder return; } - final ObjectPosition pos = getPosition(); + final Location pos = getLocation(); if (pos != null) { - spawnMe(getPosition().getX(), getPosition().getY(), getPosition().getZ()); + spawnMe(pos.getX(), pos.getY(), pos.getZ()); } setTeleporting(false); @@ -563,7 +562,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder broadcastPacket(new TeleportToLocation(this, x, y, z, getHeading())); // 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()) { @@ -865,7 +864,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder // Mobius: Do not move when attack is launched. if (isMoving()) { - stopMove(getPosition().getWorldPosition()); + stopMove(getLocation()); } // 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 *
    * Concept:
    *
    - * A Creature owns a table of Calculators called _calculators. 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 don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    + * A Creature owns a table of Calculators called _calculators. 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 + * don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    * 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.
    *
    * Actions:
    @@ -4292,8 +4291,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder *
    * Concept:
    *
    - * A Creature owns a table of Calculators called _calculators. 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 don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    + * A Creature owns a table of Calculators called _calculators. 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 + * don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    * 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.
    *
    * Actions:
    @@ -4371,8 +4370,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder *
    * Concept:
    *
    - * A Creature owns a table of Calculators called _calculators. 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 don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    + * A Creature owns a table of Calculators called _calculators. 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 + * don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    * 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.
    *
    * Actions:
    @@ -4567,6 +4566,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * Return the orientation of the Creature. * @return the heading */ + @Override public int getHeading() { return _heading; @@ -5050,7 +5050,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder // All data are contained in a CharPosition object if (pos != null) { - getPosition().setXYZ(pos.getX(), pos.getY(), pos.getZ()); + getLocation().setXYZ(pos.getX(), pos.getY(), pos.getZ()); setHeading(pos.getHeading()); if (this instanceof Player) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Player.java index 8b38c30432..6e7dac538a 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -12128,7 +12128,7 @@ public class Player extends Playable if (getTrainedBeast() != null) { 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); } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/Boat.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/Boat.java index 4fd4b47939..97e14f3c4c 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/Boat.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/Boat.java @@ -87,7 +87,7 @@ public class Boat extends Creature final MoveData m = new MoveData(); // 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._yDestination = y; m._zDestination = z; // this is what was requested from client diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java index 7690aee611..8141cea7fc 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java @@ -179,7 +179,7 @@ public class PlayerKnownList extends PlayableKnownList final Player otherPlayer = (Player) object; 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())); final int relation = otherPlayer.getRelation(activeChar); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/holders/BoatPathHolder.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/holders/BoatPathHolder.java index f317fa5ab7..224f2c1d93 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/holders/BoatPathHolder.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/holders/BoatPathHolder.java @@ -80,7 +80,7 @@ public class BoatPathHolder final double distance = Math.sqrt((dx * dx) + (dy * dy)); final double cos = dx / 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.boatSpeed = path.speed1; boat.moveToLocation(path.x, path.y, path.z, path.speed1); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 32d8a5b973..5efde536c4 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -1056,18 +1056,18 @@ public class Item extends WorldObject { // Set the x,y,z position of the Item dropped and update its _worldregion setSpawned(true); - getPosition().setWorldPosition(x, y, z); - getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition())); + getLocation().setXYZ(x, y, z); + setWorldRegion(World.getInstance().getRegion(getLocation())); // Add the Item dropped to _visibleObjects of its WorldRegion - getPosition().getWorldRegion().addVisibleObject(this); + getWorldRegion().addVisibleObject(this); } setDropTime(Chronos.currentTimeMillis()); // 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 - World.getInstance().addVisibleObject(this, getPosition().getWorldRegion(), dropper); + World.getInstance().addVisibleObject(this, getWorldRegion(), dropper); if (Config.SAVE_DROPPED_ITEM) { ItemsOnGroundManager.getInstance().save(this); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skill/Formulas.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skill/Formulas.java index cb19ada6af..9896dee02a 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skill/Formulas.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skill/Formulas.java @@ -48,8 +48,8 @@ import org.l2jmobius.gameserver.model.sevensigns.SevenSigns; import org.l2jmobius.gameserver.model.sevensigns.SevenSignsFestival; import org.l2jmobius.gameserver.model.siege.Siege; 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.ConditionUsingItemType; import org.l2jmobius.gameserver.model.skill.effects.EffectTemplate; import org.l2jmobius.gameserver.model.skill.funcs.Func; import org.l2jmobius.gameserver.model.zone.ZoneId; @@ -1201,7 +1201,7 @@ public class Formulas 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()) { return 0; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/CannotMoveAnymoreInVehicle.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/CannotMoveAnymoreInVehicle.java index 0a1c185758..15fce60dd6 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/CannotMoveAnymoreInVehicle.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/CannotMoveAnymoreInVehicle.java @@ -56,7 +56,7 @@ public class CannotMoveAnymoreInVehicle implements IClientIncomingPacket if (player.isInBoat() && (player.getBoat().getObjectId() == _boatId)) { player.setBoatPosition(new Location(_x, _y, _z)); - player.getPosition().setHeading(_heading); + player.setHeading(_heading); player.broadcastPacket(new StopMoveInVehicle(player, _boatId)); } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/RequestGetOnVehicle.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/RequestGetOnVehicle.java index 436ed3aa72..f1abc161a4 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/RequestGetOnVehicle.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/RequestGetOnVehicle.java @@ -57,7 +57,7 @@ public class RequestGetOnVehicle implements IClientIncomingPacket } 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.revalidateZone(true); } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java index 86a18d56e9..aad048e0be 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java @@ -125,7 +125,7 @@ public class RequestRecordInfo implements IClientIncomingPacket final Player otherPlayer = (Player) object; 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())); final int relation = otherPlayer.getRelation(player); if ((otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != null) && (otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != relation)) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java index bb251c2c4a..c69f5bfe64 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java @@ -28,9 +28,9 @@ public class FakePlayerInfo implements IClientOutgoingPacket public FakePlayerInfo(Npc cha) { _activeChar = cha; - _activeChar.setClientX(_activeChar.getPosition().getX()); - _activeChar.setClientY(_activeChar.getPosition().getY()); - _activeChar.setClientZ(_activeChar.getPosition().getZ()); + _activeChar.setClientX(_activeChar.getX()); + _activeChar.setClientY(_activeChar.getY()); + _activeChar.setClientZ(_activeChar.getZ()); } @Override diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/OnVehicleCheckLocation.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/OnVehicleCheckLocation.java index d00fe7661c..b8c2dd8f54 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/OnVehicleCheckLocation.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/OnVehicleCheckLocation.java @@ -52,7 +52,7 @@ public class OnVehicleCheckLocation implements IClientOutgoingPacket packet.writeD(_x); packet.writeD(_y); packet.writeD(_z); - packet.writeD(_boat.getPosition().getHeading()); + packet.writeD(_boat.getHeading()); return true; } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java index afd859edf9..8d960fb838 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java @@ -23,6 +23,8 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class PlaySound implements IClientOutgoingPacket { + private static final Location DUMMY_LOC = new Location(0, 0, 0); + private final int _unknown; private final String _soundFile; private final boolean _isObject; @@ -40,7 +42,7 @@ public class PlaySound implements IClientOutgoingPacket _soundFile = soundFile; _isObject = false; _objectId = 0; - _loc = Location.DUMMY_LOC; + _loc = DUMMY_LOC; _duration = 0; } @@ -55,7 +57,7 @@ public class PlaySound implements IClientOutgoingPacket _soundFile = soundFile; _isObject = false; _objectId = 0; - _loc = Location.DUMMY_LOC; + _loc = DUMMY_LOC; _duration = 0; } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/StopMoveInVehicle.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/StopMoveInVehicle.java index 38ccbb540f..900d029e09 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/StopMoveInVehicle.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/StopMoveInVehicle.java @@ -47,7 +47,7 @@ public class StopMoveInVehicle implements IClientOutgoingPacket packet.writeD(_player.getBoatPosition().getX()); packet.writeD(_player.getBoatPosition().getY()); packet.writeD(_player.getBoatPosition().getZ()); - packet.writeD(_player.getPosition().getHeading()); + packet.writeD(_player.getHeading()); return true; } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/VehicleInfo.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/VehicleInfo.java index 04fea5512a..5616438800 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/VehicleInfo.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/VehicleInfo.java @@ -43,7 +43,7 @@ public class VehicleInfo implements IClientOutgoingPacket packet.writeD(_boat.getX()); packet.writeD(_boat.getY()); packet.writeD(_boat.getZ()); - packet.writeD(_boat.getPosition().getHeading()); + packet.writeD(_boat.getHeading()); return true; } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/util/Util.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/util/Util.java index 9461e16a67..17337db2b1 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/util/Util.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/util/Util.java @@ -114,7 +114,7 @@ public class Util { 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); } /** diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/data/xml/BoatData.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/data/xml/BoatData.java index 0106f123eb..320c97e133 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/data/xml/BoatData.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/data/xml/BoatData.java @@ -123,7 +123,7 @@ public class BoatData implements IXmlReader final CreatureTemplate template = new CreatureTemplate(npcDat); 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.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"))); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java index b659598212..b01ece23b1 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/instancemanager/ItemsOnGroundManager.java @@ -127,13 +127,13 @@ public class ItemsOnGroundManager item.setEnchantLevel(result.getInt(4)); } - item.getPosition().setWorldPosition(result.getInt(5), result.getInt(6), result.getInt(7)); - item.getPosition().setWorldRegion(World.getInstance().getRegion(item.getLocation())); - item.getPosition().getWorldRegion().addVisibleObject(item); + item.setXYZ(result.getInt(5), result.getInt(6), result.getInt(7)); + item.setWorldRegion(World.getInstance().getRegion(item.getLocation())); + item.getWorldRegion().addVisibleObject(item); item.setDropTime(result.getLong(8)); item.setProtected(result.getLong(8) == -1); item.setSpawned(true); - World.getInstance().addVisibleObject(item, item.getPosition().getWorldRegion(), null); + World.getInstance().addVisibleObject(item, item.getWorldRegion(), null); _items.add(item); count++; // add to ItemsAutoDestroy only items not protected diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Location.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Location.java index 71dba4e137..82bedf96e6 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Location.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Location.java @@ -25,16 +25,16 @@ import org.l2jmobius.commons.util.Point2D; */ public class Location extends Point2D { - public static final Location DUMMY_LOC = new Location(0, 0, 0); - protected volatile int _z; protected volatile int _heading; + protected volatile int _instanceId; public Location(int x, int y, int z) { super(x, y); _z = z; _heading = 0; + _instanceId = 0; } public Location(int x, int y, int z, int heading) @@ -42,11 +42,12 @@ public class Location extends Point2D super(x, y); _z = z; _heading = heading; + _instanceId = 0; } 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) @@ -54,6 +55,7 @@ public class Location extends Point2D super(x, y); _z = z; _heading = heading; + _instanceId = instanceId; } public Location(StatSet set) @@ -61,6 +63,7 @@ public class Location extends Point2D super(set.getInt("x", 0), set.getInt("y", 0)); _z = set.getInt("z", 0); _heading = set.getInt("heading", 0); + _instanceId = set.getInt("instanceId", 0); } /** @@ -132,12 +135,36 @@ public class Location extends Point2D _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) { _x = loc.getX(); _y = loc.getY(); _z = loc.getZ(); _heading = loc.getHeading(); + _instanceId = loc.getInstanceId(); } @Override @@ -145,12 +172,13 @@ public class Location extends Point2D { super.clean(); _z = 0; + _instanceId = 0; } @Override public Location clone() { - return new Location(_x, _y, _z); + return new Location(_x, _y, _z, _heading, _instanceId); } @Override @@ -159,31 +187,31 @@ public class Location extends Point2D 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 y : The Y coord to test. - * @param z : The X coord to test. - * @return True if all coordinates equals this {@link Point2D} coordinates. + * @param z : The Z coord to test. + * @return True if all coordinates equals this {@link Location} coordinates. */ public boolean equals(int x, int y, int 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 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; } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/ObjectPosition.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/ObjectPosition.java deleted file mode 100644 index e28c0cda38..0000000000 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/ObjectPosition.java +++ /dev/null @@ -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 . - */ -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.
    - *
    - * Assert:
    - *
  • _worldRegion != null

  • - *
    - * Example of use:
    - *
  • Update position during and after movement, or after teleport

  • - * @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.
    - *
    - * Concept:
    - *
    - * A WorldObject is invisble if _hidden=true or _worldregion==null
    - *
    - * Assert:
    - *
  • _worldregion==null (WorldObject is invisible)

  • - *
    - * Example of use:
    - *
  • Create a Door
  • - *
  • Restore Player

  • - * @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; - } -} diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java index de39871515..09bede65a6 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -46,10 +46,8 @@ public abstract class WorldObject private WorldObjectKnownList _knownList; private String _name = ""; private int _objectId; - private ObjectPosition _position; - - // Objects can only see objects in same instancezone, instance 0 is normal world -1 the all seeing world - private int _instanceId = 0; + private WorldRegion _worldRegion; + private final Location _location = new Location(0, 0, -10000); 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.
    + *
    + * Assert:
    + *
  • _worldRegion != null

  • + *
    + * Example of use:
    + *
  • Update position during and after movement, or after teleport

  • + * @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.
    + *
    + * Concept:
    + *
    + * A WorldObject is invisble if _hidden=true or _worldregion==null
    + *
    + * Assert:
    + *
  • _worldregion==null (WorldObject is invisible)

  • + *
    + * Example of use:
    + *
  • Create a Door
  • + *
  • Restore Player

  • + * @param x the x + * @param y the y + * @param z the 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() { - return getPosition().getX(); + return _location.getX(); } public int getY() { - return getPosition().getY(); + return _location.getY(); } 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 _isSpawned = false; - World.getInstance().removeVisibleObject(this, getPosition().getWorldRegion()); + World.getInstance().removeVisibleObject(this, getWorldRegion()); World.getInstance().removeObject(this); - getPosition().setWorldRegion(null); + setWorldRegion(null); 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 { - final WorldRegion oldregion = getPosition().getWorldRegion(); + final WorldRegion oldregion = getWorldRegion(); // Create a server->client GetItem packet to pick up the Item creature.broadcastPacket(new GetItem((Item) this, creature.getObjectId())); @@ -171,7 +266,7 @@ public abstract class WorldObject synchronized (this) { _isSpawned = false; - getPosition().setWorldRegion(null); + setWorldRegion(null); } // 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 _isSpawned = true; - getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition())); + setWorldRegion(World.getInstance().getRegion(getLocation())); // Add the WorldObject spawn in the _allobjects of World World.getInstance().storeObject(this); // 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 // 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(); } @@ -261,8 +356,8 @@ public abstract class WorldObject spawnY = World.WORLD_Y_MIN + 5000; } - getPosition().setWorldPosition(spawnX, spawnY, z); - getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition())); + _location.setXYZ(spawnX, spawnY, z); + setWorldRegion(World.getInstance().getRegion(getLocation())); } // 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); // 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) { region.addVisibleObject(this); @@ -302,7 +397,7 @@ public abstract class WorldObject public boolean isSpawned() { - return getPosition().getWorldRegion() != null; + return getWorldRegion() != null; } public void setSpawned(boolean value) @@ -310,7 +405,7 @@ public abstract class WorldObject _isSpawned = value; if (!_isSpawned) { - getPosition().setWorldRegion(null); + setWorldRegion(null); } } @@ -343,26 +438,27 @@ public abstract class WorldObject return _objectId; } - public ObjectPosition getPosition() - { - if (_position == null) - { - _position = new ObjectPosition(this); - } - return _position; - } - 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() { - return _instanceId; + return _location.getInstanceId(); } /** @@ -378,7 +474,7 @@ public abstract class WorldObject */ public void setInstanceId(int instanceId) { - _instanceId = instanceId; + _location.setInstanceId(instanceId); // If we change it for visible objects, me must clear & revalidates knownlists if (_isSpawned && (_knownList != null)) @@ -575,6 +671,6 @@ public abstract class WorldObject @Override public String toString() { - return "" + _objectId; + return getClass().getSimpleName() + ":" + _name + "[" + _objectId + "]"; } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java index 27d76084fc..df049d86df 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -54,7 +54,6 @@ import org.l2jmobius.gameserver.model.Duel; import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.ForceBuff; import org.l2jmobius.gameserver.model.Location; -import org.l2jmobius.gameserver.model.ObjectPosition; import org.l2jmobius.gameserver.model.Party; import org.l2jmobius.gameserver.model.Skill; 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.RaidBoss; 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.SiegeFlag; import org.l2jmobius.gameserver.model.actor.knownlist.CreatureKnownList; import org.l2jmobius.gameserver.model.actor.stat.CreatureStat; import org.l2jmobius.gameserver.model.actor.status.CreatureStatus; @@ -322,10 +321,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder return; } - final ObjectPosition pos = getPosition(); + final Location pos = getLocation(); if (pos != null) { - spawnMe(getPosition().getX(), getPosition().getY(), getPosition().getZ()); + spawnMe(pos.getX(), pos.getY(), pos.getZ()); } setTeleporting(false); @@ -565,7 +564,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder broadcastPacket(new TeleportToLocation(this, x, y, z, getHeading())); // 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()) { @@ -891,7 +890,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder // Mobius: Do not move when attack is launched. if (isMoving()) { - stopMove(getPosition().getWorldPosition()); + stopMove(getLocation()); } // 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 *
    * Concept:
    *
    - * A Creature owns a table of Calculators called _calculators. 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 don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    + * A Creature owns a table of Calculators called _calculators. 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 + * don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    * 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.
    *
    * Actions:
    @@ -4338,8 +4337,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder *
    * Concept:
    *
    - * A Creature owns a table of Calculators called _calculators. 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 don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    + * A Creature owns a table of Calculators called _calculators. 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 + * don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    * 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.
    *
    * Actions:
    @@ -4417,8 +4416,8 @@ public abstract class Creature extends WorldObject implements ISkillsHolder *
    * Concept:
    *
    - * A Creature owns a table of Calculators called _calculators. 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 don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    + * A Creature owns a table of Calculators called _calculators. 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 + * don't have skills share the same Calculator set called NPC_STD_CALCULATOR.
    * 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.
    *
    * Actions:
    @@ -4613,6 +4612,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * Return the orientation of the Creature. * @return the heading */ + @Override public int getHeading() { return _heading; @@ -5096,7 +5096,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder // All data are contained in a CharPosition object if (pos != null) { - getPosition().setXYZ(pos.getX(), pos.getY(), pos.getZ()); + getLocation().setXYZ(pos.getX(), pos.getY(), pos.getZ()); setHeading(pos.getHeading()); if (this instanceof Player) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Player.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Player.java index c1b5120587..4965ec6ebb 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Player.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Player.java @@ -12433,7 +12433,7 @@ public class Player extends Playable if (getTrainedBeast() != null) { 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); } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Boat.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Boat.java index 4fd4b47939..97e14f3c4c 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Boat.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/Boat.java @@ -87,7 +87,7 @@ public class Boat extends Creature final MoveData m = new MoveData(); // 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._yDestination = y; m._zDestination = z; // this is what was requested from client diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java index 7690aee611..8141cea7fc 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/knownlist/PlayerKnownList.java @@ -179,7 +179,7 @@ public class PlayerKnownList extends PlayableKnownList final Player otherPlayer = (Player) object; 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())); final int relation = otherPlayer.getRelation(activeChar); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/holders/BoatPathHolder.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/holders/BoatPathHolder.java index f317fa5ab7..224f2c1d93 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/holders/BoatPathHolder.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/holders/BoatPathHolder.java @@ -80,7 +80,7 @@ public class BoatPathHolder final double distance = Math.sqrt((dx * dx) + (dy * dy)); final double cos = dx / 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.boatSpeed = path.speed1; boat.moveToLocation(path.x, path.y, path.z, path.speed1); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java index 9cbb81c3e4..1422d2a5c6 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/item/instance/Item.java @@ -1117,18 +1117,18 @@ public class Item extends WorldObject { // Set the x,y,z position of the Item dropped and update its _worldregion setSpawned(true); - getPosition().setWorldPosition(x, y, z); - getPosition().setWorldRegion(World.getInstance().getRegion(getPosition().getWorldPosition())); + getLocation().setXYZ(x, y, z); + setWorldRegion(World.getInstance().getRegion(getLocation())); // Add the Item dropped to _visibleObjects of its WorldRegion - getPosition().getWorldRegion().addVisibleObject(this); + getWorldRegion().addVisibleObject(this); } setDropTime(Chronos.currentTimeMillis()); // 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 - World.getInstance().addVisibleObject(this, getPosition().getWorldRegion(), dropper); + World.getInstance().addVisibleObject(this, getWorldRegion(), dropper); if (Config.SAVE_DROPPED_ITEM) { ItemsOnGroundManager.getInstance().save(this); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skill/Formulas.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skill/Formulas.java index cb19ada6af..9896dee02a 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skill/Formulas.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skill/Formulas.java @@ -48,8 +48,8 @@ import org.l2jmobius.gameserver.model.sevensigns.SevenSigns; import org.l2jmobius.gameserver.model.sevensigns.SevenSignsFestival; import org.l2jmobius.gameserver.model.siege.Siege; 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.ConditionUsingItemType; import org.l2jmobius.gameserver.model.skill.effects.EffectTemplate; import org.l2jmobius.gameserver.model.skill.funcs.Func; import org.l2jmobius.gameserver.model.zone.ZoneId; @@ -1201,7 +1201,7 @@ public class Formulas 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()) { return 0; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CannotMoveAnymoreInVehicle.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CannotMoveAnymoreInVehicle.java index 0a1c185758..15fce60dd6 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CannotMoveAnymoreInVehicle.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/CannotMoveAnymoreInVehicle.java @@ -56,7 +56,7 @@ public class CannotMoveAnymoreInVehicle implements IClientIncomingPacket if (player.isInBoat() && (player.getBoat().getObjectId() == _boatId)) { player.setBoatPosition(new Location(_x, _y, _z)); - player.getPosition().setHeading(_heading); + player.setHeading(_heading); player.broadcastPacket(new StopMoveInVehicle(player, _boatId)); } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestGetOnVehicle.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestGetOnVehicle.java index 436ed3aa72..f1abc161a4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestGetOnVehicle.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestGetOnVehicle.java @@ -57,7 +57,7 @@ public class RequestGetOnVehicle implements IClientIncomingPacket } 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.revalidateZone(true); } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java index 86a18d56e9..aad048e0be 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/RequestRecordInfo.java @@ -125,7 +125,7 @@ public class RequestRecordInfo implements IClientIncomingPacket final Player otherPlayer = (Player) object; 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())); final int relation = otherPlayer.getRelation(player); if ((otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != null) && (otherPlayer.getKnownList().getKnownRelations().get(player.getObjectId()) != relation)) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java index 1bbd034230..eef79a21ed 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/FakePlayerInfo.java @@ -28,9 +28,9 @@ public class FakePlayerInfo implements IClientOutgoingPacket public FakePlayerInfo(Npc cha) { _activeChar = cha; - _activeChar.setClientX(_activeChar.getPosition().getX()); - _activeChar.setClientY(_activeChar.getPosition().getY()); - _activeChar.setClientZ(_activeChar.getPosition().getZ()); + _activeChar.setClientX(_activeChar.getX()); + _activeChar.setClientY(_activeChar.getY()); + _activeChar.setClientZ(_activeChar.getZ()); } @Override diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/OnVehicleCheckLocation.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/OnVehicleCheckLocation.java index d00fe7661c..b8c2dd8f54 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/OnVehicleCheckLocation.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/OnVehicleCheckLocation.java @@ -52,7 +52,7 @@ public class OnVehicleCheckLocation implements IClientOutgoingPacket packet.writeD(_x); packet.writeD(_y); packet.writeD(_z); - packet.writeD(_boat.getPosition().getHeading()); + packet.writeD(_boat.getHeading()); return true; } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java index afd859edf9..8d960fb838 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/PlaySound.java @@ -23,6 +23,8 @@ import org.l2jmobius.gameserver.network.OutgoingPackets; public class PlaySound implements IClientOutgoingPacket { + private static final Location DUMMY_LOC = new Location(0, 0, 0); + private final int _unknown; private final String _soundFile; private final boolean _isObject; @@ -40,7 +42,7 @@ public class PlaySound implements IClientOutgoingPacket _soundFile = soundFile; _isObject = false; _objectId = 0; - _loc = Location.DUMMY_LOC; + _loc = DUMMY_LOC; _duration = 0; } @@ -55,7 +57,7 @@ public class PlaySound implements IClientOutgoingPacket _soundFile = soundFile; _isObject = false; _objectId = 0; - _loc = Location.DUMMY_LOC; + _loc = DUMMY_LOC; _duration = 0; } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/StopMoveInVehicle.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/StopMoveInVehicle.java index 38ccbb540f..900d029e09 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/StopMoveInVehicle.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/StopMoveInVehicle.java @@ -47,7 +47,7 @@ public class StopMoveInVehicle implements IClientOutgoingPacket packet.writeD(_player.getBoatPosition().getX()); packet.writeD(_player.getBoatPosition().getY()); packet.writeD(_player.getBoatPosition().getZ()); - packet.writeD(_player.getPosition().getHeading()); + packet.writeD(_player.getHeading()); return true; } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/VehicleInfo.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/VehicleInfo.java index 04fea5512a..5616438800 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/VehicleInfo.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/VehicleInfo.java @@ -43,7 +43,7 @@ public class VehicleInfo implements IClientOutgoingPacket packet.writeD(_boat.getX()); packet.writeD(_boat.getY()); packet.writeD(_boat.getZ()); - packet.writeD(_boat.getPosition().getHeading()); + packet.writeD(_boat.getHeading()); return true; } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/util/Util.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/util/Util.java index 9461e16a67..17337db2b1 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/util/Util.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/util/Util.java @@ -114,7 +114,7 @@ public class Util { 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); } /** diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/WorldObject.java index 14eaf2c8be..ac21be0e6b 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -59,21 +59,13 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; + private Map _scripts; public WorldObject(int objectId) { @@ -578,7 +570,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -588,7 +580,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -598,7 +590,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -608,7 +600,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -618,7 +610,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getInstanceId() { - return _instanceId; + return _location.getInstanceId(); } /** @@ -628,7 +620,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -677,7 +667,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -688,12 +678,13 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setInstanceId(int instanceId) { - if ((instanceId < 0) || (_instanceId == instanceId)) + final int oldInstanceId = getInstanceId(); + if ((instanceId < 0) || (oldInstanceId == instanceId)) { return; } - final Instance oldI = InstanceManager.getInstance().getInstance(getInstanceId()); + final Instance oldI = InstanceManager.getInstance().getInstance(oldInstanceId); final Instance newI = InstanceManager.getInstance().getInstance(instanceId); if (newI == null) { @@ -703,7 +694,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif if (isPlayer()) { final Player player = getActingPlayer(); - if ((_instanceId > 0) && (oldI != null)) + if ((oldInstanceId > 0) && (oldI != null)) { oldI.removePlayer(_objectId); if (oldI.isShowTimer()) @@ -727,7 +718,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif else if (isNpc()) { final Npc npc = (Npc) this; - if ((_instanceId > 0) && (oldI != null)) + if ((oldInstanceId > 0) && (oldI != null)) { 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 public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); - _instanceId = loc.getInstanceId(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); + _location.setInstanceId(loc.getInstanceId()); } /** @@ -782,7 +771,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/WorldObject.java index 14eaf2c8be..ac21be0e6b 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -59,21 +59,13 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; + private Map _scripts; public WorldObject(int objectId) { @@ -578,7 +570,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -588,7 +580,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -598,7 +590,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -608,7 +600,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -618,7 +610,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getInstanceId() { - return _instanceId; + return _location.getInstanceId(); } /** @@ -628,7 +620,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -677,7 +667,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -688,12 +678,13 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setInstanceId(int instanceId) { - if ((instanceId < 0) || (_instanceId == instanceId)) + final int oldInstanceId = getInstanceId(); + if ((instanceId < 0) || (oldInstanceId == instanceId)) { return; } - final Instance oldI = InstanceManager.getInstance().getInstance(getInstanceId()); + final Instance oldI = InstanceManager.getInstance().getInstance(oldInstanceId); final Instance newI = InstanceManager.getInstance().getInstance(instanceId); if (newI == null) { @@ -703,7 +694,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif if (isPlayer()) { final Player player = getActingPlayer(); - if ((_instanceId > 0) && (oldI != null)) + if ((oldInstanceId > 0) && (oldI != null)) { oldI.removePlayer(_objectId); if (oldI.isShowTimer()) @@ -727,7 +718,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif else if (isNpc()) { final Npc npc = (Npc) this; - if ((_instanceId > 0) && (oldI != null)) + if ((oldInstanceId > 0) && (oldI != null)) { 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 public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); - _instanceId = loc.getInstanceId(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); + _location.setInstanceId(loc.getInstanceId()); } /** @@ -782,7 +771,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /** diff --git a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/WorldObject.java b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/WorldObject.java index 93bbec2f73..7fe13b0a12 100644 --- a/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/WorldObject.java +++ b/L2J_Mobius_Essence_6.0_BattleChronicle/java/org/l2jmobius/gameserver/model/WorldObject.java @@ -55,22 +55,16 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif private int _objectId; /** World Region */ private WorldRegion _worldRegion; + /** Location */ + private final Location _location = new Location(0, 0, -10000); + /** Instance */ + private Instance _instance; /** Instance type */ private InstanceType _instanceType; - private Map _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 _isInvisible; private boolean _isTargetable = true; + private Map _scripts; public WorldObject(int objectId) { @@ -567,7 +561,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getX() { - return _x; + return _location.getX(); } /** @@ -577,7 +571,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getY() { - return _y; + return _location.getY(); } /** @@ -587,7 +581,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getZ() { - return _z; + return _location.getZ(); } /** @@ -597,7 +591,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public int getHeading() { - return _heading; + return _location.getHeading(); } /** @@ -635,7 +629,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override 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 public void setXYZ(int newX, int newY, int newZ) { - _x = newX; - _y = newY; - _z = newZ; + _location.setXYZ(newX, newY, newZ); if (_isSpawned) { @@ -684,7 +676,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setHeading(int newHeading) { - _heading = newHeading; + _location.setHeading(newHeading); } /** @@ -736,10 +728,8 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif @Override public void setLocation(Location loc) { - _x = loc.getX(); - _y = loc.getY(); - _z = loc.getZ(); - _heading = loc.getHeading(); + _location.setXYZ(loc.getX(), loc.getY(), loc.getZ()); + _location.setHeading(loc.getHeading()); } /** @@ -751,7 +741,7 @@ public abstract class WorldObject extends ListenersContainer implements IIdentif */ 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) { - 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) { - 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) { - 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); } /**