From d45d218562f22ec6002e71ff8c1f40dd8dfff64b Mon Sep 17 00:00:00 2001 From: Obique PSWG Date: Sat, 24 Jun 2017 20:22:24 -0500 Subject: [PATCH] Trying something new in regards to vehicles --- src/services/objects/ObjectAwareness.java | 18 ++++++++++-------- .../objects/awareness/TestObjectAwareness.java | 4 ++-- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/services/objects/ObjectAwareness.java b/src/services/objects/ObjectAwareness.java index e0739e5d7..73889f9d1 100644 --- a/src/services/objects/ObjectAwareness.java +++ b/src/services/objects/ObjectAwareness.java @@ -306,15 +306,17 @@ public class ObjectAwareness extends Service implements TerrainMapCallback { private void moveObjectWithTransform(SWGObject obj, SWGObject parent, Location requestedLocation, double speed, int update) { if (obj instanceof CreatureObject && ((CreatureObject) obj).isStatesBitmask(CreatureState.RIDING_MOUNT)) { - parent = obj.getParent(); - moveObject(parent, null, requestedLocation); - dataTransformHandler.handleMove(parent, speed, update); + SWGObject vehicle = obj.getParent(); + moveObject(vehicle, null, requestedLocation); + dataTransformHandler.handleMove(vehicle, speed, update); + moveObject(obj, null, requestedLocation); + } else { + moveObject(obj, parent, requestedLocation); + if (parent == null) + dataTransformHandler.handleMove(obj, speed, update); + else + dataTransformHandler.handleMove(obj, parent, speed, update); } - moveObject(obj, parent, requestedLocation); - if (parent == null) - dataTransformHandler.handleMove(obj, speed, update); - else - dataTransformHandler.handleMove(obj, parent, speed, update); if (obj instanceof CreatureObject && ((CreatureObject) obj).isLoggedInPlayer()) new PlayerTransformedIntent((CreatureObject) obj, obj.getParent(), parent, obj.getLocation(), requestedLocation).broadcast(); } diff --git a/test/resources/objects/awareness/TestObjectAwareness.java b/test/resources/objects/awareness/TestObjectAwareness.java index aa86350c8..2a6c0369b 100644 --- a/test/resources/objects/awareness/TestObjectAwareness.java +++ b/test/resources/objects/awareness/TestObjectAwareness.java @@ -176,10 +176,10 @@ public class TestObjectAwareness { Assert.assertNull("Player1 is in a parent!", player1.getParent()); // Mount + Assert.assertTrue(fireAndWait(100, new ContainerTransferIntent(player1, vehicle))); player1.setStatesBitmask(CreatureState.RIDING_MOUNT); vehicle.setStatesBitmask(CreatureState.MOUNTED_CREATURE); vehicle.setPosture(Posture.DRIVING_VEHICLE); - Assert.assertTrue(fireAndWait(100, new ContainerTransferIntent(player1, vehicle))); Assert.assertTrue("Player1 is not inside Player2's observer set!", player2.getObservers().contains(player1.getOwner())); Assert.assertTrue("Player2 is not inside Player1's observer set!", player1.getObservers().contains(player2.getOwner())); @@ -216,10 +216,10 @@ public class TestObjectAwareness { Assert.assertTrue(fireAndWait(100, new ObjectCreatedIntent(player2))); Assert.assertTrue(fireAndWait(100, new ObjectCreatedIntent(npc))); Assert.assertTrue(fireAndWait(100, new ObjectCreatedIntent(vehicle))); + Assert.assertTrue(fireAndWait(100, new ContainerTransferIntent(player1, vehicle))); player1.setStatesBitmask(CreatureState.RIDING_MOUNT); vehicle.setStatesBitmask(CreatureState.MOUNTED_CREATURE); vehicle.setPosture(Posture.DRIVING_VEHICLE); - Assert.assertTrue(fireAndWait(100, new ContainerTransferIntent(player1, vehicle))); Assert.assertTrue("Player1 is not inside Player2's observer set!", player2.getObservers().contains(player1.getOwner())); Assert.assertTrue("Player2 is not inside Player1's observer set!", player1.getObservers().contains(player2.getOwner()));