From 7aff8a459bc0ebbff11b5dcde454f11992741490 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Mon, 9 Feb 2015 12:31:50 -0500 Subject: [PATCH] Added waypoint methods to PlayerObject, Waypoint names and active status can now be set --- scripts/commands/generic/cmdTip.py | 1 - .../generic/setWaypointActiveStatus.py | 18 ++++++++++++++++++ scripts/commands/generic/setWaypointName.py | 14 ++++++++++++++ .../objects/player/PlayerObject.java | 19 +++++++++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 scripts/commands/generic/setWaypointActiveStatus.py create mode 100644 scripts/commands/generic/setWaypointName.py diff --git a/scripts/commands/generic/cmdTip.py b/scripts/commands/generic/cmdTip.py index 8527a531a..25353f4bc 100644 --- a/scripts/commands/generic/cmdTip.py +++ b/scripts/commands/generic/cmdTip.py @@ -1,5 +1,4 @@ import sys def execute(objManager, player, target, args): - player.getPlayerObject().setExperience("entertainer", 13) return \ No newline at end of file diff --git a/scripts/commands/generic/setWaypointActiveStatus.py b/scripts/commands/generic/setWaypointActiveStatus.py new file mode 100644 index 000000000..b25d0d2b0 --- /dev/null +++ b/scripts/commands/generic/setWaypointActiveStatus.py @@ -0,0 +1,18 @@ +import sys + +def execute(objManager, player, target, args): + ghost = player.getPlayerObject() + if ghost is None: + return + + waypoint = ghost.getWaypoint(target.getObjectId()) + if waypoint is None: + return + + if waypoint.isActive(): + waypoint.setActive(False) + else: + waypoint.setActive(True) + + ghost.updateWaypoint(waypoint) + return \ No newline at end of file diff --git a/scripts/commands/generic/setWaypointName.py b/scripts/commands/generic/setWaypointName.py new file mode 100644 index 000000000..59b54d9b4 --- /dev/null +++ b/scripts/commands/generic/setWaypointName.py @@ -0,0 +1,14 @@ +import sys + +def execute(objManager, player, target, args): + ghost = player.getPlayerObject() + if ghost is None: + return + + waypoint = ghost.getWaypoint(target.getObjectId()) + if waypoint is None: + return + + waypoint.setName(args) + ghost.updateWaypoint(waypoint) + return \ No newline at end of file diff --git a/src/resources/objects/player/PlayerObject.java b/src/resources/objects/player/PlayerObject.java index 37c25213a..49c155fd1 100644 --- a/src/resources/objects/player/PlayerObject.java +++ b/src/resources/objects/player/PlayerObject.java @@ -42,6 +42,25 @@ public class PlayerObject extends IntangibleObject { } } + public WaypointObject getWaypoint(long objId) { + synchronized(waypoints) { + return waypoints.get(objId); + } + } + + public void updateWaypoint(WaypointObject obj) { + synchronized(waypoints) { + waypoints.update(obj.getObjectId(), this); + } + } + + public void removeWaypoint(long objId) { + synchronized(waypoints) { + waypoints.remove(objId); + waypoints.sendDeltaMessage(this); + } + } + public void setExperience(String type, int value) { experience.put(type, value); experience.sendDeltaMessage(this);