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 000000000..fc2435ad6 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible.png differ 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 000000000..4e3ede879 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_base.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_brighten_21.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_brighten_21.png new file mode 100644 index 000000000..fe06a9054 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_brighten_21.png differ 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 000000000..386ac8145 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_crucible_multiply_100.png differ diff --git a/src/main/resources/assets/hbm/textures/items/chem_icon_ETHANOL.png b/src/main/resources/assets/hbm/textures/items/chem_icon_ETHANOL.png index c3e90bb5c..7950c4d2c 100644 Binary files a/src/main/resources/assets/hbm/textures/items/chem_icon_ETHANOL.png and b/src/main/resources/assets/hbm/textures/items/chem_icon_ETHANOL.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/crucible_heat.png b/src/main/resources/assets/hbm/textures/models/machines/crucible_heat.png new file mode 100644 index 000000000..19eec2364 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/crucible_heat.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/lava.png b/src/main/resources/assets/hbm/textures/models/machines/lava.png new file mode 100644 index 000000000..ea9d5e37b Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/lava.png differ