summaryrefslogtreecommitdiff
path: root/src/main/java/jp/plusplus/fbs/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/gui')
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.classbin0 -> 5441 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.java88
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiBasket.classbin0 -> 2685 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiBasket.java39
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiBonfire.classbin0 -> 2410 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiBonfire.java42
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiContract.classbin0 -> 5240 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiContract.java110
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.classbin0 -> 4302 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.java79
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.classbin0 -> 4057 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.java79
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.classbin0 -> 2918 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.java50
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiHandler.classbin0 -> 9172 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiHandler.java235
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiMagic.classbin0 -> 2335 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiMagic.java40
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.classbin0 -> 1137 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.java18
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiStaff.classbin0 -> 3270 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiStaff.java49
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiWarp.classbin0 -> 7139 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiWarp.java181
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.classbin0 -> 2846 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.java56
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.classbin0 -> 1573 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.java35
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.classbin0 -> 1663 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.java35
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.classbin0 -> 1763 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.java43
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.classbin0 -> 2200 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.java39
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.classbin0 -> 3377 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.java50
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.classbin0 -> 2051 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.java31
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.classbin0 -> 4447 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.java124
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.classbin0 -> 2131 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.java44
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.classbin0 -> 5483 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.java107
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.classbin0 -> 6540 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.java139
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.classbin0 -> 10805 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.java228
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.classbin0 -> 5997 bytes
-rw-r--r--src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.java127
50 files changed, 2068 insertions, 0 deletions
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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiAlchemyCauldron.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiBasket.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiBonfire.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiContract.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiEnchantment.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiExtractingFurnace.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiFillingTable.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiHandler.class
Binary files 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<list.size();i++){
+ EntityMagicAuthor e=(EntityMagicAuthor)list.get(i);
+ if(true || e.getCustomer()==player){
+ GuiShop gui=new GuiShop(player, MCEconomyAPI.getShop(Registry.shopAuthorId), Registry.shopAuthorId, world);
+ gui.inventorySlots=new ContainerShopAuthor(player, MCEconomyAPI.getShop(Registry.shopAuthorId), world, null);
+ return gui;
+ }
+ }
+ return null;
+ }
+ if(ID==FBS.GUI_MAGIC_POT_ID){
+ return new GuiPotteryUsableBase(new ContainerPotteryUsableBase(player));
+ }
+ if(ID==FBS.GUI_WISH_ID){
+ return new GuiWish();
+ }
+
+ //-------------------------------------------------------
+ if(!world.blockExists(x,y,z)) return null;
+
+ Block b=world.getBlock(x,y,z);
+ if(b== BlockCore.bonfire){
+ return new GuiBonfire(new ContainerBonfire(x,y,z, player));
+ }
+
+ TileEntity e=world.getTileEntity(x,y,z);
+ if(e instanceof TileEntityExtractingFurnace){
+ return new GuiExtractingFurnace(new ContainerExtractingFurnace(player, (TileEntityExtractingFurnace)e), (TileEntityExtractingFurnace)e);
+ }
+ if(e instanceof TileEntityFillingTable){
+ return new GuiFillingTable(new ContainerFillingTable(player, (TileEntityFillingTable)e), (TileEntityFillingTable)e);
+ }
+ if(e instanceof TileEntityFBSWorkbench){
+ return new GuiWorkbench(new ContainerFBSWorkbench(player, (TileEntityFBSWorkbench)e), (TileEntityFBSWorkbench)e);
+ }
+ if(e instanceof TileEntityPottersWheel){
+ return new GuiPottersWheel(new ContainerPottersWheel(player, (TileEntityPottersWheel)e), (TileEntityPottersWheel)e);
+ }
+ if(e instanceof TileEntityKiln){
+ return new GuiKiln(new ContainerKiln(player, (TileEntityKiln)e), (TileEntityKiln)e);
+ }
+ if(e instanceof TileEntityAlchemyCauldron){
+ return new GuiAlchemyCauldron(new ContainerAlchemyCauldron(player, (TileEntityAlchemyCauldron)e), (TileEntityAlchemyCauldron)e);
+ }
+ if(e instanceof TileEntityMealTerminal){
+ return new GuiMealTerminal(new ContainerMealTerminal(player, (TileEntityMealTerminal)e));
+ }
+
+ return null;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiMagic.class b/src/main/java/jp/plusplus/fbs/gui/GuiMagic.class
new file mode 100644
index 0000000..18839a7
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiMagic.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiMagic.java b/src/main/java/jp/plusplus/fbs/gui/GuiMagic.java
new file mode 100644
index 0000000..7aa751d
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiMagic.java
@@ -0,0 +1,40 @@
+package jp.plusplus.fbs.gui;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.container.ContainerMagic;
+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;
+
+/**
+ * Created by pluslus_F on 2015/06/18.
+ */
+public class GuiMagic extends GuiContainer {
+ ContainerMagic cm;
+
+ public GuiMagic(ContainerMagic 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(cm.inventory.getResource());
+
+ 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+cm.inventory.getProgressX(), l+cm.inventory.getProgressY(), 176, 0, cm.inventory.getProgressScaled(22), 15);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.class b/src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.class
new file mode 100644
index 0000000..ef3dfce
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.java b/src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.java
new file mode 100644
index 0000000..a5079df
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiShopAuthor.java
@@ -0,0 +1,18 @@
+package jp.plusplus.fbs.gui;
+
+import jp.plusplus.fbs.container.ContainerShopAuthor;
+import jp.plusplus.fbs.entity.EntityMagicAuthor;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.world.World;
+import shift.mceconomy2.api.shop.IShop;
+import shift.mceconomy2.gui.GuiShop;
+
+/**
+ * Created by plusplus_F on 2016/02/24.
+ */
+public class GuiShopAuthor extends GuiShop {
+ public GuiShopAuthor(EntityPlayer entityPlayer, IShop productList, int id, World world, EntityMagicAuthor author) {
+ super(entityPlayer, productList, id, world);
+ inventorySlots=new ContainerShopAuthor(entityPlayer, productList, world, author);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiStaff.class b/src/main/java/jp/plusplus/fbs/gui/GuiStaff.class
new file mode 100644
index 0000000..3d72b47
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiStaff.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiStaff.java b/src/main/java/jp/plusplus/fbs/gui/GuiStaff.java
new file mode 100644
index 0000000..9c99286
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiStaff.java
@@ -0,0 +1,49 @@
+package jp.plusplus.fbs.gui;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.container.ContainerStaff;
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.client.resources.I18n;
+import net.minecraft.entity.player.InventoryPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ResourceLocation;
+import org.lwjgl.opengl.GL11;
+
+/**
+ * Createdby pluslus_Fon 2015/06/15.
+ */
+public class GuiStaff extends GuiContainer {
+ private static final ResourceLocation[] gui1 = {
+ new ResourceLocation(FBS.MODID + ":textures/gui/staff.png"),
+ new ResourceLocation(FBS.MODID + ":textures/gui/staffResona.png")
+ };
+ private ItemStack cItem;
+
+ public GuiStaff(InventoryPlayer inventoryPlayer) {
+ super(new ContainerStaff(inventoryPlayer));
+ cItem=inventoryPlayer.getCurrentItem();
+ }
+
+ @Override
+ protected void drawGuiContainerForegroundLayer(int x, int p_146979_2_) {
+ String s=I18n.format(cItem.getItem().getUnlocalizedName() + ".name");
+ this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 4210752);
+ this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
+ }
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
+ ContainerStaff cs=(ContainerStaff)inventorySlots;
+
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ this.mc.getTextureManager().bindTexture(gui1[cs.inventory.bookNum-1]);
+ int k = (this.width - this.xSize) / 2;
+ int l = (this.height - this.ySize) / 2;
+ this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize);
+
+ int gn=cs.inventory.gemNum;
+ for(int i=0;i<5-gn;i++){
+ this.drawTexturedModalRect(k+116-18*i, l+53, 176, 0, 16, 16);
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiWarp.class b/src/main/java/jp/plusplus/fbs/gui/GuiWarp.class
new file mode 100644
index 0000000..462d6ae
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiWarp.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiWarp.java b/src/main/java/jp/plusplus/fbs/gui/GuiWarp.java
new file mode 100644
index 0000000..4c4fc3a
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiWarp.java
@@ -0,0 +1,181 @@
+package jp.plusplus.fbs.gui;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.container.ContainerWarp;
+import jp.plusplus.fbs.exprop.FBSEntityProperties;
+import jp.plusplus.fbs.gui.button.GuiButtonDestination;
+import jp.plusplus.fbs.gui.button.GuiButtonWarp;
+import jp.plusplus.fbs.packet.MessageGuiButtonDecide;
+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.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+import org.lwjgl.input.Keyboard;
+import org.lwjgl.opengl.GL11;
+
+import java.util.ArrayList;
+
+/**
+ * Created by plusplus_F on 2015/10/22.
+ */
+public class GuiWarp extends GuiContainer {
+ public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/magicWarp.png");
+ public static final int PAGE_ITEM_MAX=11;
+ protected ContainerWarp con;
+ protected GuiButtonWarp buttonPrev;
+ protected GuiButtonWarp buttonNext;
+ protected GuiButtonWarp buttonDecide;
+ protected GuiButtonWarp buttonRename;
+ protected GuiButtonDestination[] buttons=new GuiButtonDestination[PAGE_ITEM_MAX];
+ protected GuiTextField textField;
+ protected int page;
+
+ protected ArrayList<FBSEntityProperties.WarpPosition> 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;k<PAGE_ITEM_MAX;k++){
+ buttons[k]=new GuiButtonDestination(4+k, i+27, j+18+12*k);
+ buttonList.add(buttons[k]);
+ }
+
+ textField=new GuiTextField(fontRendererObj, i+118, j+34, 51, 11);
+ textField.setTextColor(-1);
+ textField.setDisabledTextColour(-1);
+ textField.setEnableBackgroundDrawing(false);
+ textField.setMaxStringLength(40);
+
+ destinations=FBSEntityProperties.get(con.player).getDestinations();
+ changePage(0);
+ }
+
+ @Override
+ public void onGuiClosed(){
+ super.onGuiClosed();
+ Keyboard.enableRepeatEvents(false);
+ }
+
+ @Override
+ protected void actionPerformed(GuiButton p_146284_1_) {
+ if(p_146284_1_==buttonPrev && page>1) 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;k<PAGE_ITEM_MAX;k++){
+ buttons[k].selected=false;
+ }
+ ((GuiButtonDestination)p_146284_1_).selected=true;
+ buttonDecide.enabled=true;
+ buttonRename.enabled=false;
+ textField.setText("");
+ }
+ }
+
+ @Override
+ public void updateScreen() {
+ super.updateScreen();
+ }
+
+ @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_);
+ }
+ else{
+ buttonRename.enabled=!textField.getText().isEmpty();
+ }
+ }
+
+ @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();
+ }
+
+ @Override
+ protected void drawGuiContainerForegroundLayer(int par1, int par2){
+ super.drawGuiContainerForegroundLayer(par1, par2);
+ String s= StatCollector.translateToLocal("book.fbs.warp.title");
+ 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);
+ }
+
+ protected int getSelectedIndex(){
+ for(int i=0;i<PAGE_ITEM_MAX;i++){
+ if(buttons[i].selected) return i;
+ }
+ return -1;
+ }
+ protected void changePage(int add){
+ page+=add;
+ for(int i=0;i<PAGE_ITEM_MAX;i++){
+ buttons[i].enabled=false;
+ buttons[i].selected=false;
+ }
+ for(int i=0;i<PAGE_ITEM_MAX && page*PAGE_ITEM_MAX+i<destinations.size();i++){
+ buttons[i].enabled=true;
+ buttons[i].setDisplayString(destinations.get(page*PAGE_ITEM_MAX+i).getName());
+ }
+ buttonDecide.enabled=false;
+ buttonRename.enabled=false;
+ buttonPrev.enabled=(page>0);
+ buttonNext.enabled=((page+1)*PAGE_ITEM_MAX<destinations.size());
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.class b/src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.class
new file mode 100644
index 0000000..c5b53ae
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.java b/src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.java
new file mode 100644
index 0000000..bdb9267
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/GuiWorkbench.java
@@ -0,0 +1,56 @@
+package jp.plusplus.fbs.gui;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.tileentity.TileEntityFBSWorkbench;
+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 GuiWorkbench extends GuiContainer {
+ private TileEntityFBSWorkbench entity;
+
+ public GuiWorkbench(Container p_i1072_1_, TileEntityFBSWorkbench t) {
+ super(p_i1072_1_);
+ entity =t;
+ ySize=185;
+ }
+
+ @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);
+
+ /*
+ if(!entity.tank.isEmpty()){
+ this.fontRendererObj.drawString(entity.tank.getFluidName()+entity.tank.getFluidAmount()+"mb", 8, this.ySize - 116 + 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/crafting.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);
+
+ 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 + 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonDestination.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonEnchantment.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritArrow.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritCheckBox.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearn.class
Binary files 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<skillStr.length;i++){
+ par1Minecraft.fontRenderer.drawString(skillStr[i], xPosition - 120, yPosition + (this.height - 8) / 2-3+par1Minecraft.fontRenderer.FONT_HEIGHT*i, 0x404040);
+ }
+ }
+ }
+
+ public void setSkill(SkillManager.SkillEntry entry, int lv) {
+ skillStr=entry.getString(lv).split("\n");
+ skillName=SkillManager.getSkill(entry.getSkillId()).getName();
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.class b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.class
new file mode 100644
index 0000000..7ffcb50
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.java b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.java
new file mode 100644
index 0000000..255f196
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritLearnDummy.java
@@ -0,0 +1,31 @@
+package jp.plusplus.fbs.gui.button;
+
+import jp.plusplus.fbs.spirit.SkillManager;
+import net.minecraft.client.Minecraft;
+import org.lwjgl.opengl.GL11;
+
+/**
+ * Created by plusplus_F on 2015/11/29.
+ */
+public class GuiButtonSpiritLearnDummy extends GuiButtonSpiritLearn {
+ public GuiButtonSpiritLearnDummy(int id, int x, int y, String str) {
+ super(id, x, y, str);
+ }
+
+ @Override
+ public void drawButton(Minecraft par1Minecraft, int par2, int par3) {
+ if (this.visible) {
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ par1Minecraft.fontRenderer.drawString(skillStr[0], xPosition - 120, yPosition + (this.height - 8) / 2 -3, 0x404040);
+ }
+ }
+
+ public void setSkill(SkillManager.SkillData data) {
+ skillStr=new String[]{data.getString()};
+ skillName=data.getSkill().getName();
+ }
+ @Override
+ public void setSkill(SkillManager.SkillEntry entry, int lv){
+
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.class b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.class
new file mode 100644
index 0000000..fa31022
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.java b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.java
new file mode 100644
index 0000000..2033c8f
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonSpiritMain.java
@@ -0,0 +1,124 @@
+package jp.plusplus.fbs.gui.button;
+
+import jp.plusplus.fbs.FBS;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.FontRenderer;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.renderer.RenderHelper;
+import net.minecraft.util.ResourceLocation;
+import net.minecraft.util.StatCollector;
+import org.lwjgl.opengl.GL11;
+import org.lwjgl.opengl.GL12;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/11/14.
+ */
+public class GuiButtonSpiritMain extends GuiButton {
+ public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/spiritMain.png");
+ public String rowString;
+ public String character;
+
+ public GuiButtonSpiritMain(int id, int x, int y, String str) {
+ this(id, x, y, str, "");
+ }
+ public GuiButtonSpiritMain(int id, int x, int y, String str, String character){
+ super(id, x, y, 48, 16, StatCollector.translateToLocal("spirit.gui.fbs.button."+str));
+ rowString=str;
+ this.character=character;
+ }
+
+ @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(!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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/button/GuiButtonWarp.class
Binary files 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritConfig.class
Binary files 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<GuiButtonSpiritCheckBox> checks=new ArrayList<GuiButtonSpiritCheckBox>();
+
+ 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritLearn.class
Binary files 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<SkillManager.SkillEntry> 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;k<buttons.length;k++){
+ buttons[k]=new GuiButtonSpiritLearn(3+k, i+130, j+25+19*k, "learn2");
+ buttonList.add(buttons[k]);
+ }
+ page=0;
+ changePage(0);
+ }
+
+ @Override
+ public void updateScreen() {
+ super.updateScreen();
+ }
+
+ @Override
+ protected void actionPerformed(GuiButton p_146284_1_) {
+ if(p_146284_1_==ok){
+ PacketHandler.INSTANCE.sendToServer(new MessageGuiButton(p_146284_1_.id));
+ }
+ else if(p_146284_1_==prev){
+ changePage(-1);
+ }
+ else if(p_146284_1_==next){
+ changePage(1);
+ }
+ else if(p_146284_1_ instanceof GuiButtonSpiritLearn) {
+ GuiButtonSpiritLearn b = ((GuiButtonSpiritLearn) p_146284_1_);
+ PacketHandler.INSTANCE.sendToServer(new MessageGuiButtonWithString(p_146284_1_.id, b.skillName));
+ ((ContainerSpiritLearn)this.inventorySlots).learn(b.skillName);
+ status=SpiritStatus.readFromNBT(tool.getTagCompound());
+ changePage(0);
+ }
+ }
+
+ @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){
+ String s= StatCollector.translateToLocal("spirit.gui.fbs.sp")+":"+status.getSkillPoint();
+ this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040);
+ }
+
+ protected void changePage(int add){
+ page+=add;
+ for(int i=0;i<PAGE_ITEM_MAX;i++){
+ buttons[i].enabled=false;
+ buttons[i].visible=false;
+ }
+
+ int size=skillEntries.size();
+ for(int i=0;i<PAGE_ITEM_MAX && page*PAGE_ITEM_MAX+i<size;i++){
+ SkillManager.SkillEntry e=skillEntries.get(i+page * PAGE_ITEM_MAX);
+ int lv=status.getSkillLevel(e.getSkillId());
+ buttons[i].setSkill(e, lv+1);
+ buttons[i].visible=true;
+ buttons[i].enabled=e.canLearn(status);
+ }
+ prev.enabled=(page>0);
+ next.enabled=((page+1)*PAGE_ITEM_MAX<size);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.class b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.class
new file mode 100644
index 0000000..ac271fc
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.class
Binary files differ
diff --git a/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.java b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.java
new file mode 100644
index 0000000..eb39141
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritMain.java
@@ -0,0 +1,228 @@
+package jp.plusplus.fbs.gui.spirit;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.ProxyClient;
+import jp.plusplus.fbs.container.ContainerAlchemyCauldron;
+import jp.plusplus.fbs.container.spirit.ContainerSpiritMain;
+import jp.plusplus.fbs.entity.EntityLivingDummy;
+import jp.plusplus.fbs.gui.button.GuiButtonEnchantment;
+import jp.plusplus.fbs.gui.button.GuiButtonSpiritMain;
+import jp.plusplus.fbs.item.ItemCore;
+import jp.plusplus.fbs.packet.MessageGuiButton;
+import jp.plusplus.fbs.packet.PacketHandler;
+import jp.plusplus.fbs.spirit.ISpiritTool;
+import jp.plusplus.fbs.spirit.SpiritManager;
+import jp.plusplus.fbs.spirit.SpiritStatus;
+import jp.plusplus.fbs.tileentity.TileEntityAlchemyCauldron;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.inventory.GuiContainer;
+import net.minecraft.client.gui.inventory.GuiInventory;
+import net.minecraft.client.renderer.OpenGlHelper;
+import net.minecraft.client.renderer.RenderHelper;
+import net.minecraft.client.renderer.entity.RenderManager;
+import net.minecraft.client.renderer.entity.RendererLivingEntity;
+import net.minecraft.client.resources.I18n;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.inventory.Container;
+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 org.lwjgl.opengl.GL12;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/11/14.
+ */
+public class GuiSpiritMain extends GuiContainer{
+ public static final ResourceLocation rl = new ResourceLocation(FBS.MODID+":textures/gui/spiritMain.png");
+
+ public EntityPlayer player;
+ public ItemStack tool;
+ public SpiritStatus status;
+ public ISpiritTool spiritTool;
+
+ public RendererLivingEntity spiritRenderer;
+ public EntityLivingBase dummy;
+
+ private GuiButtonSpiritMain skill;
+ private GuiButtonSpiritMain learn;
+ private GuiButtonSpiritMain bless;
+ private GuiButtonSpiritMain repair;
+ private GuiButtonSpiritMain summon;
+ private GuiButtonSpiritMain config;
+ private float xSizeFloat;
+ private float ySizeFloat;
+
+ public GuiSpiritMain(EntityPlayer player) {
+ super(new ContainerSpiritMain(player, 0));
+ this.player=player;
+ tool=player.getCurrentEquippedItem();
+ status=SpiritStatus.readFromNBT(tool.getTagCompound());
+ spiritTool=(ISpiritTool)tool.getItem();
+
+ spiritRenderer=((ProxyClient)FBS.proxy).getSpiritModel(status.getCharacter());
+ dummy=new EntityLivingDummy(FBS.proxy.getClientWorld());
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+ int i = (this.width - this.xSize) / 2;
+ int j = (this.height - this.ySize) / 2;
+ this.allowUserInput = true;
+
+ skill=new GuiButtonSpiritMain(0, i+12, j+96, "skill", status.getCharacter());
+ buttonList.add(skill);
+ learn=new GuiButtonSpiritMain(1, i+12, j+116, "learn", status.getCharacter());
+ buttonList.add(learn);
+ bless=new GuiButtonSpiritMain(2, i+64, j+96, "bless", status.getCharacter());
+ buttonList.add(bless);
+ repair=new GuiButtonSpiritMain(3, i+64, j+116, "repair", status.getCharacter());
+ buttonList.add(repair);
+ summon=new GuiButtonSpiritMain(4, i+116, j+96, "summon", status.getCharacter());
+ buttonList.add(summon);
+ config=new GuiButtonSpiritMain(5, i+116, j+116, "config", status.getCharacter());
+ buttonList.add(config);
+
+ bless.enabled=summon.enabled=false;
+ repair.enabled=status.getItemDamage()>0 && 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
--- /dev/null
+++ b/src/main/java/jp/plusplus/fbs/gui/spirit/GuiSpiritSkill.class
Binary files 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<SkillManager.SkillData> 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;k<buttons.length;k++){
+ buttons[k]=new GuiButtonSpiritLearnDummy(3+k, i+130, j+25+19*k, "");
+ buttonList.add(buttons[k]);
+ }
+ page=0;
+ changePage(0);
+ }
+
+ @Override
+ public void updateScreen() {
+ super.updateScreen();
+ }
+
+ @Override
+ protected void actionPerformed(GuiButton p_146284_1_) {
+ if(p_146284_1_==ok){
+ PacketHandler.INSTANCE.sendToServer(new MessageGuiButton(p_146284_1_.id));
+ }
+ else if(p_146284_1_==prev){
+ changePage(-1);
+ }
+ else if(p_146284_1_==next){
+ changePage(1);
+ }
+ }
+
+ @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){
+ String s= StatCollector.translateToLocal("spirit.gui.fbs.sp")+":"+status.getSkillPoint();
+ this.fontRendererObj.drawString(s, this.xSize / 2 - this.fontRendererObj.getStringWidth(s) / 2, 6, 0x404040);
+ }
+
+ protected void changePage(int add){
+ page+=add;
+ for(int i=0;i<PAGE_ITEM_MAX;i++){
+ buttons[i].enabled=false;
+ buttons[i].visible=false;
+ }
+
+ int size= skillDatas.size();
+ for(int i=0;i<PAGE_ITEM_MAX && page*PAGE_ITEM_MAX+i<size;i++){
+ SkillManager.SkillData e= skillDatas.get(i+page * PAGE_ITEM_MAX);
+ buttons[i].setSkill(e);
+ buttons[i].visible=true;
+ }
+ prev.enabled=(page>0);
+ next.enabled=((page+1)*PAGE_ITEM_MAX<size);
+ }
+}