From bbebe4345a039a2aa6d7690a4e19910e1a1b0fab Mon Sep 17 00:00:00 2001 From: sddsd2332 <3207168480@qq.com> Date: Mon, 8 Nov 2021 21:48:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC=E5=88=B09.?= =?UTF-8?q?8.5.020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加了MeKa工具【测试】(基于原子分解机) 添加工厂缺少的动画显示 更新工厂的GUI显示 添加超临界移相器和裂变反应堆的装饰性方块 添加在游戏中显示MEK的logo --- gradle.properties | 6 +- .../mekanism/api/MekanismRecipeHelper.java | 2 + .../java/mekanism/client/ClientProxy.java | 30 +- .../java/mekanism/client/gui/GuiFactory.java | 86 +- .../gui/element/GuiRedstoneControl2.java | 1 + .../java/mekanism/client/jei/MekanismJEI.java | 1 + .../client/model/ModelAtomicDisassembler.java | 1 + .../mekanism/client/model/ModelMekTool.java | 399 ++++++++++ .../client/model/ModelMekaSuitChest.java | 753 ++++++++++++++++++ .../client/model/ModelMekaSuitHelmet.java | 287 +++++++ .../client/render/ModelCustomArmor.java | 20 +- .../render/item/gear/RenderFlameThrower.java | 1 + .../render/item/gear/RenderMekTool.java | 65 ++ .../render/item/gear/RenderMekaSuitChest.java | 43 + .../item/gear/RenderMekaSuitHelmet.java | 48 ++ src/main/java/mekanism/common/Mekanism.java | 5 +- .../java/mekanism/common/MekanismBlocks.java | 4 + .../java/mekanism/common/MekanismItems.java | 47 +- src/main/java/mekanism/common/Upgrade.java | 6 +- .../mekanism/common/block/BlockMachine.java | 14 +- .../common/block/states/BlockStateBasic.java | 29 +- .../block/states/BlockStateMachine.java | 4 +- .../mekanism/common/config/GeneralConfig.java | 34 + .../multipart/MultipartMekanism.java | 10 +- .../inventory/container/ContainerFactory.java | 20 +- .../mekanism/common/item/ItemCanteen.java | 22 +- .../mekanism/common/item/ItemMekTool.java | 473 +++++++++++ .../common/item/ItemMekaSuitChest.java | 231 ++++++ .../common/item/ItemMekaSuitHelmet.java | 72 ++ .../common/item/ItemTierInstaller.java | 2 +- .../mekanism/common/item/ItemUpgrade.java | 2 +- .../tile/TileEntityControlRodAssembly.java | 4 + .../tile/TileEntitySuperchargedCoil.java | 69 ++ .../block/states/BlockStateGenerator.java | 1 + .../blockstates/control_rod_assembly.json | 11 + .../blockstates/fission_fuel_assembly.json | 11 + .../blockstates/fission_reacher_casing.json | 14 + .../mekanism/blockstates/sps_casing.json | 14 + .../blockstates/supercharged_coil.json | 19 + .../gui/factory/guiultimatefactory1.png | Bin 7968 -> 8225 bytes .../gui/factory/guiultimatefactory2.png | Bin 7999 -> 8316 bytes .../gui/nei/guiisotopiccentrifuge2.png | Bin 17477 -> 0 bytes .../resources/assets/mekanism/lang/en_us.lang | 15 + .../resources/assets/mekanism/lang/zh_cn.lang | 35 +- src/main/resources/assets/mekanism/logo.png | Bin 0 -> 84437 bytes .../models/block/control_rod_assembly.json | 401 ++++++++++ .../models/block/fission_fuel_assembly.json | 242 ++++++ .../models/block/supercharged_coil.json | 149 ++++ .../mekanism/models/item/mekasuithelmet.json | 3 + .../assets/mekanism/models/item/mektool.json | 3 + .../assets/mekanism/render/mekasuitchest.png | Bin 0 -> 6063 bytes .../assets/mekanism/render/mekasuithelmet.png | Bin 0 -> 3324 bytes .../assets/mekanism/render/mektool.png | Bin 0 -> 2902 bytes .../combiner/combinerfronton.png.mcmeta | 2 +- .../advancedcombiningfactoryfronton.png | Bin 1844 -> 4130 bytes ...advancedcombiningfactoryfronton.png.mcmeta | 13 +- .../advancedenrichingfactoryfronton.png | Bin 1895 -> 4799 bytes ...advancedenrichingfactoryfronton.png.mcmeta | 14 + .../advancedinjectingfactoryfronton.png | Bin 1954 -> 2992 bytes ...advancedinjectingfactoryfronton.png.mcmeta | 5 + .../advancedpurifyingfactoryfronton.png | Bin 1936 -> 3041 bytes ...advancedpurifyingfactoryfronton.png.mcmeta | 5 + .../advancedsmeltingfactoryfronton.png | Bin 2106 -> 5247 bytes .../advancedsmeltingfactoryfronton.png.mcmeta | 16 +- .../basiccombiningfactoryfronton.png | Bin 1879 -> 4207 bytes .../basiccombiningfactoryfronton.png.mcmeta | 13 +- .../basicenrichingfactoryfronton.png | Bin 1923 -> 5070 bytes .../basicenrichingfactoryfronton.png.mcmeta | 14 + .../basicinjectingfactoryfronton.png | Bin 1959 -> 3072 bytes .../basicinjectingfactoryfronton.png.mcmeta | 5 + .../basicpurifyingfactoryfronton.png | Bin 1957 -> 3121 bytes .../basicpurifyingfactoryfronton.png.mcmeta | 5 + .../smelting/basicsmeltingfactoryfronton.png | Bin 2120 -> 5339 bytes .../basicsmeltingfactoryfronton.png.mcmeta | 16 +- .../elitecombiningfactoryfronton.png | Bin 1852 -> 4256 bytes .../elitecombiningfactoryfronton.png.mcmeta | 13 +- .../eliteenrichingfactoryfronton.png | Bin 1914 -> 5114 bytes .../eliteenrichingfactoryfronton.png.mcmeta | 14 + .../eliteinjectingfactoryfronton.png | Bin 1953 -> 3067 bytes .../eliteinjectingfactoryfronton.png.mcmeta | 5 + .../elitepurifyingfactoryfronton.png | Bin 1947 -> 3116 bytes .../elitepurifyingfactoryfronton.png.mcmeta | 5 + .../smelting/elitesmeltingfactoryfronton.png | Bin 2135 -> 5348 bytes .../elitesmeltingfactoryfronton.png.mcmeta | 16 +- .../ultimatecombiningfactoryfronton.png | Bin 7123 -> 4221 bytes ...ultimatecombiningfactoryfronton.png.mcmeta | 13 +- .../ultimateenrichingfactoryfronton.png | Bin 7144 -> 5105 bytes ...ultimateenrichingfactoryfronton.png.mcmeta | 14 + .../ultimateinjectingfactoryfronton.png | Bin 7231 -> 3983 bytes ...ultimateinjectingfactoryfronton.png.mcmeta | 5 + .../ultimatepurifyingfactoryfronton.png | Bin 7173 -> 4033 bytes ...ultimatepurifyingfactoryfronton.png.mcmeta | 5 + .../ultimatesmeltingfactoryfronton.png | Bin 7720 -> 5391 bytes .../ultimatesmeltingfactoryfronton.png.mcmeta | 16 +- .../textures/blocks/fissionreachercasing.png | Bin 0 -> 503 bytes .../blocks/models/control_rod_assembly.png | Bin 0 -> 5963 bytes .../blocks/models/fuel_rod_assembly.png | Bin 0 -> 5577 bytes .../blocks/models/supercharged_coil.png | Bin 0 -> 2961 bytes .../mekanism/textures/blocks/spscasing.png | Bin 0 -> 232 bytes .../textures/blocks/superheating_element.png | Bin 1424 -> 360 bytes src/main/resources/mcmod.info | 3 + 101 files changed, 3710 insertions(+), 216 deletions(-) create mode 100644 src/main/java/mekanism/client/model/ModelMekTool.java create mode 100644 src/main/java/mekanism/client/model/ModelMekaSuitChest.java create mode 100644 src/main/java/mekanism/client/model/ModelMekaSuitHelmet.java create mode 100644 src/main/java/mekanism/client/render/item/gear/RenderMekTool.java create mode 100644 src/main/java/mekanism/client/render/item/gear/RenderMekaSuitChest.java create mode 100644 src/main/java/mekanism/client/render/item/gear/RenderMekaSuitHelmet.java create mode 100644 src/main/java/mekanism/common/item/ItemMekTool.java create mode 100644 src/main/java/mekanism/common/item/ItemMekaSuitChest.java create mode 100644 src/main/java/mekanism/common/item/ItemMekaSuitHelmet.java create mode 100644 src/main/java/mekanism/common/tile/TileEntityControlRodAssembly.java create mode 100644 src/main/java/mekanism/common/tile/TileEntitySuperchargedCoil.java create mode 100644 src/main/resources/assets/mekanism/blockstates/control_rod_assembly.json create mode 100644 src/main/resources/assets/mekanism/blockstates/fission_fuel_assembly.json create mode 100644 src/main/resources/assets/mekanism/blockstates/fission_reacher_casing.json create mode 100644 src/main/resources/assets/mekanism/blockstates/sps_casing.json create mode 100644 src/main/resources/assets/mekanism/blockstates/supercharged_coil.json delete mode 100644 src/main/resources/assets/mekanism/gui/nei/guiisotopiccentrifuge2.png create mode 100644 src/main/resources/assets/mekanism/logo.png create mode 100644 src/main/resources/assets/mekanism/models/block/control_rod_assembly.json create mode 100644 src/main/resources/assets/mekanism/models/block/fission_fuel_assembly.json create mode 100644 src/main/resources/assets/mekanism/models/block/supercharged_coil.json create mode 100644 src/main/resources/assets/mekanism/models/item/mekasuithelmet.json create mode 100644 src/main/resources/assets/mekanism/models/item/mektool.json create mode 100644 src/main/resources/assets/mekanism/render/mekasuitchest.png create mode 100644 src/main/resources/assets/mekanism/render/mekasuithelmet.png create mode 100644 src/main/resources/assets/mekanism/render/mektool.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/advanced/enriching/advancedenrichingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/advanced/injecting/advancedinjectingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/advanced/purifying/advancedpurifyingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/basic/enriching/basicenrichingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/basic/injecting/basicinjectingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/basic/purifying/basicpurifyingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/elite/enriching/eliteenrichingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/elite/injecting/eliteinjectingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/elite/purifying/elitepurifyingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/enriching/ultimateenrichingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/injecting/ultimateinjectingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/purifying/ultimatepurifyingfactoryfronton.png.mcmeta create mode 100644 src/main/resources/assets/mekanism/textures/blocks/fissionreachercasing.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/control_rod_assembly.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/fuel_rod_assembly.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/models/supercharged_coil.png create mode 100644 src/main/resources/assets/mekanism/textures/blocks/spscasing.png diff --git a/gradle.properties b/gradle.properties index 6f5790c4..81c66934 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,8 +1,8 @@ minecraft_version=1.12.2 mappings_version=stable_39 forge_version=14.23.5.2847 -mod_version=9.8.4 -homebaked=010 +mod_version=9.8.5 +homebaked=020-sddsd2332 mcmp_version=2.5.3 jei_version=4.15.0.289 @@ -18,4 +18,4 @@ crafttweaker_version=4.1.19.548 computercraft_version=1.80pr1 top_version=1.12-1.4.28-17 ae2_version=rv6-stable-5 -jb_annotations=17.0.0 \ No newline at end of file +jb_annotations=17.0.0 diff --git a/src/main/java/mekanism/api/MekanismRecipeHelper.java b/src/main/java/mekanism/api/MekanismRecipeHelper.java index 3d17a884..62e5a895 100644 --- a/src/main/java/mekanism/api/MekanismRecipeHelper.java +++ b/src/main/java/mekanism/api/MekanismRecipeHelper.java @@ -172,4 +172,6 @@ void addPRCRecipe(ItemStack inputSolid, FluidStack inputFluid, GasStack inputGas void addSolarNeutronRecipe(GasStack inputGas, GasStack outputGas); void addIsotopicRecipe(GasStack inputGas, GasStack outputGas); + + // void addSPSRecipe(GasStack inputGas, GasStack outputGas); } \ No newline at end of file diff --git a/src/main/java/mekanism/client/ClientProxy.java b/src/main/java/mekanism/client/ClientProxy.java index e34ba877..ca7b0612 100644 --- a/src/main/java/mekanism/client/ClientProxy.java +++ b/src/main/java/mekanism/client/ClientProxy.java @@ -34,13 +34,7 @@ import mekanism.client.render.item.ItemLayerWrapper; import mekanism.client.render.item.RenderEnergyCubeItem; import mekanism.client.render.item.basicblock.RenderBasicBlockItem; -import mekanism.client.render.item.gear.RenderArmoredJetpack; -import mekanism.client.render.item.gear.RenderAtomicDisassembler; -import mekanism.client.render.item.gear.RenderFlameThrower; -import mekanism.client.render.item.gear.RenderFreeRunners; -import mekanism.client.render.item.gear.RenderGasMask; -import mekanism.client.render.item.gear.RenderJetpack; -import mekanism.client.render.item.gear.RenderScubaTank; +import mekanism.client.render.item.gear.*; import mekanism.client.render.item.machine.RenderMachineItem; import mekanism.client.render.obj.MekanismOBJLoader; import mekanism.client.render.tileentity.*; @@ -237,6 +231,7 @@ public void registerItemRenders() { registerItemRender(MekanismItems.AnchorUpgrade); registerItemRender(MekanismItems.Robit); registerItemRender(MekanismItems.AtomicDisassembler); + registerItemRender(MekanismItems.MekTool); registerItemRender(MekanismItems.EnrichedAlloy); registerItemRender(MekanismItems.ReinforcedAlloy); registerItemRender(MekanismItems.AtomicAlloy); @@ -275,6 +270,9 @@ public void registerItemRenders() { registerItemRender(MekanismItems.TierInstaller); registerItemRender(MekanismItems.OtherDust); + // registerItemRender(MekanismItems.MekaSuitHelmet); + // registerItemRender(MekanismItems.MekaSuitChest); + ModelBakery.registerItemVariants(MekanismItems.WalkieTalkie, ItemWalkieTalkie.OFF_MODEL); for (int i = 1; i <= 9; i++) { @@ -289,12 +287,17 @@ public void registerItemRenders() { MekanismItems.ScubaTank.setTileEntityItemStackRenderer(new RenderScubaTank()); MekanismItems.FreeRunners.setTileEntityItemStackRenderer(new RenderFreeRunners()); MekanismItems.AtomicDisassembler.setTileEntityItemStackRenderer(new RenderAtomicDisassembler()); + MekanismItems.MekTool.setTileEntityItemStackRenderer(new RenderMekTool()); MekanismItems.Flamethrower.setTileEntityItemStackRenderer(new RenderFlameThrower()); Item.getItemFromBlock(MekanismBlocks.EnergyCube).setTileEntityItemStackRenderer(new RenderEnergyCubeItem()); Item.getItemFromBlock(MekanismBlocks.MachineBlock).setTileEntityItemStackRenderer(new RenderMachineItem()); Item.getItemFromBlock(MekanismBlocks.MachineBlock2).setTileEntityItemStackRenderer(new RenderMachineItem()); Item.getItemFromBlock(MekanismBlocks.MachineBlock3).setTileEntityItemStackRenderer(new RenderMachineItem()); Item.getItemFromBlock(MekanismBlocks.BasicBlock2).setTileEntityItemStackRenderer(new RenderBasicBlockItem()); + Item.getItemFromBlock(MekanismBlocks.BasicBlock3).setTileEntityItemStackRenderer(new RenderBasicBlockItem()); + + // MekanismItems.MekaSuitHelmet.setTileEntityItemStackRenderer(new RenderMekaSuitHelmet()); + // MekanismItems.MekaSuitChest.setTileEntityItemStackRenderer(new RenderMekaSuitChest()); } private ModelResourceLocation getInventoryMRL(String type) { @@ -308,6 +311,7 @@ public void registerBlockRenders() { ModelLoader.setCustomStateMapper(MekanismBlocks.MachineBlock3, machineMapper); ModelLoader.setCustomStateMapper(MekanismBlocks.BasicBlock, basicMapper); ModelLoader.setCustomStateMapper(MekanismBlocks.BasicBlock2, basicMapper); + ModelLoader.setCustomStateMapper(MekanismBlocks.BasicBlock3, basicMapper); ModelLoader.setCustomStateMapper(MekanismBlocks.PlasticBlock, plasticMapper); ModelLoader.setCustomStateMapper(MekanismBlocks.SlickPlasticBlock, plasticMapper); ModelLoader.setCustomStateMapper(MekanismBlocks.GlowPlasticBlock, plasticMapper); @@ -515,6 +519,7 @@ public void registerBlockRenders() { ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(MekanismBlocks.BasicBlock), basicMesher); ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(MekanismBlocks.BasicBlock2), basicMesher); + ModelLoader.setCustomMeshDefinition(Item.getItemFromBlock(MekanismBlocks.BasicBlock3), basicMesher); ItemMeshDefinition transmitterMesher = stack -> { TransmitterType type = TransmitterType.get(stack.getItemDamage()); @@ -764,6 +769,8 @@ public GuiScreen getClientGui(int ID, EntityPlayer player, World world, BlockPos return new GuiIsotopicCentrifuge(player.inventory, (TileEntityIsotopicCentrifuge) tileEntity); case 62: return new GuiAntiprotonicNucleosynthesizer(player.inventory, (TileEntityAntiprotonicNucleosynthesizer) tileEntity); + // case 63: + // return new GuiSPS(player.inventory, (TileEntitySPSCasing) tileEntity); } return null; } @@ -890,9 +897,18 @@ public void onModelBake(ModelBakeEvent event) { ModelResourceLocation AtomicDisassemblerRL = getInventoryMRL("AtomicDisassembler"); modelRegistry.putObject(AtomicDisassemblerRL, RenderAtomicDisassembler.model = new ItemLayerWrapper(modelRegistry.getObject(AtomicDisassemblerRL))); + ModelResourceLocation MekToolRL = getInventoryMRL("MekTool"); + modelRegistry.putObject(MekToolRL, RenderMekTool.model = new ItemLayerWrapper(modelRegistry.getObject(MekToolRL))); + ModelResourceLocation FlamethrowerRL = getInventoryMRL("Flamethrower"); modelRegistry.putObject(FlamethrowerRL, RenderFlameThrower.model = new ItemLayerWrapper(modelRegistry.getObject(FlamethrowerRL))); + ModelResourceLocation MekaSuitHelmetRL = getInventoryMRL("MekaSuitHelmet"); + modelRegistry.putObject(MekaSuitHelmetRL, RenderMekaSuitHelmet.model = new ItemLayerWrapper(modelRegistry.getObject(MekaSuitHelmetRL))); + + ModelResourceLocation MekaSuitChestRL = getInventoryMRL("MekaSuitChest"); + modelRegistry.putObject(MekaSuitChestRL, RenderMekaSuitChest.model = new ItemLayerWrapper(modelRegistry.getObject(MekaSuitChestRL))); + machineModelBake(modelRegistry, "digital_miner", MachineType.DIGITAL_MINER); machineModelBake(modelRegistry, "solar_neutron_activator", MachineType.SOLAR_NEUTRON_ACTIVATOR); machineModelBake(modelRegistry, "chemical_dissolution_chamber", MachineType.CHEMICAL_DISSOLUTION_CHAMBER); diff --git a/src/main/java/mekanism/client/gui/GuiFactory.java b/src/main/java/mekanism/client/gui/GuiFactory.java index 1f2bf858..c771fdc6 100644 --- a/src/main/java/mekanism/client/gui/GuiFactory.java +++ b/src/main/java/mekanism/client/gui/GuiFactory.java @@ -62,17 +62,7 @@ public GuiFactory(InventoryPlayer inventory, TileEntityFactory tile) { addGuiElement(new GuiUpgradeTab2(this, tileEntity, resource)); addGuiElement(new GuiRedstoneControl2(this, tileEntity, resource)); addGuiElement(new GuiRecipeType2(this, tileEntity, resource)); - }else if (tile.tier == FactoryTier.BASIC ) { - addGuiElement(new GuiSecurityTab(this, tileEntity, resource)); - addGuiElement(new GuiUpgradeTab(this, tileEntity, resource)); - addGuiElement(new GuiRedstoneControl(this, tileEntity, resource)); - addGuiElement(new GuiRecipeType(this, tileEntity, resource)); - }else if (tile.tier == FactoryTier.ADVANCED ) { - addGuiElement(new GuiSecurityTab(this, tileEntity, resource)); - addGuiElement(new GuiUpgradeTab(this, tileEntity, resource)); - addGuiElement(new GuiRedstoneControl(this, tileEntity, resource)); - addGuiElement(new GuiRecipeType(this, tileEntity, resource)); - }else if (tile.tier == FactoryTier.ELITE ) { + }else if (tile.tier == FactoryTier.BASIC || tile.tier == FactoryTier.ADVANCED||tile.tier == FactoryTier.ELITE) { addGuiElement(new GuiSecurityTab(this, tileEntity, resource)); addGuiElement(new GuiUpgradeTab(this, tileEntity, resource)); addGuiElement(new GuiRedstoneControl(this, tileEntity, resource)); @@ -113,7 +103,7 @@ protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { fontRenderer.drawString(LangUtils.localize("container.inventory"), 8, (ySize - 93) + 2, 0x404040); int xAxis = mouseX - guiLeft; int yAxis = mouseY - guiTop; - if (tileEntity.tier == FactoryTier.BASIC) { + if (tileEntity.tier == FactoryTier.BASIC || tileEntity.tier == FactoryTier.ADVANCED || tileEntity.tier == FactoryTier.ELITE) { if (xAxis >= 165 && xAxis <= 169 && yAxis >= 17 && yAxis <= 69) { displayTooltip(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy(), tileEntity.getMaxEnergy()), xAxis, yAxis); } else if (xAxis >= 8 && xAxis <= 168 && yAxis >= 78 && yAxis <= 83) { @@ -127,34 +117,6 @@ protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { } super.drawGuiContainerForegroundLayer(mouseX, mouseY); } - if (tileEntity.tier == FactoryTier.ADVANCED) { - if (xAxis >= 165 && xAxis <= 169 && yAxis >= 17 && yAxis <= 69) { - displayTooltip(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy(), tileEntity.getMaxEnergy()), xAxis, yAxis); - } else if (xAxis >= 8 && xAxis <= 168 && yAxis >= 78 && yAxis <= 83) { - if (tileEntity.getRecipeType().getFuelType() == MachineFuelType.ADVANCED) { - GasStack gasStack = tileEntity.gasTank.getGas(); - displayTooltip(gasStack != null ? gasStack.getGas().getLocalizedName() + ": " + tileEntity.gasTank.getStored() : LangUtils.localize("gui.none"), xAxis, yAxis); - } else if (tileEntity.getRecipeType() == RecipeType.INFUSING) { - InfuseType type = tileEntity.infuseStored.getType(); - displayTooltip(type != null ? type.getLocalizedName() + ": " + tileEntity.infuseStored.getAmount() : LangUtils.localize("gui.empty"), xAxis, yAxis); - } - } - super.drawGuiContainerForegroundLayer(mouseX, mouseY); - } - if (tileEntity.tier == FactoryTier.ELITE) { - if (xAxis >= 165 && xAxis <= 169 && yAxis >= 17 && yAxis <= 69) { - displayTooltip(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy(), tileEntity.getMaxEnergy()), xAxis, yAxis); - } else if (xAxis >= 8 && xAxis <= 168 && yAxis >= 78 && yAxis <= 83) { - if (tileEntity.getRecipeType().getFuelType() == MachineFuelType.ADVANCED) { - GasStack gasStack = tileEntity.gasTank.getGas(); - displayTooltip(gasStack != null ? gasStack.getGas().getLocalizedName() + ": " + tileEntity.gasTank.getStored() : LangUtils.localize("gui.none"), xAxis, yAxis); - } else if (tileEntity.getRecipeType() == RecipeType.INFUSING) { - InfuseType type = tileEntity.infuseStored.getType(); - displayTooltip(type != null ? type.getLocalizedName() + ": " + tileEntity.infuseStored.getAmount() : LangUtils.localize("gui.empty"), xAxis, yAxis); - } - } - super.drawGuiContainerForegroundLayer(mouseX, mouseY); - } if (tileEntity.tier == FactoryTier.ULTIMATE) { if (xAxis >= 199 && xAxis <= 203 && yAxis >= 17 && yAxis <= 69) { displayTooltip(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy(), tileEntity.getMaxEnergy()), xAxis, yAxis); @@ -177,11 +139,7 @@ protected void drawGuiContainerBackgroundLayer(int xAxis, int yAxis) { int displayInt = tileEntity.getScaledEnergyLevel(52); if (tileEntity.tier == FactoryTier.ULTIMATE) { drawTexturedModalRect(guiLeft + 199, guiTop + 17 + 52 - displayInt, 210, 52 - displayInt, 4, displayInt); - }else if (tileEntity.tier == FactoryTier.BASIC) { - drawTexturedModalRect(guiLeft + 165, guiTop + 17 + 52 - displayInt, 176, 52 - displayInt, 4, displayInt); - }else if (tileEntity.tier == FactoryTier.ADVANCED) { - drawTexturedModalRect(guiLeft + 165, guiTop + 17 + 52 - displayInt, 176, 52 - displayInt, 4, displayInt); - }else if (tileEntity.tier == FactoryTier.ELITE) { + }else if (tileEntity.tier == FactoryTier.BASIC || tileEntity.tier == FactoryTier.ADVANCED || tileEntity.tier == FactoryTier.ELITE) { drawTexturedModalRect(guiLeft + 165, guiTop + 17 + 52 - displayInt, 176, 52 - displayInt, 4, displayInt); } int xOffset = tileEntity.tier == FactoryTier.BASIC ? 59 : tileEntity.tier == FactoryTier.ADVANCED ? 39 : tileEntity.tier == FactoryTier.ULTIMATE ? 31 : 33; @@ -190,11 +148,7 @@ protected void drawGuiContainerBackgroundLayer(int xAxis, int yAxis) { for (int i = 0; i < tileEntity.tier.processes; i++) { int xPos = xOffset + (i * xDistance); displayInt = tileEntity.getScaledProgress(20, i); - if (tileEntity.tier == FactoryTier.BASIC) { - drawTexturedModalRect(guiLeft + xPos, guiTop + 33, 176, 52, 8, displayInt); - }else if (tileEntity.tier == FactoryTier.ADVANCED) { - drawTexturedModalRect(guiLeft + xPos, guiTop + 33, 176, 52, 8, displayInt); - }else if (tileEntity.tier == FactoryTier.ELITE) { + if (tileEntity.tier == FactoryTier.BASIC || tileEntity.tier == FactoryTier.ADVANCED ||tileEntity.tier == FactoryTier.ELITE) { drawTexturedModalRect(guiLeft + xPos, guiTop + 33, 176, 52, 8, displayInt); }else if (tileEntity.tier == FactoryTier.ULTIMATE) { drawTexturedModalRect(guiLeft + xPos, guiTop + 33, 210, 52, 8, displayInt); @@ -208,11 +162,7 @@ protected void drawGuiContainerBackgroundLayer(int xAxis, int yAxis) { MekanismRenderer.color(gas); if (tileEntity.tier == FactoryTier.ULTIMATE) { displayGauge(8, 78, tileEntity.getScaledGasLevel(194), 5, gas.getGas().getSprite()); - }else if (tileEntity.tier == FactoryTier.BASIC) { - displayGauge(8, 78, tileEntity.getScaledGasLevel(160), 5, gas.getGas().getSprite()); - }else if (tileEntity.tier == FactoryTier.ADVANCED) { - displayGauge(8, 78, tileEntity.getScaledGasLevel(160), 5, gas.getGas().getSprite()); - }else if (tileEntity.tier == FactoryTier.ELITE) { + }else if (tileEntity.tier == FactoryTier.BASIC || tileEntity.tier == FactoryTier.ADVANCED ||tileEntity.tier == FactoryTier.ELITE) { displayGauge(8, 78, tileEntity.getScaledGasLevel(160), 5, gas.getGas().getSprite()); } MekanismRenderer.resetColor(); @@ -222,11 +172,7 @@ protected void drawGuiContainerBackgroundLayer(int xAxis, int yAxis) { if (tileEntity.getScaledInfuseLevel(160) > 0) { if (tileEntity.tier == FactoryTier.ULTIMATE) { displayGauge(8, 78, tileEntity.getScaledInfuseLevel(194), 5, tileEntity.infuseStored.getType().sprite); - }else if (tileEntity.tier == FactoryTier.BASIC) { - displayGauge(8, 78, tileEntity.getScaledInfuseLevel(160), 5, tileEntity.infuseStored.getType().sprite); - }else if (tileEntity.tier == FactoryTier.ADVANCED) { - displayGauge(8, 78, tileEntity.getScaledInfuseLevel(160), 5, tileEntity.infuseStored.getType().sprite); - }else if (tileEntity.tier == FactoryTier.ELITE) { + }else if (tileEntity.tier == FactoryTier.BASIC || tileEntity.tier == FactoryTier.ADVANCED ||tileEntity.tier == FactoryTier.ELITE ) { displayGauge(8, 78, tileEntity.getScaledInfuseLevel(160), 5, tileEntity.infuseStored.getType().sprite); } @@ -247,7 +193,7 @@ protected void mouseClicked(int x, int y, int button) throws IOException { if (button == 0 || Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { int xAxis = x - guiLeft; int yAxis = y - guiTop; - if (tileEntity.tier == FactoryTier.BASIC) { + if (tileEntity.tier == FactoryTier.BASIC || tileEntity.tier == FactoryTier.ADVANCED ||tileEntity.tier == FactoryTier.ELITE) { if (xAxis > 8 && xAxis < 168 && yAxis > 78 && yAxis < 83) { ItemStack stack = mc.player.inventory.getItemStack(); if (!stack.isEmpty() && stack.getItem() instanceof ItemGaugeDropper) { @@ -256,24 +202,6 @@ protected void mouseClicked(int x, int y, int button) throws IOException { SoundHandler.playSound(SoundEvents.UI_BUTTON_CLICK); } } - }else if(tileEntity.tier == FactoryTier.ADVANCED) { - if (xAxis > 8 && xAxis < 168 && yAxis > 78 && yAxis < 83) { - ItemStack stack = mc.player.inventory.getItemStack(); - if (!stack.isEmpty() && stack.getItem() instanceof ItemGaugeDropper) { - TileNetworkList data = TileNetworkList.withContents(1); - Mekanism.packetHandler.sendToServer(new TileEntityMessage(tileEntity, data)); - SoundHandler.playSound(SoundEvents.UI_BUTTON_CLICK); - } - } - }else if(tileEntity.tier == FactoryTier.ELITE) { - if (xAxis > 8 && xAxis < 168 && yAxis > 78 && yAxis < 83) { - ItemStack stack = mc.player.inventory.getItemStack(); - if (!stack.isEmpty() && stack.getItem() instanceof ItemGaugeDropper) { - TileNetworkList data = TileNetworkList.withContents(1); - Mekanism.packetHandler.sendToServer(new TileEntityMessage(tileEntity, data)); - SoundHandler.playSound(SoundEvents.UI_BUTTON_CLICK); - } - } }else if(tileEntity.tier == FactoryTier.ULTIMATE) { if (xAxis > 8 && xAxis < 202 && yAxis > 78 && yAxis < 83) { ItemStack stack = mc.player.inventory.getItemStack(); diff --git a/src/main/java/mekanism/client/gui/element/GuiRedstoneControl2.java b/src/main/java/mekanism/client/gui/element/GuiRedstoneControl2.java index dedd863d..0efe33f1 100644 --- a/src/main/java/mekanism/client/gui/element/GuiRedstoneControl2.java +++ b/src/main/java/mekanism/client/gui/element/GuiRedstoneControl2.java @@ -71,4 +71,5 @@ public void mouseClicked(int xAxis, int yAxis, int button) { Mekanism.packetHandler.sendToServer(new RedstoneControlMessage(Coord4D.get(tileEntity), RedstoneControl.values()[ordinalToSet])); } } + } \ No newline at end of file diff --git a/src/main/java/mekanism/client/jei/MekanismJEI.java b/src/main/java/mekanism/client/jei/MekanismJEI.java index 6f67c430..293e07aa 100644 --- a/src/main/java/mekanism/client/jei/MekanismJEI.java +++ b/src/main/java/mekanism/client/jei/MekanismJEI.java @@ -85,6 +85,7 @@ public void registerItemSubtypes(ISubtypeRegistry registry) { registry.registerSubtypeInterpreter(Item.getItemFromBlock(MekanismBlocks.MachineBlock3), NBT_INTERPRETER); registry.registerSubtypeInterpreter(Item.getItemFromBlock(MekanismBlocks.BasicBlock), NBT_INTERPRETER); registry.registerSubtypeInterpreter(Item.getItemFromBlock(MekanismBlocks.BasicBlock2), NBT_INTERPRETER); + registry.registerSubtypeInterpreter(Item.getItemFromBlock(MekanismBlocks.BasicBlock3), NBT_INTERPRETER); registry.registerSubtypeInterpreter(Item.getItemFromBlock(MekanismBlocks.GasTank), NBT_INTERPRETER); registry.registerSubtypeInterpreter(Item.getItemFromBlock(MekanismBlocks.CardboardBox), NBT_INTERPRETER); registry.registerSubtypeInterpreter(Item.getItemFromBlock(MekanismBlocks.Transmitter), NBT_INTERPRETER); diff --git a/src/main/java/mekanism/client/model/ModelAtomicDisassembler.java b/src/main/java/mekanism/client/model/ModelAtomicDisassembler.java index d6a847d5..2f52e874 100644 --- a/src/main/java/mekanism/client/model/ModelAtomicDisassembler.java +++ b/src/main/java/mekanism/client/model/ModelAtomicDisassembler.java @@ -34,6 +34,7 @@ public ModelAtomicDisassembler() { Shape1.setRotationPoint(0F, 0F, 0F); Shape1.setTextureSize(64, 32); Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); Shape2 = new ModelRenderer(this, 34, 9); Shape2.addBox(-0.5F, -3.5F, -3.5F, 2, 5, 2); diff --git a/src/main/java/mekanism/client/model/ModelMekTool.java b/src/main/java/mekanism/client/model/ModelMekTool.java new file mode 100644 index 00000000..f205609f --- /dev/null +++ b/src/main/java/mekanism/client/model/ModelMekTool.java @@ -0,0 +1,399 @@ +package mekanism.client.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; + +public class ModelMekTool extends ModelBase { + ModelRenderer bone; + ModelRenderer bone_r1; + ModelRenderer bone2; + ModelRenderer bone2_r1; + ModelRenderer bone3; + ModelRenderer bone3_r1; + ModelRenderer bone4; + ModelRenderer bone4_r1; + ModelRenderer bone5; + ModelRenderer bone5_r1; + ModelRenderer bone6; + ModelRenderer cube_r1; + ModelRenderer cube_r1_r1; + ModelRenderer bone7; + ModelRenderer cube_r2; + ModelRenderer cube_r2_r1; + ModelRenderer bone8; + ModelRenderer cube_r3; + ModelRenderer cube_r3_r1; + ModelRenderer bone9; + ModelRenderer cube_r4; + ModelRenderer cube_r4_r1; + ModelRenderer bone10; + ModelRenderer bone10_r1; + ModelRenderer bone11; + ModelRenderer bone11_r1; + ModelRenderer bone12; + ModelRenderer cube_r5; + ModelRenderer cube_r5_r1; + ModelRenderer bone13; + ModelRenderer cube_r6; + ModelRenderer cube_r6_r1; + ModelRenderer bone14; + ModelRenderer cube_r7; + ModelRenderer cube_r7_r1; + ModelRenderer bone15; + ModelRenderer cube_r8; + ModelRenderer cube_r8_r1; + ModelRenderer bone16; + ModelRenderer bone16_r1; + ModelRenderer bone17; + ModelRenderer bone17_r1; + ModelRenderer bone18; + ModelRenderer bone18_r1; + + public ModelMekTool() { + textureWidth = 64; + textureHeight = 64; + + bone = new ModelRenderer(this); + bone.setRotationPoint(0.0F, 24.0F, 0.0F); + bone.setTextureSize(64, 64); + bone.mirror = true; + + bone_r1 = new ModelRenderer(this,0,17); + bone_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + bone.addChild(bone_r1); + setRotationAngle(bone_r1, -3.1416F, 0.0F, 3.1416F); + bone_r1.addBox(-2.0F, -6.0F, 3.0F, 3, 5, 4); + bone_r1.setTextureSize(64, 64); + bone_r1.mirror = true; + + bone2 = new ModelRenderer(this); + bone2.setRotationPoint(1.0F, 23.0F, 1.0F); + bone2.setTextureSize(64, 64); + bone2.mirror = true; + + + bone2_r1 = new ModelRenderer(this,18,7); + bone2_r1.setRotationPoint(-1.0F, 1.0F, -1.0F); + bone2.addChild(bone2_r1); + setRotationAngle(bone2_r1, -3.1416F, 0.0F, 3.1416F); + bone2_r1.addBox(-1.0F, -4.0F, 4.0F, 3, 2, 4); + bone2_r1.setTextureSize(64, 64); + bone2_r1.mirror = true; + + bone3 = new ModelRenderer(this); + bone3.setRotationPoint(0.0F, 24.0F, 0.0F); + bone3.setTextureSize(64, 64); + bone3.mirror = true; + + + bone3_r1 = new ModelRenderer(this,0,0); + bone3_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + bone3.addChild(bone3_r1); + setRotationAngle(bone3_r1, -3.1416F, 0.0F, 3.1416F); + bone3_r1.addBox(0.0F, -7.0F, 2.0F, 2, 3, 1); + bone3_r1.setTextureSize(64, 64); + bone3_r1.mirror = true; + + bone4 = new ModelRenderer(this); + bone4.setRotationPoint(0.0F, 24.0F, 0.0F); + bone4.setTextureSize(64, 64); + bone4.mirror = true; + + + bone4_r1 = new ModelRenderer(this,0,8); + bone4_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + bone4.addChild(bone4_r1); + setRotationAngle(bone4_r1, -3.1416F, 0.0F, 3.1416F); + bone4_r1.addBox(0.0F, -7.0F, 3.0F, 2, 2, 1); + bone4_r1.setTextureSize(64, 64); + bone4_r1.mirror = true; + + bone5 = new ModelRenderer(this); + bone5.setRotationPoint(0.0F, 24.0F, 0.0F); + bone5.setTextureSize(64, 64); + bone5.mirror = true; + + + bone5_r1 = new ModelRenderer(this,10,17); + bone5_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + bone5.addChild(bone5_r1); + setRotationAngle(bone5_r1, -3.1416F, 0.0F, 3.1416F); + bone5_r1.addBox(0.0F, -6.0F, 4.0F, 2, 1, 2); + bone5_r1.setTextureSize(64, 64); + bone5_r1.mirror = true; + + bone6 = new ModelRenderer(this); + bone6.setRotationPoint(0.0F, 24.0F, 0.0F); + bone6.setTextureSize(64, 64); + bone6.mirror = true; + + + cube_r1 = new ModelRenderer(this); + cube_r1.setRotationPoint(0.0F, -1.0F, -1.0F); + bone6.addChild(cube_r1); + setRotationAngle(cube_r1, 0.2443F, 0.0F, 0.0F); + cube_r1.setTextureSize(64, 64); + cube_r1.mirror = true; + + + cube_r1_r1 = new ModelRenderer(this,14, 17); + cube_r1_r1.setRotationPoint(0.0F, 1.0F, 1.0F); + cube_r1.addChild(cube_r1_r1); + setRotationAngle(cube_r1_r1, -2.653F, 0.0F, -3.1416F); + cube_r1_r1.addBox(-1.0F, -5.0F, 4.0F, 2, 2, 5); + cube_r1_r1.setTextureSize(64, 64); + cube_r1_r1.mirror = true; + + bone7 = new ModelRenderer(this); + bone7.setRotationPoint(0.0F, 24.0F, 0.0F); + bone7.setTextureSize(64, 64); + bone7.mirror = true; + + + cube_r2 = new ModelRenderer(this); + cube_r2.setRotationPoint(0.0F, -1.0F, -1.0F); + bone7.addChild(cube_r2); + setRotationAngle(cube_r2, 0.6981F, 0.0F, 0.0F); + cube_r2.setTextureSize(64, 64); + cube_r2.mirror = true; + + + cube_r2_r1 = new ModelRenderer(this,12, 24); + cube_r2_r1.setRotationPoint(0.0F, 1.0F, 1.0F); + cube_r2.addChild(cube_r2_r1); + setRotationAngle(cube_r2_r1, -1.7454F, 0.0F, -3.1416F); + cube_r2_r1.addBox(-2.15F, -4.0F, 4.0F, 2, 4, 2); + cube_r2_r1.setTextureSize(64, 64); + cube_r2_r1.mirror = true; + + bone8 = new ModelRenderer(this); + bone8.setRotationPoint(0.0F, 24.0F, 0.0F); + bone8.setTextureSize(64, 64);; + bone8.mirror = true; + + cube_r3 = new ModelRenderer(this); + cube_r3.setRotationPoint(0.0F, -1.0F, -1.0F); + bone8.addChild(cube_r3); + setRotationAngle(cube_r3, 0.6981F, 0.0F, 0.0F); + bone8.setTextureSize(64, 64); + bone8.mirror = true; + + cube_r3_r1 = new ModelRenderer(this,21, 0); + cube_r3_r1.setRotationPoint(0.0F, 1.0F, 1.0F); + cube_r3.addChild(cube_r3_r1); + setRotationAngle(cube_r3_r1, -1.7454F, 0.0F, -3.1416F); + cube_r3_r1.addBox(-3.15F, -6.0F, 3.5F, 4, 2, 3); + cube_r3.setTextureSize(64, 64); + cube_r3.mirror = true; + + bone9 = new ModelRenderer(this); + bone9.setRotationPoint(0.0F, 24.0F, 0.0F); + bone9.setTextureSize(64, 64); + bone9.mirror = true; + + + cube_r4 = new ModelRenderer(this); + cube_r4.setRotationPoint(0.0F, -1.0F, 0.0F); + bone9.addChild(cube_r4); + setRotationAngle(cube_r4, -0.2182F, 0.0F, 0.0F); + cube_r4.setTextureSize(64, 64); + cube_r4.mirror = true; + + + cube_r4_r1 = new ModelRenderer(this,13, 0); + cube_r4_r1.setRotationPoint(0.0F, 1.0F, 0.0F); + cube_r4.addChild(cube_r4_r1); + setRotationAngle(cube_r4_r1, 2.7052F, 0.0F, 3.1416F); + cube_r4_r1.addBox(-1.5F, -2.665F, -3.0F, 1, 1, 6); + cube_r4_r1.setTextureSize(64, 64); + cube_r4_r1.mirror = true; + + bone10 = new ModelRenderer(this); + bone10.setRotationPoint(0.0F, 24.0F, 0.0F); + bone10.setTextureSize(64, 64); + bone10.mirror = true; + + + bone10_r1 = new ModelRenderer(this,23, 15); + bone10_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + bone10.addChild(bone10_r1); + setRotationAngle(bone10_r1, -3.1416F, 0.0F, 3.1416F); + bone10_r1.addBox(-3.0F, -6.0F, 1.0F, 4, 4, 2); + bone10_r1.setTextureSize(64, 64); + bone10_r1.mirror = true; + + bone11 = new ModelRenderer(this); + bone11.setRotationPoint(0.0F, 24.0F, 0.0F); + bone11.setTextureSize(64, 64); + bone11.mirror = true; + + + bone11_r1 = new ModelRenderer(this,0,4); + bone11_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + bone11.addChild(bone11_r1); + setRotationAngle(bone11_r1, -3.1416F, 0.0F, 3.1416F); + bone11_r1.addBox(-1.5F, -4.5F, -1.0F, 1, 1, 2,0.1F); + bone11_r1.setTextureSize(64, 64); + bone11_r1.mirror = true; + + bone12 = new ModelRenderer(this); + bone12.setRotationPoint(0.0F, 24.0F, 0.0F); + bone12.setTextureSize(64, 64); + bone12.mirror = true; + + + cube_r5 = new ModelRenderer(this); + cube_r5.setRotationPoint(0.0F, 0.0F, 0.0F); + bone12.addChild(cube_r5); + setRotationAngle(cube_r5, 0.096F, 0.0175F, 0.0F); + bone12.setTextureSize(64, 64); + bone12.mirror = true; + + + cube_r5_r1 = new ModelRenderer(this,9, 9); + cube_r5_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + cube_r5.addChild(cube_r5_r1); + setRotationAngle(cube_r5_r1, -2.9496F, 0.0F, -3.1416F); + cube_r5_r1.addBox(0.0F, -5.85F, -5.4F, 1, 1, 7); + cube_r5_r1.setTextureSize(64, 64); + cube_r5_r1.mirror = true; + + bone13 = new ModelRenderer(this); + bone13.setRotationPoint(-3.0F, 24.0F, 0.0F); + bone13.setTextureSize(64, 64); + bone13.mirror = true; + + + cube_r6 = new ModelRenderer(this); + cube_r6.setRotationPoint(3.0F, 0.0F, 0.0F); + bone13.addChild(cube_r6); + setRotationAngle(cube_r6, 0.096F, -0.0175F, 0.0F); + bone13.setTextureSize(64, 64); + bone13.mirror = true; + + + cube_r6_r1 = new ModelRenderer(this,0, 8); + cube_r6_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + cube_r6.addChild(cube_r6_r1); + setRotationAngle(cube_r6_r1, -2.9496F, 0.0F, -3.1416F); + cube_r6_r1.addBox(-3.0F, -5.85F, -5.4F, 1, 1, 7); + cube_r6_r1.setTextureSize(64, 64); + cube_r6_r1.mirror = true; + + bone14 = new ModelRenderer(this); + bone14.setRotationPoint(0.0F, 24.0F, 0.0F); + bone14.setTextureSize(64, 64); + bone14.mirror = true; + + + cube_r7 = new ModelRenderer(this); + cube_r7.setRotationPoint(0.0F, 0.0F, 0.0F); + bone14.addChild(cube_r7); + setRotationAngle(cube_r7, -0.1004F, 0.0F, 0.0F); + cube_r7.setTextureSize(64, 64); + cube_r7.mirror = true; + + + cube_r7_r1 = new ModelRenderer(this,0,0); + cube_r7_r1.setRotationPoint(0.0F, 0.0F, 0.0F); + cube_r7.addChild(cube_r7_r1); + setRotationAngle(cube_r7_r1, 2.9408F, 0.0F, 3.1416F); + cube_r7_r1.addBox(-2.5F, -3.11F, -6.0F, 3, 1, 7); + cube_r7_r1.setTextureSize(64, 64); + cube_r7_r1.mirror = true; + + bone15 = new ModelRenderer(this); + bone15.setRotationPoint(0.0F, 24.0F, 0.0F); + bone15.setTextureSize(64, 64); + bone15.mirror = true; + + + cube_r8 = new ModelRenderer(this); + cube_r8.setRotationPoint(0.0F, -1.0F, 0.0F); + bone15.addChild(cube_r8); + setRotationAngle(cube_r8, -0.2182F, 0.0F, 0.0F); + cube_r8.setTextureSize(64, 64); + cube_r8.mirror = true; + + + cube_r8_r1 = new ModelRenderer(this,12, 24); + cube_r8_r1.setRotationPoint(0.0F, 1.0F, 0.0F); + cube_r8.addChild(cube_r8_r1); + setRotationAngle(cube_r8_r1, 2.7052F, 0.0F, 3.1416F); + cube_r8_r1.addBox(-2.5F, -2.15F, -4.0F, 3, 2, 2); + cube_r8_r1.setTextureSize(64, 64); + cube_r8_r1.mirror = true; + + bone16 = new ModelRenderer(this); + bone16.setRotationPoint(0.0F, 24.0F, -2.0F); + bone16.setTextureSize(64, 64); + bone16.mirror = true; + + + bone16_r1 = new ModelRenderer(this,0, 11); + bone16_r1.setRotationPoint(0.0F, 0.0F, 2.0F); + bone16.addChild(bone16_r1); + setRotationAngle(bone16_r1, -3.1416F, 0.0F, 3.1416F); + bone16_r1.addBox(-1.5F, -4.5F, -3.0F, 1, 1, 1,0.1F); + bone16_r1.setTextureSize(64, 64); + bone16_r1.mirror = true; + + bone17 = new ModelRenderer(this); + bone17.setRotationPoint(0.0F, 24.0F, -1.0F); + bone17.setTextureSize(64, 64); + bone17.mirror = true; + + + bone17_r1 = new ModelRenderer(this,9,10); + bone17_r1.setRotationPoint(0.0F, 0.0F, 1.0F); + bone17.addChild(bone17_r1); + setRotationAngle(bone17_r1, -3.1416F, 0.0F, 3.1416F); + bone17_r1.addBox(-1.5F, -4.5F, -2.0F, 1, 1, 1); + bone17_r1.setTextureSize(64, 64); + bone17_r1.mirror = true; + + bone18 = new ModelRenderer(this); + bone18.setRotationPoint(0.0F, 24.0F, -1.0F); + bone18.setTextureSize(64, 64); + bone18.mirror = true; + + + bone18_r1 = new ModelRenderer(this,9,8); + bone18_r1.setRotationPoint(0.0F, 0.0F, 1.0F); + bone18.addChild(bone18_r1); + setRotationAngle(bone18_r1, -3.1416F, 0.0F, 3.1416F); + bone18_r1.addBox(-1.5F, -4.5F, -4.0F, 1, 1, 1); + bone18_r1.setTextureSize(64, 64); + bone18_r1.mirror = true; + + } + + + + public void render(float size) { + bone.render(size); + bone2.render(size); + bone3.render(size); + bone4.render(size); + bone5.render(size); + bone6.render(size); + bone7.render(size); + bone8.render(size); + bone9.render(size); + bone10.render(size); + bone11.render(size); + bone12.render(size); + bone13.render(size); + bone14.render(size); + bone15.render(size); + bone16.render(size); + bone17.render(size); + bone18.render(size); + } + + public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} \ No newline at end of file diff --git a/src/main/java/mekanism/client/model/ModelMekaSuitChest.java b/src/main/java/mekanism/client/model/ModelMekaSuitChest.java new file mode 100644 index 00000000..161821e7 --- /dev/null +++ b/src/main/java/mekanism/client/model/ModelMekaSuitChest.java @@ -0,0 +1,753 @@ +package mekanism.client.model; + + + +import mekanism.client.render.MekanismRenderer; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; + +public class ModelMekaSuitChest extends ModelBase { + ModelRenderer chest_body_brace1; + ModelRenderer chest_body_brace1_r1; + ModelRenderer chest_body_brace2; + ModelRenderer chest_body_brace2_r1; + ModelRenderer chest_body_brace3; + ModelRenderer chest_body_waist; + ModelRenderer chest_body_led1; + ModelRenderer chest_body_led1_r1; + ModelRenderer chest_body_led2; + ModelRenderer chest_body_led2_r1; + ModelRenderer chest_body_plate1; + ModelRenderer chest_body_plate1_r1; + ModelRenderer chest_body_plate2; + ModelRenderer chest_body_plate2_r1; + ModelRenderer chest_body_plate3; + ModelRenderer chest_body_plate3_r1; + ModelRenderer chest_body_plate4; + ModelRenderer chest_body_plate4_r1; + ModelRenderer chest_body_plate5; + ModelRenderer chest_body_plate5_r1; + ModelRenderer chest_body_satchel1; + ModelRenderer chest_body_satchel1_r1; + ModelRenderer chest_body_satchel2; + ModelRenderer chest_body_satchel2_r1; + ModelRenderer chest_body_satchel3; + ModelRenderer chest_body_satchel3_r1; + ModelRenderer chest_body_lower_plate1; + ModelRenderer chest_body_lower_plate1_r1; + ModelRenderer chest_body_lower_plate2; + ModelRenderer chest_body_lower_plate2_r1; + ModelRenderer chest_body_neck; + ModelRenderer chest_body_shoulder_exo_brace_left; + ModelRenderer chest_body_shoulder_exo_brace_left_r1; + ModelRenderer chest_body_shoulder_exo_brace_right; + ModelRenderer chest_body_shoulder_exo_brace_right_r1; + ModelRenderer chest_body_back_exo_brace_spine; + ModelRenderer chest_body_back_exo_brace_mid; + ModelRenderer chest_body_back_exo_brace_mid_r1; + ModelRenderer chest_body_back_exo_brace_upper; + ModelRenderer chest_body_back_exo_brace_pack; + ModelRenderer shared_chest_leggings_body_brace1; + ModelRenderer shared_chest_leggings_body_brace2; + ModelRenderer chest_left_arm_led1; + ModelRenderer chest_left_arm_upper_plate; + ModelRenderer chest_left_arm_lower_plate; + ModelRenderer chest_left_arm_middle_plate1; + ModelRenderer chest_left_arm_middle_plate2; + ModelRenderer chest_left_arm_brace1; + ModelRenderer chest_left_arm_brace2; + ModelRenderer chest_left_arm_finger1; + ModelRenderer chest_left_arm_finger2; + ModelRenderer chest_left_arm_finger3; + ModelRenderer chest_left_arm_finger4; + ModelRenderer chest_left_arm_finger5; + ModelRenderer chest_left_arm_finger6; + ModelRenderer chest_left_arm_exo_brace3; + ModelRenderer chest_left_arm_exo_brace3_r1; + ModelRenderer chest_left_arm_exo_brace2; + ModelRenderer chest_left_arm_exo_brace2_r1; + ModelRenderer chest_left_arm_exo_brace1; + ModelRenderer chest_left_arm_exo_brace1_r1; + ModelRenderer chest_right_arm_led1; + ModelRenderer chest_right_arm_upper_plate; + ModelRenderer chest_right_arm_lower_plate; + ModelRenderer chest_right_arm_middle_plate1; + ModelRenderer chest_right_arm_middle_plate2; + ModelRenderer chest_right_arm_brace1; + ModelRenderer chest_right_arm_brace2; + ModelRenderer chest_right_arm_finger1; + ModelRenderer chest_right_arm_finger2; + ModelRenderer chest_right_arm_finger3; + ModelRenderer chest_right_arm_finger4; + ModelRenderer chest_right_arm_finger5; + ModelRenderer chest_right_arm_finger6; + ModelRenderer chest_right_arm_exo_brace3; + ModelRenderer chest_right_arm_exo_brace3_r1; + ModelRenderer chest_right_arm_exo_brace2; + ModelRenderer chest_right_arm_exo_brace2_r1; + ModelRenderer chest_right_arm_exo_brace1; + ModelRenderer chest_right_arm_exo_brace1_r1; + ModelRenderer chest_body; + ModelRenderer chest_left_arm; + ModelRenderer chest_right_arm; + + public ModelMekaSuitChest() { + textureWidth = 128; + textureHeight = 128; + + chest_body_brace1 = new ModelRenderer(this); + chest_body_brace1.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_brace1.setTextureSize(128, 128); + chest_body_brace1.mirror = true; + + chest_body_brace1_r1 = new ModelRenderer(this); + chest_body_brace1_r1.setRotationPoint(1.0F, -24.694F, -0.0018F); + chest_body_brace1.addChild(chest_body_brace1_r1); + setRotationAngle(chest_body_brace1_r1, -0.1745F, 0.0F, 0.0F); + chest_body_brace1_r1.setTextureOffset(23, 11).addBox(-5.5F, 2.994F, -2.5982F, 9, 1, 5); + chest_body_brace1_r1.setTextureSize(128, 128); + chest_body_brace1_r1.mirror = true; + + chest_body_brace2 = new ModelRenderer(this); + chest_body_brace2.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_brace2.setTextureSize(128, 128); + chest_body_brace2.mirror = true; + + + chest_body_brace2_r1 = new ModelRenderer(this); + chest_body_brace2_r1.setRotationPoint(1.0F, -22.7452F, -1.6053F); + chest_body_brace2.addChild(chest_body_brace2_r1); + setRotationAngle(chest_body_brace2_r1, 0.2618F, 0.0F, 0.0F); + chest_body_brace2_r1.setTextureOffset(0, 23).addBox(-5.5F, 3.0952F, -2.5F, 9, 1, 5); + chest_body_brace2_r1.setTextureSize(128, 128); + chest_body_brace2_r1.mirror = true; + + chest_body_brace3 = new ModelRenderer(this); + chest_body_brace3.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_brace3.setTextureOffset(24, 8).addBox(-4.5F, -21.4F, 1.25F, 9, 2, 1); + chest_body_brace3.setTextureSize(128, 128); + chest_body_brace3.mirror = true; + + chest_body_waist = new ModelRenderer(this); + chest_body_waist.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_waist.setTextureOffset(0, 16).addBox(-4.5F, -16.5F, -2.5F, 9, 2, 5); + chest_body_waist.setTextureSize(128, 128); + chest_body_waist.mirror = true; + + chest_body_led1 = new ModelRenderer(this); + chest_body_led1.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_led1.setTextureSize(128, 128); + chest_body_led1.mirror = true; + + + chest_body_led1_r1 = new ModelRenderer(this); + chest_body_led1_r1.setRotationPoint(1.0F, -20.6F, -3.6F); + chest_body_led1.addChild(chest_body_led1_r1); + setRotationAngle(chest_body_led1_r1, -0.0873F, 0.0F, 0.0F); + chest_body_led1_r1.setTextureOffset(0, 29).addBox(-0.5F, -0.5F, -0.47F, 1, 1, 1); + chest_body_led1_r1.setTextureSize(128, 128); + chest_body_led1_r1.mirror = true; + + + chest_body_led2 = new ModelRenderer(this); + chest_body_led2.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_led2.setTextureSize(128, 128); + chest_body_led2.mirror = true; + + + + chest_body_led2_r1 = new ModelRenderer(this); + chest_body_led2_r1.setRotationPoint(-1.0F, -20.6F, -3.6F); + chest_body_led2.addChild(chest_body_led2_r1); + setRotationAngle(chest_body_led2_r1, -0.0873F, 0.0F, 0.0F); + chest_body_led2_r1.setTextureOffset(24, 13).addBox(-0.5F, -0.5F, -0.47F, 1, 1, 1); + chest_body_led2_r1.setTextureSize(128, 128); + chest_body_led2_r1.mirror = true; + + + chest_body_plate1 = new ModelRenderer(this); + chest_body_plate1.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_plate1.setTextureSize(128, 128); + chest_body_plate1.mirror = true; + + + + chest_body_plate1_r1 = new ModelRenderer(this); + chest_body_plate1_r1.setRotationPoint(-1.0F, -21.0F, -3.0F); + chest_body_plate1.addChild(chest_body_plate1_r1); + setRotationAngle(chest_body_plate1_r1, 0.0873F, 0.0F, 0.0F); + chest_body_plate1_r1.setTextureOffset(55, 11).addBox(-1.5F, -1.2F, -1.0F, 5, 3, 2); + chest_body_plate1_r1.setTextureSize(128, 128); + chest_body_plate1_r1.mirror = true; + + + chest_body_plate2 = new ModelRenderer(this); + chest_body_plate2.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_plate2.setTextureSize(128, 128); + chest_body_plate2.mirror = true; + + + + chest_body_plate2_r1 = new ModelRenderer(this); + chest_body_plate2_r1.setRotationPoint(0.0F, -22.0F, -2.0F); + chest_body_plate2.addChild(chest_body_plate2_r1); + setRotationAngle(chest_body_plate2_r1, -0.1745F, 0.0F, 0.0F); + chest_body_plate2_r1.setTextureOffset(50, 0).addBox(-3.5F, -1.0F, -1.0F, 7, 3, 1); + chest_body_plate2_r1.setTextureSize(128, 128); + chest_body_plate2_r1.mirror = true; + + + chest_body_plate3 = new ModelRenderer(this); + chest_body_plate3.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_plate3.setTextureSize(128, 128); + chest_body_plate3.mirror = true; + + + + chest_body_plate3_r1 = new ModelRenderer(this); + chest_body_plate3_r1.setRotationPoint(0.0F, -20.3777F, -2.3473F); + chest_body_plate3.addChild(chest_body_plate3_r1); + setRotationAngle(chest_body_plate3_r1, 0.1745F, 0.0F, 0.0F); + chest_body_plate3_r1.setTextureOffset(49, 27).addBox(-3.5F, 0.0F, -1.0F, 7, 2, 1); + chest_body_plate3_r1.setTextureSize(128, 128); + chest_body_plate3_r1.mirror = true; + + + chest_body_plate4 = new ModelRenderer(this); + chest_body_plate4.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_plate4.setTextureSize(128, 128); + chest_body_plate4.mirror = true; + + + + chest_body_plate4_r1 = new ModelRenderer(this); + chest_body_plate4_r1.setRotationPoint(-2.0F, -19.0F, -2.0F); + chest_body_plate4.addChild(chest_body_plate4_r1); + setRotationAngle(chest_body_plate4_r1, 0.1745F, 0.0F, 0.0F); + chest_body_plate4_r1.setTextureOffset(59, 37).addBox(-0.15F, -0.5F, -1.5F, 2, 3, 1); + chest_body_plate4_r1.setTextureSize(128, 128); + chest_body_plate4_r1.mirror = true; + + + chest_body_plate5 = new ModelRenderer(this); + chest_body_plate5.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_plate5.setTextureSize(128, 128); + chest_body_plate5.mirror = true; + + + + chest_body_plate5_r1 = new ModelRenderer(this); + chest_body_plate5_r1.setRotationPoint(-2.0F, -19.0F, -2.0F); + chest_body_plate5.addChild(chest_body_plate5_r1); + setRotationAngle(chest_body_plate5_r1, 0.1745F, 0.0F, 0.0F); + chest_body_plate5_r1.setTextureOffset(20, 59).addBox(2.15F, -0.5F, -1.5F, 2, 3, 1); + chest_body_plate5_r1.setTextureSize(128, 128); + chest_body_plate5_r1.mirror = true; + + + chest_body_satchel1 = new ModelRenderer(this); + chest_body_satchel1.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_satchel1.setTextureSize(128, 128); + chest_body_satchel1.mirror = true; + + + + chest_body_satchel1_r1 = new ModelRenderer(this); + chest_body_satchel1_r1.setRotationPoint(-2.0F, -16.0F, -4.0F); + chest_body_satchel1.addChild(chest_body_satchel1_r1); + setRotationAngle(chest_body_satchel1_r1, 0.0873F, 0.0F, 0.0F); + chest_body_satchel1_r1.setTextureOffset(55, 4).addBox(1.0F, -1.0F, 0.5F, 2, 3, 1); + chest_body_satchel1_r1.setTextureSize(128, 128); + chest_body_satchel1_r1.mirror = true; + + + chest_body_satchel2 = new ModelRenderer(this); + chest_body_satchel2.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_satchel2.setTextureSize(128, 128); + chest_body_satchel2.mirror = true; + + + + chest_body_satchel2_r1 = new ModelRenderer(this); + chest_body_satchel2_r1.setRotationPoint(0.5377F, -16.0F, -4.042F); + chest_body_satchel2.addChild(chest_body_satchel2_r1); + setRotationAngle(chest_body_satchel2_r1, 0.0873F, -0.0873F, 0.0F); + chest_body_satchel2_r1.setTextureOffset(48, 21).addBox(0.9623F, -1.0F, 0.5F, 2, 3, 1); + chest_body_satchel2_r1.setTextureSize(128, 128); + chest_body_satchel2_r1.mirror = true; + + + chest_body_satchel3 = new ModelRenderer(this); + chest_body_satchel3.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_satchel3.setTextureSize(128, 128); + chest_body_satchel3.mirror = true; + + + + chest_body_satchel3_r1 = new ModelRenderer(this); + chest_body_satchel3_r1.setRotationPoint(-1.9414F, -15.5891F, -2.8755F); + chest_body_satchel3.addChild(chest_body_satchel3_r1); + setRotationAngle(chest_body_satchel3_r1, 0.0873F, 0.0873F, 0.0F); + chest_body_satchel3_r1.setTextureOffset(46, 11).addBox(-1.5586F, -1.5F, -0.5F, 2, 3, 1); + chest_body_satchel3_r1.setTextureSize(128, 128); + chest_body_satchel3_r1.mirror = true; + + + chest_body_lower_plate1 = new ModelRenderer(this); + chest_body_lower_plate1.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_lower_plate1.setTextureSize(128, 128); + chest_body_lower_plate1.mirror = true; + + + + chest_body_lower_plate1_r1 = new ModelRenderer(this); + chest_body_lower_plate1_r1.setRotationPoint(-2.0F, -17.0F, -4.0F); + chest_body_lower_plate1.addChild(chest_body_lower_plate1_r1); + setRotationAngle(chest_body_lower_plate1_r1, 0.1745F, 0.0F, 0.0F); + chest_body_lower_plate1_r1.setTextureOffset(12, 29).addBox(1.0F, 4.0F, 0.5F, 2, 2, 1); + chest_body_lower_plate1_r1.setTextureSize(128, 128); + chest_body_lower_plate1_r1.mirror = true; + + + chest_body_lower_plate2 = new ModelRenderer(this); + chest_body_lower_plate2.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body_lower_plate2.setTextureSize(128, 128); + chest_body_lower_plate2.mirror = true; + + + + chest_body_lower_plate2_r1 = new ModelRenderer(this); + chest_body_lower_plate2_r1.setRotationPoint(-1.0F, -15.0F, -2.0F); + chest_body_lower_plate2.addChild(chest_body_lower_plate2_r1); + setRotationAngle(chest_body_lower_plate2_r1, -0.1745F, 0.0F, 0.0F); + chest_body_lower_plate2_r1.setTextureOffset(54, 30).addBox(-1.5F, -1.0F, -1.0F, 5, 3, 1); + chest_body_lower_plate2_r1.setTextureSize(128, 128); + chest_body_lower_plate2_r1.mirror = true; + + + chest_body_neck = new ModelRenderer(this); + chest_body_neck.setRotationPoint(-2.0F, 5.0F, -2.0F); + chest_body_neck.setTextureOffset(39, 44).addBox(0.0F, -5.55F, 0.0F, 4, 2, 4); + chest_body_neck.setTextureSize(128, 128); + chest_body_neck.mirror = true; + + + chest_body_shoulder_exo_brace_left = new ModelRenderer(this); + chest_body_shoulder_exo_brace_left.setRotationPoint(0.0F, 0.588F, 2.699F); + chest_body_shoulder_exo_brace_left.setTextureSize(128, 128); + chest_body_shoulder_exo_brace_left.mirror = true; + + + + chest_body_shoulder_exo_brace_left_r1 = new ModelRenderer(this); + chest_body_shoulder_exo_brace_left_r1.setRotationPoint(4.0541F, 0.0F, 0.0F); + chest_body_shoulder_exo_brace_left.addChild(chest_body_shoulder_exo_brace_left_r1); + setRotationAngle(chest_body_shoulder_exo_brace_left_r1, 0.0F, 0.2618F, -0.0873F); + chest_body_shoulder_exo_brace_left_r1.setTextureOffset(46, 34).addBox(-4.0F, -1.0F, -0.5F, 8, 2, 1); + chest_body_shoulder_exo_brace_left_r1.setTextureSize(128, 128); + chest_body_shoulder_exo_brace_left_r1.mirror = true; + + + chest_body_shoulder_exo_brace_right = new ModelRenderer(this); + chest_body_shoulder_exo_brace_right.setRotationPoint(0.0F, 0.588F, 2.699F); + chest_body_shoulder_exo_brace_right.setTextureSize(128, 128); + chest_body_shoulder_exo_brace_right.mirror = true; + + + + chest_body_shoulder_exo_brace_right_r1 = new ModelRenderer(this); + chest_body_shoulder_exo_brace_right_r1.setRotationPoint(-4.076F, 0.0F, 0.0F); + chest_body_shoulder_exo_brace_right.addChild(chest_body_shoulder_exo_brace_right_r1); + setRotationAngle(chest_body_shoulder_exo_brace_right_r1, 0.0F, -0.2618F, 0.0873F); + chest_body_shoulder_exo_brace_right_r1.setTextureOffset(44, 8).addBox(-4.0F, -1.0F, -0.5F, 8, 2, 1); + chest_body_shoulder_exo_brace_right_r1.setTextureSize(128, 128); + chest_body_shoulder_exo_brace_right_r1.mirror = true; + + + chest_body_back_exo_brace_spine = new ModelRenderer(this); + chest_body_back_exo_brace_spine.setRotationPoint(0.0F, 5.8299F, 2.683F); + chest_body_back_exo_brace_spine.setTextureOffset(39, 50).addBox(-1.0F, -6.3299F, -1.683F, 2, 11, 2); + chest_body_back_exo_brace_spine.setTextureSize(128, 128); + chest_body_back_exo_brace_spine.mirror = true; + + + chest_body_back_exo_brace_mid = new ModelRenderer(this); + chest_body_back_exo_brace_mid.setRotationPoint(0.0F, 5.8299F, 2.683F); + chest_body_back_exo_brace_mid.setTextureSize(128, 128); + chest_body_back_exo_brace_mid.mirror = true; + + + + chest_body_back_exo_brace_mid_r1 = new ModelRenderer(this); + chest_body_back_exo_brace_mid_r1.setRotationPoint(0.0F, -0.8782F, -0.1155F); + chest_body_back_exo_brace_mid.addChild(chest_body_back_exo_brace_mid_r1); + setRotationAngle(chest_body_back_exo_brace_mid_r1, -0.0873F, 0.0F, 0.0F); + chest_body_back_exo_brace_mid_r1.setTextureOffset(25, 44).addBox(-2.5F, -3.5F, -1.0F, 5, 7, 2); + chest_body_back_exo_brace_mid_r1.setTextureSize(128, 128); + chest_body_back_exo_brace_mid_r1.mirror = true; + + + chest_body_back_exo_brace_upper = new ModelRenderer(this); + chest_body_back_exo_brace_upper.setRotationPoint(0.0F, 5.8299F, 2.683F); + chest_body_back_exo_brace_upper.setTextureOffset(28, 17).addBox(-3.5F, -5.3249F, -1.1792F, 7, 5, 3); + chest_body_back_exo_brace_upper.setTextureSize(128, 128); + chest_body_back_exo_brace_upper.mirror = true; + + + chest_body_back_exo_brace_pack = new ModelRenderer(this); + chest_body_back_exo_brace_pack.setRotationPoint(0.0F, 5.8299F, 2.683F); + chest_body_back_exo_brace_pack.setTextureOffset(12, 49).addBox(-2.0F, -9.3299F, 0.817F, 4, 7, 2); + chest_body_back_exo_brace_pack.setTextureSize(128, 128); + chest_body_back_exo_brace_pack.mirror = true; + + + shared_chest_leggings_body_brace1 = new ModelRenderer(this); + shared_chest_leggings_body_brace1.setRotationPoint(0.0F, 11.5228F, 2.5229F); + shared_chest_leggings_body_brace1.setTextureOffset(20, 0).addBox(-5.0F, -2.0228F, -2.0191F, 10, 2, 2); + shared_chest_leggings_body_brace1.setTextureSize(128, 128); + shared_chest_leggings_body_brace1.mirror = true; + + + shared_chest_leggings_body_brace2 = new ModelRenderer(this); + shared_chest_leggings_body_brace2.setRotationPoint(0.0F, 11.5228F, 2.5229F); + shared_chest_leggings_body_brace2.setTextureOffset(24, 4).addBox(-2.0F, -1.0F, -1.0F, 4, 2, 2); + shared_chest_leggings_body_brace2.setTextureSize(128, 128); + shared_chest_leggings_body_brace2.mirror = true; + + chest_left_arm_led1 = new ModelRenderer(this); + chest_left_arm_led1.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_led1.setTextureOffset(24, 11).addBox(1.05F, 3.0F, -2.05F, 1, 1, 1); + chest_left_arm_led1.setTextureSize(128, 128); + chest_left_arm_led1.mirror = true; + + + chest_left_arm_upper_plate = new ModelRenderer(this); + chest_left_arm_upper_plate.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_upper_plate.setTextureOffset(39, 0).addBox(-0.3454F, -2.3145F, -2.5F, 3, 3, 5); + chest_left_arm_upper_plate.setTextureSize(128, 128); + chest_left_arm_upper_plate.mirror = true; + + chest_left_arm_lower_plate = new ModelRenderer(this); + chest_left_arm_lower_plate.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_lower_plate.setTextureOffset(0, 54).addBox(0.5F, 5.5F, -2.5F, 2, 4, 4); + chest_left_arm_lower_plate.setTextureSize(128, 128); + chest_left_arm_lower_plate.mirror = true; + + chest_left_arm_middle_plate1 = new ModelRenderer(this); + chest_left_arm_middle_plate1.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_middle_plate1.setTextureOffset(40, 25).addBox(-2.5F, 1.5F, -2.505F, 2, 4, 5); + chest_left_arm_middle_plate1.setTextureSize(128, 128); + chest_left_arm_middle_plate1.mirror = true; + + chest_left_arm_middle_plate2 = new ModelRenderer(this); + chest_left_arm_middle_plate2.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_middle_plate2.setTextureOffset(48, 12).addBox(-0.5F, 1.5F, -2.75F, 1, 4, 5); + chest_left_arm_middle_plate2.setTextureSize(128, 128); + chest_left_arm_middle_plate2.mirror = true; + + chest_left_arm_brace1 = new ModelRenderer(this); + chest_left_arm_brace1.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_brace1.setTextureOffset(19, 53).addBox(0.5F, 2.25F, -2.5F, 2, 1, 5); + chest_left_arm_brace1.setTextureSize(128, 128); + chest_left_arm_brace1.mirror = true; + + chest_left_arm_brace2 = new ModelRenderer(this); + chest_left_arm_brace2.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_brace2.setTextureOffset(47, 51).addBox(0.5F, 3.75F, -2.5F, 2, 1, 5); + chest_left_arm_brace2.setTextureSize(128, 128); + chest_left_arm_brace2.mirror = true; + + chest_left_arm_finger1 = new ModelRenderer(this); + chest_left_arm_finger1.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_finger1.setTextureOffset(46, 39).addBox(-0.5F, 9.5F, -2.5F, 3, 1, 1); + chest_left_arm_finger1.setTextureSize(128, 128); + chest_left_arm_finger1.mirror = true; + + chest_left_arm_finger2 = new ModelRenderer(this); + chest_left_arm_finger2.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_finger2.setTextureOffset(46, 37).addBox(-0.5F, 9.5F, -0.5F, 3, 1, 1); + chest_left_arm_finger2.setTextureSize(128, 128); + chest_left_arm_finger2.mirror = true; + + chest_left_arm_finger3 = new ModelRenderer(this); + chest_left_arm_finger3.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_finger3.setTextureOffset(27, 42).addBox(-0.5F, 9.5F, -1.5F, 3, 1, 1); + chest_left_arm_finger3.setTextureSize(128, 128); + chest_left_arm_finger3.mirror = true; + + chest_left_arm_finger4 = new ModelRenderer(this); + chest_left_arm_finger4.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_finger4.setTextureOffset(20, 41).addBox(-0.5F, 9.5F, 0.5F, 3, 1, 1); + chest_left_arm_finger4.setTextureSize(128, 128); + chest_left_arm_finger4.mirror = true; + + chest_left_arm_finger5 = new ModelRenderer(this); + chest_left_arm_finger5.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_finger5.setTextureOffset(23, 23).addBox(-2.5F, 7.5F, -1.5F, 1, 3, 1) + .setTextureSize(128, 128) + .mirror = true; + + chest_left_arm_finger6 = new ModelRenderer(this); + chest_left_arm_finger6.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_finger6.setTextureOffset(0, 23).addBox(-2.5F, 7.5F, -0.5F, 1, 3, 1) + .setTextureSize(128, 128) + .mirror = true; + + chest_left_arm_exo_brace3 = new ModelRenderer(this); + chest_left_arm_exo_brace3.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_exo_brace3.setTextureSize(128, 128); + chest_left_arm_exo_brace3.mirror = true; + + + chest_left_arm_exo_brace3_r1 = new ModelRenderer(this); + chest_left_arm_exo_brace3_r1.setRotationPoint(1.55F, 7.5669F, 1.8402F); + chest_left_arm_exo_brace3.addChild(chest_left_arm_exo_brace3_r1); + setRotationAngle(chest_left_arm_exo_brace3_r1, -0.2618F, 0.0F, 0.0F); + chest_left_arm_exo_brace3_r1.setTextureOffset(58, 19).addBox(-1.0F, -2.5F, -1.0F, 2, 5, 2) + .setTextureSize(128, 128) + .mirror = true; + + chest_left_arm_exo_brace2 = new ModelRenderer(this); + chest_left_arm_exo_brace2.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_exo_brace2.setTextureSize(128, 128) + .mirror = true; + + + chest_left_arm_exo_brace2_r1 = new ModelRenderer(this); + chest_left_arm_exo_brace2_r1.setRotationPoint(1.5F, 4.6772F, 2.1713F); + chest_left_arm_exo_brace2.addChild(chest_left_arm_exo_brace2_r1); + setRotationAngle(chest_left_arm_exo_brace2_r1, 0.0873F, 0.0F, 0.0F); + chest_left_arm_exo_brace2_r1.setTextureOffset(47, 57).addBox(-1.5F, -1.0F, -1.5F, 3, 2, 3) + .setTextureSize(128, 128) + .mirror = true; + + chest_left_arm_exo_brace1 = new ModelRenderer(this); + chest_left_arm_exo_brace1.setRotationPoint(6.0F, 2.5F, 0.0F); + chest_left_arm_exo_brace1.setTextureSize(128, 128); + chest_left_arm_exo_brace1.mirror = true; + + + chest_left_arm_exo_brace1_r1 = new ModelRenderer(this); + chest_left_arm_exo_brace1_r1.setRotationPoint(2.418F, 0.7177F, 0.995F); + chest_left_arm_exo_brace1.addChild(chest_left_arm_exo_brace1_r1); + setRotationAngle(chest_left_arm_exo_brace1_r1, 0.0F, 0.0F, -0.0873F); + chest_left_arm_exo_brace1_r1.setTextureOffset(30, 56).addBox(-0.5F, -3.0F, -1.5F, 1, 6, 3); + chest_left_arm_exo_brace1_r1.setTextureSize(128, 128); + chest_left_arm_exo_brace1_r1.mirror = true; + + chest_right_arm_led1 = new ModelRenderer(this); + chest_right_arm_led1.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_led1.setTextureOffset(23, 19).addBox(-2.05F, 3.0F, -2.05F, 1, 1, 1); + chest_right_arm_led1.setTextureSize(128, 128); + chest_right_arm_led1.mirror = true; + + chest_right_arm_upper_plate = new ModelRenderer(this); + chest_right_arm_upper_plate.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_upper_plate.setTextureOffset(35, 36).addBox(-2.7449F, -2.308F, -2.5F, 3, 3, 5); + chest_right_arm_upper_plate.setTextureSize(128, 128); + chest_right_arm_upper_plate.mirror = true; + + chest_right_arm_lower_plate = new ModelRenderer(this); + chest_right_arm_lower_plate.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_lower_plate.setTextureOffset(51, 37).addBox(-2.5F, 5.5F, -2.5F, 2, 4, 4); + chest_right_arm_lower_plate.setTextureSize(128, 128); + chest_right_arm_lower_plate.mirror = true; + + chest_right_arm_middle_plate1 = new ModelRenderer(this); + chest_right_arm_middle_plate1.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_middle_plate1.setTextureOffset(11, 40).addBox(0.5F, 1.5F, -2.505F, 2, 4, 5); + chest_right_arm_middle_plate1.setTextureSize(128, 128); + chest_right_arm_middle_plate1.mirror = true; + + chest_right_arm_middle_plate2 = new ModelRenderer(this); + chest_right_arm_middle_plate2.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_middle_plate2.setTextureOffset(0, 45).addBox(-0.5F, 1.5F, -2.75F, 1, 4, 5); + chest_right_arm_middle_plate2.setTextureSize(128, 128); + chest_right_arm_middle_plate2.mirror = true; + + chest_right_arm_brace1 = new ModelRenderer(this); + chest_right_arm_brace1.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_brace1.setTextureOffset(50, 45).addBox(-2.5F, 2.25F, -2.5F, 2, 1, 5); + chest_right_arm_brace1.setTextureSize(128, 128); + chest_right_arm_brace1.mirror = true; + + chest_right_arm_brace2 = new ModelRenderer(this); + chest_right_arm_brace2.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_brace2.setTextureOffset(49, 21).addBox(-2.5F, 3.75F, -2.5F, 2, 1, 5); + chest_right_arm_brace2.setTextureSize(128, 128); + chest_right_arm_brace2.mirror = true; + + chest_right_arm_finger1 = new ModelRenderer(this); + chest_right_arm_finger1.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_finger1.setTextureOffset(16, 38).addBox(-2.5F, 9.5F, -2.5F, 3, 1, 1); + chest_right_arm_finger1.setTextureSize(128, 128); + chest_right_arm_finger1.mirror = true; + + chest_right_arm_finger2 = new ModelRenderer(this); + chest_right_arm_finger2.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_finger2.setTextureOffset(36, 27).addBox(-2.5F, 9.5F, -0.5F, 3, 1, 1); + chest_right_arm_finger2.setTextureSize(128, 128); + chest_right_arm_finger2.mirror = true; + + chest_right_arm_finger3 = new ModelRenderer(this); + chest_right_arm_finger3.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_finger3.setTextureOffset(36, 25).addBox(-2.5F, 9.5F, -1.5F, 3, 1, 1); + chest_right_arm_finger3.setTextureSize(128, 128); + chest_right_arm_finger3.mirror = true; + + chest_right_arm_finger4 = new ModelRenderer(this); + chest_right_arm_finger4.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_finger4.setTextureOffset(23, 17).addBox(-2.5F, 9.5F, 0.5F, 3, 1, 1); + chest_right_arm_finger4.setTextureSize(128, 128); + chest_right_arm_finger4.mirror = true; + + chest_right_arm_finger5 = new ModelRenderer(this); + chest_right_arm_finger5.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_finger5.setTextureOffset(0, 16).addBox(1.5F, 7.5F, -1.5F, 1, 3, 1); + chest_right_arm_finger5.setTextureSize(128, 128); + chest_right_arm_finger5.mirror = true; + + chest_right_arm_finger6 = new ModelRenderer(this); + chest_right_arm_finger6.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_finger6.setTextureOffset(0, 0).addBox(1.5F, 7.5F, -0.5F, 1, 3, 1); + chest_right_arm_finger6.setTextureSize(128, 128); + chest_right_arm_finger6.mirror = true; + + chest_right_arm_exo_brace3 = new ModelRenderer(this); + chest_right_arm_exo_brace3.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_exo_brace3.setTextureSize(128, 128); + chest_right_arm_exo_brace3.mirror = true; + + + chest_right_arm_exo_brace3_r1 = new ModelRenderer(this); + chest_right_arm_exo_brace3_r1.setRotationPoint(-1.45F, 7.5669F, 1.8402F); + chest_right_arm_exo_brace3.addChild(chest_right_arm_exo_brace3_r1); + setRotationAngle(chest_right_arm_exo_brace3_r1, -0.2618F, 0.0F, 0.0F); + chest_right_arm_exo_brace3_r1.setTextureOffset(12, 58).addBox(-1.0F, -2.5F, -1.0F, 2, 5, 2); + chest_right_arm_exo_brace3_r1.setTextureSize(128, 128); + chest_right_arm_exo_brace3_r1.mirror = true; + + chest_right_arm_exo_brace2 = new ModelRenderer(this); + chest_right_arm_exo_brace2.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_exo_brace2.setTextureSize(128, 128); + chest_right_arm_exo_brace2.mirror = true; + + + chest_right_arm_exo_brace2_r1 = new ModelRenderer(this); + chest_right_arm_exo_brace2_r1.setRotationPoint(-1.5F, 4.6772F, 2.1713F); + chest_right_arm_exo_brace2.addChild(chest_right_arm_exo_brace2_r1); + setRotationAngle(chest_right_arm_exo_brace2_r1, 0.0873F, 0.0F, 0.0F); + chest_right_arm_exo_brace2_r1.setTextureOffset(56, 51).addBox(-1.5F, -1.0F, -1.5F, 3, 2, 3); + chest_right_arm_exo_brace2_r1.setTextureSize(128, 128); + chest_right_arm_exo_brace2_r1.mirror = true; + + chest_right_arm_exo_brace1 = new ModelRenderer(this); + chest_right_arm_exo_brace1.setRotationPoint(-6.0F, 2.5F, 0.0F); + chest_right_arm_exo_brace1.setTextureSize(128, 128); + chest_right_arm_exo_brace1.mirror = true; + + + chest_right_arm_exo_brace1_r1 = new ModelRenderer(this); + chest_right_arm_exo_brace1_r1.setRotationPoint(-2.582F, 0.7177F, 0.995F); + chest_right_arm_exo_brace1.addChild(chest_right_arm_exo_brace1_r1); + setRotationAngle(chest_right_arm_exo_brace1_r1, 0.0F, 0.0F, 0.0873F); + chest_right_arm_exo_brace1_r1.setTextureOffset(16, 29).addBox(-0.426F, -3.0F, -1.5F, 1, 6, 3); + chest_right_arm_exo_brace1_r1.setTextureSize(128, 128); + chest_right_arm_exo_brace1_r1.mirror = true; + + chest_body = new ModelRenderer(this); + chest_body.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_body.setTextureOffset(0, 0).addBox(-4.0F, -23.5F, -2.005F, 8, 12, 4); + chest_body.setTextureSize(128, 128); + chest_body.mirror = true; + + chest_left_arm = new ModelRenderer(this); + chest_left_arm.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_left_arm.setTextureOffset(0, 29).addBox(4.0F, -23.5F, -2.0F, 4, 12, 4); + chest_left_arm.setTextureSize(128, 128); + chest_left_arm.mirror = true; + + chest_right_arm = new ModelRenderer(this); + chest_right_arm.setRotationPoint(0.0F, 24.0F, 0.0F); + chest_right_arm.setTextureOffset(24, 25).addBox(-8.0F, -23.5F, -2.0F, 4, 12, 4); + chest_right_arm.setTextureSize(128, 128); + chest_right_arm.mirror = true; + + } + + public void render(float size) { + chest_body_brace1.render(size); + chest_body_brace2.render(size); + chest_body_brace3.render(size); + chest_body_waist.render(size); + chest_body_plate1.render(size); + chest_body_plate2.render(size); + chest_body_plate3.render(size); + chest_body_plate4.render(size); + chest_body_plate5.render(size); + chest_body_satchel1.render(size); + chest_body_satchel2.render(size); + chest_body_satchel3.render(size); + chest_body_lower_plate1.render(size); + chest_body_lower_plate2.render(size); + chest_body_neck.render(size); + chest_body_shoulder_exo_brace_left.render(size); + chest_body_shoulder_exo_brace_right.render(size); + chest_body_back_exo_brace_spine.render(size); + chest_body_back_exo_brace_mid.render(size); + chest_body_back_exo_brace_upper.render(size); + chest_body_back_exo_brace_pack.render(size); + shared_chest_leggings_body_brace1.render(size); + shared_chest_leggings_body_brace2.render(size); + chest_left_arm_upper_plate.render(size); + chest_left_arm_lower_plate.render(size); + chest_left_arm_middle_plate1.render(size); + chest_left_arm_middle_plate2.render(size); + chest_left_arm_brace1.render(size); + chest_left_arm_brace2.render(size); + chest_left_arm_finger1.render(size); + chest_left_arm_finger2.render(size); + chest_left_arm_finger3.render(size); + chest_left_arm_finger4.render(size); + chest_left_arm_finger5.render(size); + chest_left_arm_finger6.render(size); + chest_left_arm_exo_brace3.render(size); + chest_left_arm_exo_brace2.render(size); + chest_left_arm_exo_brace1.render(size); + chest_right_arm_upper_plate.render(size); + chest_right_arm_lower_plate.render(size); + chest_right_arm_middle_plate1.render(size); + chest_right_arm_middle_plate2.render(size); + chest_right_arm_brace1.render(size); + chest_right_arm_brace2.render(size); + chest_right_arm_finger1.render(size); + chest_right_arm_finger2.render(size); + chest_right_arm_finger3.render(size); + chest_right_arm_finger4.render(size); + chest_right_arm_finger5.render(size); + chest_right_arm_finger6.render(size); + chest_right_arm_exo_brace3.render(size); + chest_right_arm_exo_brace2.render(size); + chest_right_arm_exo_brace1.render(size); + chest_body.render(size); + chest_left_arm.render(size); + chest_right_arm.render(size); + + MekanismRenderer.GlowInfo glowInfo = MekanismRenderer.enableGlow(); + chest_body_led1.render(size); + chest_body_led2.render(size); + chest_left_arm_led1.render(size); + chest_right_arm_led1.render(size); + MekanismRenderer.disableGlow(glowInfo); + + + + + } + + public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} \ No newline at end of file diff --git a/src/main/java/mekanism/client/model/ModelMekaSuitHelmet.java b/src/main/java/mekanism/client/model/ModelMekaSuitHelmet.java new file mode 100644 index 00000000..ef0b3385 --- /dev/null +++ b/src/main/java/mekanism/client/model/ModelMekaSuitHelmet.java @@ -0,0 +1,287 @@ +package mekanism.client.model; + + + +import mekanism.client.render.MekanismRenderer; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + + +@SideOnly(Side.CLIENT) +public class ModelMekaSuitHelmet extends ModelBase { + ModelRenderer bone; + ModelRenderer helmet_head_center1_r1; + ModelRenderer bone2; + ModelRenderer bone3; + ModelRenderer helmet_head_center3_r1; + ModelRenderer bone4; + ModelRenderer bone5; + ModelRenderer bone6; + ModelRenderer bone7; + ModelRenderer bone8; + ModelRenderer bone9; + ModelRenderer bone10; + ModelRenderer bone11; + ModelRenderer bone12; + ModelRenderer helmet_head_chin2_r1; + ModelRenderer bone13; + ModelRenderer bone14; + ModelRenderer bone15; + ModelRenderer bone16; + ModelRenderer bone17; + ModelRenderer bone18; + ModelRenderer bone19; + ModelRenderer bone20; + ModelRenderer bone21; + ModelRenderer bone22; + ModelRenderer bone23; + ModelRenderer helmet_head_visor_lower_r1; + ModelRenderer bone24; + ModelRenderer helmet_head_visor_upper_r1; + ModelRenderer bone25; + ModelRenderer bone26; + + public ModelMekaSuitHelmet() { + textureWidth = 64; + textureHeight = 64; + + bone = new ModelRenderer(this); + bone.setRotationPoint(0.0F, 24.0F, 0.0F); + bone.setTextureSize(64, 64); + bone.mirror = true; + + helmet_head_center1_r1 = new ModelRenderer(this,0,30); + helmet_head_center1_r1.setRotationPoint(-3.0F, -23.4654F, -3.6669F); + bone.addChild(helmet_head_center1_r1); + setRotationAngle(helmet_head_center1_r1, 0.4363F, 0.0F, 0.0F); + helmet_head_center1_r1.addBox(2.0F, -7.0F, 2.0F, 2, 1, 2); + helmet_head_center1_r1.setTextureSize(64, 64); + helmet_head_center1_r1.mirror = true; + + bone2 = new ModelRenderer(this,26,24); + bone2.setRotationPoint(0.0F, 1.5F, -1.0F); + bone2.addBox(-1.0F, -9.0F, -2.0F, 2, 1, 5); + bone2.setTextureSize(64, 64); + bone2.mirror = true; + + bone3 = new ModelRenderer(this); + bone3.setRotationPoint(0.0F, 24.0F, 0.0F); + bone3.setTextureSize(64, 64); + bone3.mirror = true; + + + helmet_head_center3_r1 = new ModelRenderer(this,11,24); + helmet_head_center3_r1.setRotationPoint(-3.0F, -25.1924F, -1.1959F); + bone3.addChild(helmet_head_center3_r1); + setRotationAngle(helmet_head_center3_r1, -0.6109F, 0.0F, 0.0F); + helmet_head_center3_r1.addBox(2.0F, -7.0F, -1.0F, 2, 1, 2); + helmet_head_center3_r1.setTextureSize(64, 64); + helmet_head_center3_r1.mirror = true; + + bone4 = new ModelRenderer(this,0,12); + bone4.setRotationPoint(0.0F, 24.0F, 0.0F); + bone4.addBox(-1.0F, -30.5F, 3.0F, 2, 1, 1); + bone4.setTextureSize(64, 64); + bone4.mirror = true; + + bone5 = new ModelRenderer(this,19,14); + bone5.setRotationPoint(0.0F, 24.0F, 0.0F); + bone5.addBox(1.0F, -31.0F, -3.5F, 1, 2, 7); + bone5.setTextureSize(64, 64); + bone5.mirror = true; + + bone6 = new ModelRenderer(this,19,5); + bone6.setRotationPoint(0.0F, 24.0F, 0.0F); + bone6.addBox(-2.0F, -31.0F, -3.5F, 1, 2, 7); + bone6.setTextureSize(64, 64); + bone6.mirror = true; + + bone7 = new ModelRenderer(this,19,14); + bone7.setRotationPoint(0.0F, 24.0F, 0.0F); + bone7.addBox(-2.0F, -26.5F, 2.5F, 1, 1, 1); + bone7.setTextureSize(64, 64); + bone7.mirror = true; + + bone8 = new ModelRenderer(this,19,5); + bone8.setRotationPoint(0.0F, 24.0F, 0.0F); + bone8.addBox(1.0F, -26.5F, 2.5F, 1, 1, 1); + bone8.setTextureSize(64, 64); + bone8.mirror = true; + + bone9 = new ModelRenderer(this,21,29); + bone9.setRotationPoint(0.0F, 24.0F, 0.0F); + bone9.addBox(3.0F, -27.5F, -1.0F, 1, 2, 3); + bone9.setTextureSize(64, 64); + bone9.mirror = true; + + bone10 = new ModelRenderer(this,13,29); + bone10.setRotationPoint(0.0F, 24.0F, 0.0F); + bone10.addBox(-4.0F, -27.5F, -1.0F, 1, 2, 3); + bone10.setTextureSize(64, 64); + bone10.mirror = true; + + bone11 = new ModelRenderer(this,19,0); + bone11.setRotationPoint(0.0F, 24.0F, 0.0F); + bone11.addBox(-3.5F, -24.5F, -5.0F, 7, 1, 4); + bone11.setTextureSize(64, 64); + bone11.mirror = true; + + bone12 = new ModelRenderer(this); + bone12.setRotationPoint(0.0F, 24.0F, 0.0F); + bone12.setTextureSize(64, 64); + bone12.mirror = true; + + + helmet_head_chin2_r1 = new ModelRenderer(this,0,20); + helmet_head_chin2_r1.setRotationPoint(-1.0F, -23.8536F, 5.0104F); + bone12.addChild(helmet_head_chin2_r1); + setRotationAngle(helmet_head_chin2_r1, 0.7854F, 0.0F, 0.0F); + helmet_head_chin2_r1.addBox(-2.5F, -5.0F, -4.5F, 7, 1, 3); + helmet_head_chin2_r1.setTextureSize(64, 64); + helmet_head_chin2_r1.mirror = true; + + bone13 = new ModelRenderer(this,0,0); + bone13.setRotationPoint(0.0F, 24.0F, 0.0F); + bone13.addBox(-1.0F, -25.25F, -5.5F, 2, 2, 1); + bone13.setTextureSize(64, 64); + bone13.mirror = true; + + bone14 = new ModelRenderer(this,0,12); + bone14.setRotationPoint(0.0F, 24.0F, 0.0F); + bone14.addBox(-3.0F, -30.5F, -4.0F, 6, 1, 7); + bone14.setTextureSize(64, 64); + bone14.mirror = true; + + bone15 = new ModelRenderer(this,0,5); + bone15.setRotationPoint(0.0F, 24.0F, 0.0F); + bone15.addBox(1.0F, -30.5F, -5.0F, 2, 1, 1); + bone15.setTextureSize(64, 64); + bone15.mirror = true; + + bone16 = new ModelRenderer(this,0,3); + bone16.setRotationPoint(0.0F, 24.0F, 0.0F); + bone16.addBox(-3.0F, -30.5F, -5.0F, 2, 1, 1); + bone16.setTextureSize(64, 64); + bone16.mirror = true; + + bone17 = new ModelRenderer(this,0,24); + bone17.setRotationPoint(0.0F, 24.0F, 0.0F); + bone17.addBox(1.0F, -29.5F, -2.0F, 3, 1, 5); + bone17.setTextureSize(64, 64); + bone17.mirror = true; + + bone18 = new ModelRenderer(this,3,16); + bone18.setRotationPoint(0.0F, 24.0F, 0.0F); + bone18.addBox(3.0F, -28.5F, 2.0F, 1, 2, 1); + bone18.setTextureSize(64, 64); + bone18.mirror = true; + + bone19 = new ModelRenderer(this,15,23); + bone19.setRotationPoint(0.0F, 24.0F, 0.0F); + bone19.addBox(-4.0F, -29.5F, -2.0F, 3, 1, 5); + bone19.setTextureSize(64, 64); + bone19.mirror = true; + + bone20 = new ModelRenderer(this,0,14); + bone20.setRotationPoint(0.0F, 24.0F, 0.0F); + bone20.addBox(-4.0F, -28.5F, 2.0F, 1, 2, 1); + bone20.setTextureSize(64, 64); + bone20.mirror = true; + + bone21 = new ModelRenderer(this,28,14); + bone21.setRotationPoint(0.0F, 24.0F, 0.0F); + bone21.addBox(-3.0F, -29.5F, 3.0F, 6, 3, 1); + bone21.setTextureSize(64, 64); + bone21.mirror = true; + + bone22 = new ModelRenderer(this,0,0); + bone22.setRotationPoint(0.0F, 24.0F, 0.0F); + bone22.addBox(-3.0F, -29.5F, -4.0F, 6, 5, 7); + bone22.setTextureSize(64, 64); + bone22.mirror = true; + + bone23 = new ModelRenderer(this); + bone23.setRotationPoint(0.0F, 24.0F, 0.0F); + bone23.setTextureSize(64, 64); + bone23.mirror = true; + + + helmet_head_visor_lower_r1 = new ModelRenderer(this,28,5); + helmet_head_visor_lower_r1.setRotationPoint(-1.0F, -24.5F, -1.0F); + bone23.addChild(helmet_head_visor_lower_r1); + setRotationAngle(helmet_head_visor_lower_r1, 0.1745F, 0.0F, 0.0F); + helmet_head_visor_lower_r1.addBox(-1.995F, -4.0F, -3.5F, 6, 4, 2); + helmet_head_visor_lower_r1.setTextureSize(64, 64); + helmet_head_visor_lower_r1.mirror = true; + + bone24 = new ModelRenderer(this); + bone24.setRotationPoint(0.0F, 24.0F, 0.0F); + bone24.setTextureSize(64, 64); + bone24.mirror = true; + + + helmet_head_visor_upper_r1 = new ModelRenderer(this,28,18); + helmet_head_visor_upper_r1.setRotationPoint(-1.0F, -24.751F, -3.2677F); + bone24.addChild(helmet_head_visor_upper_r1); + setRotationAngle(helmet_head_visor_upper_r1, -0.4363F, 0.0F, 0.0F); + helmet_head_visor_upper_r1.addBox(-1.975F, -4.0F, -3.0F, 6, 2, 1); + helmet_head_visor_upper_r1.setTextureSize(64, 64); + helmet_head_visor_upper_r1.mirror = true; + + bone25 = new ModelRenderer(this,19,2); + bone25.setRotationPoint(0.0F, 24.0F, 0.0F); + bone25.addBox(3.005F, -28.5F, -0.005F, 1, 1, 1); + bone25.setTextureSize(64, 64); + bone25.mirror = true; + + bone26 = new ModelRenderer(this,19,0); + bone26.setRotationPoint(0.0F, 24.0F, 0.0F); + bone26.addBox(-3.995F, -28.5F, -0.005F, 1, 1, 1); + bone26.setTextureSize(64, 64); + bone26.mirror = true; + + } + + + public void render(float size) { + bone.render(size); + bone2.render(size); + bone3.render(size); + bone4.render(size); + bone5.render(size); + bone6.render(size); + bone7.render(size); + bone8.render(size); + bone9.render(size); + bone10.render(size); + bone11.render(size); + bone12.render(size); + bone13.render(size); + bone14.render(size); + bone15.render(size); + bone16.render(size); + bone17.render(size); + bone18.render(size); + bone19.render(size); + bone20.render(size); + bone21.render(size); + bone22.render(size); + bone23.render(size); + bone24.render(size); + + + MekanismRenderer.GlowInfo glowInfo = MekanismRenderer.enableGlow(); + bone25.render(size); + bone26.render(size); + MekanismRenderer.disableGlow(glowInfo); + + } + + public void setRotationAngle(ModelRenderer modelRenderer, float x, float y, float z) { + modelRenderer.rotateAngleX = x; + modelRenderer.rotateAngleY = y; + modelRenderer.rotateAngleZ = z; + } +} \ No newline at end of file diff --git a/src/main/java/mekanism/client/render/ModelCustomArmor.java b/src/main/java/mekanism/client/render/ModelCustomArmor.java index e738eea9..bb34d5b8 100644 --- a/src/main/java/mekanism/client/render/ModelCustomArmor.java +++ b/src/main/java/mekanism/client/render/ModelCustomArmor.java @@ -1,11 +1,8 @@ package mekanism.client.render; import javax.annotation.Nonnull; -import mekanism.client.model.ModelArmoredJetpack; -import mekanism.client.model.ModelFreeRunners; -import mekanism.client.model.ModelGasMask; -import mekanism.client.model.ModelJetpack; -import mekanism.client.model.ModelScubaTank; + +import mekanism.client.model.*; import mekanism.client.render.MekanismRenderer.GlowInfo; import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; @@ -133,13 +130,17 @@ public enum ArmorModel { ARMOREDJETPACK(1, MekanismUtils.getResource(ResourceType.RENDER, "Jetpack.png")), SCUBATANK(1, MekanismUtils.getResource(ResourceType.RENDER, "ScubaSet.png")), GASMASK(0, MekanismUtils.getResource(ResourceType.RENDER, "ScubaSet.png")), - FREERUNNERS(3, MekanismUtils.getResource(ResourceType.RENDER, "FreeRunners.png")); + FREERUNNERS(3, MekanismUtils.getResource(ResourceType.RENDER, "FreeRunners.png")), + MEKASUITHELMET(0,MekanismUtils.getResource(ResourceType.RENDER, "MekaSuitHelmet.png")), + MEKASUITCHEST(1,MekanismUtils.getResource(ResourceType.RENDER, "MekaSuitChest.png")); public static ModelJetpack jetpackModel = new ModelJetpack(); public static ModelArmoredJetpack armoredJetpackModel = new ModelArmoredJetpack(); public static ModelGasMask gasMaskModel = new ModelGasMask(); public static ModelScubaTank scubaTankModel = new ModelScubaTank(); public static ModelFreeRunners freeRunnersModel = new ModelFreeRunners(); + public static ModelMekaSuitHelmet mekaSuitHelmet = new ModelMekaSuitHelmet(); + public static ModelMekaSuitChest mekaSuitChest = new ModelMekaSuitChest(); public int armorSlot; public ResourceLocation resource; @@ -192,11 +193,16 @@ public void render(float size) { ArmorModel.jetpackModel.render(0.0625F); } else if (biped.modelType == ArmorModel.ARMOREDJETPACK) { ArmorModel.armoredJetpackModel.render(0.0625F); - } else if (biped.modelType == ArmorModel.SCUBATANK) { + } else if (biped.modelType == ArmorModel.MEKASUITCHEST) { + ArmorModel.mekaSuitChest.render(0.0625F); + }else if (biped.modelType == ArmorModel.SCUBATANK) { ArmorModel.scubaTankModel.render(0.0625F); } else if (biped.modelType == ArmorModel.GASMASK) { GlStateManager.translate(0, 0, -0.05F); ArmorModel.gasMaskModel.render(0.0625F); + } else if (biped.modelType == ArmorModel.MEKASUITHELMET) { + GlStateManager.translate(0, 0, -0.05F); + ArmorModel.mekaSuitHelmet.render(0.0625F); } else if (biped.modelType == ArmorModel.FREERUNNERS) { GlStateManager.scale(1.02F, 1.02F, 1.02F); if (partRender == biped.bipedLeftLeg) { diff --git a/src/main/java/mekanism/client/render/item/gear/RenderFlameThrower.java b/src/main/java/mekanism/client/render/item/gear/RenderFlameThrower.java index 105a6aed..9bed3666 100644 --- a/src/main/java/mekanism/client/render/item/gear/RenderFlameThrower.java +++ b/src/main/java/mekanism/client/render/item/gear/RenderFlameThrower.java @@ -53,6 +53,7 @@ protected void renderItemSpecific(@Nonnull ItemStack stack, TransformType transf } flamethrower.render(0.0625F); GlStateManager.popMatrix(); + } @Nonnull diff --git a/src/main/java/mekanism/client/render/item/gear/RenderMekTool.java b/src/main/java/mekanism/client/render/item/gear/RenderMekTool.java new file mode 100644 index 00000000..865bc5ee --- /dev/null +++ b/src/main/java/mekanism/client/render/item/gear/RenderMekTool.java @@ -0,0 +1,65 @@ +package mekanism.client.render.item.gear; + +import mekanism.client.model.ModelMekTool; +import mekanism.client.render.MekanismRenderer; +import mekanism.client.render.item.ItemLayerWrapper; +import mekanism.client.render.item.MekanismItemStackRenderer; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import javax.annotation.Nonnull; + +@SideOnly(Side.CLIENT) +public class RenderMekTool extends MekanismItemStackRenderer { + + private static ModelMekTool mekTool = new ModelMekTool(); + public static ItemLayerWrapper model; + + @Override + protected void renderBlockSpecific(@Nonnull ItemStack stack, TransformType transformType) { + } + + @Override + protected void renderItemSpecific(@Nonnull ItemStack stack, TransformType transformType) { + GlStateManager.pushMatrix(); + GlStateManager.rotate(160, 0, 0, 1); + MekanismRenderer.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "MekTool.png")); + GlStateManager.translate(0, -1.0F, 0); + GlStateManager.rotate(135, 0, 1, 0); + GlStateManager.rotate(-20, 0, 0, 1); + + if (transformType == TransformType.FIRST_PERSON_RIGHT_HAND || transformType == TransformType.THIRD_PERSON_RIGHT_HAND + || transformType == TransformType.FIRST_PERSON_LEFT_HAND || transformType == TransformType.THIRD_PERSON_LEFT_HAND) { + if (transformType == TransformType.FIRST_PERSON_RIGHT_HAND) { + GlStateManager.rotate(55, 0, 1, 0); + } else if (transformType == TransformType.FIRST_PERSON_LEFT_HAND) { + GlStateManager.rotate(-160, 0, 1, 0); + GlStateManager.rotate(30, 1, 0, 0); + } else if (transformType == TransformType.THIRD_PERSON_RIGHT_HAND) { + GlStateManager.translate(0, 0.7F, 0); + GlStateManager.rotate(75, 0, 1, 0); + } else {//if(type == TransformType.THIRD_PERSON_LEFT_HAND) + GlStateManager.translate(-0.5F, 0.7F, 0); + } + GlStateManager.scale(2.5F, 2.5F, 2.5F); + GlStateManager.translate(0, -1.0F, -0.5F); + } else if (transformType == TransformType.GUI) { + GlStateManager.translate(-0.6F, 0, 0); + GlStateManager.rotate(45, 0, 1, 0); + } + mekTool.render(0.0625F); + GlStateManager.popMatrix(); + + } + + @Nonnull + @Override + protected TransformType getTransform(@Nonnull ItemStack stack) { + return model.getTransform(); + } +} \ No newline at end of file diff --git a/src/main/java/mekanism/client/render/item/gear/RenderMekaSuitChest.java b/src/main/java/mekanism/client/render/item/gear/RenderMekaSuitChest.java new file mode 100644 index 00000000..13d6777e --- /dev/null +++ b/src/main/java/mekanism/client/render/item/gear/RenderMekaSuitChest.java @@ -0,0 +1,43 @@ +package mekanism.client.render.item.gear; + +import mekanism.client.model.ModelMekaSuitChest; +import mekanism.client.render.MekanismRenderer; +import mekanism.client.render.item.ItemLayerWrapper; +import mekanism.client.render.item.MekanismItemStackRenderer; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import javax.annotation.Nonnull; + +@SideOnly(Side.CLIENT) +public class RenderMekaSuitChest extends MekanismItemStackRenderer { + + private static ModelMekaSuitChest mekaSuitChest = new ModelMekaSuitChest(); + public static ItemLayerWrapper model; + + @Override + protected void renderBlockSpecific(@Nonnull ItemStack stack, TransformType transformType) { + } + + @Override + protected void renderItemSpecific(@Nonnull ItemStack stack, TransformType transformType) { + GlStateManager.pushMatrix(); + GlStateManager.rotate(180, 0, 0, 1); + GlStateManager.rotate(90, 0, -1, 0); + GlStateManager.translate(0.2F, -0.35F, 0); + MekanismRenderer.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "MekaSuitChest.png")); + mekaSuitChest.render(0.0625F); + GlStateManager.popMatrix(); + } + + @Nonnull + @Override + protected TransformType getTransform(@Nonnull ItemStack stack) { + return model.getTransform(); + } +} \ No newline at end of file diff --git a/src/main/java/mekanism/client/render/item/gear/RenderMekaSuitHelmet.java b/src/main/java/mekanism/client/render/item/gear/RenderMekaSuitHelmet.java new file mode 100644 index 00000000..18961c42 --- /dev/null +++ b/src/main/java/mekanism/client/render/item/gear/RenderMekaSuitHelmet.java @@ -0,0 +1,48 @@ +package mekanism.client.render.item.gear; + +import mekanism.client.model.ModelMekaSuitHelmet; +import mekanism.client.render.MekanismRenderer; +import mekanism.client.render.item.ItemLayerWrapper; +import mekanism.client.render.item.MekanismItemStackRenderer; +import mekanism.common.util.MekanismUtils; +import mekanism.common.util.MekanismUtils.ResourceType; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import javax.annotation.Nonnull; + +@SideOnly(Side.CLIENT) +public class RenderMekaSuitHelmet extends MekanismItemStackRenderer { + + private static ModelMekaSuitHelmet mekaSuitHelmet = new ModelMekaSuitHelmet(); + public static ItemLayerWrapper model; + + @Override + protected void renderBlockSpecific(@Nonnull ItemStack stack, TransformType transformType) { + } + + @Override + protected void renderItemSpecific(@Nonnull ItemStack stack, TransformType transformType) { + GlStateManager.pushMatrix(); + GlStateManager.scale(1.4F, 1.4F, 1.4F); + GlStateManager.rotate(180, 0, 0, 1); + GlStateManager.rotate(90, 0, -1, 0); + GlStateManager.translate(0.1F, 0.2F, 0); + MekanismRenderer.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "MekaSuitHelmet.png")); + + mekaSuitHelmet.render(0.0625F); + + + GlStateManager.popMatrix(); + } + + @Nonnull + @Override + protected TransformType getTransform(@Nonnull ItemStack stack) { + return model.getTransform(); + } + +} \ No newline at end of file diff --git a/src/main/java/mekanism/common/Mekanism.java b/src/main/java/mekanism/common/Mekanism.java index 5427e5ac..668fcd91 100644 --- a/src/main/java/mekanism/common/Mekanism.java +++ b/src/main/java/mekanism/common/Mekanism.java @@ -96,7 +96,6 @@ import net.minecraft.world.WorldServer; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BiomeProvider; -import net.minecraftforge.client.event.ColorHandlerEvent; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.MinecraftForge; @@ -784,6 +783,9 @@ private void registerTileEntities() { registerTileEntity(TileEntityUniversalCable.class, "universal_cable"); registerTileEntity(TileEntityNutritionalLiquifier.class, "nutritional_liquifier"); + registerTileEntity(TileEntitySuperchargedCoil.class,"supercharged_coil"); + + //Register the TESRs proxy.registerTESRs(); @@ -846,6 +848,7 @@ public void preInit(FMLPreInitializationEvent event) { MinecraftForge.EVENT_BUS.register(MekanismItems.GasMask); MinecraftForge.EVENT_BUS.register(MekanismItems.FreeRunners); + // MinecraftForge.EVENT_BUS.register(MekanismItems.MekaSuitHelmet); if (Loader.isModLoaded("mcmultipart")) { //Set up multiparts diff --git a/src/main/java/mekanism/common/MekanismBlocks.java b/src/main/java/mekanism/common/MekanismBlocks.java index e422241b..f25bd79d 100644 --- a/src/main/java/mekanism/common/MekanismBlocks.java +++ b/src/main/java/mekanism/common/MekanismBlocks.java @@ -2,6 +2,7 @@ import static mekanism.common.block.states.BlockStateBasic.BasicBlock.BASIC_BLOCK_1; import static mekanism.common.block.states.BlockStateBasic.BasicBlock.BASIC_BLOCK_2; +import static mekanism.common.block.states.BlockStateBasic.BasicBlock.BASIC_BLOCK_3; import static mekanism.common.block.states.BlockStateMachine.MachineBlock.MACHINE_BLOCK_1; import static mekanism.common.block.states.BlockStateMachine.MachineBlock.MACHINE_BLOCK_2; import static mekanism.common.block.states.BlockStateMachine.MachineBlock.MACHINE_BLOCK_3; @@ -41,6 +42,7 @@ public class MekanismBlocks { public static Block BasicBlock = BlockBasic.getBlockBasic(BASIC_BLOCK_1); public static Block BasicBlock2 = BlockBasic.getBlockBasic(BASIC_BLOCK_2); + public static Block BasicBlock3 = BlockBasic.getBlockBasic(BASIC_BLOCK_3); public static Block MachineBlock = BlockMachine.getBlockMachine(MACHINE_BLOCK_1); public static Block MachineBlock2 = BlockMachine.getBlockMachine(MACHINE_BLOCK_2); public static Block MachineBlock3 = BlockMachine.getBlockMachine(MACHINE_BLOCK_3); @@ -68,6 +70,7 @@ public class MekanismBlocks { public static void registerBlocks(IForgeRegistry registry) { registry.register(init(BasicBlock, "BasicBlock")); registry.register(init(BasicBlock2, "BasicBlock2")); + registry.register(init(BasicBlock3, "BasicBlock3")); registry.register(init(MachineBlock, "MachineBlock")); registry.register(init(MachineBlock2, "MachineBlock2")); registry.register(init(MachineBlock3, "MachineBlock3")); @@ -97,6 +100,7 @@ public static void registerBlocks(IForgeRegistry registry) { public static void registerItemBlocks(IForgeRegistry registry) { registry.register(MekanismItems.init(new ItemBlockBasic(BasicBlock), "BasicBlock")); registry.register(MekanismItems.init(new ItemBlockBasic(BasicBlock2), "BasicBlock2")); + registry.register(MekanismItems.init(new ItemBlockBasic(BasicBlock3), "BasicBlock3")); registry.register(MekanismItems.init(new ItemBlockMachine(MachineBlock), "MachineBlock")); registry.register(MekanismItems.init(new ItemBlockMachine(MachineBlock2), "MachineBlock2")); registry.register(MekanismItems.init(new ItemBlockMachine(MachineBlock3), "MachineBlock3")); diff --git a/src/main/java/mekanism/common/MekanismItems.java b/src/main/java/mekanism/common/MekanismItems.java index dd757cdd..11ecddc9 100644 --- a/src/main/java/mekanism/common/MekanismItems.java +++ b/src/main/java/mekanism/common/MekanismItems.java @@ -1,40 +1,6 @@ package mekanism.common; -import mekanism.common.item.ItemAlloy; -import mekanism.common.item.ItemAtomicDisassembler; -import mekanism.common.item.ItemBalloon; -import mekanism.common.item.ItemClump; -import mekanism.common.item.ItemConfigurationCard; -import mekanism.common.item.ItemConfigurator; -import mekanism.common.item.ItemControlCircuit; -import mekanism.common.item.ItemCraftingFormula; -import mekanism.common.item.ItemCrystal; -import mekanism.common.item.ItemDictionary; -import mekanism.common.item.ItemDirtyDust; -import mekanism.common.item.ItemDust; -import mekanism.common.item.ItemElectricBow; -import mekanism.common.item.ItemEnergized; -import mekanism.common.item.ItemFlamethrower; -import mekanism.common.item.ItemFreeRunners; -import mekanism.common.item.ItemGasMask; -import mekanism.common.item.ItemGaugeDropper; -import mekanism.common.item.ItemHDPE; -import mekanism.common.item.ItemIngot; -import mekanism.common.item.ItemJetpack; -import mekanism.common.item.ItemMekanism; -import mekanism.common.item.ItemNetworkReader; -import mekanism.common.item.ItemNugget; -import mekanism.common.item.ItemOtherDust; -import mekanism.common.item.ItemPortableTeleporter; -import mekanism.common.item.ItemProxy; -import mekanism.common.item.ItemRobit; -import mekanism.common.item.ItemScubaTank; -import mekanism.common.item.ItemSeismicReader; -import mekanism.common.item.ItemShard; -import mekanism.common.item.ItemTierInstaller; -import mekanism.common.item.ItemUpgrade; -import mekanism.common.item.ItemWalkieTalkie; -import mekanism.common.item.ItemCanteen; +import mekanism.common.item.*; import net.minecraft.item.Item; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.common.registry.GameRegistry.ObjectHolder; @@ -86,6 +52,13 @@ public class MekanismItems { public static final ItemFreeRunners FreeRunners = new ItemFreeRunners(); public static final Item Balloon = new ItemBalloon(); + public static final ItemMekTool MekTool = new ItemMekTool(); +// public static final ItemMekaSuitHelmet MekaSuitHelmet = new ItemMekaSuitHelmet(); + // public static final ItemMekaSuitChest MekaSuitChest = new ItemMekaSuitChest(); + + + + //Multi-ID Items public static final Item OtherDust = new ItemOtherDust(); public static final Item Dust = new ItemDust(); @@ -119,6 +92,7 @@ public static void registerItems(IForgeRegistry registry) { registry.register(init(AnchorUpgrade, "AnchorUpgrade")); registry.register(init(Robit, "Robit")); registry.register(init(AtomicDisassembler, "AtomicDisassembler")); + registry.register(init(MekTool, "MekTool")); registry.register(init(EnrichedAlloy, "EnrichedAlloy")); registry.register(init(ReinforcedAlloy, "ReinforcedAlloy")); registry.register(init(AtomicAlloy, "AtomicAlloy")); @@ -158,6 +132,9 @@ public static void registerItems(IForgeRegistry registry) { registry.register(init(GaugeDropper, "GaugeDropper")); registry.register(init(TierInstaller, "TierInstaller")); registry.register(init(OtherDust, "OtherDust")); + + // registry.register(init(MekaSuitHelmet, "MekaSuitHelmet")); + // registry.register(init(MekaSuitChest, "MekaSuitChest")); } public static Item init(Item item, String name) { diff --git a/src/main/java/mekanism/common/Upgrade.java b/src/main/java/mekanism/common/Upgrade.java index 3d86fe36..968947e1 100644 --- a/src/main/java/mekanism/common/Upgrade.java +++ b/src/main/java/mekanism/common/Upgrade.java @@ -17,10 +17,10 @@ import net.minecraftforge.common.util.Constants.NBT; public enum Upgrade { - SPEED("speed", 8, EnumColor.RED), - ENERGY("energy", 8, EnumColor.BRIGHT_GREEN), + SPEED("speed", 10, EnumColor.RED), + ENERGY("energy", 10, EnumColor.BRIGHT_GREEN), FILTER("filter", 1, EnumColor.DARK_AQUA), - GAS("gas", 8, EnumColor.YELLOW), + GAS("gas", 10, EnumColor.YELLOW), MUFFLING("muffling", 4, EnumColor.DARK_GREY), ANCHOR("anchor", 1, EnumColor.DARK_GREEN); diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index e778e95d..b4961550 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -33,13 +33,7 @@ import mekanism.common.security.ISecurityItem; import mekanism.common.security.ISecurityTile; import mekanism.common.tier.FluidTankTier; -import mekanism.common.tile.TileEntityFactory; -import mekanism.common.tile.TileEntityFluidTank; -import mekanism.common.tile.TileEntityLaser; -import mekanism.common.tile.TileEntityLaserAmplifier; -import mekanism.common.tile.TileEntityLogisticalSorter; -import mekanism.common.tile.TileEntityMetallurgicInfuser; -import mekanism.common.tile.TileEntityQuantumEntangloporter; +import mekanism.common.tile.*; import mekanism.common.tile.prefab.TileEntityBasicBlock; import mekanism.common.tile.prefab.TileEntityContainerBlock; import mekanism.common.util.FluidContainerUtils; @@ -103,6 +97,7 @@ public abstract class BlockMachine extends BlockMekanismContainer { //private static final AxisAlignedBB INDUSTRIAL_ALARM_BOUNDS = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); private static final AxisAlignedBB TANK_BOUNDS = new AxisAlignedBB(0.125F, 0.0F, 0.125F, 0.875F, 1.0F, 0.875F); private static final AxisAlignedBB LASER_BOUNDS = new AxisAlignedBB(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); + private static final AxisAlignedBB SUPERCHARGED_COIL = new AxisAlignedBB(0.25F, 0.0F, 0.25F, 0.75F, 1.0F, 0.75F); private static final AxisAlignedBB LOGISTICAL_SORTER_BOUNDS = new AxisAlignedBB(0.125F, 0.0F, 0.125F, 0.875F, 1.0F, 0.875F); public BlockMachine() { @@ -695,6 +690,10 @@ public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess world, Block if (tile instanceof TileEntityLogisticalSorter) { return MultipartUtils.rotate(LOGISTICAL_SORTER_BOUNDS.offset(-0.5, -0.5, -0.5), ((TileEntityLogisticalSorter) tile).facing).offset(0.5, 0.5, 0.5); } + case SUPERCHARGED_COIL: + if (tile instanceof TileEntitySuperchargedCoil) { + return MultipartUtils.rotate(SUPERCHARGED_COIL.offset(-0.5, -0.5, -0.5), ((TileEntitySuperchargedCoil) tile).facing).offset(0.5, 0.5, 0.5); + } default: return super.getBoundingBox(state, world, pos); } @@ -733,6 +732,7 @@ public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, B case PERSONAL_CHEST: case LOGISTICAL_SORTER: case LASER: + case SUPERCHARGED_COIL: return BlockFaceShape.UNDEFINED; case ELECTRIC_PUMP: case FLUIDIC_PLENISHER: diff --git a/src/main/java/mekanism/common/block/states/BlockStateBasic.java b/src/main/java/mekanism/common/block/states/BlockStateBasic.java index 53ccdcd2..18b5532d 100644 --- a/src/main/java/mekanism/common/block/states/BlockStateBasic.java +++ b/src/main/java/mekanism/common/block/states/BlockStateBasic.java @@ -10,22 +10,7 @@ import mekanism.common.MekanismBlocks; import mekanism.common.block.BlockBasic; import mekanism.common.tier.BaseTier; -import mekanism.common.tile.TileEntityBin; -import mekanism.common.tile.TileEntityBoilerCasing; -import mekanism.common.tile.TileEntityBoilerValve; -import mekanism.common.tile.TileEntityDynamicTank; -import mekanism.common.tile.TileEntityDynamicValve; -import mekanism.common.tile.TileEntityInductionCasing; -import mekanism.common.tile.TileEntityInductionCell; -import mekanism.common.tile.TileEntityInductionPort; -import mekanism.common.tile.TileEntityInductionProvider; -import mekanism.common.tile.TileEntityPressureDisperser; -import mekanism.common.tile.TileEntitySecurityDesk; -import mekanism.common.tile.TileEntityStructuralGlass; -import mekanism.common.tile.TileEntitySuperheatingElement; -import mekanism.common.tile.TileEntityThermalEvaporationBlock; -import mekanism.common.tile.TileEntityThermalEvaporationController; -import mekanism.common.tile.TileEntityThermalEvaporationValve; +import mekanism.common.tile.*; import mekanism.common.util.LangUtils; import net.minecraft.block.Block; import net.minecraft.block.properties.IProperty; @@ -54,7 +39,8 @@ public BlockStateBasic(BlockBasic block, PropertyEnum typeProper public enum BasicBlock { BASIC_BLOCK_1, - BASIC_BLOCK_2; + BASIC_BLOCK_2, + BASIC_BLOCK_3; private PropertyEnum predicatedProperty; @@ -71,6 +57,8 @@ public Block getBlock() { return MekanismBlocks.BasicBlock; case BASIC_BLOCK_2: return MekanismBlocks.BasicBlock2; + case BASIC_BLOCK_3: + return MekanismBlocks.BasicBlock3; default: throw new IllegalStateException(); } @@ -107,7 +95,12 @@ public enum BasicBlockType implements IStringSerializable { BOILER_VALVE(BasicBlock.BASIC_BLOCK_2, 8, "BoilerValve", TileEntityBoilerValve::new, true, BlockStateUtils.NO_ROTATION, false, false, false, true), SECURITY_DESK(BasicBlock.BASIC_BLOCK_2, 9, "SecurityDesk", TileEntitySecurityDesk::new, true, Plane.HORIZONTAL, false, false, false, false, false, false), URANIUM_BLOCK(BasicBlock.BASIC_BLOCK_2, 10, "UraniumBlock", null, false, BlockStateUtils.NO_ROTATION, false, false, true), - lEAD_BLOCK(BasicBlock.BASIC_BLOCK_2, 11, "LeadBlock", null, false, BlockStateUtils.NO_ROTATION, false, false, true); + lEAD_BLOCK(BasicBlock.BASIC_BLOCK_2, 11, "LeadBlock", null, false, BlockStateUtils.NO_ROTATION, false, false, true), + + SPS_CASING(BasicBlock.BASIC_BLOCK_3, 0, "SpsCasing", null, false, BlockStateUtils.NO_ROTATION, false, false, false), + FISSION_REACHER_CASING(BasicBlock.BASIC_BLOCK_3, 1, "FissionReacherCasing", null, false, BlockStateUtils.NO_ROTATION, false, false, false), + CONTROL_ROD_ASSEMBLY(BasicBlock.BASIC_BLOCK_3, 2, "ControlRodAssembly", null, false, BlockStateUtils.NO_ROTATION, false, false, false), + FISSION_FUEL_ASSEMBLY(BasicBlock.BASIC_BLOCK_3, 3, "FissionFuelAssembly", null, false, BlockStateUtils.NO_ROTATION, false, false, false); @Nonnull public BasicBlock blockType; diff --git a/src/main/java/mekanism/common/block/states/BlockStateMachine.java b/src/main/java/mekanism/common/block/states/BlockStateMachine.java index 61d181a6..1472b25f 100644 --- a/src/main/java/mekanism/common/block/states/BlockStateMachine.java +++ b/src/main/java/mekanism/common/block/states/BlockStateMachine.java @@ -117,9 +117,10 @@ public enum MachineType implements IStringSerializable, IBlockType { ELECTRIC_PUMP(MachineBlock.MACHINE_BLOCK_3, 8, "ElectricPump", 17, TileEntityElectricPump::new, true, true, false, Plane.HORIZONTAL, false), PERSONAL_CHEST(MachineBlock.MACHINE_BLOCK_3, 9, "PersonalChest", 19, TileEntityPersonalChest::new, true, true, false, Plane.HORIZONTAL, false), LOGISTICAL_SORTER(MachineBlock.MACHINE_BLOCK_3, 10, "LogisticalSorter", 59, TileEntityLogisticalSorter::new, false, true, false, BlockStateUtils.ALL_FACINGS, true), - Nutritional_Liquifier(MachineBlock.MACHINE_BLOCK_3, 11, "NutritionalLiquifier", 60, TileEntityNutritionalLiquifier::new, true, true, true, Plane.HORIZONTAL, true); + Nutritional_Liquifier(MachineBlock.MACHINE_BLOCK_3, 11, "NutritionalLiquifier", 60, TileEntityNutritionalLiquifier::new, true, true, true, Plane.HORIZONTAL, true), //INDUSTRIAL_ALARM(MachineBlock.MACHINE_BLOCK_3,12,"IndustrialAlarm",-1,TileEntityIndustrialAlarm::new,false,true,false, Plane.HORIZONTAL,true); + SUPERCHARGED_COIL(MachineBlock.MACHINE_BLOCK_3,12,"superchargedcoil",-1,TileEntitySuperchargedCoil::new,false,true,false,BlockStateUtils.ALL_FACINGS,false); public MachineBlock typeBlock; @@ -284,6 +285,7 @@ public double getUsage() { // return 0; case ANTIPROTONIC_NUCLEOSYNTHESIZER: return MekanismConfig.current().usage.nucleosynthesizer.val(); + default: return 0; } diff --git a/src/main/java/mekanism/common/config/GeneralConfig.java b/src/main/java/mekanism/common/config/GeneralConfig.java index a1c4ffe9..038779c5 100644 --- a/src/main/java/mekanism/common/config/GeneralConfig.java +++ b/src/main/java/mekanism/common/config/GeneralConfig.java @@ -127,24 +127,43 @@ public class GeneralConfig extends BaseConfig { public final IntOption disassemblerEnergyUsage = new IntOption(this, "general", "DisassemblerEnergyUsage", 10, "Base Energy (Joules) usage of the Atomic Disassembler. (Gets multiplied by speed factor)"); + public final IntOption toolEnergyUsage = new IntOption(this, "general", "toolEnergyUsage", 10, + "Base Energy (Joules) usage of the mektool. (Gets multiplied by speed factor)"); + public final IntOption disassemblerEnergyUsageHoe = new IntOption(this, "general", "DisassemblerEnergyUsageHoe", 10, "Cost in Joules of using the Atomic Disassembler as a hoe."); + public final IntOption toolEnergyUsageHoe = new IntOption(this, "general", "toolEnergyUsageHoe", 10, + "Cost in Joules of using the mektool as a hoe."); + public final IntOption disassemblerEnergyUsageWeapon = new IntOption(this, "general", "DisassemblerEnergyUsageWeapon", 2000, "Cost in Joules of using the Atomic Disassembler as a weapon."); + public final IntOption toolEnergyUsageWeapon = new IntOption(this, "general", "toolEnergyUsageWeapon", 2000, + "Cost in Joules of using the mektool as a weapon."); + public final IntOption disassemblerMiningRange = new IntOption(this, "general", "DisassemblerMiningRange", 10, "The Range of the Atomic Disassembler Extended Vein Mining."); + public final IntOption toolMiningRange = new IntOption(this, "general", "toolMiningRange", 20, + "The Range of the mektool Extended Vein Mining."); + public final IntOption disassemblerMiningCount = new IntOption(this, "general", "DisassemblerMiningCount", 128, "The max Atomic Disassembler Vein Mining Block Count."); + public final IntOption toolMiningCount = new IntOption(this, "general", "toolMiningCount", 256, + "The max Atomic Disassembler Vein Mining Block Count."); + public final BooleanOption disassemblerSlowMode = new BooleanOption(this, "general", "DisassemblerSlowMode", true, "Enable the 'Slow' mode for the Atomic Disassembler."); + public final BooleanOption disassemblerFastMode = new BooleanOption(this, "general", "DisassemblerFastMode", true, "Enable the 'Fast' mode for the Atomic Disassembler."); + public final BooleanOption toolVeryFastMode = new BooleanOption(this, "general", "toolveryFastMode", true, + "Enable the 'Fast' mode for the Atomic Disassembler."); + public final BooleanOption disassemblerVeinMining = new BooleanOption(this, "general", "DisassemblerVeinMiningMode", true, "Enable the 'Vein Mining' mode for the Atomic Disassembler."); @@ -154,11 +173,19 @@ public class GeneralConfig extends BaseConfig { public final IntOption disassemblerDamageMin = new IntOption(this, "general", "DisassemblerDamageMin", 4, "The amount of damage the Atomic Disassembler does when it is out of power. (Value is in number of half hearts)"); + public final IntOption toolDamageMin = new IntOption(this, "general", "toolDamageMin", 20, + "The amount of damage the mektool does when it is out of power. (Value is in number of half hearts)"); + public final IntOption disassemblerDamageMax = new IntOption(this, "general", "DisassemblerDamageMax", 20, "The amount of damage the Atomic Disassembler does when it has at least DisassemblerEnergyUsageWeapon power stored. (Value is in number of half hearts)"); + public final IntOption toolDamageMax = new IntOption(this, "general", "toolDamageMax", 256, + "The amount of damage the mektool does when it has at least DisassemblerEnergyUsageWeapon power stored. (Value is in number of half hearts)"); + public final DoubleOption disassemblerBatteryCapacity = new DoubleOption(this, "general", "DisassemblerBatteryCapacity", 1000000, "Maximum amount (joules) of energy the Atomic Disassembler can contain", 0, Double.MAX_VALUE).setRequiresGameRestart(true); + public final DoubleOption toolBatteryCapacity = new DoubleOption(this, "general", "toolBatteryCapacity", Long.MAX_VALUE, "Maximum amount (joules) of energy the Atomic Disassembler can contain", 0, Double.MAX_VALUE).setRequiresGameRestart(true); + public final IntOption VOICE_PORT = new IntOption(this, "general", "VoicePort", 36123, "TCP port for the Voice server to listen on.", 1, 65535); @@ -175,9 +202,16 @@ public class GeneralConfig extends BaseConfig { public final DoubleOption armoredJetpackDamageRatio = new DoubleOption(this, "general", "ArmoredJetpackDamageRatio", 0.8, "Damage absorb ratio of the Armored Jetpack."); + + public final DoubleOption armoredMekaSuitHelmetDamageRatio = new DoubleOption(this, "general", "ArmoredMekaSuitHelmetDamageRatio", 20, + "Damage absorb ratio of the Armored MekaSuit Helmet."); + public final IntOption armoredJetpackDamageMax = new IntOption(this, "general", "ArmoredJepackDamageMax", 115, "Max damage the Armored Jetpack can absorb."); + public final IntOption armoredMekaSuitHelmetDamageMax = new IntOption(this, "general", "MekaSuitHelmetDamageMax", 1000, + "Max damage the MekaSuit Helmet can absorb."); + public final BooleanOption aestheticWorldDamage = new BooleanOption(this, "general", "AestheticWorldDamage", true, "If enabled, lasers can break blocks and the flamethrower starts fires."); diff --git a/src/main/java/mekanism/common/integration/multipart/MultipartMekanism.java b/src/main/java/mekanism/common/integration/multipart/MultipartMekanism.java index 358e2bee..c8695147 100644 --- a/src/main/java/mekanism/common/integration/multipart/MultipartMekanism.java +++ b/src/main/java/mekanism/common/integration/multipart/MultipartMekanism.java @@ -1,8 +1,5 @@ package mekanism.common.integration.multipart; -import static mekanism.common.block.states.BlockStateMachine.MachineBlock.MACHINE_BLOCK_1; -import static mekanism.common.block.states.BlockStateMachine.MachineBlock.MACHINE_BLOCK_2; - import java.util.Collection; import java.util.Collections; import javax.annotation.Nonnull; @@ -55,6 +52,8 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; +import static mekanism.common.block.states.BlockStateMachine.MachineBlock.*; + @MCMPAddon public class MultipartMekanism implements IMCMPAddon { @@ -185,8 +184,11 @@ public void registerMicroMaterials() { if (!MachineType.get(MACHINE_BLOCK_2, i).hasModel) { FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(MekanismBlocks.MachineBlock2, 1, i)); } + if (!MachineType.get(MACHINE_BLOCK_3, i).hasModel) { + FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(MekanismBlocks.MachineBlock3, 1, i)); + } } - + FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(MekanismBlocks.BasicBlock3, 1, 0)); FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(MekanismBlocks.BasicBlock2, 1, 0)); FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(MekanismBlocks.CardboardBox)); } diff --git a/src/main/java/mekanism/common/inventory/container/ContainerFactory.java b/src/main/java/mekanism/common/inventory/container/ContainerFactory.java index aa3c82ba..7d0f30ea 100644 --- a/src/main/java/mekanism/common/inventory/container/ContainerFactory.java +++ b/src/main/java/mekanism/common/inventory/container/ContainerFactory.java @@ -26,25 +26,7 @@ public ContainerFactory(InventoryPlayer inventory, TileEntityFactory tile) { @Override protected void addSlots() { addSlotToContainer(new SlotDischarge(tileEntity, 1, 7, 13)); - if (tileEntity.tier == FactoryTier.BASIC) { - addSlotToContainer(new Slot(tileEntity, 2, 180, 75) { - @Override - public boolean isItemValid(ItemStack stack) { - MachineType swapType = MachineType.get(stack); - return swapType != null && !swapType.isFactory(); - } - }); - addSlotToContainer(new SlotOutput(tileEntity, 3, 180, 112)); - }else if(tileEntity.tier == FactoryTier.ADVANCED) { - addSlotToContainer(new Slot(tileEntity, 2, 180, 75) { - @Override - public boolean isItemValid(ItemStack stack) { - MachineType swapType = MachineType.get(stack); - return swapType != null && !swapType.isFactory(); - } - }); - addSlotToContainer(new SlotOutput(tileEntity, 3, 180, 112)); - }else if(tileEntity.tier == FactoryTier.ELITE) { + if (tileEntity.tier == FactoryTier.BASIC || tileEntity.tier == FactoryTier.ADVANCED || tileEntity.tier == FactoryTier.ELITE) { addSlotToContainer(new Slot(tileEntity, 2, 180, 75) { @Override public boolean isItemValid(ItemStack stack) { diff --git a/src/main/java/mekanism/common/item/ItemCanteen.java b/src/main/java/mekanism/common/item/ItemCanteen.java index 87b142e7..dc7b337a 100644 --- a/src/main/java/mekanism/common/item/ItemCanteen.java +++ b/src/main/java/mekanism/common/item/ItemCanteen.java @@ -191,17 +191,17 @@ public ActionResult onItemRightClick(World world, EntityPlayer player if (received != null) { int max2 = player.getFoodStats().getFoodLevel() +received.amount; player.getFoodStats().setFoodLevel(max2); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(1),2000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(3),4000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(5),4000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(6),20,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(8),2000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(10),4000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(11),4000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(12),4000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(16),2000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(22),4000,5)); - player.addPotionEffect(new PotionEffect(Potion.getPotionById(23),4000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(1),2000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(3),4000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(5),4000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(6),20,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(8),2000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(10),4000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(11),4000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(12),4000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(16),2000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(22),4000,5)); + // player.addPotionEffect(new PotionEffect(Potion.getPotionById(23),4000,5)); } return ActionResult.newResult(EnumActionResult.SUCCESS, stack); } diff --git a/src/main/java/mekanism/common/item/ItemMekTool.java b/src/main/java/mekanism/common/item/ItemMekTool.java new file mode 100644 index 00000000..8e9404b5 --- /dev/null +++ b/src/main/java/mekanism/common/item/ItemMekTool.java @@ -0,0 +1,473 @@ +package mekanism.common.item; + +import com.google.common.collect.Multimap; +import mekanism.api.Coord4D; +import mekanism.api.EnumColor; +import mekanism.common.Mekanism; +import mekanism.common.OreDictCache; +import mekanism.common.config.MekanismConfig; +import mekanism.common.util.ItemDataUtils; +import mekanism.common.util.LangUtils; +import mekanism.common.util.MekanismUtils; +import net.minecraft.block.Block; +import net.minecraft.block.BlockDirt; +import net.minecraft.block.BlockDirt.DirtType; +import net.minecraft.block.state.IBlockState; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.SoundEvents; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemStack; +import net.minecraft.util.*; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.RayTraceResult; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.text.TextComponentString; +import net.minecraft.world.World; +import net.minecraftforge.common.util.Constants.WorldEvents; +import net.minecraftforge.event.ForgeEventFactory; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.items.ItemHandlerHelper; + +import javax.annotation.Nonnull; +import java.util.*; +import java.util.function.Supplier; + +public class ItemMekTool extends ItemEnergized { + + public ItemMekTool() { + super(MekanismConfig.current().general.toolBatteryCapacity.val()); + } + + + @Override + public boolean canHarvestBlock(@Nonnull IBlockState state, ItemStack stack) { + return state.getBlock() != Blocks.BEDROCK; + } + + @SideOnly(Side.CLIENT) + @Override + public void addInformation(ItemStack itemstack, World world, List list, ITooltipFlag flag) { + super.addInformation(itemstack, world, list, flag); + Mode mode = getMode(itemstack); + list.add(LangUtils.localize("tooltip.mode") + ": " + EnumColor.INDIGO + mode.getModeName()); + list.add(LangUtils.localize("tooltip.efficiency") + ": " + EnumColor.INDIGO + mode.getEfficiency()); + list.addAll(MekanismUtils.splitTooltip(LangUtils.localize("tooltip.MekTool1"),itemstack)); + list.addAll(MekanismUtils.splitTooltip(LangUtils.localize("tooltip.MekTool2"),itemstack)); + list.addAll(MekanismUtils.splitTooltip(LangUtils.localize("tooltip.MekTool3"),itemstack)); + list.addAll(MekanismUtils.splitTooltip(LangUtils.localize("tooltip.MekTool4"),itemstack)); + } + + @Override + public boolean hitEntity(ItemStack itemstack, EntityLivingBase target, EntityLivingBase attacker) { + double energy = getEnergy(itemstack); + int energyCost = MekanismConfig.current().general.toolEnergyUsageWeapon.val(); + int minDamage = MekanismConfig.current().general.toolDamageMin.val(); + int damageDifference = MekanismConfig.current().general.toolDamageMax.val() - minDamage; + + + //If we don't have enough power use it at a reduced power level + double percent = 1; + if (energy < energyCost && energyCost != 0) { + percent = energy / energyCost; + } + float damage = (float) (minDamage + damageDifference * percent); + if (attacker instanceof EntityPlayer) { + if(energy > MekanismConfig.current().general.toolBatteryCapacity.val()*0.9 ) { + // if(target.getHealth()/ target.getMaxHealth() > 0.1) { + // target.setHealth(0.1F); + // } + // else { + target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), damage * 8096); + //target.attackEntityFrom(DamageSource.causeIndirectMagicDamage(attacker, attacker), damage * 8096); + // } + }else if(energy > MekanismConfig.current().general.toolBatteryCapacity.val()*0.75 ) { + target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), damage * 4096); + // target.attackEntityFrom(DamageSource.causeIndirectMagicDamage(attacker, attacker), damage * 4096); + }else if(energy > MekanismConfig.current().general.toolBatteryCapacity.val()*0.5 ) { + target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), damage * 2048); + // target.attackEntityFrom(DamageSource.causeIndirectMagicDamage(attacker, attacker), damage * 2048); + }else if(energy > MekanismConfig.current().general.toolBatteryCapacity.val()*0.25 ) { + target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), damage * 1024); + // target.attackEntityFrom(DamageSource.causeIndirectMagicDamage(attacker, attacker), damage * 1024); + }else{ + target.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) attacker), damage); + // target.attackEntityFrom(DamageSource.causeIndirectMagicDamage(attacker, attacker), damage); + } + } else { + if(energy > MekanismConfig.current().general.toolBatteryCapacity.val()*0.75 ) { + target.attackEntityFrom(DamageSource.causeMobDamage(attacker), damage*4096); + }else if(energy > MekanismConfig.current().general.toolBatteryCapacity.val()*0.5 ) { + target.attackEntityFrom(DamageSource.causeMobDamage(attacker), damage * 2048); + }else if(energy > MekanismConfig.current().general.toolBatteryCapacity.val()*0.25 ) { + target.attackEntityFrom(DamageSource.causeMobDamage(attacker), damage * 1024); + }else{ + target.attackEntityFrom(DamageSource.causeMobDamage(attacker), damage); + } + } + + if (energy > 0) { + setEnergy(itemstack, energy - energyCost); + } + + + return false; + } + + @Override + public float getDestroySpeed(ItemStack itemstack, IBlockState state) { + return getEnergy(itemstack) != 0 ? getMode(itemstack).getEfficiency() : 1F; + } + + @Override + public boolean onBlockDestroyed(ItemStack itemstack, World world, IBlockState state, BlockPos pos, EntityLivingBase entityliving) { + setEnergy(itemstack, getEnergy(itemstack) - getDestroyEnergy(itemstack, state.getBlockHardness(world, pos))); + return true; + } + + private RayTraceResult doRayTrace(IBlockState state, BlockPos pos, EntityPlayer player) { + Vec3d positionEyes = player.getPositionEyes(1.0F); + Vec3d playerLook = player.getLook(1.0F); + double blockReachDistance = player.getAttributeMap().getAttributeInstance(EntityPlayer.REACH_DISTANCE).getAttributeValue(); + Vec3d maxReach = positionEyes.add(playerLook.x * blockReachDistance, playerLook.y * blockReachDistance, playerLook.z * blockReachDistance); + RayTraceResult res = state.collisionRayTrace(player.world, pos, playerLook, maxReach); + //noinspection ConstantConditions - idea thinks it's nonnull due to package level annotations, but it's not + return res != null ? res : new RayTraceResult(RayTraceResult.Type.MISS, Vec3d.ZERO, EnumFacing.UP, pos); + } + + @Override + public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, EntityPlayer player) { + super.onBlockStartBreak(itemstack, pos, player); + if (!player.world.isRemote && !player.capabilities.isCreativeMode) { + Mode mode = getMode(itemstack); + boolean extended = mode == Mode.EXTENDED_VEIN; + if (extended || mode == Mode.VEIN) { + IBlockState state = player.world.getBlockState(pos); + Block block = state.getBlock(); + if (block == Blocks.LIT_REDSTONE_ORE) { + block = Blocks.REDSTONE_ORE; + } + RayTraceResult raytrace = doRayTrace(state, pos, player); + ItemStack stack = block.getPickBlock(state, raytrace, player.world, pos, player); + List names = OreDictCache.getOreDictName(stack); + boolean isOre = false; + for (String s : names) { + if (s.startsWith("ore") || s.equals("logWood")) { + isOre = true; + break; + } + } + if (isOre || extended) { + Coord4D orig = new Coord4D(pos, player.world); + Set found = new Finder(player, stack, orig, raytrace, extended ? MekanismConfig.current().general.toolMiningRange.val() : -1).calc(); + for (Coord4D coord : found) { + if (coord.equals(orig)) { + continue; + } + int destroyEnergy = getDestroyEnergy(itemstack, coord.getBlockState(player.world).getBlockHardness(player.world, coord.getPos())); + if (getEnergy(itemstack) < destroyEnergy) { + continue; + } + Block block2 = coord.getBlock(player.world); + block2.onBlockHarvested(player.world, coord.getPos(), state, player); + player.world.playEvent(WorldEvents.BREAK_BLOCK_EFFECTS, coord.getPos(), Block.getStateId(state)); + player.world.setBlockToAir(coord.getPos()); + block2.breakBlock(player.world, coord.getPos(), state); + block2.dropBlockAsItem(player.world, coord.getPos(), state, 0); + setEnergy(itemstack, getEnergy(itemstack) - destroyEnergy); + } + } + } + } + return false; + } + + @Override + public boolean isFull3D() { + return true; + } + + @Nonnull + @Override + public ActionResult onItemRightClick(World world, EntityPlayer entityplayer, @Nonnull EnumHand hand) { + ItemStack itemstack = entityplayer.getHeldItem(hand); + if (entityplayer.isSneaking()) { + if (!world.isRemote) { + toggleMode(itemstack); + Mode mode = getMode(itemstack); + entityplayer.sendMessage(new TextComponentString(EnumColor.DARK_BLUE + Mekanism.LOG_TAG + " " + EnumColor.GREY + LangUtils.localize("tooltip.modeToggle") + + " " + EnumColor.INDIGO + mode.getModeName() + EnumColor.AQUA + " (" + mode.getEfficiency() + ")")); + } + return new ActionResult<>(EnumActionResult.SUCCESS, itemstack); + } + return new ActionResult<>(EnumActionResult.PASS, itemstack); + } + + @Nonnull + @Override + public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { + if (!player.isSneaking()) { + ItemStack stack = player.getHeldItem(hand); + int diameter = getMode(stack).getDiameter(); + if (diameter > 0) { + Block block = world.getBlockState(pos).getBlock(); + if (block == Blocks.DIRT || block == Blocks.GRASS_PATH) { + return useItemAs(player, world, pos, side, stack, diameter, this::useHoe); + } else if (block == Blocks.GRASS) { + return useItemAs(player, world, pos, side, stack, diameter, this::useShovel); + } + } + } + return EnumActionResult.PASS; + } + + private EnumActionResult useItemAs(EntityPlayer player, World world, BlockPos pos, EnumFacing side, ItemStack stack, int diameter, ItemUseConsumer consumer) { + double energy = getEnergy(stack); + int hoeUsage = MekanismConfig.current().general.toolEnergyUsageHoe.val(); + if (energy < hoeUsage || consumer.use(stack, player, world, pos, side) == EnumActionResult.FAIL) { + //Fail if we don't have enough energy or using the item failed + return EnumActionResult.FAIL; + } + double energyUsed = hoeUsage; + int radius = (diameter - 1) / 2; + for (int x = -radius; x <= radius; x++) { + for (int z = -radius; z <= radius; z++) { + if (energyUsed + hoeUsage > energy) { + break; + } else if ((x != 0 || z != 0) && consumer.use(stack, player, world, pos.add(x, 0, z), side) == EnumActionResult.SUCCESS) { + //Don't attempt to use it on the source location as it was already done above + // If we successfully used it in a spot increment how much energy we used + energyUsed += hoeUsage; + } + } + } + setEnergy(stack, energy - energyUsed); + return EnumActionResult.SUCCESS; + } + + private EnumActionResult useHoe(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing facing) { + if (!player.canPlayerEdit(pos.offset(facing), facing, stack)) { + return EnumActionResult.FAIL; + } + int hook = ForgeEventFactory.onHoeUse(stack, player, world, pos); + if (hook != 0) { + return hook > 0 ? EnumActionResult.SUCCESS : EnumActionResult.FAIL; + } + if (facing != EnumFacing.DOWN && world.isAirBlock(pos.up())) { + IBlockState state = world.getBlockState(pos); + Block block = state.getBlock(); + IBlockState newState = null; + if (block == Blocks.GRASS || block == Blocks.GRASS_PATH) { + newState = Blocks.FARMLAND.getDefaultState(); + } else if (block == Blocks.DIRT) { + DirtType type = state.getValue(BlockDirt.VARIANT); + if (type == DirtType.DIRT) { + newState = Blocks.FARMLAND.getDefaultState(); + } else if (type == DirtType.COARSE_DIRT) { + newState = Blocks.DIRT.getDefaultState().withProperty(BlockDirt.VARIANT, DirtType.DIRT); + } + } + if (newState != null) { + setBlock(stack, player, world, pos, newState); + return EnumActionResult.SUCCESS; + } + } + return EnumActionResult.PASS; + } + + private EnumActionResult useShovel(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing facing) { + if (!player.canPlayerEdit(pos.offset(facing), facing, stack)) { + return EnumActionResult.FAIL; + } else if (facing != EnumFacing.DOWN && world.isAirBlock(pos.up())) { + Block block = world.getBlockState(pos).getBlock(); + if (block == Blocks.GRASS) { + setBlock(stack, player, world, pos, Blocks.GRASS_PATH.getDefaultState()); + return EnumActionResult.SUCCESS; + } + } + return EnumActionResult.PASS; + } + + private void setBlock(ItemStack stack, EntityPlayer player, World worldIn, BlockPos pos, IBlockState state) { + worldIn.playSound(player, pos, SoundEvents.ITEM_HOE_TILL, SoundCategory.BLOCKS, 1.0F, 1.0F); + if (!worldIn.isRemote) { + worldIn.setBlockState(pos, state, 11); + stack.damageItem(1, player); + } + } + + private int getDestroyEnergy(ItemStack itemStack, float hardness) { + int destroyEnergy = MekanismConfig.current().general.toolEnergyUsage.val() * getMode(itemStack).getEfficiency(); + return hardness == 0 ? destroyEnergy / 2 : destroyEnergy; + } + + public Mode getMode(ItemStack itemStack) { + return Mode.getFromInt(ItemDataUtils.getInt(itemStack, "mode")); + } + + public void toggleMode(ItemStack itemStack) { + ItemDataUtils.setInt(itemStack, "mode", Mode.getNextEnabledAsInt(getMode(itemStack))); + } + + @Override + public boolean canSend(ItemStack itemStack) { + return false; + } + + @Nonnull + @Override + @Deprecated + public Multimap getItemAttributeModifiers(EntityEquipmentSlot equipmentSlot) { + Multimap multiMap = super.getItemAttributeModifiers(equipmentSlot); + if (equipmentSlot == EntityEquipmentSlot.MAINHAND) { + multiMap.put(SharedMonsterAttributes.ATTACK_SPEED.getName(), new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", -2.4000000953674316D, 0)); + } + return multiMap; + } + + public enum Mode { + NORMAL("normal", 20, 3, () -> true), + SLOW("slow", 8, 1, () -> MekanismConfig.current().general.disassemblerSlowMode.val()), + FAST("fast", 128, 5, () -> MekanismConfig.current().general.disassemblerFastMode.val()), + VERY_FAST("very_fast", 256, 5, () -> MekanismConfig.current().general.toolVeryFastMode.val()), + VEIN("vein", 20, 3, () -> MekanismConfig.current().general.disassemblerVeinMining.val()), + EXTENDED_VEIN("extended_vein", 20, 3, () -> MekanismConfig.current().general.disassemblerExtendedMining.val()), + OFF("off", 0, 0, () -> true); + + private final Supplier checkEnabled; + private final String mode; + private final int efficiency; + //Must be odd, or zero + private final int diameter; + + Mode(String mode, int efficiency, int diameter, Supplier checkEnabled) { + this.mode = mode; + this.efficiency = efficiency; + this.diameter = diameter; + this.checkEnabled = checkEnabled; + } + + /** + * Gets a Mode from its ordinal. NOTE: if this mode is not enabled then it will reset to NORMAL + */ + public static Mode getFromInt(int ordinal) { + Mode[] values = values(); + //If it is out of bounds just shift it as if it had gone around that many times + Mode mode = values[ordinal % values.length]; + return mode.isEnabled() ? mode : NORMAL; + } + + public static int getNextEnabledAsInt(Mode mode) { + //Get the next mode + Mode next = mode.getNext(); + //keep going until we find one that is enabled (we know at the very least NORMAL and OFF are enabled + while (!next.isEnabled()) { + next = next.getNext(); + } + return next.ordinal(); + } + + private Mode getNext() { + Mode[] values = values(); + return values[(ordinal() + 1) % values.length]; + } + + public String getModeName() { + return LangUtils.localize("mekanism.tooltip.mektool." + mode); + } + + public int getEfficiency() { + return efficiency; + } + + public int getDiameter() { + return diameter; + } + + public boolean isEnabled() { + return checkEnabled.get(); + } + } + + public static class Finder { + + public static Map> ignoreBlocks = new HashMap<>(); + + static { + ignoreBlocks.put(Blocks.REDSTONE_ORE, Arrays.asList(Blocks.REDSTONE_ORE, Blocks.LIT_REDSTONE_ORE)); + ignoreBlocks.put(Blocks.LIT_REDSTONE_ORE, Arrays.asList(Blocks.REDSTONE_ORE, Blocks.LIT_REDSTONE_ORE)); + } + + private final EntityPlayer player; + public final World world; + public final ItemStack stack; + public final Coord4D location; + public final Set found = new HashSet<>(); + private final RayTraceResult rayTraceResult; + private final Block startBlock; + private final boolean isWood; + private final int maxRange; + private final int maxCount; + + public Finder(EntityPlayer p, ItemStack s, Coord4D loc, RayTraceResult traceResult, int range) { + player = p; + world = p.world; + stack = s; + location = loc; + startBlock = loc.getBlock(world); + rayTraceResult = traceResult; + isWood = OreDictCache.getOreDictName(stack).contains("logWood"); + maxRange = range; + maxCount = MekanismConfig.current().general.toolMiningCount.val() - 1; + } + + public void loop(Coord4D pointer) { + if (found.contains(pointer) || found.size() > maxCount) { + return; + } + found.add(pointer); + for (EnumFacing side : EnumFacing.VALUES) { + Coord4D coord = pointer.offset(side); + if (maxRange > 0 && location.distanceTo(coord) > maxRange) { + continue; + } + if (coord.exists(world)) { + Block block = coord.getBlock(world); + if (checkID(block)) { + ItemStack blockStack = block.getPickBlock(coord.getBlockState(world), rayTraceResult, world, coord.getPos(), player); + if (ItemHandlerHelper.canItemStacksStack(stack, blockStack) || (block == startBlock && isWood && coord.getBlockMeta(world) % 4 == stack.getItemDamage() % 4)) { + loop(coord); + } + } + } + } + } + + public Set calc() { + loop(location); + return found; + } + + public boolean checkID(Block b) { + Block origBlock = location.getBlock(world); + List ignored = ignoreBlocks.get(origBlock); + return ignored == null ? b == origBlock : ignored.contains(b); + } + } + + @FunctionalInterface + interface ItemUseConsumer { + + //Used to reference useHoe and useShovel via lambda references + EnumActionResult use(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing facing); + } + + + + +} \ No newline at end of file diff --git a/src/main/java/mekanism/common/item/ItemMekaSuitChest.java b/src/main/java/mekanism/common/item/ItemMekaSuitChest.java new file mode 100644 index 00000000..d6536f45 --- /dev/null +++ b/src/main/java/mekanism/common/item/ItemMekaSuitChest.java @@ -0,0 +1,231 @@ +/*package mekanism.common.item; + +import mekanism.api.EnumColor; +import mekanism.api.gas.Gas; +import mekanism.api.gas.GasStack; +import mekanism.api.gas.IGasItem; +import mekanism.client.render.ModelCustomArmor; +import mekanism.client.render.ModelCustomArmor.ArmorModel; +import mekanism.common.Mekanism; +import mekanism.common.MekanismFluids; +import mekanism.common.MekanismItems; +import mekanism.common.config.MekanismConfig; +import mekanism.common.util.ItemDataUtils; +import mekanism.common.util.LangUtils; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.SoundEvents; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.util.NonNullList; +import net.minecraft.util.math.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.ISpecialArmor; +import net.minecraftforge.common.util.EnumHelper; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; + +import javax.annotation.Nonnull; +import java.util.List; + +public class ItemMekaSuitChest extends ItemArmor implements IGasItem, ISpecialArmor { + + public int TRANSFER_RATE = 16; + + public ItemMekaSuitChest() { + super(EnumHelper.addArmorMaterial("MEKASUITCHEST", "mekasuitchest", 0, new int[]{0, 0, 0, 0}, 100, SoundEvents.ITEM_ARMOR_EQUIP_GENERIC, + 100), 0, EntityEquipmentSlot.CHEST); + setCreativeTab(Mekanism.tabMekanism); + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return true; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return 1D - ((getGas(stack) != null ? (double) getGas(stack).amount : 0D) / (double) getMaxGas(stack)); + } + + @Override + public int getRGBDurabilityForDisplay(@Nonnull ItemStack stack) { + return MathHelper.hsvToRGB(Math.max(0.0F, (float) (1 - getDurabilityForDisplay(stack))) / 3.0F, 1.0F, 1.0F); + } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack itemstack, World world, List list, ITooltipFlag flag) { + GasStack gasStack = getGas(itemstack); + + if (gasStack == null) { + list.add(LangUtils.localize("tooltip.noGas") + "."); + } else { + list.add(LangUtils.localize("tooltip.stored") + " " + gasStack.getGas().getLocalizedName() + ": " + gasStack.amount); + } + list.add(EnumColor.GREY + LangUtils.localize("tooltip.mode") + ": " + EnumColor.GREY + getMode(itemstack).getName()); + } + + @Override + public boolean isValidArmor(ItemStack stack, EntityEquipmentSlot armorType, Entity entity) { + return armorType == EntityEquipmentSlot.CHEST; + } + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { + return "mekanism:render/NullArmor.png"; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped _default) { + ModelCustomArmor model = ModelCustomArmor.INSTANCE; + model.modelType = ArmorModel.MEKASUITCHEST; + return model; + } + + public void incrementMode(ItemStack stack) { + setMode(stack, getMode(stack).increment()); + } + + public void useGas(ItemStack stack) { + GasStack gas = getGas(stack); + if (gas != null) { + setGas(stack, new GasStack(gas.getGas(), gas.amount - 1)); + } + } + + @Override + public int getMaxGas(ItemStack itemstack) { + return MekanismConfig.current().general.maxJetpackGas.val(); + } + + @Override + public int getRate(ItemStack itemstack) { + return TRANSFER_RATE; + } + + @Override + public int addGas(ItemStack itemstack, GasStack stack) { + if (getGas(itemstack) != null && getGas(itemstack).getGas() != stack.getGas()) { + return 0; + } + if (stack.getGas() != MekanismFluids.Hydrogen) { + return 0; + } + int toUse = Math.min(getMaxGas(itemstack) - getStored(itemstack), Math.min(getRate(itemstack), stack.amount)); + setGas(itemstack, new GasStack(stack.getGas(), getStored(itemstack) + toUse)); + return toUse; + } + + @Override + public GasStack removeGas(ItemStack itemstack, int amount) { + return null; + } + + public int getStored(ItemStack itemstack) { + return getGas(itemstack) != null ? getGas(itemstack).amount : 0; + } + + @Override + public boolean canReceiveGas(ItemStack itemstack, Gas type) { + return type == MekanismFluids.Hydrogen; + } + + @Override + public boolean canProvideGas(ItemStack itemstack, Gas type) { + return false; + } + + public JetpackMode getMode(ItemStack stack) { + return JetpackMode.values()[ItemDataUtils.getInt(stack, "mode")]; + } + + public void setMode(ItemStack stack, JetpackMode mode) { + ItemDataUtils.setInt(stack, "mode", mode.ordinal()); + } + + @Override + public GasStack getGas(ItemStack itemstack) { + return GasStack.readFromNBT(ItemDataUtils.getCompound(itemstack, "stored")); + } + + @Override + public void setGas(ItemStack itemstack, GasStack stack) { + if (stack == null || stack.amount == 0) { + ItemDataUtils.removeData(itemstack, "stored"); + } else { + int amount = Math.max(0, Math.min(stack.amount, getMaxGas(itemstack))); + GasStack gasStack = new GasStack(stack.getGas(), amount); + ItemDataUtils.setCompound(itemstack, "stored", gasStack.write(new NBTTagCompound())); + } + } + + public ItemStack getEmptyItem() { + ItemStack empty = new ItemStack(this); + setGas(empty, null); + return empty; + } + + @Override + public void getSubItems(@Nonnull CreativeTabs tabs, @Nonnull NonNullList list) { + if (!isInCreativeTab(tabs)) { + return; + } + ItemStack empty = new ItemStack(this); + setGas(empty, null); + list.add(empty); + + ItemStack filled = new ItemStack(this); + setGas(filled, new GasStack(MekanismFluids.Hydrogen, ((IGasItem) filled.getItem()).getMaxGas(filled))); + list.add(filled); + } + + @Override + public ArmorProperties getProperties(EntityLivingBase player, @Nonnull ItemStack armor, DamageSource source, + double damage, int slot) { + return new ArmorProperties(1, MekanismConfig.current().general.armoredJetpackDamageRatio.val(), + MekanismConfig.current().general.armoredJetpackDamageMax.val()); + } + + @Override + public int getArmorDisplay(EntityPlayer player, @Nonnull ItemStack armor, int slot) { + if (armor.getItem() == MekanismItems.MekaSuitChest) { + return 100; + } + return 0; + } + + @Override + public void damageArmor(EntityLivingBase entity, @Nonnull ItemStack stack, DamageSource source, int damage, int slot) { + } + + public enum JetpackMode { + NORMAL("tooltip.jetpack.regular", EnumColor.DARK_GREEN), + HOVER("tooltip.jetpack.hover", EnumColor.DARK_AQUA), + DISABLED("tooltip.jetpack.disabled", EnumColor.DARK_RED); + + private String unlocalized; + private EnumColor color; + + JetpackMode(String s, EnumColor c) { + unlocalized = s; + color = c; + } + + public JetpackMode increment() { + return ordinal() < values().length - 1 ? values()[ordinal() + 1] : values()[0]; + } + + public String getName() { + return color + LangUtils.localize(unlocalized); + } + } +}*/ \ No newline at end of file diff --git a/src/main/java/mekanism/common/item/ItemMekaSuitHelmet.java b/src/main/java/mekanism/common/item/ItemMekaSuitHelmet.java new file mode 100644 index 00000000..ba93ba17 --- /dev/null +++ b/src/main/java/mekanism/common/item/ItemMekaSuitHelmet.java @@ -0,0 +1,72 @@ +/*package mekanism.common.item; + +import mekanism.client.render.ModelCustomArmor; +import mekanism.client.render.ModelCustomArmor.ArmorModel; +import mekanism.common.Mekanism; +import mekanism.common.config.MekanismConfig; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.SoundEvents; +import net.minecraft.inventory.EntityEquipmentSlot; +import net.minecraft.item.ItemArmor; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraftforge.common.ISpecialArmor; +import net.minecraftforge.common.util.EnumHelper; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import org.jetbrains.annotations.NotNull; + +import javax.annotation.Nonnull; + +public class ItemMekaSuitHelmet extends ItemArmor implements ISpecialArmor { + + public ItemMekaSuitHelmet() { + super(EnumHelper.addArmorMaterial("MEKASUITHELMET", "mekasuithelmet", 0, new int[]{0, 0, 0, 0}, 100, SoundEvents.ITEM_ARMOR_EQUIP_GENERIC, + 100), 0, EntityEquipmentSlot.HEAD); + setCreativeTab(Mekanism.tabMekanism); + } + + @Override + public boolean isValidArmor(ItemStack stack, EntityEquipmentSlot armorType, Entity entity) { + return armorType == EntityEquipmentSlot.HEAD; + } + + + + @Override + public String getArmorTexture(ItemStack stack, Entity entity, EntityEquipmentSlot slot, String type) { + return "mekanism:render/NullArmor.png"; + } + + @Override + @SideOnly(Side.CLIENT) + public ModelBiped getArmorModel(EntityLivingBase entityLiving, ItemStack itemStack, EntityEquipmentSlot armorSlot, ModelBiped _default) { + ModelCustomArmor model = ModelCustomArmor.INSTANCE; + model.modelType = ArmorModel.MEKASUITHELMET; + return model; + } + + + @Override + public ArmorProperties getProperties(EntityLivingBase entityLivingBase, @NotNull ItemStack itemStack, DamageSource damageSource, double v, int i) { + return new ArmorProperties(1, MekanismConfig.current().general.armoredMekaSuitHelmetDamageRatio.val(), + MekanismConfig.current().general.armoredMekaSuitHelmetDamageMax.val()); + } + + public int getArmorDisplay(EntityPlayer player, @Nonnull ItemStack armor, int slot) { + return 20; + } + + @Override + public void damageArmor(EntityLivingBase entityLivingBase, @NotNull ItemStack itemStack, DamageSource damageSource, int i, int i1) { + } + + + + +} + + */ \ No newline at end of file diff --git a/src/main/java/mekanism/common/item/ItemTierInstaller.java b/src/main/java/mekanism/common/item/ItemTierInstaller.java index 6a820a1b..9d802b9a 100644 --- a/src/main/java/mekanism/common/item/ItemTierInstaller.java +++ b/src/main/java/mekanism/common/item/ItemTierInstaller.java @@ -21,7 +21,7 @@ public class ItemTierInstaller extends ItemMekanism implements IMetaItem { public ItemTierInstaller() { super(); - setMaxStackSize(1); + setMaxStackSize(16); setHasSubtypes(true); } diff --git a/src/main/java/mekanism/common/item/ItemUpgrade.java b/src/main/java/mekanism/common/item/ItemUpgrade.java index 7fad719d..54d9a2fb 100644 --- a/src/main/java/mekanism/common/item/ItemUpgrade.java +++ b/src/main/java/mekanism/common/item/ItemUpgrade.java @@ -29,7 +29,7 @@ public class ItemUpgrade extends ItemMekanism implements IUpgradeItem { public ItemUpgrade(Upgrade type) { super(); upgrade = type; - setMaxStackSize(type.getMax()); + setMaxStackSize(16); } @Override diff --git a/src/main/java/mekanism/common/tile/TileEntityControlRodAssembly.java b/src/main/java/mekanism/common/tile/TileEntityControlRodAssembly.java new file mode 100644 index 00000000..51230778 --- /dev/null +++ b/src/main/java/mekanism/common/tile/TileEntityControlRodAssembly.java @@ -0,0 +1,4 @@ +package mekanism.common.tile; + +public class TileEntityControlRodAssembly { +} diff --git a/src/main/java/mekanism/common/tile/TileEntitySuperchargedCoil.java b/src/main/java/mekanism/common/tile/TileEntitySuperchargedCoil.java new file mode 100644 index 00000000..82cefd5e --- /dev/null +++ b/src/main/java/mekanism/common/tile/TileEntitySuperchargedCoil.java @@ -0,0 +1,69 @@ +package mekanism.common.tile; + +import mekanism.api.Coord4D; +import mekanism.api.gas.GasStack; +import mekanism.common.config.MekanismConfig; +import mekanism.common.tile.prefab.TileEntityEffectsBlock; +import mekanism.common.util.InventoryUtils; +import mekanism.common.util.LangUtils; +import mekanism.common.util.MekanismUtils; +import net.minecraft.client.util.ITooltipFlag; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.NonNullList; +import net.minecraft.world.World; +import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import net.minecraftforge.items.CapabilityItemHandler; + +import javax.annotation.Nonnull; +import java.util.List; + +public class TileEntitySuperchargedCoil extends TileEntityEffectsBlock { + + public Coord4D digging; + + public TileEntitySuperchargedCoil() { + super("machine.laser", "SuperchargedCoil", 0); + inventory = NonNullList.withSize(0, ItemStack.EMPTY); + } + + + + + + + @Override + public boolean sideIsConsumer(EnumFacing side) { + return side == facing.getOpposite(); + } + + @Override + public boolean renderUpdate() { + return false; + } + + @Override + public boolean lightUpdate() { + return false; + } + + @Nonnull + @Override + public int[] getSlotsForFace(@Nonnull EnumFacing side) { + return InventoryUtils.EMPTY; + } + + @Override + public boolean isCapabilityDisabled(@Nonnull Capability capability, EnumFacing side) { + if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { + return true; + } + return super.isCapabilityDisabled(capability, side); + } + + + + +} diff --git a/src/main/java/mekanism/generators/common/block/states/BlockStateGenerator.java b/src/main/java/mekanism/generators/common/block/states/BlockStateGenerator.java index 5880565a..aa309a7e 100644 --- a/src/main/java/mekanism/generators/common/block/states/BlockStateGenerator.java +++ b/src/main/java/mekanism/generators/common/block/states/BlockStateGenerator.java @@ -78,6 +78,7 @@ public enum GeneratorType implements IStringSerializable, IBlockType { BIO_GENERATOR(GeneratorBlock.GENERATOR_BLOCK_1, 4, "BioGenerator", 4, 160000, TileEntityBioGenerator::new, true, Plane.HORIZONTAL, false, true), ADVANCED_SOLAR_GENERATOR(GeneratorBlock.GENERATOR_BLOCK_1, 5, "AdvancedSolarGenerator", 1, 200000, TileEntityAdvancedSolarGenerator::new, true, Plane.HORIZONTAL, false), WIND_GENERATOR(GeneratorBlock.GENERATOR_BLOCK_1, 6, "WindGenerator", 5, 200000, TileEntityWindGenerator::new, true, Plane.HORIZONTAL, false), + TURBINE_ROTOR(GeneratorBlock.GENERATOR_BLOCK_1, 7, "TurbineRotor", -1, -1, TileEntityTurbineRotor::new, false, BlockStateUtils.NO_ROTATION, false), ROTATIONAL_COMPLEX(GeneratorBlock.GENERATOR_BLOCK_1, 8, "RotationalComplex", -1, -1, TileEntityRotationalComplex::new, false, BlockStateUtils.NO_ROTATION, false), ELECTROMAGNETIC_COIL(GeneratorBlock.GENERATOR_BLOCK_1, 9, "ElectromagneticCoil", -1, -1, TileEntityElectromagneticCoil::new, false, BlockStateUtils.NO_ROTATION, false), diff --git a/src/main/resources/assets/mekanism/blockstates/control_rod_assembly.json b/src/main/resources/assets/mekanism/blockstates/control_rod_assembly.json new file mode 100644 index 00000000..3ddb9717 --- /dev/null +++ b/src/main/resources/assets/mekanism/blockstates/control_rod_assembly.json @@ -0,0 +1,11 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "mekanism:control_rod_assembly" + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} + diff --git a/src/main/resources/assets/mekanism/blockstates/fission_fuel_assembly.json b/src/main/resources/assets/mekanism/blockstates/fission_fuel_assembly.json new file mode 100644 index 00000000..80b8d0b9 --- /dev/null +++ b/src/main/resources/assets/mekanism/blockstates/fission_fuel_assembly.json @@ -0,0 +1,11 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "mekanism:fission_fuel_assembly" + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} + diff --git a/src/main/resources/assets/mekanism/blockstates/fission_reacher_casing.json b/src/main/resources/assets/mekanism/blockstates/fission_reacher_casing.json new file mode 100644 index 00000000..da2b6291 --- /dev/null +++ b/src/main/resources/assets/mekanism/blockstates/fission_reacher_casing.json @@ -0,0 +1,14 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "mekanism:basic_cube", + "textures": { + "all": "mekanism:blocks/FissionReacherCasing" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} + diff --git a/src/main/resources/assets/mekanism/blockstates/sps_casing.json b/src/main/resources/assets/mekanism/blockstates/sps_casing.json new file mode 100644 index 00000000..f6a33b50 --- /dev/null +++ b/src/main/resources/assets/mekanism/blockstates/sps_casing.json @@ -0,0 +1,14 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "mekanism:basic_cube", + "textures": { + "all": "mekanism:blocks/SpsCasing" + } + }, + "variants": { + "normal": [{}], + "inventory": [{}] + } +} + diff --git a/src/main/resources/assets/mekanism/blockstates/supercharged_coil.json b/src/main/resources/assets/mekanism/blockstates/supercharged_coil.json new file mode 100644 index 00000000..17fd66c3 --- /dev/null +++ b/src/main/resources/assets/mekanism/blockstates/supercharged_coil.json @@ -0,0 +1,19 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "mekanism:supercharged_coil" + }, + "variants": { + "normal": [{}], + "facing": { + "up": {}, + "down": {"x": 180}, + "north": {"x": -90, "y": 180}, + "south": {"x": -90}, + "east": {"x": -90, "y": -90}, + "west": {"x": -90, "y": 90} + }, + "inventory": [{}] + } +} + diff --git a/src/main/resources/assets/mekanism/gui/factory/guiultimatefactory1.png b/src/main/resources/assets/mekanism/gui/factory/guiultimatefactory1.png index fd7856998d2f2f715ef0a3f94547a35c7d0fa967..87f1a7982b0a116ffbcb087c27db33f56957d528 100644 GIT binary patch delta 4454 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 delta 4177 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 Y_QcB0_VHU30A1!LRu^BKcmMN$0J0GH(*OVf diff --git a/src/main/resources/assets/mekanism/gui/factory/guiultimatefactory2.png b/src/main/resources/assets/mekanism/gui/factory/guiultimatefactory2.png index 1975b4950d4c496082ce8689bf1b2a67a0f9c94f..3ee67ede6ff5e2b2c46258416d7438799e17a097 100644 GIT binary patch delta 4784 zcmcImXH-+$w%&mN0Y%Wm5u}TN9+Vm(5QKn;^e!qbfK&}dq=T?yK@S{?qDU`NMF>68 z48)^|h!hbB1|lfk01-?KfdpPW=e>8|8{>{~@1MJW>^1hDYs@w0H^2F<*=@)+YA}XE z@|sUW@9^krYN%?RJg1?7)X+j|B93e5A~iG=%M zAfp5QLjHM#Yr-{P5Dt+90Q<2PXN=Fq6s%Gx8PXp;Uav1kFrTyh*iE1M$elX*5~jXs zb4nPow1a;-8<~IHe*hMuU>bj`&0O*3^%p6fD@jMz6*hT|$ifY;Hu!YKVdYpLxxGNINHYUnaaC0dq^hSiMaamGt(N3c z^Gx5=k6Qv*>(XOd>)qWO%W`JLlkpe39YLGjPdjoP8;+a*@N`G%;b0kdm?-eZf4faH zlm2!^&>%o^%Lp}w9(Y7)c_%5&HqsPVb6>hmR81(?&wJnX!_Yt{qd&yeKaI|NRK3gL ztUf@K-T?;<3iZOzzRp=XK7e{pV)$_aR?S>5XH%M1I(V?RHt2|?U4)w5c5r4rt_3uF3TEs!jBEVA6T>uafvG0>kO#f zAa*9vL%DvF0TlI2JikFe{Z=C#>F<}ie49uJI8H`+lEkaf@4+DVA@{N%-guy!QPYiZ zTxVveQhUiuZ1y~AlXL$oz8l;&Q0;W@m*C{xT1`Xdv>PN*8pqg7qK|6SPzr z5*Xb4+d%5*!{pBghzb`_JM&jMpUSU6rec1;@l0C_2aln>x3E4vX4x|-Z2}t3_0((( zsy>eLW|WgWHD!RUxlq54&8eyHB7YCd7r>$NTXpj%`^QA$k>nE=BjAb~LTR<&bDE~B ztLq4>XN|hO$;`)B<^?bN(hpHa3j1`Tph;?wbU9QPwQ;gFlxeW(P-lFr%PS9mEO6HAxcv6}TT&PE@UjNp)bE)&r>U?$p6@zR$xcsfz zoN=D8vf!(;AwgUPCtH<*lU_FT-+G$jxNC-8kaT+-OeT9yxLm7NHF?!0fgD#WKo#j7?pS}L%`aNK>a%_WRZZQU6IM}c zIs~n&E3>J?`D`%YhxlzfPM02*`Lta+US{?bhr1X$+2#xG!_Gm9R)imFZuTBR$dUH7 zT+BlE8VLMY^4@MF!=;cv=;j{>`hv=(ZoHLbwQe2E?QzxlcuMzaLOHGfFYpDhTB|FcTF4VYcc7?>z0sZv$$`gvzK4o4g2gbCnXTfh~?jP9&4 zktnm2s7SsC89h?1q-)EroQNwCR~SVF3RXDW58-0$5e$xkZykqs85#~BJ6}Wkf%FQO z!5nJkV3F%LibF_)w`Ds?k7?h7j?N#O?0PaM?-d{EB*HX!s2PdV;pB>qnt#2Hke}WQ z4FYo$s0(!>ydLe>DyR~A>>uNSyA@X15nr~Xkl)z>&Y@Bsp

PgHtGe!O9xOBlhq) zba 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 diff --git a/src/main/resources/assets/mekanism/gui/nei/guiisotopiccentrifuge2.png b/src/main/resources/assets/mekanism/gui/nei/guiisotopiccentrifuge2.png deleted file mode 100644 index 2491ee1aa1af275f744fca13ba3fee6a8c049cdf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17477 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 diff --git a/src/main/resources/assets/mekanism/lang/en_us.lang b/src/main/resources/assets/mekanism/lang/en_us.lang index d130a3e4..c0f3d352 100644 --- a/src/main/resources/assets/mekanism/lang/en_us.lang +++ b/src/main/resources/assets/mekanism/lang/en_us.lang @@ -50,6 +50,7 @@ item.Flamethrower.name=Flamethrower item.GaugeDropper.name=Gauge Dropper item.BioFuel.name=Bio Fuel item.CraftingFormula.name=Crafting Formula +item.Canteen.name=Canteen # Control Circuits item.BasicControlCircuit.name=Basic Control Circuit @@ -101,6 +102,8 @@ tile.BasicBlock.CopperBlock.name=Copper Block tile.BasicBlock.TinBlock.name=Tin Block tile.BasicBlock.ThermalEvaporationController.name=Thermal Evaporation Controller tile.BasicBlock.ThermalEvaporationValve.name=Thermal Evaporation Valve +tile.BasicBlock2.UraniumBlock.name=Uranium Block +tile.BasicBlock2.LeadBlock.name=Lead Block # Basic Block 2 (second ID iteration) tile.BasicBlock2.ThermalEvaporationBlock.name=Thermal Evaporation Block @@ -135,6 +138,10 @@ tile.MachineBlock.PersonalChest.name=Personal Chest tile.MachineBlock.Chargepad.name=Chargepad tile.MachineBlock.LogisticalSorter.name=Logistical Sorter tile.MachineBlock.DigitalMiner.name=Digital Miner +tile.MachineBlock.IsotopicCentrifuge.name=Isotopic Centrifuge +tile.MachineBlock.NutritionalLiquifier.name=Nutritional Liquifier +tile.MachineBlock.antiprotonicnucleosynthesizer.name=Antiprotonic NucleosynthesizerWIP +tile.MachineBlock.AntiprotonicNucleosynthesizer.name=Antiprotonic NucleosynthesizerWIP # Machine Block 2 (second ID iteration) tile.MachineBlock2.RotaryCondensentrator.name=Rotary Condensentrator @@ -162,6 +169,11 @@ tile.MachineBlock3.Oredictionificator.name=Oredictionificator tile.MachineBlock3.ResistiveHeater.name=Resistive Heater tile.MachineBlock3.FormulaicAssemblicator.name=Formulaic Assemblicator tile.MachineBlock3.FuelwoodHeater.name=Fuelwood Heater +tile.MachineBlock3.Chargepad.name=Chargepad +tile.MachineBlock3.ElectricPump.name=Electric Pump +tile.MachineBlock3.LogisticalSorter.name=Logistical Sorter +tile.MachineBlock3.PersonalChest.name=Personal Chest +tile.MachineBlock3.NutritionalLiquifier.name=Nutritional Liquifier # Plastic tile.PlasticBlock.name=Plastic Block @@ -185,6 +197,9 @@ infuse.bio=Biomass tile.OreBlock.OsmiumOre.name=Osmium Ore tile.OreBlock.CopperOre.name=Copper Ore tile.OreBlock.TinOre.name=Tin Ore +tile.OreBlock.UraniumOre.name=Uranium Ore +tile.OreBlock.LeadOre.name=Lead Ore +tile.OreBlock.FluoriteOre.name=Fluorite Ore # Transmitters tile.Transmitter.BasicPressurizedTube.name=Basic Pressurized Tube diff --git a/src/main/resources/assets/mekanism/lang/zh_cn.lang b/src/main/resources/assets/mekanism/lang/zh_cn.lang index 077eb7e7..07b82024 100644 --- a/src/main/resources/assets/mekanism/lang/zh_cn.lang +++ b/src/main/resources/assets/mekanism/lang/zh_cn.lang @@ -51,7 +51,7 @@ item.GaugeDropper.name=滴量器 item.BioFuel.name=生物燃料 item.CraftingFormula.name=合成配方 item.Canteen.name=水壶 - +item.MekTool.name=§4☢☣✪拓荒者工具✪☣☢ §f【WIP】 # Control Circuits item.BasicControlCircuit.name=基础控制电路 item.AdvancedControlCircuit.name=高级控制电路 @@ -123,6 +123,10 @@ tile.BasicBlock2.SecurityDesk.name=机密桌 tile.BasicBlock2.UraniumBlock.name=铀块 tile.BasicBlock2.LeadBlock.name=铅块 +tile.BasicBlock3.SpsCasing.name=超临界移相器外壳[WIP] +tile.BasicBlock3.FissionReacherCasing.name=裂变反应堆外壳[WIP] +tile.BasicBlock3.ControlRodAssembly.name=控制棒组件[WIP] +tile.BasicBlock3.FissionFuelAssembly.name=裂变燃料组件[WIP] # Machine Block tile.MachineBlock.EnrichmentChamber.name=富集仓 tile.MachineBlock.OsmiumCompressor.name=锇压缩机 @@ -137,8 +141,9 @@ tile.MachineBlock.DigitalMiner.name=数字型采矿机 tile.MachineBlock.IsotopicCentrifuge.name=同位素离心机 tile.MachineBlock.Chargepad.name=充电台 tile.MachineBlock.NutritionalLiquifier.name=营养液化器 -tile.MachineBlock.antiprotonicnucleosynthesizer.name=反质子核合成器 -tile.MachineBlock.AntiprotonicNucleosynthesizer.name=反质子核合成器 +tile.MachineBlock.antiprotonicnucleosynthesizer.name=反质子核合成器(WIP) +tile.MachineBlock.AntiprotonicNucleosynthesizer.name=反质子核合成器(WIP) + # Machine Block 2 (second ID iteration) tile.MachineBlock2.RotaryCondensentrator.name=回旋式气液转换机 tile.MachineBlock2.ChemicalOxidizer.name=化学氧化机 @@ -170,7 +175,7 @@ tile.MachineBlock3.ElectricPump.name=电动泵 tile.MachineBlock3.LogisticalSorter.name=物流整理机 tile.MachineBlock3.PersonalChest.name=私人箱子 tile.MachineBlock3.NutritionalLiquifier.name=营养液化器 - +tile.MachineBlock3.superchargedcoil.name=增压线圈(WIP) # Plastic tile.PlasticBlock.name=塑料方块 tile.SlickPlasticBlock.name=光滑塑料方块 @@ -331,13 +336,13 @@ item.leadNugget.name=铅颗粒 # Gasses gas.hydrogen=氢气 gas.oxygen=氧气 -gas.water=水蒸气 +gas.water=液化气态水 gas.chlorine=氯 gas.sulfurdioxide=二氧化硫 gas.sulfurtrioxide=三氧化硫 gas.sulfuricacid=硫酸 gas.hydrogenchloride=氯化氢 -gas.liquidosmium=液态锇 +gas.liquidosmium=液化气态锇 gas.ethene=乙烯 gas.sodium=钠 gas.brine=气态盐水 @@ -832,8 +837,17 @@ mekanism.tooltip.disassembler.normal=正常 mekanism.tooltip.disassembler.slow=慢 mekanism.tooltip.disassembler.fast=快 mekanism.tooltip.disassembler.vein=矿脉 +mekanism.tooltip.disassembler.extended_vein=扩展静脉开采 mekanism.tooltip.disassembler.off=关 +mekanism.tooltip.mektool.normal=正常 +mekanism.tooltip.mektool.slow=慢 +mekanism.tooltip.mektool.fast=快 +mekanism.tooltip.mektool.very_fast=更快 +mekanism.tooltip.mektool.vein=矿脉 +mekanism.tooltip.mektool.extended_vein=扩展静脉开采 +mekanism.tooltip.mektool.off=关 + tooltip.configurationCard.got=从%s恢复过滤器数据 tooltip.configurationCard.set=导入类型%s的过滤器数据 tooltip.configurationCard.unequal=过滤器数据格式不符规则 @@ -873,6 +887,8 @@ tooltip.PressureDisperser=一种能保证蒸汽压力的多方块结构方块, tooltip.BoilerCasing=一种耐压方块,用于制作锅炉结构的外壳 tooltip.BoilerValve=用于锅炉结构的阀门,能让水进入锅炉并导出产生的蒸汽 tooltip.SecurityDesk=一个中央控制系统,用于管理你所有机器的安全设置 +tooltip.SpsCasing=能够抵抗相移反应产生的强烈化学和热效应的增强外壳。 +tooltip.FissionReacherCasing=裂变反应堆外壳 tooltip.EnrichmentChamber=一台能将矿石磨成两份粉末的机器,也可以进行一些其他操作。 tooltip.OsmiumCompressor=一台非常高级的设备,能够将锇矿石压缩成 多种粉末以制造相应金属锭。 @@ -912,6 +928,13 @@ tooltip.canteen1=只能添加营养糊糊 tooltip.canteen2=为什么这物品是如此的昂贵? tooltip.NutritionalLiquifier=一种能将任何食物加工成无害、易消化的营养糊剂的机器 tooltip.IsotopicCentrifuge=一台只有一个目的的机器:非常非常快地旋转它装载的东西。 +tooltip.antiprotonicnucleosynthesizer=一种以原子的方式利用少量反物质和大量能量转化各种资源的机器。 +tooltip.superchargedcoil=用于超临界移相器多方块结构供电。必须连接到超临界移相器端口[目前只是个装饰] + +tooltip.MekTool1=十分强大的挖掘机器 +tooltip.MekTool2=当冲满25%以上时,伤害会超级加倍 +tooltip.MekTool3=当冲满90%以上时,可能会带有秒杀效果? +tooltip.MekTool4=§4☢☣✪危险工具,警告!✪☣☢ tooltip.HeatGenerator=一台使用岩浆热量或者其它可燃资源产生能量的发电机。 tooltip.SolarGenerator=一台使用太阳能量发电的发电机。 diff --git a/src/main/resources/assets/mekanism/logo.png b/src/main/resources/assets/mekanism/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9abf5f8986462de8b3bec103eab37b0cc92c9a1b GIT binary patch literal 84437 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

