Hold shift to go faster in the AESU gui, closes #1686

This commit is contained in:
modmuss50 2019-03-17 16:10:20 +00:00
parent ee0d72223a
commit d7f0e04034
3 changed files with 15 additions and 9 deletions

View file

@ -27,6 +27,7 @@ package techreborn.client.gui;
import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.GlStateManager;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import org.lwjgl.input.Keyboard;
import reborncore.client.gui.builder.GuiBase; import reborncore.client.gui.builder.GuiBase;
import reborncore.common.network.NetworkManager; import reborncore.common.network.NetworkManager;
import reborncore.common.powerSystem.PowerSystem; import reborncore.common.powerSystem.PowerSystem;
@ -83,7 +84,8 @@ public class GuiAESU extends GuiBase {
public void actionPerformed(final GuiButton button) throws IOException { public void actionPerformed(final GuiButton button) throws IOException {
super.actionPerformed(button); super.actionPerformed(button);
if (button.id >= 300 && button.id <= 303) { if (button.id >= 300 && button.id <= 303) {
NetworkManager.sendToServer(new PacketAesu(button.id, tile)); boolean shift = Keyboard.isKeyDown(Keyboard.KEY_LSHIFT);
NetworkManager.sendToServer(new PacketAesu(button.id, tile, shift));
} }
} }
} }

View file

@ -37,32 +37,36 @@ public class PacketAesu implements INetworkPacket<PacketAesu> {
int buttonID; int buttonID;
BlockPos pos; BlockPos pos;
boolean shift;
public PacketAesu() { public PacketAesu() {
} }
public PacketAesu(int buttonID, TileAdjustableSU tile) { public PacketAesu(int buttonID, TileAdjustableSU tile, boolean shift) {
this.pos = tile.getPos();
this.buttonID = buttonID; this.buttonID = buttonID;
this.pos = tile.getPos();
this.shift = shift;
} }
@Override @Override
public void writeData(ExtendedPacketBuffer out) throws IOException { public void writeData(ExtendedPacketBuffer out) throws IOException {
out.writeBlockPos(pos); out.writeBlockPos(pos);
out.writeInt(buttonID); out.writeInt(buttonID);
out.writeBoolean(shift);
} }
@Override @Override
public void readData(ExtendedPacketBuffer in) throws IOException { public void readData(ExtendedPacketBuffer in) throws IOException {
this.pos = in.readBlockPos(); this.pos = in.readBlockPos();
this.buttonID = in.readInt(); this.buttonID = in.readInt();
this.shift = in.readBoolean();
} }
@Override @Override
public void processData(PacketAesu message, MessageContext context) { public void processData(PacketAesu message, MessageContext context) {
TileEntity tile = context.getServerHandler().player.world.getTileEntity(message.pos); TileEntity tile = context.getServerHandler().player.world.getTileEntity(message.pos);
if (tile instanceof TileAdjustableSU){ if (tile instanceof TileAdjustableSU){
((TileAdjustableSU) tile).handleGuiInputFromClient(message.buttonID); ((TileAdjustableSU) tile).handleGuiInputFromClient(message.buttonID, shift);
} }
} }
} }

View file

@ -54,18 +54,18 @@ public class TileAdjustableSU extends TileEnergyStorage implements IContainerPro
super("ADJUSTABLE_SU", 4, ModBlocks.ADJUSTABLE_SU, EnumPowerTier.INSANE, maxInput, maxOutput, maxEnergy); super("ADJUSTABLE_SU", 4, ModBlocks.ADJUSTABLE_SU, EnumPowerTier.INSANE, maxInput, maxOutput, maxEnergy);
} }
public void handleGuiInputFromClient(int id) { public void handleGuiInputFromClient(int id, boolean shift) {
if (id == 300) { if (id == 300) {
OUTPUT += 256; OUTPUT += shift ? 4096 : 256;
} }
if (id == 301) { if (id == 301) {
OUTPUT += 64; OUTPUT += shift ? 512 : 64;
} }
if (id == 302) { if (id == 302) {
OUTPUT -= 64; OUTPUT -= shift ? 512 : 64;
} }
if (id == 303) { if (id == 303) {
OUTPUT -= 256; OUTPUT -= shift ? 4096 : 256;
} }
if (OUTPUT > maxOutput) { if (OUTPUT > maxOutput) {
OUTPUT = maxOutput; OUTPUT = maxOutput;