Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Darkhax committed Dec 3, 2018
2 parents 17a394a + fc0af9c commit bf03d4a
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 25 deletions.
Expand Up @@ -18,12 +18,16 @@
public class GuiTimerAmount extends GuiScreen {

private final TileEntityTimer timer;

private boolean disabledGUI;

private GuiTextField delayTextField;

private GuiButton doneBtn;

private GuiButton cancelBtn;

private GuiButton disableBtn;

public GuiTimerAmount (TileEntityTimer timer) {

Expand All @@ -40,14 +44,18 @@ public void updateScreen () {
public void initGui () {

Keyboard.enableRepeatEvents(true);
disabledGUI = this.timer.isDisabled();

this.buttonList.clear();
this.buttonList.add(this.doneBtn = new GuiButton(0, this.width / 2 - 4 - 150, this.height / 4 + 120 + 12, 150, 20, I18n.format("gui.done", new Object[0])));
this.buttonList.add(this.cancelBtn = new GuiButton(1, this.width / 2 + 4, this.height / 4 + 120 + 12, 150, 20, I18n.format("gui.cancel", new Object[0])));
this.delayTextField = new GuiTextField(2, this.fontRenderer, this.width / 2 - 150, 50, 300, 20);
this.delayTextField = new GuiTextField(2, this.fontRenderer, this.width / 2 - 150, 50, 260, 20);
this.delayTextField.setMaxStringLength(5);
this.delayTextField.setFocused(true);
this.delayTextField.setText("" + this.timer.getDelayTime());
this.doneBtn.enabled = this.delayTextField.getText().trim().length() > 0 && StringUtils.isNumeric(this.delayTextField.getText());

this.buttonList.add(this.disableBtn = new GuiButton(2, this.width / 2 + 120, 50, 30, 20, !disabledGUI ? "ON" : "OFF"));
}

@Override
Expand All @@ -60,14 +68,19 @@ public void onGuiClosed () {
protected void actionPerformed (GuiButton button) throws IOException {

if (button.enabled) {
if (button.id == 1) {
if (button.id == 2) {
disabledGUI = !disabledGUI;
button.displayString = !disabledGUI ? "ON" : "OFF";
}
else if (button.id == 1) {
this.mc.displayGuiScreen((GuiScreen) null);
}
else if (button.id == 0 && StringUtils.isNumeric(this.delayTextField.getText())) {

final int time = Integer.parseInt(this.delayTextField.getText());
DarkUtils.NETWORK.sendToServer(new PacketSyncTimer(this.timer.getPos(), time));
DarkUtils.NETWORK.sendToServer(new PacketSyncTimer(this.timer.getPos(), time, disabledGUI));
this.timer.setDelayTime(time);
this.timer.setDisabled(disabledGUI);
this.mc.displayGuiScreen((GuiScreen) null);
}
}
Expand All @@ -91,24 +104,24 @@ else if (keyCode == 28) {
}

// TextFied controls
if (this.delayTextField.isFocused()) {
// left key
if (keyCode == 203) {
this.delayTextField.setCursorPosition(this.delayTextField.getCursorPosition() - 1);
}
// right key
else if (keyCode == 205) {
this.delayTextField.setCursorPosition(this.delayTextField.getCursorPosition() + 1);
}
// up key
else if (keyCode == 200) {
this.delayTextField.setCursorPosition(0);
}
// down key
else if (keyCode == 208) {
this.delayTextField.setCursorPosition(this.delayTextField.getText().length());
}
}
if (this.delayTextField.isFocused()) {
// left key
if (keyCode == 203) {
this.delayTextField.setCursorPosition(this.delayTextField.getCursorPosition() - 1);
}
// right key
else if (keyCode == 205) {
this.delayTextField.setCursorPosition(this.delayTextField.getCursorPosition() + 1);
}
// up key
else if (keyCode == 200) {
this.delayTextField.setCursorPosition(0);
}
// down key
else if (keyCode == 208) {
this.delayTextField.setCursorPosition(this.delayTextField.getText().length());
}
}
}

@Override
Expand Down
Expand Up @@ -8,20 +8,24 @@ public class PacketSyncTimer extends TileEntityMessage<TileEntityTimer> {
private static final long serialVersionUID = -6538977095087681955L;

public int delayTime;
public boolean disabled;

public PacketSyncTimer () {

}

public PacketSyncTimer (BlockPos pos, int delayTime) {
public PacketSyncTimer (BlockPos pos, int delayTime, boolean disabled) {

super(pos);
this.delayTime = delayTime;
this.disabled = disabled;
}


@Override
public void getAction () {

this.tile.setDelayTime(this.delayTime);
this.tile.setDisabled(this.disabled);
}
}
Expand Up @@ -13,25 +13,29 @@ public class TileEntityTimer extends TileEntityBasicTickable {
private int currentTime = 0;

private int delayTime = 100;


private boolean disabled = false;

@Override
public void writeNBT (NBTTagCompound dataTag) {

dataTag.setInteger("CurrentTime", this.currentTime);
dataTag.setInteger("TickRate", this.delayTime);
dataTag.setBoolean("Disabled", this.disabled);
}

@Override
public void readNBT (NBTTagCompound dataTag) {

this.currentTime = dataTag.getInteger("CurrentTime");
this.delayTime = dataTag.getInteger("TickRate");
this.disabled = dataTag.getBoolean("Disabled");
}

@Override
public void onEntityUpdate () {

if (this.world.isBlockPowered(this.pos)) {
if (this.world.isBlockPowered(this.pos) || this.disabled) {
return;
}

Expand Down Expand Up @@ -60,6 +64,16 @@ public int getDelayTime () {

return this.delayTime;
}

public boolean isDisabled () {

return this.disabled;
}

public void setDisabled (boolean disable) {

this.disabled = disable;
}

public void setDelayTime (int tickRate) {

Expand All @@ -85,4 +99,4 @@ public void removeTime (int time) {
final int newTime = this.delayTime - time;
this.setDelayTime(newTime > MINDELAY ? newTime : MINDELAY);
}
}
}

0 comments on commit bf03d4a

Please sign in to comment.