package mapwriter.gui; import mapwriter.map.Marker; import mapwriter.map.MarkerManager; import net.minecraft.client.gui.GuiScreen; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class MwGuiMarkerDialog extends MwGuiTextDialog { private final MarkerManager markerManager; private Marker editingMarker; private String markerName = "name"; private String markerGroup = "group"; private int markerX = 0; private int markerY = 80; private int markerZ = 0; private int state = 0; private int dimension = 0; public MwGuiMarkerDialog(GuiScreen parentScreen, MarkerManager markerManager, String markerName, String markerGroup, int x, int y, int z, int dimension) { super(parentScreen, "Marker Name:", markerName, "marker must have a name"); this.markerManager = markerManager; this.markerName = markerName; this.markerGroup = markerGroup; this.markerX = x; this.markerY = y; this.markerZ = z; this.editingMarker = null; this.dimension = dimension; } public MwGuiMarkerDialog(GuiScreen parentScreen, MarkerManager markerManager, Marker editingMarker) { super(parentScreen, "Edit Marker Name:", editingMarker.name, "marker must have a name"); this.markerManager = markerManager; this.editingMarker = editingMarker; this.markerName = editingMarker.name; this.markerGroup = editingMarker.groupName; this.markerX = editingMarker.x; this.markerY = editingMarker.y; this.markerZ = editingMarker.z; this.dimension = editingMarker.dimension; } @Override public boolean submit() { boolean done = false; switch(this.state) { case 0: this.markerName = this.getInputAsString(); if (this.inputValid) { this.title = "Marker Group:"; this.setText(this.markerGroup); this.error = "marker must have a group name"; this.state++; } break; case 1: this.markerGroup = this.getInputAsString(); if (this.inputValid) { this.title = "Marker X:"; this.setText("" + this.markerX); this.error = "invalid value"; this.state++; } break; case 2: this.markerX = this.getInputAsInt(); if (this.inputValid) { this.title = "Marker Y:"; this.setText("" + this.markerY); this.error = "invalid value"; this.state++; } break; case 3: this.markerY = this.getInputAsInt(); if (this.inputValid) { this.title = "Marker Z:"; this.setText("" + this.markerZ); this.error = "invalid value"; this.state++; } break; case 4: this.markerZ = this.getInputAsInt(); if (this.inputValid) { done = true; int colour = Marker.getCurrentColour(); if (this.editingMarker != null) { colour = this.editingMarker.colour; this.markerManager.delMarker(this.editingMarker); this.editingMarker = null; } this.markerManager.addMarker(this.markerName, this.markerGroup, this.markerX, this.markerY, this.markerZ, this.dimension, colour); this.markerManager.setVisibleGroupName(this.markerGroup); this.markerManager.update(); } break; } return done; } }