143 lines
5.2 KiB
Java
143 lines
5.2 KiB
Java
package mods.tinker.tconstruct.client.gui;
|
|
|
|
import java.io.ByteArrayOutputStream;
|
|
import java.io.DataOutputStream;
|
|
|
|
import mods.tinker.tconstruct.blocks.logic.ToolForgeLogic;
|
|
import mods.tinker.tconstruct.inventory.ActiveContainer;
|
|
import mods.tinker.tconstruct.inventory.ToolForgeContainer;
|
|
import mods.tinker.tconstruct.library.client.TConstructClientRegistry;
|
|
import mods.tinker.tconstruct.library.client.ToolGuiElement;
|
|
import mods.tinker.tconstruct.library.tools.ToolCore;
|
|
import mods.tinker.tconstruct.library.tools.Weapon;
|
|
import net.minecraft.client.gui.GuiButton;
|
|
import net.minecraft.client.gui.GuiTextField;
|
|
import net.minecraft.entity.player.InventoryPlayer;
|
|
import net.minecraft.item.ItemStack;
|
|
import net.minecraft.nbt.NBTTagCompound;
|
|
import net.minecraft.network.packet.Packet250CustomPayload;
|
|
import net.minecraft.util.StatCollector;
|
|
import net.minecraft.world.World;
|
|
|
|
import org.lwjgl.input.Keyboard;
|
|
import org.lwjgl.opengl.GL11;
|
|
|
|
import cpw.mods.fml.common.network.PacketDispatcher;
|
|
import cpw.mods.fml.relauncher.Side;
|
|
import cpw.mods.fml.relauncher.SideOnly;
|
|
|
|
@SideOnly(Side.CLIENT)
|
|
public class ToolForgeGui extends ToolStationGui
|
|
{
|
|
int selectedButton;
|
|
|
|
public ToolForgeGui(InventoryPlayer inventoryplayer, ToolForgeLogic stationlogic, World world, int x, int y, int z)
|
|
{
|
|
super(inventoryplayer, stationlogic, world, x, y, z);
|
|
}
|
|
|
|
protected void mouseClicked (int mouseX, int mouseY, int mouseButton)
|
|
{
|
|
super.mouseClicked(mouseX, mouseY, mouseButton);
|
|
if (mouseButton == 0)
|
|
{
|
|
int gLeft = this.guiLeft + 68;
|
|
int gTop = this.guiTop + 6;
|
|
int gWidth = 102;
|
|
int gHeight = 12;
|
|
active = mouseX > gLeft && mouseX < gLeft + gWidth && mouseY > gTop && mouseY < gTop + gHeight;
|
|
}
|
|
}
|
|
|
|
public void initGui ()
|
|
{
|
|
super.initGui();
|
|
int cornerX = (this.width - this.xSize) / 2;
|
|
int cornerY = (this.height - this.ySize) / 2;
|
|
|
|
this.buttonList.clear();
|
|
ToolGuiElement repair = TConstructClientRegistry.toolButtons.get(0);
|
|
GuiButtonTool repairButton = new GuiButtonTool(0, cornerX - 110, cornerY, repair.buttonIconX, repair.buttonIconY, repair.texture, repair); // Repair
|
|
repairButton.enabled = false;
|
|
this.buttonList.add(repairButton);
|
|
int offset = TConstructClientRegistry.tierTwoButtons.size();
|
|
|
|
for (int iter = 0; iter < TConstructClientRegistry.tierTwoButtons.size(); iter++)
|
|
{
|
|
ToolGuiElement element = TConstructClientRegistry.tierTwoButtons.get(iter);
|
|
GuiButtonTool button = new GuiButtonTool(iter+1, cornerX - 110 + 22 * ((iter + 1) % 5), cornerY + 22 * ((iter + 1) / 5), element.buttonIconX, element.buttonIconY, element.texture, element);
|
|
this.buttonList.add(button);
|
|
}
|
|
|
|
for (int iter = 1; iter < TConstructClientRegistry.toolButtons.size(); iter++)
|
|
{
|
|
ToolGuiElement element = TConstructClientRegistry.toolButtons.get(iter);
|
|
GuiButtonTool button = new GuiButtonTool(iter+offset, cornerX - 110 + 22 * ((iter + offset) % 5), cornerY + 22 * ((iter + offset) / 5), element.buttonIconX, element.buttonIconY, element.texture,
|
|
element);
|
|
this.buttonList.add(button);
|
|
}
|
|
}
|
|
|
|
protected void actionPerformed (GuiButton button)
|
|
{
|
|
GuiButtonTool b = (GuiButtonTool) button;
|
|
((GuiButton) this.buttonList.get(selectedButton)).enabled = true;
|
|
selectedButton = button.id;
|
|
button.enabled = false;
|
|
|
|
setSlotType(b.element.slotType);
|
|
iconX = b.element.iconsX;
|
|
iconY = b.element.iconsY;
|
|
title = "\u00A7n" + b.element.title;
|
|
body = b.element.body;
|
|
}
|
|
|
|
@Override
|
|
void resetGui ()
|
|
{
|
|
this.text.setText("");
|
|
selectedButton = 0;
|
|
setSlotType(0);
|
|
iconX = new int[] { 0, 1, 2, 13 };
|
|
iconY = new int[] { 13, 13, 13, 13 };
|
|
title = "\u00A7nRepair and Modification";
|
|
body = "The main way to repair or change your tools. Place a tool and a material on the left to get started.";
|
|
}
|
|
|
|
void setSlotType (int type)
|
|
{
|
|
switch (type)
|
|
{
|
|
case 0:
|
|
slotX = new int[] { 56, 38, 38, 14 }; // Repair
|
|
slotY = new int[] { 37, 28, 46, 37 };
|
|
break;
|
|
case 1:
|
|
slotX = new int[] { 56, 56, 56, 14 }; // Three parts
|
|
slotY = new int[] { 19, 55, 37, 37 };
|
|
break;
|
|
case 2:
|
|
slotX = new int[] { 56, 56, 14, 14 }; // Two parts
|
|
slotY = new int[] { 28, 46, 28, 46 };
|
|
break;
|
|
case 3:
|
|
slotX = new int[] { 38, 47, 56, 14 }; // Double head
|
|
slotY = new int[] { 28, 46, 28, 37 };
|
|
break;
|
|
case 4:
|
|
slotX = new int[] { 47, 38, 56, 47 }; // Four parts
|
|
slotY = new int[] { 19, 37, 37, 55 };
|
|
break;
|
|
case 5:
|
|
slotX = new int[] { 38, 47, 56, 47 }; // Four parts, double head
|
|
slotY = new int[] { 19, 55, 19, 37 };
|
|
break;
|
|
case 6:
|
|
slotX = new int[] { 38, 38, 20, 56 }; // Double head
|
|
slotY = new int[] { 28, 46, 28, 28 };
|
|
break;
|
|
}
|
|
toolSlots.resetSlots(slotX, slotY);
|
|
}
|
|
}
|