mirror of
https://github.com/GTNewHorizons/TinkersConstruct.git
synced 2026-11-13 17:04:24 +00:00
115 lines
4.1 KiB
Java
115 lines
4.1 KiB
Java
package tconstruct.client.gui;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.DataOutputStream;
|
|
|
|
import net.minecraft.client.gui.GuiButton;
|
|
import net.minecraft.client.gui.inventory.GuiContainer;
|
|
import net.minecraft.entity.player.InventoryPlayer;
|
|
import net.minecraft.network.packet.Packet250CustomPayload;
|
|
import net.minecraft.util.ResourceLocation;
|
|
import net.minecraft.util.StatCollector;
|
|
import net.minecraft.world.World;
|
|
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import tconstruct.blocks.logic.DrawbridgeLogic;
|
|
import cpw.mods.fml.common.network.PacketDispatcher;
|
|
|
|
public class DrawbridgeGui extends GuiContainer
|
|
{
|
|
public DrawbridgeLogic logic;
|
|
|
|
public DrawbridgeGui(InventoryPlayer inventoryplayer, DrawbridgeLogic frypan, World world, int x, int y, int z)
|
|
{
|
|
super(frypan.getGuiContainer(inventoryplayer, world, x, y, z));
|
|
logic = frypan;
|
|
}
|
|
|
|
protected void drawGuiContainerForegroundLayer (int par1, int par2)
|
|
{
|
|
//fontRenderer.drawString(StatCollector.translateToLocal("aggregator.glowstone"), 60, 6, 0x404040);
|
|
fontRenderer.drawString("Drawbridge", 8, 6, 0x404040);
|
|
fontRenderer.drawString(StatCollector.translateToLocal("container.inventory"), 8, (ySize - 96) + 2, 0x404040);
|
|
}
|
|
|
|
private static final ResourceLocation background = new ResourceLocation("tinker", "textures/gui/drawbridge.png");
|
|
|
|
protected void drawGuiContainerBackgroundLayer (float f, int i, int j)
|
|
{
|
|
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
|
this.mc.func_110434_K().func_110577_a(background);
|
|
int cornerX = (width - xSize) / 2;
|
|
int cornerY = (height - ySize) / 2;
|
|
drawTexturedModalRect(cornerX, cornerY, 0, 0, xSize, ySize);
|
|
}
|
|
|
|
public void initGui ()
|
|
{
|
|
super.initGui();
|
|
int cornerX = (this.width - this.xSize) / 2;
|
|
int cornerY = (this.height - this.ySize) / 2;
|
|
|
|
this.buttonList.clear();
|
|
GuiButton button = new DrawbridgeButton(0, cornerX + 131, cornerY + 18, 176, 0, 21, 22);
|
|
if (logic.getPlacementDirection() == 0)
|
|
button.enabled = false;
|
|
this.buttonList.add(button);
|
|
button = new DrawbridgeButton(1, cornerX + 146, cornerY + 34, 199, 23, 22, 21);
|
|
if (logic.getPlacementDirection() == 1)
|
|
button.enabled = false;
|
|
this.buttonList.add(button);
|
|
button = new DrawbridgeButton(2, cornerX + 132, cornerY + 48, 199, 0, 21, 22);
|
|
if (logic.getPlacementDirection() == 2)
|
|
button.enabled = false;
|
|
this.buttonList.add(button);
|
|
button = new DrawbridgeButton(3, cornerX + 117, cornerY + 34, 178, 23, 22, 21);
|
|
if (logic.getPlacementDirection() == 3)
|
|
button.enabled = false;
|
|
this.buttonList.add(button);
|
|
button = new DrawbridgeButton(4, cornerX + 135, cornerY + 40, 217, 0, 10, 10);
|
|
if (logic.getPlacementDirection() == 4)
|
|
button.enabled = false;
|
|
this.buttonList.add(button);
|
|
}
|
|
|
|
protected void actionPerformed (GuiButton button)
|
|
{
|
|
for (Object o : buttonList)
|
|
{
|
|
GuiButton b = (GuiButton) o;
|
|
b.enabled = true;
|
|
}
|
|
button.enabled = false;
|
|
|
|
logic.setPlacementDirection((byte) button.id);
|
|
updateServer((byte) button.id);
|
|
}
|
|
|
|
void updateServer (byte direction)
|
|
{
|
|
ByteArrayOutputStream bos = new ByteArrayOutputStream(8);
|
|
DataOutputStream outputStream = new DataOutputStream(bos);
|
|
try
|
|
{
|
|
outputStream.writeByte(5);
|
|
outputStream.writeInt(logic.worldObj.provider.dimensionId);
|
|
outputStream.writeInt(logic.xCoord);
|
|
outputStream.writeInt(logic.yCoord);
|
|
outputStream.writeInt(logic.zCoord);
|
|
outputStream.writeByte(direction);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
ex.printStackTrace();
|
|
}
|
|
|
|
Packet250CustomPayload packet = new Packet250CustomPayload();
|
|
packet.channel = "TConstruct";
|
|
packet.data = bos.toByteArray();
|
|
packet.length = bos.size();
|
|
|
|
PacketDispatcher.sendPacketToServer(packet);
|
|
}
|
|
}
|