// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.devcmd.cmds; import engine.Enum; import engine.devcmd.AbstractDevCmd; import engine.gameManager.BuildingManager; import engine.gameManager.NavigationManager; import engine.gameManager.ZoneManager; import engine.math.Vector3f; import engine.math.Vector3fImmutable; import engine.objects.*; import java.awt.*; import java.awt.geom.AffineTransform; import java.awt.geom.Area; import java.awt.geom.Path2D; import java.awt.geom.Rectangle2D; import java.lang.reflect.Field; import static java.awt.geom.Path2D.WIND_EVEN_ODD; import static java.awt.geom.Path2D.WIND_NON_ZERO; public class RegionCmd extends AbstractDevCmd { public RegionCmd() { super("region"); } @Override protected void _doCmd(PlayerCharacter pc, String[] words, AbstractGameObject target) { String newline = "\r\n "; String output; output = "Target Region Information:" + newline; Building building = BuildingManager.getBuildingAtLocation(((AbstractCharacter) target).loc); if(building == null){ this.throwbackInfo(pc, "No Building At This Location.") ; } Regions region = ((AbstractCharacter)target).region; output += "In Floor: " + ((AbstractCharacter) target).getInFloorID() + newline; output += "In Building: " + ((AbstractCharacter) target).getInBuilding() + newline; if (region == null) { output += "No Region Found." + newline; }else{ output += "Player Info: " + ((AbstractCharacter) target).getName() + newline; output += "Region Building: " + building.getName() + newline; output += "Region Height: " + region.lerpY(((AbstractCharacter)target).loc) + newline; output += "is Stairs: " + region.isStairs() + newline; output += "is Outside: " + region.isOutside() + newline; output += "is Entrance: " + region.isExit() + newline; for(Vector3f point : region.regionPoints) output += point + newline; output += "NavMesh Data" + newline; this.throwbackInfo(pc, output); } output += "pointBlocked: " + NavigationManager.pointIsBlocked(((AbstractCharacter)target).loc); this.throwbackInfo(pc, output); } @Override protected String _getHelpString() { return "Temporarily Changes SubRace"; } @Override protected String _getUsageString() { return "' /setBuildingCollidables add/remove 'add creates a collision line.' needs 4 integers. startX, endX, startY, endY"; } }