From 8fba82312c5409690b740b70dc7e6370f03424d2 Mon Sep 17 00:00:00 2001 From: Stuart Pomeroy Date: Sun, 27 Mar 2016 17:41:56 +0100 Subject: [PATCH] Closes #402,#404,406 --- .../client/gui/GuiBlastFurnace.java | 10 +- .../client/gui/GuiIndustrialGrinder.java | 20 ++-- .../items/tools/ItemAdvancedDrill.java | 2 +- .../items/tools/ItemDiamondDrill.java | 2 +- .../techreborn/items/tools/ItemDrill.java | 110 +++++++++--------- .../techreborn/items/tools/ItemIronDrill.java | 2 +- .../items/tools/ItemJackhammer.java | 46 ++++---- .../items/tools/ItemRockCutter.java | 43 +++---- .../java/techreborn/manual/GuiManual.java | 17 +-- .../techreborn/manual/pages/BasePage.java | 6 +- .../techreborn/manual/pages/ContentsPage.java | 4 +- .../manual/pages/CraftingInfoPage.java | 33 +++--- .../manual/util/GuiButtonItemTexture.java | 11 +- .../tiles/TileMatterFabricator.java | 6 +- .../manual/elements/craftingtable.png | Bin 1831 -> 15933 bytes .../techreborn/textures/manual/gui/manual.png | Bin 15625 -> 34413 bytes 16 files changed, 149 insertions(+), 163 deletions(-) diff --git a/src/main/java/techreborn/client/gui/GuiBlastFurnace.java b/src/main/java/techreborn/client/gui/GuiBlastFurnace.java index 694079e3d..1f15dca89 100644 --- a/src/main/java/techreborn/client/gui/GuiBlastFurnace.java +++ b/src/main/java/techreborn/client/gui/GuiBlastFurnace.java @@ -1,7 +1,5 @@ package techreborn.client.gui; -import java.io.IOException; - import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.renderer.GlStateManager; @@ -19,6 +17,8 @@ import techreborn.init.ModBlocks; import techreborn.proxies.ClientProxy; import techreborn.tiles.TileBlastFurnace; +import java.io.IOException; + public class GuiBlastFurnace extends GuiContainer { @@ -28,7 +28,7 @@ public class GuiBlastFurnace extends GuiContainer TileBlastFurnace blastfurnace; ContainerBlastFurnace containerBlastFurnace; - + boolean hasMultiBlock; public GuiBlastFurnace(EntityPlayer player, TileBlastFurnace tileblastfurnace) { super(new ContainerBlastFurnace(tileblastfurnace, player)); @@ -41,6 +41,8 @@ public class GuiBlastFurnace extends GuiContainer @Override public void initGui() { + + hasMultiBlock = containerBlastFurnace.heat != 0; int k = (this.width - this.xSize) / 2; int l = (this.height - this.ySize) / 2; GuiButton button = new GuiButton(212, k + 4, l + 6, 20, 20, ""); @@ -69,7 +71,7 @@ public class GuiBlastFurnace extends GuiContainer int l = (this.height - this.ySize) / 2; this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); - if (containerBlastFurnace.heat == 0) + if (hasMultiBlock) { GuiUtil.drawTooltipBox(k + 30, l + 50 + 12 - 0, 114, 10); this.fontRendererObj.drawString(I18n.translateToLocal("techreborn.message.missingmultiblock"), k + 38, diff --git a/src/main/java/techreborn/client/gui/GuiIndustrialGrinder.java b/src/main/java/techreborn/client/gui/GuiIndustrialGrinder.java index 424c4f3b9..5f7e12f5f 100644 --- a/src/main/java/techreborn/client/gui/GuiIndustrialGrinder.java +++ b/src/main/java/techreborn/client/gui/GuiIndustrialGrinder.java @@ -17,6 +17,7 @@ public class GuiIndustrialGrinder extends GuiContainer TileIndustrialGrinder grinder; ContainerIndustrialGrinder containerGrinder; + boolean hasMultiBlock; public GuiIndustrialGrinder(EntityPlayer player, TileIndustrialGrinder tilegrinder) { super(new ContainerIndustrialGrinder(tilegrinder, player)); @@ -25,7 +26,12 @@ public class GuiIndustrialGrinder extends GuiContainer grinder = tilegrinder; containerGrinder = (ContainerIndustrialGrinder) this.inventorySlots; } + @Override + public void initGui() + { + hasMultiBlock = containerGrinder.connectionStatus != 1; + } @Override protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { @@ -36,7 +42,12 @@ public class GuiIndustrialGrinder extends GuiContainer this.drawTexturedModalRect(k, l, 0, 0, this.xSize, this.ySize); int j = 0; - + if (hasMultiBlock) + { + // GuiDraw.drawTooltipBox(k + 30, l + 50 + 12 - j, 114, 10); + this.fontRendererObj.drawString(I18n.translateToLocal("techreborn.message.missingmultiblock"), k + 38, + l + 52 + 12 - j, -1); + } j = grinder.getProgressScaled(24); if (j > 0) { @@ -49,12 +60,7 @@ public class GuiIndustrialGrinder extends GuiContainer this.drawTexturedModalRect(k + 132, l + 63 + 12 - j, 176, 12 - j, 14, j + 2); } - if (containerGrinder.connectionStatus != 1) - { - // GuiDraw.drawTooltipBox(k + 30, l + 50 + 12 - j, 114, 10); - this.fontRendererObj.drawString(I18n.translateToLocal("techreborn.message.missingmultiblock"), k + 38, - l + 52 + 12 - j, -1); - } + // TODO 1.8 nope // if (grinder.tank.getFluidAmount() != 0) { diff --git a/src/main/java/techreborn/items/tools/ItemAdvancedDrill.java b/src/main/java/techreborn/items/tools/ItemAdvancedDrill.java index bbe4f0b00..b0a182c41 100644 --- a/src/main/java/techreborn/items/tools/ItemAdvancedDrill.java +++ b/src/main/java/techreborn/items/tools/ItemAdvancedDrill.java @@ -10,7 +10,7 @@ public class ItemAdvancedDrill extends ItemDrill public ItemAdvancedDrill() { super(ToolMaterial.DIAMOND, "techreborn.advancedDrill", ConfigTechReborn.AdvancedDrillCharge, - ConfigTechReborn.AdvancedDrillTier, 4.0F); + ConfigTechReborn.AdvancedDrillTier, 4.0F, 20F); this.cost = 250; } diff --git a/src/main/java/techreborn/items/tools/ItemDiamondDrill.java b/src/main/java/techreborn/items/tools/ItemDiamondDrill.java index 4a0ed6355..bb77f1deb 100644 --- a/src/main/java/techreborn/items/tools/ItemDiamondDrill.java +++ b/src/main/java/techreborn/items/tools/ItemDiamondDrill.java @@ -10,7 +10,7 @@ public class ItemDiamondDrill extends ItemDrill public ItemDiamondDrill() { super(ToolMaterial.DIAMOND, "techreborn.diamondDrill", ConfigTechReborn.DiamondDrillCharge, - ConfigTechReborn.DiamondDrillTier, 2.5F); + ConfigTechReborn.DiamondDrillTier, 2.5F, 15F); this.cost = 250; } diff --git a/src/main/java/techreborn/items/tools/ItemDrill.java b/src/main/java/techreborn/items/tools/ItemDrill.java index 37758f9bc..842c1018e 100644 --- a/src/main/java/techreborn/items/tools/ItemDrill.java +++ b/src/main/java/techreborn/items/tools/ItemDrill.java @@ -1,12 +1,14 @@ package techreborn.items.tools; -import java.util.List; - import me.modmuss50.jsonDestroyer.api.ITexturedItem; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemPickaxe; import net.minecraft.item.ItemStack; @@ -24,6 +26,9 @@ import reborncore.common.util.TorchHelper; import techreborn.client.TechRebornCreativeTab; import techreborn.lib.ModInfo; +import java.util.List; +import java.util.Random; + public class ItemDrill extends ItemPickaxe implements IEnergyItemInfo, ITexturedItem { @@ -33,10 +38,10 @@ public class ItemDrill extends ItemPickaxe implements IEnergyItemInfo, ITextured public float unpoweredSpeed = 2.0F; public double transferLimit = 100; - public ItemDrill(ToolMaterial material, String unlocalizedName, int energyCapacity, int tier, float unpoweredSpeed) + public ItemDrill(ToolMaterial material, String unlocalizedName, int energyCapacity, int tier, float unpoweredSpeed, float efficiencyOnProperMaterial) { super(material); - efficiencyOnProperMaterial = 20F; + this.efficiencyOnProperMaterial = efficiencyOnProperMaterial; setCreativeTab(TechRebornCreativeTab.instance); setMaxStackSize(1); setMaxDamage(240); @@ -47,83 +52,77 @@ public class ItemDrill extends ItemPickaxe implements IEnergyItemInfo, ITextured this.unpoweredSpeed = unpoweredSpeed; } - // @Override - // public boolean onBlockDestroyed(ItemStack stack, World worldIn, Block - // blockIn, BlockPos pos, EntityLivingBase playerIn) { - // Random rand = new Random(); - // if - // (rand.nextInt(EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, - // stack)+1) == 0) { - // PoweredItem.useEnergy(cost, stack); - // } - // return true; - // } - // - // @Override - // public float getDigSpeed(ItemStack stack, IBlockState state) { - // if (!PoweredItem.canUseEnergy(cost, stack)) { - // return unpoweredSpeed; - // } - // if (Items.wooden_pickaxe.getDigSpeed(stack, state) > 1.0F || - // Items.wooden_shovel.getDigSpeed(stack, state) > 1.0F) { - // return efficiencyOnProperMaterial; - // } else { - // return super.getDigSpeed(stack, state); - // } - // } + @Override public boolean onBlockDestroyed(ItemStack stack, World worldIn, IBlockState blockIn, BlockPos pos, + EntityLivingBase entityLiving) + { + Random rand = new Random(); + if (rand.nextInt(EnchantmentHelper.getEnchantmentLevel(Enchantment.getEnchantmentByID(34), stack) + 1) == 0) + { + PoweredItem.useEnergy(cost, stack); + } + return true; + } - @Override - public boolean hitEntity(ItemStack itemstack, EntityLivingBase entityliving, EntityLivingBase entityliving1) + @Override public float getStrVsBlock(ItemStack stack, IBlockState state) + { + if (!PoweredItem.canUseEnergy(cost, stack)) + { + return unpoweredSpeed; + } + if (Items.wooden_pickaxe.getStrVsBlock(stack, state) > 1.0F + || Items.wooden_shovel.getStrVsBlock(stack, state) > 1.0F) + { + return efficiencyOnProperMaterial; + } else + { + return super.getStrVsBlock(stack, state); + } + } + + @Override public boolean hitEntity(ItemStack itemstack, EntityLivingBase entityliving, + EntityLivingBase entityliving1) { return true; } - @Override - public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, + @Override public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { return TorchHelper.placeTorch(stack, playerIn, worldIn, pos, facing, hitX, hitY, hitZ, hand); } - @Override - public boolean isRepairable() + @Override public boolean isRepairable() { return false; } - @Override - public double getMaxPower(ItemStack stack) + @Override public double getMaxPower(ItemStack stack) { return maxCharge; } - @Override - public boolean canAcceptEnergy(ItemStack stack) + @Override public boolean canAcceptEnergy(ItemStack stack) { return true; } - @Override - public boolean canProvideEnergy(ItemStack stack) + @Override public boolean canProvideEnergy(ItemStack stack) { return false; } - @Override - public double getMaxTransfer(ItemStack stack) + @Override public double getMaxTransfer(ItemStack stack) { return transferLimit; } - @Override - public int getStackTier(ItemStack stack) + @Override public int getStackTier(ItemStack stack) { return tier; } - @SuppressWarnings({ "rawtypes", "unchecked" }) - @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) + @SuppressWarnings({ "rawtypes", "unchecked" }) @SideOnly(Side.CLIENT) public void getSubItems(Item item, + CreativeTabs par2CreativeTabs, List itemList) { ItemStack itemStack = new ItemStack(this, 1); itemList.add(itemStack); @@ -133,35 +132,30 @@ public class ItemDrill extends ItemPickaxe implements IEnergyItemInfo, ITextured itemList.add(charged); } - @Override - public double getDurabilityForDisplay(ItemStack stack) + @Override public double getDurabilityForDisplay(ItemStack stack) { double charge = (PoweredItem.getEnergy(stack) / getMaxPower(stack)); return 1 - charge; } - @Override - public boolean showDurabilityBar(ItemStack stack) + @Override public boolean showDurabilityBar(ItemStack stack) { return true; } - @Override - public String getTextureName(int damage) + @Override public String getTextureName(int damage) { return "techreborn:items/tool/nullDrill"; } - @Override - public int getMaxMeta() + @Override public int getMaxMeta() { return 1; } - @Override - @SideOnly(Side.CLIENT) - public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, int useRemaining) + @Override @SideOnly(Side.CLIENT) public ModelResourceLocation getModel(ItemStack stack, EntityPlayer player, + int useRemaining) { return new ModelResourceLocation(ModInfo.MOD_ID + ":" + getUnlocalizedName(stack).substring(5), "inventory"); } diff --git a/src/main/java/techreborn/items/tools/ItemIronDrill.java b/src/main/java/techreborn/items/tools/ItemIronDrill.java index ead992ea1..1dfb59239 100644 --- a/src/main/java/techreborn/items/tools/ItemIronDrill.java +++ b/src/main/java/techreborn/items/tools/ItemIronDrill.java @@ -10,7 +10,7 @@ public class ItemIronDrill extends ItemDrill public ItemIronDrill() { super(ToolMaterial.IRON, "techreborn.ironDrill", ConfigTechReborn.IronDrillCharge, - ConfigTechReborn.IronDrillTier, 2.0F); + ConfigTechReborn.IronDrillTier, 2.0F, 10F); this.cost = 50; } diff --git a/src/main/java/techreborn/items/tools/ItemJackhammer.java b/src/main/java/techreborn/items/tools/ItemJackhammer.java index 8058b8c80..196a03129 100644 --- a/src/main/java/techreborn/items/tools/ItemJackhammer.java +++ b/src/main/java/techreborn/items/tools/ItemJackhammer.java @@ -1,11 +1,11 @@ package techreborn.items.tools; -import java.util.List; - import me.modmuss50.jsonDestroyer.api.ITexturedItem; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; @@ -26,6 +26,9 @@ import techreborn.client.TechRebornCreativeTab; import techreborn.lib.ModInfo; import techreborn.utils.OreDictUtils; +import java.util.List; +import java.util.Random; + public class ItemJackhammer extends ItemPickaxe implements IEnergyItemInfo, ITexturedItem { @@ -47,17 +50,16 @@ public class ItemJackhammer extends ItemPickaxe implements IEnergyItemInfo, ITex this.tier = tier; } - // @Override - // public boolean onBlockDestroyed(ItemStack stack, World worldIn, Block - // blockIn, BlockPos pos, EntityLivingBase playerIn) { - // Random rand = new Random(); - // if - // (rand.nextInt(EnchantmentHelper.getEnchantmentLevel(Enchantment.unbreaking.effectId, - // stack) + 1) == 0) { - // PoweredItem.useEnergy(cost, stack); - // } - // return true; - // } + @Override public boolean onBlockDestroyed(ItemStack stack, World worldIn, IBlockState blockIn, BlockPos pos, + EntityLivingBase entityLiving) + { + Random rand = new Random(); + if (rand.nextInt(EnchantmentHelper.getEnchantmentLevel(Enchantment.getEnchantmentByID(34), stack) + 1) == 0) + { + PoweredItem.useEnergy(cost, stack); + } + return true; + } @Override public boolean canHarvestBlock(IBlockState state) @@ -70,15 +72,15 @@ public class ItemJackhammer extends ItemPickaxe implements IEnergyItemInfo, ITex return false; } - // @Override - // public float getDigSpeed(ItemStack stack, IBlockState state) { - // if (OreDictUtils.isOre(state, "stone") && PoweredItem.canUseEnergy(cost, - // stack)) { - // return efficiencyOnProperMaterial; - // } else { - // return 0.5F; - // } - // } + @Override + public float getStrVsBlock(ItemStack stack, IBlockState state) { + if (OreDictUtils.isOre(state, "stone") && PoweredItem.canUseEnergy(cost, + stack)) { + return efficiencyOnProperMaterial; + } else { + return 0.5F; + } + } @Override public boolean hitEntity(ItemStack itemstack, EntityLivingBase entityliving, EntityLivingBase entityliving1) diff --git a/src/main/java/techreborn/items/tools/ItemRockCutter.java b/src/main/java/techreborn/items/tools/ItemRockCutter.java index 9e808cd5e..51b0ca29a 100644 --- a/src/main/java/techreborn/items/tools/ItemRockCutter.java +++ b/src/main/java/techreborn/items/tools/ItemRockCutter.java @@ -1,11 +1,10 @@ package techreborn.items.tools; -import java.util.List; - import me.modmuss50.jsonDestroyer.api.ITexturedItem; import net.minecraft.block.state.IBlockState; import net.minecraft.client.renderer.block.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.enchantment.Enchantment; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; import net.minecraft.item.Item; @@ -21,6 +20,8 @@ import techreborn.client.TechRebornCreativeTab; import techreborn.config.ConfigTechReborn; import techreborn.lib.ModInfo; +import java.util.List; + public class ItemRockCutter extends ItemPickaxe implements IEnergyItemInfo, ITexturedItem { @@ -59,29 +60,29 @@ public class ItemRockCutter extends ItemPickaxe implements IEnergyItemInfo, ITex { if (Items.diamond_pickaxe.canHarvestBlock(state)) { - // if (PoweredItem.canUseEnergy(cost, stack)) { - // PoweredItem.useEnergy(cost, stack); - // return true; - // } +// if (PoweredItem.canUseEnergy(cost, stack)) { +// PoweredItem.useEnergy(cost, stack); +// return true; +// } } return false; } - // @Override - // public int getHarvestLevel(ItemStack stack, String toolClass) { - // if (!stack.isItemEnchanted()) { - // stack.addEnchantment(Enchantment.silkTouch, 1); - // } - // return super.getHarvestLevel(stack, toolClass); - // } - // - // @Override - // public float getStrVsBlock(ItemStack stack, Block block) { - // if (!stack.isItemEnchanted()) { - // stack.addEnchantment(Enchantment.silkTouch, 1); - // } - // return super.getStrVsBlock(stack, block); - // } + @Override + public int getHarvestLevel(ItemStack stack, String toolClass) { + if (!stack.isItemEnchanted()) { + stack.addEnchantment(Enchantment.getEnchantmentByID(33), 1); + } + return super.getHarvestLevel(stack, toolClass); + } + + @Override + public float getStrVsBlock(ItemStack stack, IBlockState block) { + if (!stack.isItemEnchanted()) { + stack.addEnchantment(Enchantment.getEnchantmentByID(33), 1); + } + return super.getStrVsBlock(stack, block); + } @Override public boolean isRepairable() diff --git a/src/main/java/techreborn/manual/GuiManual.java b/src/main/java/techreborn/manual/GuiManual.java index 0792712ff..ee1d29694 100644 --- a/src/main/java/techreborn/manual/GuiManual.java +++ b/src/main/java/techreborn/manual/GuiManual.java @@ -1,7 +1,5 @@ package techreborn.manual; -import java.io.IOException; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; @@ -10,22 +8,15 @@ import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; - import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; - import techreborn.init.ModBlocks; import techreborn.init.ModItems; import techreborn.items.ItemParts; import techreborn.items.ItemPlates; -import techreborn.manual.pages.AdvancedMachines; -import techreborn.manual.pages.BasicMachinesPage; -import techreborn.manual.pages.ContentsPage; -import techreborn.manual.pages.CraftingInfoPage; -import techreborn.manual.pages.DescriptionPage; -import techreborn.manual.pages.GeneratingPowerPage; -import techreborn.manual.pages.GettingStartedPage; -import techreborn.manual.pages.ToolsPage; +import techreborn.manual.pages.*; + +import java.io.IOException; @SideOnly(Side.CLIENT) public class GuiManual extends GuiScreen @@ -40,7 +31,7 @@ public class GuiManual extends GuiScreen public GuiManual() { - this.xSize = 146; + this.xSize = 200; this.ySize = 180; root = createRoot(); } diff --git a/src/main/java/techreborn/manual/pages/BasePage.java b/src/main/java/techreborn/manual/pages/BasePage.java index 16eb4b50d..eb46e044c 100644 --- a/src/main/java/techreborn/manual/pages/BasePage.java +++ b/src/main/java/techreborn/manual/pages/BasePage.java @@ -1,7 +1,5 @@ package techreborn.manual.pages; -import java.io.IOException; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; @@ -10,12 +8,14 @@ import net.minecraft.util.text.translation.I18n; import techreborn.manual.PageCollection; import techreborn.manual.Reference; +import java.io.IOException; + public class BasePage extends GuiScreen { public static final ResourceLocation PAGE_TEXTURE = new ResourceLocation( "techreborn:textures/manual/gui/manual.png"); - private final int xSize = 146; + private final int xSize = 200; private final int ySize = 180; // Name Displayed in the index page public String INDEX_NAME; diff --git a/src/main/java/techreborn/manual/pages/ContentsPage.java b/src/main/java/techreborn/manual/pages/ContentsPage.java index 45a8795f7..2b82d066f 100644 --- a/src/main/java/techreborn/manual/pages/ContentsPage.java +++ b/src/main/java/techreborn/manual/pages/ContentsPage.java @@ -1,7 +1,5 @@ package techreborn.manual.pages; -import java.awt.*; - import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.item.ItemStack; @@ -12,6 +10,8 @@ import techreborn.manual.PageCollection; import techreborn.manual.Reference; import techreborn.manual.util.GuiButtonItemTexture; +import java.awt.*; + public class ContentsPage extends TitledPage { public ContentsPage(String name, PageCollection collection) diff --git a/src/main/java/techreborn/manual/pages/CraftingInfoPage.java b/src/main/java/techreborn/manual/pages/CraftingInfoPage.java index bba649108..ab53aa3ce 100644 --- a/src/main/java/techreborn/manual/pages/CraftingInfoPage.java +++ b/src/main/java/techreborn/manual/pages/CraftingInfoPage.java @@ -1,12 +1,9 @@ package techreborn.manual.pages; -import java.awt.*; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - +import com.google.common.base.Objects; +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Lists; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiButton; @@ -14,26 +11,22 @@ import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.texture.TextureManager; import net.minecraft.item.ItemStack; -import net.minecraft.item.crafting.CraftingManager; -import net.minecraft.item.crafting.FurnaceRecipes; -import net.minecraft.item.crafting.IRecipe; -import net.minecraft.item.crafting.ShapedRecipes; -import net.minecraft.item.crafting.ShapelessRecipes; +import net.minecraft.item.crafting.*; import net.minecraft.util.ResourceLocation; import net.minecraft.util.text.TextFormatting; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; - import org.lwjgl.opengl.GL11; - import techreborn.manual.PageCollection; import techreborn.manual.util.ButtonUtil; -import com.google.common.base.Objects; -import com.google.common.base.Strings; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Lists; +import java.awt.*; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; public class CraftingInfoPage extends TitledPage { @@ -82,7 +75,7 @@ public class CraftingInfoPage extends TitledPage { if (hasRecipe) { - renderImage(offsetX, offsetY + 10, "craftingtable"); + renderImage(offsetX + (offsetX/ 2) , offsetY + 10, "craftingtable"); } else { drawString(fontRendererObj, "No Crafting Recipe", offsetX + 40, offsetY + 22, Color.black.getRGB()); @@ -149,7 +142,7 @@ public class CraftingInfoPage extends TitledPage GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1F, 1F, 1F, 1F); - drawTexturedModalRect(offsetX, offsetY - 14, 0, 0, 140, this.height); + drawTexturedModalRect(offsetX + 16, offsetY + 9, 0, 0, 116, 54); GL11.glDisable(GL11.GL_BLEND); } diff --git a/src/main/java/techreborn/manual/util/GuiButtonItemTexture.java b/src/main/java/techreborn/manual/util/GuiButtonItemTexture.java index 1cd06513f..081e6b8b3 100644 --- a/src/main/java/techreborn/manual/util/GuiButtonItemTexture.java +++ b/src/main/java/techreborn/manual/util/GuiButtonItemTexture.java @@ -1,15 +1,14 @@ package techreborn.manual.util; -import java.awt.*; - import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.RenderItem; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.client.config.GuiButtonExt; - import org.lwjgl.opengl.GL11; +import java.awt.*; + public class GuiButtonItemTexture extends GuiButtonExt { @@ -39,13 +38,13 @@ public class GuiButtonItemTexture extends GuiButtonExt mc.getTextureManager().bindTexture(buttonTextures); int u = textureU; int v = textureV; - if (flag) { - u += width; + u += mc.fontRendererObj.getStringWidth(this.NAME) + 25; + v += mc.fontRendererObj.getStringWidth(this.NAME) + 25; GL11.glPushMatrix(); GL11.glColor4f(0f, 0f, 0f, 1f); - this.drawTexturedModalRect(this.xPosition, this.yPosition, u, v, width, height); + this.drawTexturedModalRect(this.xPosition, this.yPosition, u, v, mc.fontRendererObj.getStringWidth(this.NAME) + 25, height); GL11.glPopMatrix(); } GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); diff --git a/src/main/java/techreborn/tiles/TileMatterFabricator.java b/src/main/java/techreborn/tiles/TileMatterFabricator.java index a09eceb4c..95ccd6e6d 100644 --- a/src/main/java/techreborn/tiles/TileMatterFabricator.java +++ b/src/main/java/techreborn/tiles/TileMatterFabricator.java @@ -319,14 +319,12 @@ public class TileMatterFabricator extends TilePowerAcceptor implements IWrenchab return 100000000; } - @Override - public boolean canAcceptEnergy(EnumFacing direction) + @Override public boolean canAcceptEnergy(EnumFacing direction) { return true; } - @Override - public boolean canProvideEnergy(EnumFacing direction) + @Override public boolean canProvideEnergy(EnumFacing direction) { return false; } diff --git a/src/main/resources/assets/techreborn/textures/manual/elements/craftingtable.png b/src/main/resources/assets/techreborn/textures/manual/elements/craftingtable.png index 06e5b6a9f5dbdf302c499c24b21a4558e25a7bb6..1e71b1f02ea3ee9ba1d120ee2eef4ae6d9595eab 100644 GIT binary patch literal 15933 zcmeI3UuYaf9LMLZwi>NgeNd#zawXVe@AgmbPi}j6P0XdeKrV*lq*q&LHoJ4llDpk? zchkE>g3};-^}gHzB4&-cxT@;eF&kQWBJ?^LLm}{(1Y8^*TUISk$gR5<&QcDJ^ZBi z7eXI?^fW?)yY*tpEfvOP)vQJp&78&2detIogwhA=mZC0Tmz%|Nx{(S0{>7JJPS-Nw zBk_VzutxB_o?o`{^zuYeU0zUATKHhLFI|^Of+}_uu3oJej$F@#{k$@Xy=Fel`4V>_ z6CU;k7`C6?Otqnv?dyW@VsT40ryd*`4BH}C=u2PQ}&YmF2W}X~& zR9m-P-848auQF>cx|wj;8>o3T?yG7w2Qr)nJ3^7KD;6(C1-_d}Q=1-Z(XRMY(^MW; za1|S_LwsUapEYl~rZaE$7_!;jb6~P2g+g=euJf%{yAJKRqbCW12GXuhr?_NcehNG0 zqOIc5ljK(Rbh~?3FSiz_EtA*NbMCmV_po_Afz2<4V1?4;UgZ%RE3Ro5O|y~>s%&x- zAvZGOR~5JSh;C?R&DodcJ1wpCZe_zc#l=}tkBNvd5Rno^G3nJ~EcOcU2ciyp!PNBf zQoB7_6cchhCJ!WEAayMWK@Ono%t5w}rnt&&Wr13dM^ojpX;&3Dt5=md%v;7>nr}4% zWwW5<5wl|2WLo6T(|osP;PQ)19y1(QF;qO3%aVquu4{5kQj+mOviAm6Rf#CESRyi* zOlc83I9paFO-M+yaUVdT0PR~+=S+3c+bE6H+8w3__ARMjvUPIEDHWjcW`CzcbV;*i zsJ!lw(p&;1OA6ON#-{PB?X8;~72Q9MEX8)Px7jk`&E3{KznaIB=kYhKtf<~WmQ}sI zfVDK=*4mm@)7h};|8)U_{J`FOjM_XldhDeji!bQycg(U|Q*1muN6O)Lc6gAr-PV~t z&3k8lMQ>k&ptXHzHj8!ZQl`D5OeSSO=B4=f#WcUAtu=C>FL}#ZS@iWuNgx;b!6R40 z3cEY4M{jL~-JRB!^JPPKy$$Y9w4)igyz@3V5vIwb0nR4k@d2`NJDWQllX@LjN;#cu zUB@d(DV}JUI(xc0kM?weo`y46Ebue#uVv6m9umm&3EzA`Xz3|vVwjE% z0%=fVhKq^_3K%X(gBmkjR76m~a6uZ>nBk%#f&zvM(xAo+7Zni{FkFxZHDIYL5&$MDk3OgxF8K`%y3Z=K>@=BX;5Q^i;4&e7%oVI8Z%r}L{PwR zK^oMU;i4jf0)`9HpvDXr6%iCLT#yDeX1J(`pn&0mG^jDdMMVS!3>Tz9jTtT~A}CKg-MO`k^5t(+AFN$Jc%`)W=kxpi8h@a@WR7dc z`y=Sw`A28^S8jZDq40(xy_dOfpV zxOi-RVe)XEe9k|CEW-{$rXZgU`evQogrp4und<7AOcQzHt%k1T5JwtlV1EU06%#$#S zDsip`cGd@e%}gQZBr;u&OjY(`4?m8_ED@V- zO=e4|J1*JqkvWxNnST$X#6AJG0}r@2Jo02ZGyUeKO|9vb%-6njUzj#kSEQj`U59a< z{ZXL(2N4pZbP{A2oBS2zWk=0&Cq3RbeGj`1A0u@o7u6{1-oD!M<;aMFr diff --git a/src/main/resources/assets/techreborn/textures/manual/gui/manual.png b/src/main/resources/assets/techreborn/textures/manual/gui/manual.png index d90d669aeedebd00b42a1d3ad26c516b646a0bcd..448e04e08de9fd62ae6f0ea4423201eb5ea5a8c0 100644 GIT binary patch literal 34413 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