From 88cfee2ab28b484fe0fe2cd5e9f32e00a905a6e5 Mon Sep 17 00:00:00 2001 From: aidancbrady Date: Fri, 29 Jan 2016 17:47:41 -0700 Subject: [PATCH] Changed Metallurgic Infuser infuse system to use icons for textures --- .../java/mekanism/api/infuse/InfuseType.java | 28 +++++------ .../java/mekanism/client/gui/GuiFactory.java | 46 ++++++------------ .../client/gui/GuiMetallurgicInfuser.java | 7 +-- .../nei/MetallurgicInfuserRecipeHandler.java | 16 +++--- .../client/render/MekanismRenderer.java | 7 +++ src/main/java/mekanism/common/Mekanism.java | 15 +++--- .../assets/mekanism/infuse/Infusions.png | Bin 3559 -> 0 bytes .../mekanism/textures/blocks/infuse/Bio.png | Bin 0 -> 1510 bytes .../textures/blocks/infuse/Carbon.png | Bin 0 -> 1169 bytes .../textures/blocks/infuse/Diamond.png | Bin 0 -> 1169 bytes .../mekanism/textures/blocks/infuse/Fungi.png | Bin 0 -> 1378 bytes .../textures/blocks/infuse/Obsidian.png | Bin 0 -> 1169 bytes .../textures/blocks/infuse/Redstone.png | Bin 0 -> 1184 bytes .../mekanism/textures/blocks/infuse/Tin.png | Bin 0 -> 1169 bytes 14 files changed, 55 insertions(+), 64 deletions(-) delete mode 100644 src/main/resources/assets/mekanism/infuse/Infusions.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/infuse/Bio.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/infuse/Carbon.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/infuse/Diamond.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/infuse/Fungi.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/infuse/Obsidian.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/infuse/Redstone.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/infuse/Tin.png diff --git a/src/main/java/mekanism/api/infuse/InfuseType.java b/src/main/java/mekanism/api/infuse/InfuseType.java index 1f5215cb7..2ebd49161 100644 --- a/src/main/java/mekanism/api/infuse/InfuseType.java +++ b/src/main/java/mekanism/api/infuse/InfuseType.java @@ -1,6 +1,6 @@ package mekanism.api.infuse; -import net.minecraft.util.ResourceLocation; +import net.minecraft.util.IIcon; import net.minecraft.util.StatCollector; /** @@ -13,29 +13,29 @@ public final class InfuseType /** The name of this infusion */ public String name; - /** The location of this infuse's GUI texture */ - public ResourceLocation texture; - - /** The infuse's GUI texture X offset. */ - public int texX; - - /** The infuse's GUI texture Y offset. */ - public int texY; + /** This infuse GUI's icon */ + public IIcon icon; + + /** The location of this infuse GUI's icon */ + public String textureLocation; /** The unlocalized name of this type. */ public String unlocalizedName; - public InfuseType(String s, ResourceLocation location, int x, int y) + public InfuseType(String s, String tex) { name = s; - texture = location; - texX = x; - texY = y; + textureLocation = tex; + } + + public void setIcon(IIcon i) + { + icon = i; } public InfuseType setUnlocalizedName(String name) { - unlocalizedName = name; + unlocalizedName = "infuse." + name; return this; } diff --git a/src/main/java/mekanism/client/gui/GuiFactory.java b/src/main/java/mekanism/client/gui/GuiFactory.java index d11edd3d0..93a6c6ac2 100644 --- a/src/main/java/mekanism/client/gui/GuiFactory.java +++ b/src/main/java/mekanism/client/gui/GuiFactory.java @@ -2,7 +2,6 @@ package mekanism.client.gui; import java.util.List; -import mekanism.api.gas.GasStack; import mekanism.api.util.ListUtils; import mekanism.client.gui.element.GuiEnergyInfo; import mekanism.client.gui.element.GuiEnergyInfo.IInfoHandler; @@ -19,6 +18,7 @@ import mekanism.common.tile.TileEntityFactory; import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.IIcon; import org.lwjgl.opengl.GL11; @@ -92,48 +92,30 @@ public class GuiFactory extends GuiMekanism displayInt = tileEntity.getScaledEnergyLevel(52); drawTexturedModalRect(guiWidth + 165, guiHeight + 17 + 52 - displayInt, 176, 52 - displayInt, 4, displayInt); - if(tileEntity.tier == FactoryTier.BASIC) + int xOffset = tileEntity.tier == FactoryTier.BASIC ? 59 : (tileEntity.tier == FactoryTier.ADVANCED ? + 39 : 33); + int xDistance = tileEntity.tier == FactoryTier.BASIC ? 38 : (tileEntity.tier == FactoryTier.ADVANCED ? + 26 : 19); + + for(int i = 0; i < tileEntity.tier.processes; i++) { - for(int i = 0; i < tileEntity.tier.processes; i++) - { - int xPos = 59 + (i*38); + int xPos = xOffset + (i*xDistance); - displayInt = tileEntity.getScaledProgress(20, i); - drawTexturedModalRect(guiWidth + xPos, guiHeight + 33, 176, 52, 8, displayInt); - } - } - else if(tileEntity.tier == FactoryTier.ADVANCED) - { - for(int i = 0; i < tileEntity.tier.processes; i++) - { - int xPos = 39 + (i*26); - - displayInt = tileEntity.getScaledProgress(20, i); - drawTexturedModalRect(guiWidth + xPos, guiHeight + 33, 176, 52, 8, displayInt); - } - } - else if(tileEntity.tier == FactoryTier.ELITE) - { - for(int i = 0; i < tileEntity.tier.processes; i++) - { - int xPos = 33 + (i*19); - - displayInt = tileEntity.getScaledProgress(20, i); - drawTexturedModalRect(guiWidth + xPos, guiHeight + 33, 176, 52, 8, displayInt); - } + displayInt = tileEntity.getScaledProgress(20, i); + drawTexturedModalRect(guiWidth + xPos, guiHeight + 33, 176, 52, 8, displayInt); } if(tileEntity.getScaledGasLevel(160) > 0) { - displayGauge(8, 78, tileEntity.getScaledGasLevel(160), 5, tileEntity.gasTank.getGas()); + displayGauge(8, 78, tileEntity.getScaledGasLevel(160), 5, tileEntity.gasTank.getGas().getGas().getIcon()); } super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY); } - public void displayGauge(int xPos, int yPos, int sizeX, int sizeY, GasStack gas) + public void displayGauge(int xPos, int yPos, int sizeX, int sizeY, IIcon icon) { - if(gas == null) + if(icon == null) { return; } @@ -142,6 +124,6 @@ public class GuiFactory extends GuiMekanism int guiHeight = (height - ySize) / 2; mc.renderEngine.bindTexture(MekanismRenderer.getBlocksTexture()); - drawTexturedModelRectFromIcon(guiWidth + xPos, guiHeight + yPos, gas.getGas().getIcon(), sizeX, sizeY); + drawTexturedModelRectFromIcon(guiWidth + xPos, guiHeight + yPos, icon, sizeX, sizeY); } } diff --git a/src/main/java/mekanism/client/gui/GuiMetallurgicInfuser.java b/src/main/java/mekanism/client/gui/GuiMetallurgicInfuser.java index d78948e47..f70deeec5 100644 --- a/src/main/java/mekanism/client/gui/GuiMetallurgicInfuser.java +++ b/src/main/java/mekanism/client/gui/GuiMetallurgicInfuser.java @@ -9,15 +9,16 @@ import mekanism.client.gui.element.GuiEnergyInfo; import mekanism.client.gui.element.GuiEnergyInfo.IInfoHandler; import mekanism.client.gui.element.GuiPowerBar; import mekanism.client.gui.element.GuiProgress; -import mekanism.client.gui.element.GuiRedstoneControl; import mekanism.client.gui.element.GuiProgress.IProgressInfoHandler; import mekanism.client.gui.element.GuiProgress.ProgressBar; +import mekanism.client.gui.element.GuiRedstoneControl; import mekanism.client.gui.element.GuiSideConfigurationTab; import mekanism.client.gui.element.GuiSlot; import mekanism.client.gui.element.GuiSlot.SlotOverlay; import mekanism.client.gui.element.GuiSlot.SlotType; import mekanism.client.gui.element.GuiTransporterConfigTab; import mekanism.client.gui.element.GuiUpgradeTab; +import mekanism.client.render.MekanismRenderer; import mekanism.client.sound.SoundHandler; import mekanism.common.Mekanism; import mekanism.common.inventory.container.ContainerMetallurgicInfuser; @@ -100,9 +101,9 @@ public class GuiMetallurgicInfuser extends GuiMekanism if(tileEntity.infuseStored.type != null) { + mc.renderEngine.bindTexture(MekanismRenderer.getBlocksTexture()); int displayInt = tileEntity.getScaledInfuseLevel(52); - mc.renderEngine.bindTexture(tileEntity.infuseStored.type.texture); - drawTexturedModalRect(guiWidth + 7, guiHeight + 17 + 52 - displayInt, tileEntity.infuseStored.type.texX, tileEntity.infuseStored.type.texY + 52 - displayInt, 4, displayInt); + drawTexturedRectFromIcon(guiWidth + 7, guiHeight + 17 + 52 - displayInt, tileEntity.infuseStored.type.icon, 4, displayInt); } super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY); diff --git a/src/main/java/mekanism/client/nei/MetallurgicInfuserRecipeHandler.java b/src/main/java/mekanism/client/nei/MetallurgicInfuserRecipeHandler.java index 4bb26edad..81df2fd28 100644 --- a/src/main/java/mekanism/client/nei/MetallurgicInfuserRecipeHandler.java +++ b/src/main/java/mekanism/client/nei/MetallurgicInfuserRecipeHandler.java @@ -1,6 +1,9 @@ package mekanism.client.nei; -import java.awt.*; +import static codechicken.lib.gui.GuiDraw.changeTexture; +import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; + +import java.awt.Rectangle; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -12,13 +15,14 @@ import mekanism.api.infuse.InfuseType; import mekanism.client.gui.GuiMetallurgicInfuser; import mekanism.client.gui.element.GuiElement; import mekanism.client.gui.element.GuiPowerBar; -import mekanism.client.gui.element.GuiProgress; -import mekanism.client.gui.element.GuiSlot; import mekanism.client.gui.element.GuiPowerBar.IPowerInfoHandler; +import mekanism.client.gui.element.GuiProgress; import mekanism.client.gui.element.GuiProgress.IProgressInfoHandler; import mekanism.client.gui.element.GuiProgress.ProgressBar; +import mekanism.client.gui.element.GuiSlot; import mekanism.client.gui.element.GuiSlot.SlotOverlay; import mekanism.client.gui.element.GuiSlot.SlotType; +import mekanism.client.render.MekanismRenderer; import mekanism.common.recipe.RecipeHandler.Recipe; import mekanism.common.recipe.machines.MetallurgicInfuserRecipe; import mekanism.common.util.LangUtils; @@ -31,8 +35,6 @@ import org.lwjgl.opengl.GL11; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; import codechicken.nei.recipe.TemplateRecipeHandler; -import static codechicken.lib.gui.GuiDraw.changeTexture; -import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect; public class MetallurgicInfuserRecipeHandler extends BaseRecipeHandler { @@ -132,8 +134,8 @@ public class MetallurgicInfuserRecipeHandler extends BaseRecipeHandler float f = ticksPassed >= 20 && ticksPassed < 40 ? (ticksPassed - 20) % 20 / 20.0F : 1.0F; if(ticksPassed < 20) f = 0.0F; - changeTexture(type.texture); - drawProgressBar(2, 2, type.texX, type.texY, 4, 52, f, 3); + changeTexture(MekanismRenderer.getBlocksTexture()); + drawTexturedRectFromIcon(2, 2, type.icon, 4, (int)(52F*f)); } @Override diff --git a/src/main/java/mekanism/client/render/MekanismRenderer.java b/src/main/java/mekanism/client/render/MekanismRenderer.java index e9b752ff6..5de91aa2c 100644 --- a/src/main/java/mekanism/client/render/MekanismRenderer.java +++ b/src/main/java/mekanism/client/render/MekanismRenderer.java @@ -10,6 +10,8 @@ import mekanism.api.EnumColor; import mekanism.api.gas.Gas; import mekanism.api.gas.GasRegistry; import mekanism.api.gas.OreGas; +import mekanism.api.infuse.InfuseRegistry; +import mekanism.api.infuse.InfuseType; import mekanism.api.transmitters.TransmissionType; import mekanism.client.render.tileentity.RenderConfigurableMachine; import mekanism.client.render.tileentity.RenderDynamicTank; @@ -127,6 +129,11 @@ public class MekanismRenderer FluidRegistry.getFluid("brine").setIcons(event.map.registerIcon("mekanism:LiquidBrine")); FluidRegistry.getFluid("heavywater").setIcons(event.map.registerIcon("mekanism:LiquidHeavyWater")); + + for(InfuseType type : InfuseRegistry.getInfuseMap().values()) + { + type.setIcon(event.map.registerIcon(type.textureLocation)); + } if(RenderPartTransmitter.getInstance() != null) { diff --git a/src/main/java/mekanism/common/Mekanism.java b/src/main/java/mekanism/common/Mekanism.java index 7936a4cc2..b4f31caeb 100644 --- a/src/main/java/mekanism/common/Mekanism.java +++ b/src/main/java/mekanism/common/Mekanism.java @@ -80,7 +80,6 @@ import mekanism.common.tile.TileEntitySolarEvaporationValve; import mekanism.common.tile.TileEntityThermoelectricBoiler; import mekanism.common.tile.TileEntityThermoelectricValve; import mekanism.common.util.MekanismUtils; -import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.common.voice.VoiceServerManager; import mekanism.common.world.GenHandler; import net.minecraft.entity.EnumCreatureType; @@ -1170,13 +1169,13 @@ public class Mekanism MekanismBlocks.register(); //Register infuses - InfuseRegistry.registerInfuseType(new InfuseType("CARBON", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 0, 0).setUnlocalizedName("infuse.carbon")); - InfuseRegistry.registerInfuseType(new InfuseType("TIN", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 4, 0).setUnlocalizedName("infuse.tin")); - InfuseRegistry.registerInfuseType(new InfuseType("DIAMOND", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 8, 0).setUnlocalizedName("infuse.diamond")); - InfuseRegistry.registerInfuseType(new InfuseType("REDSTONE", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 16, 0).setUnlocalizedName("infuse.redstone")); - InfuseRegistry.registerInfuseType(new InfuseType("FUNGI", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 20, 0).setUnlocalizedName("infuse.fungi")); - InfuseRegistry.registerInfuseType(new InfuseType("BIO", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 12, 0).setUnlocalizedName("infuse.bio")); - InfuseRegistry.registerInfuseType(new InfuseType("OBSIDIAN", MekanismUtils.getResource(ResourceType.INFUSE, "Infusions.png"), 24, 0).setUnlocalizedName("infuse.obsidian")); + InfuseRegistry.registerInfuseType(new InfuseType("CARBON", "mekanism:infuse/Carbon").setUnlocalizedName("carbon")); + InfuseRegistry.registerInfuseType(new InfuseType("TIN", "mekanism:infuse/Tin").setUnlocalizedName("tin")); + InfuseRegistry.registerInfuseType(new InfuseType("DIAMOND", "mekanism:infuse/Diamond").setUnlocalizedName("diamond")); + InfuseRegistry.registerInfuseType(new InfuseType("REDSTONE", "mekanism:infuse/Redstone").setUnlocalizedName("redstone")); + InfuseRegistry.registerInfuseType(new InfuseType("FUNGI", "mekanism:infuse/Fungi").setUnlocalizedName("fungi")); + InfuseRegistry.registerInfuseType(new InfuseType("BIO", "mekanism:infuse/Bio").setUnlocalizedName("bio")); + InfuseRegistry.registerInfuseType(new InfuseType("OBSIDIAN", "mekanism:infuse/Obsidian").setUnlocalizedName("obsidian")); } @EventHandler diff --git a/src/main/resources/assets/mekanism/infuse/Infusions.png b/src/main/resources/assets/mekanism/infuse/Infusions.png deleted file mode 100644 index 70ef32dfd913c786051385e9ee75600c905f005c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3559 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 Wk~TjwUu0T^@JlTS=N6aEMD9Ys?B diff --git a/src/main/resources/assets/mekanism/textures/blocks/infuse/Bio.png b/src/main/resources/assets/mekanism/textures/blocks/infuse/Bio.png new file mode 100644 index 0000000000000000000000000000000000000000..a4cc3c8b8fea52463bbdcf16a1630adf046349cb GIT binary patch literal 1510 zcmV4Tx062|}Rb6NtRTMtEb7vzY&QokOg>Hg1+lHrgWS zWcKdPn90sKGrRqvPeo9CG3uKX#J{(IASm?@+di}}l?o-=)F3E6wD^Ni=!>T7nL9I? zX}YoAW$t|Qo$sD|?zw001?ah|SeB6#0T!CBEf+H4bBB+JJu8rehoBb*p;u8ID_yBf z0ya+zcePvJL&AGs+11_tpRKn>9TgyPA7ZoSs0)aX0r00)%XR^J`jH<$>RKN5V(7Oq zK*TS4xZz{h!*f1C3ECFkK$#7nA@pGN!$;%jYvwjAKwmYb0gKL(K8 z-kPtb5${A?tlI~wzMrJ6wTdBr=Y%%%EaEMQ&o}4FQ^DA)s*}Z>!FI&AHCpoWI|RUq zx?7s@$8!5^Q=anY%X@i5{QA6kNcMelpE>R6eCYFpmMsVTrI(b06~u#xf1yS} z_UGdMvD``!0~u->P=lA4?YN`hilQ|3tHka)7T{2CGqw zjZfMwx$5irQN_*|e4l)UHmiYuz74Yp1t^#>hrJ3-SOXDcC_o0^7T9R1gAN8V6s;5) zieI5-7aQlmJn}lUna#nz!j%5V$X|o`xX!dHWQRV27P1=rj;t2bW$~+pTw@bIek?Zv zKPDL<64`^#UNTAck#RBsB6*5DP4<%UA_FqU$I>2EH_cM;u)Q~SI+rg`Rn{L_AC5qq~L$#SMj%U z$6Cz0vP{G5Y*=%5RT^yu;}-DInZ=349rJPVM6C3K^oO)8y(fJr{l>k`ead~!ea?NsT>_Ci%bnxC;Vy6=b6>{xYV#Ue-+LB$ z7`JEXmTRm^AtP)R9u{)KHsMiWGV&)32xCG~*nyU<>-!d;FP=Re4r3qYr~6#KE>;1F z`>_J_P5xC?ROxV(DIHdCO*p$HRQI@7^PwV@Pvuf+5K}u-6REM(K@W$s zrgorh0{i?O)v0c>QtHxU-hBdD(>iYJ4b2sIOVX2K8m~4gmYVA5h^QEb$V`rCQ-|7Z zS{nuL-t>?3n=-o(6I(7vocj#GzCZEo`!3>+v;dYIfPu#&ZWzzX2i^rZ^Mu;6+rb@? zNPG+6)c5T6zxpzGe*M(x+{AON=PiJ>H#?ob-|uwRK0yDg0B4PV0id6JRZw95ZvX%R zlu1NER5%fBlPga{Q4oaBy$KjFC>~9LR8F2kw)wq~3Q;H$D2|vKU+o=AZW z#1G%XmH##OYR&5%#Cvu#kI~w{CO6QWsGOH{;tL@Km+ia3s`$vwbK6D9tRAfk^Bvh9 z10V269zf2o7C7VsC-W1vdTTHc>VkKajdzCRyLwUe$6#E^J6k{727sF%dA40npu?LrKEZU6uP literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/infuse/Carbon.png b/src/main/resources/assets/mekanism/textures/blocks/infuse/Carbon.png new file mode 100644 index 0000000000000000000000000000000000000000..7092f61e0a89d34308f963a4e397210b94f78239 GIT binary patch literal 1169 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/infuse/Obsidian.png b/src/main/resources/assets/mekanism/textures/blocks/infuse/Obsidian.png new file mode 100644 index 0000000000000000000000000000000000000000..11d90098b9abdf83b3bb55f8012398657928f2f5 GIT binary patch literal 1169 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 literal 0 HcmV?d00001