diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index a47c6a32b..90ff697ee 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1084,7 +1084,7 @@ public class ModBlocks { public static Block volcanic_lava_block; public static Fluid volcanic_lava_fluid; public static final Material fluidvolcanic = (new MaterialLiquid(MapColor.redColor)); - + public static Block volcano_core; public static Block dummy_block_igenerator; @@ -1915,7 +1915,7 @@ public class ModBlocks { oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe"); machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_flare"); machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_refinery"); - machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fraction_tower"); + machine_fraction_tower = new MachineFractionTower(Material.iron).setBlockName("machine_fraction_tower").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); fraction_spacer = new FractionSpacer(Material.iron).setBlockName("fraction_spacer").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fraction_spacer"); machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_drill"); drill_pipe = new BlockNoDrop(Material.iron).setBlockName("drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":drill_pipe"); @@ -2876,7 +2876,7 @@ public class ModBlocks { GameRegistry.registerBlock(balefire, balefire.getUnlocalizedName()); GameRegistry.registerBlock(fire_digamma, fire_digamma.getUnlocalizedName()); GameRegistry.registerBlock(digamma_matter, digamma_matter.getUnlocalizedName()); - GameRegistry.registerBlock(volcano_core, volcano_core.getUnlocalizedName()); + GameRegistry.registerBlock(volcano_core, ItemBlockVolcano.class, volcano_core.getUnlocalizedName()); //AMS GameRegistry.registerBlock(ams_base, ams_base.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java index cf8db8aac..17e1969cc 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockVolcano.java @@ -12,9 +12,14 @@ import com.hbm.packet.AuxParticlePacketNT; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -24,6 +29,14 @@ public class BlockVolcano extends Block { super(Material.iron); } + @SideOnly(Side.CLIENT) + public void getSubBlocks(Item item, CreativeTabs tab, List list) { + + for(int i = 0; i < 4; ++i) { + list.add(new ItemStack(item, 1, i)); + } + } + @Override public int tickRate(World world) { return 5; @@ -40,39 +53,128 @@ public class BlockVolcano extends Block { public void updateTick(World world, int x, int y, int z, Random rand) { if(!world.isRemote) { - List attribs = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_V, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT}); - ExplosionNT explosion = new ExplosionNT(world, null, x + 0.5, y + rand.nextInt(15) + 1.5, z + 0.5, 7); - explosion.addAllAttrib(attribs); - explosion.explode(); + int meta = world.getBlockMetadata(x, y, z); + blastMagmaChannel(world, x, y, z, rand); + raiseMagma(world, x, y, z, rand); + spawnBlobs(world, x, y, z, rand); + spawnSmoke(world, x, y, z, rand); - ExplosionNT explosion2 = new ExplosionNT(world, null, x + 0.5 + rand.nextGaussian() * 3, rand.nextInt(y), z + 0.5 + rand.nextGaussian() * 3, 10); - explosion2.addAllAttrib(attribs); - explosion2.explode(); - - world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); - - int rX = x - 10 + rand.nextInt(21); - int rY = y + rand.nextInt(11); - int rZ = z - 10 + rand.nextInt(21); - - if(world.getBlock(rX, rY, rZ) == Blocks.air && world.getBlock(rX, rY - 1, rZ) == ModBlocks.volcanic_lava_block) - world.setBlock(rX, rY, rZ, ModBlocks.volcanic_lava_block); - - for(int i = 0; i < 3; i++) { - EntityShrapnel frag = new EntityShrapnel(world); - frag.setLocationAndAngles(x + 0.5, y + 1.5, z + 0.5, 0.0F, 0.0F); - frag.motionY = 1D + rand.nextDouble(); - frag.motionX = rand.nextGaussian() * 0.2D; - frag.motionZ = rand.nextGaussian() * 0.2D; - frag.setVolcano(true); - world.spawnEntityInWorld(frag); - } - - NBTTagCompound dPart = new NBTTagCompound(); - dPart.setString("type", "vanillaExt"); - dPart.setString("mode", "volcano"); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, x + 0.5, y + 10, z + 0.5), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 10, z + 0.5, 250)); + updateVolcano(world, x, y, z, rand, meta); } } + + private void blastMagmaChannel(World world, int x, int y, int z, Random rand) { + + List attribs = Arrays.asList(new ExAttrib[] {ExAttrib.NODROP, ExAttrib.LAVA_V, ExAttrib.NOSOUND, ExAttrib.ALLMOD, ExAttrib.NOHURT}); + + ExplosionNT explosion = new ExplosionNT(world, null, x + 0.5, y + rand.nextInt(15) + 1.5, z + 0.5, 7); + explosion.addAllAttrib(attribs); + explosion.explode(); + + ExplosionNT explosion2 = new ExplosionNT(world, null, x + 0.5 + rand.nextGaussian() * 3, rand.nextInt(y), z + 0.5 + rand.nextGaussian() * 3, 10); + explosion2.addAllAttrib(attribs); + explosion2.explode(); + } + + private void raiseMagma(World world, int x, int y, int z, Random rand) { + + int rX = x - 10 + rand.nextInt(21); + int rY = y + rand.nextInt(11); + int rZ = z - 10 + rand.nextInt(21); + + if(world.getBlock(rX, rY, rZ) == Blocks.air && world.getBlock(rX, rY - 1, rZ) == ModBlocks.volcanic_lava_block) + world.setBlock(rX, rY, rZ, ModBlocks.volcanic_lava_block); + } + + private void spawnBlobs(World world, int x, int y, int z, Random rand) { + + for(int i = 0; i < 3; i++) { + EntityShrapnel frag = new EntityShrapnel(world); + frag.setLocationAndAngles(x + 0.5, y + 1.5, z + 0.5, 0.0F, 0.0F); + frag.motionY = 1D + rand.nextDouble(); + frag.motionX = rand.nextGaussian() * 0.2D; + frag.motionZ = rand.nextGaussian() * 0.2D; + frag.setVolcano(true); + world.spawnEntityInWorld(frag); + } + } + + /* + * I SEE SMOKE, AND WHERE THERE'S SMOKE THERE'S FIRE! + */ + private void spawnSmoke(World world, int x, int y, int z, Random rand) { + NBTTagCompound dPart = new NBTTagCompound(); + dPart.setString("type", "vanillaExt"); + dPart.setString("mode", "volcano"); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, x + 0.5, y + 10, z + 0.5), new TargetPoint(world.provider.dimensionId, x + 0.5, y + 10, z + 0.5, 250)); + } + + private void updateVolcano(World world, int x, int y, int z, Random rand, int meta) { + + if(rand.nextDouble() < this.getProgressChance(world, x, y, z, rand, meta)) { + + //if there's progress, check if the volcano can grow or not + if(shouldGrow(world, x, y, z, rand, meta)) { + + //raise the level for growing volcanos, spawn lava, schedule update at the new position + y++; + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + + for(int i = -1; i <= 1; i++) { + for(int j = -1; j <= 1; j++) { + for(int k = -1; k <= 1; k++) { + + if(i + j + k == 0) { + world.setBlock(x, y, z, this, meta, 3); + } else { + world.setBlock(x + i, y + j, z + k, ModBlocks.volcanic_lava_block); + } + } + } + } + + //a progressing volcano that can't grow will extinguish + } else if(isExtinguishing(meta)) { + world.setBlock(x, y, z, ModBlocks.volcanic_lava_block); + } + + //if there's no progress, schedule an update on the current position + } + + world.scheduleBlockUpdate(x, y, z, this, this.tickRate(world)); + } + + public static final int META_STATIC_ACTIVE = 0; + public static final int META_STATIC_EXTINGUISHING = 1; + public static final int META_GROWING_ACTIVE = 2; + public static final int META_GROWING_EXTINGUISHING = 3; + + public static boolean isGrowing(int meta) { + return meta == META_GROWING_ACTIVE || meta == META_GROWING_EXTINGUISHING; + } + + public static boolean isExtinguishing(int meta) { + return meta == META_STATIC_EXTINGUISHING || meta == META_GROWING_EXTINGUISHING; + } + + private boolean shouldGrow(World world, int x, int y, int z, Random rand, int meta) { + + //non-growing volcanoes should extinguish + if(!isGrowing(meta)) + return false; + + //growing volcanoes extinguish when exceeding 200 blocks + return y < 200; + } + + private double getProgressChance(World world, int x, int y, int z, Random rand, int meta) { + + if(meta == META_STATIC_EXTINGUISHING) + return 0.00003D; //about once every hour + if(isGrowing(meta)) + return 0.014D; //about 500x an hour + + return 0; + } } diff --git a/src/main/java/com/hbm/blocks/machine/FractionSpacer.java b/src/main/java/com/hbm/blocks/machine/FractionSpacer.java index 899578f52..5c097aecb 100644 --- a/src/main/java/com/hbm/blocks/machine/FractionSpacer.java +++ b/src/main/java/com/hbm/blocks/machine/FractionSpacer.java @@ -14,8 +14,11 @@ public class FractionSpacer extends BlockDummyable { } @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntitySpacer(); + public TileEntity createNewTileEntity(World p_149915_1_, int meta) { + + if(meta >= 12) + return new TileEntitySpacer(); + return null; } @Override diff --git a/src/main/java/com/hbm/inventory/MachineRecipes.java b/src/main/java/com/hbm/inventory/MachineRecipes.java index 89fe6777b..b4d9fc04a 100644 --- a/src/main/java/com/hbm/inventory/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/MachineRecipes.java @@ -1597,23 +1597,23 @@ public class MachineRecipes { switch(ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage())) { case CC_OIL: - list.add(new ItemStack(Items.coal, 8)); + list.add(new ItemStack(ModItems.powder_coal, 8)); list.add(new ItemStack(ModItems.oil_tar, 4)); break; case CC_I: - list.add(new ItemStack(Items.coal, 6)); + list.add(new ItemStack(ModItems.powder_coal, 6)); list.add(new ItemStack(ModItems.oil_tar, 4)); break; case CC_HEATING: - list.add(new ItemStack(Items.coal, 6)); + list.add(new ItemStack(ModItems.powder_coal, 6)); list.add(new ItemStack(ModItems.oil_tar, 4)); break; case CC_HEAVY: - list.add(new ItemStack(Items.coal, 8)); + list.add(new ItemStack(ModItems.powder_coal, 8)); list.add(new ItemStack(ModItems.oil_tar, 4)); break; case CC_NAPHTHA: - list.add(new ItemStack(Items.coal, 8)); + list.add(new ItemStack(ModItems.powder_coal, 8)); list.add(new ItemStack(ModItems.oil_tar, 4)); break; case ASPHALT: @@ -1651,7 +1651,7 @@ public class MachineRecipes { list.add(new ItemStack(ModItems.ingot_desh, 1)); break; case POLYMER: - list.add(new ItemStack(Items.coal, 2)); + list.add(new ItemStack(ModItems.powder_coal, 2)); list.add(new ItemStack(ModItems.fluorite, 1)); break; case DEUTERIUM: @@ -1707,7 +1707,7 @@ public class MachineRecipes { case KEVLAR: list.add(new ItemStack(ModItems.niter, 2)); list.add(new ItemStack(Items.brick, 1)); - list.add(new ItemStack(Items.coal, 1)); + list.add(new ItemStack(ModItems.powder_coal, 1)); break; case SOLID_FUEL: list.add(new ItemStack(ModItems.solid_fuel, 2)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 999915d33..35ef6ba08 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2010,6 +2010,7 @@ public class ModItems { public static Item drax_mk2; public static Item drax_mk3; public static Item bismuth_pickaxe; + public static Item volcanic_pickaxe; public static Item chlorophyte_pickaxe; public static Item mese_pickaxe; @@ -4998,7 +4999,19 @@ public class ModItems { .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("bismuth_pickaxe").setTextureName(RefStrings.MODID + ":bismuth_pickaxe"); - ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte)); + ToolMaterial matVolcano = EnumHelper.addToolMaterial("HBM_VOLCANIC", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.ingot_bismuth)); + volcanic_pickaxe = new ItemToolAbility(15F, 0, matVolcano, EnumToolType.MINER) + .addBreakAbility(new ToolAbility.HammerAbility(2)) + .addBreakAbility(new ToolAbility.RecursionAbility(4)) + .addBreakAbility(new ToolAbility.SmelterAbility()) + .addBreakAbility(new ToolAbility.LuckAbility(3)) + .addBreakAbility(new ToolAbility.SilkAbility()) + .addHitAbility(new WeaponAbility.StunAbility(5)) + .addHitAbility(new WeaponAbility.VampireAbility(2F)) + .addHitAbility(new WeaponAbility.BeheaderAbility()) + .setDepthRockBreaker().setUnlocalizedName("volcanic_pickaxe").setTextureName(RefStrings.MODID + ":volcanic_pickaxe"); + + ToolMaterial matChlorophyte = EnumHelper.addToolMaterial("HBM_CHLOROPHYTE", 4, 0, 75F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.powder_chlorophyte)); chlorophyte_pickaxe = new ItemToolAbility(20F, 0, matChlorophyte, EnumToolType.MINER) .addBreakAbility(new ToolAbility.HammerAbility(2)) .addBreakAbility(new ToolAbility.RecursionAbility(4)) @@ -5010,7 +5023,7 @@ public class ModItems { .addHitAbility(new WeaponAbility.BeheaderAbility()) .setDepthRockBreaker().setUnlocalizedName("chlorophyte_pickaxe").setTextureName(RefStrings.MODID + ":chlorophyte_pickaxe"); - ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); + ToolMaterial matMese = EnumHelper.addToolMaterial("HBM_MESE", 4, 0, 100F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); mese_pickaxe = new ItemToolAbility(35F, 0, matMese, EnumToolType.MINER) .addBreakAbility(new ToolAbility.HammerAbility(3)) .addBreakAbility(new ToolAbility.RecursionAbility(5)) @@ -7100,6 +7113,7 @@ public class ModItems { GameRegistry.registerItem(drax_mk2, drax_mk2.getUnlocalizedName()); GameRegistry.registerItem(drax_mk3, drax_mk3.getUnlocalizedName()); GameRegistry.registerItem(bismuth_pickaxe, bismuth_pickaxe.getUnlocalizedName()); + GameRegistry.registerItem(volcanic_pickaxe, volcanic_pickaxe.getUnlocalizedName()); GameRegistry.registerItem(chlorophyte_pickaxe, chlorophyte_pickaxe.getUnlocalizedName()); GameRegistry.registerItem(mese_pickaxe, mese_pickaxe.getUnlocalizedName()); GameRegistry.registerItem(matchstick, matchstick.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/block/ItemBlockColored.java b/src/main/java/com/hbm/items/block/ItemBlockColored.java index bc94c0bdc..b23a105a5 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockColored.java +++ b/src/main/java/com/hbm/items/block/ItemBlockColored.java @@ -3,7 +3,6 @@ package com.hbm.items.block; import com.hbm.blocks.generic.BlockConcreteColored; import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemDye; import net.minecraft.item.ItemStack; diff --git a/src/main/java/com/hbm/items/block/ItemBlockVolcano.java b/src/main/java/com/hbm/items/block/ItemBlockVolcano.java new file mode 100644 index 000000000..40e7ea8c5 --- /dev/null +++ b/src/main/java/com/hbm/items/block/ItemBlockVolcano.java @@ -0,0 +1,33 @@ +package com.hbm.items.block; + +import java.util.List; + +import com.hbm.blocks.bomb.BlockVolcano; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemBlockVolcano extends ItemBlock { + + public ItemBlockVolcano(Block block) { + super(block); + this.setMaxDamage(0); + this.setHasSubtypes(true); + } + + public int getMetadata(int meta) { + return meta; + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + int meta = stack.getItemDamage(); + + list.add(BlockVolcano.isGrowing(meta) ? (EnumChatFormatting.RED + "DOES GROW") : (EnumChatFormatting.DARK_GRAY + "DOES NOT GROW")); + list.add(BlockVolcano.isExtinguishing(meta) ? (EnumChatFormatting.RED + "DOES EXTINGUISH") : (EnumChatFormatting.DARK_GRAY + "DOES NOT EXTINGUISH")); + } +} diff --git a/src/main/java/com/hbm/items/weapon/ItemAmmo.java b/src/main/java/com/hbm/items/weapon/ItemAmmo.java index 258ba55db..3879b007b 100644 --- a/src/main/java/com/hbm/items/weapon/ItemAmmo.java +++ b/src/main/java/com/hbm/items/weapon/ItemAmmo.java @@ -108,7 +108,13 @@ public class ItemAmmo extends Item { public ItemAmmo(AmmoItemTrait... traits) { this.traits = traits; this.setCreativeTab(MainRegistry.weaponTab); - this.setTextureName(RefStrings.MODID + ":"+ this.getUnlocalizedName().substring(5)); + } + + @Override + public Item setUnlocalizedName(String unlocalizedName) { + super.setUnlocalizedName(unlocalizedName); + this.setTextureName(RefStrings.MODID + ":"+ unlocalizedName); + return this; } public ItemAmmo index(AmmoTrait... traits) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 626b5f148..75b5d0cb2 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -164,6 +164,8 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineBAT9000.class, new RenderBAT9000()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOrbus.class, new RenderOrbus()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRefinery.class, new RenderRefinery()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFractionTower.class, new RenderFractionTower()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySpacer.class, new RenderSpacer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePumpjack.class, new RenderPumpjack()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineTurbofan.class, new RenderTurbofan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePress.class, new RenderPress()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 0e689ed8a..114c83f8e 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -805,7 +805,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_quad_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_quad_green, 'C', "dyeGreen" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.deco_pipe_framed_marked, 8), new Object[] { "PPP", "PCP", "PPP", 'P', ModBlocks.deco_pipe_framed_green, 'C', "dyeGreen" })); - GameRegistry.addRecipe(new ItemStack(ModBlocks.anvil_murky, 1), new Object[] { "PPP", "PCP", "PPP", 'P', ModItems.undefined, 'C', ModBlocks.anvil_steel }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', "slimeball", 'P', Items.paper })); + GameRegistry.addRecipe(new ItemStack(Items.name_tag), new Object[] { "SB ", "BPB", " BP", 'S', Items.string, 'B', ModItems.oil_tar, 'P', Items.paper }); if(GeneralConfig.enableBabyMode) { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); @@ -963,6 +964,7 @@ public class CraftingManager { GameRegistry.addSmelting(ModItems.powder_coal, new ItemStack(ModItems.coke), 1.0F); GameRegistry.addSmelting(ModItems.briquette_lignite, new ItemStack(ModItems.coke), 1.0F); + GameRegistry.addSmelting(ModItems.oil_tar, new ItemStack(ModItems.powder_coal), 1.0F); GameRegistry.addSmelting(ModItems.combine_scrap, new ItemStack(ModItems.ingot_combine_steel), 1.0F); GameRegistry.addSmelting(ModItems.tank_waste, new ItemStack(ModItems.tank_waste), 0.0F); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index a3fed21ab..30087cb0c 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -64,6 +64,8 @@ public class ResourceManager { //Refinery public static final IModelCustom refinery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/refinery.obj")); + public static final IModelCustom fraction_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_tower.obj")); + public static final IModelCustom fraction_spacer = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/fraction_spacer.obj")); //Flare Stack public static final IModelCustom oilflare = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/oilFlare.obj")); @@ -323,6 +325,7 @@ public class ResourceManager { //Refinery public static final ResourceLocation refinery_tex = new ResourceLocation(RefStrings.MODID, "textures/models/refinery.png"); + public static final ResourceLocation fraction_tower_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fraction_tower.png"); //Flare Stack public static final ResourceLocation oilflare_tex = new ResourceLocation(RefStrings.MODID, "textures/models/oilFlareTexture.png"); diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderShrapnel.java b/src/main/java/com/hbm/render/entity/projectile/RenderShrapnel.java index 080565365..8bc74b359 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderShrapnel.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderShrapnel.java @@ -2,6 +2,7 @@ package com.hbm.render.entity.projectile; import org.lwjgl.opengl.GL11; +import com.hbm.entity.projectile.EntityShrapnel; import com.hbm.lib.RefStrings; import com.hbm.render.model.ModelShrapnel; @@ -27,10 +28,11 @@ public class RenderShrapnel extends Render { bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/shrapnel.png")); - boolean scale = rocket.getDataWatcher().getWatchableObjectByte(16) == 2; - - if(scale) - GL11.glScaled(3, 3, 3); + if(rocket instanceof EntityShrapnel) { + if(rocket.getDataWatcher().getWatchableObjectByte(16) == 2) { //scale up lava blobs + GL11.glScaled(3, 3, 3); + } + } mine.renderAll(0.0625F); GL11.glPopMatrix(); diff --git a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java index c7224887b..e6a1244dd 100644 --- a/src/main/java/com/hbm/render/item/ItemRenderLibrary.java +++ b/src/main/java/com/hbm/render/item/ItemRenderLibrary.java @@ -1042,6 +1042,16 @@ public class ItemRenderLibrary { bindTexture(ResourceManager.watz_tex); ResourceManager.watz.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); }}); + + renderers.put(Item.getItemFromBlock(ModBlocks.machine_fraction_tower), new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -2.5, 0); + GL11.glScaled(3.25, 3.25, 3.25); + } + public void renderCommon() { + GL11.glScaled(1, 1, 1); + bindTexture(ResourceManager.fraction_tower_tex); ResourceManager.fraction_tower.renderAll(); + }}); } private static void bindTexture(ResourceLocation res) { diff --git a/src/main/java/com/hbm/render/tileentity/RenderFractionTower.java b/src/main/java/com/hbm/render/tileentity/RenderFractionTower.java new file mode 100644 index 000000000..052270983 --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderFractionTower.java @@ -0,0 +1,25 @@ +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 RenderFractionTower extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float inter) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + bindTexture(ResourceManager.fraction_tower_tex); + ResourceManager.fraction_tower.renderAll(); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderSpacer.java b/src/main/java/com/hbm/render/tileentity/RenderSpacer.java new file mode 100644 index 000000000..a5b3a932a --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderSpacer.java @@ -0,0 +1,25 @@ +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 RenderSpacer extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float inter) { + + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + + bindTexture(ResourceManager.universal); + ResourceManager.fraction_spacer.renderAll(); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java index 3563a2ff9..284706ca9 100644 --- a/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java +++ b/src/main/java/com/hbm/tileentity/turret/TileEntityTurretHowardDamaged.java @@ -66,10 +66,10 @@ public class TileEntityTurretHowardDamaged extends TileEntityTurretHoward { if(this.tPos != null) { - this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.howard_fire", 4.0F, 0.9F + worldObj.rand.nextFloat() * 0.3F); - if(timer % 4 == 0) { + this.worldObj.playSoundEffect(xCoord, yCoord, zCoord, "hbm:turret.howard_fire", 4.0F, 0.7F + worldObj.rand.nextFloat() * 0.3F); + if(worldObj.rand.nextInt(100) + 1 <= WeaponConfig.ciwsHitrate * 0.5) EntityDamageUtil.attackEntityFromIgnoreIFrame(this.target, ModDamageSource.shrapnel, 2F + worldObj.rand.nextInt(2)); diff --git a/src/main/resources/assets/hbm/models/machines/fraction_spacer.obj b/src/main/resources/assets/hbm/models/machines/fraction_spacer.obj new file mode 100644 index 000000000..28cea0bb1 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/fraction_spacer.obj @@ -0,0 +1,546 @@ +# Blender v2.79 (sub 0) OBJ File: 'fraction_spacer.blend' +# www.blender.org +o Plane +v -1.500000 1.000000 0.625000 +v -1.500000 1.000000 -0.625000 +v -1.500000 0.875000 -0.625000 +v -1.500000 0.875000 0.625000 +v 1.375000 0.125000 -0.562500 +v 1.375000 0.125000 0.562500 +v 1.500000 0.125000 0.625000 +v 1.500000 0.125000 -0.625000 +v 0.562500 0.125000 -1.375000 +v -0.562500 0.125000 -1.375000 +v -0.562500 0.875000 -1.375000 +v 0.562500 0.875000 -1.375000 +v -0.562500 0.125000 1.375000 +v 0.562500 0.125000 1.375000 +v 0.562500 0.875000 1.375000 +v -0.562500 0.875000 1.375000 +v 1.375000 0.875000 -0.562500 +v 1.375000 0.875000 0.562500 +v -1.375000 0.125000 -0.562500 +v -1.375000 0.125000 0.562500 +v -1.375000 0.875000 0.562500 +v -1.375000 0.875000 -0.562500 +v -1.500000 0.125000 -0.625000 +v -1.500000 0.125000 0.625000 +v 0.625000 0.125000 -1.500000 +v -0.625000 0.125000 -1.500000 +v -0.625000 0.125000 1.500000 +v 0.625000 0.125000 1.500000 +v 1.500000 -0.000000 0.625000 +v 1.500000 0.000000 -0.625000 +v -0.625000 -0.000000 1.500000 +v 0.625000 -0.000000 1.500000 +v 0.625000 0.000000 -1.500000 +v -1.500000 0.000000 -0.625000 +v -1.500000 -0.000000 0.625000 +v -0.625000 0.000000 -1.500000 +v 0.625000 1.000000 -1.500000 +v 1.500000 1.000000 -0.625000 +v 1.500000 0.875000 -0.625000 +v 0.625000 0.875000 -1.500000 +v -0.625000 1.000000 1.500000 +v -0.625000 0.875000 1.500000 +v -0.625000 1.000000 -1.500000 +v -0.625000 0.875000 -1.500000 +v 1.500000 1.000000 0.625000 +v 1.500000 0.875000 0.625000 +v 0.625000 1.000000 1.500000 +v 0.625000 0.875000 1.500000 +v -0.836250 0.000000 2.000000 +v 0.836250 0.000000 2.000000 +v -0.836250 0.000000 -2.000000 +v 0.836250 0.000000 -2.000000 +v 2.000000 -0.000000 0.836250 +v 2.000000 -0.000000 -0.836250 +v -2.000000 0.000000 0.836250 +v -2.000000 0.000000 -0.836250 +v -1.875000 0.000000 0.781250 +v 1.875000 0.000000 0.781250 +v -1.875000 0.000000 -0.781250 +v 1.875000 0.000000 -0.781250 +v 0.781250 -0.000000 1.875000 +v 0.781250 -0.000000 -1.875000 +v -0.781250 0.000000 1.875000 +v -0.781250 0.000000 -1.875000 +v -2.000000 1.000000 -0.836250 +v -2.000000 1.000000 0.836250 +v -0.836250 1.000000 2.000000 +v 0.836250 1.000000 2.000000 +v 2.000000 1.000000 0.836250 +v 2.000000 1.000000 -0.836250 +v 0.836250 1.000000 -2.000000 +v -0.836250 1.000000 -2.000000 +v -1.875000 1.000000 -0.781250 +v -1.875000 1.000000 0.781250 +v 0.781250 1.000000 -1.875000 +v -0.781250 1.000000 -1.875000 +v 1.875000 1.000000 0.781250 +v 1.875000 1.000000 -0.781250 +v -0.781250 1.000000 1.875000 +v 0.781250 1.000000 1.875000 +v -1.375000 0.750000 0.562500 +v -1.375000 0.750000 -0.562500 +v 0.562500 0.750000 1.375000 +v -0.562500 0.750000 1.375000 +v -0.562500 0.750000 -1.375000 +v 0.562500 0.750000 -1.375000 +v 1.375000 0.750000 0.562500 +v 1.375000 0.750000 -0.562500 +v -1.875000 0.750000 -0.781250 +v -1.875000 0.750000 0.781250 +v 0.781250 0.750000 -1.875000 +v -0.781250 0.750000 -1.875000 +v 1.875000 0.750000 0.781250 +v 1.875000 0.750000 -0.781250 +v -0.781250 0.750000 1.875000 +v 0.781250 0.750000 1.875000 +v -1.375000 0.250000 0.562500 +v -1.375000 0.250000 -0.562500 +v 0.562500 0.250000 1.375000 +v -0.562500 0.250000 1.375000 +v -0.562500 0.250000 -1.375000 +v 0.562500 0.250000 -1.375000 +v 1.375000 0.250000 0.562500 +v 1.375000 0.250000 -0.562500 +v -1.875000 0.250000 -0.781250 +v -1.875000 0.250000 0.781250 +v 0.781250 0.250000 -1.875000 +v -0.781250 0.250000 -1.875000 +v 1.875000 0.250000 0.781250 +v 1.875000 0.250000 -0.781250 +v -0.781250 0.250000 1.875000 +v 0.781250 0.250000 1.875000 +vt 0.989583 0.814815 +vt 0.979167 0.708995 +vt 0.989583 0.708995 +vt 0.343750 0.809524 +vt 0.333333 0.708995 +vt 0.343750 0.714286 +vt 0.312500 0.841270 +vt 0.250000 0.746032 +vt 0.312500 0.746032 +vt 0.979167 0.798942 +vt 0.916667 0.703704 +vt 0.979167 0.703704 +vt 0.708333 0.603175 +vt 0.770833 0.507936 +vt 0.770833 0.603175 +vt 0.645833 0.507936 +vt 0.708333 0.603175 +vt 0.645833 0.603175 +vt 0.916667 0.867725 +vt 0.916667 0.798942 +vt 0.250000 0.677249 +vt 0.312500 0.677249 +vt 0.312500 0.910053 +vt 0.250000 0.841270 +vt 0.916667 0.634921 +vt 0.979167 0.634921 +vt 0.572917 0.714286 +vt 0.583333 0.814815 +vt 0.572917 0.809524 +vt 0.411458 0.645503 +vt 0.510417 0.634921 +vt 0.505208 0.645503 +vt 0.505208 0.878307 +vt 0.406250 0.888889 +vt 0.411458 0.878307 +vt 0.510417 0.888889 +vt 0.406250 0.634921 +vt 0.802083 0.613757 +vt 0.791667 0.507936 +vt 0.802083 0.507936 +vt 0.979167 0.328042 +vt 0.989583 0.433862 +vt 0.979167 0.433862 +vt 0.979167 0.000000 +vt 0.989583 0.074074 +vt 0.979167 0.074074 +vt 0.791667 0.613757 +vt 0.781250 0.507936 +vt 0.791667 0.507936 +vt 0.979167 0.253968 +vt 0.989583 0.328042 +vt 0.989583 0.179894 +vt 0.979167 0.179894 +vt 0.989583 0.253968 +vt 0.979167 0.253968 +vt 0.989583 0.507936 +vt 0.979167 0.507936 +vt 0.718750 0.253968 +vt 0.895833 0.328042 +vt 0.822917 0.507936 +vt 0.312500 0.677249 +vt 0.322917 0.751323 +vt 0.312500 0.751323 +vt 0.979167 0.634921 +vt 0.989583 0.634921 +vt 0.322917 0.857143 +vt 0.312500 0.857143 +vt 1.000000 0.105820 +vt 0.989583 0.000000 +vt 1.000000 0.000000 +vt 0.312500 0.931217 +vt 0.989583 0.179894 +vt 1.000000 0.179894 +vt 0.781250 0.613757 +vt 0.770833 0.507936 +vt 0.781250 0.507936 +vt 0.822917 0.253968 +vt 0.723958 0.243386 +vt 0.817708 0.243386 +vt 0.645833 0.179894 +vt 0.656250 0.174603 +vt 0.656250 0.079365 +vt 0.645833 0.074074 +vt 0.723958 0.010582 +vt 0.718750 0.000000 +vt 0.817708 0.010582 +vt 0.895833 0.074074 +vt 0.885417 0.079365 +vt 0.885417 0.174603 +vt 0.895833 0.179894 +vt 0.833333 0.814815 +vt 0.656250 0.888889 +vt 0.583333 0.708995 +vt 0.236354 0.338624 +vt 0.101562 0.349206 +vt 0.096979 0.338624 +vt 0.010417 0.441799 +vt 0.000000 0.437143 +vt 0.010417 0.574074 +vt 0.000000 0.578730 +vt 0.096979 0.677249 +vt 0.231771 0.666667 +vt 0.236354 0.677249 +vt 0.322917 0.574074 +vt 0.333333 0.578730 +vt 0.322917 0.441799 +vt 0.333333 0.437143 +vt 0.101562 0.328042 +vt 0.236354 0.338624 +vt 0.096979 0.338624 +vt 0.000000 0.240106 +vt 0.010417 0.103175 +vt 0.000000 0.098519 +vt 0.101562 0.010582 +vt 0.231771 0.010582 +vt 0.096979 0.000000 +vt 0.236354 0.000000 +vt 0.322917 0.103175 +vt 0.333333 0.098519 +vt 0.322917 0.235450 +vt 0.333333 0.240106 +vt 0.231771 0.328042 +vt 0.979167 0.098519 +vt 0.895833 0.000000 +vt 0.979167 0.000000 +vt 0.979167 0.240106 +vt 0.895833 0.098519 +vt 0.000000 0.902116 +vt 0.083333 0.994709 +vt 0.000000 0.994709 +vt 0.979167 0.612487 +vt 0.895833 0.480212 +vt 0.979167 0.480212 +vt 0.083333 0.677249 +vt 0.166667 0.818836 +vt 0.083333 0.818836 +vt 0.000000 0.769841 +vt 0.083333 0.902116 +vt 0.979167 0.480212 +vt 0.895833 0.338624 +vt 0.979167 0.338624 +vt 1.000000 1.000000 +vt 0.916667 0.867725 +vt 1.000000 0.867725 +vt 0.250000 0.917354 +vt 0.166667 0.775767 +vt 0.250000 0.775767 +vt 0.916667 0.859788 +vt 0.833333 0.727513 +vt 0.916667 0.727513 +vt 0.979167 0.240106 +vt 0.895833 0.240106 +vt 0.833333 0.634921 +vt 0.916667 0.634921 +vt 0.166667 0.677249 +vt 0.250000 0.677249 +vt 0.916667 0.952381 +vt 0.833333 0.859788 +vt 0.166667 0.917354 +vt 0.083333 0.917354 +vt 0.000000 0.677249 +vt 0.083333 0.769841 +vt 0.604167 0.523810 +vt 0.554688 0.634921 +vt 0.536458 0.592593 +vt 0.424479 0.634921 +vt 0.442708 0.592593 +vt 0.333333 0.542328 +vt 0.375000 0.523810 +vt 0.333333 0.410053 +vt 0.375000 0.428571 +vt 0.442708 0.359788 +vt 0.554688 0.317460 +vt 0.536458 0.359788 +vt 0.604167 0.428571 +vt 0.645833 0.410053 +vt 0.645833 0.542328 +vt 0.442708 0.275132 +vt 0.333333 0.224868 +vt 0.375000 0.206349 +vt 0.333333 0.092593 +vt 0.375000 0.111111 +vt 0.424479 0.000000 +vt 0.442708 0.042328 +vt 0.554688 0.000000 +vt 0.536458 0.042328 +vt 0.604167 0.111111 +vt 0.645833 0.224868 +vt 0.604167 0.206349 +vt 0.536458 0.275132 +vt 0.554688 0.317460 +vt 0.424479 0.317460 +vt 0.979167 0.814815 +vt 0.333333 0.814815 +vt 0.708333 0.507936 +vt 0.708333 0.507936 +vt 0.979167 0.867725 +vt 0.250000 0.910053 +vt 0.583333 0.708995 +vt 0.791667 0.613757 +vt 0.989583 0.000000 +vt 0.781250 0.613757 +vt 0.989583 0.253968 +vt 0.718750 0.507936 +vt 0.645833 0.433862 +vt 0.645833 0.328042 +vt 0.822917 0.253968 +vt 0.895833 0.433862 +vt 0.322917 0.677249 +vt 0.989583 0.105820 +vt 0.322917 0.931217 +vt 0.770833 0.613757 +vt 0.718750 0.253968 +vt 0.822917 0.000000 +vt 0.656250 0.634921 +vt 0.760417 0.634921 +vt 0.833333 0.708995 +vt 0.760417 0.888889 +vt 0.583333 0.814815 +vt 0.231771 0.349206 +vt 0.101562 0.666667 +vt 0.010417 0.235450 +vt 0.895833 0.240106 +vt 0.895833 0.612487 +vt 0.166667 0.677249 +vt 0.895833 0.480212 +vt 0.916667 1.000000 +vt 0.166667 0.917354 +vt 0.833333 0.952381 +vt 0.083333 0.677249 +vt 0.424479 0.317460 +vt 0.645833 0.092593 +vn -1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 -0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 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 -1.0000 -0.0000 +s off +f 2/1/1 4/2/1 1/3/1 +f 6/4/2 8/5/2 5/6/2 +f 10/7/3 12/8/3 9/9/3 +f 14/10/4 16/11/4 13/12/4 +f 6/13/5 17/14/5 18/15/5 +f 20/16/1 22/17/1 19/18/1 +f 14/10/6 18/19/6 15/20/6 +f 9/9/7 17/21/7 5/22/7 +f 19/23/8 11/24/8 10/7/8 +f 13/12/9 21/25/9 20/26/9 +f 19/27/2 24/28/2 20/29/2 +f 9/30/2 26/31/2 10/32/2 +f 13/33/2 28/34/2 14/35/2 +f 20/29/2 27/36/2 13/33/2 +f 28/34/2 6/4/2 14/35/2 +f 5/6/2 25/37/2 9/30/2 +f 26/31/2 19/27/2 10/32/2 +f 7/38/5 30/39/5 8/40/5 +f 27/41/4 32/42/4 28/43/4 +f 8/44/7 33/45/7 25/46/7 +f 23/47/1 35/48/1 24/49/1 +f 24/50/9 31/51/9 27/41/9 +f 25/46/3 36/52/3 26/53/3 +f 26/53/8 34/54/8 23/55/8 +f 28/43/6 29/56/6 7/57/6 +f 35/58/10 36/59/10 30/60/10 +f 38/61/7 40/62/7 37/63/7 +f 1/3/9 42/64/9 41/65/9 +f 37/63/3 44/66/3 43/67/3 +f 45/68/5 39/69/5 38/70/5 +f 44/66/8 2/71/8 43/67/8 +f 48/72/6 45/68/6 47/73/6 +f 41/74/4 48/75/4 47/76/4 +f 39/77/10 18/78/10 17/79/10 +f 18/78/10 48/80/10 15/81/10 +f 48/80/10 16/82/10 15/81/10 +f 42/83/10 21/84/10 16/82/10 +f 4/85/10 22/86/10 21/84/10 +f 22/86/10 44/87/10 11/88/10 +f 44/87/10 12/89/10 11/88/10 +f 40/90/10 17/79/10 12/89/10 +f 43/91/2 1/92/2 47/93/2 +f 56/94/10 57/95/10 55/96/10 +f 55/96/10 63/97/10 49/98/10 +f 49/98/10 61/99/10 50/100/10 +f 61/99/10 53/101/10 50/100/10 +f 53/101/10 60/102/10 54/103/10 +f 54/103/10 62/104/10 52/105/10 +f 52/105/10 64/106/10 51/107/10 +f 64/106/10 56/94/10 51/107/10 +f 74/108/2 65/109/2 66/110/2 +f 67/111/2 74/108/2 66/110/2 +f 80/112/2 67/111/2 68/113/2 +f 68/113/2 77/114/2 80/112/2 +f 78/115/2 69/116/2 70/117/2 +f 75/118/2 70/117/2 71/119/2 +f 76/120/2 71/119/2 72/121/2 +f 72/121/2 73/122/2 76/120/2 +f 56/123/8 72/124/8 51/125/8 +f 55/126/1 65/127/1 56/123/1 +f 64/128/6 73/129/6 59/130/6 +f 59/131/5 74/132/5 57/133/5 +f 50/134/4 67/135/4 49/136/4 +f 62/137/4 76/138/4 64/128/4 +f 54/139/5 69/140/5 53/141/5 +f 58/142/1 78/143/1 60/144/1 +f 51/145/3 71/146/3 52/147/3 +f 63/148/3 80/149/3 61/150/3 +f 50/151/6 69/140/6 68/152/6 +f 61/150/8 77/153/8 58/154/8 +f 52/147/7 70/155/7 54/156/7 +f 57/157/7 79/158/7 63/148/7 +f 49/136/9 66/159/9 55/160/9 +f 60/161/9 75/162/9 62/137/9 +f 85/163/2 89/164/2 82/165/2 +f 82/165/2 90/166/2 81/167/2 +f 81/167/2 95/168/2 84/169/2 +f 84/169/2 96/170/2 83/171/2 +f 96/170/2 87/172/2 83/171/2 +f 87/172/2 94/173/2 88/174/2 +f 86/175/2 94/173/2 91/176/2 +f 86/175/2 92/177/2 85/163/2 +f 101/178/2 105/179/2 98/180/2 +f 98/180/2 106/181/2 97/182/2 +f 97/182/2 111/183/2 100/184/2 +f 100/184/2 112/185/2 99/186/2 +f 112/185/2 103/187/2 99/186/2 +f 103/187/2 110/188/2 104/189/2 +f 102/190/2 110/188/2 107/191/2 +f 102/190/2 108/192/2 101/178/2 +f 2/1/1 3/193/1 4/2/1 +f 6/4/2 7/194/2 8/5/2 +f 10/7/3 11/24/3 12/8/3 +f 14/10/4 15/20/4 16/11/4 +f 6/13/5 5/195/5 17/14/5 +f 20/16/1 21/196/1 22/17/1 +f 14/10/6 6/197/6 18/19/6 +f 9/9/7 12/8/7 17/21/7 +f 19/23/8 22/198/8 11/24/8 +f 13/12/9 16/11/9 21/25/9 +f 19/27/2 23/199/2 24/28/2 +f 9/30/2 25/37/2 26/31/2 +f 13/33/2 27/36/2 28/34/2 +f 20/29/2 24/28/2 27/36/2 +f 28/34/2 7/194/2 6/4/2 +f 5/6/2 8/5/2 25/37/2 +f 26/31/2 23/199/2 19/27/2 +f 7/38/5 29/200/5 30/39/5 +f 27/41/4 31/51/4 32/42/4 +f 8/44/7 30/201/7 33/45/7 +f 23/47/1 34/202/1 35/48/1 +f 24/50/9 35/203/9 31/51/9 +f 25/46/3 33/45/3 36/52/3 +f 26/53/8 36/52/8 34/54/8 +f 28/43/6 32/42/6 29/56/6 +f 30/60/10 29/204/10 32/205/10 +f 32/205/10 31/206/10 35/58/10 +f 35/58/10 34/207/10 36/59/10 +f 36/59/10 33/208/10 30/60/10 +f 30/60/10 32/205/10 35/58/10 +f 38/61/7 39/209/7 40/62/7 +f 1/3/9 4/2/9 42/64/9 +f 37/63/3 40/62/3 44/66/3 +f 45/68/5 46/210/5 39/69/5 +f 44/66/8 3/211/8 2/71/8 +f 48/72/6 46/210/6 45/68/6 +f 41/74/4 42/212/4 48/75/4 +f 39/77/10 46/213/10 18/78/10 +f 18/78/10 46/213/10 48/80/10 +f 48/80/10 42/83/10 16/82/10 +f 42/83/10 4/85/10 21/84/10 +f 4/85/10 3/214/10 22/86/10 +f 22/86/10 3/214/10 44/87/10 +f 44/87/10 40/90/10 12/89/10 +f 40/90/10 39/77/10 17/79/10 +f 47/93/2 45/215/2 38/216/2 +f 38/216/2 37/217/2 47/93/2 +f 37/217/2 43/91/2 47/93/2 +f 43/91/2 2/218/2 1/92/2 +f 1/92/2 41/219/2 47/93/2 +f 56/94/10 59/220/10 57/95/10 +f 55/96/10 57/95/10 63/97/10 +f 49/98/10 63/97/10 61/99/10 +f 61/99/10 58/221/10 53/101/10 +f 53/101/10 58/221/10 60/102/10 +f 54/103/10 60/102/10 62/104/10 +f 52/105/10 62/104/10 64/106/10 +f 64/106/10 59/220/10 56/94/10 +f 74/108/2 73/122/2 65/109/2 +f 67/111/2 79/222/2 74/108/2 +f 80/112/2 79/222/2 67/111/2 +f 68/113/2 69/116/2 77/114/2 +f 78/115/2 77/114/2 69/116/2 +f 75/118/2 78/115/2 70/117/2 +f 76/120/2 75/118/2 71/119/2 +f 72/121/2 65/109/2 73/122/2 +f 56/123/8 65/127/8 72/124/8 +f 55/126/1 66/223/1 65/127/1 +f 64/128/6 76/138/6 73/129/6 +f 59/131/5 73/224/5 74/132/5 +f 50/134/4 68/225/4 67/135/4 +f 62/137/4 75/162/4 76/138/4 +f 54/139/5 70/226/5 69/140/5 +f 58/142/1 77/227/1 78/143/1 +f 51/145/3 72/228/3 71/146/3 +f 63/148/3 79/158/3 80/149/3 +f 50/151/6 53/141/6 69/140/6 +f 61/150/8 80/149/8 77/153/8 +f 52/147/7 71/146/7 70/155/7 +f 57/157/7 74/229/7 79/158/7 +f 49/136/9 67/135/9 66/159/9 +f 60/161/9 78/230/9 75/162/9 +f 85/163/2 92/177/2 89/164/2 +f 82/165/2 89/164/2 90/166/2 +f 81/167/2 90/166/2 95/168/2 +f 84/169/2 95/168/2 96/170/2 +f 96/170/2 93/231/2 87/172/2 +f 87/172/2 93/231/2 94/173/2 +f 86/175/2 88/174/2 94/173/2 +f 86/175/2 91/176/2 92/177/2 +f 101/178/2 108/192/2 105/179/2 +f 98/180/2 105/179/2 106/181/2 +f 97/182/2 106/181/2 111/183/2 +f 100/184/2 111/183/2 112/185/2 +f 112/185/2 109/232/2 103/187/2 +f 103/187/2 109/232/2 110/188/2 +f 102/190/2 104/189/2 110/188/2 +f 102/190/2 107/191/2 108/192/2 diff --git a/src/main/resources/assets/hbm/models/machines/fraction_tower.obj b/src/main/resources/assets/hbm/models/machines/fraction_tower.obj index cf93f647e..31a562597 100644 --- a/src/main/resources/assets/hbm/models/machines/fraction_tower.obj +++ b/src/main/resources/assets/hbm/models/machines/fraction_tower.obj @@ -1,156 +1,358 @@ # Blender v2.79 (sub 0) OBJ File: 'fraction_tower.blend' # www.blender.org o Plane -v -1.375000 0.125000 0.562500 -v 1.375000 0.125000 0.562500 -v -1.375000 0.125000 -0.562500 -v 1.375000 0.125000 -0.562500 -v 0.562500 0.125000 1.375000 -v 0.562500 0.125000 -1.375000 -v -0.562500 0.125000 1.375000 -v -0.562500 0.125000 -1.375000 -v -1.375000 2.875000 0.562500 -v 1.375000 2.875000 0.562500 -v -1.375000 2.875000 -0.562500 -v 1.375000 2.875000 -0.562500 -v 0.562500 2.875000 1.375000 -v 0.562500 2.875000 -1.375000 -v -0.562500 2.875000 1.375000 -v -0.562500 2.875000 -1.375000 -v 1.500000 0.125000 0.625000 -v 1.500000 0.125000 -0.625000 -v -1.500000 0.125000 0.625000 -v -1.500000 0.125000 -0.625000 -v 0.625000 0.125000 -1.500000 -v -0.625000 0.125000 -1.500000 -v 0.625000 0.125000 1.500000 -v -0.625000 0.125000 1.500000 -v 1.500000 0.000000 0.625000 -v 1.500000 0.000000 -0.625000 -v -1.500000 0.000000 0.625000 -v -1.500000 0.000000 -0.625000 -v 0.625000 0.000000 -1.500000 -v -0.625000 0.000000 -1.500000 -v 0.625000 0.000000 1.500000 -v -0.625000 0.000000 1.500000 -v 1.500000 3.000000 0.625000 -v 1.500000 3.000000 -0.625000 v -1.500000 3.000000 0.625000 v -1.500000 3.000000 -0.625000 -v 0.625000 3.000000 -1.500000 -v -0.625000 3.000000 -1.500000 -v 0.625000 3.000000 1.500000 -v -0.625000 3.000000 1.500000 -v 1.500000 2.875000 0.625000 -v 1.500000 2.875000 -0.625000 -v -1.500000 2.875000 0.625000 v -1.500000 2.875000 -0.625000 +v -1.500000 2.875000 0.625000 +v 1.375000 0.125000 -0.562500 +v 1.375000 0.125000 0.562500 +v 1.500000 0.125000 0.625000 +v 1.500000 0.125000 -0.625000 +v 0.562500 0.125000 -1.375000 +v -0.562500 0.125000 -1.375000 +v -0.562500 2.875000 -1.375000 +v 0.562500 2.875000 -1.375000 +v -0.562500 0.125000 1.375000 +v 0.562500 0.125000 1.375000 +v 0.562500 2.875000 1.375000 +v -0.562500 2.875000 1.375000 +v 1.375000 2.875000 -0.562500 +v 1.375000 2.875000 0.562500 +v -1.375000 0.125000 -0.562500 +v -1.375000 0.125000 0.562500 +v -1.375000 2.875000 0.562500 +v -1.375000 2.875000 -0.562500 +v -1.500000 0.125000 -0.625000 +v -1.500000 0.125000 0.625000 +v 0.625000 0.125000 -1.500000 +v -0.625000 0.125000 -1.500000 +v -0.625000 0.125000 1.500000 +v 0.625000 0.125000 1.500000 +v 1.500000 -0.000000 0.625000 +v 1.500000 0.000000 -0.625000 +v -0.625000 -0.000000 1.500000 +v 0.625000 -0.000000 1.500000 +v 0.625000 0.000000 -1.500000 +v -1.500000 0.000000 -0.625000 +v -1.500000 -0.000000 0.625000 +v -0.625000 0.000000 -1.500000 +v 0.625000 3.000000 -1.500000 +v 1.500000 3.000000 -0.625000 +v 1.500000 2.875000 -0.625000 v 0.625000 2.875000 -1.500000 -v -0.625000 2.875000 -1.500000 -v 0.625000 2.875000 1.500000 +v -0.625000 3.000000 1.500000 v -0.625000 2.875000 1.500000 +v -0.625000 3.000000 -1.500000 +v -0.625000 2.875000 -1.500000 +v 1.500000 3.000000 0.625000 +v 1.500000 2.875000 0.625000 +v 0.625000 3.000000 1.500000 +v 0.625000 2.875000 1.500000 v -0.187500 0.312500 -1.375000 v -0.187500 0.687500 -1.375000 -v -0.187500 0.312500 -1.500000 v -0.187500 0.687500 -1.500000 -v 0.187500 0.312500 -1.375000 -v 0.187500 0.687500 -1.375000 -v 0.187500 0.312500 -1.500000 +v -0.187500 0.312500 -1.500000 v 0.187500 0.687500 -1.500000 +v 0.187500 0.312500 -1.500000 +v 0.187500 0.687500 -1.375000 +v 0.187500 0.312500 -1.375000 v 0.187500 0.312500 1.375000 v 0.187500 0.687500 1.375000 -v 0.187500 0.312500 1.500000 v 0.187500 0.687500 1.500000 -v -0.187500 0.312500 1.375000 -v -0.187500 0.687500 1.375000 -v -0.187500 0.312500 1.500000 +v 0.187500 0.312500 1.500000 v -0.187500 0.687500 1.500000 +v -0.187500 0.312500 1.500000 +v -0.187500 0.687500 1.375000 +v -0.187500 0.312500 1.375000 v -1.375000 0.312500 0.187500 v -1.375000 0.687500 0.187500 -v -1.500000 0.312500 0.187500 v -1.500000 0.687500 0.187500 -v -1.375000 0.312500 -0.187500 -v -1.375000 0.687500 -0.187500 -v -1.500000 0.312500 -0.187500 +v -1.500000 0.312500 0.187500 v -1.500000 0.687500 -0.187500 +v -1.500000 0.312500 -0.187500 +v -1.375000 0.687500 -0.187500 +v -1.375000 0.312500 -0.187500 v 1.375000 0.312500 -0.187500 v 1.375000 0.687500 -0.187500 -v 1.500000 0.312500 -0.187500 v 1.500000 0.687500 -0.187500 -v 1.375000 0.312500 0.187500 -v 1.375000 0.687500 0.187500 -v 1.500000 0.312500 0.187500 +v 1.500000 0.312500 -0.187500 v 1.500000 0.687500 0.187500 +v 1.500000 0.312500 0.187500 +v 1.375000 0.687500 0.187500 +v 1.375000 0.312500 0.187500 +vt 1.000000 0.480000 +vt 0.875000 0.500000 +vt 0.875000 0.480000 +vt 0.493750 0.960000 +vt 0.375000 0.980000 +vt 0.381250 0.960000 +vt 0.131250 0.960000 +vt 0.243750 0.520000 +vt 0.243750 0.960000 +vt 0.631250 0.960000 +vt 0.743750 0.520000 +vt 0.743750 0.960000 +vt 0.493750 0.520000 +vt 0.881250 0.960000 +vt 0.993750 0.520000 +vt 0.993750 0.960000 +vt 0.506250 0.960000 +vt 0.618750 0.520000 +vt 0.618750 0.960000 +vt 0.256250 0.960000 +vt 0.368750 0.520000 +vt 0.368750 0.960000 +vt 0.006250 0.960000 +vt 0.118750 0.520000 +vt 0.118750 0.960000 +vt 0.756250 0.960000 +vt 0.868750 0.520000 +vt 0.868750 0.960000 +vt 0.875000 0.980000 +vt 0.125000 0.980000 +vt 0.625000 0.980000 +vt 0.750000 0.980000 +vt 0.250000 0.980000 +vt 0.500000 0.980000 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.250000 1.000000 +vt 1.000000 0.980000 +vt 0.875000 1.000000 +vt 0.750000 1.000000 +vt 0.125000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.980000 +vt 0.500000 1.000000 +vt 0.550000 0.480000 +vt 0.337500 0.340000 +vt 0.425000 0.000000 +vt 0.375000 0.480000 +vt 0.250000 0.500000 +vt 0.250000 0.480000 +vt 0.750000 0.500000 +vt 0.750000 0.480000 +vt 0.125000 0.500000 +vt 0.125000 0.480000 +vt 0.500000 0.480000 +vt 0.375000 0.500000 +vt -0.000000 0.480000 +vt 0.625000 0.500000 +vt 0.625000 0.480000 +vt 0.381250 0.520000 +vt 0.506250 0.520000 +vt 0.631250 0.520000 +vt 0.756250 0.520000 +vt 0.881250 0.520000 +vt 0.006250 0.520000 +vt 0.131250 0.520000 +vt 0.256250 0.520000 +vt 0.337500 0.340000 +vt 0.125000 0.480000 +vt 0.037500 0.140000 +vt 0.700000 0.460000 +vt 0.687500 0.400000 +vt 0.700000 0.400000 +vt 0.687500 0.460000 +vt 0.650000 0.400000 +vt 0.650000 0.460000 +vt 0.637500 0.400000 +vt 0.700000 0.460000 +vt 0.687500 0.400000 +vt 0.700000 0.400000 +vt 0.687500 0.380000 +vt 0.650000 0.480000 +vt 0.687500 0.460000 +vt 0.650000 0.400000 +vt 0.650000 0.460000 +vt 0.637500 0.400000 +vt 0.687500 0.380000 +vt 0.650000 0.480000 +vt 0.700000 0.460000 +vt 0.687500 0.400000 +vt 0.700000 0.400000 +vt 0.687500 0.460000 +vt 0.650000 0.400000 +vt 0.650000 0.460000 +vt 0.637500 0.400000 +vt 0.700000 0.460000 +vt 0.687500 0.400000 +vt 0.700000 0.400000 +vt 0.687500 0.380000 +vt 0.650000 0.480000 +vt 0.687500 0.460000 +vt 0.650000 0.400000 +vt 0.650000 0.460000 +vt 0.637500 0.400000 +vt 0.687500 0.380000 +vt 0.650000 0.480000 +vt 1.000000 0.500000 +vt 1.000000 1.000000 +vt 0.550000 -0.000000 +vt 0.637500 0.140000 +vt 0.637500 0.340000 +vt 0.425000 0.480000 +vt 0.337500 0.140000 +vt 0.500000 0.500000 +vt -0.000000 0.500000 +vt 0.125000 -0.000000 +vt 0.250000 0.000000 +vt 0.337500 0.140000 +vt 0.250000 0.480000 +vt 0.037500 0.340000 +vt 0.637500 0.460000 +vt 0.650000 0.380000 +vt 0.687500 0.480000 +vt 0.637500 0.460000 +vt 0.650000 0.380000 +vt 0.687500 0.480000 +vt 0.637500 0.460000 +vt 0.650000 0.380000 +vt 0.687500 0.480000 +vt 0.637500 0.460000 +vt 0.650000 0.380000 +vt 0.687500 0.480000 vn -1.0000 0.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.0000 1.0000 vn 1.0000 0.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.7071 0.0000 0.7071 -vn 0.0000 -1.0000 0.0000 +vn -0.7071 -0.0000 0.7071 +vn 0.0000 -1.0000 -0.0000 s off -f 35//1 36//1 44//1 43//1 -f 4//2 2//2 17//2 18//2 -f 6//3 8//3 16//3 14//3 -f 7//4 5//4 13//4 15//4 -f 2//5 4//5 12//5 10//5 -f 3//1 1//1 9//1 11//1 -f 5//6 2//6 10//6 13//6 -f 4//7 6//7 14//7 12//7 -f 8//8 3//8 11//8 16//8 -f 1//9 7//9 15//9 9//9 -f 1//2 3//2 20//2 19//2 -f 8//2 6//2 21//2 22//2 -f 5//2 7//2 24//2 23//2 -f 7//2 1//2 19//2 24//2 -f 5//2 23//2 17//2 2//2 -f 6//2 4//2 18//2 21//2 -f 8//2 22//2 20//2 3//2 -f 18//5 17//5 25//5 26//5 -f 23//4 24//4 32//4 31//4 -f 21//7 18//7 26//7 29//7 -f 19//1 20//1 28//1 27//1 -f 24//9 19//9 27//9 32//9 -f 22//3 21//3 29//3 30//3 -f 20//8 22//8 30//8 28//8 -f 17//6 23//6 31//6 25//6 -f 25//10 31//10 32//10 27//10 28//10 30//10 29//10 26//10 -f 37//7 34//7 42//7 45//7 -f 40//9 35//9 43//9 48//9 -f 38//3 37//3 45//3 46//3 -f 34//5 33//5 41//5 42//5 -f 38//6 36//6 44//6 46//6 -f 39//8 33//8 41//8 47//8 -f 39//4 40//4 48//4 47//4 -f 12//10 42//10 41//10 10//10 -f 13//10 10//10 41//10 47//10 -f 13//10 47//10 48//10 15//10 -f 15//10 48//10 43//10 9//10 -f 9//10 43//10 44//10 11//10 -f 16//10 11//10 44//10 46//10 -f 16//10 46//10 45//10 14//10 -f 14//10 45//10 42//10 12//10 -f 33//2 34//2 37//2 38//2 36//2 35//2 40//2 39//2 -f 49//1 50//1 52//1 51//1 -f 51//3 52//3 56//3 55//3 -f 55//5 56//5 54//5 53//5 -f 57//5 58//5 60//5 59//5 -f 51//10 55//10 53//10 49//10 -f 56//2 52//2 50//2 54//2 -f 59//4 60//4 64//4 63//4 -f 63//1 64//1 62//1 61//1 -f 59//10 63//10 61//10 57//10 -f 64//2 60//2 58//2 62//2 -f 65//4 66//4 68//4 67//4 -f 67//1 68//1 72//1 71//1 -f 71//3 72//3 70//3 69//3 -f 73//3 74//3 76//3 75//3 -f 67//10 71//10 69//10 65//10 -f 72//2 68//2 66//2 70//2 -f 75//5 76//5 80//5 79//5 -f 79//4 80//4 78//4 77//4 -f 75//10 79//10 77//10 73//10 -f 80//2 76//2 74//2 78//2 +f 2/1/1 4/2/1 1/3/1 +f 6/4/2 8/5/2 5/6/2 +f 10/7/3 12/8/3 9/9/3 +f 14/10/4 16/11/4 13/12/4 +f 5/6/5 18/13/5 6/4/5 +f 20/14/1 22/15/1 19/16/1 +f 6/17/6 15/18/6 14/19/6 +f 9/20/7 17/21/7 5/22/7 +f 19/23/8 11/24/8 10/25/8 +f 13/26/9 21/27/9 20/28/9 +f 19/16/2 24/29/2 20/14/2 +f 9/9/2 26/30/2 10/7/2 +f 13/12/2 28/31/2 14/10/2 +f 20/28/2 27/32/2 13/26/2 +f 28/31/2 6/17/2 14/19/2 +f 5/22/2 25/33/2 9/20/2 +f 26/30/2 19/23/2 10/25/2 +f 7/34/5 30/35/5 8/5/5 +f 27/32/4 32/36/4 28/31/4 +f 8/5/7 33/37/7 25/33/7 +f 23/38/1 35/39/1 24/29/1 +f 24/29/9 31/40/9 27/32/9 +f 25/33/3 36/41/3 26/30/3 +f 26/30/8 34/42/8 23/43/8 +f 28/31/6 29/44/6 7/34/6 +f 35/45/10 36/46/10 30/47/10 +f 38/48/7 40/49/7 37/50/7 +f 1/3/9 42/51/9 41/52/9 +f 37/50/3 44/53/3 43/54/3 +f 45/55/5 39/56/5 38/48/5 +f 44/53/8 2/57/8 43/54/8 +f 48/58/6 45/55/6 47/59/6 +f 41/52/4 48/58/4 47/59/4 +f 39/56/10 18/13/10 17/60/10 +f 18/61/10 48/58/10 15/18/10 +f 48/58/10 16/11/10 15/62/10 +f 42/51/10 21/27/10 16/63/10 +f 4/2/10 22/15/10 21/64/10 +f 22/65/10 44/53/10 11/24/10 +f 44/53/10 12/8/10 11/66/10 +f 40/49/10 17/21/10 12/67/10 +f 43/68/2 1/69/2 47/70/2 +f 50/71/1 52/72/1 49/73/1 +f 51/74/3 54/75/3 52/72/3 +f 53/76/5 56/77/5 54/75/5 +f 58/78/5 60/79/5 57/80/5 +f 54/75/10 49/81/10 52/72/10 +f 51/74/2 55/82/2 53/76/2 +f 59/83/4 62/84/4 60/79/4 +f 61/85/1 64/86/1 62/84/1 +f 62/84/10 57/87/10 60/79/10 +f 59/83/2 63/88/2 61/85/2 +f 66/89/4 68/90/4 65/91/4 +f 67/92/1 70/93/1 68/90/1 +f 69/94/3 72/95/3 70/93/3 +f 74/96/3 76/97/3 73/98/3 +f 70/93/10 65/99/10 68/90/10 +f 67/92/2 71/100/2 69/94/2 +f 75/101/5 78/102/5 76/97/5 +f 77/103/4 80/104/4 78/102/4 +f 78/102/10 73/105/10 76/97/10 +f 75/101/2 79/106/2 77/103/2 +f 2/1/1 3/107/1 4/2/1 +f 6/4/2 7/34/2 8/5/2 +f 10/7/3 11/66/3 12/8/3 +f 14/10/4 15/62/4 16/11/4 +f 5/6/5 17/60/5 18/13/5 +f 20/14/1 21/64/1 22/15/1 +f 6/17/6 18/61/6 15/18/6 +f 9/20/7 12/67/7 17/21/7 +f 19/23/8 22/65/8 11/24/8 +f 13/26/9 16/63/9 21/27/9 +f 19/16/2 23/38/2 24/29/2 +f 9/9/2 25/33/2 26/30/2 +f 13/12/2 27/32/2 28/31/2 +f 20/28/2 24/29/2 27/32/2 +f 28/31/2 7/34/2 6/17/2 +f 5/22/2 8/5/2 25/33/2 +f 26/30/2 23/43/2 19/23/2 +f 7/34/5 29/44/5 30/35/5 +f 27/32/4 31/40/4 32/36/4 +f 8/5/7 30/35/7 33/37/7 +f 23/38/1 34/108/1 35/39/1 +f 24/29/9 35/39/9 31/40/9 +f 25/33/3 33/37/3 36/41/3 +f 26/30/8 36/41/8 34/42/8 +f 28/31/6 32/36/6 29/44/6 +f 30/47/10 29/109/10 32/110/10 +f 32/110/10 31/111/10 35/45/10 +f 35/45/10 34/112/10 36/46/10 +f 36/46/10 33/113/10 30/47/10 +f 30/47/10 32/110/10 35/45/10 +f 38/48/7 39/56/7 40/49/7 +f 1/3/9 4/2/9 42/51/9 +f 37/50/3 40/49/3 44/53/3 +f 45/55/5 46/114/5 39/56/5 +f 44/53/8 3/115/8 2/57/8 +f 48/58/6 46/114/6 45/55/6 +f 41/52/4 42/51/4 48/58/4 +f 39/56/10 46/114/10 18/13/10 +f 18/61/10 46/114/10 48/58/10 +f 48/58/10 42/51/10 16/11/10 +f 42/51/10 4/2/10 21/27/10 +f 4/2/10 3/107/10 22/15/10 +f 22/65/10 3/115/10 44/53/10 +f 44/53/10 40/49/10 12/8/10 +f 40/49/10 39/56/10 17/21/10 +f 47/70/2 45/116/2 38/117/2 +f 38/117/2 37/118/2 43/68/2 +f 43/68/2 2/119/2 1/69/2 +f 1/69/2 41/120/2 47/70/2 +f 47/70/2 38/117/2 43/68/2 +f 50/71/1 51/74/1 52/72/1 +f 51/74/3 53/76/3 54/75/3 +f 53/76/5 55/121/5 56/77/5 +f 58/78/5 59/83/5 60/79/5 +f 54/75/10 56/122/10 49/81/10 +f 51/74/2 50/123/2 55/82/2 +f 59/83/4 61/85/4 62/84/4 +f 61/85/1 63/124/1 64/86/1 +f 62/84/10 64/125/10 57/87/10 +f 59/83/2 58/126/2 63/88/2 +f 66/89/4 67/92/4 68/90/4 +f 67/92/1 69/94/1 70/93/1 +f 69/94/3 71/127/3 72/95/3 +f 74/96/3 75/101/3 76/97/3 +f 70/93/10 72/128/10 65/99/10 +f 67/92/2 66/129/2 71/100/2 +f 75/101/5 77/103/5 78/102/5 +f 77/103/4 79/130/4 80/104/4 +f 78/102/10 80/131/10 73/105/10 +f 75/101/2 74/132/2 79/106/2 diff --git a/src/main/resources/assets/hbm/textures/items/ammo_shell_apfsds-du.png b/src/main/resources/assets/hbm/textures/items/ammo_shell_apfsds_du.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/ammo_shell_apfsds-du.png rename to src/main/resources/assets/hbm/textures/items/ammo_shell_apfsds_du.png diff --git a/src/main/resources/assets/hbm/textures/items/ammo_shell_apfsds-t.png b/src/main/resources/assets/hbm/textures/items/ammo_shell_apfsds_t.png similarity index 100% rename from src/main/resources/assets/hbm/textures/items/ammo_shell_apfsds-t.png rename to src/main/resources/assets/hbm/textures/items/ammo_shell_apfsds_t.png diff --git a/src/main/resources/assets/hbm/textures/items/volcanic_pickaxe.png b/src/main/resources/assets/hbm/textures/items/volcanic_pickaxe.png new file mode 100644 index 000000000..b790abb5e Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/volcanic_pickaxe.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/fraction_tower.png b/src/main/resources/assets/hbm/textures/models/machines/fraction_tower.png index 2ca2c9046..ca04a4331 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/fraction_tower.png and b/src/main/resources/assets/hbm/textures/models/machines/fraction_tower.png differ