From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../plusplus/fbs/gui/spirit/GuiSpiritConfig.java | 107 +++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.java (limited to 'src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.java') diff --git a/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.java b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.java new file mode 100644 index 0000000..e1a224c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.java @@ -0,0 +1,107 @@ +package jp.plusplus.fbs.gui.spirit; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.spirit.ContainerSpiritMain; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritCheckBox; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritMain; +import jp.plusplus.fbs.packet.MessageGuiButton; +import jp.plusplus.fbs.packet.MessageGuiButtonWithNBT; +import jp.plusplus.fbs.packet.MessageGuiButtonWithString; +import jp.plusplus.fbs.packet.PacketHandler; +import jp.plusplus.fbs.spirit.ISpiritTool; +import jp.plusplus.fbs.spirit.SpiritStatus; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + +import java.util.ArrayList; + +/** + * Created by plusplus_F on 2015/11/14. + */ +public class GuiSpiritConfig extends GuiContainer{ + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/spiritConfig.png"); + + public ItemStack tool; + public SpiritStatus status; + public SpiritStatus.Configuration configuration; + public ISpiritTool spiritTool; + + private GuiButtonSpiritMain ok; + private GuiButtonSpiritMain cancel; + private ArrayList checks=new ArrayList(); + + public GuiSpiritConfig(EntityPlayer player) { + super(new ContainerSpiritMain(player, 1)); + tool=player.getCurrentEquippedItem(); + status=SpiritStatus.readFromNBT(tool.getTagCompound()); + configuration=status.getConfiguration(); + spiritTool=(ISpiritTool)tool.getItem(); + } + + @Override + public void initGui() { + super.initGui(); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.allowUserInput = true; + + ok=new GuiButtonSpiritMain(0, i+64, j+116, "ok"); + buttonList.add(ok); + cancel=new GuiButtonSpiritMain(1, i+116, j+116, "cancel"); + buttonList.add(cancel); + + int count=0; + for(String key : configuration.getKeys()){ + GuiButtonSpiritCheckBox b=new GuiButtonSpiritCheckBox(count+2, i+6, j+25+11*count, key); + b.checked=configuration.get(key); + checks.add(b); + buttonList.add(b); + count++; + } + } + + @Override + public void updateScreen() { + super.updateScreen(); + } + + @Override + protected void actionPerformed(GuiButton p_146284_1_) { + if(p_146284_1_ instanceof GuiButtonSpiritMain){ + NBTTagCompound nbt=new NBTTagCompound(); + configuration.writeToNBT(nbt); + PacketHandler.INSTANCE.sendToServer(new MessageGuiButtonWithNBT(p_146284_1_.id, nbt)); + + if(p_146284_1_.id==0){ + NBTTagCompound nbt1=new NBTTagCompound(); + SpiritStatus.writeToNBT(status, nbt1); + tool.setTagCompound(nbt1); + } + } + else if(p_146284_1_ instanceof GuiButtonSpiritCheckBox) { + GuiButtonSpiritCheckBox b = ((GuiButtonSpiritCheckBox) p_146284_1_); + b.checked = !b.checked; + configuration.update(b.keyString, b.checked); + } + } + + @Override + protected void drawGuiContainerBackgroundLayer(float v, int i, int i1) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + this.mc.getTextureManager().bindTexture(rl); + + int k = (this.width - this.xSize) / 2; + int l = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2){} +} -- cgit v1.2.3