From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../plusplus/fbs/gui/spirit/GuiSpiritConfig.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 ++++++++++++ 8 files changed, 601 insertions(+) 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/spirit') 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