v558 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/models/block/control_rod_assembly.json b/src/main/resources/assets/mekanism/models/block/control_rod_assembly.json new file mode 100644 index 00000000..36051bb5 --- /dev/null +++ b/src/main/resources/assets/mekanism/models/block/control_rod_assembly.json @@ -0,0 +1,401 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/cube_all", + "texture_size": [128, 128], + "textures": { + "0": "mekanism:blocks/models/control_rod_assembly", + "particle": "mekanism:blocks/models/control_rod_assembly" + }, + "elements": [ + { + "name": "connector_1", + "from": [4, 7, 4], + "to": [6, 15, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 7, 9]}, + "faces": { + "north": {"uv": [0.25, 7.75, 0.5, 8.75], "texture": "#0"}, + "east": {"uv": [0, 7.75, 0.25, 8.75], "texture": "#0"}, + "south": {"uv": [0.75, 7.75, 1, 8.75], "texture": "#0"}, + "west": {"uv": [0.5, 7.75, 0.75, 8.75], "texture": "#0"}, + "up": {"uv": [0.5, 7.75, 0.25, 7.5], "texture": "#0"}, + "down": {"uv": [0.75, 7.5, 0.5, 7.75], "texture": "#0"} + } + }, + { + "name": "connector_2", + "from": [10, 8, 4], + "to": [12, 16, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 8, 9]}, + "faces": { + "north": {"uv": [7, 6.75, 7.25, 7.75], "texture": "#0"}, + "east": {"uv": [6.75, 6.75, 7, 7.75], "texture": "#0"}, + "south": {"uv": [7.5, 6.75, 7.75, 7.75], "texture": "#0"}, + "west": {"uv": [7.25, 6.75, 7.5, 7.75], "texture": "#0"}, + "up": {"uv": [7.25, 6.75, 7, 6.5], "texture": "#0"}, + "down": {"uv": [7.5, 6.5, 7.25, 6.75], "texture": "#0"} + } + }, + { + "name": "connector_3", + "from": [10, 7, 10], + "to": [12, 15, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 7, 7]}, + "faces": { + "north": {"uv": [6.75, 2.625, 7, 3.625], "texture": "#0"}, + "east": {"uv": [6.5, 2.625, 6.75, 3.625], "texture": "#0"}, + "south": {"uv": [7.25, 2.625, 7.5, 3.625], "texture": "#0"}, + "west": {"uv": [7, 2.625, 7.25, 3.625], "texture": "#0"}, + "up": {"uv": [7, 2.625, 6.75, 2.375], "texture": "#0"}, + "down": {"uv": [7.25, 2.375, 7, 2.625], "texture": "#0"} + } + }, + { + "name": "connector_4", + "from": [4, 8, 10], + "to": [6, 16, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 8, 7]}, + "faces": { + "north": {"uv": [5, 6.5, 5.25, 7.5], "texture": "#0"}, + "east": {"uv": [4.75, 6.5, 5, 7.5], "texture": "#0"}, + "south": {"uv": [5.5, 6.5, 5.75, 7.5], "texture": "#0"}, + "west": {"uv": [5.25, 6.5, 5.5, 7.5], "texture": "#0"}, + "up": {"uv": [5.25, 6.5, 5, 6.25], "texture": "#0"}, + "down": {"uv": [5.5, 6.25, 5.25, 6.5], "texture": "#0"} + } + }, + { + "name": "connector_5", + "from": [7, 4, 7], + "to": [9, 12, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [12, 4, 4]}, + "faces": { + "north": {"uv": [4.75, 2.625, 5, 3.625], "texture": "#0"}, + "east": {"uv": [4.5, 2.625, 4.75, 3.625], "texture": "#0"}, + "south": {"uv": [5.25, 2.625, 5.5, 3.625], "texture": "#0"}, + "west": {"uv": [5, 2.625, 5.25, 3.625], "texture": "#0"}, + "up": {"uv": [5, 2.625, 4.75, 2.375], "texture": "#0"}, + "down": {"uv": [5.25, 2.375, 5, 2.625], "texture": "#0"} + } + }, + { + "name": "rod_1", + "from": [1, 3, 1], + "to": [3, 7, 3], + "faces": { + "north": {"uv": [3.25, 8, 3.5, 8.5], "texture": "#0"}, + "east": {"uv": [3, 8, 3.25, 8.5], "texture": "#0"}, + "south": {"uv": [3.75, 8, 4, 8.5], "texture": "#0"}, + "west": {"uv": [3.5, 8, 3.75, 8.5], "texture": "#0"}, + "up": {"uv": [3.5, 8, 3.25, 7.75], "texture": "#0"}, + "down": {"uv": [3.75, 7.75, 3.5, 8], "texture": "#0"} + } + }, + { + "name": "rod_2", + "from": [1, 3, 5], + "to": [15, 7, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 12]}, + "faces": { + "north": {"uv": [0.25, 7, 2, 7.5], "texture": "#0"}, + "east": {"uv": [0, 7, 0.25, 7.5], "texture": "#0"}, + "south": {"uv": [2.25, 7, 4, 7.5], "texture": "#0"}, + "west": {"uv": [2, 7, 2.25, 7.5], "texture": "#0"}, + "up": {"uv": [2, 7, 0.25, 6.75], "texture": "#0"}, + "down": {"uv": [3.75, 6.75, 2, 7], "texture": "#0"} + } + }, + { + "name": "rod_3", + "from": [1, 3, 9], + "to": [15, 7, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 16]}, + "faces": { + "north": {"uv": [6.25, 1.5, 8, 2], "texture": "#0"}, + "east": {"uv": [6, 1.5, 6.25, 2], "texture": "#0"}, + "south": {"uv": [8.25, 1.5, 10, 2], "texture": "#0"}, + "west": {"uv": [8, 1.5, 8.25, 2], "texture": "#0"}, + "up": {"uv": [8, 1.5, 6.25, 1.25], "texture": "#0"}, + "down": {"uv": [9.75, 1.25, 8, 1.5], "texture": "#0"} + } + }, + { + "name": "rod_4", + "from": [1, 3, 13], + "to": [3, 7, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 20]}, + "faces": { + "north": {"uv": [2.25, 7.75, 2.5, 8.25], "texture": "#0"}, + "east": {"uv": [2, 7.75, 2.25, 8.25], "texture": "#0"}, + "south": {"uv": [2.75, 7.75, 3, 8.25], "texture": "#0"}, + "west": {"uv": [2.5, 7.75, 2.75, 8.25], "texture": "#0"}, + "up": {"uv": [2.5, 7.75, 2.25, 7.5], "texture": "#0"}, + "down": {"uv": [2.75, 7.5, 2.5, 7.75], "texture": "#0"} + } + }, + { + "name": "rod_5", + "from": [5, 3, 1], + "to": [7, 7, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [12, 8, 20]}, + "faces": { + "north": {"uv": [1.75, 6.25, 2, 6.75], "texture": "#0"}, + "east": {"uv": [0, 6.25, 1.75, 6.75], "texture": "#0"}, + "south": {"uv": [3.75, 6.25, 4, 6.75], "texture": "#0"}, + "west": {"uv": [2, 6.25, 3.75, 6.75], "texture": "#0"}, + "up": {"uv": [2, 6.25, 1.75, 4.5], "texture": "#0"}, + "down": {"uv": [2.25, 4.5, 2, 6.25], "texture": "#0"} + } + }, + { + "name": "rod_6", + "from": [9, 3, 1], + "to": [11, 7, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [16, 8, 20]}, + "faces": { + "north": {"uv": [6, 4.5, 6.25, 5], "texture": "#0"}, + "east": {"uv": [4.25, 4.5, 6, 5], "texture": "#0"}, + "south": {"uv": [8, 4.5, 8.25, 5], "texture": "#0"}, + "west": {"uv": [6.25, 4.5, 8, 5], "texture": "#0"}, + "up": {"uv": [6.25, 4.5, 6, 2.75], "texture": "#0"}, + "down": {"uv": [6.5, 2.75, 6.25, 4.5], "texture": "#0"} + } + }, + { + "name": "rod_7", + "from": [13, 3, 13], + "to": [15, 7, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [20, 8, 20]}, + "faces": { + "north": {"uv": [1.25, 7.75, 1.5, 8.25], "texture": "#0"}, + "east": {"uv": [1, 7.75, 1.25, 8.25], "texture": "#0"}, + "south": {"uv": [1.75, 7.75, 2, 8.25], "texture": "#0"}, + "west": {"uv": [1.5, 7.75, 1.75, 8.25], "texture": "#0"}, + "up": {"uv": [1.5, 7.75, 1.25, 7.5], "texture": "#0"}, + "down": {"uv": [1.75, 7.5, 1.5, 7.75], "texture": "#0"} + } + }, + { + "name": "rod_8", + "from": [13, 3, 1], + "to": [15, 7, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [20, 8, 8]}, + "faces": { + "north": {"uv": [0.25, 5.75, 0.5, 6.25], "texture": "#0"}, + "east": {"uv": [0, 5.75, 0.25, 6.25], "texture": "#0"}, + "south": {"uv": [0.75, 5.75, 1, 6.25], "texture": "#0"}, + "west": {"uv": [0.5, 5.75, 0.75, 6.25], "texture": "#0"}, + "up": {"uv": [0.5, 5.75, 0.25, 5.5], "texture": "#0"}, + "down": {"uv": [0.75, 5.5, 0.5, 5.75], "texture": "#0"} + } + }, + { + "name": "core", + "from": [2, 3, 2], + "to": [14, 8, 14], + "faces": { + "north": {"uv": [1.5, 3.875, 3, 4.5], "texture": "#0"}, + "east": {"uv": [0, 3.875, 1.5, 4.5], "texture": "#0"}, + "south": {"uv": [4.5, 3.875, 6, 4.5], "texture": "#0"}, + "west": {"uv": [3, 3.875, 4.5, 4.5], "texture": "#0"}, + "up": {"uv": [3, 3.875, 1.5, 2.375], "texture": "#0"}, + "down": {"uv": [4.5, 2.375, 3, 3.875], "texture": "#0"} + } + }, + { + "name": "control_rod_frame1", + "from": [13, 9, 0], + "to": [16, 14, 3], + "faces": { + "north": {"uv": [0.375, 4.875, 0.75, 5.5], "texture": "#0"}, + "east": {"uv": [0, 4.875, 0.375, 5.5], "texture": "#0"}, + "south": {"uv": [1.125, 4.875, 1.5, 5.5], "texture": "#0"}, + "west": {"uv": [0.75, 4.875, 1.125, 5.5], "texture": "#0"}, + "up": {"uv": [0.75, 4.875, 0.375, 4.5], "texture": "#0"}, + "down": {"uv": [1.125, 4.5, 0.75, 4.875], "texture": "#0"} + } + }, + { + "name": "control_rod_frame2", + "from": [13, 9, 13], + "to": [16, 14, 16], + "faces": { + "north": {"uv": [0.375, 2.75, 0.75, 3.375], "texture": "#0"}, + "east": {"uv": [0, 2.75, 0.375, 3.375], "texture": "#0"}, + "south": {"uv": [1.125, 2.75, 1.5, 3.375], "texture": "#0"}, + "west": {"uv": [0.75, 2.75, 1.125, 3.375], "texture": "#0"}, + "up": {"uv": [0.75, 2.75, 0.375, 2.375], "texture": "#0"}, + "down": {"uv": [1.125, 2.375, 0.75, 2.75], "texture": "#0"} + } + }, + { + "name": "control_rod_frame3", + "from": [0, 9, 0], + "to": [3, 14, 3], + "faces": { + "north": {"uv": [0.375, 1.375, 0.75, 2], "texture": "#0"}, + "east": {"uv": [0, 1.375, 0.375, 2], "texture": "#0"}, + "south": {"uv": [1.125, 1.375, 1.5, 2], "texture": "#0"}, + "west": {"uv": [0.75, 1.375, 1.125, 2], "texture": "#0"}, + "up": {"uv": [0.75, 1.375, 0.375, 1], "texture": "#0"}, + "down": {"uv": [1.125, 1, 0.75, 1.375], "texture": "#0"} + } + }, + { + "name": "control_rod_frame4", + "from": [0, 9, 13], + "to": [3, 14, 16], + "faces": { + "north": {"uv": [0.375, 0.375, 0.75, 1], "texture": "#0"}, + "east": {"uv": [0, 0.375, 0.375, 1], "texture": "#0"}, + "south": {"uv": [1.125, 0.375, 1.5, 1], "texture": "#0"}, + "west": {"uv": [0.75, 0.375, 1.125, 1], "texture": "#0"}, + "up": {"uv": [0.75, 0.375, 0.375, 0], "texture": "#0"}, + "down": {"uv": [1.125, 0, 0.75, 0.375], "texture": "#0"} + } + }, + { + "name": "control_rod_frame5", + "from": [0, 7, 0], + "to": [16, 9, 3], + "faces": { + "north": {"uv": [6.375, 1, 8.375, 1.25], "texture": "#0"}, + "east": {"uv": [6, 1, 6.375, 1.25], "texture": "#0"}, + "south": {"uv": [8.75, 1, 10.75, 1.25], "texture": "#0"}, + "west": {"uv": [8.375, 1, 8.75, 1.25], "texture": "#0"}, + "up": {"uv": [8.375, 1, 6.375, 0.625], "texture": "#0"}, + "down": {"uv": [10.375, 0.625, 8.375, 1], "texture": "#0"} + } + }, + { + "name": "control_rod_frame6", + "from": [0, 14, 0], + "to": [16, 16, 3], + "faces": { + "north": {"uv": [6.375, 0.375, 8.375, 0.625], "texture": "#0"}, + "east": {"uv": [6, 0.375, 6.375, 0.625], "texture": "#0"}, + "south": {"uv": [8.75, 0.375, 10.75, 0.625], "texture": "#0"}, + "west": {"uv": [8.375, 0.375, 8.75, 0.625], "texture": "#0"}, + "up": {"uv": [8.375, 0.375, 6.375, 0], "texture": "#0"}, + "down": {"uv": [10.375, 0, 8.375, 0.375], "texture": "#0"} + } + }, + { + "name": "control_rod_frame7", + "from": [0, 7, 3], + "to": [3, 9, 13], + "faces": { + "north": {"uv": [6, 7.75, 6.375, 8], "texture": "#0"}, + "east": {"uv": [4.75, 7.75, 6, 8], "texture": "#0"}, + "south": {"uv": [7.625, 7.75, 8, 8], "texture": "#0"}, + "west": {"uv": [6.375, 7.75, 7.625, 8], "texture": "#0"}, + "up": {"uv": [6.375, 7.75, 6, 6.5], "texture": "#0"}, + "down": {"uv": [6.75, 6.5, 6.375, 7.75], "texture": "#0"} + } + }, + { + "name": "control_rod_frame8", + "from": [0, 14, 3], + "to": [3, 16, 13], + "faces": { + "north": {"uv": [7.75, 3.625, 8.125, 3.875], "texture": "#0"}, + "east": {"uv": [6.5, 3.625, 7.75, 3.875], "texture": "#0"}, + "south": {"uv": [9.375, 3.625, 9.75, 3.875], "texture": "#0"}, + "west": {"uv": [8.125, 3.625, 9.375, 3.875], "texture": "#0"}, + "up": {"uv": [8.125, 3.625, 7.75, 2.375], "texture": "#0"}, + "down": {"uv": [8.5, 2.375, 8.125, 3.625], "texture": "#0"} + } + }, + { + "name": "control_rod_frame9", + "from": [13, 7, 3], + "to": [16, 9, 13], + "faces": { + "north": {"uv": [4, 7.5, 4.375, 7.75], "texture": "#0"}, + "east": {"uv": [2.75, 7.5, 4, 7.75], "texture": "#0"}, + "south": {"uv": [5.625, 7.5, 6, 7.75], "texture": "#0"}, + "west": {"uv": [4.375, 7.5, 5.625, 7.75], "texture": "#0"}, + "up": {"uv": [4.375, 7.5, 4, 6.25], "texture": "#0"}, + "down": {"uv": [4.75, 6.25, 4.375, 7.5], "texture": "#0"} + } + }, + { + "name": "control_rod_frame10", + "from": [13, 14, 3], + "to": [16, 16, 13], + "faces": { + "north": {"uv": [7, 6.25, 7.375, 6.5], "texture": "#0"}, + "east": {"uv": [5.75, 6.25, 7, 6.5], "texture": "#0"}, + "south": {"uv": [8.625, 6.25, 9, 6.5], "texture": "#0"}, + "west": {"uv": [7.375, 6.25, 8.625, 6.5], "texture": "#0"}, + "up": {"uv": [7.375, 6.25, 7, 5], "texture": "#0"}, + "down": {"uv": [7.75, 5, 7.375, 6.25], "texture": "#0"} + } + }, + { + "name": "control_rod_frame11", + "from": [0, 7, 13], + "to": [16, 9, 16], + "faces": { + "north": {"uv": [2.625, 6, 4.625, 6.25], "texture": "#0"}, + "east": {"uv": [2.25, 6, 2.625, 6.25], "texture": "#0"}, + "south": {"uv": [5, 6, 7, 6.25], "texture": "#0"}, + "west": {"uv": [4.625, 6, 5, 6.25], "texture": "#0"}, + "up": {"uv": [4.625, 6, 2.625, 5.625], "texture": "#0"}, + "down": {"uv": [6.625, 5.625, 4.625, 6], "texture": "#0"} + } + }, + { + "name": "control_rod_frame12", + "from": [0, 14, 13], + "to": [16, 16, 16], + "faces": { + "north": {"uv": [2.625, 5.375, 4.625, 5.625], "texture": "#0"}, + "east": {"uv": [2.25, 5.375, 2.625, 5.625], "texture": "#0"}, + "south": {"uv": [5, 5.375, 7, 5.625], "texture": "#0"}, + "west": {"uv": [4.625, 5.375, 5, 5.625], "texture": "#0"}, + "up": {"uv": [4.625, 5.375, 2.625, 5], "texture": "#0"}, + "down": {"uv": [6.625, 5, 4.625, 5.375], "texture": "#0"} + } + }, + { + "name": "connector_ring_bottom", + "from": [0, 0, 0], + "to": [16, 3, 16], + "faces": { + "north": {"uv": [2, 2, 4, 2.375], "texture": "#0"}, + "east": {"uv": [0, 2, 2, 2.375], "texture": "#0"}, + "south": {"uv": [6, 2, 8, 2.375], "texture": "#0"}, + "west": {"uv": [4, 2, 6, 2.375], "texture": "#0"}, + "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, + "down": {"uv": [6, 0, 4, 2], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "control_rod_assembly", + "origin": [10, 5, 10], + "color": 0, + "children": [ + { + "name": "connectors", + "origin": [0, 12, 18], + "color": 0, + "children": [0, 1, 2, 3, 4] + }, + { + "name": "rods", + "origin": [8, 8, 8], + "color": 0, + "children": [5, 6, 7, 8, 9, 10, 11, 12] + }, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + { + "name": "connector_rings", + "origin": [8, 8, 8], + "color": 0, + "children": [26] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/models/block/fission_fuel_assembly.json b/src/main/resources/assets/mekanism/models/block/fission_fuel_assembly.json new file mode 100644 index 00000000..bb9c220d --- /dev/null +++ b/src/main/resources/assets/mekanism/models/block/fission_fuel_assembly.json @@ -0,0 +1,242 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/cube_all", + "texture_size": [128, 128], + "textures": { + "0": "mekanism:blocks/models/fuel_rod_assembly", + "particle": "mekanism:blocks/models/fuel_rod_assembly" + }, + "elements": [ + { + "name": "core", + "from": [2, 3, 2], + "to": [14, 13, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 4, 8]}, + "faces": { + "north": {"uv": [1.5, 6.25, 3, 7.5], "texture": "#0"}, + "east": {"uv": [0, 6.25, 1.5, 7.5], "texture": "#0"}, + "south": {"uv": [4.5, 6.25, 6, 7.5], "texture": "#0"}, + "west": {"uv": [3, 6.25, 4.5, 7.5], "texture": "#0"}, + "up": {"uv": [3, 6.25, 1.5, 4.75], "texture": "#0"}, + "down": {"uv": [4.5, 4.75, 3, 6.25], "texture": "#0"} + } + }, + { + "name": "rod_1", + "from": [13, 1, 1], + "to": [15, 15, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [7.94118, 10.14706, 7.82353]}, + "faces": { + "north": {"uv": [7.25, 5, 7.5, 6.75], "texture": "#0"}, + "east": {"uv": [7, 5, 7.25, 6.75], "texture": "#0"}, + "south": {"uv": [7.75, 5, 8, 6.75], "texture": "#0"}, + "west": {"uv": [7.5, 5, 7.75, 6.75], "texture": "#0"}, + "up": {"uv": [7.5, 5, 7.25, 4.75], "texture": "#0"}, + "down": {"uv": [7.75, 4.75, 7.5, 5], "texture": "#0"} + } + }, + { + "name": "rod_2", + "from": [9, 1, 1], + "to": [11, 15, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [7.94118, 10.14706, 7.82353]}, + "faces": { + "north": {"uv": [7.25, 2.625, 7.5, 4.375], "texture": "#0"}, + "east": {"uv": [7, 2.625, 7.25, 4.375], "texture": "#0"}, + "south": {"uv": [7.75, 2.625, 8, 4.375], "texture": "#0"}, + "west": {"uv": [7.5, 2.625, 7.75, 4.375], "texture": "#0"}, + "up": {"uv": [7.5, 2.625, 7.25, 2.375], "texture": "#0"}, + "down": {"uv": [7.75, 2.375, 7.5, 2.625], "texture": "#0"} + } + }, + { + "name": "rod_3", + "from": [13, 1, 5], + "to": [15, 15, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [7.94118, 10.14706, 7.82353]}, + "faces": { + "north": {"uv": [7.25, 0.25, 7.5, 2], "texture": "#0"}, + "east": {"uv": [7, 0.25, 7.25, 2], "texture": "#0"}, + "south": {"uv": [7.75, 0.25, 8, 2], "texture": "#0"}, + "west": {"uv": [7.5, 0.25, 7.75, 2], "texture": "#0"}, + "up": {"uv": [7.5, 0.25, 7.25, 0], "texture": "#0"}, + "down": {"uv": [7.75, 0, 7.5, 0.25], "texture": "#0"} + } + }, + { + "name": "rod_4", + "from": [1, 1, 1], + "to": [3, 15, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.05882, 10.14706, 7.82353]}, + "faces": { + "north": {"uv": [6.25, 7, 6.5, 8.75], "texture": "#0"}, + "east": {"uv": [6, 7, 6.25, 8.75], "texture": "#0"}, + "south": {"uv": [6.75, 7, 7, 8.75], "texture": "#0"}, + "west": {"uv": [6.5, 7, 6.75, 8.75], "texture": "#0"}, + "up": {"uv": [6.5, 7, 6.25, 6.75], "texture": "#0"}, + "down": {"uv": [6.75, 6.75, 6.5, 7], "texture": "#0"} + } + }, + { + "name": "rod_5", + "from": [1, 1, 5], + "to": [3, 15, 7], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.05882, 10.14706, 7.82353]}, + "faces": { + "north": {"uv": [6.25, 5, 6.5, 6.75], "texture": "#0"}, + "east": {"uv": [6, 5, 6.25, 6.75], "texture": "#0"}, + "south": {"uv": [6.75, 5, 7, 6.75], "texture": "#0"}, + "west": {"uv": [6.5, 5, 6.75, 6.75], "texture": "#0"}, + "up": {"uv": [6.5, 5, 6.25, 4.75], "texture": "#0"}, + "down": {"uv": [6.75, 4.75, 6.5, 5], "texture": "#0"} + } + }, + { + "name": "rod_6", + "from": [1, 1, 9], + "to": [3, 15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.05882, 10.14706, 7.82353]}, + "faces": { + "north": {"uv": [6.25, 2.625, 6.5, 4.375], "texture": "#0"}, + "east": {"uv": [6, 2.625, 6.25, 4.375], "texture": "#0"}, + "south": {"uv": [6.75, 2.625, 7, 4.375], "texture": "#0"}, + "west": {"uv": [6.5, 2.625, 6.75, 4.375], "texture": "#0"}, + "up": {"uv": [6.5, 2.625, 6.25, 2.375], "texture": "#0"}, + "down": {"uv": [6.75, 2.375, 6.5, 2.625], "texture": "#0"} + } + }, + { + "name": "rod_7", + "from": [5, 1, 1], + "to": [7, 15, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.05882, 10.14706, 7.82353]}, + "faces": { + "north": {"uv": [6.25, 0.25, 6.5, 2], "texture": "#0"}, + "east": {"uv": [6, 0.25, 6.25, 2], "texture": "#0"}, + "south": {"uv": [6.75, 0.25, 7, 2], "texture": "#0"}, + "west": {"uv": [6.5, 0.25, 6.75, 2], "texture": "#0"}, + "up": {"uv": [6.5, 0.25, 6.25, 0], "texture": "#0"}, + "down": {"uv": [6.75, 0, 6.5, 0.25], "texture": "#0"} + } + }, + { + "name": "rod_8", + "from": [1, 1, 13], + "to": [3, 15, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.05882, 10.14706, 19.82353]}, + "faces": { + "north": {"uv": [1.25, 2.625, 1.5, 4.375], "texture": "#0"}, + "east": {"uv": [1, 2.625, 1.25, 4.375], "texture": "#0"}, + "south": {"uv": [1.75, 2.625, 2, 4.375], "texture": "#0"}, + "west": {"uv": [1.5, 2.625, 1.75, 4.375], "texture": "#0"}, + "up": {"uv": [1.5, 2.625, 1.25, 2.375], "texture": "#0"}, + "down": {"uv": [1.75, 2.375, 1.5, 2.625], "texture": "#0"} + } + }, + { + "name": "rod_9", + "from": [9, 1, 13], + "to": [11, 15, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.05882, 10.14706, 19.82353]}, + "faces": { + "north": {"uv": [0.25, 2.625, 0.5, 4.375], "texture": "#0"}, + "east": {"uv": [0, 2.625, 0.25, 4.375], "texture": "#0"}, + "south": {"uv": [0.75, 2.625, 1, 4.375], "texture": "#0"}, + "west": {"uv": [0.5, 2.625, 0.75, 4.375], "texture": "#0"}, + "up": {"uv": [0.5, 2.625, 0.25, 2.375], "texture": "#0"}, + "down": {"uv": [0.75, 2.375, 0.5, 2.625], "texture": "#0"} + } + }, + { + "name": "rod_10", + "from": [5, 1, 13], + "to": [7, 15, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [-4.05882, 10.14706, 19.82353]}, + "faces": { + "north": {"uv": [1.25, 0.25, 1.5, 2], "texture": "#0"}, + "east": {"uv": [1, 0.25, 1.25, 2], "texture": "#0"}, + "south": {"uv": [1.75, 0.25, 2, 2], "texture": "#0"}, + "west": {"uv": [1.5, 0.25, 1.75, 2], "texture": "#0"}, + "up": {"uv": [1.5, 0.25, 1.25, 0], "texture": "#0"}, + "down": {"uv": [1.75, 0, 1.5, 0.25], "texture": "#0"} + } + }, + { + "name": "rod_11", + "from": [13, 1, 13], + "to": [15, 15, 15], + "rotation": {"angle": 0, "axis": "y", "origin": [7.94118, 10.14706, 19.82353]}, + "faces": { + "north": {"uv": [0.25, 0.25, 0.5, 2], "texture": "#0"}, + "east": {"uv": [0, 0.25, 0.25, 2], "texture": "#0"}, + "south": {"uv": [0.75, 0.25, 1, 2], "texture": "#0"}, + "west": {"uv": [0.5, 0.25, 0.75, 2], "texture": "#0"}, + "up": {"uv": [0.5, 0.25, 0.25, 0], "texture": "#0"}, + "down": {"uv": [0.75, 0, 0.5, 0.25], "texture": "#0"} + } + }, + { + "name": "rod_12", + "from": [13, 1, 9], + "to": [15, 15, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [7.94118, 10.14706, 19.82353]}, + "faces": { + "north": {"uv": [7.25, 7, 7.5, 8.75], "texture": "#0"}, + "east": {"uv": [7, 7, 7.25, 8.75], "texture": "#0"}, + "south": {"uv": [7.75, 7, 8, 8.75], "texture": "#0"}, + "west": {"uv": [7.5, 7, 7.75, 8.75], "texture": "#0"}, + "up": {"uv": [7.5, 7, 7.25, 6.75], "texture": "#0"}, + "down": {"uv": [7.75, 6.75, 7.5, 7], "texture": "#0"} + } + }, + { + "name": "connector_ring_top", + "from": [0, 13, 0], + "to": [16, 16, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 14.5, 0.5]}, + "faces": { + "north": {"uv": [2, 4.375, 4, 4.75], "texture": "#0"}, + "east": {"uv": [0, 4.375, 2, 4.75], "texture": "#0"}, + "south": {"uv": [6, 4.375, 8, 4.75], "texture": "#0"}, + "west": {"uv": [4, 4.375, 6, 4.75], "texture": "#0"}, + "up": {"uv": [4, 4.375, 2, 2.375], "texture": "#0"}, + "down": {"uv": [6, 2.375, 4, 4.375], "texture": "#0"} + } + }, + { + "name": "connector_ring_bottom", + "from": [0, 0, 0], + "to": [16, 3, 16], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 1.5, 0.5]}, + "faces": { + "north": {"uv": [2, 2, 4, 2.375], "texture": "#0"}, + "east": {"uv": [0, 2, 2, 2.375], "texture": "#0"}, + "south": {"uv": [6, 2, 8, 2.375], "texture": "#0"}, + "west": {"uv": [4, 2, 6, 2.375], "texture": "#0"}, + "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, + "down": {"uv": [6, 0, 4, 2], "texture": "#0"} + } + } + ], + "groups": [ + { + "name": "fuel_rod_assembly", + "origin": [8, 4, 8], + "color": 0, + "children": [0, + { + "name": "rods", + "origin": [8, 8, 8], + "color": 0, + "children": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] + }, + { + "name": "connector_rings", + "origin": [8, 8, 8], + "color": 0, + "children": [13, 14] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/models/block/supercharged_coil.json b/src/main/resources/assets/mekanism/models/block/supercharged_coil.json new file mode 100644 index 00000000..eae1fa79 --- /dev/null +++ b/src/main/resources/assets/mekanism/models/block/supercharged_coil.json @@ -0,0 +1,149 @@ +{ + "credit": "Made with Blockbench", + "parent": "block/cube_all", + "texture_size": [64, 64], + "textures": { + "0": "mekanism:blocks/models/supercharged_coil", + "particle": "mekanism:blocks/models/supercharged_coil" + }, + "elements": [ + { + "name": "body", + "from": [5, 1, 5], + "to": [11, 10, 11], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 8, 7]}, + "faces": { + "north": {"uv": [1.5, 3.75, 3, 6], "texture": "#0"}, + "east": {"uv": [0, 3.75, 1.5, 6], "texture": "#0"}, + "south": {"uv": [4.5, 3.75, 6, 6], "texture": "#0"}, + "west": {"uv": [3, 3.75, 4.5, 6], "texture": "#0"}, + "up": {"uv": [3, 3.75, 1.5, 2.25], "texture": "#0"}, + "down": {"uv": [4.5, 2.25, 3, 3.75], "texture": "#0"} + } + }, + { + "name": "wire1", + "from": [4.995, 8, 7], + "to": [5.995, 13, 8], + "rotation": {"angle": 0, "axis": "y", "origin": [5, 8, 8]}, + "faces": { + "north": {"uv": [0.25, 2.5, 0.5, 3.75], "texture": "#0"}, + "east": {"uv": [0, 2.5, 0.25, 3.75], "texture": "#0"}, + "south": {"uv": [0.75, 2.5, 1, 3.75], "texture": "#0"}, + "west": {"uv": [0.5, 2.5, 0.75, 3.75], "texture": "#0"}, + "up": {"uv": [0.5, 2.5, 0.25, 2.25], "texture": "#0"}, + "down": {"uv": [0.75, 2.25, 0.5, 2.5], "texture": "#0"} + } + }, + { + "name": "wire2", + "from": [10.005, 8, 8], + "to": [11.005, 13, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [10, 8, 8]}, + "faces": { + "north": {"uv": [6.25, 3.25, 6.5, 4.5], "texture": "#0"}, + "east": {"uv": [6, 3.25, 6.25, 4.5], "texture": "#0"}, + "south": {"uv": [6.75, 3.25, 7, 4.5], "texture": "#0"}, + "west": {"uv": [6.5, 3.25, 6.75, 4.5], "texture": "#0"}, + "up": {"uv": [6.5, 3.25, 6.25, 3], "texture": "#0"}, + "down": {"uv": [6.75, 3, 6.5, 3.25], "texture": "#0"} + } + }, + { + "name": "center", + "from": [7, 15, 7], + "to": [9, 16, 9], + "faces": { + "north": {"uv": [5, 2.75, 5.5, 3], "texture": "#0"}, + "east": {"uv": [4.5, 2.75, 5, 3], "texture": "#0"}, + "south": {"uv": [6, 2.75, 6.5, 3], "texture": "#0"}, + "west": {"uv": [5.5, 2.75, 6, 3], "texture": "#0"}, + "up": {"uv": [5.5, 2.75, 5, 2.25], "texture": "#0"}, + "down": {"uv": [6, 2.25, 5.5, 2.75], "texture": "#0"} + } + }, + { + "name": "port", + "from": [4, 0, 4], + "to": [12, 1, 12], + "faces": { + "north": {"uv": [2, 2, 4, 2.25], "texture": "#0"}, + "east": {"uv": [0, 2, 2, 2.25], "texture": "#0"}, + "south": {"uv": [6, 2, 8, 2.25], "texture": "#0"}, + "west": {"uv": [4, 2, 6, 2.25], "texture": "#0"}, + "up": {"uv": [4, 2, 2, 0], "texture": "#0"}, + "down": {"uv": [6, 0, 4, 2], "texture": "#0"} + } + }, + { + "name": "coil_large", + "from": [6, 10, 6], + "to": [10, 15, 10], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 9, 8]}, + "faces": { + "north": {"uv": [6, 6, 7, 7.25], "texture": "#0"}, + "east": {"uv": [5, 6, 6, 7.25], "texture": "#0"}, + "south": {"uv": [8, 6, 9, 7.25], "texture": "#0"}, + "west": {"uv": [7, 6, 8, 7.25], "texture": "#0"}, + "up": {"uv": [7, 6, 6, 5], "texture": "#0"}, + "down": {"uv": [8, 5, 7, 6], "texture": "#0"} + } + }, + { + "name": "coil_1", + "from": [7, 3, 4], + "to": [9, 8, 6], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 2, 6]}, + "faces": { + "north": {"uv": [2.5, 6.5, 3, 7.75], "texture": "#0"}, + "east": {"uv": [2, 6.5, 2.5, 7.75], "texture": "#0"}, + "south": {"uv": [3.5, 6.5, 4, 7.75], "texture": "#0"}, + "west": {"uv": [3, 6.5, 3.5, 7.75], "texture": "#0"}, + "up": {"uv": [3, 6.5, 2.5, 6], "texture": "#0"}, + "down": {"uv": [3.5, 6, 3, 6.5], "texture": "#0"} + } + }, + { + "name": "coil_2", + "from": [7, 3, 10], + "to": [9, 8, 12], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 2, 12]}, + "faces": { + "north": {"uv": [6.5, 0.5, 7, 1.75], "texture": "#0"}, + "east": {"uv": [6, 0.5, 6.5, 1.75], "texture": "#0"}, + "south": {"uv": [7.5, 0.5, 8, 1.75], "texture": "#0"}, + "west": {"uv": [7, 0.5, 7.5, 1.75], "texture": "#0"}, + "up": {"uv": [7, 0.5, 6.5, 0], "texture": "#0"}, + "down": {"uv": [7.5, 0, 7, 0.5], "texture": "#0"} + } + }, + { + "name": "coil_3", + "from": [4, 3, 7], + "to": [6, 8, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [6, 2, 9]}, + "faces": { + "north": {"uv": [0.5, 6.5, 1, 7.75], "texture": "#0"}, + "east": {"uv": [0, 6.5, 0.5, 7.75], "texture": "#0"}, + "south": {"uv": [1.5, 6.5, 2, 7.75], "texture": "#0"}, + "west": {"uv": [1, 6.5, 1.5, 7.75], "texture": "#0"}, + "up": {"uv": [1, 6.5, 0.5, 6], "texture": "#0"}, + "down": {"uv": [1.5, 6, 1, 6.5], "texture": "#0"} + } + }, + { + "name": "coil_4", + "from": [10, 3, 7], + "to": [12, 8, 9], + "rotation": {"angle": 0, "axis": "y", "origin": [12, 2, 9]}, + "faces": { + "north": {"uv": [0.5, 0.5, 1, 1.75], "texture": "#0"}, + "east": {"uv": [0, 0.5, 0.5, 1.75], "texture": "#0"}, + "south": {"uv": [1.5, 0.5, 2, 1.75], "texture": "#0"}, + "west": {"uv": [1, 0.5, 1.5, 1.75], "texture": "#0"}, + "up": {"uv": [1, 0.5, 0.5, 0], "texture": "#0"}, + "down": {"uv": [1.5, 0, 1, 0.5], "texture": "#0"} + } + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/models/item/mekasuithelmet.json b/src/main/resources/assets/mekanism/models/item/mekasuithelmet.json new file mode 100644 index 00000000..9f25a3a2 --- /dev/null +++ b/src/main/resources/assets/mekanism/models/item/mekasuithelmet.json @@ -0,0 +1,3 @@ +{ + "parent": "mekanism:item/standard_item" +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/models/item/mektool.json b/src/main/resources/assets/mekanism/models/item/mektool.json new file mode 100644 index 00000000..9f25a3a2 --- /dev/null +++ b/src/main/resources/assets/mekanism/models/item/mektool.json @@ -0,0 +1,3 @@ +{ + "parent": "mekanism:item/standard_item" +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/render/mekasuitchest.png b/src/main/resources/assets/mekanism/render/mekasuitchest.png new file mode 100644 index 0000000000000000000000000000000000000000..542239e5b1948fe564e940943f2a5dbee4989d08 GIT binary patch literal 6063 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 A%m4rY literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/render/mekasuithelmet.png b/src/main/resources/assets/mekanism/render/mekasuithelmet.png new file mode 100644 index 0000000000000000000000000000000000000000..f6535040130cd74e2b837a855e1e3fc0d21eb7c8 GIT binary patch literal 3324 zcmb_f3s_8PA3u_!ga}D8J0Yr>Idg4hG$k`#h6bBdl9Q(nX|zdJ zxokY;5=l#?RGVG5bo!S_%BB9=?cGGYjY{uV42u_cH~24Mk9Wl#i6 zQph9lxFH(ZTqGJ%VTLj9s2|Vsx!ffxL?VsG7Sw*;^KpDnE`!WsFbEVPdB9zPfX$by zQAjR=`8*CDBZnxJirErK1hSY+2>}KrLIRUTg9$7;3=-&cF_py>G9^NY^+BG8h++&S z@IhXT$%`lqnpnuB5yUW)MSx%$g}@ZT3<4cu(!?xCD5TSdj#vGuogNBW%eYAE)vU56k8>trFpg~9>}5-|-TFsWjgKo&6>EZBuA7K1~f zf6{dqY$N(mr(fdwAg!WENFD)WdnyV4<-z>3O8i_N{?v5;UN9uXR{FleNPjNAfwhme zT`Z9UQ`lZ^7!DmG*vHT@1j{j=RM;W2psDXD0F3D6^E~`D+aGVcgiP?ZI#Y)v-He(W z+j5j&xP27s)V}|vQCA`9+_Y3);Z<`EE;W^@oPBR>*EhSrwa+y6+8yGolokfeKj5Fy zpOw@;Pxa7ZsfUrVLXzY=_M&gBOZDk|4Hfs=-t*bT<{b%7F66r)l2L%X^~AY1@7zLb zR*wKG(eClX<`rMRmwvZli<9y~BqRUD>kZSHz*|2z?@X^07aNOlUw75&_b&eVRlW1TuIz##`Ep5-# zgEu{dt_gisKzrAQ-+()B5+89F?{v+O{kCTf(P~&&+j0A8Q)t=g;mapwi%mx*?i2uADNpL}-vD@8f^+BQm%H1&u8C^bar(!^1xT*G%%5^?)v?N_J!$5X#gbWg z*Z7yC^?LnfnnhJfN_y#$Bj5P#pYi1G_WQSvMWtLc(uD*E4+or`oq?w1?D!hHHEn06 zZru~vtvVX^a$3`AoT;WKs>{ox!L~eOeNs7fn~7Iln<=o}Jt@@Yzi-^uw5`9-4BzOX zr%4|@crXiHxpm?0PAxP3rE^JG-56lDl^HiI=um*^!rN0#^-CG9mr@>9HQlpmIOXcA z|K*`zOf{1L+mr>{919_?@92Q9J&dt38^VzhVPxLJ$*_<9;Vqq4;Od|8(H>;`M|DNaTFtS)+|?M8CxW4DZvMbfqDKUp{D zKFNjC?rKBNCTC@DtdCi#xCmLB`08^gM%6;rJE9NTp1cf~USFlOJbC2+Si+HR0v#_%sLFlRW^=UqcGfdqs=OlqLUXIf z#=^px*Y`$};^&X56yxLh&cB7YB-_xtr9CztYoMrem}OGl?|UJ-x9*4$jb_=G0gML*xVmFN6JKw#jJ%1WkAE+UVa z?&iE@l4WUC6IWn+ zu}FFn3Kr2By31AyThmuPx6QS|dfIkZ?fBX!4h_a9&q9q!FX~Imr<^xhVjDbOz}=T? zu~VPXH@9ar$uWLcL2!j!89wf6Rf&V$vg(ozcM|w|NU0<|%(lR_Lc2}b-=(-}o+bx6ZsEP|>tj1^Sx^+;_b%)0 z{y5%)&Q2)r!Oo5Y1zmY#Qn_T}__d~1o9s9?RbiVpKj}F5)sJ&Zw>H++*6KnJuTM)G z(Ndc*buuY5=LYcf?d#_Sy>X)&dQ0yngtxKoBt+Z;uAA+X{HxCgNh8)tCaPO~Z4Cb> Ne9uL^lKJ6le+SFa3Pb<^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/render/mektool.png b/src/main/resources/assets/mekanism/render/mektool.png new file mode 100644 index 0000000000000000000000000000000000000000..9840d269d09c7a74b5180727c758bcce20af5697 GIT binary patch literal 2902 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 delta 1047 zcmV+y1nB#sAhZsU7Bm1L2m$~A0Q?y3qW}N^8FWQhbW?9;ba!ELWdK2BZ(?O2No`?g zWm08fWO;GPWjp`?18$Kzk|8lMAU8QKF*P_dGBqq9GB7bUFEBYTF)%GKF*-3YIx;Yk z?c9?H0wt4<0+=8P{Yr)HLYP`pi644qL?_vaSTlxN!AEaqGE&ujR^yTgSz>Y z$HvCSkqqc%MQ@TKBVa=6H5eq5Q}!flK-Nw};gK}SKJ&=)Jd4cZVt+sJK=UmKe6x~& zBnk7gD1D!H5NgDOg9BReX$7EOuUk1U2HMz#sl6$hZ-Evq6f9$27D%>*ty@`Hu?&<_ zHXkro1^a*p^O&5Rw3#WO!$Y#Y9DVlM^71laUtb?#wOS?Y>FMF!J3BkXthcw9r`y}x zggmWODuh#0Quy4kdzaz+w3NR_SmWWl;7g~+1uN*k?S}EoSvSh zzneD_>A{;XHIj?PqRlJzBQs-*+_UPgv%J5*Pq?}Hi)LeES6VLWD*I>31%TR#SS>`W zL`lw^2hV?ao?LoymE=2*zY~6VIYD@P-kgk&i`NKm&3z;Mw0NEH-V>8)Z=affe4l-2 zfM~M#-<)aFhL=Z11YlSw80(@)fnHl**EWk&>s)(X zPP}fBmM#qslQvcz#nj`pq&bCuoc)(@$AsJ-mTNv~6V1S?bWKXnBkk|>S(@D~{Eo6D z)2@Hr7#y-V+?c(I!y{;xd0BH0iZjRaqNBt~2fZz?I!| zp2e2>E5O`&Q=wtYsF2DyoVqKr*JyfdGCF-d)dp6ZjMAFp7el_}95T{=W#HQGRv|Yw ztSu;+YSvIm+VooyhyM>myEe%uFbu=L)=u}%;rhMZcH1y)S2(SX#&zGl)wq`O;61Lr z?o*a|4`ZoRI>nAQIy!pD%Z0Qq@lBMibN$Y@5cdqbHHy8@+OnHqry2YaU;qLXmrN1P Rq%Z&g002ovPDHLkV1n41>ni{N diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/combining/advancedcombiningfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/combining/advancedcombiningfactoryfronton.png.mcmeta index 24f9c2fa..242c07d8 100644 --- a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/combining/advancedcombiningfactoryfronton.png.mcmeta +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/combining/advancedcombiningfactoryfronton.png.mcmeta @@ -1,5 +1,16 @@ { "animation": { - "frametime": 1 + "frametime": 1, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] } } diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/enriching/advancedenrichingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/enriching/advancedenrichingfactoryfronton.png index 4ce0599aada5335a367fd70fc6956a63cfa81b7d..8b69610fadfe1e440b8deec991ca175e932ab3d1 100644 GIT binary patch delta 3928 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 delta 1098 zcmV-Q1hxCWCFc&17c(FT0ssI2{21+{0000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+ zQe|Oed2z{QJOBU#Zjm~YAu%x^H#sgbH8?XeH7p=9FflbRFgY(VFfA}KIx#RhGBA;0bC6kT@$&H8ny+H#SBzHZw6XMKw7@G(tl)Hby}(K{!P;F*lP+12vOb1eBAu z20ecc`}ZpV00WOnL_t(|+PqfXP7^^Cp4px4wzVZ8DGC@O#9%`MhKN3e4?y_y$~Q1E zF+PDeCcc0%hCr`;4{i(>N+bqr1Jp`lfY3sJc6U58Upt)?C@SEz`F3_@_MG#bbLPzO zTrS5L~>&kyKP1t`Pk|%1|vJ&F8WdjYfmDHN$rl17(XcSl)jb z8KDtRGxL3A*U?eM*jU%!ZWX?9*3w|d5_m2HssACzXWHHR5$L|75wlV67(gf5#>NI= zJRT=ZCXdB%VihLluxoAt-bC|#-$Wl)o2U>jEG!VN ztgM)kRyt@)F)}?p-8Fmt444&t*kXU%ZZ->HKA$&ztZdn+SI*7N5w5MR5vJ4Wj+|>} zP_0(!@%Yg%;j-6T-3)BM+nlflzMh|-CtO}$CLA3dC0t+sNHeKay5pk0ly@UV5k9yQ zs~x9PqWHwb1U(K9_gzgJTr_@%?KaNN&JwP!u68lAGw|()(9}1k99u_)WVwlfNuj;Pq)H+@=qduWKHq54*;RjS8=-YMjs))p$Q z($wC6FyEHuBA*{jPSN{2C!>Edy7q%ksAON7ObUXaD_g(@wad;NlUMYpRjMB6`S`HP z!(gvzvdEQJxqBT;nyA(5r02z56@yqgA(+ez49NCw7#V;aMa6J_gFQII7eV>0KguA=D z=5#wgK0dRL7@*2J8e_?X>c>2q5VE8BjO2ksJZ%K}5M=l3^}2nMcS&pAi{NGW6xAH} zvi|;l!h?f@9(}Y#LRnp_)r?9=yWnPbx>VTXe{>$e*C!_@<|YIGf&tjTUYyvOOvYpp zc$Z2gBLQm=oBwp8aojSlu_xg>L5 Q`2YX_07*qoM6N<$g3>DjrT_o{ diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/enriching/advancedenrichingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/enriching/advancedenrichingfactoryfronton.png.mcmeta new file mode 100644 index 00000000..008e1f7f --- /dev/null +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/enriching/advancedenrichingfactoryfronton.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 3, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/injecting/advancedinjectingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/injecting/advancedinjectingfactoryfronton.png index 8e34732b39ca72100dc018bc3984642f0e04f3ee..a90a45bfafea7547a44eb5b759fb84dad7041e11 100644 GIT binary patch delta 2114 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 KMNUMnLSTZml?>Ma diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/injecting/advancedinjectingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/injecting/advancedinjectingfactoryfronton.png.mcmeta new file mode 100644 index 00000000..24f9c2fa --- /dev/null +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/injecting/advancedinjectingfactoryfronton.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/purifying/advancedpurifyingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/purifying/advancedpurifyingfactoryfronton.png index 8739a94e09e0f408b610a9295a93cd96f78d8eed..11acccfe633352707bf489c66de5536a90d850c6 100644 GIT binary patch delta 2163 zcma)42~?9;8V#GE(jpZdoJtGF3M z^UZ6;On)f?v3}#q)Ielp8Y2*EqLbW{O$lU_EyV^P5wLiY6$*z1C>Sgm1K_Q(02NE3 z5^a+f+jOKdMz~CVRl`b$5e^Dv@+J)%O0ZB$<#K3fzDy>jVld(`NwAGb!ozSm7%&(N zfnib%U;|*#sK}5Nte7v7iKKjy80Oimx4M&0Yvh>QlDKRVKp+KBp_P`(&0%%4eZVVR^Kq0}^+W_*{nkf)mvWEwi zDUixUk|+n1y@VS?^#(&fu7U-q_kEzUIWmDr2$QhGK`#2^p+G2=v4tGajZQWX99Fz? zVXuHI1BZqGuq(sW762GTCnAV2NKMuY6kx$Cy&u`gmha2 zCJ+c6eK)$35A%#N^{ew+-3;$RNhvdfqfuKH(oWx-<$v#Mhm5u|FBMO(O)rWg*Mj;P zC4DIyn3;}NRr_(yOuhKh5#5`PmZ6R@8pS6{CTrE|Nz(fIAp7R#!>sfzTLUZFe=~{s zDjgaI_UxS__t&wbFA23yqE_k(F~u^6|F>@mL29brQ89P&@XfPvk$(N;%a&^6Psp z&=Z&@oH&xU$#0poXjK|{t5Y*U(=E~6@(WX{SF#p!Xk)#R&)sLqO$3jpE;pgKkLe8{`@n3;+b)E z>>^d%TmKnrrsEPw!Q-1p!sljZUzdAYT>IMnL3DL_`MS#GrENZ~YVvXdlv9>oY3uz< zywgU*flOpZdWYS>K6lfTw?ka?@-{o){8ckE`foWgSpzk5v6GjqrbNmTVU^v0!pgg4 zWF(}k|Ka7J1M~)kzNzt8|F^98W6y6~dp+{m(T(`_V_trUv+Zh&#tZun z->C@8svA>qYHaJET`wP4G~{{4Y#rHEG9UQ)#@ClM4+gmNn7URbjN(Z9`hTbFZLx5%{l@3#9&e<3)Y`>dHDjMCQS9sm<|4 zyMrv#&ZQ@h!leMbQuaMX=;kSWqvLyhI7OvS$Vfp_wA{&+XFv5dhyr0hKOS{f6CLsjQ-Z0 zF{+G1rD6@WS{=}4kQW`-_v9)|gc~mE%WK(Qc+CK5-!(O;t1A2HY{qk6H>5)hIlZ$Q z$_{-_T#T(=PVR4LST{aD!Kpt!B7MzQR8>7nySH~V5Z5s^RFM@XsDRRr<~~WBpw%rM j&@C>TF^;YZ*Iw2^p8sAsJ+pir0S`BZC;f(VK*GNOLiDlF delta 1126 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 delta 1311 zcmV+)1>pMsD7p}k7c(FT0ssI2{21+{0000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+ zQe|Oed2z{QJOBU#Zjm~YAu%x^H#sgbH8?XeH7p=9FflbRFgY(VFfA}KIx#RhGBA;0bC6kT@+oF*GnaMMFkKMl~@pMKw7yFgQX+K{7Z-MMOD5H$jt112vOb1eBA5 z2R(mXlm`g_00d%5L_t(|+O$?nZyZGsuAb@H_4=(Gys;g}u@ZAY;gS#m2cPVl{{e!? zNQe{S1`<*vP$XWta^isUI&nui`v8 zl#%w^QgwB`yQ|gW;vx|#rGTwg3uuf9h$4R#6bya#XRK30-M=_cH^y{JskTW|q9DLl z3d7K$rk-Dz^iGT$3$zj8ZhN%p@oG7;L6I1TXh`>oSU0-oPb{Nr^R2XzGSUht%@UL z4+xnf^_!fWbn!JB4dBMch8!d8nx222c5z6or_=z;Do-mDJyV>ub#CC42(t5H`$ufL zgY6r0DkRo+yY1o*?1#OOksL_1WQ#u4qho|`^5m!N2N#`xMg4{M?FO@k=tWx3>p;<5C6q=n?nc%*>4IL$UGT!S|58eEF451jB>Tz+ivzzxT$- zaH(fi!cGL@-3Ool5{CNr7gs^Qd*f%|-7l{Jmp=Xpc<FdC^K4kii<-dRPN8s(RuAw4df7kYFfK;eP8rih`pTp6JqYj;F;#9E#H9tR(ztPcA z4t!(;xVyUx92gjIm2e&9&ZmFGoprkHCE*J#l@mQ$nuC2d6j&93?Pecy3;YWmKX0o{ z(xYu(XX|?V*|UJuKY#trA$j+SoQy!w-fC%#>lxjG5oFR6eJs&rcdgyEU#q2LG_;4d z6pFIDGxN*RVIH5#?hWKtK@-n_TqZMMX}8N*oiQn0j3Q8X%^57bo&JB$JyST#J=59& zej7~y-#OfdjXRc~6xqk6gDQ8c~t!#*aKs z*oF4Bsh4M8f|1#a7qNY3hrKSB%TG6-@?aOFt21{Op?!;)E?j@&5pEa7#k~N z&&HDqM}RsYQ;C&s%S(R*ZxGut%JmMX*yNR9I?d_Ct|!(ByHPY)w30fM$yw@yWN2Nc zNaM8wncpfE>(>QfrCJ4RVqyaAx3#?mh2`=X_|KpJVXv>Vwk0)bZi}c?g8iTn1w8aK zr`V+=r&HfMM;oCzKOJFtWaPBZ6wO-BUSD6I>*b-LA-}1!(Q1Eb;rmyt(6YT$D#?tK zS4G!}*5lqkIU7#C4NiaA$*V@@RJ~r8K`n>5SS&hPyp|a$W_$xsBEtRs{k VQIPm-a{vGU07(Z$PDHLkV1fqBcr5?` diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/smelting/advancedsmeltingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/smelting/advancedsmeltingfactoryfronton.png.mcmeta index 24f9c2fa..9521044f 100644 --- a/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/smelting/advancedsmeltingfactoryfronton.png.mcmeta +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/advanced/smelting/advancedsmeltingfactoryfronton.png.mcmeta @@ -1,5 +1,17 @@ { "animation": { - "frametime": 1 + "frametime": 2, + "frames": [ + 0, + 1, + 3, + 4, + 6, + 5, + 2, + 3, + 1, + 2 + ] } -} +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/combining/basiccombiningfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/combining/basiccombiningfactoryfronton.png index 96fbe152015ea827c58fabdcd215ac1843adc405..ba2ed2de6684914f4468a0938383d0933f228a3d 100644 GIT binary patch literal 4207 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 JPDHLkV1g~G^``&; diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/combining/basiccombiningfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/combining/basiccombiningfactoryfronton.png.mcmeta index 24f9c2fa..242c07d8 100644 --- a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/combining/basiccombiningfactoryfronton.png.mcmeta +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/combining/basiccombiningfactoryfronton.png.mcmeta @@ -1,5 +1,16 @@ { "animation": { - "frametime": 1 + "frametime": 1, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] } } diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/enriching/basicenrichingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/enriching/basicenrichingfactoryfronton.png index 952cf76d057d71c64cd3cf7773cb2a4122f6157f..c42bd652796167e8d252f4b8b883ffb12e9a4e1e 100644 GIT binary patch literal 5070 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 A7XSbN diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/enriching/basicenrichingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/enriching/basicenrichingfactoryfronton.png.mcmeta new file mode 100644 index 00000000..008e1f7f --- /dev/null +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/enriching/basicenrichingfactoryfronton.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 3, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/injecting/basicinjectingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/injecting/basicinjectingfactoryfronton.png index dbf628bc351852f32fb7143198e45ba6c356c542..0f724c349cb6dba0f0728fd5697c7385ca7212b1 100644 GIT binary patch delta 2194 zcma)43se(V8V-mGDht#qpu$d5T=7UqCdmXcfP|2s5uvbxnBuMsnMsI-Bqjj_l>uG5 zDEQ2=1{ctcr3h9;o(dvRKz!g^${V6psi4TS2n5{$b?ctp)3bBVJ!kH{-~avJ_x(4= zD#`AM(_#zdTA`Xmn!j**nUGFq*pWzcN{+5O_65@&aAUiIEGCV?aslWxkWHnzQ$YrW z2EsHJ47nYh>X@z8@MAUFf10?==Eq`kjrN|2D_bU4!>GuM9Hr4HVJcM_qmsEQR1zvG zqGB>Ent-XPpeslv13RLpvC1fgMxl;UC<&g$<{x+35fi-=3NhG`v`B=4B5agG$Cz#u zwmSq-K$JxjgOO}hgo?DKrVvh0DPdm~hG;MzvAoE18Xct2SQI)GLI+_61BRHZXznnL zHr-VT2PjafIQ|nTNTbjhA#^%Sph4(ApqK_h5e@Qt;IC(hQ4uUwsG<>#7g-vONHD5W zE+GRS4H5bjGKGrhOvqz=dM@zw4N@t@QW)P2nK{6SNF!Cq2@)h0L&+ZwrE;|fk&7?^&x=g(xJsoc z{Quv42@0+U?Voe;P!h9seguTcP4oKse~KqZ^o#fc*bW;{}v=qA&QxPM?QqD=}6Qcg5V;Oe@C)<+AB(U zrL$?izC13|kI(0UARl7$*=%w&58usCz~}qTl=9p` zJ`18lz95Z3WB7bhI-~r3f9mfD)$W?b!E+jmmyk$ig94sU$lCpt-`+YL(y-_no|D)A zs)1(JZZFo&ZFJ_PAW6Ya67BL;sV}v=9S<q9sZXuCtgpFjXc7d**L}um!cta-9);^+{ni#MM^E>HI)D3+(0zaq z66YRsI)0X{Uuh!On51xTE-6CK=Uv60pHNy(CE`g-(hedSQDrvc4c-@$mkGU1%L^|t z;nI?l*_$h3Ek{}=fxcdA7Nng%eR85CWo=`Ue+4Oec^Jgm2xOy2hsb*e zn_63i5h9U@>78hFr@6V!)xZv%(B!Gfu`1=(&4u~fzPUJ(XKk!XySKH(568dH$w~G* z1D1DNw-&@Wq_*vz{1rq?i;L^-&Fz%OISo(Pw;YatGBMh>KvZqlQeLmy4msY<^7?t) z=vGnI9vy)oNb%%^y=VN8*_-=TrF(m>SvCOWbC1`#B=&c(4G*&YzuZg&q0{Mp(ZExQ z-aS9$v3sn492%kzv`WH4aN!p3@@@KDull;IISW!!Q`CV~m*?efO}m)iXLn|Qy&a{9 z)MIqrt9MR{!^bX&XlsJ$ zsB_lwxaQA?ZFkXzv^I-u9)2%sdwQ=8$zX<4PB*_gR$_BNT-5qPQ{I_hQ`}e(ep}Ms z-rhAi+;evpzT@>+mrW5~+#YS=xZj$ zSG#LB`mcmeh=p(bR@Jwh0HeEnz8!t72->mw?aI^M<4a=_ia6ZiDvwURvx}&^(}-n` zOj*69M+RNX%sF1Jw`eTeaPEEzdu(zPFBUw0rafgc-hgKZ&H`F-fn#j*qxROfL&2OC z?axTm-c!_3MX9kXx2C^WleMjW@zkE)zBX=E^O@Lgubs17KC7AJHZ_F2xmx$+QSOH7 zoIk!D^avQdit6STJ$!W|_r*@n~$k(nJ`a~RtG$G-bqN~E_?%Y9?O zdA(VR{mAw8I@NgQ78%Qbd|dHvfwA}OuF$5SmoO`=GpFLcN(@sN9xjS%s0nv5%fkDFl)^08rG!ey n+PAWbjh4~!R(W@`?HvQY-YIq7h0nzT67dQ6fxLWf#GZcv+ULSY delta 1149 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 delta 1147 zcmV->1cdvs7^M%8BqkYjMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o000AS zkvftgF)<)FIW93ZI5RReEFdy4F*PqRIWI9VEif@UF)%tZFp=%tlL!JOla2zIAVo$* zIXOcyG)6%~G%+znH9FciD4LFVxoV5mBGF4HDLiU5kdZegdhot>@;zy z{s0ofuP`Ek4S_(A4T=cJ%=>6P?R}Jrz(Rp$a{6AU@AjPAdwa|K`}-MVoO7U*61cIk z!31w=$*U@F>(zbb34eBW1m`MlkO!^1;6=kgUKn`U-madFYc04bnxH_s_Q z-JPRx@_QX(kFn@4uz#9b-*>yM$E$=v)drj@17%*JcGeSLlC8X6ja+uPf~<>h62 zE|Hoe;m6!v1*CFnYRYCqdwV-@XJ^MKFmcG}Sl5B2{)@b^rW|YhR-p^lYfL_uk%3bE z{P6>;5P$bfCIj5t+dC0I6gi`#qrma;@nnRv3_Kxtbxn=V@cn&Q^EG!A#guVH025NL zto}&{=YLq!wN~=tosxck|5&ql^cJ;g_uF@@ObRG72L=XgEV)^oPN#wUU`iE5@av5? zV2yuxqUSt(18e?q?Y+1#l1`!aE9Ei^#m(n)x_?fAo#$zGN5yYwXb3nlF=4s8rzt%X z>Kzi?)BD7;&vZ7dl`ANyzOf~#LNU}VysCc`pL02pmZ9Q;nfa~S6 z9dM&;meB2_rKLsh!P?rD)B`#TsfrS7I!V^o*X{G_>Z(0wXg=MG+?lyt4!F6wX|v~w zDjKI6M1D-}V&)um?|M|F>Ha~y%E+Fhdj|bWnNQDDIg1Dq#Qs diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/purifying/basicpurifyingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/purifying/basicpurifyingfactoryfronton.png.mcmeta new file mode 100644 index 00000000..24f9c2fa --- /dev/null +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/purifying/basicpurifyingfactoryfronton.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/smelting/basicsmeltingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/smelting/basicsmeltingfactoryfronton.png index 35ce245a8e3e661a2820aded75f3dc6c5207a386..cb9df7ab6a0965d5ab69d55831774069892328bf 100644 GIT binary patch literal 5339 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 delta 1374 zcmV-k1)=)eDaa6z7c(FT0ssI2{21+{0000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+ zQe|Oed2z{QJOBU#Zjm~YAu%x^H#sgbH8?XeH7p=9FflbRFgY(VFfA}KIx#RhGBA;0bC6kTv3kivkKVtI(LWuc$dH2ptzcc4$?lgIMiqKhn z@4R!*ne#hyMo&&o3L&JFz(%71bj}HXC1t8zC0YCIS(hkr@{-2(U;0TljLQpQol+#6 zBuPLm+Agak47L$)O19rY8)NV@I5-HbR4PDt;iQ;fT6995yE5gp%B{ghrXa~glV3zz zXY)c9=3u`eax*$SBAn2=^muuB`NRk$oVE_(%iIbBqCgI9QIL5}0fC0+NQ<<8P83!m z$`j($&SxOb8pknocF>_P*hY%fb2wJcGGm&ia3$3mxWB*89N@vhL7>~!Ao!&W{Wy=x zMW|de+%`2}U)Z~;sj0XUM?`mbcPTm60w*RWfYZ~{;cMA}LX3@#1&$IAcxm>RtIt_m zSy^$RHRaJZ9T*r0@zv{f;KIUx0v{u24Gj&2I5^f8HNa<9XdXcMFP#o!!9a@$_=o$4 zZH9v#8w*=-ta+Y?xRqbfg$(C_tHmn1rAJ4I*kp@l^9wEp|L%)mXJ-dLkDvVmC-nC1 zJu+3r3i!tR zKLf9Q@HFtnOGJO|`EP&t3-J1<7f_MUf5_t+(4A1XsZY!QIUMyOEorL-rHTy5@$qr| z^z`&l;N9K8&CN|Nf9Xyn1u_F0PT;_ndk2#uhqB*y_y#p~#mbDUS zQnF_`7ku_S`YliuZ-bmNiUbNv7+;8%<4{d4OBX4`bedJLd-45$E7Z#uzl55;`6d+z zG`76)Di!U8uV6rb_d4lX=Q)tHRnMtk`~q0L`4&xr=Si#L`Pp;VL}7GXz^3noy>BLm z<@r{tmR|#n3dfg{9DVc=#By$Q6gT(!+B#UhXU_0A&HP2nL&qS+oJLBdACq364>04% z$jJKI8iDeV6Gkqn0G@rd{wHkW4tE($+>gH(m zH1p#tmT6Y6)oMKB_*HS@L~C>JAD<1!-v+H;cKoX0IkmU9$Ag-Wah7F)X0LfhvYFTb zHeun8j*fN{tu!9J17n)a#Iv^DCVVJnXJbS5IMQ=fMl7uxj8P__V#ue g?t^|8-4kFH05Psai2rjEb^rhX07*qoM6N<$f|8SiR{#J2 diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/smelting/basicsmeltingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/smelting/basicsmeltingfactoryfronton.png.mcmeta index 24f9c2fa..9521044f 100644 --- a/src/main/resources/assets/mekanism/textures/blocks/factory/basic/smelting/basicsmeltingfactoryfronton.png.mcmeta +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/basic/smelting/basicsmeltingfactoryfronton.png.mcmeta @@ -1,5 +1,17 @@ { "animation": { - "frametime": 1 + "frametime": 2, + "frames": [ + 0, + 1, + 3, + 4, + 6, + 5, + 2, + 3, + 1, + 2 + ] } -} +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/combining/elitecombiningfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/combining/elitecombiningfactoryfronton.png index 058e483bb1fb15bdc0c0cf68903508c7fcb60b4d..5ccbb40663228574bc3e6a135486aae071e63ec8 100644 GIT binary patch literal 4256 zcmb_g2~<;O+P(@UqLxit5tYQy3MfhLy;(>i1hPRuQH-E~YjSe~0YcIw7|;k2w1TyD zub{Y$R!`meMaC8dp+gm{q6`AUC`GY?Ms^J#+uVRq=hV*3|DQkSB=@`D_ioSoKJWXT zlg!X1fgewHnG68H$3Y^27<&=`U;<&%L~IqMdOibt*s4X5S^$_b&GMZ99LjM90GwG7 z7NLs>Sr364glvNy_*HEj!7VIAWKLtu5OWB4I>C7w1dl zS{xE0LP80Al?Ely$qW(#(U=5p78zpDKq|wF0D};V0x~HOl>|a;kin*V6W)D@m^Y0~ z&K3&--uc4be2FnSotjOd==FNCo=R3}qA3uIh1q~9FigTENZRBCog|5rpmiIwAV9T< zMxoXzR0#x&MTu0EsPiRak&Z%8szXA?4JT;dB??O!B}t;DKxB}jR9bM2NNaUs^!G46 zD6I`kR-+U#s#PUw5EK)4`(0VM0rUJ0!+)VH+<+$N#?`UZ|9j;zKQd%oPMxTUA4!u8 zp`h`o60@hpFhS#h)G;cZN*km46Vv0zBZ;s$z_P_&s!?F1k;DsBNTS7LkieISoseY; z8Jh?3d2|{>z-97;LMnun2lnO(0~kCik1ya;>0>rNq|0J4VUWiQ2%rYAAV^5(f=rOl z^rkU+AS(b0;E(ABC1`b$1Oy%PtHAuCD9rHorpZYX1VTs>22DbevOthTr^{goVW2b^ zVT|ar`5IKBQ)$9fs`xRMhK^-{z~@_7Nhf%$R3yk$dadVsI;cRRLw$)b2ty>0L4xUF zFvO-(*>u_hkjVzYQPB{UOd(HxPZR=4Ff|N@F*!C2{fj8pGBSxy@*jm|2wSewC?yzs z6iP`nN>L|76A9zRVe?h-Dh=isi;nvKeh{A@s!_=m@z{Y@9LOUC3Hc0&#lV6mLzV^^ zt)~FhC^n$70F6pX7-2YD@qr8@ERYIIr4kZD4lzkgga(tOFjY#TNu;1RgN`s*G|c&^ zzU=?P49a*wB83*KQ1ZJOupIs3-6~#z*~glQEkP{(jDeD1aa){PHa`?Jh|pMwTuvi_ zASxlrX*8511z~UOhb9H(C<~QSM}oHK>tj&Ni>~JFxFo0(`Qr(iIF5kqu6|<5G^n*gXn(`=D*|ksKb8+^8o_>|AC=c(2N#| zGD@i5>-RfH#~PlCHLj()+IMN-NutLS!Wo+)AT|J4JP?9lx)7TL3?`2Xv4l)2ogol1 z0^k6j5ufpjKWcglSs)h_g4hi4w#*QocL0sa1-aN@p|c<=^UpQ^)AadsO)l(B=TW)5 zvAJdO$Ag40%%W4d0RsAanj>+KLZA)RcX?q@N4BsV(Xt%Bim{jR%N$L>7^cCl z>R(Et7yvLSG)TY=OUh|IvS`=rAjez7d$Oyms$2((zpYMtle0S_`{x-O@{4-sMv8{) z2&E-YCqA`t+FQ5gLMgd-N9kpCgsZ!q!Ddm>RHwaM4n<0mNp`h%p1M`Frf-s6Qk0c2_hXRtXsx8j2RLpI)R zXXacWw_-xZTqEnFT@JI|OLO~vqil)vaY*j%cw(^6%A9t~zjFDGc>zZ8RA8|V5Kmnn z+99$nEma&n`AznOh`2=0l=vdE%d{<%j-RcyazJw4)_R@0?fA>y97*~7o%u=WH zrXK$x(NNi*Q!7i|`&Q@ugLNzNa`P&bQhx05<25v2{VUh|U(fOe45q`CkpnO9A%Mwb zis=e|>Txtv*!Sb1RI-V(uE@HhrSe8r=gnE`wtw03EFe*eeC&+RtiBnsM!%QkH_+H# zQ?QgXU}Ic$b=an{$1inCu|8FUFUGfBw{2YLH?+X$*N{A`xToRq#E#BQ2PYW%16Khl z`er5Imo!WPIDJ2_@~or`KihMp-1s7;iL}=RklWJrL-EG-XYWP<8IH!h zijr`%IS{yWuV|O^&i?_LJMZ>48mr4L`q=Ex;-2oQT4&YK{)iV`5gT;w-cOPWOYI@%8Fp zV7EdGB>|@J{2Ozra1Y_C?~Td7ZFZ}-f#p)`PR{HWfBJzNW8an4f2B2j9LaxOmJb`SR7PS5u@23-64a&#z#W z*Pi-&drx*8ek4#V553HwB-W zhL5SbPFzcn7QKG-s%8}AbdHBXJ$)Q#?$w1(R!fht>9g(5oplP%dh_D;fdviyt*xz< zF`uo%%~}^xfvbt~tl9}xu+Ef62^m3soC}TDI=E-u=WbQxFBS;)D)J1CInxSbL)|%9 z4CU=tHL-z$vrUTd0w=u3lMIpJ@Y?twYxxq-nFzac%c1M@JwUBHXLr3^)NW5?=pZQoZboy$7#Q9!4n~wi&pWqhwr?o+!e4nHOkPVly|r9+!gzYn;6E8}K^xk8yrX29=!w;I zPDFS?2e*qp(@j4ov*lU&zP~-W&(gOy_`Z4ZvijV~%9hTiTbfH@3GGzvr5i;#_N%)) z(jU0-Y;n(>-VP2W`Fz`$@$!>iqbYM<(h^%I^mD70IX&mM7j$x^us|@ygIn%DRJ{|- zX6*TtBZ8b6Q3>+FS}_tQ399Pvf86VDzH`Z1*~i%Bc*)k5Iqh3?bJ7XG;5ly&~fxV4+F2hDz3 zn%iG5sBiF#i47&ye0pbQ%L=(%x2Y&2FIxASoV%i^yRCzfXuxqCyms$cwqxD0`P(0O zD1QCk(JS$$nDf0U>gmPmd~sUO+M4h)=i_eC+PpRuiG1$gUg;@;vz?Ky!)?jmKzS{Z z6}TVUpWb>kL3d6Z7Dv9)U9v!;JT2Th_%+m*v&Ch9Rhtv%J~tpd=KN{7qa~gP%t`9{6qW z-N=~E@qd!O4eO?3dXC4h>%xj|d>=CXuNco8=6~~B|5wlN;7hv(g_lHQBW5~>IoZ=- z{0Vn1cm~JgMrvpZW>@r`v8x}4yVq)1Oumt-p42zooIVVgQ!{ijb@_G6e+WUsC4!5* H^=bbEZkw>4 delta 1064 zcmV+@1lRkZA-oQd7Bm1L2m$~A0Q?y3qW}N^8FWQhbW?9;ba!ELWdK2BZ(?O2No`?g zWm08fWO;GPWjp`?18$Kzk|8lMAU8QKF*P_dGBqq9GB7bUFEBYTF)%GKF*-3YIx;Yk z?c9?H0wt4<0$h`#2OyIQ0~{bhGB-6sGeJQ{Ge$WvF-0{vK`=o=F-0;mIW;puMnpA} zN&_{MSp<}m_Xjl{z!`-gElC^Ud7*8y(*8Hduw3N8@v#tT%8pJ3mieuT9`;^t07jq?jy>ja6% zKwqCjV}Le)W#DIGyvFluVGtPU2;KJfwx2kQ=R=qS9dT#k(v&p+0npU>wLzal*nGm?nMDxatR*47r_%E~VoojZ3vRngI6 zaHNNwm#=Dt|fY2k7rt?_mFppT9Nz32^S|khSvJhmc1yri7XeJmtL@rWU1Hy=IL-)rP4JdU|>Q z7Z(=+i^XE%747j%@yY#-dmZ`D;NT$O#>NIQkY0L4wPxQ=BmY9kxMwP7L56HDhm=4% zYnOg}$8=3z?4{%Ka!xd#qLe33off{Fz)Tc>Vlp>4hKHQbmlSUgw>SBlr}+RB-q8(K zC==+3S(NeNO{h&uD=-n)FSo%?sd?s6$|4Vyx&H$7F*)uTB(>K|ejv@VLTwb9!XA4y zg%Q}O!<`BYu9|tKy&mvBk8{7Kq%WuC*$H_6mYA)KAfx$ui+vory^8MWG{H_YafIQ2 zkoWOS3zGROXTW9WS%}+)PAgDN3>!WUh@i9d-G0^IcAB9G%=tKI&z=0AgX_Ir_M~7W zRpGEI8s&ZdSHmTxMtiute3kmNhpyzVvt diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/combining/elitecombiningfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/combining/elitecombiningfactoryfronton.png.mcmeta index 24f9c2fa..242c07d8 100644 --- a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/combining/elitecombiningfactoryfronton.png.mcmeta +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/combining/elitecombiningfactoryfronton.png.mcmeta @@ -1,5 +1,16 @@ { "animation": { - "frametime": 1 + "frametime": 1, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] } } diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/enriching/eliteenrichingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/enriching/eliteenrichingfactoryfronton.png index abdc774f18a9605e004ec8e0454a5953702b06b2..7a7d6eb8c55908cbb76d384fa6f4d50f6bd530df 100644 GIT binary patch literal 5114 zcmb_g2UJs8w+`SCP>P@oVk1NbMG5JFL@5bL1d$#`u^=J236V6D02vKk9E7nU7Nk0& zqKKl*fQka@fCvH>EQn&1CQX_`=cYnKnd!MZA^K@UUJA2`5 z2n3?*;!O1h?=bLEYN>??&p=FFSA)F3BQ7eFA;n>@xQ*(SI3B$h~E z&18!L0BgBG3`#>FYaHZaCMyV#!2$p-PiP14DJp@(cx*fPM!Xx!P3!~&@|<@`0H0m% z4A!n77Lg5iu!pUYlRyOmK*og01$?2DB)5Z4>m`Bfscj@2HZ39xvV)VS48k_KdBU7T z5&(v`CLma7oGr|TXpJV|P*{Q$41+=wktkav8jC=oNhksdZv*@CfrHj0Y!1nrO8;UD ze6oWF%4A{^5*ZpAY8{HT7D>2BG?57Ez#uUg1So-!{v?z!NkSz+8T7H88s7x7P2gjf=XatIYz~C7e zGzp6(;c=@_wj>nlv#6Vh&Ex#^jVKz0z+f2|3<(1g-1dKof-S>l%9#IBn9U+_L=piL zWDifkskPC->Ee^>^#1~0G!=QKAZ}(lCoIE8W4v!DMkb1ABz+7lf1T>KVI&Y1h zYLL(MqyiFN2*9RGL;~0}!%4iq$uJS%paX2!7=#TAhep`2aTr8^4S|gyasXTalY<9r z@B#2Ic=mt74CGgboOx2PLO*?(0Y1RaFDpI|)DJchiOHJkXD}!x==YS-sm;H08YBf^ zi(>^KP%IlXf{n+a5KLPR6TtycI06TYVFDOn1|J#-fGVfU`=w@Ra3Ya#=$V>*HX{{r zWT8w6K<0wf|0{zqV0(Q_pU)sxAXCT%!1;=VPlY)(i2nb<{Cgb#Z1Ata{2v1T_kuxA zMf15x$j^lOvwnYabf)3SVB=0zSNbIl6ejm;LhNUzh%FfhP7693jlq+_NkAal($RDj z)`mtWQ_(m&WzDorKJTx{e>Fq?F%ld$wqzQOJ~MqNC^Xf{21mq_@iZqgk@gL8+WKe5 zk^elxX~}PnAkg9IE%02MT7ErH!H2I$G9UzbA^{Iv8!Mdx@IY^Np^_Q$)b3QbgG=rO z@68xu)atk#)?46{SfkD@_vp<}e7APN-JRJd3>{iSZuv5TYt!DQCA&T*@5v0>+2$S^9GvE} zVOv|fwB~7F(>*np((-am|CBgfN#<~DY{}T7Gk?^S2}YH*B~3r;_m?|K4rpa6&L%~2 zjwh(W`8|HjAss||)z4;)@^C8N6VdCzWc;$!JMWwFD zTeF%|qwHEspBz6Mn4c6I`#qtJB18Ljn)3h{I+9itDTP=8zVzKYxOgxvfA3{QcTlNEc>h5HRDbEqB;_1vTRQO?Bow0kDFdcugctT~i@UJm z?w<7qDYa{ttPaspH6NK=cb+I|_Eomt+xVTUE4Q?>?fDI_cBCGRyXZJNC_jqdpy<2a z7S%J^UPbIYSTcI~2rJX?>9!$VJr{Ug@b8106A?_4#MEtPEL*~b?|%&SNvFI~mG`JW zzq}nvKkXIwX&~nekDNHyfGO>$vsB)RouhPK>7kple`nBE>UhH(#Os0F^A|RJ+@WWc zN->MgF7$fpvqHnt(V#$ZG1Wyacd5Yb^5WI*e-w|8CP*rVjSDZG@til?@&^~3!QOeI zbV%dw9=l9Lj&Z{;4XNEbJ5$4Y>rYd0QfcYA(4Iu8(<}p=Ze3e|p-WblIs7oAjazZT z!ZCjCiywpLytI1oVtv6`XU*|vqDj5#tpmmpy01o$IP}Y#=F~2Rwe`u@7Z!{fxfjl> zv%8yqVq@_SH??>UeBwsbZb2@1|0Kd@x^V^Q%KMm*Z8D+zyl zoqOf-*6Zqv?RF&zf6i_=Fe@o6&pD*2Tvu6Uyq$XElc~e9cf-a9)Hm9X#JwWWdVmag z+qRJBw-Sn8=N3FmlwzNo`%k`FocGY&+3m=CPG5D3O?yaTt^Fv!V+f;J2IqN0psj6D z!}GHOJB06aUe{pGuh%}2lG0gne6K}`gS^+D64#xJKjZyK@`(4-N#mlf-nVy4(^iLu z4Et41jE_c*4)qKbTIF^#>)rIanxB;vnV@_-^4~Y!+ATY_{*mZ#rnAq;mXNMxYY#lE z{uMryyQOgC`*mp;!ly?V*4p%I*_)mNZr{H?>Sbv-fB2Q|#y6K;icT%ITvg)yqXlhv z>`h@pWybyMTUDjisjbF(4<0~)!^gZ#R1i&j)nqlatp+i=@eVX?|F)!jAbyrST4&u7 z2X8@@Zpgcs9b*LDyn?Hr=0r`);@7Dl$ncxyNcC+}bpt zbKNDyA>EsUBb^O3?u%mDk&VeaCPXD2UfLb?xe7eV8I zb#(aHZD`khXbZ;eLzx78h#oN!6meF7t1Bg?YWw@`oGT3(TFrY26&C z@m1zv`^dM?-v1!@WV(LPXUQCQSgoHzJl?V4k7O)&R!~k(WI)1XsWMgfdUdwSFmFGx ze@sUaITB$NMW{bpVOFuSsljD%lS0hlxdaG;eHqWG^CzS3sPv0JA^f|?7Shc;Ex3UV zUBcF`+t52_9yO8;PIW~5y5R8=(-VAnR@c_Og758B^`BPF#v2%(I^=ALI_I9DY3(OB zHkynQ@C)k;8dCF#V`HMOYG`7jmVw!KUU;v#y~5}u-eyKO-^6IAru_nye-Q=>-XbR| zN})xJ7q_CK^fm3}BmKk57?;zswX6}4ZEn3}oUS|=YXAOS0;g3&&=OPgxUmMB*3`65 z<+#E~=(|v@s;cT`IW%q3(Zg^%BkRP&@Rya)h8r()uOv4m2)7okd`gr~jO}>Dc_WV( zx7}^;Dz1cL?-_4^iPa)I97@Bwj@KnjZLJ8<{{BSNOt-0m+7`~9yB z8$5vY9@6pac$WaiKb8}ZeEGv<=4B0ex$4*cK|8y|h`fTJiQ5ex$08oS4$p50+vCa$ ztF_v*WDE-To@I4_UfNNK;qOCwYrW+sh$40y$lJPnl~vo*5XCF%&}wCdui;P{R#`n3 z6Oj2Ve|MSjwvv?#_8(J!_Pq8<3!^T<=f#WqO9s71jrb{d^Zzh5vT$CIs=i^8+PnPH{K$^j-kQ&%7pYPt2Kg5m;~uFAJ)%qxy#1K8C-I zu~t*ts`9sXyvoDQZdv&R%-fqn2ap%=eHO9QBZh-LC4HKM2g5%O84BKN97(&Ed#}Ff znP6}NS&Z_TAkW*8coJr43Ey*(G18a>#9c9KJ0xLu>{+PtSH?u?pG}I=A6ceh+T{)Y z(3xVGvc0P9Zp1?)kMsz3=L>T5u8^NqzXnv=Jb9NeawvK1S|9DmM2t3?Vbu)@b(z1u zE_tPq&#)s%rFjz?7OKn_r5$hy{WO@KR zJR?m;jU=2tk=6LXA)9QycNw;I`P%N|L7Qr371!0x^YHVEI#-+d0$UttzB4?Sc5Bj+ zf}d1=Y=2TZGD3P9;aF2pA9$~WQ?pb7sc=7^=hhclcM5sOGu!Rz{Sa+j{Kc)0-xL-Q zV)etrPmk!soy|@q-D%A&Y*gQVL#CZ1tj#zYOCjNpYPRwMB6g94*1O+ zNSPme?8keaOx$%r?A|djLz?y{Hf!3yKd7U~bB%qy2<$;+%sFI6)mXE3PH_GK)AI!_ znhh#{j6|*Z4g{>*&buWeQUmTA@hWuVn*W~5Twsy!^IW(F5M3zA*cY0(`Hu+8VW pDN|Vj6SK}lmFdtQQ4XEdxUhuvYz}@OXX@WM7n(cu62(9Ie*m5rkQM*{ delta 1105 zcmV-X1g`t~C;ASM7c(FT0ssI2{21+{0000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+ zQe|Oed2z{QJOBU#Zjm~YAu%x^H#sgbH8?XeH7p=9FflbRFgY(VFfA}KIx#RhGBA;0bC6kTgdJli!^XiXR{YG6j8%#>evS<=$>y3i-AC{%=>${-;0eog=h8|N> zQ|dOM?(;m47=8HoN&O#*G7*w$p(TCww75D^$x=$U$y`^~Yrfl@xt=EOYA<8qaF}p+ zceghK(ppN|%v>VwX%bw`&>N_%WSZGbE_eu76T@+w!28hJ^vcrG65;y# zdN6|lO))b&JKKNt_Tm||(n0GBT}<6ui*$Z$Zf*v$G#rbS3kwT`TU%R%@p!y*&V@6m zR4Vkid*_F+*^5j!1Jmv%C#-?37Z(=^*Vfhu$H&JBx3}NZn^-K~G0{*gG#Dcfm(E3N zDwQ2orl+Urad7a{wnZW_LUJ~nC0toq3G8m>0eHX%X8eBuM=A3ed--ruN`C+OXET$z z{+-XLNx|AdAW((o=57=2?d=gRFE0mnZxsmx=jZ1MH#Ro9n3)my=A9SRH^Hz-7h%T# znZ$|H_|$Zo>>3#ufSE{>+}A8w6t*@a3Xu-4nAY#eoR1~1&}tD<)we=*Ns_T>GyQb> zwCiH4_Wpl`{^n`ivQ->R-r{CS#XINH=6dGMNlIgc(cdgJ71= z=Lsh!Cg@%9+jr9S@|fC{&19(E3fLWeO3A&u>*;^PZ+o$Inx~u`5-P0+wBH>i+d|JE ziVKB8(A|!Xj(#h{2dJ{bR&rGPDNM3$35MpNKS|h$Paqg1q_2mJgG{+zuOI8=$4?Vj z1S`X)sOI=C8y+4eER{-qWQ+lwNwr!nxDuy{(-O10RG9N;>IblOwOS3nWME$~02}Cw zj-5qFB!Vac?_#kSoPag(&421>9ADSSN!Siv0R!;!+wSV>Wv021`Cx{i0A4tQUjhsO X%hJaAZB_&P00000NkvXXu0mjfoxBBv diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/enriching/eliteenrichingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/enriching/eliteenrichingfactoryfronton.png.mcmeta new file mode 100644 index 00000000..008e1f7f --- /dev/null +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/enriching/eliteenrichingfactoryfronton.png.mcmeta @@ -0,0 +1,14 @@ +{ + "animation": { + "frametime": 3, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/injecting/eliteinjectingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/injecting/eliteinjectingfactoryfronton.png index c4d1b48f98180346a1c2ff18404b334964aa2f4f..2a59a075c2fe2ea7bb1145b6161d5404981d18f9 100644 GIT binary patch delta 2189 zcma)42~-nz8c#?#6sm|9ifBxuRS_~XA=hA7NC<)oB2W-KU^WK{h9o8-0<{c>sGyP} z21S$tv1v5|Rz$o)Jun_9f<+J&sKf0i0**8b>Hsm>%8}WZ|0lt`(59^e5`fy zca%w^ltD3S9L{n4@WJDD?{UT9>}m@ZZJ+7QA~D%sAj2D=G3JvX0Ay1E78Rs<0w4@9 zU^=s4=#H&g!`EsG%klGV`C5@&Q`n66V$0-eSSa9-B^r$qrc#y3Dw&r;l|U5=s3Mst z32ReRK`)R>CZ!||_bMd{jY2I^C^4K#4xhdXU*an$LI410LN?t~z(gQV8pB)Q$;L{a zB09hnBP>t=GT4PjZRjWlrG$AZ5uy2FPY$>b=0i9veN1Ne&5tgQRMW zLY3-ETA&h&;Rw;%k8d(5X=D#DBG5<`ats8~iiG5kMX6k^LF58aZ~%vl;dn`m~?Un>#D<{o~mdb^Sb?UjF zzy%USo*)u($W$^Fb3^^Z81*yH=!oe*f(%dyl85h+KW1w<67|O*xJbf(BJmyeD#W}( zY=FlL;Ccu0`2irvr?dHNHj73BKt9BUcwFuWQknFBC)q3}*WaJd3=HP;14l*!SRkK4 zhv+;IpaC@h&qha-f8eM7iO|CJ1V8lI@shnb9PyvQ0sfIex#prq-Gr|vSkTwYZs?Hd zWxr<>BVrdPL^6H%W6La$?Dsi~mTV*uT^LiFbH<&sG2}W-Z9h1w<L_EuL z6%&n5dJb5XYfr36b6$&-O}bIn$4Tycz4yYps$1r7m}NU`xDKZ)SJXA94K)bSBTuq9 z3-#bz>v;1F_P3G8?>AMJYyfC9LP{TA;1nPC9L#6~EtB0&r4ZIs+8T|+i-43l-BBGk_}RzZy13+`I>Qy$XBJ+raY{?r zv}sf3UY~VE-R?eGoWWr5tLY$89=b8*>mQm{H&)Df{O~&ZkJIl_S!ERJ@!o077#sbf z9~Q(pU;6TQbIi%~p|lfMX3w7e*iv>QQO}@$pZPY3;uTlFglWGa^UC78_9@0S|M7tvLc`1JJBs_mOEjCF^JdpO@5ZAk9xGS}DF zi)%XMbvy^q;+$2hRjFK9DEhA5RqB1T@|Yw(hn`M`4_q!o$X7>dhp@gY0u6WjE?N7;VJCkiM*!rkx zFCpFcmDZu>HqDl!KN$bD`+?ps-8koFH$s)keW2Mc<`A(A*IKm-J(*EnJ~JLc@W;{y z4z$4`ze2&3rIe>utM$Aww$g^bY#K{RvZUN^7!@y*IqfPfwJRzr+K|c3ylzu6C$x3e zoF8`7wjGrFxMV}2+{n2(4oe5~f4aIt+;Sq;gpV=t9rO)RrW=^?#9E>;a^s$P;EI(i zy)Dyx*So&?*Ue}&usiEO`_s$Ik5omP{M4z%&hujp^tREec-6V(_eQTRV0~2!ubF(} z$JBxRHT(A)bN9ENQYS@eBW?wRZDam+cJ`~s(lS>6%&O%(?L;Qjvu-=3Ag`18dhNaL zOEW_CPT_TLDLQz+jUYMB6uHvjnf3*#_2=OJ^E$tG9rnk#JJIhh_x990IKRoU=w{qf zpDh73u|4fKu3Yp>NEQQI+g5JVa=SwOJ4emCsVyqsk{huw6O--j4b8CuG2kKLE?pwk0a@g{sq#ox^H$hjVSdENt-ZEmOX(n-trZ5f@oY&&-Ain^b+ zR};*yLyu3sv~_vDPDiLy{ARq}zIxfhh?<%j&Ct!`TVfh}PL@gvUJB3XMN>N8%{NtS hgo+Y(zFwU0oEcu=lG&L3%2JBMo?w1xKovJW>)#vlkuCrL delta 1143 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 delta 1137 zcmV-%1djWx7@H4}BqkYjMObuGZ)S9NVRB^vL1b@YWgtmyVP|DhWnpA_ami&o000AS zkvftgF)<)FIW93ZI5RReEFdy4F*PqRIWI9VEif@UF)%tZFp=%tlL!JOla2zIAVx$% zGeS8rL`FeFG%+znH9-zcT;;1H(x~ zK~#9!yjERH6+sxDncbtD57HnN_4ozesN2zk`U76tzbNuT=|U853ayJoL=X~!47%-RJ!t-qF#)7~`A+rIf(s;A{at25xnA zb-?-gd0?SXfJPxuvGR%M%JYQpD=wtrCGG#Df&UYH)xJ zFqx7{hR~e>aWPEj&D@yLSch?@@T!+7iCxNmay8iB-;Y=ub$_fUlJNw7^Lct2Vp>`P ztz~t!-L|&22ArDujNfE}0NhDGVJxO8GDeb5&_G5+lvep*AIiWEdb81h2F*w#h$%^q zrARrhfje7PRt9WqYqQU-t*yX{iVEQF?yi<*d{A3kdu*4xG7oZ| zveLNlz=#KT?jn@@!3ph@fk&*6&u;v{pUL`^nVp@THkRD1P9~GU9WbSiBE-#GWjZil zyww%q*+WS4FW6cy=?URJZ!nU)s&tIwO2Uz zG*MOl`YC1>AX$b8SZOkO@@bCJ8U+MJqJR#t5G{HKn_sRxlAqqCSv zboZ=BU7F4x#4CpwKRjp9SIT^Prp^)dkL%Xpw*UhG!0q7T?`2Lv00000NkvXXu0mjf DIn*oT diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/purifying/elitepurifyingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/purifying/elitepurifyingfactoryfronton.png.mcmeta new file mode 100644 index 00000000..24f9c2fa --- /dev/null +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/purifying/elitepurifyingfactoryfronton.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/smelting/elitesmeltingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/smelting/elitesmeltingfactoryfronton.png index b21eb883c76fe94ba8e38d17437b5b03be9e107b..b8226dcc8e5039f6988c63807c754a1fb418ccf7 100644 GIT binary patch literal 5348 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 F{{bU!-kksd delta 1369 zcmV-f1*ZDsDc2B?7c(FT0ssI2{21+{0000PbVXQnQ*UN;cVTj606}DLVr3vnZDD6+ zQe|Oed2z{QJOBU#Zjm~YAu%x^H#sgbH8?XeH7p=9FflbRFgY(VFfA}KIx#RhGBA;0bC6kTA>v z6rY)$-She*c6E+p8|SPfC{bvD2q;|Hg(d$B2t^Q5Av%x{2{B2;M_L+Cfbdb#qZDae zf?^3MkY$VD*q9&_3d{2O?(Ey$$?whEo1G)R3rfTmzkU05X5ROEBj@Jkgb-3n;QszT z&=@0sq>^E1bo9^pc^L$v^JCJqe0^RfP19@&lPRUZ4D1$0ExJESk-V-8x*s5CXJ_#m zA0G!sQDnC$Saj#^nh3OxdrhF5X$o$dB&3%norpFjOPV4{(!IJ&l4Fw-=ceg|%B)SZIqx`?I^d zOU{8$gqWF`0WK~sy1zvR3NbY`&ww+uWf8>6sd_Aw0mH5bky0`Xf%L- ztE;PAM%XnmG2!fBTlGO1WOzeffGxUnB`7E001NoV`NJ|@Vf(_|5o~J{b=$IA*#~>E zhJC=%;w}0>js8XWA`eJ5`#?pfUz-KhY89_%$9~m;xOJ-rdSqk-nAp1Ib6GF;!1new z@TFsSfwyl{?o}!kmxnCl=FRW1_Vnq0X9^1r^@n}^rT?BAgNNd-Q7QVPX6@em;FloK zH$Hq0^tlT^1Hb<04DjqbKLNkF_B`;Fw<+ttz4ij|{G}g&pUuAreEBV+zq0%{F8>I; z@$nf%vNHC z8RhDe?anjZ<`VOn=E(6mnsg`al|e~a-HlBirnv}=u!zQn#$)}9HPX%{w?=q-NdoS$a!IsJ6C-7r)a}%uL;o(2*IE_jrCp(4WfzCTpW~XT`HFafwT$!BY6UyZ> zgsiRpjyneumK-mk9X2O6bKzf0h(I~Bc=no>019&J+F~)|jqU^lnSLS2p{6j#xCKd3 zvL}Z5jFfA4e#7U{qtt5tTtoAbM@EkT|GIY%XO_#u;NQRhH}LRbYG0wu>o$%;q;!PS z0;O{W5p>ha1ZZao)=uz$KxW$Gv@mOEs7KxGG$#PxYIsi7YBe6zT*f7vOH8xYJR@0*F93(|;@;lg zZWFB#?%e}@n#K6Dw%Z|`=F7{=&UZ^oOa3-y^1~*wbNvCyYgSeyRybfgJ3EEB|M$J< bfdB&l1z$%w8qavr00000NkvXXu0mjfj{$wk diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/smelting/elitesmeltingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/smelting/elitesmeltingfactoryfronton.png.mcmeta index 24f9c2fa..9521044f 100644 --- a/src/main/resources/assets/mekanism/textures/blocks/factory/elite/smelting/elitesmeltingfactoryfronton.png.mcmeta +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/elite/smelting/elitesmeltingfactoryfronton.png.mcmeta @@ -1,5 +1,17 @@ { "animation": { - "frametime": 1 + "frametime": 2, + "frames": [ + 0, + 1, + 3, + 4, + 6, + 5, + 2, + 3, + 1, + 2 + ] } -} +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/combining/ultimatecombiningfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/combining/ultimatecombiningfactoryfronton.png index 87a16a3074887f6a946ad88f63e7287e6518c80e..9067dfc63fd613a352ae68d18d475db1004ec748 100644 GIT binary patch literal 4221 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 Kan7(eXZ#HgLz8C! literal 7123 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 YNK=zL$0cmJJJLd>*t(E&ZTw>X4L@Wsxc~qF diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/combining/ultimatecombiningfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/combining/ultimatecombiningfactoryfronton.png.mcmeta index 24f9c2fa..242c07d8 100644 --- a/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/combining/ultimatecombiningfactoryfronton.png.mcmeta +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/combining/ultimatecombiningfactoryfronton.png.mcmeta @@ -1,5 +1,16 @@ { "animation": { - "frametime": 1 + "frametime": 1, + "frames": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] } } diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/enriching/ultimateenrichingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/enriching/ultimateenrichingfactoryfronton.png index 25bd52774a6365270e9df3bac4fbd486e74fe1d3..c09e4ae5581b89e121d81a1bf604fb34d14bd8f2 100644 GIT binary patch literal 5105 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 E03*NKEC2ui literal 7231 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 F{|~$)11;5FmvlkWd6{gNP6iyAFt= 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 T%k%t2Qqw!yI#UX4wru}5VZ|^O diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/purifying/ultimatepurifyingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/purifying/ultimatepurifyingfactoryfronton.png.mcmeta new file mode 100644 index 00000000..24f9c2fa --- /dev/null +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/purifying/ultimatepurifyingfactoryfronton.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 1 + } +} diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/smelting/ultimatesmeltingfactoryfronton.png b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/smelting/ultimatesmeltingfactoryfronton.png index c06d4ece6aa5da7c422911c3dabe101565c27f79..39dab1e8e07e78997339684dedef98c547f85e94 100644 GIT binary patch literal 5391 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 VpTiyS&T_eOnHldP6d1Wj{0mFOMfU&z diff --git a/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/smelting/ultimatesmeltingfactoryfronton.png.mcmeta b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/smelting/ultimatesmeltingfactoryfronton.png.mcmeta index 24f9c2fa..9521044f 100644 --- a/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/smelting/ultimatesmeltingfactoryfronton.png.mcmeta +++ b/src/main/resources/assets/mekanism/textures/blocks/factory/ultimate/smelting/ultimatesmeltingfactoryfronton.png.mcmeta @@ -1,5 +1,17 @@ { "animation": { - "frametime": 1 + "frametime": 2, + "frames": [ + 0, + 1, + 3, + 4, + 6, + 5, + 2, + 3, + 1, + 2 + ] } -} +} \ No newline at end of file diff --git a/src/main/resources/assets/mekanism/textures/blocks/fissionreachercasing.png b/src/main/resources/assets/mekanism/textures/blocks/fissionreachercasing.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5758329a237a001bd9a40a9b212cc123e15c9f GIT binary patch literal 503 zcmV*hc6Y={J@y(382!0E-QyG3JGg(ONsyI=s|<@|Ji|3JxA z<1}o8=xW2Z$&j#ji30HT>u1@{Ov5oo8&q_6^=&;VuDKP#klm6*a@X2x5~$vDPEsVL zkfQB84YcQRy?H0eIhVWt>|dk+97hAV{h+%f*$s2Www>KQP9v4J8;+33TD7~!Dcyiu zkt7XtcS;K7?ve(5)iw0H*Wpa-Mebf={8(wXN;~LQj9QIs{kF>XAzPz tBEEn7ax zNEJmAMoA5>ibG;ll+Z_16yR7i28Tkcp)f}j(HJ~h1+T0M|N21yX>?aNyoJHhud={Q z6XC&R((ou$KtKR8;0TgRcSm7xIKTso!eSKxg(4%!he-@n^kGPT<6uB$kmwW|lS1`@ zZ*wHNQ2m&i2%zboCV11nv-M$obrWzHDv(G+VUXx;lfDqTlD^Z?{ODd^gu9YZWG}Ke z*@wvhw3zR-G!H71%J8866V~6i|4smKErIY|#$W2boVDU;ShtX_Z zC3Yp@-KcbLA~2ZZO>`%tXg=-;_;)wr^{HM|IuH!BJMy>dCi?njbgCQ03v4hfjP&3p zhWaWPoQjGf7K!M-( z#}M6A-Ow&1MK@I(Sy4?zNm5}P%M!ry?cw((0w&+v z5ZMR#i4K|!sWVy;0)gt980cCBrca+CT$VEQ-$YcE4fczzAYaz^q=MS5LoM@t?rNbVZqcrAt!NyNR1ji9DGBhMs7N05=mmmdsVpXMf- zE}q4Fc8EX=@~>i=P*k;Ic~%X9()?DG~J3^0Tj9gd!3xk0no3YuG&MTsV_? zxDW6#5Bbn>OBF{t(MNywE~~0?1V`wBK z$)oT$qmNDzdag-9QMySwuPW^e^_NP^%61TX#@u%aU7e_w;-)=cebP=<`svlcz!OrU zCePrKE}w3S)W>sjc|cN4(Qzzb14$7m=pJD=verKypQ$N2pMB-%jzXJVmoc%UPdpt1 zhoh2b;GGOuG)H?WG+N^K-rhZIj3`^Te$c4gK5BODu1$f5$}Qlhh(<^>5l*m#>N%&4 zORNRgC4|%`9?Rn#Trw|sDfrsmE*iyJzNntC!=bn9Y`Ix+@5AzP?$(=9LXedduANGR ztBN-nf~_zhpb=;EOAkk$aM9#N3{NvUNoptLGLvCQ1q0URswZ-a0aBk{I-QN zSo=7jTQVnD#DzBQJR^WXt)-LPSrtdngjxs*G8 zQkkHiBGp|Uf1_{m^H>NN9*A|fx=f5zg-)=wJ*^w!bh`sR<-|~n8Is~=?~8dOIL`DM z)(_s;>aW<{x!`QKKX^mTtH0G54Iv3cLeZ^b?gBhJKHyrXz57$eB=|Tz(s=aRjEDRd z#tF!oeQJ(S+v48#eOz&T4v&Ppx_37xZ4@m(ys8lvsPj4aU^FoddaX)yEBYOHm{pyQ*hg+;NYtx2X};Kxi+!*_HiKvr9%X0 zYS;I!8FAyEWXtk#J}55E?VW5aRe03z-Qp|IxiF+A*f*^LBh6iK(kjWFQqK@fkpfYV znXGxwRPT1=3N*Y6r}>slWQ96vJvm+J<2&rnVJvdq>Yz@qA7oAFrJn;(?R^c>@@a6L zV2{$CXo)ku*M+RB=3P9Q4kG3Dgy3}Fb8O$SU3(Yh`OXL)@8tmXlR06W!Zq!Gx?&wv zW1}-fk8g2t(d?ep^J#yg-G2MR{iO=G&Z25A<5M+_pv#o-+dH1B#HvI&nso z{f31$&A{E@`Sz_?T8A|FmMUB=lp$CO#OPB{j?pDc8m31lI@~OSlUzI}msX8)ppZKS zsESwfH-0qS6WjWH^0UtDh2I|g`_k25j@AkeyxG?faR_i4MAPgT`Mz74v=Sl0yB{VP zgC>CN&9yIVTF`jC#rC~COyldX$UFD>f_OgVY3G4TU=BQTh+4cEx7IA$@}LR3UTu$s z+|0jp6YZt_N0a#Y-9F(>T7^uB_W_fXp$^r-v6|Eo@y&S;Q(E6c=D{#1!YO-pZ77|j zCYobY0CI5~B6~i7>iKa%^%emn1fj=uOPniwsyza(11e{Bt@~}M!l&RhzsR~eO(_%3 zR#@7!SoEHTW?`uxId9e74f05I?0xnnL?ag2kH*v&d?S%TBh>2h@HdQ%^pHwjs~?<+ZB7*%Yn0Ey9v4Q!iu zmZAQsZgla<(+r(V@kh?@I1+g2qpiDHb#+(7LzZ#m5QNv*}|^Ip>&)1uQ*b zIX#jxHF!GE}kTMM}k-KVlg?v_dvwd@Bpmx2WnAP;U%pD|u%jRBF4PU34Nb3)rM{`OQ+5v>_ zG3;s!*`rrQOq1?bx{hPry>U7Rs*9y@-T%#oI`&>4Qlo*#GG+?O~C8xl1a?(lXx5p>EIIuQbR(aPH1t75B0N1k={l72qE1}2m?ZZhyBh7J zYwnExcpDU!_o0)D!WsT&3!(!)A_oo}*iIzE-i(t*{MrDFYX?$MFMUOs_=7 zw7Fhy`C&x`XwU#7@4u8k)0-hD+@(a24~d^S{rJUP{U9gAHuTdHM376)MZMioC&?a~ zExTWC?|vk=jLAi`0O;uW3_);A{tf7zpo6|=;z4DCu3I#D?Dmr?vpcW7ntVlH+p|xj zB)G;&+J>J(>ou1-mN*Fy4+_Q@^@RqnsY4)nyviY6n%6Lbu;j>&h|OwK0FJ7syYY;qh8Llq<`x8aZ_~WiI#SS#Vpr-Q|(pJNfIR`%X>BWviLi({pMD zKgm=y)t)HZTH0E5f;5QN3U7os-A`!&DTd~_2oLk_heuxK)0WKxw&_9}&;k%05Mn(c z-?vK_e%=?mpvP}hXfxl@pLkWfYNKYIbzp0LGUC=o{CMmduV7Bl{8FE1@fAM3_&dKY zh(<2q@`O9wE|%&AvP4j=2|>rT{aClpLsO(ih=Lkt;(HLayz?9D^Fm3t5`JPGWZ(?py7%E3}E2EDHYt zG5INtg?f44N*-J)PmqQ*j0$bQ{oQT0 zN=ZI5ohgTlfFxuq!X2{@cC-ASo&tg>%i zZ2nohe?xs`baQ&K^^(R5YtG|6!j#Ogi8Y~HP|o|5wuKYzn&OD%|#b2p#jkV=Uo2m{U-QEZayW040f+r!dX`gS}?~~`Ak91nI zzb@#ueXzT4cu704^&3U^@$$!OGqqLB4?jQ-ZKg+&I(LhTM;%5c>d85ry|*7@A)9)^ zj(IQjhGX!hEN~eI6@E$EU58%}>BRaiK0>~?*eR=;vvpZEJ+P`B`4Y>TYR4Wgmz|&J zN}^;FVRVJiOgYQZv$t|e--kTtm5DsW-pQ%Gwa%bV_bEdf0tPRzIe=K6#ns8;1+>7! zva$%Y07g_0++teh6SY=7a%7;$fNt40CcNRP6-%uQiQJsuKn;M*BcZ`PLvd(iGS^tqwSlArDMO{uF>3q1X1EsF7@*dhebKQQ2 z`iGy^9~{e&m7A>5qMy8^JuCFeB(aH5@S-Dad}FGt^9N`D!qC@I(jil7zC!3i3)NYr z+0kHV)P<6OVh7ZN^4goc=zBbFHFpoJ)VQ6#93CswicDs5G?@`uOB{@diJ&m z%5jWs{$-6f10{aS_s$%xL5#^-f2KaWF1xlYzU$`G8|}MG<-6`TMTEyS9TPMROVQtx mJ!ZxwixcMf|1eG1;)O>o-CwoN+x~YPVq$pGph(a8;{O0#R}6Ik literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/models/fuel_rod_assembly.png b/src/main/resources/assets/mekanism/textures/blocks/models/fuel_rod_assembly.png new file mode 100644 index 0000000000000000000000000000000000000000..3dac1a4f2dbbdcb03c3a9580344fdc3d0fcf7afb GIT binary patch literal 5577 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/spscasing.png b/src/main/resources/assets/mekanism/textures/blocks/spscasing.png new file mode 100644 index 0000000000000000000000000000000000000000..fd947467f67c191b1e65084d9a89e936b0a2ee88 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFP2=EDUoi}gZ{Q2`&u3Wic!-fL~ z4jemn?8J!^Cr_R{b?VgV)2GjzIdk^x*>mU4oj-s6!i5W0u3Qm+`qT!fx7gFgF{C0c znSs%bjm?oQE!DsvAt8x@nUyV3OkAPBAVDDMr)Bk5Ira%BHifSCvzB0T-4y=Tid7^r zEpqR#Cs7+ttTNUmdKI;Vst00hZgy8r+H literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/textures/blocks/superheating_element.png b/src/main/resources/assets/mekanism/textures/blocks/superheating_element.png index 0831aa3a4e2e6765f97f434898a11ec29eaeeb63..a47fc07e5e1281eeff6cdef8aaa8c77cc5bf83e3 100644 GIT binary patch delta 344 zcmV-e0jK_u3+Mun8Gi!+001a04^sdD0Blf9R7E5tBqt{)C@3g8Iyyc+K0!f2LPA12 zJ3Bl)JUu-^NLqlRkI4LP9H#aw3LpC@#IABCKWJfw(LN+EQ zCMPB)L_|beK{X{MC0;`}T0b*jMK>uYCt^lBC?_XmNIO&$H-Dl4006g1L_t(|UM-N< zZpAA)Ej(k4fbMh2XXCV;@i@qf1>q>~M$211<;lZeTseZM~D^bFDePVB#D= z%;pf`pK+|Ou~FMd{LlCWfH!cIxfysyxP82TuHSBBj}BD=d7`auTjh|hP`iaQhq#2r qMxdrT8|96vzk8<`I_44b!eb0vX$wb#c8B2WNri(*2qHa^O@ra3rshv9J6vmXt+-8ExcEwirhx3=*@A1v&^ZkCl zk6cY*e(tR43#J1AFw4Ho;#AJ0$Tu}!*>^Yiw91hpTix;s!7B$Ti2+QsP|SdKjw)fC z3`Lihe$QkAK*D0y<(A!!<)la8U@C%vL!79v0U&c}NTfV|Mh1(S5|%eY!(W|(K$bQ_ zs|g3{5Y3E_T~;A6D=P9`o(jLmKtoHjz|0V-IN%tW0z=#eK0t$1gy>QU>FAK3@}FM)i{w3;wVNSr~$#y3=|_Vl*Camx*#Q*M0-i6 z#TJdFyo``fmPHalg25mhRKtQ)f?x)N0YPyD$1@Z}MxdORsZa(VSQPVMVFDhB6=hc7 z!H7qySSXW?kfQW)3Y_S0JaNniqJ>gQhJ+{)!C(~OxJX_T=z#2Gp2~P8I^Zf78N|s1 zgfhva^uxO-MpkO~{6G<)qK32xo-&T%WxK@)DHfP!X;O=;3Cyh1*ib!zVOGLKmx_dm^!nUo2NT%U}t@^~`*46jVQq>T2SBJC9bhzINzlPh%9;_T$- znv(7e?X5ggiQZ0nt8e?Hm%jUF%ar&uC#d5}&ARRACg*Ire0N{lM{R@f_`}hT zRkeGaEx*srDa^Ch{!uY9HVbQQ)Lhu{VdWavJxy;}cUNcTVC%(`Bj>a$scyWdwe8@~ z-`4lp#TC$5i{oPcz4UZ0+>kKXteQOh_6=hG=L1K9`E{GGPdP7>`%K={lH}=GbB^t) zR&DE|kuWE0KzscU_e-fr_NfOWY3F9n_r+_^g~Q?D^EZz?5PGj3O`mc2i`g|zLt}N= zma29`YE{u$_MP0g27hVZvNwNddF@@p)@j++PAUNVde zQ2(RwqgUhf11-QWe?Hvh8cF2D{cz)MaZOO(>;Cmt^CvreSJfn399k6%_rf+T*sGNGq*43 z)>Yo}{Pg!Jtmn7Qd1D+b(d4VX}Bee*fj6RR{a;t*;rMh61w1-OfR}(#Sv3 MZq2u}<*eKGFN#qOzyJUM diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index 482dfaa9..3d52a0ae 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -13,6 +13,7 @@ "dizzyd" ], "credits": "aidancbrady, thommy101, thiakil, unpairedbracket, CyanideX and many others", + "logoFile":"assets/mekanism/logo.png", "useDependencyInformation": true, "dependencies": [ "forge", @@ -46,6 +47,7 @@ "dizzyd" ], "credits": "aidancbrady, thommy101, thiakil, unpairedbracket, CyanideX and many others", + "logoFile":"assets/mekanism/logo.png", "useDependencyInformation": true, "dependencies": [ "mekanism@[${version}]" @@ -68,6 +70,7 @@ "dizzyd" ], "credits": "aidancbrady, thommy101, thiakil, unpairedbracket, CyanideX and many others", + "logoFile":"assets/mekanism/logo.png", "useDependencyInformation": true, "dependencies": [ "mekanism@[${version}]"