From 6a41c5391d424f40f8f8c843d7ad1628cbad8468 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sat, 13 May 2023 12:59:05 -0400 Subject: [PATCH] Bonus code deleted from stuck job. --- src/engine/jobs/StuckJob.java | 112 +++++++++++----------------------- 1 file changed, 37 insertions(+), 75 deletions(-) diff --git a/src/engine/jobs/StuckJob.java b/src/engine/jobs/StuckJob.java index c2a2d3ad..de7e025b 100644 --- a/src/engine/jobs/StuckJob.java +++ b/src/engine/jobs/StuckJob.java @@ -6,7 +6,7 @@ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com - package engine.jobs; +package engine.jobs; import engine.InterestManagement.WorldGrid; import engine.job.AbstractScheduleJob; @@ -22,98 +22,60 @@ import java.util.HashSet; public class StuckJob extends AbstractScheduleJob { - private final PlayerCharacter player; + private final PlayerCharacter player; - public StuckJob(PlayerCharacter player) { - super(); - this.player = player; - } + public StuckJob(PlayerCharacter player) { + super(); + this.player = player; + } + + @Override + protected void doJob() { - @Override - protected void doJob() { - Vector3fImmutable stuckLoc; - Building stuckBuilding = null; - + Building building = null; + if (player == null) return; - + if (player.getClientConnection() == null) return; - - HashSetawoList = WorldGrid.getObjectsInRangePartial(player, 150, MBServerStatics.MASK_BUILDING); - - for (AbstractWorldObject awo:awoList){ - Building toStuckOutOf = (Building)awo; + HashSet awoList = WorldGrid.getObjectsInRangePartial(player, 150, MBServerStatics.MASK_BUILDING); + + for (AbstractWorldObject awo : awoList) { - if (toStuckOutOf.getStuckLocation() == null) - continue; + Building buildingEntry = (Building) awo; - if (Bounds.collide(player.getLoc(), toStuckOutOf)){ - stuckBuilding = toStuckOutOf; - break; - - } + if (buildingEntry.getStuckLocation() == null) + continue; + + if (Bounds.collide(player.getLoc(), buildingEntry)) { + building = buildingEntry; + break; + + } } - //Could not find closest building get stuck location of nearest building. - - if (stuckBuilding == null){ - ErrorPopupMsg.sendErrorMsg(player, "Unable to find desired location"); - return; - } else - stuckLoc = stuckBuilding.getStuckLocation(); - - if (stuckLoc == null){ + if (building == null) { ErrorPopupMsg.sendErrorMsg(player, "Unable to find desired location"); - return; - } - - - player.teleport(stuckLoc); - - - - - // Needs to be re-written with stuck locations - // Disabled for now. - - - /* - - // Cannot have a null zone or player - - if (this.player == null) return; - - if (ZoneManager.findSmallestZone(player.getLoc()) == null) + } + + stuckLoc = building.getStuckLocation(); + + if (stuckLoc == null) { + ErrorPopupMsg.sendErrorMsg(player, "Unable to find desired location"); return; - - // If player is on a citygrid make sure the stuck direction - // is facing away from the tree - - if ((ZoneManager.findSmallestZone(player.getLoc()).isNPCCity()) || - (ZoneManager.findSmallestZone(player.getLoc()).isPlayerCity())) { - - zoneVector = player.getLoc().subtract(ZoneManager.findSmallestZone(player.getLoc()).getLoc()); - zoneVector = zoneVector.normalize(); - - if (zoneVector.dot(player.getFaceDir()) > 0) - return; - } - - player.teleport(player.getLoc().add(player.getFaceDir().mult(34))); -*/ - } - @Override - protected void _cancelJob() { - } + player.teleport(building.getLoc().add(stuckLoc)); + + } - private void sendTrackArrow(float rotation) { - } + @Override + protected void _cancelJob() { + } }