From 649f128d76a4e2dac5375d6d424792a3d729a84a Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Fri, 22 Nov 2013 20:27:27 -0500 Subject: [PATCH] Work on textures --- .../client/model/ModelMultimeter.java | 15 ++- .../client/render/BlockRenderingHandler.java | 21 ++-- .../client/render/RenderBattery.java | 111 +++++++++--------- .../client/render/RenderEMContractor.java | 24 ++-- .../client/render/RenderMultimeter.java | 13 +- .../induction/client/render/RenderTesla.java | 23 ++-- .../induction/common/MekanismInduction.java | 6 - resources/assets/mekanism/render/battery.png | Bin 2324 -> 0 bytes .../assets/mekanism/render/battery_multi.png | Bin 2150 -> 0 bytes .../assets/mekanism/render/em_contractor.png | Bin 1365 -> 0 bytes .../mekanism/render/em_contractor_push.png | Bin 2727 -> 0 bytes .../assets/mekanism/render/insulation.png | Bin 9996 -> 0 bytes .../assets/mekanism/render/multimeter.png | Bin 1848 -> 0 bytes .../assets/mekanism/render/tesla_bottom.png | Bin 2406 -> 0 bytes .../assets/mekanism/render/tesla_middle.png | Bin 1560 -> 0 bytes .../assets/mekanism/render/tesla_top.png | Bin 966 -> 0 bytes 16 files changed, 101 insertions(+), 112 deletions(-) delete mode 100644 resources/assets/mekanism/render/battery.png delete mode 100644 resources/assets/mekanism/render/battery_multi.png delete mode 100644 resources/assets/mekanism/render/em_contractor.png delete mode 100644 resources/assets/mekanism/render/em_contractor_push.png delete mode 100644 resources/assets/mekanism/render/insulation.png delete mode 100644 resources/assets/mekanism/render/multimeter.png delete mode 100755 resources/assets/mekanism/render/tesla_bottom.png delete mode 100755 resources/assets/mekanism/render/tesla_middle.png delete mode 100644 resources/assets/mekanism/render/tesla_top.png diff --git a/common/mekanism/induction/client/model/ModelMultimeter.java b/common/mekanism/induction/client/model/ModelMultimeter.java index 2f60ae790..eba0efc95 100644 --- a/common/mekanism/induction/client/model/ModelMultimeter.java +++ b/common/mekanism/induction/client/model/ModelMultimeter.java @@ -5,7 +5,6 @@ import net.minecraft.client.model.ModelRenderer; public class ModelMultimeter extends ModelBase { - // fields ModelRenderer Base; ModelRenderer secPanel; ModelRenderer arm; @@ -56,14 +55,14 @@ public class ModelMultimeter extends ModelBase setRotation(infopanel, 0F, 0F, 0F); } - public void render(float f5) + public void render(float size) { - Base.render(f5); - secPanel.render(f5); - arm.render(f5); - button.render(f5); - arm2.render(f5); - infopanel.render(f5); + Base.render(size); + secPanel.render(size); + arm.render(size); + button.render(size); + arm2.render(size); + infopanel.render(size); } private void setRotation(ModelRenderer model, float x, float y, float z) diff --git a/common/mekanism/induction/client/render/BlockRenderingHandler.java b/common/mekanism/induction/client/render/BlockRenderingHandler.java index c25db8b46..298463807 100644 --- a/common/mekanism/induction/client/render/BlockRenderingHandler.java +++ b/common/mekanism/induction/client/render/BlockRenderingHandler.java @@ -3,11 +3,14 @@ */ package mekanism.induction.client.render; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.induction.common.block.BlockBattery; import mekanism.induction.common.block.BlockEMContractor; import mekanism.induction.common.block.BlockMultimeter; import mekanism.induction.common.block.BlockTesla; import net.minecraft.block.Block; +import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.world.IBlockAccess; @@ -37,8 +40,8 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler GL11.glPushMatrix(); GL11.glTranslated(0.5, 1.5, 0.5); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderTesla.TEXTURE_BOTTOM); - RenderTesla.MODEL_BOTTOM.render(0.0625f); + Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "TeslaBottom.png")); + RenderTesla.bottom.render(0.0625f); GL11.glPopMatrix(); } else if (block instanceof BlockEMContractor) @@ -46,8 +49,8 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler GL11.glPushMatrix(); GL11.glTranslated(0.5, 1.5, 0.5); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderEMContractor.TEXTURE); - RenderEMContractor.MODEL.render(0.0625f); + Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectromagneticContractor.png")); + RenderEMContractor.model.render(0.0625f); GL11.glPopMatrix(); } else if (block instanceof BlockBattery) @@ -55,8 +58,8 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler GL11.glPushMatrix(); GL11.glTranslated(0.5, 1.42, 0.5); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderBattery.TEXTURE); - RenderBattery.MODEL.render(0.0625f); + Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Battery.png")); + RenderBattery.model.render(0.0625f); GL11.glPopMatrix(); } else if (block instanceof BlockMultimeter) @@ -64,8 +67,8 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler GL11.glPushMatrix(); GL11.glRotatef(180, 0, 1, 0); GL11.glTranslated(0, -1, -0.7); - FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderMultimeter.TEXTURE); - RenderMultimeter.MODEL.render(0.0625f); + Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Multimeter.png")); + RenderMultimeter.model.render(0.0625f); GL11.glPopMatrix(); } } @@ -75,8 +78,6 @@ public class BlockRenderingHandler implements ISimpleBlockRenderingHandler { if (block instanceof BlockBattery) { - // FMLClientHandler.instance().getClient().renderEngine.bindTexture(RenderBattery.TEXTURE); - return true; } diff --git a/common/mekanism/induction/client/render/RenderBattery.java b/common/mekanism/induction/client/render/RenderBattery.java index fa093c0a3..3e981763a 100644 --- a/common/mekanism/induction/client/render/RenderBattery.java +++ b/common/mekanism/induction/client/render/RenderBattery.java @@ -6,6 +6,8 @@ package mekanism.induction.client.render; import java.util.Random; import mekanism.common.Mekanism; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.induction.client.model.ModelBattery; import mekanism.induction.common.MekanismInduction; import mekanism.induction.common.tileentity.TileEntityBattery; @@ -37,10 +39,8 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RenderBattery extends TileEntitySpecialRenderer { - public static final ResourceLocation TEXTURE = new ResourceLocation(MekanismInduction.DOMAIN, MekanismInduction.MODEL_TEXTURE_DIRECTORY + "battery.png"); - public static final ResourceLocation TEXTURE_MULTI = new ResourceLocation(MekanismInduction.DOMAIN, MekanismInduction.MODEL_TEXTURE_DIRECTORY + "battery_multi.png"); - - public static final ModelBattery MODEL = new ModelBattery(); + public static final ModelBattery model = new ModelBattery(); + private EntityItem fakeBattery; private Random random = new Random(); protected RenderManager renderManager; @@ -48,112 +48,109 @@ public class RenderBattery extends TileEntitySpecialRenderer @Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) { - GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y + 1.5, z + 0.5); GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); - if (((TileEntityBattery) t).structure.isMultiblock) + if(((TileEntityBattery)t).structure.isMultiblock) { - this.bindTexture(TEXTURE_MULTI); + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "BatteryOn.png")); } - else - { - this.bindTexture(TEXTURE); + else { + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Battery.png")); } - MODEL.render(0.0625f); - /* - * GL11.glScalef(0.0625f, 0.0625f, 0.0625f); batteryModel.renderAll(); - */ + model.render(0.0625f); + GL11.glPopMatrix(); - if (Minecraft.getMinecraft().gameSettings.fancyGraphics) + if(Minecraft.getMinecraft().gameSettings.fancyGraphics) { - if (this.fakeBattery == null) + if(fakeBattery == null) { - this.fakeBattery = new EntityItem(t.worldObj, 0, 0, 0, new ItemStack(Mekanism.EnergyTablet)); - this.fakeBattery.age = 10; + fakeBattery = new EntityItem(t.worldObj, 0, 0, 0, new ItemStack(Mekanism.EnergyTablet)); + fakeBattery.age = 10; } - if (this.renderManager == null) + if(renderManager == null) { - this.renderManager = RenderManager.instance; + renderManager = RenderManager.instance; } - int renderAmount = Math.min(((TileEntityBattery) t).clientCells, 16); + int renderAmount = Math.min(((TileEntityBattery)t).clientCells, 16); - if (renderAmount == 0) + if(renderAmount == 0) { return; } - for (int i = 2; i < 6; i++) + for(int i = 2; i < 6; i++) { ForgeDirection direction = ForgeDirection.getOrientation(i); - for (int slot = 0; slot < 4; slot++) + for(int slot = 0; slot < 4; slot++) { Vector3 sideVec = new Vector3(t).modifyPositionFromSide(correctSide(direction)); Block block = Block.blocksList[sideVec.getBlockID(t.worldObj)]; - if (block != null && block.isOpaqueCube()) + if(block != null && block.isOpaqueCube()) { continue; } GL11.glPushMatrix(); - GL11.glTranslatef((float) x + 0.5f, (float) y + 0.7f, (float) z + 0.5f); + GL11.glTranslatef((float)x + 0.5F, (float)y + 0.7F, (float)z + 0.5F); float translateX = 0; float translateY = 0; - switch (slot) + switch(slot) { case 0: - translateX = 0.25f; + translateX = 0.25F; break; case 1: - translateX = 0.25f; - translateY = -0.5f; + translateX = 0.25F; + translateY = -0.5F; break; case 2: - translateX = -0.25f; - translateY = -0.5f; + translateX = -0.25F; + translateY = -0.5F; break; case 3: - translateX = -0.25f; + translateX = -0.25F; break; } - switch (direction) + switch(direction) { case NORTH: - GL11.glTranslatef(-0.5f, 0, 0); + GL11.glTranslatef(-0.5F, 0, 0); GL11.glTranslatef(0, translateY, translateX); GL11.glRotatef(90, 0, 1, 0); break; case SOUTH: - GL11.glTranslatef(0, 0, -0.5f); + GL11.glTranslatef(0, 0, -0.5F); GL11.glTranslatef(translateX, translateY, 0); break; case WEST: - GL11.glTranslatef(0.5f, 0, 0); + GL11.glTranslatef(0.5F, 0, 0); GL11.glTranslatef(0, translateY, translateX); GL11.glRotatef(90, 0, 1, 0); break; case EAST: - GL11.glTranslatef(0, 0, 0.5f); + GL11.glTranslatef(0, 0, 0.5F); GL11.glTranslatef(translateX, translateY, 0); break; } - GL11.glScalef(0.5f, 0.5f, 0.5f); + GL11.glScalef(0.4F, 0.4F, 0.4F); + GL11.glTranslatef(0.0F, -0.15F, 0.0F); - this.renderItemSimple(this.fakeBattery); + renderItemSimple(fakeBattery); GL11.glPopMatrix(); - if (--renderAmount <= 0) + if(--renderAmount <= 0) { return; } @@ -164,7 +161,7 @@ public class RenderBattery extends TileEntitySpecialRenderer private ForgeDirection correctSide(ForgeDirection side) { - switch (side) + switch(side) { case NORTH: return ForgeDirection.WEST; @@ -181,16 +178,16 @@ public class RenderBattery extends TileEntitySpecialRenderer public void renderItemSimple(EntityItem entityItem) { - if (entityItem != null) + if(entityItem != null) { Tessellator tessellator = Tessellator.instance; ItemStack itemStack = entityItem.getEntityItem(); - for (int k = 0; k < itemStack.getItem().getRenderPasses(itemStack.getItemDamage()); ++k) + for(int k = 0; k < itemStack.getItem().getRenderPasses(itemStack.getItemDamage()); ++k) { Icon icon = itemStack.getItem().getIcon(itemStack, k); - if (icon == null) + if(icon == null) { TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); ResourceLocation resourcelocation = texturemanager.getResourceLocation(entityItem.getEntityItem().getItemSpriteNumber()); @@ -216,30 +213,28 @@ public class RenderBattery extends TileEntitySpecialRenderer GL11.glTranslatef(-f9, -f10, -((f12 + f11) * b0 / 2.0F)); - for (int kj = 0; kj < b0; ++kj) + for(int kj = 0; kj < b0; ++kj) { // Makes items offset when in 3D, like when in 2D, looks much better. Considered // a // vanilla bug... - if (kj > 0) + if(kj > 0) { float x = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; float y = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; float z = (random.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; GL11.glTranslatef(x, y, f12 + f11); } - else - { + else { GL11.glTranslatef(0f, 0f, f12 + f11); } - if (itemstack.getItemSpriteNumber() == 0) + if(itemstack.getItemSpriteNumber() == 0) { - this.bindTexture(TextureMap.locationBlocksTexture); + bindTexture(TextureMap.locationBlocksTexture); } - else - { - this.bindTexture(TextureMap.locationItemsTexture); + else { + bindTexture(TextureMap.locationItemsTexture); } GL11.glColor4f(1, 1, 1, 1.0F); @@ -255,12 +250,14 @@ public class RenderBattery extends TileEntitySpecialRenderer public byte getMiniItemCount(ItemStack stack) { byte ret = 1; - if (stack.stackSize > 1) + + if(stack.stackSize > 1) ret = 2; - if (stack.stackSize > 15) + if(stack.stackSize > 15) ret = 3; - if (stack.stackSize > 31) + if(stack.stackSize > 31) ret = 4; + return ret; } } diff --git a/common/mekanism/induction/client/render/RenderEMContractor.java b/common/mekanism/induction/client/render/RenderEMContractor.java index 2b4ad9803..72b8718c1 100644 --- a/common/mekanism/induction/client/render/RenderEMContractor.java +++ b/common/mekanism/induction/client/render/RenderEMContractor.java @@ -1,6 +1,8 @@ package mekanism.induction.client.render; import mekanism.common.Mekanism; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.induction.client.model.ModelEMContractor; import mekanism.induction.common.MekanismInduction; import mekanism.induction.common.tileentity.TileEntityEMContractor; @@ -12,10 +14,8 @@ import org.lwjgl.opengl.GL11; public class RenderEMContractor extends TileEntitySpecialRenderer { - public static final ModelEMContractor MODEL = new ModelEMContractor(false); + public static final ModelEMContractor model = new ModelEMContractor(false); public static final ModelEMContractor MODEL_SPIN = new ModelEMContractor(true); - public static final ResourceLocation TEXTURE = new ResourceLocation(MekanismInduction.DOMAIN, MekanismInduction.MODEL_TEXTURE_DIRECTORY + "em_contractor.png"); - public static final ResourceLocation TEXTURE_PUSH = new ResourceLocation(MekanismInduction.DOMAIN, MekanismInduction.MODEL_TEXTURE_DIRECTORY + "em_contractor_push.png"); @Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) @@ -25,7 +25,7 @@ public class RenderEMContractor extends TileEntitySpecialRenderer GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); - switch (((TileEntityEMContractor) t).getFacing()) + switch(((TileEntityEMContractor) t).getFacing()) { case DOWN: GL11.glRotatef(180, 0, 0, 1); @@ -51,22 +51,20 @@ public class RenderEMContractor extends TileEntitySpecialRenderer break; } - if (((TileEntityEMContractor) t).suck) + if(((TileEntityEMContractor)t).suck) { - this.bindTexture(TEXTURE); + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectromagneticContractor.png")); } - else - { - this.bindTexture(TEXTURE_PUSH); + else { + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "ElectromagneticContractorOn.png")); } - if (((TileEntityEMContractor) t).canFunction() && !Mekanism.proxy.isPaused()) + if(((TileEntityEMContractor)t).canFunction() && !Mekanism.proxy.isPaused()) { MODEL_SPIN.render(0.0625f); } - else - { - MODEL.render(0.0625f); + else { + model.render(0.0625f); } GL11.glPopMatrix(); diff --git a/common/mekanism/induction/client/render/RenderMultimeter.java b/common/mekanism/induction/client/render/RenderMultimeter.java index 9a0e1a10d..d5a6fc4db 100644 --- a/common/mekanism/induction/client/render/RenderMultimeter.java +++ b/common/mekanism/induction/client/render/RenderMultimeter.java @@ -1,5 +1,7 @@ package mekanism.induction.client.render; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.induction.client.model.ModelMultimeter; import mekanism.induction.common.MekanismInduction; import mekanism.induction.common.tileentity.TileEntityMultimeter; @@ -25,9 +27,8 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RenderMultimeter extends TileEntitySpecialRenderer { - public static final ModelMultimeter MODEL = new ModelMultimeter(); - public static final ResourceLocation TEXTURE = new ResourceLocation(MekanismInduction.DOMAIN, MekanismInduction.MODEL_TEXTURE_DIRECTORY + "multimeter.png"); - + public static final ModelMultimeter model = new ModelMultimeter(); + @Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float var8) { @@ -63,9 +64,9 @@ public class RenderMultimeter extends TileEntitySpecialRenderer GL11.glRotatef(90, 1, 0, 0); break; } - - this.bindTexture(TEXTURE); - MODEL.render(0.0625f); + + this.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "Multimeter.png")); + model.render(0.0625f); GL11.glPopMatrix(); diff --git a/common/mekanism/induction/client/render/RenderTesla.java b/common/mekanism/induction/client/render/RenderTesla.java index 2aa035486..d9950da8c 100644 --- a/common/mekanism/induction/client/render/RenderTesla.java +++ b/common/mekanism/induction/client/render/RenderTesla.java @@ -3,6 +3,8 @@ */ package mekanism.induction.client.render; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.induction.client.model.ModelTeslaBottom; import mekanism.induction.client.model.ModelTeslaMiddle; import mekanism.induction.client.model.ModelTeslaTop; @@ -23,12 +25,9 @@ import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class RenderTesla extends TileEntitySpecialRenderer { - public static final ResourceLocation TEXTURE_BOTTOM = new ResourceLocation(MekanismInduction.DOMAIN, MekanismInduction.MODEL_TEXTURE_DIRECTORY + "tesla_bottom.png"); - public static final ResourceLocation TEXTURE_MIDDLE = new ResourceLocation(MekanismInduction.DOMAIN, MekanismInduction.MODEL_TEXTURE_DIRECTORY + "tesla_middle.png"); - public static final ResourceLocation TEXTURE_TOP = new ResourceLocation(MekanismInduction.DOMAIN, MekanismInduction.MODEL_TEXTURE_DIRECTORY + "tesla_top.png"); - public static final ModelTeslaBottom MODEL_BOTTOM = new ModelTeslaBottom(); - public static final ModelTeslaMiddle MODEL_MIDDLE = new ModelTeslaMiddle(); - public static final ModelTeslaTop MODEL_TOP = new ModelTeslaTop(); + public static final ModelTeslaBottom bottom = new ModelTeslaBottom(); + public static final ModelTeslaMiddle middle = new ModelTeslaMiddle(); + public static final ModelTeslaTop top = new ModelTeslaTop(); @Override public void renderTileEntityAt(TileEntity t, double x, double y, double z, float f) @@ -40,16 +39,16 @@ public class RenderTesla extends TileEntitySpecialRenderer switch (t.getBlockMetadata()) { default: - this.bindTexture(TEXTURE_BOTTOM); - MODEL_BOTTOM.render(0.0625f); + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "TeslaBottom.png")); + bottom.render(0.0625f); break; case 1: - this.bindTexture(TEXTURE_MIDDLE); - MODEL_MIDDLE.render(0.0625f); + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "TeslaMiddle.png")); + middle.render(0.0625f); break; case 2: - this.bindTexture(TEXTURE_TOP); - MODEL_TOP.render(0.0625f); + bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "TeslaTop.png")); + top.render(0.0625f); break; } diff --git a/common/mekanism/induction/common/MekanismInduction.java b/common/mekanism/induction/common/MekanismInduction.java index 8c5ee319e..540b52823 100644 --- a/common/mekanism/induction/common/MekanismInduction.java +++ b/common/mekanism/induction/common/MekanismInduction.java @@ -39,12 +39,6 @@ import cpw.mods.fml.common.registry.GameRegistry; @NetworkMod(clientSideRequired = true, serverSideRequired = false) public class MekanismInduction implements IModule { - public static final String MAJOR_VERSION = "@MAJOR@"; - public static final String MINOR_VERSION = "@MINOR@"; - public static final String REVISION_VERSION = "@REVIS@"; - public static final String BUILD_VERSION = "@BUILD@"; - public static final String VERSION = MAJOR_VERSION + "." + MINOR_VERSION + "." + REVISION_VERSION; - @Instance("MekanismInduction") public static MekanismInduction instance; diff --git a/resources/assets/mekanism/render/battery.png b/resources/assets/mekanism/render/battery.png deleted file mode 100644 index c850206e9b6e27d3e248abf5300ce79a7aafedc0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2324 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 I=akR{0C<5z^Z)<= diff --git a/resources/assets/mekanism/render/em_contractor_push.png b/resources/assets/mekanism/render/em_contractor_push.png deleted file mode 100644 index ba10e0e7e312cbdbdc84f9a6cbf8fed01308eec6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2727 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 diff --git a/resources/assets/mekanism/render/insulation.png b/resources/assets/mekanism/render/insulation.png deleted file mode 100644 index 68b25d7eb845406e419e543c47f7a8a7dfe6c9e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9996 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 diff --git a/resources/assets/mekanism/render/multimeter.png b/resources/assets/mekanism/render/multimeter.png deleted file mode 100644 index 869357fc22c85642c79771cb092c9aaa7c9d81b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1848 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