diff --git a/changelog b/changelog index 501633972..88cea5685 100644 --- a/changelog +++ b/changelog @@ -1,4 +1,5 @@ ## Changed +* Updated russian and chinese localization * Updated the trinitite ore textures * The ore spots are now smaller and more shard-like * Each trinitite ore block now has four randomized texture variants @@ -9,7 +10,14 @@ * This is a straight downgrade but people for some reason wanted it so sure why not * Cable diodes now have a GUI for configuration instead of requiring tools * The throughput can now be configured more precisely instead of increments of powers of 10 +* The magnetic storage barrel now uses BSCCO and has a new texture ## Fixed * Fixed burner press GUI offsets being incorrect -* Potentially fixed an issue with journey map where slaked sellafite would sometimes get the wrong color in the minimap \ No newline at end of file +* Potentially fixed an issue with journey map where slaked sellafite would sometimes get the wrong color in the minimap +* Finally fixed an issue making electric armor way worse than it should be, as well as preventing the vanilla armor points from working almost entirely +* Fixed pneumatic storage exporter duping filter items when broken +* Re-enabled the GTNH-NEI filter slot integration +* Fixed various GUI title offsets +* Fixed mask man announcement being sent 20 minutes before spawn (therefore never being sent at all) instead of one minute as intended +* Fixed old BAT9000 recycling \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 105ca8208..fb5115c4e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5751 +mod_build_number=5758 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockPile.java b/src/main/java/com/hbm/blocks/machine/pile/BlockPile.java index 738b21427..b189566bc 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockPile.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockPile.java @@ -73,9 +73,9 @@ public class BlockPile extends BlockContainer implements IBlockCT, IToolable { this.rec = IBlockCT.primeReceiver(reg, this.blockIcon.getIconName(), this.blockIcon); this.recTop = IBlockCT.primeReceiver(reg, this.iconTop.getIconName(), this.iconTop); - this.recChanIn = IBlockCT.primeReceiver(reg, "pile_block_input", this.blockIcon); - this.recChanOut = IBlockCT.primeReceiver(reg, "pile_block_output", this.blockIcon); - this.recCon = IBlockCT.primeReceiver(reg, "pile_block_control_top", this.iconTop); + this.recChanIn = IBlockCT.primeReceiver(reg, RefStrings.MODID + ":pile_block_input", this.blockIcon); + this.recChanOut = IBlockCT.primeReceiver(reg, RefStrings.MODID + ":pile_block_output", this.blockIcon); + this.recCon = IBlockCT.primeReceiver(reg, RefStrings.MODID + ":pile_block_control_top", this.iconTop); } @Override diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java b/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java index 65c6d169b..f309e03ba 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockPileBrick.java @@ -129,7 +129,11 @@ public class BlockPileBrick extends Block implements IToolable { core.orientation = PileOrientation.getOrientation(dir); core.setupSize(posHeight + negHeight + 1, left + right + 1, depth + 1); } else { - boolean isEdge = h == -negHeight || h == posHeight || v == -left || v == right || d == 0 || d == depth; + int edgeCount = 0; + if(h == -negHeight || h == posHeight) edgeCount++; + if(v == -left || v == right) edgeCount++; + if(d == 0 || d == depth) edgeCount++; + boolean isEdge = edgeCount > 1; world.setBlock(iX, iY, iZ, ModBlocks.pile_block, isEdge ? BlockPile.META_EDGE : BlockPile.META_DUMMY, 3); TileEntityPileBaseMK2 pile = (TileEntityPileBaseMK2) world.getTileEntity(iX, iY, iZ); pile.setCore(x, y, z); diff --git a/src/main/java/com/hbm/blocks/machine/pile/BlockPileDevice.java b/src/main/java/com/hbm/blocks/machine/pile/BlockPileDevice.java index 87631c14f..f0e8ca863 100644 --- a/src/main/java/com/hbm/blocks/machine/pile/BlockPileDevice.java +++ b/src/main/java/com/hbm/blocks/machine/pile/BlockPileDevice.java @@ -1,16 +1,24 @@ package com.hbm.blocks.machine.pile; +import java.util.List; + +import com.hbm.blocks.IBlockMulti; import com.hbm.tileentity.machine.pile.TileEntityPileControl; import com.hbm.tileentity.machine.pile.TileEntityPileLoader; import com.hbm.tileentity.machine.pile.TileEntityPileVent; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.MathHelper; import net.minecraft.world.World; -public class BlockPileDevice extends BlockContainer { +public class BlockPileDevice extends BlockContainer implements IBlockMulti { public static final int ITEM_META_LOADER = 0; public static final int ITEM_META_VENT = 1; @@ -24,8 +32,22 @@ public class BlockPileDevice extends BlockContainer { super(Material.iron); } + @Override + public int getSubCount() { + return 3; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < getSubCount(); ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + @Override public TileEntity createNewTileEntity(World world, int meta) { + meta -= meta % 4; if(meta == BLOCK_META_LOADER) return new TileEntityPileLoader(); if(meta == BLOCK_META_VENT) return new TileEntityPileVent(); if(meta == BLOCK_META_CONTROL) return new TileEntityPileControl(); diff --git a/src/main/java/com/hbm/blocks/network/CableDiode.java b/src/main/java/com/hbm/blocks/network/CableDiode.java index 10275bb8d..40bc329e4 100644 --- a/src/main/java/com/hbm/blocks/network/CableDiode.java +++ b/src/main/java/com/hbm/blocks/network/CableDiode.java @@ -32,7 +32,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumChatFormatting; -import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; @@ -215,8 +214,10 @@ public class CableDiode extends BlockContainer implements IEnergyConnectorBlock, @Override public void receiveControl(NBTTagCompound data) { - if(data.hasKey("capacity")) this.limit = MathHelper.clamp_int(data.getInteger("limit"), 0, 1_000_000_000); + if(data.hasKey("limit")) this.limit = data.getLong("limit"); if(data.hasKey("priority")) this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, data.getByte("priority")); + if(limit < 0) limit = 0; + if(limit > 10_000_000_000L) limit = 10_000_000_000L; this.markDirty(); } diff --git a/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageExporter.java b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageExporter.java index 033447355..fe494f755 100644 --- a/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageExporter.java +++ b/src/main/java/com/hbm/blocks/network/pneumatic/PneumoStorageExporter.java @@ -3,7 +3,12 @@ package com.hbm.blocks.network.pneumatic; import com.hbm.blocks.machine.BlockMachineBase; import com.hbm.tileentity.network.pneumatic.TileEntityPneumoStorageExporter; +import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -17,4 +22,51 @@ public class PneumoStorageExporter extends BlockMachineBase { public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityPneumoStorageExporter(); } + + @Override + public void breakBlock(World world, int x, int y, int z, Block block, int meta) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof ISidedInventory)) return; + + ISidedInventory tileentityfurnace = (ISidedInventory) te; + + if(tileentityfurnace != null) { + + for(int i = 9; i < tileentityfurnace.getSizeInventory(); ++i) { + + ItemStack itemstack = tileentityfurnace.getStackInSlot(i); + + if(itemstack != null) { + + float mX = world.rand.nextFloat() * 0.8F + 0.1F; + float mY = world.rand.nextFloat() * 0.8F + 0.1F; + float mZ = world.rand.nextFloat() * 0.8F + 0.1F; + + while(itemstack.stackSize > 0) { + + int amount = world.rand.nextInt(21) + 10; + if(amount > itemstack.stackSize) amount = itemstack.stackSize; + + itemstack.stackSize -= amount; + EntityItem entityitem = new EntityItem(world, x + mX, y + mY, z + mZ, new ItemStack(itemstack.getItem(), amount, itemstack.getItemDamage())); + + if(itemstack.hasTagCompound()) + entityitem.getEntityItem().setTagCompound((NBTTagCompound) itemstack.getTagCompound().copy()); + + float motion = 0.05F; + entityitem.motionX = (float) world.rand.nextGaussian() * motion; + entityitem.motionY = (float) world.rand.nextGaussian() * motion + 0.2F; + entityitem.motionZ = (float) world.rand.nextGaussian() * motion; + world.spawnEntityInWorld(entityitem); + } + } + } + + world.func_147453_f(x, y, z, block); + } + + super.breakBlock(world, x, y, z, block, meta); + } } diff --git a/src/main/java/com/hbm/handler/BossSpawnHandler.java b/src/main/java/com/hbm/handler/BossSpawnHandler.java index 4b77a265c..1e5d82382 100644 --- a/src/main/java/com/hbm/handler/BossSpawnHandler.java +++ b/src/main/java/com/hbm/handler/BossSpawnHandler.java @@ -46,7 +46,7 @@ public class BossSpawnHandler { public static void rollTheDice(World world) { /* - * Spawns every 3 hours with a 33% chance if + * Spawns every 20 minutes if * - the player is 3 blocks below the surface * - the player has at least 50 RAD * - the player has either crafted or placed an ore acidizer before @@ -70,7 +70,7 @@ public class BossSpawnHandler { data.maskManTimer++; - if(data.maskManTimer == MobConfig.maskmanDelay - 20 * 60) { + if(data.maskManTimer == MobConfig.maskmanDelay - 60) { player.addChatComponentMessage(new ChatComponentText("The mask man draws near.").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED))); } diff --git a/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java b/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java index f94527ed6..f5b86037e 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrystallizer.java @@ -44,7 +44,7 @@ public class GUICrystallizer extends GuiInfoContainer { protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.acidomatic.hasCustomInventoryName() ? this.acidomatic.getInventoryName() : I18n.format(this.acidomatic.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, 70 - 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/inventory/gui/GUIDiode.java b/src/main/java/com/hbm/inventory/gui/GUIDiode.java index bb90c636b..2b7fa3609 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIDiode.java +++ b/src/main/java/com/hbm/inventory/gui/GUIDiode.java @@ -37,9 +37,9 @@ public class GUIDiode extends GuiScreen { textThroughput = new GuiTextField(fontRendererObj, this.width / 2 - 150, 100, 90, 20); textThroughput.setText("" + diode.limit); - textThroughput.setMaxStringLength(10); + textThroughput.setMaxStringLength(11); - buttonPriority = new GuiButton(0, this.width / 2 + 50, 100, 90, 20, diode.priority.name()); + buttonPriority = new GuiButton(0, this.width / 2 + 20, 100, 90, 20, diode.priority.name()); } @Override @@ -47,10 +47,10 @@ public class GUIDiode extends GuiScreen { drawDefaultBackground(); drawString(fontRendererObj, "Throughput:", this.width / 2 - 150, 80, 0xA0A0A0); - drawString(fontRendererObj, "(max. 1,000,000,000 HE)", this.width / 2 - 150, 90, 0xA0A0A0); + drawString(fontRendererObj, "(max. 10,000,000,000 HE)", this.width / 2 - 150, 90, 0xA0A0A0); textThroughput.drawTextBox(); - drawString(fontRendererObj, "Priority:", this.width / 2 + 50, 80, 0xA0A0A0); + drawString(fontRendererObj, "Priority:", this.width / 2 + 20, 80, 0xA0A0A0); buttonPriority.drawButton(mc, mouseX, mouseY); super.drawScreen(mouseX, mouseY, partialTicks); @@ -63,7 +63,7 @@ public class GUIDiode extends GuiScreen { NBTTagCompound data = new NBTTagCompound(); data.setByte("priority", (byte) priority); - try { data.setInteger("limit", Integer.parseInt(textThroughput.getText())); } catch(Exception ex) {} + try { data.setLong("limit", Long.parseLong(textThroughput.getText())); } catch(Exception ex) {} PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, diode.xCoord, diode.yCoord, diode.zCoord)); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java index 29cf1d2a1..546bd8570 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineCyclotron.java @@ -47,7 +47,7 @@ public class GUIMachineCyclotron extends GuiInfoContainer { protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.cyclotron.hasCustomInventoryName() ? this.cyclotron.getInventoryName() : I18n.format(this.cyclotron.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, 79 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 15, this.ySize - 96 + 2, 4210752); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineEPress.java b/src/main/java/com/hbm/inventory/gui/GUIMachineEPress.java index 4d4f54caa..006461313 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineEPress.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineEPress.java @@ -12,7 +12,7 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineEPress extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_epress.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electric_press.png"); private TileEntityMachineEPress press; public GUIMachineEPress(InventoryPlayer invPlayer, TileEntityMachineEPress tedf) { @@ -34,7 +34,7 @@ public class GUIMachineEPress extends GuiInfoContainer { protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.press.hasCustomInventoryName() ? this.press.getInventoryName() : I18n.format(this.press.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, 89 - 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/inventory/gui/GUIMachineElectricFurnace.java b/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java index 06d37ff96..5519b2fa1 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineElectricFurnace.java @@ -15,7 +15,7 @@ import com.hbm.util.i18n.I18nUtil; public class GUIMachineElectricFurnace extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/GUIElectricFurnace.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_electric_furnace.png"); private TileEntityMachineElectricFurnace furnace; public GUIMachineElectricFurnace(InventoryPlayer invPlayer, TileEntityMachineElectricFurnace furnace) { @@ -43,7 +43,7 @@ public class GUIMachineElectricFurnace extends GuiInfoContainer { protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.furnace.hasCustomInventoryName() ? this.furnace.getInventoryName() : I18n.format(this.furnace.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @@ -74,7 +74,7 @@ public class GUIMachineElectricFurnace extends GuiInfoContainer { int p = furnace.getProgressScaled(28); drawTexturedModalRect(guiLeft + 43, guiTop + 36, 176, 0, p, 12); - this.drawInfoPanel(guiLeft + 116, guiTop + 20, 8, 8, 8); + this.drawInfoPanel(guiLeft + 115, guiTop + 19, 8, 8, 8); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java index 17e64d6ed..d0d6a64c6 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachinePress.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUIMachinePress extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_press.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_press.png"); private TileEntityMachinePress press; public GUIMachinePress(InventoryPlayer invPlayer, TileEntityMachinePress tedf) { @@ -48,7 +48,7 @@ public class GUIMachinePress extends GuiInfoContainer { drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); if(press.burnTime >= 20) { - this.drawTexturedModalRect(guiLeft + 27, guiTop + 36, 0, 214, 14, 14); + this.drawTexturedModalRect(guiLeft + 26, guiTop + 36, 0, 214, 14, 14); } int k = (int) (press.renderPress * 16 / press.maxPress); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java index 90ca0759b..a0ebfe680 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRTG.java @@ -52,7 +52,7 @@ public class GUIMachineRTG extends GuiInfoContainer { protected void drawGuiContainerForegroundLayer( int i, int j) { String name = this.rtg.hasCustomInventoryName() ? this.rtg.getInventoryName() : I18n.format(this.rtg.getInventoryName()); - this.fontRendererObj.drawString(name, 13 ,7, 10925486); + this.fontRendererObj.drawString(name, 60 - this.fontRendererObj.getStringWidth(name) / 2, 7, 10925486); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineShredder.java b/src/main/java/com/hbm/inventory/gui/GUIMachineShredder.java index d7df00134..5bf8b7259 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineShredder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineShredder.java @@ -13,7 +13,7 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineShredder extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_shredder.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_shredder.png"); private TileEntityMachineShredder diFurnace; public GUIMachineShredder(InventoryPlayer invPlayer, TileEntityMachineShredder tedf) { @@ -45,7 +45,7 @@ public class GUIMachineShredder extends GuiInfoContainer { protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(name, 106 - 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/inventory/recipes/anvil/AnvilRecipes.java b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java index 43a7edd7d..5f0e52e54 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -731,7 +731,7 @@ public class AnvilRecipes extends SerializableRecipe { } ).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe( - new ComparableStack(ModBlocks.machine_bat9000, 1, 1), + new ComparableStack(ModBlocks.machine_bat9000, 1), new AnvilOutput[] { new AnvilOutput(new ItemStack(ModItems.plate_welded, 4, Mats.MAT_TCALLOY.id)), new AnvilOutput(new ItemStack(ModItems.plate_steel, 16)) diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index bfc6ba444..33ed1dc58 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -26,7 +26,6 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { this.chargeRate = chargeRate; this.consumption = consumption; this.drain = drain; - this.setMaxDamage(1); } @SideOnly(Side.CLIENT) diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index d09072c7a..7edfe0a91 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (5751)"; + public static final String VERSION = "1.0.27 BETA (5758)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index a97f4d088..71d29a399 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -80,6 +80,7 @@ import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.albion.*; import com.hbm.tileentity.machine.fusion.*; import com.hbm.tileentity.machine.oil.*; +import com.hbm.tileentity.machine.pile.*; import com.hbm.tileentity.machine.rbmk.*; import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; @@ -375,6 +376,10 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineStrandCaster.class, new RenderStrandCaster()); + //CHICAGO PILE + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPileLoader.class, new RenderPileLoader()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPileVent.class, new RenderPileVent()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPileControl.class, new RenderPileControl()); //ZIRNOX ClientRegistry.bindTileEntitySpecialRenderer(TileEntityReactorZirnox.class, new RenderZirnox()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityZirnoxDestroyed.class, new RenderZirnoxDestroyed()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 280da2c97..fc2f13c3a 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -394,6 +394,11 @@ public class ResourceManager { public static final IModelCustom siege_ufo = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/siege_ufo.obj")); public static final IModelCustom glyphid = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/mobs/glyphid.obj")); public static final IModelCustom drone = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/quadcopter.obj")); + + //PILE + public static final IModelCustom pile_loader = new HFRWavefrontObject("models/pile/pile_loader.obj").asVBO(); + public static final IModelCustom pile_vent = new HFRWavefrontObject("models/pile/pile_vent.obj").asVBO(); + public static final IModelCustom pile_control = new HFRWavefrontObject("models/pile/pile_control.obj").asVBO(); //ZIRNOX public static final IModelCustom zirnox = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/zirnox.obj")).asVBO(); @@ -841,6 +846,11 @@ public class ResourceManager { public static final ResourceLocation glyphid_scout_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_scout.png"); public static final ResourceLocation glyphid_nuclear_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_nuclear.png"); public static final ResourceLocation glyphid_digger_tex = new ResourceLocation(RefStrings.MODID, "textures/entity/glyphid_digger.png"); + + //PILE + public static final ResourceLocation pile_loader_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pile/pile_loader.png"); + public static final ResourceLocation pile_vent_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pile/pile_vent.png"); + public static final ResourceLocation pile_control_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pile/pile_control.png"); //ZIRNOX public static final ResourceLocation zirnox_tex = new ResourceLocation(RefStrings.MODID, "textures/models/zirnox.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderPileControl.java b/src/main/java/com/hbm/render/tileentity/RenderPileControl.java new file mode 100644 index 000000000..7acf06b59 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPileControl.java @@ -0,0 +1,34 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderPileControl extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(te.getBlockMetadata() % 4) { + case 0: GL11.glRotated(90, 0, 1, 0); break; + case 1: GL11.glRotated(270, 0, 1, 0); break; + case 2: GL11.glRotated(180, 0, 1, 0); break; + case 3: GL11.glRotated(0, 0, 1, 0); break; + } + + bindTexture(ResourceManager.pile_control_tex); + ResourceManager.pile_control.renderPart("Base"); + GL11.glTranslated(0, 0.5, 0); + ResourceManager.pile_control.renderPart("Rod"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPileLoader.java b/src/main/java/com/hbm/render/tileentity/RenderPileLoader.java new file mode 100644 index 000000000..4b9641c4b --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPileLoader.java @@ -0,0 +1,77 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.machine.pile.BlockPileDevice; +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.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderPileLoader extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(te.getBlockMetadata() % 4) { + case 0: GL11.glRotated(90, 0, 1, 0); break; + case 1: GL11.glRotated(270, 0, 1, 0); break; + case 2: GL11.glRotated(180, 0, 1, 0); break; + case 3: GL11.glRotated(0, 0, 1, 0); break; + } + + bindTexture(ResourceManager.pile_loader_tex); + ResourceManager.pile_loader.renderPart("Loader"); + GL11.glPushMatrix(); { + GL11.glTranslated(-0.1875, 0.5, 0); + GL11.glRotated(90, 0, 0, 1); + GL11.glTranslated(0.1875, -0.5, 0); + ResourceManager.pile_loader.renderPart("Lever"); + } GL11.glPopMatrix(); + ResourceManager.pile_loader.renderPart("Slider"); + ResourceManager.pile_loader.renderPart("Rod"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.pile_device); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -3.5, 0); + double scale = 10; + GL11.glScaled(scale, scale, scale); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glShadeModel(GL11.GL_SMOOTH); + if(item.getItemDamage() == BlockPileDevice.ITEM_META_LOADER) { + bindTexture(ResourceManager.pile_loader_tex); + ResourceManager.pile_loader.renderAll(); + } + if(item.getItemDamage() == BlockPileDevice.ITEM_META_VENT) { + bindTexture(ResourceManager.pile_vent_tex); + ResourceManager.pile_vent.renderAll(); + } + if(item.getItemDamage() == BlockPileDevice.ITEM_META_CONTROL) { + bindTexture(ResourceManager.pile_control_tex); + ResourceManager.pile_control.renderAll(); + } + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderPileVent.java b/src/main/java/com/hbm/render/tileentity/RenderPileVent.java new file mode 100644 index 000000000..4b8829125 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderPileVent.java @@ -0,0 +1,34 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderPileVent extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glShadeModel(GL11.GL_SMOOTH); + + switch(te.getBlockMetadata() % 4) { + case 0: GL11.glRotated(90, 0, 1, 0); break; + case 1: GL11.glRotated(270, 0, 1, 0); break; + case 2: GL11.glRotated(180, 0, 1, 0); break; + case 3: GL11.glRotated(0, 0, 1, 0); break; + } + + bindTexture(ResourceManager.pile_vent_tex); + ResourceManager.pile_vent.renderPart("Pipe"); + GL11.glRotated((te.getWorldObj().getTotalWorldTime() % 360 + interp) * 45, 0, -1, 0); + ResourceManager.pile_vent.renderPart("Fan"); + + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileCore.java b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileCore.java index 18b30b554..6de16c533 100644 --- a/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileCore.java +++ b/src/main/java/com/hbm/tileentity/machine/pile/TileEntityPileCore.java @@ -2,14 +2,18 @@ package com.hbm.tileentity.machine.pile; import java.util.ArrayList; import java.util.List; +import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.machine.MachinePWRController; import com.hbm.blocks.machine.pile.BlockPile; import com.hbm.interfaces.NotableComments; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toclient.AuxParticlePacketNT; import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.util.fauxpointtwelve.DirPos; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; @@ -111,27 +115,47 @@ public class TileEntityPileCore extends TileEntityTickingBase { } public boolean drillChannel(int x, int y, int z, ForgeDirection dir, EntityPlayer player) { + int startMeta = worldObj.getBlockMetadata(x, y, z); PileChannelType type = PileChannelType.getChannelType(dir, orientation); + int size = type == PileChannelType.CONTROL ? height : type == PileChannelType.FUEL ? depth : width; + List list = getChannelList(type); + + if(startMeta == BlockPile.META_FUEL_IN || startMeta == BlockPile.META_AIR_IN || startMeta == BlockPile.META_CONTROL) { + for(int i = 0; i < list.size(); i++) { + PileChannel chan = list.get(i); + if(chan.entry.compare(x, y, z) && chan.entry.getDir() == dir) { + list.remove(i); + for(int j = 0; j < size; j++) { + int iX = x + dir.offsetX * j; + int iY = y + dir.offsetY * j; + int iZ = z + dir.offsetZ * j; + worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_DUMMY, 3); + } + return true; + } + } + } + boolean error = false; - for(int i = 0; i <= size; i++) { + for(int i = 0; i < size; i++) { int iX = x + dir.offsetX * i; int iY = y + dir.offsetY * i; int iZ = z + dir.offsetZ * i; if(worldObj.getBlock(iX, iY, iZ) != ModBlocks.pile_block) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Foreign block in reactor", player); error = true; } int meta = worldObj.getBlockMetadata(iX, iY, iZ); if(meta == BlockPile.META_EDGE) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot drill along edge", player); error = true; } - if(meta == BlockPile.META_CORE) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect core", player); error = true; } - if(meta == BlockPile.META_CHANNEL) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect channel", player); error = true; } - if(meta != BlockPile.META_DUMMY) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect channel IO", player); error = true; } + else if(meta == BlockPile.META_CORE) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect core", player); error = true; } + else if(meta == BlockPile.META_CHANNEL) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect channel", player); error = true; } + else if(meta != BlockPile.META_DUMMY) { MachinePWRController.sendError(worldObj, iX, iY, iZ, "Cannot intersect channel IO", player); error = true; } } if(error) return false; - for(int i = 0; i <= size; i++) { + for(int i = 0; i < size; i++) { int iX = x + dir.offsetX * i; int iY = y + dir.offsetY * i; int iZ = z + dir.offsetZ * i; @@ -139,16 +163,15 @@ public class TileEntityPileCore extends TileEntityTickingBase { if(type == PileChannelType.FUEL) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_FUEL_IN, 3); if(type == PileChannelType.VENTILATION) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_AIR_IN, 3); if(type == PileChannelType.CONTROL) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_CONTROL, 3); - } else if(i == size) { + } else if(i == size - 1) { if(type == PileChannelType.FUEL) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_FUEL_OUT, 3); if(type == PileChannelType.VENTILATION) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_AIR_OUT, 3); if(type == PileChannelType.CONTROL) worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_CONTROL, 3); } else { - worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_DUMMY, 3); + worldObj.setBlockMetadataWithNotify(iX, iY, iZ, BlockPile.META_CHANNEL, 3); } } - List list = getChannelList(type); list.add(new PileChannel(x, y, z, dir, size, type)); this.markChanged(); @@ -159,6 +182,27 @@ public class TileEntityPileCore extends TileEntityTickingBase { @Override public void updateEntity() { + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 3 == 0) for(PileChannel chan : this.ventilationChannels) { + + double x = chan.entry.getX() + 0.5 + chan.entry.getDir().offsetX * (this.width - 0.375); + double y = chan.entry.getY() + 0.5; + double z = chan.entry.getZ() + 0.5 + chan.entry.getDir().offsetZ * (this.width - 0.375); + Random rand = worldObj.rand; + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "tower"); + data.setFloat("lift", 1F); + data.setFloat("base", 0.125F + rand.nextFloat() * 0.125F); + data.setFloat("max", 1F); + data.setFloat("strafe", 0.0025F); + data.setBoolean("noWind", true); + data.setInteger("life", 20 + worldObj.rand.nextInt(30)); + data.setInteger("color", 0xa0a0a0); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, x, y, z), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 150)); + } + } } public void destroy() { diff --git a/src/main/resources/assets/hbm/models/pile/pile_control.obj b/src/main/resources/assets/hbm/models/pile/pile_control.obj new file mode 100644 index 000000000..a7859bdb4 --- /dev/null +++ b/src/main/resources/assets/hbm/models/pile/pile_control.obj @@ -0,0 +1,318 @@ +# Blender v2.79 (sub 0) OBJ File: 'pile_control.blend' +# www.blender.org +o Rod +v 0.187500 0.750000 -0.250000 +v 0.250000 0.750000 -0.187500 +v -0.250000 0.750000 -0.187500 +v -0.187500 0.750000 -0.250000 +v -0.187500 0.750000 0.250000 +v -0.250000 0.750000 0.187500 +v 0.250000 0.750000 0.187500 +v 0.187500 0.750000 0.250000 +v 0.250000 1.000000 -0.187500 +v 0.187500 1.000000 -0.250000 +v -0.187500 1.000000 -0.250000 +v -0.250000 1.000000 -0.187500 +v -0.250000 1.000000 0.187500 +v -0.187500 1.000000 0.250000 +v 0.187500 1.000000 0.250000 +v 0.250000 1.000000 0.187500 +v 0.187500 0.750000 -0.125000 +v 0.125000 0.750000 -0.187500 +v -0.125000 0.750000 -0.187500 +v -0.187500 0.750000 -0.125000 +v -0.187500 0.750000 0.125000 +v -0.125000 0.750000 0.187500 +v 0.125000 0.750000 0.187500 +v 0.187500 0.750000 0.125000 +v 0.125000 0.000000 -0.187500 +v 0.187500 0.000000 -0.125000 +v -0.187500 0.000000 -0.125000 +v -0.125000 0.000000 -0.187500 +v -0.125000 0.000000 0.187500 +v -0.187500 0.000000 0.125000 +v 0.187500 0.000000 0.125000 +v 0.125000 0.000000 0.187500 +vt 0.618182 0.600000 +vt 0.509091 0.700000 +vt 0.509091 0.600000 +vt 0.872727 0.600000 +vt 0.763636 0.700000 +vt 0.763636 0.600000 +vt 0.490909 0.600000 +vt 0.381818 0.700000 +vt 0.381818 0.600000 +vt 0.618182 0.700000 +vt 0.636364 0.725000 +vt 0.490909 0.875000 +vt 0.490909 0.575000 +vt 0.509091 0.400000 +vt 0.745455 1.000000 +vt 0.818182 0.700000 +vt 0.818182 1.000000 +vt 0.927273 1.000000 +vt 1.000000 0.700000 +vt 1.000000 1.000000 +vt 0.654545 1.000000 +vt 0.727273 0.700000 +vt 0.727273 1.000000 +vt 0.636364 0.700000 +vt 0.636364 0.600000 +vt 0.490909 0.700000 +vt 0.363636 0.600000 +vt 0.745455 0.600000 +vt 0.745455 0.700000 +vt 0.745455 0.700000 +vt 0.636364 0.700000 +vt 0.636364 1.000000 +vt 0.909091 0.700000 +vt 0.927273 0.700000 +vt 0.836364 1.000000 +vt 0.909091 1.000000 +vt 0.872727 0.700000 +vt 0.636364 0.875000 +vt 0.618182 0.900000 +vt 0.509091 0.900000 +vt 0.490909 0.725000 +vt 0.618182 0.400000 +vt 0.636364 0.425000 +vt 0.636364 0.575000 +vt 0.490909 0.425000 +vt 0.654545 0.700000 +vt 0.363636 0.700000 +vt 0.836364 0.700000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 -0.0000 +vn -0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.0000 0.0000 -1.0000 +s off +f 2/1/1 16/2/1 7/3/1 +f 6/4/2 12/5/2 3/6/2 +f 8/7/3 14/8/3 5/9/3 +f 9/10/4 10/11/4 14/12/4 +f 2/1/5 8/13/5 6/14/5 +f 24/15/1 26/16/1 17/17/1 +f 20/18/2 30/19/2 21/20/2 +f 22/21/3 32/22/3 23/23/3 +f 10/24/6 2/1/6 1/25/6 +f 8/7/7 16/2/7 15/26/7 +f 14/8/8 6/27/8 5/9/8 +f 4/28/9 12/5/9 11/29/9 +f 4/28/10 10/24/10 1/25/10 +f 24/15/7 32/22/7 31/30/7 +f 30/31/8 22/21/8 21/32/8 +f 20/18/9 28/33/9 27/34/9 +f 26/16/6 18/35/6 17/17/6 +f 18/35/10 28/33/10 19/36/10 +f 2/1/1 9/10/1 16/2/1 +f 6/4/2 13/37/2 12/5/2 +f 8/7/3 15/26/3 14/8/3 +f 10/11/4 11/38/4 12/39/4 +f 12/39/4 13/40/4 10/11/4 +f 13/40/4 14/12/4 10/11/4 +f 14/12/4 15/41/4 16/2/4 +f 16/2/4 9/10/4 14/12/4 +f 6/14/5 3/42/5 4/43/5 +f 4/43/5 1/44/5 2/1/5 +f 2/1/5 7/3/5 8/13/5 +f 8/13/5 5/45/5 6/14/5 +f 6/14/5 4/43/5 2/1/5 +f 24/15/1 31/30/1 26/16/1 +f 20/18/2 27/34/2 30/19/2 +f 22/21/3 29/46/3 32/22/3 +f 10/24/6 9/10/6 2/1/6 +f 8/7/7 7/3/7 16/2/7 +f 14/8/8 13/47/8 6/27/8 +f 4/28/9 3/6/9 12/5/9 +f 4/28/10 11/29/10 10/24/10 +f 24/15/7 23/23/7 32/22/7 +f 30/31/8 29/46/8 22/21/8 +f 20/18/9 19/36/9 28/33/9 +f 26/16/6 25/48/6 18/35/6 +f 18/35/10 25/48/10 28/33/10 +o Base +v -0.375000 0.000000 -0.375000 +v -0.375000 0.000000 0.375000 +v 0.375000 0.000000 -0.375000 +v 0.375000 0.000000 0.375000 +v -0.375000 0.250000 -0.375000 +v -0.375000 0.250000 0.375000 +v 0.375000 0.250000 -0.375000 +v 0.375000 0.250000 0.375000 +v 0.500000 0.375000 0.125000 +v 0.500000 0.375000 -0.125000 +v 0.500000 0.625000 -0.125000 +v 0.500000 0.625000 0.125000 +v 0.375000 0.625000 0.125000 +v 0.375000 0.625000 -0.125000 +v 0.375000 0.375000 0.125000 +v 0.375000 0.375000 -0.125000 +v -0.250000 0.250000 -0.187500 +v -0.187500 0.250000 -0.250000 +v -0.187500 0.250000 0.250000 +v -0.250000 0.250000 0.187500 +v 0.187500 0.250000 -0.250000 +v 0.250000 0.250000 -0.187500 +v 0.250000 0.250000 0.187500 +v 0.187500 0.250000 0.250000 +v 0.250000 0.750000 -0.187500 +v 0.187500 0.750000 -0.250000 +v -0.187500 0.750000 -0.250000 +v -0.250000 0.750000 -0.187500 +v -0.250000 0.750000 0.187500 +v -0.187500 0.750000 0.250000 +v 0.187500 0.750000 0.250000 +v 0.250000 0.750000 0.187500 +v 0.312500 0.687500 0.187500 +v 0.312500 0.687500 -0.187500 +v 0.312500 0.312500 0.187500 +v 0.312500 0.312500 -0.187500 +v 0.250000 0.687500 0.187500 +v 0.250000 0.687500 -0.187500 +v 0.250000 0.312500 0.187500 +v 0.250000 0.312500 -0.187500 +vt 0.290909 0.800000 +vt 0.072727 0.500000 +vt 0.290909 0.500000 +vt 0.072727 0.400000 +vt 0.290909 0.100000 +vt 0.290909 0.400000 +vt 0.290909 -0.000000 +vt 0.072727 0.100000 +vt 0.072727 -0.000000 +vt 0.000000 0.100000 +vt 0.000000 0.400000 +vt 0.363636 0.400000 +vt 0.363636 0.100000 +vt 0.618182 0.000000 +vt 0.509091 0.200000 +vt 0.509091 -0.000000 +vt 0.872727 0.000000 +vt 0.763636 0.200000 +vt 0.763636 0.000000 +vt 0.618182 0.200000 +vt 0.636364 0.225000 +vt 0.490909 0.375000 +vt 0.490909 -0.000000 +vt 0.381818 0.200000 +vt 0.381818 0.000000 +vt 0.909091 0.325000 +vt 0.927273 0.450000 +vt 0.909091 0.425000 +vt 0.363636 0.000000 +vt 0.363636 0.200000 +vt 0.745455 0.000000 +vt 0.636364 0.200000 +vt 0.636364 0.000000 +vt 0.872727 0.325000 +vt 0.800000 0.425000 +vt 0.800000 0.325000 +vt 0.909091 0.575000 +vt 0.872727 0.475000 +vt 0.909091 0.475000 +vt 0.909091 0.125000 +vt 0.872727 0.025000 +vt 0.909091 0.025000 +vt 0.909091 0.275000 +vt 0.872727 0.175000 +vt 0.909091 0.175000 +vt 0.927273 0.600000 +vt 0.927273 0.150000 +vt 0.927273 0.300000 +vt 0.945455 0.300000 +vt 0.945455 0.450000 +vt 0.945455 0.600000 +vt 0.927273 -0.000000 +vt 0.945455 0.150000 +vt 0.072727 0.800000 +vt 0.872727 0.200000 +vt 0.636364 0.375000 +vt 0.618182 0.400000 +vt 0.509091 0.400000 +vt 0.490909 0.225000 +vt 0.490909 0.200000 +vt 0.745455 0.200000 +vt 0.872727 0.425000 +vt 0.872727 0.575000 +vt 0.872727 0.125000 +vt 0.872727 0.275000 +vt 0.945455 -0.000000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 -0.0000 +vn -0.0000 0.0000 1.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.7071 0.7071 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 -0.7071 0.0000 +s off +f 35/49/11 34/50/11 33/51/11 +f 38/52/12 39/53/12 37/54/12 +f 35/55/13 40/56/13 36/57/13 +f 34/50/14 37/54/14 33/51/14 +f 36/58/15 38/52/15 34/59/15 +f 33/60/16 39/53/16 35/61/16 +f 54/62/13 64/63/13 55/64/13 +f 52/65/14 60/66/14 49/67/14 +f 57/68/12 58/69/12 62/70/12 +f 56/71/15 62/72/15 51/73/15 +f 46/74/17 65/75/17 45/76/17 +f 64/63/18 56/71/18 55/64/18 +f 52/77/19 62/72/19 61/78/19 +f 60/66/20 50/79/20 49/67/20 +f 54/62/21 58/80/21 57/68/21 +f 50/79/16 58/80/16 53/81/16 +f 43/82/13 41/83/13 42/84/13 +f 45/76/12 43/82/12 46/74/12 +f 47/85/15 44/86/15 45/87/15 +f 48/88/11 41/89/11 47/90/11 +f 46/91/16 42/92/16 48/93/16 +f 45/87/18 67/94/18 47/85/18 +f 47/90/22 68/95/22 48/88/22 +f 46/91/21 68/95/21 66/96/21 +f 68/95/16 70/97/16 66/96/16 +f 66/96/12 69/98/12 65/75/12 +f 65/75/15 71/99/15 67/94/15 +f 67/100/11 72/101/11 68/95/11 +f 35/49/11 36/102/11 34/50/11 +f 38/52/12 40/56/12 39/53/12 +f 35/55/13 39/53/13 40/56/13 +f 34/50/14 38/52/14 37/54/14 +f 36/58/15 40/56/15 38/52/15 +f 33/60/16 37/54/16 39/53/16 +f 54/62/13 57/68/13 64/63/13 +f 52/65/14 61/103/14 60/66/14 +f 58/69/12 59/104/12 60/105/12 +f 60/105/12 61/106/12 58/69/12 +f 61/106/12 62/70/12 58/69/12 +f 62/70/12 63/107/12 64/63/12 +f 64/63/12 57/68/12 62/70/12 +f 56/71/15 63/108/15 62/72/15 +f 46/74/17 66/96/17 65/75/17 +f 64/63/18 63/108/18 56/71/18 +f 52/77/19 51/73/19 62/72/19 +f 60/66/20 59/109/20 50/79/20 +f 54/62/21 53/81/21 58/80/21 +f 50/79/16 59/109/16 58/80/16 +f 43/82/13 44/110/13 41/83/13 +f 45/76/12 44/110/12 43/82/12 +f 47/85/15 41/111/15 44/86/15 +f 48/88/11 42/112/11 41/89/11 +f 46/91/16 43/113/16 42/92/16 +f 45/87/18 65/75/18 67/94/18 +f 47/90/22 67/100/22 68/95/22 +f 46/91/21 48/93/21 68/95/21 +f 68/95/16 72/101/16 70/97/16 +f 66/96/12 70/97/12 69/98/12 +f 65/75/15 69/98/15 71/99/15 +f 67/100/11 71/114/11 72/101/11 diff --git a/src/main/resources/assets/hbm/models/pile/pile_loader.obj b/src/main/resources/assets/hbm/models/pile/pile_loader.obj new file mode 100644 index 000000000..bf6e7c9d8 --- /dev/null +++ b/src/main/resources/assets/hbm/models/pile/pile_loader.obj @@ -0,0 +1,325 @@ +# Blender v2.79 (sub 0) OBJ File: 'pile_loader.blend' +# www.blender.org +o Rod +v 0.312500 0.500000 0.125000 +v 0.312500 0.437500 0.062500 +v 0.312500 0.437500 -0.062500 +v 0.312500 0.500000 -0.125000 +v 0.312500 0.687500 0.062500 +v 0.312500 0.625000 0.125000 +v 0.312500 0.625000 -0.125000 +v 0.312500 0.687500 -0.062500 +v -0.187500 0.625000 0.125000 +v -0.187500 0.687500 0.062500 +v -0.187500 0.687500 -0.062500 +v -0.187500 0.625000 -0.125000 +v -0.187500 0.437500 0.062500 +v -0.187500 0.500000 0.125000 +v -0.187500 0.500000 -0.125000 +v -0.187500 0.437500 -0.062500 +vt 0.833333 0.071429 +vt 1.000000 0.119048 +vt 0.833333 0.119048 +vt 0.833333 0.214286 +vt 1.000000 0.261905 +vt 0.833333 0.261905 +vt 0.833333 0.142857 +vt 1.000000 0.190476 +vt 0.833333 0.190476 +vt 0.833333 -0.000000 +vt 1.000000 0.047619 +vt 0.833333 0.047619 +vt 0.833333 0.285714 +vt 1.000000 0.071429 +vt 1.000000 0.142857 +vt 1.000000 0.214286 +vt 1.000000 -0.000000 +vt 1.000000 0.285714 +vn 0.0000 -0.3827 -0.9239 +vn 0.0000 0.3827 -0.9239 +vn 0.0000 0.3827 0.9239 +vn 0.0000 -0.3827 0.9239 +vn 0.0000 0.9239 -0.3827 +vn 0.0000 0.9239 0.3827 +vn 0.0000 -0.9239 0.3827 +vn 0.0000 -0.9239 -0.3827 +s 1 +f 4/1/1 12/2/2 7/3/2 +f 6/4/3 14/5/4 1/6/4 +f 8/7/5 10/8/6 5/9/6 +f 2/10/7 16/11/8 3/12/8 +f 14/5/4 2/13/7 1/6/4 +f 4/1/1 16/11/8 15/14/1 +f 8/7/5 12/2/2 11/15/5 +f 6/4/3 10/8/6 9/16/3 +f 4/1/1 15/14/1 12/2/2 +f 6/4/3 9/16/3 14/5/4 +f 8/7/5 11/15/5 10/8/6 +f 2/10/7 13/17/7 16/11/8 +f 14/5/4 13/18/7 2/13/7 +f 4/1/1 3/12/8 16/11/8 +f 8/7/5 7/3/2 12/2/2 +f 6/4/3 5/9/6 10/8/6 +o Lever +v -0.093750 0.468750 -0.312500 +v -0.093750 0.468750 -0.375000 +v -0.093750 0.531250 -0.375000 +v -0.093750 0.531250 -0.312500 +v -0.218750 0.531250 -0.375000 +v -0.218750 0.468750 -0.375000 +v -0.156250 0.531250 -0.312500 +v -0.156250 0.468750 -0.312500 +v -0.156250 0.468750 -0.250000 +v -0.156250 0.531250 -0.250000 +v -0.218750 0.468750 -0.250000 +v -0.218750 0.531250 -0.250000 +v -0.093750 0.562500 -0.406250 +v -0.093750 0.437500 -0.406250 +v -0.093750 0.562500 -0.281250 +v -0.093750 0.437500 -0.281250 +v 0.531250 0.562500 -0.281250 +v 0.531250 0.562500 -0.406250 +v 0.531250 0.437500 -0.406250 +v 0.531250 0.437500 -0.281250 +vt 0.979167 0.642857 +vt 0.958333 0.666667 +vt 0.958333 0.619048 +vt 0.937500 0.666667 +vt 0.937500 0.619048 +vt 0.937500 0.571429 +vt 0.916667 0.595238 +vt 0.916667 0.571429 +vt 0.958333 0.571429 +vt 0.979167 0.595238 +vt 1.000000 0.571429 +vt 0.979167 0.571429 +vt 0.916667 0.642857 +vt 0.916667 0.666667 +vt 1.000000 0.642857 +vt 0.979167 0.666667 +vt 0.958333 0.571429 +vt 0.916667 0.333333 +vt 0.958333 0.333333 +vt 0.833333 0.333333 +vt 0.875000 0.285714 +vt 0.875000 0.333333 +vt 0.875000 0.619048 +vt 0.833333 0.571429 +vt 0.875000 0.571429 +vt 1.000000 0.571429 +vt 1.000000 0.333333 +vt 0.916667 0.571429 +vt 1.000000 0.595238 +vt 1.000000 0.666667 +vt 0.833333 0.285714 +vt 0.833333 0.619048 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +s off +f 23/19/9 19/20/9 21/21/9 +f 21/21/10 18/22/10 22/23/10 +f 27/24/11 24/25/11 25/26/11 +f 28/27/9 23/28/9 21/21/9 +f 25/29/12 23/28/12 26/30/12 +f 28/27/13 22/23/13 27/24/13 +f 24/31/11 18/22/11 17/32/11 +f 24/33/14 20/34/14 23/19/14 +f 32/35/11 35/36/11 36/37/11 +f 33/38/12 35/39/12 34/40/12 +f 30/41/13 31/42/13 29/43/13 +f 31/44/14 36/37/14 33/45/14 +f 29/43/9 33/38/9 34/40/9 +f 29/43/10 35/36/10 30/46/10 +f 23/19/9 20/34/9 19/20/9 +f 21/21/10 19/20/10 18/22/10 +f 27/24/11 22/23/11 24/25/11 +f 28/27/9 26/30/9 23/28/9 +f 25/29/12 24/47/12 23/28/12 +f 28/27/13 21/21/13 22/23/13 +f 24/31/11 22/23/11 18/22/11 +f 24/33/14 17/48/14 20/34/14 +f 32/35/11 30/46/11 35/36/11 +f 33/38/12 36/49/12 35/39/12 +f 30/41/13 32/50/13 31/42/13 +f 31/44/14 32/35/14 36/37/14 +f 29/43/9 31/42/9 33/38/9 +f 29/43/10 34/40/10 35/36/10 +o Slider +v 0.437500 0.437500 0.125000 +v 0.437500 0.437500 -0.125000 +v 0.312500 0.437500 0.125000 +v 0.312500 0.437500 -0.125000 +v 0.437500 0.687500 0.125000 +v 0.437500 0.687500 -0.125000 +v 0.312500 0.687500 0.125000 +v 0.312500 0.687500 -0.125000 +vt 0.625000 0.761905 +vt 0.583333 0.857143 +vt 0.583333 0.761905 +vt 0.500000 0.761905 +vt 0.500000 0.857143 +vt 0.708333 0.857143 +vt 0.708333 0.761905 +vt 0.625000 0.857143 +vn 0.0000 1.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 44/51/15 41/52/15 42/53/15 +f 38/54/16 41/52/16 37/55/16 +f 39/56/17 44/51/17 40/57/17 +f 44/51/15 43/58/15 41/52/15 +f 38/54/16 42/53/16 41/52/16 +f 39/56/17 43/58/17 44/51/17 +o Loader +v -0.500000 0.875000 0.375000 +v -0.500000 0.125000 0.375000 +v -0.500000 0.875000 -0.375000 +v -0.500000 0.125000 -0.375000 +v -0.250000 0.875000 -0.375000 +v -0.250000 0.875000 0.375000 +v -0.250000 0.125000 0.375000 +v -0.250000 0.125000 -0.375000 +v -0.250000 0.687500 0.250000 +v -0.250000 0.750000 0.187500 +v -0.250000 0.250000 0.187500 +v -0.250000 0.312500 0.250000 +v -0.250000 0.750000 -0.187500 +v -0.250000 0.687500 -0.250000 +v -0.250000 0.312500 -0.250000 +v -0.250000 0.250000 -0.187500 +v 0.500000 0.687500 -0.250000 +v 0.437500 0.750000 -0.125000 +v 0.437500 0.750000 0.125000 +v 0.500000 0.687500 0.250000 +v 0.500000 0.312500 0.250000 +v 0.500000 0.250000 0.187500 +v 0.500000 0.250000 -0.187500 +v 0.500000 0.312500 -0.250000 +v 0.500000 0.750000 0.187500 +v 0.500000 0.750000 -0.187500 +v -0.187500 0.750000 0.125000 +v -0.187500 0.750000 -0.125000 +v -0.187500 0.437500 -0.125000 +v -0.187500 0.437500 0.125000 +v 0.437500 0.437500 0.125000 +v 0.437500 0.437500 -0.125000 +vt 0.750000 0.476190 +vt 0.500000 0.761905 +vt 0.500000 0.476190 +vt 0.500000 0.095238 +vt 0.750000 0.380952 +vt 0.500000 0.380952 +vt 0.750000 -0.000000 +vt 0.500000 -0.000000 +vt 0.833333 0.380952 +vt 0.750000 0.095238 +vt 0.833333 0.095238 +vt 0.416667 0.095238 +vt 0.416667 0.380952 +vt 0.416667 0.642857 +vt 0.166667 0.500000 +vt 0.416667 0.500000 +vt 0.416667 0.142857 +vt 0.166667 0.000000 +vt 0.416667 0.000000 +vt 0.416667 0.309524 +vt 0.166667 0.166667 +vt 0.416667 0.166667 +vt -0.000000 0.476190 +vt 0.020833 0.309524 +vt 0.166667 0.333333 +vt 0.166667 0.666667 +vt 0.416667 0.666667 +vt 0.416667 0.476190 +vt 0.166667 0.476190 +vt 0.166667 0.309524 +vt 0.187500 1.000000 +vt 0.395833 0.880952 +vt 0.395833 1.000000 +vt 0.395833 0.452381 +vt 0.187500 0.452381 +vt 0.187500 0.357143 +vt 0.416667 0.333333 +vt 0.395833 0.357143 +vt 0.187500 0.785714 +vt 0.395833 0.785714 +vt 0.500000 0.880952 +vt 0.500000 0.785714 +vt 0.083333 0.785714 +vt 0.187500 0.880952 +vt 0.083333 0.880952 +vt 0.395833 0.666667 +vt 0.187500 0.666667 +vt 0.750000 0.761905 +vt 0.166667 0.642857 +vt 0.166667 0.142857 +vt 0.145833 0.500000 +vt 0.020833 0.500000 +vt -0.000000 0.333333 +vt 0.145833 0.309524 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +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 0.0000 -0.7071 0.7071 +vn 0.0000 0.7071 0.7071 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 -0.7071 +s off +f 47/59/18 46/60/18 45/61/18 +f 51/62/19 49/63/19 50/64/19 +f 48/65/20 51/62/20 46/66/20 +f 45/61/21 49/63/21 47/59/21 +f 47/67/22 52/68/22 48/69/22 +f 46/70/23 50/64/23 45/71/23 +f 56/72/23 64/73/23 53/74/23 +f 60/75/20 66/76/20 55/77/20 +f 58/78/22 68/79/22 59/80/22 +f 66/81/19 68/82/19 70/83/19 +f 66/84/24 56/72/24 55/85/24 +f 54/86/25 64/73/25 69/87/25 +f 68/79/26 60/75/26 59/80/26 +f 58/78/27 70/83/27 61/88/27 +f 63/89/22 74/90/22 71/91/22 +f 71/92/21 69/87/21 63/93/21 +f 62/94/21 57/95/21 72/96/21 +f 72/96/21 54/86/21 71/92/21 +f 63/93/21 70/83/21 62/94/21 +f 74/90/21 76/97/21 73/98/21 +f 71/99/19 73/98/19 72/100/19 +f 62/101/18 75/102/18 63/103/18 +f 72/104/23 76/97/23 62/105/23 +f 47/59/18 48/106/18 46/60/18 +f 51/62/19 52/68/19 49/63/19 +f 48/65/20 52/68/20 51/62/20 +f 45/61/21 50/64/21 49/63/21 +f 47/67/22 49/63/22 52/68/22 +f 46/70/23 51/62/23 50/64/23 +f 56/72/23 65/107/23 64/73/23 +f 60/75/20 67/108/20 66/76/20 +f 58/78/22 61/88/22 68/79/22 +f 70/83/19 69/87/19 64/109/19 +f 64/109/19 65/110/19 66/81/19 +f 66/81/19 67/111/19 68/82/19 +f 68/82/19 61/112/19 70/83/19 +f 70/83/19 64/109/19 66/81/19 +f 66/84/24 65/107/24 56/72/24 +f 54/86/25 53/74/25 64/73/25 +f 68/79/26 67/108/26 60/75/26 +f 58/78/27 57/95/27 70/83/27 +f 63/89/22 75/102/22 74/90/22 +f 71/92/21 54/86/21 69/87/21 +f 62/94/21 70/83/21 57/95/21 +f 72/96/21 57/95/21 54/86/21 +f 63/93/21 69/87/21 70/83/21 +f 74/90/21 75/102/21 76/97/21 +f 71/99/19 74/90/19 73/98/19 +f 62/101/18 76/97/18 75/102/18 +f 72/104/23 73/98/23 76/97/23 diff --git a/src/main/resources/assets/hbm/models/pile/pile_vent.obj b/src/main/resources/assets/hbm/models/pile/pile_vent.obj new file mode 100644 index 000000000..b13ceeb4b --- /dev/null +++ b/src/main/resources/assets/hbm/models/pile/pile_vent.obj @@ -0,0 +1,378 @@ +# Blender v2.79 (sub 0) OBJ File: 'pile_vent.blend' +# www.blender.org +o Fan +v 0.000000 0.812500 -0.031250 +v -0.022097 0.812500 -0.022097 +v -0.031250 0.812500 0.000000 +v -0.022097 0.812500 0.022097 +v 0.000000 0.812500 0.031250 +v 0.022097 0.812500 0.022097 +v 0.031250 0.812500 -0.000000 +v 0.022097 0.812500 -0.022097 +v -0.022097 0.875000 -0.022097 +v -0.000000 0.875000 -0.031250 +v -0.031250 0.875000 0.000000 +v -0.022097 0.875000 0.022097 +v -0.000000 0.875000 0.031250 +v 0.022097 0.875000 0.022097 +v 0.031250 0.875000 -0.000000 +v 0.022097 0.875000 -0.022097 +v -0.027063 0.859375 0.109375 +v 0.027063 0.828125 0.109375 +v -0.027063 0.859375 0.000000 +v 0.027063 0.828125 0.000000 +v -0.027063 0.828125 0.000000 +v 0.027063 0.859375 0.000000 +v -0.027063 0.828125 -0.109375 +v 0.027063 0.859375 -0.109375 +v 0.109375 0.859375 0.027063 +v 0.109375 0.828125 -0.027063 +v -0.000000 0.859375 0.027063 +v -0.000000 0.828125 -0.027063 +v -0.000000 0.828125 0.027063 +v -0.000000 0.859375 -0.027063 +v -0.109375 0.828125 0.027063 +v -0.109375 0.859375 -0.027063 +vt 0.048780 0.775000 +vt 0.146341 0.825000 +vt 0.048780 0.825000 +vt 0.012195 0.775314 +vt 0.020602 0.778883 +vt 0.024084 0.787500 +vt 0.146341 0.825000 +vt 0.048780 0.775000 +vt 0.146341 0.775000 +vt 0.048780 0.775000 +vt 0.146341 0.825000 +vt 0.048780 0.825000 +vt 0.146341 0.825000 +vt 0.048780 0.775000 +vt 0.146341 0.775000 +vt 0.146341 0.775000 +vt 0.020602 0.796117 +vt 0.012195 0.799686 +vt 0.003788 0.796117 +vt 0.000306 0.787500 +vt 0.003788 0.778883 +vt 0.048780 0.825000 +vt 0.146341 0.775000 +vt 0.048780 0.825000 +vt 0.146341 0.750000 +vt 0.121951 0.775000 +vt 0.121951 0.750000 +vt 0.073171 0.750000 +vt 0.097561 0.775000 +vt 0.073171 0.775000 +vt 0.024390 0.750000 +vt 0.048780 0.775000 +vt 0.024390 0.775000 +vt 0.195122 0.750000 +vt 0.170732 0.775000 +vt 0.170732 0.750000 +vt 0.097561 0.750000 +vt 0.048780 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.775000 +vt 0.146341 0.775000 +vt 0.195122 0.775000 +vn 0.5000 0.8660 0.0000 +vn 0.0000 1.0000 0.0000 +vn -0.5000 0.8660 0.0000 +vn -0.0000 0.8660 -0.5000 +vn 0.0000 0.8660 0.5000 +vn 0.0000 -0.0000 -1.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +vn 1.0000 0.0000 0.0000 +vn -0.7071 -0.0000 0.7071 +vn -0.0000 0.0000 1.0000 +vn -1.0000 -0.0000 0.0000 +vn -0.7071 -0.0000 -0.7071 +s off +f 18/1/1 19/2/1 17/3/1 +f 15/4/2 16/5/2 10/6/2 +f 22/7/3 23/8/3 21/9/3 +f 26/10/4 27/11/4 25/12/4 +f 30/13/5 31/14/5 29/15/5 +f 18/1/1 20/16/1 19/2/1 +f 10/6/2 9/17/2 11/18/2 +f 11/18/2 12/19/2 10/6/2 +f 12/19/2 13/20/2 10/6/2 +f 13/20/2 14/21/2 10/6/2 +f 14/21/2 15/4/2 10/6/2 +f 22/7/3 24/22/3 23/8/3 +f 26/10/4 28/23/4 27/11/4 +f 30/13/5 32/24/5 31/14/5 +s 1 +f 1/25/6 16/26/7 8/27/7 +f 6/28/8 15/29/9 14/30/8 +f 4/31/10 13/32/11 12/33/10 +f 3/34/12 9/35/13 2/36/13 +f 8/27/7 15/29/9 7/37/9 +f 5/38/11 14/30/8 13/32/11 +f 3/39/12 12/33/10 11/40/12 +f 2/36/13 10/41/6 1/25/6 +f 1/25/6 10/41/6 16/26/7 +f 6/28/8 7/37/9 15/29/9 +f 4/31/10 5/38/11 13/32/11 +f 3/34/12 11/42/12 9/35/13 +f 8/27/7 16/26/7 15/29/9 +f 5/38/11 6/28/8 14/30/8 +f 3/39/12 4/31/10 12/33/10 +f 2/36/13 9/35/13 10/41/6 +o Pipe +v -0.500000 0.875000 0.375000 +v -0.500000 0.125000 0.375000 +v -0.500000 0.875000 -0.375000 +v -0.500000 0.125000 -0.375000 +v -0.375000 0.875000 -0.375000 +v -0.375000 0.875000 0.375000 +v -0.375000 0.125000 0.375000 +v -0.375000 0.125000 -0.375000 +v 0.500000 0.750000 0.250000 +v 0.500000 0.250000 0.250000 +v 0.500000 0.750000 -0.250000 +v 0.500000 0.250000 -0.250000 +v 0.375000 0.750000 -0.250000 +v 0.375000 0.750000 0.250000 +v 0.375000 0.250000 0.250000 +v 0.375000 0.250000 -0.250000 +v 0.375000 0.687500 0.187500 +v 0.375000 0.312500 0.187500 +v 0.375000 0.687500 -0.187500 +v 0.375000 0.312500 -0.187500 +v 0.125000 0.687500 -0.187500 +v 0.125000 0.687500 0.187500 +v 0.125000 0.312500 0.187500 +v 0.125000 0.312500 -0.187500 +v 0.125000 0.750000 0.250000 +v 0.125000 0.250000 0.250000 +v 0.125000 0.750000 -0.250000 +v 0.125000 0.250000 -0.250000 +v -0.125000 0.750000 -0.250000 +v -0.125000 0.750000 0.250000 +v -0.125000 0.250000 0.250000 +v -0.125000 0.250000 -0.250000 +v -0.125000 0.687500 0.187500 +v -0.125000 0.312500 0.187500 +v -0.125000 0.687500 -0.187500 +v -0.125000 0.312500 -0.187500 +v -0.375000 0.687500 -0.187500 +v -0.375000 0.687500 0.187500 +v -0.375000 0.312500 0.187500 +v -0.375000 0.312500 -0.187500 +v -0.187500 0.687500 0.187500 +v 0.187500 0.687500 0.187500 +v -0.187500 0.687500 -0.187500 +v 0.187500 0.687500 -0.187500 +v -0.125000 0.875000 -0.125000 +v -0.125000 0.875000 0.125000 +v 0.125000 0.875000 0.125000 +v 0.125000 0.875000 -0.125000 +v -0.187500 0.875000 -0.187500 +v -0.187500 0.875000 0.187500 +v 0.187500 0.875000 0.187500 +v 0.187500 0.875000 -0.187500 +v -0.125000 0.812500 -0.125000 +v -0.125000 0.812500 0.125000 +v 0.125000 0.812500 0.125000 +v 0.125000 0.812500 -0.125000 +vt 0.487805 0.600000 +vt 0.512195 0.425000 +vt 0.512195 0.575000 +vt 0.951219 0.400000 +vt 0.658537 0.700000 +vt 0.658537 0.400000 +vt 0.658537 0.050000 +vt 0.951219 0.350000 +vt 0.658537 0.350000 +vt 1.000000 0.350000 +vt 0.951219 0.050000 +vt 1.000000 0.050000 +vt 0.609756 0.050000 +vt 0.609756 0.350000 +vt 0.951219 -0.000000 +vt 0.658537 0.000000 +vt 0.000000 0.600000 +vt 0.195122 0.400000 +vt 0.195122 0.600000 +vt 0.512195 0.775000 +vt 0.512195 0.625000 +vt 0.195122 -0.000000 +vt 0.243902 0.200000 +vt 0.195122 0.200000 +vt 0.243902 0.600000 +vt 0.243902 0.400000 +vt 0.243902 0.800000 +vt 0.195122 0.800000 +vt 0.512195 0.175000 +vt 0.487805 -0.000000 +vt 0.512195 0.025000 +vt 0.487805 0.400000 +vt 0.512195 0.225000 +vt 0.512195 0.375000 +vt 0.365854 0.625000 +vt 0.268293 0.775000 +vt 0.268293 0.625000 +vt 0.365854 0.025000 +vt 0.268293 0.175000 +vt 0.268293 0.025000 +vt 0.365854 0.425000 +vt 0.268293 0.575000 +vt 0.268293 0.425000 +vt 0.365854 0.225000 +vt 0.268293 0.375000 +vt 0.268293 0.225000 +vt 0.390244 -0.000000 +vt 0.487805 0.200000 +vt 0.390244 0.200000 +vt 0.390244 0.400000 +vt 0.390244 0.600000 +vt 0.487805 0.800000 +vt 0.390244 0.800000 +vt 0.609756 0.625000 +vt 0.609756 0.025000 +vt 0.609756 0.425000 +vt 0.609756 0.225000 +vt 0.024390 0.750000 +vt 0.121951 0.725000 +vt 0.121951 0.750000 +vt 0.829268 0.700000 +vt 0.682927 0.775000 +vt 0.682927 0.700000 +vt 0.682927 1.000000 +vt 0.829268 0.925000 +vt 0.829268 1.000000 +vt 0.609756 0.775000 +vt 0.682927 0.925000 +vt 0.609756 0.925000 +vt 0.902439 0.925000 +vt 0.829268 0.775000 +vt 0.902439 0.775000 +vt 0.804878 0.800000 +vt 0.804878 0.900000 +vt 0.707317 0.900000 +vt 0.707317 0.800000 +vt 0.024390 0.725000 +vt 0.121951 0.625000 +vt 0.000000 0.625000 +vt 0.000000 0.725000 +vt 0.146341 0.725000 +vt 0.146341 0.625000 +vt 0.121951 0.600000 +vt 0.024390 0.625000 +vt 0.024390 0.600000 +vt 0.365854 0.375000 +vt 0.365854 0.575000 +vt 0.365854 0.775000 +vt 0.365854 0.175000 +vt 0.951219 0.700000 +vt -0.000000 0.400000 +vt 0.243902 0.000000 +vt 0.609756 0.775000 +vt 0.609756 0.175000 +vt 0.609756 0.575000 +vt 0.609756 0.375000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +s off +f 62/43/14 67/44/14 65/45/14 +f 35/46/14 34/47/14 33/48/14 +f 39/49/15 37/50/15 38/51/15 +f 35/52/16 40/53/16 36/54/16 +f 34/55/17 38/51/17 33/56/17 +f 36/57/18 39/49/18 34/58/18 +f 33/48/19 37/50/19 35/46/19 +f 42/59/15 43/60/15 41/61/15 +f 66/62/14 62/43/14 65/63/14 +f 42/64/18 48/65/18 44/66/18 +f 43/60/19 46/67/19 41/61/19 +f 44/66/16 45/68/16 43/60/16 +f 41/61/17 47/69/17 42/70/17 +f 68/71/14 63/72/14 66/73/14 +f 61/74/14 68/75/14 67/76/14 +f 54/77/17 50/78/17 49/79/17 +f 55/80/18 52/81/18 50/82/18 +f 53/83/19 49/84/19 51/85/19 +f 56/86/16 51/87/16 52/88/16 +f 58/89/18 64/90/18 60/91/18 +f 59/92/19 62/43/19 57/93/19 +f 60/91/16 61/74/16 59/92/16 +f 57/93/17 63/94/17 58/95/17 +f 70/96/17 66/62/17 65/63/17 +f 71/97/18 68/71/18 66/73/18 +f 69/98/19 65/45/19 67/44/19 +f 72/99/16 67/76/16 68/75/16 +f 79/100/16 86/101/16 78/102/16 +f 75/103/16 84/104/16 76/105/16 +f 74/106/17 82/107/17 73/108/17 +f 76/109/15 83/110/15 74/111/15 +f 73/112/14 81/113/14 75/114/14 +f 77/115/19 82/107/19 78/116/19 +f 78/116/19 83/110/19 79/117/19 +f 79/117/19 84/104/19 80/118/19 +f 80/118/19 81/113/19 77/115/19 +f 87/119/19 85/120/19 86/101/19 +f 80/121/14 87/119/14 79/122/14 +f 78/123/15 85/120/15 77/124/15 +f 77/125/17 88/126/17 80/127/17 +f 56/86/15 59/92/15 53/128/15 +f 53/83/15 57/93/15 54/129/15 +f 54/77/15 58/95/15 55/130/15 +f 55/80/15 60/91/15 56/131/15 +f 48/65/14 51/87/14 45/68/14 +f 46/67/14 51/85/14 49/84/14 +f 46/67/14 50/78/14 47/69/14 +f 48/65/14 50/82/14 52/81/14 +f 62/43/14 61/74/14 67/44/14 +f 35/46/14 36/132/14 34/47/14 +f 39/49/15 40/53/15 37/50/15 +f 35/52/16 37/50/16 40/53/16 +f 34/55/17 39/49/17 38/51/17 +f 36/57/18 40/53/18 39/49/18 +f 33/48/19 38/51/19 37/50/19 +f 42/59/15 44/133/15 43/60/15 +f 66/62/14 63/94/14 62/43/14 +f 42/64/18 47/134/18 48/65/18 +f 43/60/19 45/68/19 46/67/19 +f 44/66/16 48/65/16 45/68/16 +f 41/61/17 46/67/17 47/69/17 +f 68/71/14 64/90/14 63/72/14 +f 61/74/14 64/90/14 68/75/14 +f 54/77/17 55/130/17 50/78/17 +f 55/80/18 56/131/18 52/81/18 +f 53/83/19 54/129/19 49/84/19 +f 56/86/16 53/128/16 51/87/16 +f 58/89/18 63/72/18 64/90/18 +f 59/92/19 61/74/19 62/43/19 +f 60/91/16 64/90/16 61/74/16 +f 57/93/17 62/43/17 63/94/17 +f 70/96/17 71/135/17 66/62/17 +f 71/97/18 72/136/18 68/71/18 +f 69/98/19 70/137/19 65/45/19 +f 72/99/16 69/138/16 67/76/16 +f 79/100/16 87/119/16 86/101/16 +f 75/103/16 81/113/16 84/104/16 +f 74/106/17 83/110/17 82/107/17 +f 76/109/15 84/104/15 83/110/15 +f 73/112/14 82/107/14 81/113/14 +f 77/115/19 81/113/19 82/107/19 +f 78/116/19 82/107/19 83/110/19 +f 79/117/19 83/110/19 84/104/19 +f 80/118/19 84/104/19 81/113/19 +f 87/119/19 88/126/19 85/120/19 +f 80/121/14 88/126/14 87/119/14 +f 78/123/15 86/101/15 85/120/15 +f 77/125/17 85/120/17 88/126/17 +f 56/86/15 60/91/15 59/92/15 +f 53/83/15 59/92/15 57/93/15 +f 54/77/15 57/93/15 58/95/15 +f 55/80/15 58/89/15 60/91/15 +f 48/65/14 52/88/14 51/87/14 +f 46/67/14 45/68/14 51/85/14 +f 46/67/14 49/79/14 50/78/14 +f 48/65/14 47/134/14 50/82/14 diff --git a/src/main/resources/assets/hbm/textures/gui/GUIElectricFurnace.png b/src/main/resources/assets/hbm/textures/gui/GUIElectricFurnace.png deleted file mode 100644 index a0aa8fd26..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/GUIElectricFurnace.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_epress.png b/src/main/resources/assets/hbm/textures/gui/gui_epress.png deleted file mode 100644 index 0079b6484..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_epress.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_press.png b/src/main/resources/assets/hbm/textures/gui/gui_press.png deleted file mode 100644 index 9fabaa595..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_press.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_rtg.png b/src/main/resources/assets/hbm/textures/gui/gui_rtg.png index ce99dbca6..1c2dfac5f 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_rtg.png and b/src/main/resources/assets/hbm/textures/gui/gui_rtg.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/gui_shredder.png b/src/main/resources/assets/hbm/textures/gui/gui_shredder.png deleted file mode 100644 index 19b774c76..000000000 Binary files a/src/main/resources/assets/hbm/textures/gui/gui_shredder.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png index 9da387278..6657da233 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png and b/src/main/resources/assets/hbm/textures/gui/machine/gui_cyclotron.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electric_furnace.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electric_furnace.png new file mode 100644 index 000000000..ef12cb413 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_electric_furnace.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_electric_press.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_electric_press.png new file mode 100644 index 000000000..8575156ba Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_electric_press.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_press.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_press.png new file mode 100644 index 000000000..a9e7ed166 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_press.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_shredder.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_shredder.png new file mode 100644 index 000000000..7e6757850 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/processing/gui_shredder.png differ diff --git a/src/main/resources/assets/hbm/textures/models/pheodoors/secure_door_black.png b/src/main/resources/assets/hbm/textures/models/pheodoors/secure_door_black.png index 4018c6972..cc9100cf0 100644 Binary files a/src/main/resources/assets/hbm/textures/models/pheodoors/secure_door_black.png and b/src/main/resources/assets/hbm/textures/models/pheodoors/secure_door_black.png differ diff --git a/src/main/resources/assets/hbm/textures/models/pile/pile_control.png b/src/main/resources/assets/hbm/textures/models/pile/pile_control.png index 01c946808..a07e4a0eb 100644 Binary files a/src/main/resources/assets/hbm/textures/models/pile/pile_control.png and b/src/main/resources/assets/hbm/textures/models/pile/pile_control.png differ diff --git a/src/main/resources/assets/hbm/textures/models/pile/pile_loader.png b/src/main/resources/assets/hbm/textures/models/pile/pile_loader.png index f4558f5c1..68c127b43 100644 Binary files a/src/main/resources/assets/hbm/textures/models/pile/pile_loader.png and b/src/main/resources/assets/hbm/textures/models/pile/pile_loader.png differ diff --git a/src/main/resources/assets/hbm/textures/models/pile/pile_vent.png b/src/main/resources/assets/hbm/textures/models/pile/pile_vent.png index 7c49c7085..72fc50809 100644 Binary files a/src/main/resources/assets/hbm/textures/models/pile/pile_vent.png and b/src/main/resources/assets/hbm/textures/models/pile/pile_vent.png differ