// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.devcmd.cmds; import engine.Enum.GameObjectType; import engine.devcmd.AbstractDevCmd; import engine.gameManager.BuildingManager; import engine.gameManager.ChatManager; import engine.gameManager.PlayerManager; import engine.math.Vector3fImmutable; import engine.objects.*; import java.util.ArrayList; public class SlotTestCmd extends AbstractDevCmd { public SlotTestCmd() { super("slottest"); } @Override protected void _doCmd(PlayerCharacter playerCharacter, String[] args, AbstractGameObject target) { ArrayList buildingLocations; String outString = "Available Slots\r\n"; if (target == null) return; if (target.getObjectType() != GameObjectType.Building) return; Building building = (Building) target; buildingLocations = BuildingManager._slotLocations.get(building.meshUUID); if (buildingLocations == null) { outString = "No slot information for mesh: " + building.meshUUID; ChatManager.chatSystemInfo(playerCharacter, outString); return; } // Goto slot location if (args[0].isEmpty() == false) { int slot = Integer.parseInt(args[0]); Vector3fImmutable slotLocation; BuildingLocation buildingLocation = BuildingManager._slotLocations.get(building.meshUUID).get(slot - 1); slotLocation = building.getLoc().add(buildingLocation.getLocation()); slotLocation = Vector3fImmutable.rotateAroundPoint(building.getLoc(), slotLocation, building.getBounds().getQuaternion().angleY); PlayerManager.teleport(playerCharacter, slotLocation); return; } for (BuildingLocation buildingLocation : BuildingManager._slotLocations.get(building.meshUUID)) outString += buildingLocation.getSlot() + buildingLocation.getLocation().toString() + "\r\n"; outString += "\r\nNext Available Slot: " + BuildingManager.getAvailableSlot(building); if (building.getHirelings().isEmpty() == false) { outString += "\r\n\r\n"; outString += "Hirelings List:"; for (AbstractCharacter hireling : building.getHirelings().keySet()) outString += "\r\n" + hireling.getName() + " slot : " + building.getHirelings().get(hireling); } ChatManager.chatSystemInfo(playerCharacter, outString); } @Override protected String _getHelpString() { return "Displays slot information for building"; } @Override protected String _getUsageString() { return "./slottest n"; } }