From 8353e313d6fcac4507a5bdaab2af52b9bbe90a7e Mon Sep 17 00:00:00 2001 From: Bob Date: Sun, 11 Sep 2022 22:58:51 +0200 Subject: [PATCH] fixes, lung irritant notifications, small crucible --- src/main/java/com/hbm/blocks/ModBlocks.java | 3 + .../java/com/hbm/blocks/gas/BlockGasCoal.java | 3 +- .../hbm/blocks/machine/MachineCrucible.java | 34 + .../java/com/hbm/config/GeneralConfig.java | 3 + .../java/com/hbm/extprop/HbmLivingProps.java | 12 + .../com/hbm/inventory/gui/GUIMachineCoal.java | 15 +- .../gui/GUIMachineElectricFurnace.java | 14 +- .../inventory/recipes/AssemblerRecipes.java | 1 - src/main/java/com/hbm/main/ClientProxy.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 12 + .../java/com/hbm/main/ResourceManager.java | 2 + src/main/java/com/hbm/main/ServerProxy.java | 1 + .../hbm/render/tileentity/RenderCrucible.java | 46 ++ .../java/com/hbm/tileentity/TileMappings.java | 2 + .../machine/TileEntityCrucible.java | 21 + .../TileEntityMachineElectricFurnace.java | 20 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../assets/hbm/models/machines/crucible.obj | 646 ++++++++++++++++++ .../hbm/textures/gui/machine/gui_crucible.png | Bin 0 -> 7412 bytes .../gui/machine/gui_crucible_base.png | Bin 0 -> 2693 bytes .../gui/machine/gui_crucible_brighten_21.png | Bin 0 -> 713 bytes .../gui/machine/gui_crucible_multiply_100.png | Bin 0 -> 944 bytes .../hbm/textures/items/chem_icon_ETHANOL.png | Bin 349 -> 435 bytes .../models/machines/crucible_heat.png | Bin 0 -> 4820 bytes .../hbm/textures/models/machines/lava.png | Bin 0 -> 1361 bytes 26 files changed, 815 insertions(+), 25 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/machine/MachineCrucible.java create mode 100644 src/main/java/com/hbm/render/tileentity/RenderCrucible.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java create mode 100644 src/main/resources/assets/hbm/models/machines/crucible.obj create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_crucible.png create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_base.png create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_brighten_21.png create mode 100644 src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_multiply_100.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/crucible_heat.png create mode 100644 src/main/resources/assets/hbm/textures/models/machines/lava.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 470b4747b..449968504 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -634,6 +634,7 @@ public class ModBlocks { public static Block machine_stirling; public static Block machine_stirling_steel; public static Block machine_sawmill; + public static Block machine_crucible; public static Block machine_difurnace_off; public static Block machine_difurnace_on; @@ -1808,6 +1809,7 @@ public class ModBlocks { machine_stirling = new MachineStirling().setBlockName("machine_stirling").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_stirling_steel = new MachineStirling().setBlockName("machine_stirling_steel").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_sawmill = new MachineSawmill().setBlockName("machine_sawmill").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_crucible = new MachineCrucible().setBlockName("machine_crucible").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_crucible"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -2993,6 +2995,7 @@ public class ModBlocks { register(machine_stirling); register(machine_stirling_steel); register(machine_sawmill); + register(machine_crucible); GameRegistry.registerBlock(machine_difurnace_off, machine_difurnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_on, machine_difurnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_difurnace_rtg_off, machine_difurnace_rtg_off.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java b/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java index 3edf0a6cd..67dca9fea 100644 --- a/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java +++ b/src/main/java/com/hbm/blocks/gas/BlockGasCoal.java @@ -33,8 +33,9 @@ public class BlockGasCoal extends BlockGasBase { EntityLivingBase living = (EntityLivingBase) entity; - if(!ArmorRegistry.hasProtection(living, 3, HazardClass.PARTICLE_COARSE)) + if(!ArmorRegistry.hasProtection(living, 3, HazardClass.PARTICLE_COARSE)) { HbmLivingProps.incrementBlackLung(living, 10); + } } } diff --git a/src/main/java/com/hbm/blocks/machine/MachineCrucible.java b/src/main/java/com/hbm/blocks/machine/MachineCrucible.java new file mode 100644 index 000000000..d4618952c --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineCrucible.java @@ -0,0 +1,34 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.tileentity.machine.TileEntityCrucible; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class MachineCrucible extends BlockDummyable { + + public MachineCrucible() { + super(Material.rock); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + + if(meta >= 12) + return new TileEntityCrucible(); + + return null; + } + + @Override + public int[] getDimensions() { + return new int[] {1, 0, 1, 1, 1, 1}; + } + + @Override + public int getOffset() { + return 1; + } +} diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 484d01fc7..22086512d 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -4,6 +4,8 @@ import net.minecraftforge.common.config.Configuration; public class GeneralConfig { + public static boolean enableThermosPreventer = true; + public static boolean enableDebugMode = true; public static boolean enableMycelium = false; public static boolean enablePlutoniumOre = false; @@ -52,6 +54,7 @@ public class GeneralConfig { public static void loadFromConfig(Configuration config) { final String CATEGORY_GENERAL = CommonConfig.CATEGORY_GENERAL; + enableThermosPreventer = config.get(CATEGORY_GENERAL, "0.00_crashOnThermos", true, "When set to true, will prevent the mod to launch on Thermos servers. Only disable this if you understand what \"tileentities.yml\" is, and how it severely cripples the mod.").getBoolean(true); enableDebugMode = config.get(CATEGORY_GENERAL, "1.00_enableDebugMode", false, "Enable debugging mode").getBoolean(false); enableMycelium = config.get(CATEGORY_GENERAL, "1.01_enableMyceliumSpread", false, "Allows glowing mycelium to spread").getBoolean(false); enablePlutoniumOre = config.get(CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false, "Enables plutonium ore generation in the nether").getBoolean(false); diff --git a/src/main/java/com/hbm/extprop/HbmLivingProps.java b/src/main/java/com/hbm/extprop/HbmLivingProps.java index 2a6ab82a5..bdc929c6e 100644 --- a/src/main/java/com/hbm/extprop/HbmLivingProps.java +++ b/src/main/java/com/hbm/extprop/HbmLivingProps.java @@ -10,6 +10,8 @@ import com.hbm.lib.ModDamageSource; import com.hbm.main.MainRegistry; import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.PlayerInformPacket; +import com.hbm.util.ChatBuilder; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.block.Block; @@ -19,8 +21,10 @@ import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.ai.attributes.IAttributeInstance; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.IExtendedEntityProperties; @@ -211,6 +215,10 @@ public class HbmLivingProps implements IExtendedEntityProperties { if(RadiationConfig.disableAsbestos) return; setAsbestos(entity, getAsbestos(entity) + asbestos); incrementFibrosis(entity, asbestos); + + if(entity instanceof EntityPlayerMP) { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation("info.asbestos").color(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_GAS_HAZARD, 3000), (EntityPlayerMP) entity); + } } @@ -234,6 +242,10 @@ public class HbmLivingProps implements IExtendedEntityProperties { if(RadiationConfig.disableCoal) return; setBlackLung(entity, getBlackLung(entity) + blacklung); incrementFibrosis(entity, blacklung); + + if(entity instanceof EntityPlayerMP) { + PacketDispatcher.wrapper.sendTo(new PlayerInformPacket(ChatBuilder.start("").nextTranslation("info.coaldust").color(EnumChatFormatting.RED).flush(), MainRegistry.proxy.ID_GAS_HAZARD, 3000), (EntityPlayerMP) entity); + } } /// PULMONARY FIBROSIS /// diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java index cf06316ed..24b1cf2ae 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCoal.java @@ -8,7 +8,6 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineCoal; -import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineCoal; @@ -71,27 +70,25 @@ public class GUIMachineCoal extends GuiInfoContainer { drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); //It's as horrifying as it is functional. - TileEntityMachineCoal dud = diFurnace; - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineCoal) - dud = (TileEntityMachineCoal) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); + diFurnace = (TileEntityMachineCoal) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - if(dud.power > 0) { - int i = (int)dud.getPowerScaled(52); + if(diFurnace.power > 0) { + int i = (int)diFurnace.getPowerScaled(52); drawTexturedModalRect(guiLeft + 152, guiTop + 69 - i, 176, 52 - i, 16, i); } - if(dud.burnTime > 0) + if(diFurnace.burnTime > 0) { drawTexturedModalRect(guiLeft + 79, guiTop + 34, 208, 0, 18, 18); } - if(dud.tank.getFill() <= 0) + if(diFurnace.tank.getFill() <= 0) this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 32, 16, 16, 6); this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); - dud.tank.renderTank(guiLeft + 8, guiTop + 69, this.zLevel, 16, 52); + diFurnace.tank.renderTank(guiLeft + 8, guiTop + 69, this.zLevel, 16, 52); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java b/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java index eb56115a9..1f97b7216 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java @@ -7,6 +7,7 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.ContainerElectricFurnace; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; @@ -57,24 +58,19 @@ public class GUIMachineElectricFurnace extends GuiInfoContainer { //if initial ZE is still present, it'll be used instead //works so that container packets can still be used //efficiency! - TileEntityMachineElectricFurnace fs = null; - if(diFurnace.isInvalid() && diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) instanceof TileEntityMachineElectricFurnace) - fs = (TileEntityMachineElectricFurnace) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - else - fs = diFurnace; + diFurnace = (TileEntityMachineElectricFurnace) diFurnace.getWorldObj().getTileEntity(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord); - if(fs.hasPower()) { + if(diFurnace.hasPower()) { int i = (int)diFurnace.getPowerScaled(52); drawTexturedModalRect(guiLeft + 20, guiTop + 69 - i, 200, 52 - i, 16, i); } - if(diFurnace.canProcess() && diFurnace.hasPower()) - { + if(diFurnace.getWorldObj().getBlock(diFurnace.xCoord, diFurnace.yCoord, diFurnace.zCoord) == ModBlocks.machine_electric_furnace_on) { drawTexturedModalRect(guiLeft + 56, guiTop + 35, 176, 0, 16, 16); } - int j1 = fs.getProgressScaled(24); + int j1 = diFurnace.getProgressScaled(24); drawTexturedModalRect(guiLeft + 79, guiTop + 34, 176, 17, j1 + 1, 17); this.drawInfoPanel(guiLeft + 151, guiTop + 19, 8, 8, 8); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index d4024e82d..b4abb39ad 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -63,7 +63,6 @@ public class AssemblerRecipes { for(File file : files) { if(file.getName().equals("hbmAssembler.json")) { - config = file; } } diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 49397dc48..c10328f0c 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -264,6 +264,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityHeaterOilburner.class, new RenderOilburner()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStirling.class, new RenderStirling()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySawmill.class, new RenderSawmill()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCrucible.class, new RenderCrucible()); //AMS ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSBase.class, new RenderAMSBase()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index dd79757d6..e671273f5 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -863,6 +863,18 @@ public class MainRegistry { ToolConfig.loadFromConfig(config); WeaponConfig.loadFromConfig(config); MobConfig.loadFromConfig(config); + + try { + if(GeneralConfig.enableThermosPreventer && Class.forName("thermos.Thermos") != null) { + throw new IllegalStateException("The mod tried to start on a Thermos server and therefore stopped. To allow the server to start on Thermos, change the appropriate " + + "config entry (0.00 in hbm.cfg). This was done because, by default, Thermos " + + "uses a so-called \"optimization\" feature that reduces tile ticking a lot, which will inevitably break a lot of machines. Most people aren't even aware " + + "of this, and start blaming random mods for all their stuff breaking. In order to adjust or even disable this feature, edit \"tileentities.yml\" in your " + + "Thermos install folder. If you believe that crashing the server until a config option is changed is annoying, then I would agree, but it's still preferable " + + "over wasting hours trying to fix an issue that is really just an \"intended feature\" added by Thermos itself, and not a bug in the mod. You'll have to " + + "change Thermos' config anyway so that extra change in NTM's config can't be that big of a burden."); + } + } catch(ClassNotFoundException e) { } config.save(); } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index f1a0d6e0e..42722b66b 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -64,6 +64,7 @@ public class ResourceManager { //Heat Engines public static final IModelCustom stirling = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/stirling.obj")); public static final IModelCustom sawmill = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/sawmill.obj")); + public static final IModelCustom crucible_heat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/crucible.obj")); //Furnaces public static final IModelCustom furnace_iron = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/furnace_iron.obj")); @@ -385,6 +386,7 @@ public class ResourceManager { public static final ResourceLocation stirling_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling.png"); public static final ResourceLocation stirling_steel_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/stirling_steel.png"); public static final ResourceLocation sawmill_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/sawmill.png"); + public static final ResourceLocation crucible_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crucible_heat.png"); //Furnaces public static final ResourceLocation furnace_iron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/furnace_iron.png"); diff --git a/src/main/java/com/hbm/main/ServerProxy.java b/src/main/java/com/hbm/main/ServerProxy.java index 9d4696405..47aadfd5a 100644 --- a/src/main/java/com/hbm/main/ServerProxy.java +++ b/src/main/java/com/hbm/main/ServerProxy.java @@ -26,6 +26,7 @@ public class ServerProxy { public static final int ID_DETONATOR = 6; public static final int ID_FLUID_ID = 7; public static final int ID_GUN_MODE = 8; + public static final int ID_GAS_HAZARD = 9; public void registerRenderInfo() { } public void registerTileEntitySpecialRenderer() { } diff --git a/src/main/java/com/hbm/render/tileentity/RenderCrucible.java b/src/main/java/com/hbm/render/tileentity/RenderCrucible.java new file mode 100644 index 000000000..5fd645ad1 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderCrucible.java @@ -0,0 +1,46 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderCrucible extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + bindTexture(ResourceManager.crucible_tex); + ResourceManager.crucible_heat.renderAll(); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_crucible); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -1.5, 0); + GL11.glScaled(3.25, 3.25, 3.25); + } + public void renderCommon() { + bindTexture(ResourceManager.crucible_tex); + ResourceManager.crucible_heat.renderAll(); + }}; + } +} diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index ae50f7837..3ae08ab0c 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -250,6 +250,8 @@ public class TileMappings { put(TileEntityFurnaceSteel.class, "tileentity_furnace_steel"); put(TileEntityStirling.class, "tileentity_stirling"); put(TileEntitySawmill.class, "tileentity_sawmill"); + put(TileEntityCrucible.class, "tileentity_crucible"); + put(TileEntityMachineAutocrafter.class, "tileentity_autocrafter"); put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java new file mode 100644 index 000000000..50514d291 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCrucible.java @@ -0,0 +1,21 @@ +package com.hbm.tileentity.machine; + +import com.hbm.tileentity.TileEntityMachineBase; + +public class TileEntityCrucible extends TileEntityMachineBase { + + public TileEntityCrucible() { + super(1); + } + + @Override + public String getName() { + return null; + } + + @Override + public void updateEntity() { + + } + +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java index abe14da88..fe1a11bd4 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineElectricFurnace.java @@ -23,6 +23,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl public static final long maxPower = 100000; public int maxProgress = 100; public int consumption = 50; + private int cooldown = 0; private static final int[] slots_io = new int[] { 0, 1, 2 }; @@ -96,7 +97,8 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } public boolean canProcess() { - if(slots[1] == null) { + + if(slots[1] == null || cooldown > 0) { return false; } ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); @@ -145,9 +147,13 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl @Override public void updateEntity() { - boolean flag1 = false; + boolean markDirty = false; if(!worldObj.isRemote) { + + if(cooldown > 0) { + cooldown--; + } power = Library.chargeTEFromItems(slots, 0, power, maxPower); @@ -165,6 +171,10 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl consumption += speedLevel * 50; maxProgress += powerLevel * 10; consumption -= powerLevel * 15; + + if(!hasPower()) { + cooldown = 20; + } if(hasPower() && canProcess()) { progress++; @@ -174,7 +184,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl if(this.progress >= maxProgress) { this.progress = 0; this.processItem(); - flag1 = true; + markDirty = true; } } else { progress = 0; @@ -187,7 +197,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl } if(trigger) { - flag1 = true; + markDirty = true; MachineElectricFurnace.updateBlockState(this.progress > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); } @@ -198,7 +208,7 @@ public class TileEntityMachineElectricFurnace extends TileEntityMachineBase impl this.networkPack(data, 50); - if(flag1) { + if(markDirty) { this.markDirty(); } } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index a9815652b..21fbfc7ba 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -629,6 +629,8 @@ hbmfluid.watz=Giftiger Schlamm hbmfluid.xenon=Xenongas hbmfluid.xpjuice=Erfahrungssaft +info.asbestos=Meine Lunge brennt. +info.coaldust=Das Atmen fällt mir schwer. info.coil=Spulenstärke info.templatefolder=Hergestellt mit %s info.template_in=Input: diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index fe7ccfb47..c215287bd 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -857,6 +857,8 @@ hbmpseudofluid.pf6=Plutonium Hexafluoride hbmpseudofluid.mud_heavy=Heavy Sludge Fraction hbmpseudofluid.mud=Poisonous Sludge Gas +info.asbestos=My lungs are burning. +info.coaldust=It's hard to breathe here. info.coil=Coil Strength info.templatefolder=Created with %s info.template_in=Input: diff --git a/src/main/resources/assets/hbm/models/machines/crucible.obj b/src/main/resources/assets/hbm/models/machines/crucible.obj new file mode 100644 index 000000000..14e9d2957 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/crucible.obj @@ -0,0 +1,646 @@ +# Blender v2.79 (sub 0) OBJ File: 'crucible.blend' +# www.blender.org +o Lava +v -1.000000 0.500000 -1.000000 +v -1.000000 0.500000 1.000000 +v 1.000000 0.500000 1.000000 +v 1.000000 0.500000 -1.000000 +vt 0.999900 0.000100 +vt 0.000100 0.999900 +vt 0.000100 0.000100 +vt 0.999900 0.999900 +vn 0.0000 1.0000 0.0000 +s off +f 2/1/1 4/2/1 1/3/1 +f 2/1/1 3/4/1 4/2/1 +o Main +v -1.500000 0.000000 1.500000 +v 1.500000 0.000000 1.500000 +v -1.500000 0.000000 -1.500000 +v 1.500000 0.000000 -1.500000 +v -1.000000 1.500000 1.000000 +v 1.000000 1.500000 1.000000 +v -1.000000 1.500000 -1.000000 +v 1.000000 1.500000 -1.000000 +v -1.250000 1.500000 1.250000 +v 1.250000 1.500000 1.250000 +v -1.250000 1.500000 -1.250000 +v 1.250000 1.500000 -1.250000 +v -1.250000 0.500000 1.250000 +v 1.250000 0.500000 1.250000 +v -1.250000 0.500000 -1.250000 +v 1.250000 0.500000 -1.250000 +v -1.500000 0.250000 -1.500000 +v -1.500000 0.250000 1.500000 +v 1.500000 0.250000 1.500000 +v 1.500000 0.250000 -1.500000 +v -1.000000 0.500000 -1.000000 +v -1.000000 0.500000 1.000000 +v 1.000000 0.500000 1.000000 +v 1.000000 0.500000 -1.000000 +v 1.250000 1.250000 0.875000 +v 1.250000 0.375000 0.875000 +v 1.250000 1.250000 0.625000 +v 1.250000 0.375000 0.625000 +v 1.375000 0.375000 0.875000 +v 1.375000 1.125000 0.875000 +v 1.375000 0.375000 0.625000 +v 1.375000 1.125000 0.625000 +v 1.250000 1.250000 -0.625000 +v 1.250000 0.375000 -0.625000 +v 1.250000 1.250000 -0.875000 +v 1.250000 0.375000 -0.875000 +v 1.375000 0.375000 -0.625000 +v 1.375000 1.125000 -0.625000 +v 1.375000 0.375000 -0.875000 +v 1.375000 1.125000 -0.875000 +v -1.250000 1.250000 -0.875000 +v -1.250000 0.375000 -0.875000 +v -1.250000 1.250000 -0.625000 +v -1.250000 0.375000 -0.625000 +v -1.375000 0.375000 -0.875000 +v -1.375000 1.125000 -0.875000 +v -1.375000 0.375000 -0.625000 +v -1.375000 1.125000 -0.625000 +v -1.250000 1.250000 0.625000 +v -1.250000 0.375000 0.625000 +v -1.250000 1.250000 0.875000 +v -1.250000 0.375000 0.875000 +v -1.375000 0.375000 0.625000 +v -1.375000 1.125000 0.625000 +v -1.375000 0.375000 0.875000 +v -1.375000 1.125000 0.875000 +v 0.875000 1.250000 -1.250000 +v 0.875000 0.375000 -1.250000 +v 0.625000 1.250000 -1.250000 +v 0.625000 0.375000 -1.250000 +v 0.875000 0.375000 -1.375000 +v 0.875000 1.125000 -1.375000 +v 0.625000 0.375000 -1.375000 +v 0.625000 1.125000 -1.375000 +v -0.625000 1.250000 -1.250000 +v -0.625000 0.375000 -1.250000 +v -0.875000 1.250000 -1.250000 +v -0.875000 0.375000 -1.250000 +v -0.625000 0.375000 -1.375000 +v -0.625000 1.125000 -1.375000 +v -0.875000 0.375000 -1.375000 +v -0.875000 1.125000 -1.375000 +v -0.875000 1.250000 1.250000 +v -0.875000 0.375000 1.250000 +v -0.625000 1.250000 1.250000 +v -0.625000 0.375000 1.250000 +v -0.875000 0.375000 1.375000 +v -0.875000 1.125000 1.375000 +v -0.625000 0.375000 1.375000 +v -0.625000 1.125000 1.375000 +v 0.625000 1.250000 1.250000 +v 0.625000 0.375000 1.250000 +v 0.875000 1.250000 1.250000 +v 0.875000 0.375000 1.250000 +v 0.625000 0.375000 1.375000 +v 0.625000 1.125000 1.375000 +v 0.875000 0.375000 1.375000 +v 0.875000 1.125000 1.375000 +v 1.500000 0.625000 0.125000 +v 1.500000 0.375000 0.125000 +v 1.500000 0.625000 -0.125000 +v 1.500000 0.375000 -0.125000 +v 1.500000 0.625000 0.187500 +v 1.500000 0.375000 0.187500 +v 1.500000 0.625000 -0.187500 +v 1.500000 0.375000 -0.187500 +v 1.500000 0.312500 0.125000 +v 1.500000 0.312500 -0.125000 +v 1.250000 0.875000 0.125000 +v 1.250000 0.625000 0.125000 +v 1.250000 0.625000 -0.125000 +v 1.250000 0.875000 -0.125000 +v 1.250000 0.875000 0.187500 +v 1.250000 0.625000 0.187500 +v 1.250000 0.625000 -0.187500 +v 1.250000 0.875000 -0.187500 +v 1.250000 0.562500 0.125000 +v 1.250000 0.562500 -0.125000 +v -1.500000 0.625000 -0.125000 +v -1.500000 0.375000 -0.125000 +v -1.500000 0.625000 0.125000 +v -1.500000 0.375000 0.125000 +v -1.500000 0.625000 -0.187500 +v -1.500000 0.375000 -0.187500 +v -1.500000 0.625000 0.187500 +v -1.500000 0.375000 0.187500 +v -1.500000 0.312500 -0.125000 +v -1.500000 0.312500 0.125000 +v -1.250000 0.875000 -0.125000 +v -1.250000 0.625000 -0.125000 +v -1.250000 0.625000 0.125000 +v -1.250000 0.875000 0.125000 +v -1.250000 0.875000 -0.187500 +v -1.250000 0.625000 -0.187500 +v -1.250000 0.625000 0.187500 +v -1.250000 0.875000 0.187500 +v -1.250000 0.562500 -0.125000 +v -1.250000 0.562500 0.125000 +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.062500 -0.500000 +v -0.500000 0.062500 0.500000 +v 0.500000 0.062500 0.500000 +v 0.500000 0.062500 -0.500000 +v -0.437500 0.062500 -0.437500 +v -0.437500 0.062500 0.437500 +v 0.437500 0.062500 0.437500 +v 0.437500 0.062500 -0.437500 +v -0.437500 0.000000 -0.437500 +v -0.437500 0.000000 0.437500 +v 0.437500 0.000000 0.437500 +v 0.437500 0.000000 -0.437500 +v 1.250000 0.875000 0.125000 +v 1.250000 0.625000 0.125000 +v 1.250000 0.625000 -0.125000 +v 1.250000 0.875000 -0.125000 +v -1.250000 0.875000 -0.125000 +v -1.250000 0.625000 -0.125000 +v -1.250000 0.625000 0.125000 +v -1.250000 0.875000 0.125000 +vt 0.631579 0.428571 +vt 0.421053 0.142857 +vt 0.631579 0.000000 +vt 0.105263 0.964286 +vt 0.052632 0.642857 +vt 0.105263 0.678571 +vt 0.526316 0.964286 +vt 0.052632 1.000000 +vt 0.526316 0.678571 +vt 0.578947 1.000000 +vt 0.578947 0.642857 +vt 0.052632 0.642857 +vt 0.578947 0.500000 +vt 0.578947 0.642857 +vt 0.052632 0.642857 +vt 0.578947 0.500000 +vt 0.578947 0.642857 +vt 0.342105 0.553571 +vt 0.578947 0.642857 +vt 0.289474 0.553571 +vt 0.342105 0.553571 +vt 0.052632 0.500000 +vt 0.631579 0.464286 +vt 0.000000 0.464286 +vt 0.000000 0.428571 +vt 0.631579 0.428571 +vt 0.000000 0.464286 +vt 0.000000 0.428571 +vt 0.631579 0.428571 +vt 0.000000 0.464286 +vt 0.000000 0.428571 +vt 0.631579 0.428571 +vt 0.000000 0.464286 +vt 0.000000 0.428571 +vt 0.052632 0.500000 +vt 0.631579 0.464286 +vt 0.578947 0.500000 +vt 0.052632 0.500000 +vt 0.631579 0.464286 +vt 0.052632 0.500000 +vt 0.631579 0.464286 +vt 0.578947 0.500000 +vt 0.578947 1.000000 +vt 1.000000 0.857143 +vt 1.000000 1.000000 +vt 0.105263 0.964286 +vt 0.526316 0.678571 +vt 0.526316 0.964286 +vt 0.578947 1.000000 +vt 1.000000 0.857143 +vt 1.000000 1.000000 +vt 0.578947 1.000000 +vt 1.000000 0.857143 +vt 1.000000 1.000000 +vt 0.578947 1.000000 +vt 1.000000 0.857143 +vt 1.000000 1.000000 +vt 0.605263 0.696429 +vt 0.657895 0.678571 +vt 0.657895 0.696429 +vt 0.605263 0.571429 +vt 0.657895 0.678571 +vt 0.605263 0.678571 +vt 0.605263 0.696429 +vt 0.657895 0.696429 +vt 0.578947 0.571429 +vt 0.578947 0.696429 +vt 0.605263 0.571429 +vt 0.605263 0.678571 +vt 0.684211 0.571429 +vt 0.657895 0.571429 +vt 0.578947 0.571429 +vt 0.578947 0.696429 +vt 0.684211 0.571429 +vt 0.657895 0.571429 +vt 0.605263 0.696429 +vt 0.657895 0.678571 +vt 0.657895 0.696429 +vt 0.605263 0.571429 +vt 0.657895 0.678571 +vt 0.605263 0.678571 +vt 0.605263 0.696429 +vt 0.657895 0.696429 +vt 0.578947 0.571429 +vt 0.578947 0.696429 +vt 0.605263 0.571429 +vt 0.605263 0.678571 +vt 0.684211 0.571429 +vt 0.657895 0.571429 +vt 0.578947 0.571429 +vt 0.578947 0.696429 +vt 0.684211 0.571429 +vt 0.657895 0.571429 +vt 0.605263 0.696429 +vt 0.657895 0.678571 +vt 0.657895 0.696429 +vt 0.605263 0.571429 +vt 0.657895 0.678571 +vt 0.605263 0.678571 +vt 0.605263 0.696429 +vt 0.657895 0.696429 +vt 0.578947 0.571429 +vt 0.578947 0.696429 +vt 0.605263 0.571429 +vt 0.605263 0.678571 +vt 0.684211 0.571429 +vt 0.657895 0.571429 +vt 0.578947 0.571429 +vt 0.578947 0.696429 +vt 0.684211 0.571429 +vt 0.657895 0.571429 +vt 0.605263 0.696429 +vt 0.657895 0.678571 +vt 0.657895 0.696429 +vt 0.605263 0.571429 +vt 0.657895 0.678571 +vt 0.605263 0.678571 +vt 0.605263 0.696429 +vt 0.657895 0.696429 +vt 0.578947 0.571429 +vt 0.578947 0.696429 +vt 0.605263 0.571429 +vt 0.605263 0.678571 +vt 0.684211 0.571429 +vt 0.657895 0.571429 +vt 0.578947 0.571429 +vt 0.578947 0.696429 +vt 0.684211 0.571429 +vt 0.657895 0.571429 +vt 0.763158 0.741071 +vt 0.763158 0.732143 +vt 0.776316 0.741071 +vt 0.710526 0.857143 +vt 0.697368 0.821429 +vt 0.710526 0.821429 +vt 0.763158 0.821429 +vt 0.776316 0.857143 +vt 0.763158 0.857143 +vt 0.763158 0.812500 +vt 0.710526 0.812500 +vt 0.776316 0.821429 +vt 0.710526 0.741071 +vt 0.697368 0.741071 +vt 0.710526 0.732143 +vt 0.776316 0.776786 +vt 0.763158 0.776786 +vt 0.710526 0.776786 +vt 0.776316 0.812500 +vt 0.763158 0.776786 +vt 0.776316 0.776786 +vt 0.644737 0.812500 +vt 0.697368 0.776786 +vt 0.697368 0.812500 +vt 0.631579 0.812500 +vt 0.578947 0.776786 +vt 0.631579 0.776786 +vt 0.828947 0.812500 +vt 0.842105 0.776786 +vt 0.842105 0.812500 +vt 0.644737 0.776786 +vt 0.710526 0.857143 +vt 0.710526 0.776786 +vt 0.894737 0.776786 +vt 0.894737 0.812500 +vt 0.828947 0.776786 +vt 0.776316 0.732143 +vt 0.763158 0.696429 +vt 0.776316 0.696429 +vt 0.644737 0.732143 +vt 0.697368 0.696429 +vt 0.697368 0.732143 +vt 0.631579 0.732143 +vt 0.578947 0.696429 +vt 0.631579 0.696429 +vt 0.828947 0.732143 +vt 0.842105 0.696429 +vt 0.842105 0.732143 +vt 0.644737 0.696429 +vt 0.710526 0.776786 +vt 0.710526 0.696429 +vt 0.894737 0.696429 +vt 0.894737 0.732143 +vt 0.828947 0.696429 +vt 0.421053 0.285714 +vt 0.000000 0.000000 +vt 0.210526 0.285714 +vt 0.210526 0.142857 +vt 0.657895 0.178571 +vt 0.868421 0.169643 +vt 0.868421 0.178571 +vt 0.881579 0.160714 +vt 0.868421 0.026786 +vt 0.881579 0.017857 +vt 0.868421 0.000000 +vt 0.657895 0.008929 +vt 0.657895 0.000000 +vt 0.894737 0.160714 +vt 0.894737 0.017857 +vt 0.631579 0.017857 +vt 0.644737 0.160714 +vt 0.631579 0.160714 +vt 0.671053 0.160714 +vt 0.855263 0.151786 +vt 0.855263 0.160714 +vt 0.644737 0.017857 +vt 0.657895 0.151786 +vt 0.657895 0.169643 +vt 0.868421 0.008929 +vt 0.671053 0.017857 +vt 0.671053 0.026786 +vt 0.855263 0.026786 +vt 0.855263 0.017857 +vt 0.868421 0.151786 +vt 0.657895 0.026786 +vt 0.671053 0.151786 +vt 0.631579 0.535714 +vt 0.578947 0.571429 +vt 0.578947 0.535714 +vt 0.289474 0.553571 +vt 0.342105 0.517857 +vt 0.631579 0.535714 +vt 0.578947 0.571429 +vt 0.578947 0.535714 +vt 0.052632 0.642857 +vt 0.342105 0.517857 +vt 0.578947 0.857143 +vt 0.105263 0.678571 +vt 0.578947 0.857143 +vt 0.578947 0.857143 +vt 0.578947 0.857143 +vt 0.684211 0.696429 +vt 0.684211 0.696429 +vt 0.684211 0.696429 +vt 0.684211 0.696429 +vt 0.684211 0.696429 +vt 0.684211 0.696429 +vt 0.684211 0.696429 +vt 0.684211 0.696429 +vt 0.697368 0.857143 +vt 0.697368 0.776786 +vt 0.578947 0.812500 +vt 0.763158 0.857143 +vt 0.578947 0.732143 +vt 0.763158 0.776786 +vt 0.631579 0.571429 +vt 0.289474 0.517857 +vt 0.631579 0.571429 +vt 0.289474 0.517857 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 -0.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn 0.7071 0.7071 0.0000 +vn 0.0000 0.7071 -0.7071 +vn -0.7071 0.7071 0.0000 +vn -0.5774 -0.5774 -0.5774 +vn -0.5774 -0.5774 0.5774 +vn -0.7071 -0.7071 0.0000 +vn 0.5774 -0.5774 0.5773 +vn 0.5774 -0.5774 -0.5774 +vn 0.7071 -0.7071 0.0000 +vn 0.5774 -0.5774 0.5774 +s off +f 8/5/2 135/6/2 7/7/2 +f 9/8/3 14/9/3 10/10/3 +f 11/11/3 13/12/3 9/8/3 +f 12/13/3 15/14/3 11/11/3 +f 10/10/3 16/15/3 12/13/3 +f 16/16/4 19/17/4 15/18/4 +f 13/19/5 18/20/5 14/21/5 +f 14/9/6 152/22/6 16/15/6 +f 13/23/7 153/24/7 156/25/7 +f 17/26/8 23/27/8 18/20/8 +f 8/5/6 23/28/6 6/29/6 +f 5/30/7 21/31/7 7/32/7 +f 7/33/4 24/34/4 8/35/4 +f 6/36/5 22/37/5 5/38/5 +f 18/39/9 24/40/9 20/41/9 +f 20/42/10 21/43/10 19/17/10 +f 19/44/11 22/45/11 17/46/11 +f 9/47/6 25/48/6 11/49/6 +f 26/50/3 28/51/3 25/52/3 +f 11/53/5 28/54/5 12/55/5 +f 10/56/4 26/57/4 9/58/4 +f 12/59/7 27/60/7 10/61/7 +f 37/62/9 44/63/9 39/64/9 +f 33/65/6 36/66/6 34/67/6 +f 29/68/9 36/66/9 31/69/9 +f 30/70/5 34/67/5 29/71/5 +f 41/72/6 44/63/6 42/73/6 +f 32/74/4 36/66/4 35/75/4 +f 38/76/5 42/73/5 37/77/5 +f 40/78/4 44/63/4 43/79/4 +f 53/80/11 60/81/11 55/82/11 +f 49/83/7 52/84/7 50/85/7 +f 45/86/11 52/84/11 47/87/11 +f 46/88/4 50/85/4 45/89/4 +f 57/90/7 60/81/7 58/91/7 +f 48/92/5 52/84/5 51/93/5 +f 54/94/4 58/91/4 53/95/4 +f 56/96/5 60/81/5 59/97/5 +f 69/98/10 76/99/10 71/100/10 +f 65/101/4 68/102/4 66/103/4 +f 61/104/10 68/102/10 63/105/10 +f 62/106/6 66/103/6 61/107/6 +f 73/108/4 76/99/4 74/109/4 +f 64/110/7 68/102/7 67/111/7 +f 70/112/6 74/109/6 69/113/6 +f 72/114/7 76/99/7 75/115/7 +f 85/116/8 92/117/8 87/118/8 +f 81/119/5 84/120/5 82/121/5 +f 77/122/8 84/120/8 79/123/8 +f 78/124/7 82/121/7 77/125/7 +f 89/126/5 92/117/5 90/127/5 +f 80/128/6 84/120/6 83/129/6 +f 86/130/7 90/127/7 85/131/7 +f 88/132/6 92/117/6 91/133/6 +f 116/134/7 122/135/7 120/136/7 +f 93/137/6 98/138/6 94/139/6 +f 96/140/6 99/141/6 95/142/6 +f 94/139/6 102/143/6 96/140/6 +f 94/139/6 98/138/6 101/144/6 +f 96/140/6 102/143/6 100/145/6 +f 114/146/7 118/147/7 121/148/7 +f 114/146/7 122/135/7 116/134/7 +f 116/134/7 119/149/7 115/150/7 +f 113/151/7 118/147/7 114/146/7 +f 100/152/12 112/153/12 109/154/12 +f 97/155/5 108/156/5 98/157/5 +f 93/158/4 104/159/4 103/160/4 +f 99/161/9 106/162/9 95/163/9 +f 93/158/9 107/164/9 97/155/9 +f 96/140/9 104/165/9 94/139/9 +f 98/157/13 111/166/13 101/144/13 +f 95/163/5 105/167/5 96/168/5 +f 101/144/14 112/153/14 102/143/14 +f 99/161/4 109/154/4 110/169/4 +f 120/170/15 132/171/15 129/172/15 +f 117/173/4 128/174/4 118/175/4 +f 113/176/5 124/177/5 123/178/5 +f 119/179/11 126/180/11 115/181/11 +f 113/176/11 127/182/11 117/173/11 +f 116/134/11 124/183/11 114/146/11 +f 118/175/16 131/184/16 121/148/16 +f 115/181/4 125/185/4 116/186/4 +f 121/148/17 132/171/17 122/135/17 +f 119/179/5 129/172/5 130/187/5 +f 6/29/2 136/188/2 8/5/2 +f 5/189/2 134/190/2 6/29/2 +f 7/7/2 133/191/2 5/189/2 +f 134/192/7 140/193/7 136/194/7 +f 140/195/2 141/196/2 137/197/2 +f 135/198/6 138/199/6 133/200/6 +f 136/201/5 137/197/5 135/202/5 +f 133/203/4 139/204/4 134/205/4 +f 143/206/6 148/207/6 144/208/6 +f 138/209/2 143/210/2 139/204/2 +f 139/211/2 144/208/2 140/193/2 +f 137/212/2 142/213/2 138/199/2 +f 148/207/2 146/214/2 145/215/2 +f 141/216/7 146/214/7 142/213/7 +f 144/217/4 145/215/4 141/196/4 +f 142/218/5 147/219/5 143/210/5 +f 151/220/6 149/221/6 150/222/6 +f 18/39/6 149/223/6 14/9/6 +f 151/224/6 18/39/6 20/41/6 +f 152/22/6 20/41/6 16/15/6 +f 155/225/7 153/226/7 154/227/7 +f 19/44/7 153/24/7 15/228/7 +f 155/229/7 19/44/7 17/46/7 +f 156/25/7 17/46/7 13/23/7 +f 8/5/2 136/188/2 135/6/2 +f 9/8/3 13/12/3 14/9/3 +f 11/11/3 15/14/3 13/12/3 +f 12/13/3 16/15/3 15/14/3 +f 10/10/3 14/9/3 16/15/3 +f 16/16/4 20/42/4 19/17/4 +f 13/19/5 17/26/5 18/20/5 +f 14/9/6 149/223/6 152/22/6 +f 13/23/7 15/228/7 153/24/7 +f 17/26/8 22/37/8 23/27/8 +f 8/5/6 24/40/6 23/28/6 +f 5/30/7 22/45/7 21/31/7 +f 7/33/4 21/43/4 24/34/4 +f 6/36/5 23/27/5 22/37/5 +f 18/39/9 23/28/9 24/40/9 +f 20/42/10 24/34/10 21/43/10 +f 19/44/11 21/31/11 22/45/11 +f 9/47/6 26/230/6 25/48/6 +f 26/50/3 27/231/3 28/51/3 +f 11/53/5 25/232/5 28/54/5 +f 10/56/4 27/233/4 26/57/4 +f 12/59/7 28/234/7 27/60/7 +f 37/62/9 42/73/9 44/63/9 +f 33/65/6 35/75/6 36/66/6 +f 29/68/9 34/67/9 36/66/9 +f 30/70/5 33/65/5 34/67/5 +f 41/72/6 43/79/6 44/63/6 +f 32/74/4 31/235/4 36/66/4 +f 38/76/5 41/72/5 42/73/5 +f 40/78/4 39/236/4 44/63/4 +f 53/80/11 58/91/11 60/81/11 +f 49/83/7 51/93/7 52/84/7 +f 45/86/11 50/85/11 52/84/11 +f 46/88/4 49/83/4 50/85/4 +f 57/90/7 59/97/7 60/81/7 +f 48/92/5 47/237/5 52/84/5 +f 54/94/4 57/90/4 58/91/4 +f 56/96/5 55/238/5 60/81/5 +f 69/98/10 74/109/10 76/99/10 +f 65/101/4 67/111/4 68/102/4 +f 61/104/10 66/103/10 68/102/10 +f 62/106/6 65/101/6 66/103/6 +f 73/108/4 75/115/4 76/99/4 +f 64/110/7 63/239/7 68/102/7 +f 70/112/6 73/108/6 74/109/6 +f 72/114/7 71/240/7 76/99/7 +f 85/116/8 90/127/8 92/117/8 +f 81/119/5 83/129/5 84/120/5 +f 77/122/8 82/121/8 84/120/8 +f 78/124/7 81/119/7 82/121/7 +f 89/126/5 91/133/5 92/117/5 +f 80/128/6 79/241/6 84/120/6 +f 86/130/7 89/126/7 90/127/7 +f 88/132/6 87/242/6 92/117/6 +f 93/137/6 97/243/6 98/138/6 +f 96/140/6 100/145/6 99/141/6 +f 94/139/6 101/144/6 102/143/6 +f 114/146/7 121/148/7 122/135/7 +f 116/134/7 120/136/7 119/149/7 +f 113/151/7 117/244/7 118/147/7 +f 100/152/12 102/143/12 112/153/12 +f 97/155/5 107/164/5 108/156/5 +f 93/158/4 94/245/4 104/159/4 +f 99/161/9 110/169/9 106/162/9 +f 93/158/9 103/160/9 107/164/9 +f 96/140/9 105/246/9 104/165/9 +f 98/157/13 108/156/13 111/166/13 +f 95/163/5 106/162/5 105/167/5 +f 101/144/14 111/166/14 112/153/14 +f 99/161/4 100/152/4 109/154/4 +f 120/170/18 122/135/18 132/171/18 +f 117/173/4 127/182/4 128/174/4 +f 113/176/5 114/247/5 124/177/5 +f 119/179/11 130/187/11 126/180/11 +f 113/176/11 123/178/11 127/182/11 +f 116/134/11 125/248/11 124/183/11 +f 118/175/16 128/174/16 131/184/16 +f 115/181/4 126/180/4 125/185/4 +f 121/148/17 131/184/17 132/171/17 +f 119/179/5 120/170/5 129/172/5 +f 6/29/2 134/190/2 136/188/2 +f 5/189/2 133/191/2 134/190/2 +f 7/7/2 135/6/2 133/191/2 +f 134/192/7 139/211/7 140/193/7 +f 140/195/2 144/217/2 141/196/2 +f 135/198/6 137/212/6 138/199/6 +f 136/201/5 140/195/5 137/197/5 +f 133/203/4 138/209/4 139/204/4 +f 143/206/6 147/219/6 148/207/6 +f 138/209/2 142/218/2 143/210/2 +f 139/211/2 143/206/2 144/208/2 +f 137/212/2 141/216/2 142/213/2 +f 148/207/2 147/219/2 146/214/2 +f 141/216/7 145/215/7 146/214/7 +f 144/217/4 148/207/4 145/215/4 +f 142/218/5 146/214/5 147/219/5 +f 151/220/6 152/249/6 149/221/6 +f 18/39/6 150/250/6 149/223/6 +f 151/224/6 150/250/6 18/39/6 +f 152/22/6 151/224/6 20/41/6 +f 155/225/7 156/251/7 153/226/7 +f 19/44/7 154/252/7 153/24/7 +f 155/229/7 154/252/7 19/44/7 +f 156/25/7 155/229/7 17/46/7 diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible.png new file mode 100644 index 0000000000000000000000000000000000000000..fc2435ad62a362456de0aad0607a01f667c08238 GIT binary patch literal 7412 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 F{~wZYBo_bx literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_base.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_base.png new file mode 100644 index 0000000000000000000000000000000000000000..4e3ede879de87a54f01f35233c1db0733dbf1ba9 GIT binary patch literal 2693 zcmcIl2~bm67X1Mwh%B}W5ru$bD|Q2ePO}IEBC>`pfG7+C3J53=RALB8h(Xbb3J65g zYS;{$vPfu9LBpoVA_@^y0@8#jSt3NXAZrpbNkF@1s+{U_YF^c?_v-$C&Ohh8TlKGa zxI3ySZB+sQKn3As=LG;D$q@u7Do8f}n0sN8Z4LSW!dp?Y;uViy1^^`(!p_D!E_1x! zEy~|Vvw51EO|bd}N@`Xw+K}t@Yx$id2M|SJ9o-U-|@1Y;+3^>Hi$fr1L~I3?4H5f1m9P2!t}RwA%dNgpM|6hi)>s+bqFit zu^HF8!}#J+(G+32BTqYkNT;W*y+8Q~gUh9l*IoiS(Ce#m10Q?)pi5uR1%{`g z9?lyFZrg<8>kX5ZnQE0m=XQ~%4>oPchdBwv?K6p~@OkuNXP>Q@MTSEoYTrNyU!z#~ z^E?d$58W`EqHO}Av2Oz%-%Un$*(8Q z`Sx#7|B)&(p^d9bJ~uK@JsT0v6{TjsOxkWwZ_DC5!5DU!M&Qfq3S#f(iKCrxw7`WO(QV7cH$``%B)@iEeIa6s` zI_$$GCe?-xKfTO%wec({)Z6u-?x9Kb{oP8`(9Jl0U1&JRg{XEdMpxzdfIcCESr%jk+E;pM+RYG@Iw#rT6oe1L24%x*(;7$_Ehpz z@>29{3vQA>vyG~=G{DR7Lyeyx-o5`g%vOzEb%X3`uSkp9EQvnyQLhKH&z#?$w3nhs z8i7R}vY3b)A9?o_aeMbqNw+Hu4tf_|v28gkXhD z5yA5>5;vb4Sye|vPh8|1@n=~u68;{{1yxSKe(7%b_By1{L*S|Of zf8vlW)Z}N%m;0OqgoB;epSJu~TC^<>T8dJ(W^3t7^rap_QHv22D5~l#gQUYBVo}Jo z&hp2KtqW87t=ziTTa6ACLu%Wh^E#(KmQ)^;jsfIuGnMSReU9@YY9dyF`Ly*q+@VxUw(RItS zsnJboh)p6=ZZA7xa@2?yKn#g>H4310H>PkDuDMrvr-LsUd}JZt<8g(%_(SCO`ehDS z83>`Og4%q?2H&Y*UfzRg#Ul?_Ve^-6jMUeQrKRi9&{R{h~q=j$th!8AhpJe%d5)&qN`y<_#ldh9% z+qi(kC_aXNG!qup3Es~^Wut+)pRJzO3!kR!!$$ojC(deqJF5no30qXc&4GII)DmiV zE3aapk3P!lPMWgJ0m5fc8a5+bC&6k7Xl1rH1{R!{r@ih zkOg>ZiJ)^l4{v3@*xAw8?Q!b2Kqk)QTG#B*kfRxES}bmPjpT2u3QR#BW%XN3;spxe(F-z1;}ynm1F?~1#m)Z*DGw1gXms{ zz#U$-wOxH~*}Xn}v%ftF7Ex#T46b_z4g3ri^#%Qu9yD9Wz6pk+Z}1z9Ux#` z2=INCCu5Pf)H9U>K|2-Cp4qns*w_rLRO|=De!ug7Z)vn>IdcBYnG%I^F6 z=eKY}?;5j{$6Xfu-N}L{KsY|W(7Vsc5ZrN5iiP129GzkAC=%{7WKlS6z<;cOlOdCd zA(82T$UDb1j!6DGQ_K*UcgXOVFXN4mr$g?i^D`Bm{F(W!j^TSDKh!W_ybn$w_mo*% WykXjd`3Xls4)k>Ob6Mw<&;$SukH2XE literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_multiply_100.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_multiply_100.png new file mode 100644 index 0000000000000000000000000000000000000000..386ac8145fd335dda16c122a3aab7f7354ebb036 GIT binary patch literal 944 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIE+9%;}yk zjv*Cu-rl{NJ3B$5?cw#%@=a4MB@Q?r5Q#iw_gyBgTP|eXqE$hPY`>eI@9L9v`BThp zH+j1AS>tmxHfKsJzVm&^xBIiF>3d}J9*sRm{?^H#{{1#}nOt6Pyu5YaV)2g9nDy6J zt+JYbKGcsr?0fP%{vRI>*PY>G*dWiuaFB(eiIagvn1Mr$LBNMWVFrVP0b@e~T;li7 zH*9{(FAM$N*s<>Qs`tPD+v%0g-@R`2?YGyilr8)7Zq4(T3?YB(6r&Az4ljKF+w=e0 z89UA&HjwE%{`khFvSt6?tvRfT$9OFEip^v{@N3t))rk`G_QjTE-+s84B|$lFd$er- z@#SslHfle&Y>~a^&0w}~}|H){5iWTgvs z90%IAn4CQBvY>VY8^It!G50fr*`lowhbTAnzWBZG80(g8bIa}5zr-1^F`PRDmtTJQ zGPfi)y!O8S2J<(q3^^x)wm*teQadlS*o?zrMfv?1munesC-5Rg&Kacyg~K)#1uOy? zD--3;SAGB7z~ErAoS`v><47|@OOc{Ls2`)kEO`9sFtGu}ivLEg{rfwq@BI1m%fgD5 z$23gZbG}&rTIJT$PmSXArf=N0=Xu2WEBl!qKi>HG1()8n;=OUJSG}sS3-_(B|KxiO znjjWP_8+c~OMkVUp?#Iq`|rEOIm=Sc2_AU(_;K=9*+zEmhV`H4s^8qsu;y&LJTQe1 dK9CT(pW%@@??f4PxgQ|cdAjY2LGE&;KJwj{FC)4YMVApi+bZNW<;hx54<#nKN)hpwc)2 z6NmsQY-!12`1tW781wVStU%W0FOmsWs*0RV#?kfyaR Rf7bv2002ovPDHLkV1h!&v%UZT delta 285 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 T(jO{n00000NkvXXu0mjfQ>l*c literal 0 HcmV?d00001