From 38283f335125576e97fc073a3e0cb3a3b1288295 Mon Sep 17 00:00:00 2001 From: Seefo Date: Wed, 9 Apr 2014 21:23:12 -0400 Subject: [PATCH] Added house radials and fixed a lot calculation mistake --- scripts/radial/moveable.py | 25 +++++++++++++++++++ .../objects/player/PlayerObject.java | 2 +- src/services/housing/HouseTemplate.java | 2 +- src/services/housing/HousingService.java | 3 +-- src/services/sui/SUIService.java | 10 ++++++++ 5 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 scripts/radial/moveable.py diff --git a/scripts/radial/moveable.py b/scripts/radial/moveable.py new file mode 100644 index 00000000..4bbb4120 --- /dev/null +++ b/scripts/radial/moveable.py @@ -0,0 +1,25 @@ +from resources.common import RadialOptions +import sys + +def createRadial(core, owner, target, radials): + radials.clear() + radials.add(RadialOptions(0, 11, 1, '')) + + radials.add(RadialOptions(0, 55, 0, '')) + radials.add(RadialOptions(3, 56, 1, '')) + radials.add(RadialOptions(3, 57, 1, '')) + radials.add(RadialOptions(3, 58, 1, '')) + radials.add(RadialOptions(3, 59, 1, '')) + + radials.add(RadialOptions(0, 52, 0, '')) + radials.add(RadialOptions(4, 53, 1, '')) + radials.add(RadialOptions(4, 54, 1, '')) + return + +def handleSelection(core, owner, target, option): + + if option == 56: + core.commandService.callCommand(owner, 'movefurniture', target, 'forward 10') + + return + \ No newline at end of file diff --git a/src/resources/objects/player/PlayerObject.java b/src/resources/objects/player/PlayerObject.java index 1a50837d..aecf070a 100644 --- a/src/resources/objects/player/PlayerObject.java +++ b/src/resources/objects/player/PlayerObject.java @@ -838,7 +838,7 @@ public class PlayerObject extends IntangibleObject { public boolean deductLots(int amount) { - if(this.lotsRemaining - amount > 0) + if(this.lotsRemaining - amount >= 0) { this.lotsRemaining -= amount; return true; diff --git a/src/services/housing/HouseTemplate.java b/src/services/housing/HouseTemplate.java index fc2861df..3918cf55 100644 --- a/src/services/housing/HouseTemplate.java +++ b/src/services/housing/HouseTemplate.java @@ -57,7 +57,7 @@ public class HouseTemplate public boolean canBePlacedOn(String planetName) { if(placeablePlanets.contains(planetName)) return true; - else return false; + return false; } public int getLotCost() { diff --git a/src/services/housing/HousingService.java b/src/services/housing/HousingService.java index 3bcc9188..37da6f3a 100644 --- a/src/services/housing/HousingService.java +++ b/src/services/housing/HousingService.java @@ -97,12 +97,11 @@ public class HousingService implements INetworkDispatch { } // Lot stuff - if(actor.getPlayerObject().getLotsRemaining() - structureLotCost < 0) + if(!actor.getPlayerObject().deductLots(structureLotCost)) { actor.sendSystemMessage("You do not have enough available lots to place this structure.", (byte) 0); // should probably load this from an stf return; } - actor.getPlayerObject().deductLots(structureLotCost); // Calculate our orientation and height Quaternion quaternion = new Quaternion(1, 0, 0, 0); diff --git a/src/services/sui/SUIService.java b/src/services/sui/SUIService.java index f74c20d0..8c2240f7 100644 --- a/src/services/sui/SUIService.java +++ b/src/services/sui/SUIService.java @@ -82,6 +82,16 @@ public class SUIService implements INetworkDispatch { if(target == null || owner == null) return; + if(target.getGrandparent() != null && target.getGrandparent().getAttachment("structureAdmins") != null) + { + if(core.housingService.getPermissions(owner, target.getContainer())) + { + core.scriptService.callScript("scripts/radial/", "moveable", "createRadial", core, owner, target, request.getRadialOptions()); + sendRadial(owner, target, request.getRadialOptions(), request.getRadialCount()); + return; + } + } + core.scriptService.callScript("scripts/radial/", getRadialFilename(target), "createRadial", core, owner, target, request.getRadialOptions()); if(getRadialFilename(target).equals("default")) return;