|
|
|
// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ .
|
|
|
|
// ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌·
|
|
|
|
// ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀
|
|
|
|
// ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌
|
|
|
|
// ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀
|
|
|
|
// 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<BuildingLocation> 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 <target building> n";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|