package mods.ocminecart.common.entityextend; import mods.railcraft.common.carts.EntityLocomotive.LocoMode; import mods.railcraft.common.carts.EntityLocomotive.LocoSpeed; import mods.railcraft.common.carts.EntityLocomotiveElectric; import java.util.List; public class RemoteElectricLocomotive extends RemoteCartExtender{ @Override protected void processCommand(String cmd, Object[] args){ super.processCommand(cmd, args); if(cmd==null) return; EntityLocomotiveElectric loco = (EntityLocomotiveElectric) this.entity; if(cmd.equals("speed")){ if(args.length>0 && args[0] instanceof Double){ int speed = (int)(double)(Double)args[0]; speed = -speed+3; speed = Math.max(0, Math.min(4, speed)); loco.setSpeed(LocoSpeed.VALUES[speed]); } this.sendPacket(new Object[]{3-loco.getSpeed().ordinal()}, this.getRespPort(), this.getRespAddress()); } else if(cmd.equals("mode")){ if(args.length>0 && args[0] instanceof Double){ int mode = (int)(double)(Double)args[0]; mode = (mode<=0) ? 2 : 0; mode = Math.max(0, Math.min(2, mode)); loco.setMode(LocoMode.VALUES[mode]); } this.sendPacket(new Object[]{ (loco.getMode().ordinal()==2)? 0 : 1}, this.getRespPort(), this.getRespAddress()); } else if(cmd.equals("whistle")){ loco.whistle(); } else if(cmd.equals("energy")){ this.sendPacket(new Object[]{loco.getChargeHandler().getCharge()}, this.getRespPort(), this.getRespAddress()); } } @Override protected List<String> getCommands() { List<String> cmds = super.getCommands(); cmds.add("speed"); cmds.add("mode"); cmds.add("whistle"); cmds.add("energy"); return cmds; } @Override protected String getDoc(String cmd) { String su = super.getDoc(cmd); if(su!=null) return su; if(cmd.equals("speed")) return "speed([value:number]):number -- set/get the speed. -1 reverse; 0 slowest; 3 max. speed"; else if(cmd.equals("mode")) return "mode([value:number]):number -- set/get the mode. 0 shutdown; 1 running"; else if(cmd.equals("whistle")) return "whistle() -- make the whistle sound"; else if(cmd.equals("energy")) return "energy():number -- get the stored energy"; return null; } }