From af1a5d37ce34502b9a93c082d7a656c987666a12 Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 25 Feb 2023 20:00:31 +0100 Subject: [PATCH] fixes, chainsawable leaves --- .../inventory/container/ContainerLeadBox.java | 7 +++ .../com/hbm/inventory/gui/GUILeadBox.java | 6 ++- src/main/java/com/hbm/items/ModItems.java | 6 +-- .../java/com/hbm/items/tool/IItemAbility.java | 46 +++++++++++++++++- .../java/com/hbm/items/tool/ItemLeadBox.java | 19 ++++++-- .../com/hbm/items/tool/ItemSwordAbility.java | 5 ++ .../com/hbm/items/tool/ItemToolAbility.java | 24 ++++++--- .../hbm/tileentity/machine/TileEntityFEL.java | 11 ++++- .../network/TileEntityConnector.java | 2 +- src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 43 +--------------- .../models/machines/vacuum_distill.png | Bin 0 -> 1205 bytes 12 files changed, 107 insertions(+), 63 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/models/machines/vacuum_distill.png diff --git a/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java b/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java index 179d52bd8..2d015033f 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLeadBox.java @@ -15,6 +15,7 @@ public class ContainerLeadBox extends Container { public ContainerLeadBox(InventoryPlayer invPlayer, InventoryLeadBox box) { this.box = box; + this.box.openInventory(); for(int i = 0; i < 4; i++) { for(int j = 0; j < 5; j++) { @@ -73,4 +74,10 @@ public class ContainerLeadBox extends Container { public boolean canInteractWith(EntityPlayer player) { return box.isUseableByPlayer(player); } + + @Override + public void onContainerClosed(EntityPlayer player) { + super.onContainerClosed(player); + this.box.closeInventory(); + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUILeadBox.java b/src/main/java/com/hbm/inventory/gui/GUILeadBox.java index 01acc40dd..715b40b01 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILeadBox.java +++ b/src/main/java/com/hbm/inventory/gui/GUILeadBox.java @@ -44,7 +44,11 @@ public class GUILeadBox extends GuiContainer { @Override protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.inventory.getInventoryName(); + String name = I18n.format(this.inventory.getInventoryName()); + + if(inventory.hasCustomInventoryName()) { + name = inventory.box.getDisplayName(); + } this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 7c8cd396e..1ec3ac30c 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -4035,7 +4035,7 @@ public class ModItems { scrap = new Item().setUnlocalizedName("scrap").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap"); scrap_oil = new Item().setUnlocalizedName("scrap_oil").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_oil"); scrap_nuclear = new Item().setUnlocalizedName("scrap_nuclear").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":scrap_nuclear"); - containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(null).setTextureName(RefStrings.MODID + ":containment_box"); + containment_box = new ItemLeadBox().setUnlocalizedName("containment_box").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":containment_box"); debris_graphite = new Item().setUnlocalizedName("debris_graphite").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_graphite"); debris_metal = new Item().setUnlocalizedName("debris_metal").setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":debris_metal"); @@ -5282,7 +5282,7 @@ public class ModItems { .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new ToolAbility.RecursionAbility(5)) .addHitAbility(new WeaponAbility.ChainsawAbility(4)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); + .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("chainsaw").setTextureName(RefStrings.MODID + ":chainsaw"); schrabidium_sword = new ItemSwordAbility(150, 0, MainRegistry.tMatSchrab) .addHitAbility(new WeaponAbility.RadiationAbility(50F)) @@ -5390,7 +5390,7 @@ public class ModItems { .addBreakAbility(new ToolAbility.SilkAbility()) .addBreakAbility(new LuckAbility(2)) .addHitAbility(new WeaponAbility.ChainsawAbility(6)) - .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); + .addHitAbility(new WeaponAbility.BeheaderAbility()).setShears().setUnlocalizedName("elec_axe").setTextureName(RefStrings.MODID + ":elec_chainsaw_anim"); elec_shovel = new ItemToolAbilityPower(7.5F, 0, MainRegistry.tMatElec, EnumToolType.SHOVEL, 500000, 1000, 100) .addBreakAbility(new ToolAbility.HammerAbility(2)) diff --git a/src/main/java/com/hbm/items/tool/IItemAbility.java b/src/main/java/com/hbm/items/tool/IItemAbility.java index ca8a33b4b..f02dccf4e 100644 --- a/src/main/java/com/hbm/items/tool/IItemAbility.java +++ b/src/main/java/com/hbm/items/tool/IItemAbility.java @@ -1,20 +1,33 @@ package com.hbm.items.tool; +import java.util.ArrayList; +import java.util.Random; + import net.minecraft.block.Block; import net.minecraft.client.Minecraft; +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.network.play.client.C07PacketPlayerDigging; import net.minecraft.network.play.server.S23PacketBlockChange; +import net.minecraft.stats.StatList; import net.minecraft.world.World; import net.minecraftforge.common.ForgeHooks; +import net.minecraftforge.common.IShearable; import net.minecraftforge.event.world.BlockEvent; public interface IItemAbility { public boolean canHarvestBlock(Block par1Block, ItemStack itemStack); + public boolean isShears(ItemStack stack); + + public default boolean canShearBlock(Block block, ItemStack stack, World world, int x, int y, int z) { + return this.isShears(stack) && block instanceof IShearable && ((IShearable) block).isShearable(stack, world, x, y, z); + } public default void breakExtraBlock(World world, int x, int y, int z, EntityPlayer playerEntity, int refX, int refY, int refZ) { @@ -30,7 +43,7 @@ public interface IItemAbility { Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); - if(!canHarvestBlock(block, stack) || block == Blocks.bedrock) + if(!(canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) || block == Blocks.bedrock) return; Block refBlock = world.getBlock(refX, refY, refZ); @@ -58,9 +71,13 @@ public interface IItemAbility { player.getCurrentEquippedItem().func_150999_a(world, block, x, y, z, player); if(!world.isRemote) { + + if(canShearBlock(block, stack, world, x, y, z)) { + shearBlock(world, x, y, z, block, player); + } block.onBlockHarvested(world, x, y, z, meta, player); - + if(block.removedByPlayer(world, player, x, y, z, true)) { block.onBlockDestroyedByPlayer(world, x, y, z, meta); block.harvestBlock(world, player, x, y, z, meta); @@ -87,6 +104,31 @@ public interface IItemAbility { } } + /** Assumes a canShearBlock check has passed, will most likely crash otherwise! */ + public static void shearBlock(World world, int x, int y, int z, Block block, EntityPlayer player) { + + ItemStack held = player.getHeldItem(); + + IShearable target = (IShearable) block; + if(target.isShearable(held, player.worldObj, x, y, z)) { + ArrayList drops = target.onSheared(held, player.worldObj, x, y, z, EnchantmentHelper.getEnchantmentLevel(Enchantment.fortune.effectId, held)); + Random rand = new Random(); + + for(ItemStack stack : drops) { + float f = 0.7F; + double d = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + double d1 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + double d2 = (double) (rand.nextFloat() * f) + (double) (1.0F - f) * 0.5D; + EntityItem entityitem = new EntityItem(player.worldObj, (double) x + d, (double) y + d1, (double) z + d2, stack); + entityitem.delayBeforeCanPickup = 10; + player.worldObj.spawnEntityInWorld(entityitem); + } + + held.damageItem(1, player); + player.addStat(StatList.mineBlockStatArray[Block.getIdFromBlock(block)], 1); + } + } + public static void standardDigPost(World world, int x, int y, int z, EntityPlayerMP player) { Block block = world.getBlock(x, y, z); diff --git a/src/main/java/com/hbm/items/tool/ItemLeadBox.java b/src/main/java/com/hbm/items/tool/ItemLeadBox.java index 7bee249cf..e020d1483 100644 --- a/src/main/java/com/hbm/items/tool/ItemLeadBox.java +++ b/src/main/java/com/hbm/items/tool/ItemLeadBox.java @@ -33,21 +33,23 @@ public class ItemLeadBox extends Item implements IGUIProvider { @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerLeadBox(player.inventory, new InventoryLeadBox(player.getHeldItem())); + return new ContainerLeadBox(player.inventory, new InventoryLeadBox(player, player.getHeldItem())); } @Override @SideOnly(Side.CLIENT) public GuiScreen provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUILeadBox(player.inventory, new InventoryLeadBox(player.getHeldItem())); + return new GUILeadBox(player.inventory, new InventoryLeadBox(player, player.getHeldItem())); } public static class InventoryLeadBox implements IInventory { + public final EntityPlayer player; public final ItemStack box; public ItemStack[] slots; - public InventoryLeadBox(ItemStack box) { + public InventoryLeadBox(EntityPlayer player, ItemStack box) { + this.player = player; this.box = box; slots = new ItemStack[this.getSizeInventory()]; @@ -137,8 +139,15 @@ public class ItemLeadBox extends Item implements IGUIProvider { return true; } - @Override public void openInventory() { } - @Override public void closeInventory() { } + @Override + public void openInventory() { + player.worldObj.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:block.crateOpen", 1.0F, 0.8F); + } + + @Override + public void closeInventory() { + player.worldObj.playSoundEffect(player.posX, player.posY, player.posZ, "hbm:block.crateClose", 1.0F, 0.8F); + } @Override public boolean isItemValidForSlot(int slot, ItemStack stack) { diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java index 12843a724..c8be968db 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbility.java @@ -99,4 +99,9 @@ public class ItemSwordAbility extends ItemSword implements IItemAbility { protected boolean canOperate(ItemStack stack) { return true; } + + @Override + public boolean isShears(ItemStack stack) { + return false; + } } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbility.java b/src/main/java/com/hbm/items/tool/ItemToolAbility.java index 8497d24ce..c1e4cbb1b 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbility.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbility.java @@ -31,16 +31,18 @@ import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.common.IShearable; public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRockTool { - private EnumToolType toolType; - private EnumRarity rarity = EnumRarity.common; + protected boolean isShears = false; + protected EnumToolType toolType; + protected EnumRarity rarity = EnumRarity.common; //was there a reason for this to be private? protected float damage; protected double movement; - private List breakAbility = new ArrayList() {{ add(null); }}; - private List hitAbility = new ArrayList(); + protected List breakAbility = new ArrayList() {{ add(null); }}; + protected List hitAbility = new ArrayList(); public static enum EnumToolType { @@ -72,6 +74,11 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc public Set materials = new HashSet(); public Set blocks = new HashSet(); } + + public ItemToolAbility setShears() { + this.isShears = true; + return this; + } public ItemToolAbility(float damage, double movement, ToolMaterial material, EnumToolType type) { super(0, material, type.blocks); @@ -129,7 +136,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc Block block = world.getBlock(x, y, z); int meta = world.getBlockMetadata(x, y, z); - if(!world.isRemote && canHarvestBlock(block, stack) && this.getCurrentAbility(stack) != null && canOperate(stack)) + if(!world.isRemote && (canHarvestBlock(block, stack) || canShearBlock(block, stack, world, x, y, z)) && this.getCurrentAbility(stack) != null && canOperate(stack)) return this.getCurrentAbility(stack).onDig(world, x, y, z, player, block, meta, this); return false; @@ -252,9 +259,7 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc } private ToolAbility getCurrentAbility(ItemStack stack) { - int ability = getAbility(stack) % this.breakAbility.size(); - return this.breakAbility.get(ability); } @@ -289,4 +294,9 @@ public class ItemToolAbility extends ItemTool implements IItemAbility, IDepthRoc public boolean canBreakRock(World world, EntityPlayer player, ItemStack tool, Block block, int x, int y, int z) { return canOperate(tool) && this.rockBreaker; } + + @Override + public boolean isShears(ItemStack stack) { + return this.isShears; + } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java index 7c7bb67fc..8fe8b6f4d 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityFEL.java @@ -84,7 +84,14 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, int range = 24; boolean silexSpacing = false; - if(this.isOn && power >= powerReq * Math.pow(3, mode.ordinal()) && this.mode != EnumWavelengths.NULL) { + + int req = (int) (powerReq * ((mode.ordinal() == 0) ? 0 : Math.pow(3, mode.ordinal()))); + + if(this.isOn && this.mode != EnumWavelengths.NULL && power < req) { + this.power = 0; + } + + if(this.isOn && power >= req && this.mode != EnumWavelengths.NULL) { int distance = this.distance-1; double blx = Math.min(xCoord, xCoord + dir.offsetX * distance) + 0.2; @@ -106,7 +113,7 @@ public class TileEntityFEL extends TileEntityMachineBase implements IEnergyUser, } } - power -= powerReq * ((mode.ordinal() == 0) ? 0 : Math.pow(3, mode.ordinal())); + power -= req; for(int i = 3; i < range; i++) { int x = xCoord + dir.offsetX * i; diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java index 97943f1bf..dc20b8f8d 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityConnector.java @@ -32,7 +32,7 @@ public class TileEntityConnector extends TileEntityPylonBase { ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata()).getOpposite(); //pos.add(new int[] {xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ}); - TileEntity te = worldObj.getTileEntity(xCoord, yCoord, zCoord); + TileEntity te = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); if(te instanceof IEnergyConductor) { diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index b0f264eaa..91d5080ee 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -316,6 +316,7 @@ container.iGenerator=Industrieller Generator container.keyForge=Schlossertisch container.launchPad=Raketenabschussrampe container.launchTable=Große Startrampe +container.leadBox=Sicherheitsbehälter container.machineBoiler=Ölwärmer container.machineCMB=CMB-Stahl Hochofen container.machineCoal=Verbrennungsgenerator diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index da43f5f35..78d313440 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -382,48 +382,6 @@ book_lore.memo_schrab_nuke.page.1=Our most recent investigation led us to the ef book_lore.memo_schrab_nuke.page.2=Only our cyclotron has actually created saralloy previously. However, at our underground shot at Everwerpen, miniscule traces of saralloy were found in uranium ore at the site. All pure, metallic uranium nearby had fissioned. book_lore.memo_schrab_nuke.page.3=As such, given enough uranium ore concentrated around an explosive, or perhaps even a dirty bomb rich in waste containing fissionable material, one could hypothetically create enough saralloy to collect manually. -book_lore.insanity_1.name=Torn Page -book_lore.insanity_1.author=D Ferguson -book_lore.insanity_1.page.1=August 6th $ $ Months, no, years worth of dicking about wrestling with investors and operating the greatest energy hog in the northern hemisphere has finally paid off. -book_lore.insanity_1.page.2=While we aren't entirely sure what exactly we found - given we ran gigavolt collisions on particles that were still poorly documented - the results couldn't have been more exciting. -book_lore.insanity_1.page.3=We haven't found a name for whatever it is we've found, nor are we sure if we're looking at a new type of particle, a wormhole leading into another dimension, or satan's anus, but I'm sure our PR people can come up with something. - -book_lore.insanity_2.name=Torn Page -book_lore.insanity_2.author=D Ferguson -book_lore.insanity_2.page.1=August 8th $ $ We've kept "The Thing" (yes that's what we call it for now) in magnetic isolation for the past days. Spectroscopy tests ended up breaking our spectrometer, but we managed to gain some useful data. -book_lore.insanity_2.page.2=For starters, this thing glows like a christmas tree, radiation photons of about every wavelength you could think of enveloped by a powerful infrared corona. The logical conclusion is that looking at it with your naked -book_lore.insanity_2.page.3=eye would most likely kill you. Now that begs the question: How can a particle this tiny radiate such immense energy? What are you hiding, little man? - -book_lore.insanity_3.name=Torn Page -book_lore.insanity_3.author=D Ferguson -book_lore.insanity_3.page.1=August 22nd $ $ I haven't slept right in days. Doc said he couldn't find anything. Been on all sorts of medication now, but the headaches only get worse. Lab boys suspect it might be contamination from the incident two weeks ago. -book_lore.insanity_3.page.2=Doc said it's not that likely, ARS is different. I might need to take some time off if this continues. The Thing is still in containment, the lab boys speculate if the field goes down, the entire complex turns into a mushroom cloud. -book_lore.insanity_3.page.3=I'm not sure how administration can keep this calm, but i don't get paid enough to waste thoughts on that. - -book_lore.insanity_4.name=Torn Page -book_lore.insanity_4.author=D Ferguson -book_lore.insanity_4.page.1=August 28th $ $ They denied my request for leave and I've been pushing through the past few days. Headaches are getting worse. I'm not the only one who's feeling it, either. Some of the lab boys are in a similar situation. -book_lore.insanity_4.page.2=All the while The Thing has left the complex - GOOD. Some suits came in yesterday and had it shipped off, god knows where. One of the lab boys, Zachary, said they're probably burying the containment vessel in the desert, slowly -book_lore.insanity_4.page.3=trying to "fizzle out" The Thing far off from civilization. I say let's shoot it into space. Needless to say, our investors cut all funding for the time being. I should start looking for another job. - -book_lore.insanity_5.name=Torn Page -book_lore.insanity_5.author=D Ferguson -book_lore.insanity_5.page.1=September 11th $ $ I'm having this re-occurring nightmare. I'm walking around in an open space and there's these people everywhere, people in rubber suits and freakishly deformed faces. It's always the same nightmare, -book_lore.insanity_5.page.2=and one of the guys from the lab I've spoken with lately has had the same dream. Meanwhile my post has been rather boring, the accelerator has been shut down, all ongoing projects are on halt and our budget is slowly melting away. -book_lore.insanity_5.page.3=Something is telling me that The Thing is still out there somewhere. I can feel it. - -book_lore.insanity_6.name=Torn Page -book_lore.insanity_6.author=D Ferguson -book_lore.insanity_6.page.1=October 3rd $ $ Half the staff is dead, most of the rest is in the ICU. My condition hasn't changed in the past weeks, for better or worse. -book_lore.insanity_6.page.2=Reality is starting to feel less and less real however. Sometimes I look up into the sky at night and hallucinate that thing we discovered all those weeks ago. -book_lore.insanity_6.page.3=That same brilliant sheen of crimson that our spectrometer spat out. My doc says it's delirium and stress caused by the incident, and perhaps hes right, but the meds aren't working at all. - -book_lore.insanity_7.name=Torn Page -book_lore.insanity_7.author=D Ferguson -book_lore.insanity_7.page.1=December 12th $ $ I've been out of a job, but to be honest I'm somewhat thankful about it. My old workplace has gone up in flames - or so they say. -book_lore.insanity_7.page.2=The seismological observatory a couple miles south recorded constant earthquakes for days on end, not that anyone else would have noticed this deep in the desert. -book_lore.insanity_7.page.3=I have concluded that this place was cursed, making everyone sick and then descending into hell like some sort of Edgar Allan Poe story. Good riddance. - cannery.f1=[ Press F1 for help ] cannery.centrifuge=Gas Centrifuge @@ -638,6 +596,7 @@ container.iGenerator=Industrial Generator container.keyForge=Locksmith Table container.launchPad=Missile Launch Pad container.launchTable=Large Launch Pad +container.leadBox=Containment Box container.machineBoiler=Oil Heater container.machineCMB=CMB Steel Furnace container.machineCoal=Combustion Generator diff --git a/src/main/resources/assets/hbm/textures/models/machines/vacuum_distill.png b/src/main/resources/assets/hbm/textures/models/machines/vacuum_distill.png new file mode 100644 index 0000000000000000000000000000000000000000..98f99086f75cc40e4d2fcba6fb807c20a62296ee GIT binary patch literal 1205 zcmeAS@N?(olHy`uVBq!ia0vp^7l3#U2OE&&vr|n5QY^(zo*^7SP{WbZ0p#X*x;TbZ z%z1m)(C@W}4EuwRUCd87Le{%gXk|Fw{J(kJ%3@|)1XEL1tev6ul$W# zI_1-!KQ=#GPoF-0^6jnt>;GCf9XDDDQ>6FoUgNdBWqiLP@9<6xY*Z-NIOXE1^|$7w z1~)1^km)$FYl`dn_ZuSDx5sDIUJqhzYG80YpeU1jJ7?G5qKNmuA5QqP)p>jKH*s&t zwOMOz=jZILyS?*{#D;aRy#gCE?j|0sTwVKsrDNOP;xD-|Tmre$=QI80=G|13nV-0M z{?AOk{C$2~`Hx&IUT9cQ&E#^suXmTM9{;V~d@PKNQ5%4s>Q_GF(=ctVHurw<+?R8h zb#L6^f4q>%(WL>!n@m9EAeT9y3X9)hKmY01&Rx5HJ)PJQ{A=c)4T@Ue;Ds1yDVPy$v2{HcOXFh3T|0MLT75o! zC16F}m&;6|9854f4;YxGe|`4-v(6NTi(CHPf0%pw>-WE(cFoyR7kH}R`&+~HcNzao zs=M`Od8(Fx@9O%u)33jeHt%2nIoR1^*0xHSdrJE%Wv>0+op|K~FendyV`5o4^_{Qfl_M}H4GWlDE?)|?V0`3Ua#;GX_~QHb6%FTIzViC=yBP%> z?D{>87G-)SY@1OajNYX_6F%%uj(q8p$Ksk6X;-=)kHJ z^!#4qg~#^~f9n7H%f2+?-_H2|WlxHc{0a}>9ehV3bJOOneSYV?I$Dy0+mKtcFa68f zdEa(&VT+xP&9A&)KL2C+{k}RZDFTxZ_A3_t$F_Z z`APklxH!MO>;G!sX0JWV&wBpl?O*?kk5}3Y)F@%3CL4Z}&0p{Syq{R?H~aUcFQq!7 z8EM}C*keBJs}}(>lUY~UKf5>i@|F3A_idL`f(Kc#g58l{zrSQWdiF7UzA`Y=1vGZ_ zOkEzg|JD-yr?0~h3c+bNK_o8?X!_dsUh(zk_Np(p-obyaRKf24B>D6RphZ*uGwiy= WR&2iPb^)*)V(@hJb6Mw<&;$TnWe+C+ literal 0 HcmV?d00001