From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../jp/plusplus/fbs/gui/GuiAlchemyCauldron.class | Bin 0 -> 5441 bytes .../jp/plusplus/fbs/gui/GuiAlchemyCauldron.java | 88 ++++++++ src/main/java/jp/plusplus/fbs/gui/GuiBasket.class | Bin 0 -> 2685 bytes src/main/java/jp/plusplus/fbs/gui/GuiBasket.java | 39 ++++ src/main/java/jp/plusplus/fbs/gui/GuiBonfire.class | Bin 0 -> 2410 bytes src/main/java/jp/plusplus/fbs/gui/GuiBonfire.java | 42 ++++ .../java/jp/plusplus/fbs/gui/GuiContract.class | Bin 0 -> 5240 bytes src/main/java/jp/plusplus/fbs/gui/GuiContract.java | 110 ++++++++++ .../java/jp/plusplus/fbs/gui/GuiEnchantment.class | Bin 0 -> 4302 bytes .../java/jp/plusplus/fbs/gui/GuiEnchantment.java | 79 +++++++ .../jp/plusplus/fbs/gui/GuiExtractingFurnace.class | Bin 0 -> 4057 bytes .../jp/plusplus/fbs/gui/GuiExtractingFurnace.java | 79 +++++++ .../java/jp/plusplus/fbs/gui/GuiFillingTable.class | Bin 0 -> 2918 bytes .../java/jp/plusplus/fbs/gui/GuiFillingTable.java | 50 +++++ src/main/java/jp/plusplus/fbs/gui/GuiHandler.class | Bin 0 -> 9172 bytes src/main/java/jp/plusplus/fbs/gui/GuiHandler.java | 235 +++++++++++++++++++++ src/main/java/jp/plusplus/fbs/gui/GuiMagic.class | Bin 0 -> 2335 bytes src/main/java/jp/plusplus/fbs/gui/GuiMagic.java | 40 ++++ .../java/jp/plusplus/fbs/gui/GuiShopAuthor.class | Bin 0 -> 1137 bytes .../java/jp/plusplus/fbs/gui/GuiShopAuthor.java | 18 ++ src/main/java/jp/plusplus/fbs/gui/GuiStaff.class | Bin 0 -> 3270 bytes src/main/java/jp/plusplus/fbs/gui/GuiStaff.java | 49 +++++ src/main/java/jp/plusplus/fbs/gui/GuiWarp.class | Bin 0 -> 7139 bytes src/main/java/jp/plusplus/fbs/gui/GuiWarp.java | 181 ++++++++++++++++ .../java/jp/plusplus/fbs/gui/GuiWorkbench.class | Bin 0 -> 2846 bytes .../java/jp/plusplus/fbs/gui/GuiWorkbench.java | 56 +++++ .../fbs/gui/button/GuiButtonDestination.class | Bin 0 -> 1573 bytes .../fbs/gui/button/GuiButtonDestination.java | 35 +++ .../fbs/gui/button/GuiButtonEnchantment.class | Bin 0 -> 1663 bytes .../fbs/gui/button/GuiButtonEnchantment.java | 35 +++ .../fbs/gui/button/GuiButtonSpiritArrow.class | Bin 0 -> 1763 bytes .../fbs/gui/button/GuiButtonSpiritArrow.java | 43 ++++ .../fbs/gui/button/GuiButtonSpiritCheckBox.class | Bin 0 -> 2200 bytes .../fbs/gui/button/GuiButtonSpiritCheckBox.java | 39 ++++ .../fbs/gui/button/GuiButtonSpiritLearn.class | Bin 0 -> 3377 bytes .../fbs/gui/button/GuiButtonSpiritLearn.java | 50 +++++ .../fbs/gui/button/GuiButtonSpiritLearnDummy.class | Bin 0 -> 2051 bytes .../fbs/gui/button/GuiButtonSpiritLearnDummy.java | 31 +++ .../fbs/gui/button/GuiButtonSpiritMain.class | Bin 0 -> 4447 bytes .../fbs/gui/button/GuiButtonSpiritMain.java | 124 +++++++++++ .../jp/plusplus/fbs/gui/button/GuiButtonWarp.class | Bin 0 -> 2131 bytes .../jp/plusplus/fbs/gui/button/GuiButtonWarp.java | 44 ++++ .../plusplus/fbs/gui/spirit/GuiSpiritConfig.class | Bin 0 -> 5483 bytes .../plusplus/fbs/gui/spirit/GuiSpiritConfig.java | 107 ++++++++++ .../plusplus/fbs/gui/spirit/GuiSpiritLearn.class | Bin 0 -> 6540 bytes .../jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.java | 139 ++++++++++++ .../jp/plusplus/fbs/gui/spirit/GuiSpiritMain.class | Bin 0 -> 10805 bytes .../jp/plusplus/fbs/gui/spirit/GuiSpiritMain.java | 228 ++++++++++++++++++++ .../plusplus/fbs/gui/spirit/GuiSpiritSkill.class | Bin 0 -> 5997 bytes .../jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.java | 127 +++++++++++ 50 files changed, 2068 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiBasket.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiBasket.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiBonfire.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiBonfire.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiContract.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiContract.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiHandler.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiHandler.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiMagic.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiMagic.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiStaff.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiStaff.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiWarp.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiWarp.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.java create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.class create mode 100644 src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.java (limited to 'src/main/java/jp/plusplus/fbs/gui') diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.class b/src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.class new file mode 100644 index 0000000..7cf036f Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.java b/src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.java new file mode 100644 index 0000000..18cf3cf --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.java @@ -0,0 +1,88 @@ +package jp.plusplus.fbs.gui; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.ContainerAlchemyCauldron; +import jp.plusplus.fbs.gui.button.GuiButtonEnchantment; +import jp.plusplus.fbs.packet.MessageGuiButton; +import jp.plusplus.fbs.packet.PacketHandler; +import jp.plusplus.fbs.tileentity.TileEntityAlchemyCauldron; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.inventory.Container; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +/** + * Createdby pluslus_Fon 2015/06/08. + */ +public class GuiAlchemyCauldron extends GuiContainer { + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID, "textures/gui/alchemyCauldron.png"); + private TileEntityAlchemyCauldron entity; + private GuiButtonEnchantment button; + + public GuiAlchemyCauldron(Container p_i1072_1_, TileEntityAlchemyCauldron t) { + super(p_i1072_1_); + entity =t; + ySize=201; + } + + @Override + public void initGui() { + super.initGui(); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.allowUserInput = true; + button=new GuiButtonEnchantment(0, i+99, j+36); + buttonList.add(button); + } + + @Override + public void updateScreen() { + super.updateScreen(); + button.enabled=((ContainerAlchemyCauldron)inventorySlots).entity.canCompounding(); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2){ + String s=entity.getInventoryName(); + this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); + + int k = (this.width - this.xSize) / 2; + int l = (this.height - this.ySize) / 2; + if(entity.cachedRecipe!=null){ + if(!entity.materials.isEmpty()) { + this.fontRendererObj.drawString(entity.cachedRecipe.getProduct().getDisplayName(), 9, 37, 0x404040); + for (int i = 0; i < entity.materials.size(); i++) { + TileEntityAlchemyCauldron.MaterialPair p = entity.materials.get(i); + this.fontRendererObj.drawString(p.getName(), 9, 48 + (fontRendererObj.FONT_HEIGHT + 1) * i, p.get() ? 0xffffff : 0x404040); + } + } + float p=entity.getCompoundingProbability(((ContainerAlchemyCauldron) inventorySlots).player)*100; + fontRendererObj.drawString(String.format("%.2f%%", p), 102, 60, 0x404040); + } + } + + @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 actionPerformed(GuiButton p_146284_1_) { + if(p_146284_1_==button){ + entity.inputMaterial.clear(); + for(TileEntityAlchemyCauldron.MaterialPair mp : entity.materials){ + mp.set(false); + } + PacketHandler.INSTANCE.sendToServer(new MessageGuiButton(0)); + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiBasket.class b/src/main/java/jp/plusplus/fbs/gui/GuiBasket.class new file mode 100644 index 0000000..d62c670 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/GuiBasket.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiBasket.java b/src/main/java/jp/plusplus/fbs/gui/GuiBasket.java new file mode 100644 index 0000000..10cbe7b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/GuiBasket.java @@ -0,0 +1,39 @@ +package jp.plusplus.fbs.gui; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.ContainerBasket; +import jp.plusplus.fbs.item.ItemCore; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/11/11. + */ +public class GuiBasket extends GuiContainer { + private static final ResourceLocation texture = new ResourceLocation(FBS.MODID, "textures/gui/basket.png"); + + public GuiBasket(InventoryPlayer inventoryPlayer) { + super(new ContainerBasket(inventoryPlayer)); + this.ySize = 222; + } + + @Override + protected void drawGuiContainerForegroundLayer(int x, int p_146979_2_) { + String s = StatCollector.translateToLocal(ItemCore.basket.getUnlocalizedName() + ".name"); + this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + this.mc.getTextureManager().bindTexture(texture); + int k = (this.width - this.xSize) / 2; + int l = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiBonfire.class b/src/main/java/jp/plusplus/fbs/gui/GuiBonfire.class new file mode 100644 index 0000000..797593f Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/GuiBonfire.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiBonfire.java b/src/main/java/jp/plusplus/fbs/gui/GuiBonfire.java new file mode 100644 index 0000000..dc84f10 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/GuiBonfire.java @@ -0,0 +1,42 @@ +package jp.plusplus.fbs.gui; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.ContainerBonfire; +import jp.plusplus.fbs.container.ContainerMagic; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.input.Mouse; +import org.lwjgl.opengl.GL11; + +/** + * Created by pluslus_F on 2015/10/19. + */ +public class GuiBonfire extends GuiContainer { + public static final ResourceLocation rl=new ResourceLocation(FBS.MODID, "textures/gui/bonfire.png"); + ContainerBonfire cm; + + public GuiBonfire(ContainerBonfire p_i1072_1_) { + super(p_i1072_1_); + cm=p_i1072_1_; + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2){ + String s=cm.inventory.getInventoryName(); + this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); + } + @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); + } + +} diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiContract.class b/src/main/java/jp/plusplus/fbs/gui/GuiContract.class new file mode 100644 index 0000000..a60bc2b Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/GuiContract.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiContract.java b/src/main/java/jp/plusplus/fbs/gui/GuiContract.java new file mode 100644 index 0000000..19d0ff7 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/GuiContract.java @@ -0,0 +1,110 @@ +package jp.plusplus.fbs.gui; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.ContainerContract; +import jp.plusplus.fbs.container.ContainerTFKEnchantment; +import jp.plusplus.fbs.gui.button.GuiButtonEnchantment; +import jp.plusplus.fbs.item.ItemCore; +import jp.plusplus.fbs.packet.MessageGuiButton; +import jp.plusplus.fbs.packet.MessageGuiButtonWithString; +import jp.plusplus.fbs.packet.PacketHandler; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiTextField; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import org.lwjgl.input.Keyboard; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/11/14. + */ +public class GuiContract extends GuiContainer { + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/magicContract.png"); + public ContainerContract con; + public GuiButtonEnchantment button; + public GuiTextField textField; + + public GuiContract(ContainerContract p_i1072_1_) { + super(p_i1072_1_); + con=p_i1072_1_; + } + + @Override + public void initGui() { + super.initGui(); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.allowUserInput = true; + Keyboard.enableRepeatEvents(true); + + button=new GuiButtonEnchantment(0, i+92, j+40); + this.buttonList.add(button); + + textField=new GuiTextField(fontRendererObj, i+9, j+34, 68, 9); + textField.setTextColor(-1); + textField.setDisabledTextColour(-1); + textField.setEnableBackgroundDrawing(false); + textField.setMaxStringLength(20); + } + + @Override + public void onGuiClosed(){ + super.onGuiClosed(); + Keyboard.enableRepeatEvents(false); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2){ + super.drawGuiContainerForegroundLayer(par1, par2); + String s= StatCollector.translateToLocal(con.inventory.getInventoryName()); + this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); + } + @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 + public void updateScreen() { + super.updateScreen(); + button.enabled=((ContainerContract)inventorySlots).canContract() && !textField.getText().isEmpty(); + } + + @Override + protected void actionPerformed(GuiButton p_146284_1_) { + if(p_146284_1_==button && p_146284_1_.enabled){ + PacketHandler.INSTANCE.sendToServer(new MessageGuiButtonWithString(0, textField.getText())); + textField.setText(""); + } + } + + @Override + protected void mouseClicked(int p_73864_1_, int p_73864_2_, int p_73864_3_) { + super.mouseClicked(p_73864_1_, p_73864_2_, p_73864_3_); + textField.mouseClicked(p_73864_1_, p_73864_2_, p_73864_3_); + } + + @Override + protected void keyTyped(char p_73869_1_, int p_73869_2_) { + if(!textField.textboxKeyTyped(p_73869_1_, p_73869_2_)){ + super.keyTyped(p_73869_1_, p_73869_2_); + } + } + + @Override + public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_) { + super.drawScreen(p_73863_1_, p_73863_2_, p_73863_3_); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + textField.drawTextBox(); + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.class b/src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.class new file mode 100644 index 0000000..0c7d2af Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.java b/src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.java new file mode 100644 index 0000000..8466ab5 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.java @@ -0,0 +1,79 @@ +package jp.plusplus.fbs.gui; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.ContainerTFKEnchantment; +import jp.plusplus.fbs.gui.button.GuiButtonEnchantment; +import jp.plusplus.fbs.item.ItemCore; +import jp.plusplus.fbs.packet.MessageGuiButton; +import jp.plusplus.fbs.packet.PacketHandler; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/10/21. + */ +public class GuiEnchantment extends GuiContainer { + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/enchant.png"); + public GuiButtonEnchantment button; + public ContainerTFKEnchantment con; + + public GuiEnchantment(ContainerTFKEnchantment p_i1072_1_) { + super(p_i1072_1_); + con=p_i1072_1_; + } + + @Override + public void initGui() { + super.initGui(); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.allowUserInput = true; + button=new GuiButtonEnchantment(0, i+83, j+28); + this.buttonList.add(button); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2){ + super.drawGuiContainerForegroundLayer(par1, par2); + String s= StatCollector.translateToLocal(ItemCore.enchantScroll.getUnlocalizedName()+".name"); + this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); + + //エンチャント成功率 + if(con.canEnchant()) { + int k = (this.width - this.xSize) / 2; + int l = (this.height - this.ySize) / 2; + float p = con.getEnchantProbability() * 100; + if (p < 0) p = 0; + if (p > 100) p = 100; + this.fontRendererObj.drawString(String.format("%.2f%%", p), 85, 50, 0x404040); + } + } + @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 + public void updateScreen() { + super.updateScreen(); + button.enabled=((ContainerTFKEnchantment)inventorySlots).canEnchant(); + } + + @Override + protected void actionPerformed(GuiButton p_146284_1_) { + if(p_146284_1_==button){ + PacketHandler.INSTANCE.sendToServer(new MessageGuiButton(0)); + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.class b/src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.class new file mode 100644 index 0000000..4fd96f0 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.java b/src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.java new file mode 100644 index 0000000..8883397 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.java @@ -0,0 +1,79 @@ +package jp.plusplus.fbs.gui; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.tileentity.TileEntityExtractingFurnace; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.client.resources.I18n; +import net.minecraft.inventory.Container; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +/** + * Createdby pluslus_Fon 2015/06/08. + */ +public class GuiExtractingFurnace extends GuiContainer { + public static final ResourceLocation rl=new ResourceLocation(FBS.MODID, "textures/gui/extractingFurnace.png"); + private TileEntityExtractingFurnace entity; + + public GuiExtractingFurnace(Container p_i1072_1_, TileEntityExtractingFurnace t) { + super(p_i1072_1_); + entity =t; + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2){ + String s=entity.getInventoryName(); + this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); + } + @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); + this.drawTexturedModalRect(k+68, l+35, 176, 0, entity.getProgressScaled(22), 15); + + int amount = entity.tank.getFluidAmount(); + if (amount > 0) { + IIcon icon = entity.getFluidIcon(); + if (icon != null) { + int scale = 52 * amount / entity.tank.getCapacity(); + drawFluid(this, k + 98, l + 69 - scale, icon, 34, scale); + } + } + } + + public static void drawFluid(GuiContainer gui, int x, int y, IIcon icon, int w, int h) { + if(h==0) h=1; + + GL11.glPushMatrix(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(2.0F, 2.0F, 2.0F, 0.75F); + gui.mc.getMinecraft().getTextureManager().bindTexture(TextureMap.locationBlocksTexture); + + int sx, sy; + for (sy = 0; h - sy * 16 > 16; sy++) { + for (sx = 0; w - sx * 16 > 16; sx++) { + gui.drawTexturedModelRectFromIcon(x + sx * 16, y + sy * 16, icon, 16, 16); + } + gui.drawTexturedModelRectFromIcon(x + sx * 16, y + sy * 16, icon, w - sx * 16, 16); + } + for (sx = 0; w - sx * 16 > 16; sx++) { + gui.drawTexturedModelRectFromIcon(x + sx * 16, y + sy * 16, icon, 16, h - sy * 16); + } + gui.drawTexturedModelRectFromIcon(x + sx * 16, y + sy * 16, icon, w - sx * 16, h - sy * 16); + + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + GL11.glDisable(GL11.GL_BLEND); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.class b/src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.class new file mode 100644 index 0000000..e979c2a Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.java b/src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.java new file mode 100644 index 0000000..c73a683 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.java @@ -0,0 +1,50 @@ +package jp.plusplus.fbs.gui; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.tileentity.TileEntityExtractingFurnace; +import jp.plusplus.fbs.tileentity.TileEntityFillingTable; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.resources.I18n; +import net.minecraft.inventory.Container; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +/** + * Createdby pluslus_Fon 2015/06/14. + */ +public class GuiFillingTable extends GuiContainer { + private TileEntityFillingTable entity; + + public GuiFillingTable(Container p_i1072_1_, TileEntityFillingTable t) { + super(p_i1072_1_); + entity =t; + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2){ + String s=entity.getInventoryName(); + this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 0x404040); + } + @Override + protected void drawGuiContainerBackgroundLayer(float v, int i, int i1) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + + this.mc.getTextureManager().bindTexture(new ResourceLocation(FBS.MODID, "textures/gui/fillingTable.png")); + + int k = (this.width - this.xSize) / 2; + int l = (this.height - this.ySize) / 2; + this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); + this.drawTexturedModalRect(k+76, l+35, 176, 0, entity.getProgressScaled(22), 15); + + int amount = entity.tank.getFluidAmount(); + if (amount > 0) { + IIcon icon = entity.getFluidIcon(); + if (icon != null) { + int scale = 16 * amount / entity.tank.getCapacity(); + GuiExtractingFurnace.drawFluid(this, k + 44, l + 69 - scale, icon, 16, scale); + } + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiHandler.class b/src/main/java/jp/plusplus/fbs/gui/GuiHandler.class new file mode 100644 index 0000000..0284291 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/GuiHandler.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiHandler.java b/src/main/java/jp/plusplus/fbs/gui/GuiHandler.java new file mode 100644 index 0000000..609a8ad --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/GuiHandler.java @@ -0,0 +1,235 @@ +package jp.plusplus.fbs.gui; + +import cpw.mods.fml.common.network.IGuiHandler; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.Registry; +import jp.plusplus.fbs.block.BlockCore; +import jp.plusplus.fbs.container.*; +import jp.plusplus.fbs.container.inventory.InventoryMagicCopy; +import jp.plusplus.fbs.container.inventory.InventoryMagicTimeTrace; +import jp.plusplus.fbs.container.spirit.ContainerSpiritLearn; +import jp.plusplus.fbs.container.spirit.ContainerSpiritMain; +import jp.plusplus.fbs.entity.EntityMagicAuthor; +import jp.plusplus.fbs.event.wish.ContainerWish; +import jp.plusplus.fbs.event.wish.GuiWish; +import jp.plusplus.fbs.gui.spirit.GuiSpiritConfig; +import jp.plusplus.fbs.gui.spirit.GuiSpiritLearn; +import jp.plusplus.fbs.gui.spirit.GuiSpiritMain; +import jp.plusplus.fbs.gui.spirit.GuiSpiritSkill; +import jp.plusplus.fbs.pottery.GuiKiln; +import jp.plusplus.fbs.pottery.GuiPottersWheel; +import jp.plusplus.fbs.pottery.TileEntityKiln; +import jp.plusplus.fbs.pottery.TileEntityPottersWheel; +import jp.plusplus.fbs.pottery.usable.container.ContainerPotteryUsableBase; +import jp.plusplus.fbs.pottery.usable.container.GuiPotteryUsableBase; +import jp.plusplus.fbs.storage.ContainerMealTerminal; +import jp.plusplus.fbs.storage.GuiMealTerminal; +import jp.plusplus.fbs.storage.TileEntityMealTerminal; +import jp.plusplus.fbs.tileentity.*; +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; +import shift.mceconomy2.api.MCEconomyAPI; +import shift.mceconomy2.gui.GuiShop; + +import java.util.List; + +/** + * Createdby pluslus_Fon 2015/06/08. + */ +public class GuiHandler implements IGuiHandler { + @Override + public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + + if(ID==FBS.GUI_STAFF_ID){ + return new ContainerStaff(player.inventory); + } + if(ID==FBS.GUI_MAGIC_COPY_ID){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + return new ContainerMagic(player.inventory, new InventoryMagicCopy((TileEntityMagicCore)te, player)); + } + } + if(ID==FBS.GUI_MAGIC_TIME_TRACE_ID){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + return new ContainerMagic(player.inventory, new InventoryMagicTimeTrace((TileEntityMagicCore)te, player)); + } + } + if(ID==FBS.GUI_ENCHANTMENT_ID){ + return new ContainerTFKEnchantment(player); + } + if(ID==FBS.GUI_MAGIC_WARP_ID){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + return new ContainerWarp(player); + } + } + if(ID==FBS.GUI_MAGIC_CONTRACT_ID){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + return new ContainerContract(player); + } + } + if(ID==FBS.GUI_SPIRIT_MAIN_ID){ + return new ContainerSpiritMain(player, 0); + } + if(ID==FBS.GUI_BASKET_ID){ + return new ContainerBasket(player.inventory); + } + if(ID==FBS.GUI_SPIRIT_CONFIG_ID){ + return new ContainerSpiritMain(player, 1); + } + if(ID==FBS.GUI_SPIRIT_LEARN_ID){ + return new ContainerSpiritLearn(player); + } + if(ID==FBS.GUI_SPIRIT_SKILL_ID){ + return new ContainerSpiritLearn(player); + } + if(ID==FBS.GUI_SHOP_AUTHOR_ID){ + return new ContainerShopAuthor(player, MCEconomyAPI.getShop(Registry.shopAuthorId), world, null); + } + if(ID==FBS.GUI_MAGIC_POT_ID){ + return new ContainerPotteryUsableBase(player); + } + if(ID==FBS.GUI_WISH_ID){ + return new ContainerWish(); + } + + //------------------------------------------------------- + if(!world.blockExists(x,y,z)) return null; + + Block b=world.getBlock(x,y,z); + if(b== BlockCore.bonfire){ + return new ContainerBonfire(x,y,z, player); + } + + TileEntity e=world.getTileEntity(x,y,z); + if(e instanceof TileEntityExtractingFurnace){ + return new ContainerExtractingFurnace(player, (TileEntityExtractingFurnace)e); + } + if(e instanceof TileEntityFillingTable){ + return new ContainerFillingTable(player, (TileEntityFillingTable)e); + } + if(e instanceof TileEntityFBSWorkbench){ + return new ContainerFBSWorkbench(player, (TileEntityFBSWorkbench)e); + } + if(e instanceof TileEntityPottersWheel){ + return new ContainerPottersWheel(player, (TileEntityPottersWheel)e); + } + if(e instanceof TileEntityKiln){ + return new ContainerKiln(player, (TileEntityKiln)e); + } + if(e instanceof TileEntityAlchemyCauldron){ + return new ContainerAlchemyCauldron(player, (TileEntityAlchemyCauldron)e); + } + if(e instanceof TileEntityMealTerminal){ + return new ContainerMealTerminal(player, (TileEntityMealTerminal)e); + } + + return null; + } + + @Override + public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + + if(ID== FBS.GUI_STAFF_ID){ + return new GuiStaff(player.inventory); + } + if(ID==FBS.GUI_MAGIC_COPY_ID){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + return new GuiMagic(new ContainerMagic(player.inventory, new InventoryMagicCopy((TileEntityMagicCore)te, player))); + } + } + if(ID==FBS.GUI_MAGIC_TIME_TRACE_ID){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + return new GuiMagic(new ContainerMagic(player.inventory, new InventoryMagicTimeTrace((TileEntityMagicCore)te, player))); + } + } + if(ID==FBS.GUI_ENCHANTMENT_ID){ + return new GuiEnchantment(new ContainerTFKEnchantment(player)); + } + if(ID==FBS.GUI_MAGIC_WARP_ID){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + return new GuiWarp(new ContainerWarp(player)); + } + } + if(ID==FBS.GUI_MAGIC_CONTRACT_ID){ + TileEntity te=world.getTileEntity(x,y,z); + if(te instanceof TileEntityMagicCore){ + return new GuiContract(new ContainerContract(player)); + } + } + if(ID==FBS.GUI_SPIRIT_MAIN_ID){ + return new GuiSpiritMain(player); + } + if(ID==FBS.GUI_BASKET_ID){ + return new GuiBasket(player.inventory); + } + if(ID==FBS.GUI_SPIRIT_CONFIG_ID){ + return new GuiSpiritConfig(player); + } + if(ID==FBS.GUI_SPIRIT_LEARN_ID){ + return new GuiSpiritLearn(player); + } + if(ID==FBS.GUI_SPIRIT_SKILL_ID){ + return new GuiSpiritSkill(player); + } + if(ID==FBS.GUI_SHOP_AUTHOR_ID){ + List list=world.getEntitiesWithinAABB(EntityMagicAuthor.class, AxisAlignedBB.getBoundingBox(x,y,z,x+1,y+1,z+1).expand(1,1,1)); + for(int i=0;i destinations; + + public GuiWarp(ContainerWarp p_i1072_1_) { + super(p_i1072_1_); + con=p_i1072_1_; + } + + @Override + public void initGui() { + super.initGui(); + Keyboard.enableRepeatEvents(true); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.allowUserInput = true; + page=0; + + buttonPrev=new GuiButtonWarp(0, i+15, j+16, ""); + buttonNext=new GuiButtonWarp(1, i+115, j+16, ""); + buttonDecide=new GuiButtonWarp(2, i+128, j+16, "Decide"); + buttonDecide.enabled=false; + buttonRename=new GuiButtonWarp(3, i+128, j+48, "Rename"); + buttonRename.enabled=false; + + buttonList.add(buttonPrev); + buttonList.add(buttonNext); + buttonList.add(buttonDecide); + buttonList.add(buttonRename); + + for(int k=0;k1) changePage(-1); + else if(p_146284_1_==buttonNext && (page+1)*PAGE_ITEM_MAX<=destinations.size()) changePage(1); + + int i=getSelectedIndex(); + if(p_146284_1_==buttonDecide){ + PacketHandler.INSTANCE.sendToServer(new MessageGuiButtonDecide(con.player, destinations.get(i+page*PAGE_ITEM_MAX))); + } + if(p_146284_1_==buttonRename && i!=-1){ + if(i!=-1){ + PacketHandler.INSTANCE.sendToServer(new MessageGuiButtonWithString(i, textField.getText())); + destinations.get(i).setName(textField.getText()); + buttons[i].setDisplayString(textField.getText()); + textField.setText(""); + } + } + if(p_146284_1_ instanceof GuiButtonDestination){ + for(int k=0;k0); + buttonNext.enabled=((page+1)*PAGE_ITEM_MAX 0) { + IIcon icon = entity.getFluidIcon(); + if (icon != null) { + int scale = 16 * amount / entity.tank.getCapacity(); + GuiExtractingFurnace.drawFluid(this, k + 30, l + 87 - scale, icon, 16, scale); + } + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.class b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.class new file mode 100644 index 0000000..ac4e2ed Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.java b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.java new file mode 100644 index 0000000..ea00477 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.java @@ -0,0 +1,35 @@ +package jp.plusplus.fbs.gui.button; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.renderer.OpenGlHelper; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/10/22. + */ +public class GuiButtonDestination extends GuiButton { + public boolean selected; + + public GuiButtonDestination(int p_i1020_1_, int p_i1020_2_, int p_i1020_3_) { + super(p_i1020_1_, p_i1020_2_, p_i1020_3_,86 ,20, ""); + enabled=false; + } + + public void setDisplayString(String str){ + displayString=str; + enabled=!str.isEmpty(); + } + + @Override + public void drawButton(Minecraft p_146112_1_, int p_146112_2_, int p_146112_3_) { + if (this.enabled && !displayString.isEmpty()) { + FontRenderer fontrenderer = p_146112_1_.fontRenderer; + this.mouseDragged(p_146112_1_, p_146112_2_, p_146112_3_); + int col=selected?0xffffff:0x404040; + + this.drawCenteredString(fontrenderer, this.displayString, this.xPosition + this.width / 2, this.yPosition + (this.height - 16) / 2, col); + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.class b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.class new file mode 100644 index 0000000..d4af4de Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.java b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.java new file mode 100644 index 0000000..e25475d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.java @@ -0,0 +1,35 @@ +package jp.plusplus.fbs.gui.button; + +import jp.plusplus.fbs.FBS; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/10/21. + */ +public class GuiButtonEnchantment extends GuiButton { + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/enchant.png"); + + public GuiButtonEnchantment(int id, int x, int y) { + super(id, x, y, 28, 23, ""); + } + + @Override + public void drawButton(Minecraft par1Minecraft, int par2, int par3) { + if (this.visible) { + par1Minecraft.getTextureManager().bindTexture(rl); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + boolean onMouse = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + + int drawX = 176; + int drawY = 0; + + if (!this.enabled) drawY += height * 2; + else if (onMouse) drawY += height; + + this.drawTexturedModalRect(this.xPosition, this.yPosition, drawX, drawY, this.width, this.height); + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.class b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.class new file mode 100644 index 0000000..e42576a Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.java b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.java new file mode 100644 index 0000000..89e342c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.java @@ -0,0 +1,43 @@ +package jp.plusplus.fbs.gui.button; + +import jp.plusplus.fbs.FBS; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/10/22. + */ +public class GuiButtonSpiritArrow extends GuiButton { + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/spiritConfig.png"); + public boolean selected; + + public GuiButtonSpiritArrow(int id, int x, int y) { + super(id, x, y, 10, 15, ""); + } + + @Override + public void drawButton(Minecraft par1Minecraft, int par2, int par3) { + if (this.visible) { + par1Minecraft.getTextureManager().bindTexture(rl); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + boolean onMouse = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + + int drawX = 176; + int drawY = 15*id; + + if(id<2){ + if (!this.enabled) drawX += width * 2; + else if (onMouse) drawX += width; + } + else{ + if (!this.enabled) drawY += height * 2; + else if (onMouse) drawY += height; + } + + //selected?0xffffff:0x404040 + this.drawTexturedModalRect(this.xPosition, this.yPosition, drawX, drawY, this.width, this.height); + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.class b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.class new file mode 100644 index 0000000..257d8b2 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.java b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.java new file mode 100644 index 0000000..5ebd4e1 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.java @@ -0,0 +1,39 @@ +package jp.plusplus.fbs.gui.button; + +import jp.plusplus.fbs.FBS; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/11/14. + */ +public class GuiButtonSpiritCheckBox extends GuiButton { + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/spiritConfig.png"); + public boolean checked; + public String keyString; + + public GuiButtonSpiritCheckBox(int id, int x, int y, String str) { + super(id, x, y, 10, 10, StatCollector.translateToLocal("spirit.config.fbs."+str)); + checked=false; + keyString=str; + } + + @Override + public void drawButton(Minecraft par1Minecraft, int par2, int par3) { + if (this.visible) { + par1Minecraft.getTextureManager().bindTexture(rl); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + int drawX = 176; + int drawY = 48; + + if(checked) drawY+=10; + + this.drawTexturedModalRect(this.xPosition, this.yPosition, drawX, drawY, this.width, this.height); + par1Minecraft.fontRenderer.drawString(displayString, xPosition + 11, yPosition + 1, 0x404040); + //drawString(par1Minecraft.fontRenderer, displayString, xPosition+11, yPosition+1, 0x404040); + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.class b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.class new file mode 100644 index 0000000..de5b8c1 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.java b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.java new file mode 100644 index 0000000..280fcbe --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.java @@ -0,0 +1,50 @@ +package jp.plusplus.fbs.gui.button; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.spirit.SkillManager; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.StatCollector; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/11/28. + */ +public class GuiButtonSpiritLearn extends GuiButton { + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/spiritConfig.png"); + + public String[] skillStr=new String[0]; + public String skillName=""; + + public GuiButtonSpiritLearn(int id, int x, int y, String str) { + super(id, x, y, 34, 16, StatCollector.translateToLocal("spirit.gui.fbs.button."+str)); + } + + @Override + public void drawButton(Minecraft par1Minecraft, int par2, int par3) { + if (this.visible) { + par1Minecraft.getTextureManager().bindTexture(rl); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + boolean onMouse = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + + int drawX = 186; + int drawY = 48; + + if(!enabled) drawY+=32; + else if(onMouse) drawY+=16; + + this.drawTexturedModalRect(this.xPosition, this.yPosition, drawX, drawY, this.width, this.height); + drawCenteredString(par1Minecraft.fontRenderer, displayString, xPosition + width / 2, yPosition + (this.height - 8) / 2, enabled? 0xffffff:0xa0a0a0); + + for(int i=0;i= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + + int drawX = 176; + int drawY = 0; + + if(!enabled) drawY=32; + else if(onMouse) drawY=16; + + this.drawTexturedModalRect(this.xPosition, this.yPosition, drawX, drawY, this.width, this.height); + drawCenteredString(par1Minecraft.fontRenderer, displayString, xPosition + width / 2, yPosition + (this.height - 8) / 2, enabled? 0xffffff:0xa0a0a0); + } + } + + + public void drawHoveringText(List p_146283_1_, int p_146283_2_, int p_146283_3_, FontRenderer font) { + if (!p_146283_1_.isEmpty()) { + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + RenderHelper.disableStandardItemLighting(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_DEPTH_TEST); + int width = 0; + Iterator iterator = p_146283_1_.iterator(); + + while (iterator.hasNext()) { + String s = (String) iterator.next(); + int l = font.getStringWidth(s); + + if (l > width) { + width = l; + } + } + + int xMin = p_146283_2_ + 12; + int yMin = p_146283_3_ - 12; + int i1 = 8; + + if (p_146283_1_.size() > 1) { + i1 += 2 + (p_146283_1_.size() - 1) * 10; + } + + /* + if (xMin + width > this.width) { + xMin -= 28 + width; + } + + if (yMin + i1 + 6 > this.height) { + yMin = this.height - i1 - 6; + } + */ + + + //this.zLevel = 300.0F; + //itemRender.zLevel = 300.0F; + int color = -267386864; + this.drawGradientRect(xMin - 3, yMin - 4, xMin + width + 3, yMin - 3, color, color); + this.drawGradientRect(xMin - 3, yMin + i1 + 3, xMin + width + 3, yMin + i1 + 4, color, color); + this.drawGradientRect(xMin - 3, yMin - 3, xMin + width + 3, yMin + i1 + 3, color, color); + this.drawGradientRect(xMin - 4, yMin - 3, xMin - 3, yMin + i1 + 3, color, color); + this.drawGradientRect(xMin + width + 3, yMin - 3, xMin + width + 4, yMin + i1 + 3, color, color); + int k1 = 1347420415; + int l1 = (k1 & 16711422) >> 1 | k1 & -16777216; + this.drawGradientRect(xMin - 3, yMin - 3 + 1, xMin - 3 + 1, yMin + i1 + 3 - 1, k1, l1); + this.drawGradientRect(xMin + width + 2, yMin - 3 + 1, xMin + width + 3, yMin + i1 + 3 - 1, k1, l1); + this.drawGradientRect(xMin - 3, yMin - 3, xMin + width + 3, yMin - 3 + 1, k1, k1); + this.drawGradientRect(xMin - 3, yMin + i1 + 2, xMin + width + 3, yMin + i1 + 3, l1, l1); + + for (int i2 = 0; i2 < p_146283_1_.size(); ++i2) { + String s1 = (String) p_146283_1_.get(i2); + font.drawStringWithShadow(s1, xMin, yMin, -1); + + if (i2 == 0) { + yMin += 2; + } + + yMin += 10; + } + + //this.zLevel = 0.0F; + //itemRender.zLevel = 0.0F; + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_DEPTH_TEST); + RenderHelper.enableStandardItemLighting(); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.class b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.class new file mode 100644 index 0000000..7d0a259 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.java b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.java new file mode 100644 index 0000000..7594662 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.java @@ -0,0 +1,44 @@ +package jp.plusplus.fbs.gui.button; + +import jp.plusplus.fbs.FBS; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +/** + * Created by plusplus_F on 2015/10/22. + */ +public class GuiButtonWarp extends GuiButton { + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/magicWarp.png"); + public boolean selected; + + public GuiButtonWarp(int id, int x, int y, String str) { + super(id, x, y, id<2?10:42, 15, str); + } + + @Override + public void drawButton(Minecraft par1Minecraft, int par2, int par3) { + if (this.visible) { + par1Minecraft.getTextureManager().bindTexture(rl); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + boolean onMouse = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height; + + int drawX = 176; + int drawY = (id<2?15*id:45*(id-2)+30); + + if(id<2){ + if (!this.enabled) drawX += width * 2; + else if (onMouse) drawX += width; + } + else{ + if (!this.enabled) drawY += height * 2; + else if (onMouse) drawY += height; + } + + //selected?0xffffff:0x404040 + this.drawTexturedModalRect(this.xPosition, this.yPosition, drawX, drawY, this.width, this.height); + drawCenteredString(par1Minecraft.fontRenderer, displayString, xPosition+width/2, yPosition+(this.height - 8) / 2, 0xffffff); + } + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.class b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.class new file mode 100644 index 0000000..5ad6f25 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.class differ 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){} +} diff --git a/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.class b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.class new file mode 100644 index 0000000..46ff7cb Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.java b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.java new file mode 100644 index 0000000..abbb709 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.java @@ -0,0 +1,139 @@ +package jp.plusplus.fbs.gui.spirit; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.spirit.ContainerSpiritLearn; +import jp.plusplus.fbs.container.spirit.ContainerSpiritMain; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritArrow; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritCheckBox; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritLearn; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritMain; +import jp.plusplus.fbs.packet.MessageGuiButton; +import jp.plusplus.fbs.packet.MessageGuiButtonWithString; +import jp.plusplus.fbs.packet.PacketHandler; +import jp.plusplus.fbs.spirit.ISpiritTool; +import jp.plusplus.fbs.spirit.SkillManager; +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 GuiSpiritLearn extends GuiContainer{ + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/spiritConfig.png"); + public static final int PAGE_ITEM_MAX=5; + + public ItemStack tool; + public SpiritStatus status; + public ISpiritTool spiritTool; + + private GuiButtonSpiritMain ok; + private GuiButtonSpiritArrow prev; + private GuiButtonSpiritArrow next; + private GuiButtonSpiritLearn[] buttons; + + private ArrayList skillEntries; + private int page; + + public GuiSpiritLearn(EntityPlayer player) { + super(new ContainerSpiritLearn(player)); + tool=player.getCurrentEquippedItem(); + status=SpiritStatus.readFromNBT(tool.getTagCompound()); + spiritTool=(ISpiritTool)tool.getItem(); + + skillEntries=SkillManager.getSkillEntiries(); + } + + @Override + public void initGui() { + super.initGui(); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.allowUserInput = true; + + prev=new GuiButtonSpiritArrow(0, i+144, j+6); + buttonList.add(prev); + next=new GuiButtonSpiritArrow(1, i+154, j+6); + buttonList.add(next); + + ok =new GuiButtonSpiritMain(2, i+116, j+122, "ok"); + buttonList.add(ok); + + buttons =new GuiButtonSpiritLearn[PAGE_ITEM_MAX]; + for(int k=0;k0); + next.enabled=((page+1)*PAGE_ITEM_MAX0 && player.inventory.hasItemStack(new ItemStack(ItemCore.alchemyPotion, 1, 2)); + } + + @Override + public void updateScreen() { + super.updateScreen(); + bless.enabled=(player.worldObj.getCurrentDate().get(Calendar.DATE)!=status.getLastBlessDate()); + + } + + @Override + public void drawScreen(int p_73863_1_, int p_73863_2_, float p_73863_3_) { + super.drawScreen(p_73863_1_, p_73863_2_, p_73863_3_); + this.xSizeFloat = (float) p_73863_1_; + this.ySizeFloat = (float) p_73863_2_; + } + + @Override + protected void actionPerformed(GuiButton p_146284_1_) { + PacketHandler.INSTANCE.sendToServer(new MessageGuiButton(p_146284_1_.id)); + if(p_146284_1_.id==2){ + status.updateLastBlessDate(player.worldObj.getCurrentDate().get(Calendar.DATE)); + + NBTTagCompound nbt=new NBTTagCompound(); + SpiritStatus.writeToNBT(status, nbt); + tool.setTagCompound(nbt); + } + } + + @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); + + /* + if(spiritRenderer!=null){ + renderSpirit(k + 33, l + 75, 30, (float)(k + 33) - this.xSizeFloat, (float)(l + 75 - 50) - this.ySizeFloat); + } + */ + } + + @Override + protected void drawGuiContainerForegroundLayer(int x, int y){ + int rowHeight=10; + String str=""; + + str="Lv."+status.getLv()+" "+tool.getDisplayName(); + this.fontRendererObj.drawString(str, 64, rowHeight*0+7, 0x404040); + + this.fontRendererObj.drawString("[Status]", 64, rowHeight*1+7, 0x404040); + + str= StatCollector.translateToLocal("spirit.gui.fbs.sp")+":"+status.getSkillPoint(); + this.fontRendererObj.drawString(str, 64, rowHeight*2+7, 0x404040); + + str= StatCollector.translateToLocal("spirit.gui.fbs.str")+":"+status.getStrength(); + str+=" "+StatCollector.translateToLocal("spirit.gui.fbs.tou")+":"+status.getToughness(); + this.fontRendererObj.drawString(str, 64, rowHeight*3+7, 0x404040); + + this.fontRendererObj.drawString("[Tool]", 64, rowHeight*4+7, 0x404040); + + str= String.format(StatCollector.translateToLocal("attribute.name.generic.attackDamage")+":%.1f", 0.5+spiritTool.calcDamage(status)); + this.fontRendererObj.drawString(str, 64, rowHeight*5+7, 0x404040); + + int t=spiritTool.calcDurable(status); + str= StatCollector.translateToLocal("spirit.gui.fbs.dur")+":"+(t-status.getItemDamage())+"/"+t; + this.fontRendererObj.drawString(str, 64, rowHeight*6+7, 0x404040); + + + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + for(Object obj : buttonList) { + if (obj instanceof GuiButtonSpiritMain) { + GuiButtonSpiritMain b = (GuiButtonSpiritMain) obj; + boolean onMouse = x >= b.xPosition && y >= b.yPosition && x < b.xPosition + b.width && y < b.yPosition + b.height; + + if(!b.character.isEmpty() && onMouse){ + //説明文の表示 + List list=new ArrayList(); + for(int k=0;k<3;k++){ + String s="spirit.gui.button."+b.rowString+"."+b.character+"."+k; + if(k>0 && !StatCollector.canTranslate(s)){ + break; + } + list.add(SpiritManager.translateString(s, status)); + } + b.drawHoveringText(list, x-i, y-j, Minecraft.getMinecraft().fontRenderer); + break; + } + } + } + } + + public void renderSpirit(int x, int y, int scale, float rotYaw, float rotPitch) + { + GL11.glEnable(GL11.GL_COLOR_MATERIAL); + GL11.glPushMatrix(); + GL11.glTranslatef((float)x, (float)y, 50.0F); + GL11.glScalef((float)(-scale), (float)scale, (float)scale); + GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); + float f2 = dummy.renderYawOffset; + float f3 = dummy.rotationYaw; + float f4 = dummy.rotationPitch; + float f5 = dummy.prevRotationYawHead; + float f6 = dummy.rotationYawHead; + GL11.glRotatef(135.0F, 0.0F, 1.0F, 0.0F); + RenderHelper.enableStandardItemLighting(); + GL11.glRotatef(-135.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-((float)Math.atan((double)(rotPitch / 40.0F))) * 20.0F, 1.0F, 0.0F, 0.0F); + dummy.renderYawOffset = (float)Math.atan((double)(rotYaw / 40.0F)) * 20.0F; + dummy.rotationYaw = (float)Math.atan((double)(rotYaw / 40.0F)) * 40.0F; + dummy.rotationPitch = -((float)Math.atan((double)(rotPitch / 40.0F))) * 20.0F; + dummy.rotationYawHead = dummy.rotationYaw; + dummy.prevRotationYawHead = dummy.rotationYaw; + GL11.glTranslatef(0.0F, dummy.yOffset, 0.0F); + RenderManager.instance.playerViewY = 180.0F; + spiritRenderer.doRender(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 1.0F); + dummy.renderYawOffset = f2; + dummy.rotationYaw = f3; + dummy.rotationPitch = f4; + dummy.prevRotationYawHead = f5; + dummy.rotationYawHead = f6; + GL11.glPopMatrix(); + RenderHelper.disableStandardItemLighting(); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + OpenGlHelper.setActiveTexture(OpenGlHelper.lightmapTexUnit); + GL11.glDisable(GL11.GL_TEXTURE_2D); + OpenGlHelper.setActiveTexture(OpenGlHelper.defaultTexUnit); + } +} diff --git a/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.class b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.class new file mode 100644 index 0000000..514fbe6 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.class differ diff --git a/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.java b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.java new file mode 100644 index 0000000..328d54c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.java @@ -0,0 +1,127 @@ +package jp.plusplus.fbs.gui.spirit; + +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.container.spirit.ContainerSpiritLearn; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritArrow; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritLearn; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritLearnDummy; +import jp.plusplus.fbs.gui.button.GuiButtonSpiritMain; +import jp.plusplus.fbs.packet.MessageGuiButton; +import jp.plusplus.fbs.packet.MessageGuiButtonWithString; +import jp.plusplus.fbs.packet.PacketHandler; +import jp.plusplus.fbs.spirit.ISpiritTool; +import jp.plusplus.fbs.spirit.SkillManager; +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.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 GuiSpiritSkill extends GuiContainer{ + public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/spiritConfig.png"); + public static final int PAGE_ITEM_MAX=5; + + public ItemStack tool; + public SpiritStatus status; + public ISpiritTool spiritTool; + + private GuiButtonSpiritMain ok; + private GuiButtonSpiritArrow prev; + private GuiButtonSpiritArrow next; + private GuiButtonSpiritLearnDummy[] buttons; + + private ArrayList skillDatas; + private int page; + + public GuiSpiritSkill(EntityPlayer player) { + super(new ContainerSpiritLearn(player)); + tool=player.getCurrentEquippedItem(); + status=SpiritStatus.readFromNBT(tool.getTagCompound()); + spiritTool=(ISpiritTool)tool.getItem(); + skillDatas =status.getSkills(); + } + + @Override + public void initGui() { + super.initGui(); + int i = (this.width - this.xSize) / 2; + int j = (this.height - this.ySize) / 2; + this.allowUserInput = true; + + prev=new GuiButtonSpiritArrow(0, i+144, j+6); + buttonList.add(prev); + next=new GuiButtonSpiritArrow(1, i+154, j+6); + buttonList.add(next); + + ok =new GuiButtonSpiritMain(2, i+116, j+122, "ok"); + buttonList.add(ok); + + buttons =new GuiButtonSpiritLearnDummy[PAGE_ITEM_MAX]; + for(int k=0;k0); + next.enabled=((page+1)*PAGE_ITEM_MAX