diff --git a/gradle.properties b/gradle.properties index cb2bad592..b1cb5ff4a 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=4501 +mod_build_number=4515 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models, porting),\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f53b9902d..a78ad8f45 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1021,6 +1021,8 @@ public class ModBlocks { public static Block drill_pipe; public static final int guiID_machine_drill = 45; public static Block machine_excavator; + + public static Block machine_autosaw; public static Block machine_mining_laser; public static Block barricade; // a sand bag that drops nothing, for automated walling purposes @@ -2234,6 +2236,7 @@ public class ModBlocks { 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 + ":block_steel"); machine_catalytic_cracker = new MachineCatalyticCracker(Material.iron).setBlockName("machine_catalytic_cracker").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + machine_autosaw = new MachineAutosaw().setBlockName("machine_autosaw").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_drill"); machine_excavator = new MachineExcavator().setBlockName("machine_excavator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); drill_pipe = new BlockNoDrop(Material.iron).setBlockName("drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":drill_pipe"); @@ -3281,6 +3284,7 @@ public class ModBlocks { GameRegistry.registerBlock(fraction_spacer, fraction_spacer.getUnlocalizedName()); GameRegistry.registerBlock(machine_catalytic_cracker, machine_catalytic_cracker.getUnlocalizedName()); GameRegistry.registerBlock(machine_drill, machine_drill.getUnlocalizedName()); + GameRegistry.registerBlock(machine_autosaw, machine_autosaw.getUnlocalizedName()); register(machine_excavator); register(machine_mining_laser); register(barricade); diff --git a/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java new file mode 100644 index 000000000..b2bce040f --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/MachineAutosaw.java @@ -0,0 +1,57 @@ +package com.hbm.blocks.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ILookOverlay; +import com.hbm.tileentity.machine.TileEntityMachineAutosaw; +import com.hbm.util.I18nUtil; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; + +public class MachineAutosaw extends BlockContainer implements ILookOverlay { + + public MachineAutosaw() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMachineAutosaw(); + } + + @Override + public int getRenderType() { + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + + TileEntity te = world.getTileEntity(x, y, z); + + if(!(te instanceof TileEntityMachineAutosaw)) + return; + + TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) te; + + List text = new ArrayList(); + text.add(I18nUtil.resolveKey("hbmfluid." + saw.tank.getTankType().getName().toLowerCase()) + ": " + saw.tank.getFill() + "/" + saw.tank.getMaxFill() + "mB"); + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } +} diff --git a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java index e9726ccb9..b748e3412 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineHephaestus.java @@ -1,15 +1,26 @@ package com.hbm.blocks.machine; +import java.util.ArrayList; +import java.util.List; + import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ILookOverlay; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.machine.TileEntityMachineHephaestus; +import com.hbm.util.I18nUtil; import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre; import net.minecraftforge.common.util.ForgeDirection; -public class MachineHephaestus extends BlockDummyable { +public class MachineHephaestus extends BlockDummyable implements ILookOverlay { public MachineHephaestus(Material mat) { super(mat); @@ -49,4 +60,59 @@ public class MachineHephaestus extends BlockDummyable { this.makeExtra(world, x, y + 11, z + 1); this.makeExtra(world, x, y + 11, z - 1); } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + + if(!world.isRemote && !player.isSneaking()) { + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof IItemFluidIdentifier) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachineHephaestus)) + return false; + + TileEntityMachineHephaestus heatex = (TileEntityMachineHephaestus) te; + FluidType type = ((IItemFluidIdentifier) player.getHeldItem().getItem()).getType(world, pos[0], pos[1], pos[2], player.getHeldItem()); + heatex.input.setTankType(type); + heatex.markDirty(); + + return true; + } + return false; + + } else { + return true; + } + } + + @Override + public void printHook(Pre event, World world, int x, int y, int z) { + int[] pos = this.findCore(world, x, y, z); + + if(pos == null) + return; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + + if(!(te instanceof TileEntityMachineHephaestus)) + return; + + TileEntityMachineHephaestus heatex = (TileEntityMachineHephaestus) te; + + List text = new ArrayList(); + text.add(String.format("%,d", heatex.bufferedHeat) + " TU"); + + for(int i = 0; i < heatex.getAllTanks().length; i++) { + FluidTank tank = heatex.getAllTanks()[i]; + text.add((i == 0 ? (EnumChatFormatting.GREEN + "-> ") : (EnumChatFormatting.RED + "<- ")) + EnumChatFormatting.RESET + I18nUtil.resolveKey("hbmfluid." + tank.getTankType().getName().toLowerCase()) + ": " + tank.getFill() + "/" + tank.getMaxFill() + "mB"); + } + + ILookOverlay.printGeneric(event, I18nUtil.resolveKey(getUnlocalizedName() + ".name"), 0xffff00, 0x404000, text); + } } diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 6e5023235..c35dedfb1 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -6,6 +6,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemRTGPelletDepleted.DepletedRTGMaterial; import com.hbm.items.special.ItemWasteLong; import com.hbm.items.special.ItemWasteShort; +import com.hbm.items.special.ItemByproduct.EnumByproduct; import com.hbm.main.CraftingManager; import static com.hbm.inventory.OreDictManager.*; @@ -442,6 +443,17 @@ public class MineralRecipes { CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.dust() }); CraftingManager.addShapelessAuto(new ItemStack(ModItems.ball_fireclay, 4), new Object[] { Items.clay_ball, Items.clay_ball, Items.clay_ball, AL.ore() }); + + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_IRON), new ItemStack(ModItems.powder_iron)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_COPPER), new ItemStack(ModItems.powder_copper)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_LITHIUM), new ItemStack(ModItems.powder_lithium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_SILICON), new ItemStack(ModItems.powder_quartz)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_LEAD), new ItemStack(ModItems.powder_lead)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_TITANIUM), new ItemStack(ModItems.powder_titanium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_ALUMINIUM), new ItemStack(ModItems.powder_aluminium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_SULFUR), new ItemStack(ModItems.sulfur)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_CALCIUM), new ItemStack(ModItems.powder_calcium)); + add9To1(DictFrame.fromOne(ModItems.ore_byproduct, EnumByproduct.B_BISMUTH), new ItemStack(ModItems.powder_bismuth)); } //Bundled 1/9 recipes diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 59bd1a1bf..e2b5116b9 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -102,6 +102,8 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.powder_ra226, new ItemStack(ModItems.ingot_ra226), 1.0F); GameRegistry.addSmelting(ModItems.powder_tantalium, new ItemStack(ModItems.ingot_tantalium), 1.0F); GameRegistry.addSmelting(ModItems.powder_niobium, new ItemStack(ModItems.ingot_niobium), 1.0F); + GameRegistry.addSmelting(ModItems.powder_bismuth, new ItemStack(ModItems.ingot_bismuth), 1.0F); + GameRegistry.addSmelting(ModItems.powder_calcium, new ItemStack(ModItems.ingot_calcium), 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/handler/EntityEffectHandler.java b/src/main/java/com/hbm/handler/EntityEffectHandler.java index f4f112e35..ffd94f992 100644 --- a/src/main/java/com/hbm/handler/EntityEffectHandler.java +++ b/src/main/java/com/hbm/handler/EntityEffectHandler.java @@ -517,6 +517,8 @@ public class EntityEffectHandler { forward = 1; player.addVelocity(lookingIn.xCoord * forward + strafeVec.xCoord * strafe, 0, lookingIn.zCoord * forward + strafeVec.zCoord * strafe); + player.motionY = 0; + player.fallDistance = 0F; player.playSound("hbm:player.dash", 1.0F, 1.0F); props.setDashCooldown(HbmPlayerProps.dashCooldownLength); diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index d54bfdcf8..862e807cb 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -152,8 +152,9 @@ public class OreDictManager { public static final DictFrame TCALLOY = new DictFrame("TcAlloy"); /** LEAD */ public static final DictFrame PB = new DictFrame("Lead"); - //public static final DictFrame BI = new DictFrame("Bismuth"); + public static final DictFrame BI = new DictFrame("Bismuth"); public static final DictFrame AS = new DictFrame("Arsenic"); + public static final DictFrame CA = new DictFrame("Calcium"); /** TANTALUM */ public static final DictFrame TA = new DictFrame("Tantalum"); public static final DictFrame COLTAN = new DictFrame("Coltan"); @@ -329,8 +330,9 @@ public class OreDictManager { STEEL .ingot(ingot_steel) .dustSmall(powder_steel_tiny) .dust(powder_steel) .plate(plate_steel) .block(block_steel); TCALLOY .ingot(ingot_tcalloy) .dust(powder_tcalloy); PB .nugget(nugget_lead) .ingot(ingot_lead) .dust(powder_lead) .plate(plate_lead) .block(block_lead) .ore(ore_lead, ore_meteor_lead); - //BI .nugget(nugget_bismuth) .ingot(ingot_bismuth); THAT'S WHAT YOU THOUGHT! + BI .nugget(nugget_bismuth) .ingot(ingot_bismuth) .dust(powder_bismuth); AS .nugget(nugget_arsenic) .ingot(ingot_arsenic); + CA .ingot(ingot_calcium) .dust(powder_calcium); TA .nugget(nugget_tantalium) .gem(gem_tantalium) .ingot(ingot_tantalium) .dust(powder_tantalium) .block(block_tantalium); COLTAN .ingot(fragment_coltan) .dust(powder_coltan_ore) .block(block_coltan) .ore(ore_coltan); NB .nugget(fragment_niobium) .ingot(ingot_niobium) .dustSmall(powder_niobium_tiny) .dust(powder_niobium) .block(block_niobium); diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 26a24cb54..a01669f76 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -917,6 +917,14 @@ public class AssemblerRecipes { new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(CU.plate(), 12) }, 150); + + makeRecipe(new ComparableStack(ModBlocks.machine_hephaestus, 1), new AStack[] { + new ComparableStack(ModItems.pipes_steel, 1), + new OreDictStack(STEEL.ingot(), 12), + new OreDictStack(CU.plate(), 24), + new OreDictStack(RUBBER.ingot(), 8), + new ComparableStack(ModBlocks.glass_quartz, 16) + }, 150); makeRecipe(new ComparableStack(ModBlocks.block_cap_nuka, 1), new AStack[] { new ComparableStack(ModItems.cap_nuka, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_quantum, 1), new AStack[] { new ComparableStack(ModItems.cap_quantum, 128) }, 10); 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 28785d125..abae555ab 100644 --- a/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/anvil/AnvilRecipes.java @@ -337,6 +337,14 @@ public class AnvilRecipes { new ComparableStack(ModItems.plate_polymer, 8) }, new AnvilOutput(new ItemStack(ModBlocks.machine_boiler))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( + new AStack[] { + new OreDictStack(STEEL.plate(), 12), + new OreDictStack(IRON.ingot(), 8), + new OreDictStack(CU.ingot(), 2), + new ComparableStack(ModItems.sawblade) + }, new AnvilOutput(new ItemStack(ModBlocks.machine_autosaw))).setTier(2)); + constructionRecipes.add(new AnvilConstructionRecipe( new AStack[] { new OreDictStack(STEEL.ingot(), 6), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index e421a1af5..452cae405 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -345,6 +345,9 @@ public class ModItems { public static Item ingot_fiberglass; public static Item ingot_asbestos; public static Item powder_asbestos; + public static Item ingot_calcium; + public static Item powder_calcium; + public static Item powder_bismuth; public static Item ingot_lanthanium; public static Item ingot_actinium; @@ -2845,6 +2848,9 @@ public class ModItems { nugget_mercury = new Item().setUnlocalizedName("nugget_mercury_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury_tiny"); ingot_mercury = new ItemCustomLore().setUnlocalizedName("nugget_mercury").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury"); bottle_mercury = new ItemCustomLore().setUnlocalizedName("bottle_mercury").setContainerItem(Items.glass_bottle).setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bottle_mercury"); + ingot_calcium = new Item().setUnlocalizedName("ingot_calcium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_calcium"); + powder_calcium = new Item().setUnlocalizedName("powder_calcium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_calcium"); + powder_bismuth = new Item().setUnlocalizedName("powder_bismuth").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_bismuth"); ore_byproduct = new ItemByproduct().setUnlocalizedName("ore_byproduct").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":byproduct"); @@ -5901,6 +5907,7 @@ public class ModItems { GameRegistry.registerItem(ingot_lead, ingot_lead.getUnlocalizedName()); GameRegistry.registerItem(ingot_bismuth, ingot_bismuth.getUnlocalizedName()); GameRegistry.registerItem(ingot_arsenic, ingot_arsenic.getUnlocalizedName()); + GameRegistry.registerItem(ingot_calcium, ingot_calcium.getUnlocalizedName()); GameRegistry.registerItem(ingot_tantalium, ingot_tantalium.getUnlocalizedName()); GameRegistry.registerItem(ingot_niobium, ingot_niobium.getUnlocalizedName()); GameRegistry.registerItem(ingot_beryllium, ingot_beryllium.getUnlocalizedName()); @@ -6070,6 +6077,8 @@ public class ModItems { GameRegistry.registerItem(powder_steel_tiny, powder_steel_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_tcalloy, powder_tcalloy.getUnlocalizedName()); GameRegistry.registerItem(powder_lead, powder_lead.getUnlocalizedName()); + GameRegistry.registerItem(powder_bismuth, powder_bismuth.getUnlocalizedName()); + GameRegistry.registerItem(powder_calcium, powder_calcium.getUnlocalizedName()); GameRegistry.registerItem(powder_coltan_ore, powder_coltan_ore.getUnlocalizedName()); GameRegistry.registerItem(powder_coltan, powder_coltan.getUnlocalizedName()); GameRegistry.registerItem(powder_tantalium, powder_tantalium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index c07a242e8..a495687dc 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 (4501)"; + public static final String VERSION = "1.0.27 BETA (4515)"; //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 e8ba4429c..a9c2d4f2a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -269,6 +269,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineExcavator.class, new RenderExcavator()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMixer.class, new RenderMixer()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineHephaestus.class, new RenderHephaestus()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAutosaw.class, new RenderAutosaw()); //Foundry ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryBasin.class, new RenderFoundry()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFoundryMold.class, new RenderFoundry()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index e1f07e871..a48f5e8c1 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -146,6 +146,9 @@ public class ResourceManager { //Magnusson Device public static final IModelCustom microwave = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/microwave.obj")); + //Big Man Johnson + public static final IModelCustom autosaw = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/machines/autosaw.obj")); + //Mining Drill public static final IModelCustom drill_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_main.obj")); public static final IModelCustom drill_bolt = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/drill_bolt.obj")); @@ -471,6 +474,9 @@ public class ResourceManager { //Magnusson Device public static final ResourceLocation microwave_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/microwave.png"); + //Big Man Johnson + public static final ResourceLocation autosaw_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/autosaw.png"); + //Mining Drill public static final ResourceLocation drill_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mining_drill.png"); public static final ResourceLocation drill_bolt_tex = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png"); diff --git a/src/main/java/com/hbm/render/tileentity/RenderAutosaw.java b/src/main/java/com/hbm/render/tileentity/RenderAutosaw.java new file mode 100644 index 000000000..37838feec --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderAutosaw.java @@ -0,0 +1,84 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.TileEntityMachineAutosaw; + +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 RenderAutosaw extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + TileEntityMachineAutosaw saw = (TileEntityMachineAutosaw) tile; + + double turn = saw.prevRotationYaw + (saw.rotationYaw - saw.prevRotationYaw) * interp; + double angle = 80 - (saw.prevRotationPitch + (saw.rotationPitch - saw.prevRotationPitch) * interp); + float spin = saw.lastSpin + (saw.spin - saw.lastSpin) * interp; + renderCommon(turn, angle, spin); + + GL11.glPopMatrix(); + } + + private void renderCommon(double turn, double angle, double spin) { + + bindTexture(ResourceManager.autosaw_tex); + ResourceManager.autosaw.renderPart("Base"); + + GL11.glRotated(turn, 0, -1, 0); + ResourceManager.autosaw.renderPart("Main"); + + GL11.glTranslated(0, 1.75, 0); + GL11.glRotated(angle, 1, 0, 0); + GL11.glTranslated(0, -1.75, 0); + ResourceManager.autosaw.renderPart("ArmUpper"); + + GL11.glTranslated(0, 1.75, -4); + GL11.glRotated(angle * -2, 1, 0, 0); + GL11.glTranslated(0, -1.75, 4); + GL11.glTranslated(-0.01, 0, 0); + ResourceManager.autosaw.renderPart("ArmLower"); + GL11.glTranslated(0.01, 0, 0); + + GL11.glTranslated(0, 1.75, -8); + GL11.glRotated(angle, 1, 0, 0); + GL11.glTranslated(0, -1.75, 8); + ResourceManager.autosaw.renderPart("ArmTip"); + + GL11.glTranslated(0, 1.75, -10); + GL11.glRotated(spin, 0, -1, 0); + GL11.glTranslated(0, -1.75, 10); + ResourceManager.autosaw.renderPart("Sawblade"); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_autosaw); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase( ) { + public void renderInventory() { + GL11.glTranslated(0, -3.5, -3); + GL11.glScaled(5, 5, 5); + } + public void renderCommonWithStack(ItemStack item) { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glRotatef(-90, 0F, 1F, 0F); + RenderAutosaw.this.renderCommon(0D, 80D, System.currentTimeMillis() % 3600 * 0.1D); + }}; + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderHephaestus.java b/src/main/java/com/hbm/render/tileentity/RenderHephaestus.java index be5fc36e3..a555840ef 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderHephaestus.java +++ b/src/main/java/com/hbm/render/tileentity/RenderHephaestus.java @@ -2,14 +2,18 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.machine.TileEntityMachineHephaestus; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderHephaestus extends TileEntitySpecialRenderer { +public class RenderHephaestus extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { @@ -68,4 +72,37 @@ public class RenderHephaestus extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_hephaestus); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -4.5, 0); + GL11.glScaled(2.25, 2.25, 2.25); + } + public void renderCommon() { + GL11.glScaled(0.5, 0.5, 0.5); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.hephaestus_tex); + ResourceManager.hephaestus.renderPart("Main"); + + GL11.glPushMatrix(); + + for(int i = 0; i < 3; i++) { + ResourceManager.hephaestus.renderPart("Rotor"); + GL11.glRotated(120, 0, 1, 0); + } + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glShadeModel(GL11.GL_FLAT); + GL11.glPopMatrix(); + bindTexture(RenderExcavator.cobble); + ResourceManager.hephaestus.renderPart("Core"); + }}; + } } diff --git a/src/main/java/com/hbm/render/tileentity/RenderTurbineGas.java b/src/main/java/com/hbm/render/tileentity/RenderTurbineGas.java index 7f7779026..1b4db4936 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderTurbineGas.java +++ b/src/main/java/com/hbm/render/tileentity/RenderTurbineGas.java @@ -3,13 +3,17 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ModBlocks; import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; import com.hbm.tileentity.machine.TileEntityMachineTurbineGas; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; -public class RenderTurbineGas extends TileEntitySpecialRenderer { +public class RenderTurbineGas extends TileEntitySpecialRenderer implements IItemRendererProvider { @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) { @@ -35,4 +39,27 @@ public class RenderTurbineGas extends TileEntitySpecialRenderer { GL11.glShadeModel(GL11.GL_FLAT); GL11.glPopMatrix(); } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_turbinegas); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -1, 1.5); + GL11.glScaled(2.5, 2.5, 2.5); + } + public void renderCommon() { + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glScaled(0.75, 0.75, 0.75); + GL11.glRotated(90, 0, 1, 0); + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.turbinegas_tex); + ResourceManager.turbinegas.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } } \ No newline at end of file diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index cdaa414ea..cc8d2483f 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -269,6 +269,7 @@ public class TileMappings { put(TileEntityDiFurnaceRTG.class, "tileentity_rtg_difurnace"); put(TileEntityMachineRadiolysis.class, "tileentity_radiolysis"); put(TileEntityUVLamp.class, "tileentity_uv_lamp"); + put(TileEntityMachineAutosaw.class, "tileentity_autosaw"); put(TileEntityCondenser.class, "tileentity_condenser"); put(TileEntityTowerSmall.class, "tileentity_cooling_tower_small"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java index d1839125c..20f0d3915 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCondenser.java @@ -9,7 +9,6 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; import com.hbm.saveddata.TomSaveData; import com.hbm.tileentity.INBTPacketReceiver; import com.hbm.tileentity.TileEntityLoadedBase; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java new file mode 100644 index 000000000..ebcb72c88 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAutosaw.java @@ -0,0 +1,301 @@ +package com.hbm.tileentity.machine; + +import java.util.List; + +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.fluid.tank.FluidTank; +import com.hbm.lib.ModDamageSource; +import com.hbm.tileentity.INBTPacketReceiver; +import com.hbm.tileentity.TileEntityLoadedBase; + +import api.hbm.fluid.IFluidStandardReceiver; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockLeaves; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; + +public class TileEntityMachineAutosaw extends TileEntityLoadedBase implements INBTPacketReceiver, IFluidStandardReceiver { + + public FluidTank tank; + + public boolean isOn; + public float syncYaw; + public float rotationYaw; + public float prevRotationYaw; + public float syncPitch; + public float rotationPitch; + public float prevRotationPitch; + + // 0: searching, 1: extending, 2: retracting + private int state = 0; + + private int turnProgress; + + public float spin; + public float lastSpin; + + public TileEntityMachineAutosaw() { + this.tank = new FluidTank(Fluids.WOODOIL, 100); + } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(worldObj.getTotalWorldTime() % 20 == 0) { + if(tank.getFill() > 0) { + tank.setFill(tank.getFill() - 1); + this.isOn = true; + } else { + this.isOn = false; + } + + this.subscribeToAllAround(tank.getTankType(), this); + } + + if(isOn) { + Vec3 pivot = Vec3.createVectorHelper(xCoord + 0.5, yCoord + 1.75, zCoord + 0.5); + Vec3 upperArm = Vec3.createVectorHelper(0, 0, -4); + upperArm.rotateAroundX((float) Math.toRadians(80 - rotationPitch)); + upperArm.rotateAroundY(-(float) Math.toRadians(rotationYaw)); + Vec3 lowerArm = Vec3.createVectorHelper(0, 0, -4); + lowerArm.rotateAroundX((float) -Math.toRadians(80 - rotationPitch)); + lowerArm.rotateAroundY(-(float) Math.toRadians(rotationYaw)); + Vec3 armTip = Vec3.createVectorHelper(0, 0, -2); + armTip.rotateAroundY(-(float) Math.toRadians(rotationYaw)); + + double cX = pivot.xCoord + upperArm.xCoord + lowerArm.xCoord + armTip.xCoord; + double cY = pivot.yCoord; + double cZ = pivot.zCoord + upperArm.zCoord + lowerArm.zCoord + armTip.zCoord; + + List affected = worldObj.getEntitiesWithinAABB(EntityLivingBase.class, AxisAlignedBB.getBoundingBox(cX - 1, cY - 0.25, cZ - 1, cX + 1, cY + 0.25, cZ + 1)); + + for(EntityLivingBase e : affected) { + e.attackEntityFrom(ModDamageSource.turbofan, 100); + } + + if(state == 0) { + + this.rotationYaw += 1; + + if(this.rotationYaw >= 360) { + this.rotationYaw -= 360; + } + + Vec3 grace = Vec3.createVectorHelper(0, 0, -3.5); + grace.rotateAroundY(-(float) Math.toRadians(rotationYaw)); + grace.xCoord += pivot.xCoord; + grace.yCoord += pivot.yCoord; + grace.zCoord += pivot.zCoord; + + Vec3 detector = Vec3.createVectorHelper(0, 0, -9); + detector.rotateAroundY(-(float) Math.toRadians(rotationYaw)); + detector.xCoord += pivot.xCoord; + detector.yCoord += pivot.yCoord; + detector.zCoord += pivot.zCoord; + MovingObjectPosition pos = worldObj.func_147447_a(grace, detector, false, false, false); + + if(pos != null && pos.typeOfHit == pos.typeOfHit.BLOCK) { + + Block b = worldObj.getBlock(pos.blockX, pos.blockY, pos.blockZ); + + if(b.getMaterial() == Material.wood || b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { + state = 1; + } + } + } + + int hitY = (int) Math.floor(cY); + int hitX0 = (int) Math.floor(cX - 0.5); + int hitZ0 = (int) Math.floor(cZ - 0.5); + int hitX1 = (int) Math.floor(cX + 0.5); + int hitZ1 = (int) Math.floor(cZ + 0.5); + + this.tryInteract(hitX0, hitY, hitZ0); + this.tryInteract(hitX1, hitY, hitZ0); + this.tryInteract(hitX0, hitY, hitZ1); + this.tryInteract(hitX1, hitY, hitZ1); + + if(state == 1) { + this.rotationPitch += 2; + + if(this.rotationPitch > 80) { + this.rotationPitch = 80; + state = 2; + } + } + + if(state == 2) { + this.rotationPitch -= 2; + + if(this.rotationPitch <= 0) { + this.rotationPitch = 0; + state = 0; + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("isOn", isOn); + data.setFloat("yaw", this.rotationYaw); + data.setFloat("pitch", this.rotationPitch); + tank.writeToNBT(data, "t"); + INBTPacketReceiver.networkPack(this, data, 100); + } else { + + this.lastSpin = this.spin; + + if(isOn) { + this.spin += 15F; + + Vec3 vec = Vec3.createVectorHelper(0.625, 0, 1.625); + vec.rotateAroundY(-(float) Math.toRadians(rotationYaw)); + + worldObj.spawnParticle("smoke", xCoord + 0.5 + vec.xCoord, yCoord + 2.0625, zCoord + 0.5 + vec.zCoord, 0, 0, 0); + } + + if(this.spin >= 360F) { + this.spin -= 360F; + this.lastSpin -= 360F; + } + + this.prevRotationYaw = this.rotationYaw; + this.prevRotationPitch = this.rotationPitch; + + if(this.turnProgress > 0) { + double d0 = MathHelper.wrapAngleTo180_double(this.syncYaw - (double) this.rotationYaw); + double d1 = MathHelper.wrapAngleTo180_double(this.syncPitch - (double) this.rotationPitch); + this.rotationYaw = (float) ((double) this.rotationYaw + d0 / (double) this.turnProgress); + this.rotationPitch = (float) ((double) this.rotationPitch + d1 / (double) this.turnProgress); + --this.turnProgress; + } else { + this.rotationYaw = this.syncYaw; + this.rotationPitch = this.syncPitch; + } + } + } + + protected void tryInteract(int x, int y, int z) { + + Block b = worldObj.getBlock(x, y, z); + + if(b.getMaterial() == Material.leaves || b.getMaterial() == Material.plants) { + worldObj.func_147480_a(x, y, z, true); + return; + } + + if(b.getMaterial() == Material.wood) { + fellTree(x, y, z); + if(state == 1) { + state = 2; + } + } + } + + protected void fellTree(int x, int y, int z) { + + if(worldObj.getBlock(x, y - 1, z).getMaterial() == Material.wood) { + y--; + if(worldObj.getBlock(x, y - 2, z).getMaterial() == Material.wood) { + y--; + } + } + + int meta = -1; + + for(int i = y; i < y + 10; i++) { + + int[][] dir = new int[][] {{0, 0}, {1, 0}, {-1, 0}, {0, 1}, {0, -1}}; + + for(int[] d : dir) { + Block b = worldObj.getBlock(x + d[0], i, z + d[1]); + + if(b.getMaterial() == Material.wood) { + worldObj.func_147480_a(x + d[0], i, z + d[1], true); + } else if(b instanceof BlockLeaves) { + meta = worldObj.getBlockMetadata(x + d[0], i, z + d[1]) & 3; + worldObj.func_147480_a(x + d[0], i, z + d[1], true); + } + } + } + + if(meta >= 0) { + if(Blocks.sapling.canPlaceBlockAt(worldObj, x, y, z)) { + worldObj.setBlock(x, y, z, Blocks.sapling, meta, 3); + } + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.isOn = nbt.getBoolean("isOn"); + this.syncYaw = nbt.getFloat("yaw"); + this.syncPitch = nbt.getFloat("pitch"); + this.turnProgress = 3; //use 3-ply for extra smoothness + this.tank.readFromNBT(nbt, "t"); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + this.isOn = nbt.getBoolean("isOn"); + this.rotationYaw = nbt.getFloat("yaw"); + this.rotationPitch = nbt.getFloat("pitch"); + this.state = nbt.getInteger("state"); + this.tank.readFromNBT(nbt, "t"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setBoolean("isOn", this.isOn); + nbt.setFloat("yaw", this.rotationYaw); + nbt.setFloat("pitch", this.rotationPitch); + nbt.setInteger("state", this.state); + tank.writeToNBT(nbt, "t"); + } + + @Override + public FluidTank[] getAllTanks() { + return new FluidTank[] {tank}; + } + + @Override + public FluidTank[] getReceivingTanks() { + return new FluidTank[] {tank}; + } + + AxisAlignedBB bb = null; + + @Override + public AxisAlignedBB getRenderBoundingBox() { + + if(bb == null) { + bb = AxisAlignedBB.getBoundingBox( + xCoord - 12, + yCoord, + zCoord - 12, + xCoord + 13, + yCoord + 10, + zCoord + 13 + ); + } + + return bb; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() { + return 65536.0D; + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java index ad8a880fd..8fffd24bf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineHephaestus.java @@ -141,12 +141,12 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements protected int heatFromBlock(int x, int y, int z) { Block b = worldObj.getBlock(x, y, z); - if(b == Blocks.lava || b == Blocks.flowing_lava) return 200; - if(b == ModBlocks.volcanic_lava_block) return 800; + if(b == Blocks.lava || b == Blocks.flowing_lava) return 25; + if(b == ModBlocks.volcanic_lava_block) return 500; if(b == ModBlocks.ore_volcano) { this.fissureScanTime = worldObj.getTotalWorldTime(); - return 2_000; + return 1_000; } return 0; @@ -161,7 +161,7 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements } if(fissure) { - heat *= 5; + heat *= 3; } return heat; @@ -187,14 +187,14 @@ public class TileEntityMachineHephaestus extends TileEntityLoadedBase implements private DirPos[] getConPos() { return new DirPos[] { - new DirPos(xCoord + 1, yCoord, zCoord, Library.POS_X), - new DirPos(xCoord - 1, yCoord, zCoord, Library.NEG_X), - new DirPos(xCoord, yCoord, zCoord + 1, Library.POS_Z), - new DirPos(xCoord, yCoord, zCoord - 1, Library.NEG_Z), - new DirPos(xCoord + 1, yCoord + 11, zCoord, Library.POS_X), - new DirPos(xCoord - 1, yCoord + 11, zCoord, Library.NEG_X), - new DirPos(xCoord, yCoord + 11, zCoord + 1, Library.POS_Z), - new DirPos(xCoord, yCoord + 11, zCoord - 1, Library.NEG_Z) + new DirPos(xCoord + 2, yCoord, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z), + new DirPos(xCoord + 2, yCoord + 11, zCoord, Library.POS_X), + new DirPos(xCoord - 2, yCoord + 11, zCoord, Library.NEG_X), + new DirPos(xCoord, yCoord + 11, zCoord + 2, Library.POS_Z), + new DirPos(xCoord, yCoord + 11, zCoord - 2, Library.NEG_Z) }; } diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index df50528aa..b66d26f42 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -1043,7 +1043,7 @@ item.balefire_scrambled.name=Rühr-Balefire-Ei item.ball_dynamite.name=Dynamit item.ball_fireclay.name=Schamott item.ball_tnt.name=TNT -item.ballistitc_gauntlet.name=Ballistischer Panzerhandschuh +item.ballistic_gauntlet.name=Ballistischer Panzerhandschuh item.ballistite.name=Ballistit item.bandaid.name=Samtenes Pflaster item.bathwater.name=Toxisches Seifenwasser @@ -1945,6 +1945,7 @@ item.ingot_beryllium.name=Berylliumbarren item.ingot_bismuth.name=Bismutbarren item.ingot_boron.name=Borbarren item.ingot_c4.name=C4-Tafel +item.ingot_calcium.name=Kalziumbarren item.ingot_chainsteel.name=Schwerer Kettenstahl item.ingot_co60.name=Kobalt-60-Barren item.ingot_cobalt.name=Kobaltbarren @@ -2406,6 +2407,16 @@ item.ore.niobium=Niob item.ore.titanium=Titan item.ore.tungsten=Wolfram item.ore_bedrock.name=Bedrock-%serz +item.ore_byproduct.b_aluminium.name=Kristallines Aluminiumfragment +item.ore_byproduct.b_bismuth.name=Kristallines Bismutfragment +item.ore_byproduct.b_calcium.name=Kristallines Kalziumfragment +item.ore_byproduct.b_copper.name=Kristallines Kupferfragment +item.ore_byproduct.b_iron.name=Kristallines Eisenfragment +item.ore_byproduct.b_lead.name=Kristallines Bleifragment +item.ore_byproduct.b_lithium.name=Kristallines Lithiumfragment +item.ore_byproduct.b_silicon.name=Kristallines Siliziumfragment +item.ore_byproduct.b_sulfur.name=Kristallines Schwefelfragment +item.ore_byproduct.b_titanium.name=Kristallines Titanfragment item.ore_centrifuged.name=Zentrifugiertes %serz item.ore_cleaned.name=Gereinigtes %serz item.ore_deepcleaned.name=Tiefengereinigtes %serz @@ -2540,11 +2551,13 @@ item.powder_australium.name=Australiumstaub item.powder_bakelite.name=Bakelitstaub item.powder_balefire.name=Thermonukleare Asche item.powder_beryllium.name=Berylliumstaub +item.powder_bismuth.name=Bismutstaub item.powder_borax.name=Borax item.powder_boron.name=Borstaub item.powder_boron_tiny.name=Kleiner Haufen Borstaub item.powder_bromine.name=Bromstaub item.powder_caesium.name=Caesiumstaub +item.powder_calcium.name=Kalziumstaub item.powder_cerium.name=Cerstaub item.powder_cerium_tiny.name=Kleiner Haufen Cerstaub item.powder_chlorophyte.name=Grünalgenstaub @@ -3747,6 +3760,7 @@ tile.machine_armor_table.name=Rüstungsmodifikationstisch tile.machine_assembler.name=Fertigungsmaschine tile.machine_assemfac.name=Fertigungsfabrik tile.machine_autocrafter.name=Automatische Werkbank +tile.machine_autosaw.name=Automatische Kreissäge tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energiespeicherblock tile.machine_battery_potato.name=Kartoffelbatterieblock @@ -3796,7 +3810,8 @@ tile.machine_fracking_tower.name=Hydraulischer Frackingturm tile.machine_fraction_tower.name=Fraktionierungsturm tile.machine_gascent.name=Gaszentrifuge tile.machine_generator.name=Atomreaktor (Alt) -tile.machine_geo.name=Gepthermiegenerator +tile.machine_geo.name=Geothermiegenerator +tile.machine_hephaestus.name=Geothermischer Wärmetauscher tile.machine_industrial_generator.name=Industrieller Generator tile.machine_keyforge.name=Schlossertisch tile.machine_large_turbine.name=Industrielle Dampfturbine @@ -3970,6 +3985,7 @@ tile.ore_unobtainium.name=Glimmerblende tile.ore_uranium.name=Uranerz tile.ore_uranium_scorched.name=Verschmortes Uranerz tile.ore_verticium.name=Dollargrünes Mineral +tile.ore_volcano.name=Thermale Fissur tile.ore_weidanium.name=Weidit tile.pink_barrel.name=Kerosinfass tile.pink_log.name=Pinkes Holz diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 3eb70cae1..57b59e143 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -1653,7 +1653,7 @@ item.balefire_scrambled.name=Scrambled Balefire Egg item.ball_dynamite.name=Dynamite item.ball_fireclay.name=Fireclay item.ball_tnt.name=TNT -item.ballistitc_gauntlet.name=Ballistic Gauntlet +item.ballistic_gauntlet.name=Ballistic Gauntlet item.ballistite.name=Ballistite item.bandaid.name=Velvet Band-Aid item.bathwater.name=Toxic Soapy Water @@ -2620,6 +2620,7 @@ item.ingot_beryllium.name=Beryllium Ingot item.ingot_bismuth.name=Bismuth Ingot item.ingot_boron.name=Boron Ingot item.ingot_c4.name=Bar of Composition C-4 +item.ingot_calcium.name=Calcium Ingot item.ingot_chainsteel.name=Heavy Chainsteel item.ingot_co60.name=Cobalt-60 Ingot item.ingot_cobalt.name=Cobalt Ingot @@ -3114,6 +3115,16 @@ item.ore.niobium=Niobium item.ore.titanium=Titanium item.ore.tungsten=Tungsten item.ore_bedrock.name=%s Bedrock Ore +item.ore_byproduct.b_aluminium.name=Crystalline Aluminium Fragment +item.ore_byproduct.b_bismuth.name=Crystalline Bismuth Fragment +item.ore_byproduct.b_calcium.name=Crystalline Calcium Fragment +item.ore_byproduct.b_copper.name=Crystalline Copper Fragment +item.ore_byproduct.b_iron.name=Crystalline Iron Fragment +item.ore_byproduct.b_lead.name=Crystalline Lead Fragment +item.ore_byproduct.b_lithium.name=Crystalline Lithium Fragment +item.ore_byproduct.b_silicon.name=Crystalline Silicon Fragment +item.ore_byproduct.b_sulfur.name=Crystalline Sulfur Fragment +item.ore_byproduct.b_titanium.name=Crystalline Titanium Fragment item.ore_centrifuged.name=Centrifuged %s Ore item.ore_cleaned.name=Cleaned %s Ore item.ore_deepcleaned.name=Deep Cleaned %s Ore @@ -3294,11 +3305,13 @@ item.powder_australium.name=Australium Powder item.powder_bakelite.name=Bakelite Powder item.powder_balefire.name=Thermonuclear Ashes item.powder_beryllium.name=Beryllium Powder +item.powder_bismuth.name=Bismuth Powder item.powder_borax.name=Borax item.powder_boron.name=Boron Powder item.powder_boron_tiny.name=Tiny Pile of Boron Powder item.powder_bromine.name=Bromine Powder item.powder_caesium.name=Caesium Powder +item.powder_calcium.name=Calcium Powder item.powder_cerium.name=Cerium Powder item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder item.powder_chlorophyte.name=Chlorophyte Powder @@ -4591,6 +4604,7 @@ tile.machine_armor_table.name=Armor Modification Table tile.machine_assembler.name=Assembly Machine tile.machine_assemfac.name=Assembly Factory tile.machine_autocrafter.name=Automatic Crafting Table +tile.machine_autosaw.name=Automatic Buzz Saw tile.machine_bat9000.name=Big-Ass Tank 9000 tile.machine_battery.name=Energy Storage Block tile.machine_battery_potato.name=Potato Battery Block @@ -4641,6 +4655,7 @@ tile.machine_fracking_tower.name=Hydraulic Fracking Tower tile.machine_gascent.name=Gas Centrifuge tile.machine_generator.name=Nuclear Reactor (Old) tile.machine_geo.name=Geothermal Electric Generator +tile.machine_hephaestus.name=Geothermal Heat Exchanger tile.machine_industrial_generator.name=Industrial Generator tile.machine_keyforge.name=Locksmith Table tile.machine_large_turbine.name=Industrial Steam Turbine @@ -4817,6 +4832,7 @@ tile.ore_unobtainium.name=Brightblende Ore tile.ore_uranium.name=Uranium Ore tile.ore_uranium_scorched.name=Scorched Uranium Ore tile.ore_verticium.name=Dollar Green Mineral +tile.ore_volcano.name=Geothermal Vent tile.ore_weidanium.name=Weidite tile.pink_barrel.name=Kerosene Barrel tile.pink_log.name=Pink Log diff --git a/src/main/resources/assets/hbm/models/machines/autosaw.obj b/src/main/resources/assets/hbm/models/machines/autosaw.obj new file mode 100644 index 000000000..69a5337f0 --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/autosaw.obj @@ -0,0 +1,1476 @@ +# Blender v2.79 (sub 0) OBJ File: 'autosaw.blend' +# www.blender.org +o Base +v -0.500000 0.000000 0.500000 +v 0.500000 0.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.125000 0.500000 +v 0.500000 0.125000 0.500000 +v -0.500000 0.125000 -0.500000 +v 0.500000 0.125000 -0.500000 +v 0.500000 0.312500 0.187500 +v 0.500000 0.312500 -0.187500 +v 0.500000 0.687500 0.187500 +v 0.500000 0.687500 -0.187500 +v 0.437500 0.312500 0.187500 +v 0.437500 0.312500 -0.187500 +v 0.437500 0.687500 0.187500 +v 0.437500 0.687500 -0.187500 +v -0.437500 0.125000 -0.437500 +v -0.437500 0.125000 0.437500 +v 0.437500 0.125000 0.437500 +v 0.437500 0.125000 -0.437500 +v -0.437500 0.875000 -0.437500 +v -0.437500 0.875000 0.437500 +v 0.437500 0.875000 0.437500 +v 0.437500 0.875000 -0.437500 +v -0.500000 0.875000 0.500000 +v 0.500000 0.875000 0.500000 +v -0.500000 0.875000 -0.500000 +v 0.500000 0.875000 -0.500000 +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.312500 -0.187500 +v -0.500000 0.312500 0.187500 +v -0.500000 0.687500 -0.187500 +v -0.500000 0.687500 0.187500 +v -0.437500 0.312500 -0.187500 +v -0.437500 0.312500 0.187500 +v -0.437500 0.687500 -0.187500 +v -0.437500 0.687500 0.187500 +v 0.187500 0.312500 -0.500000 +v -0.187500 0.312500 -0.500000 +v 0.187500 0.687500 -0.500000 +v -0.187500 0.687500 -0.500000 +v 0.187500 0.312500 -0.437500 +v -0.187500 0.312500 -0.437500 +v 0.187500 0.687500 -0.437500 +v -0.187500 0.687500 -0.437500 +v -0.187500 0.312500 0.500000 +v 0.187500 0.312500 0.500000 +v -0.187500 0.687500 0.500000 +v 0.187500 0.687500 0.500000 +v -0.187500 0.312500 0.437500 +v 0.187500 0.312500 0.437500 +v -0.187500 0.687500 0.437500 +v 0.187500 0.687500 0.437500 +vt 0.111111 0.000000 +vt 0.222222 0.097561 +vt 0.111111 0.097561 +vt 0.333333 0.109756 +vt 0.229167 0.115854 +vt 0.222222 0.109756 +vt 0.444444 0.097561 +vt 0.333333 0.097561 +vt 0.111111 0.109756 +vt -0.000000 0.109756 +vt -0.000000 0.097561 +vt 0.048611 0.006098 +vt 0.006944 0.042683 +vt 0.006944 0.006098 +vt 0.194444 0.115854 +vt 0.097222 0.189024 +vt 0.097222 0.115854 +vt 0.055556 0.042683 +vt 0.048611 0.042683 +vt 0.048611 0.000000 +vt -0.000000 0.006098 +vt 0.006944 0.048780 +vt 0.006944 0.115854 +vt 0.444444 0.109756 +vt 0.340278 0.115854 +vt 0.118056 0.115854 +vt 0.222222 0.195122 +vt 0.118056 0.189024 +vt 0.215278 0.189024 +vt 0.291667 0.115854 +vt 0.194444 0.189024 +vt 0.000000 0.189024 +vt -0.000000 0.115854 +vt 0.388889 0.115854 +vt 0.291667 0.189024 +vt 0.444444 0.195122 +vt 0.333333 0.207317 +vt 0.333333 0.195122 +vt 0.111111 0.207317 +vt 0.111111 0.195122 +vt 0.222222 0.207317 +vt -0.000000 0.207317 +vt -0.000000 0.195122 +vt 0.229167 0.189024 +vt 0.326389 0.189024 +vt 0.340278 0.189024 +vt 0.437500 0.189024 +vt 0.006944 0.189024 +vt 0.104167 0.189024 +vt 0.222222 0.304878 +vt 0.111111 0.304878 +vt 0.048611 0.006098 +vt 0.006944 0.042683 +vt 0.006944 0.006098 +vt 0.055556 0.042683 +vt 0.048611 0.042683 +vt 0.048611 0.000000 +vt -0.000000 0.006098 +vt 0.006944 0.048780 +vt 0.048611 0.006098 +vt 0.006944 0.042683 +vt 0.006944 0.006098 +vt 0.055556 0.042683 +vt 0.048611 0.042683 +vt 0.048611 0.000000 +vt -0.000000 0.006098 +vt 0.006944 0.048780 +vt 0.048611 0.006098 +vt 0.006944 0.042683 +vt 0.006944 0.006098 +vt 0.055556 0.042683 +vt 0.048611 0.042683 +vt 0.048611 0.000000 +vt -0.000000 0.006098 +vt 0.006944 0.048780 +vt 0.222222 0.000000 +vt 0.326389 0.115854 +vt 0.055556 0.006098 +vt 0.006944 0.000000 +vt -0.000000 0.042683 +vt 0.048611 0.048780 +vt 0.104167 0.115854 +vt 0.437500 0.115854 +vt 0.215278 0.115854 +vt 0.388889 0.189024 +vt 0.444444 0.207317 +vt 0.055556 0.006098 +vt 0.006944 0.000000 +vt -0.000000 0.042683 +vt 0.048611 0.048780 +vt 0.055556 0.006098 +vt 0.006944 0.000000 +vt -0.000000 0.042683 +vt 0.048611 0.048780 +vt 0.055556 0.006098 +vt 0.006944 0.000000 +vt -0.000000 0.042683 +vt 0.048611 0.048780 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn -1.0000 0.0000 0.0000 +s off +f 3/1/1 2/2/1 1/3/1 +f 8/4/2 19/5/2 6/6/2 +f 3/7/3 8/4/3 4/8/3 +f 2/2/4 5/9/4 1/3/4 +f 4/8/5 6/6/5 2/2/5 +f 1/3/6 7/10/6 3/11/6 +f 10/12/5 11/13/5 9/14/5 +f 19/15/4 22/16/4 18/17/4 +f 10/12/3 16/18/3 12/19/3 +f 9/14/1 14/20/1 10/12/1 +f 11/13/4 13/21/4 9/14/4 +f 12/19/2 15/22/2 11/13/2 +f 5/9/2 17/23/2 7/10/2 +f 7/24/2 20/25/2 8/4/2 +f 6/6/2 18/26/2 5/9/2 +f 26/27/1 22/28/1 23/29/1 +f 20/30/5 23/31/5 19/15/5 +f 18/17/6 21/32/6 17/33/6 +f 17/34/3 24/35/3 20/30/3 +f 27/36/3 32/37/3 28/38/3 +f 26/27/4 29/39/4 25/40/4 +f 28/38/5 30/41/5 26/27/5 +f 25/40/6 31/42/6 27/43/6 +f 28/38/1 23/44/1 24/45/1 +f 27/36/1 24/46/1 21/47/1 +f 25/40/1 21/48/1 22/49/1 +f 29/39/2 32/50/2 31/51/2 +f 34/52/6 35/53/6 33/54/6 +f 34/52/4 40/55/4 36/56/4 +f 33/54/1 38/57/1 34/52/1 +f 35/53/3 37/58/3 33/54/3 +f 36/56/2 39/59/2 35/53/2 +f 42/60/3 43/61/3 41/62/3 +f 42/60/6 48/63/6 44/64/6 +f 41/62/1 46/65/1 42/60/1 +f 43/61/5 45/66/5 41/62/5 +f 44/64/2 47/67/2 43/61/2 +f 50/68/4 51/69/4 49/70/4 +f 50/68/5 56/71/5 52/72/5 +f 49/70/1 54/73/1 50/68/1 +f 51/69/6 53/74/6 49/70/6 +f 52/72/2 55/75/2 51/69/2 +f 3/1/1 4/76/1 2/2/1 +f 8/4/2 20/77/2 19/5/2 +f 3/7/3 7/24/3 8/4/3 +f 2/2/4 6/6/4 5/9/4 +f 4/8/5 8/4/5 6/6/5 +f 1/3/6 5/9/6 7/10/6 +f 10/12/5 12/19/5 11/13/5 +f 19/15/4 23/31/4 22/16/4 +f 10/12/3 14/78/3 16/18/3 +f 9/14/1 13/79/1 14/20/1 +f 11/13/4 15/80/4 13/21/4 +f 12/19/2 16/81/2 15/22/2 +f 5/9/2 18/82/2 17/23/2 +f 7/24/2 17/83/2 20/25/2 +f 6/6/2 19/84/2 18/26/2 +f 26/27/1 25/40/1 22/28/1 +f 20/30/5 24/35/5 23/31/5 +f 18/17/6 22/16/6 21/32/6 +f 17/34/3 21/85/3 24/35/3 +f 27/36/3 31/86/3 32/37/3 +f 26/27/4 30/41/4 29/39/4 +f 28/38/5 32/37/5 30/41/5 +f 25/40/6 29/39/6 31/42/6 +f 28/38/1 26/27/1 23/44/1 +f 27/36/1 28/38/1 24/46/1 +f 25/40/1 27/43/1 21/48/1 +f 29/39/2 30/41/2 32/50/2 +f 34/52/6 36/56/6 35/53/6 +f 34/52/4 38/87/4 40/55/4 +f 33/54/1 37/88/1 38/57/1 +f 35/53/3 39/89/3 37/58/3 +f 36/56/2 40/90/2 39/59/2 +f 42/60/3 44/64/3 43/61/3 +f 42/60/6 46/91/6 48/63/6 +f 41/62/1 45/92/1 46/65/1 +f 43/61/5 47/93/5 45/66/5 +f 44/64/2 48/94/2 47/67/2 +f 50/68/4 52/72/4 51/69/4 +f 50/68/5 54/95/5 56/71/5 +f 49/70/1 53/96/1 54/73/1 +f 51/69/6 55/97/6 53/74/6 +f 52/72/2 56/98/2 55/75/2 +o ArmUpper +v -0.250000 1.500000 0.250000 +v 0.250000 1.500000 0.250000 +v -0.250000 1.500000 -4.250000 +v 0.250000 1.500000 -4.250000 +v -0.250000 2.000000 -4.250000 +v -0.250000 2.000000 0.250000 +v 0.250000 2.000000 0.250000 +v 0.250000 2.000000 -4.250000 +v 0.312500 1.625000 -4.125000 +v 0.312500 1.875000 -4.125000 +v 0.312500 1.625000 -3.875000 +v 0.312500 1.875000 -3.875000 +v 0.375000 1.875000 -4.125000 +v 0.375000 1.625000 -4.125000 +v 0.375000 1.875000 -3.875000 +v 0.375000 1.625000 -3.875000 +v -0.375000 1.625000 -4.125000 +v -0.375000 1.875000 -4.125000 +v -0.375000 1.625000 -3.875000 +v -0.375000 1.875000 -3.875000 +v -0.312500 1.875000 -4.125000 +v -0.312500 1.625000 -4.125000 +v -0.312500 1.875000 -3.875000 +v -0.312500 1.625000 -3.875000 +v -0.312500 1.437500 -4.375000 +v -0.312500 1.375000 -4.312500 +v 0.312500 1.375000 -4.312500 +v 0.312500 1.437500 -4.375000 +v -0.312500 2.125000 -4.312500 +v -0.312500 2.062500 -4.375000 +v 0.312500 2.062500 -4.375000 +v 0.312500 2.125000 -4.312500 +v 0.312500 1.437500 -3.625000 +v 0.312500 1.375000 -3.687500 +v -0.312500 1.375000 -3.687500 +v -0.312500 1.437500 -3.625000 +v 0.312500 2.125000 -3.687500 +v 0.312500 2.062500 -3.625000 +v -0.312500 2.062500 -3.625000 +v -0.312500 2.125000 -3.687500 +vt 0.222222 0.780488 +vt 0.277778 0.341463 +vt 0.277778 0.780488 +vt 0.111111 0.341463 +vt 0.166667 0.780488 +vt 0.111111 0.780488 +vt 0.055556 0.341463 +vt 0.055556 0.780488 +vt 0.166667 0.341463 +vt 0.222222 0.341463 +vt 0.333333 0.207317 +vt 0.409722 0.213415 +vt 0.402778 0.280488 +vt 0.333333 0.280488 +vt 0.402778 0.341463 +vt 0.333333 0.341463 +vt 0.409722 0.341463 +vt 0.479167 0.280488 +vt 0.479167 0.341463 +vt 0.409722 0.347561 +vt 0.402778 0.414634 +vt 0.256944 0.280488 +vt 0.326389 0.341463 +vt 0.256944 0.341463 +vt 0.291667 0.213415 +vt 0.319444 0.207317 +vt 0.319444 0.213415 +vt 0.319444 0.237805 +vt 0.291667 0.213415 +vt 0.319444 0.213415 +vt 0.291667 0.243902 +vt 0.319444 0.243902 +vt 0.326389 0.237805 +vt 0.326389 0.213415 +vt 0.319444 0.207317 +vt 0.291667 0.207317 +vt 0.284722 0.213415 +vt 0.291667 0.237805 +vt 0.284722 0.237805 +vt 0.326389 0.237805 +vt 0.319444 0.237805 +vt 0.291667 0.243902 +vt 0.291667 0.237805 +vt 0.284722 0.213415 +vt 0.250000 0.280488 +vt 0.250000 0.341463 +vt 0.326389 0.280488 +vt 0.486111 0.341463 +vt 0.555556 0.341463 +vt 0.486111 0.280488 +vt 0.555556 0.280488 +vt 0.326389 0.274390 +vt 0.326389 0.213415 +vt 0.402778 0.207317 +vt 0.409722 0.274390 +vt 0.409722 0.280488 +vt 0.333333 0.414634 +vt 0.326389 0.408537 +vt 0.326389 0.347561 +vt 0.409722 0.408537 +vt 0.291667 0.207317 +vt 0.326389 0.213415 +vt 0.319444 0.243902 +vt 0.284722 0.237805 +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.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 60/99/7 57/100/7 59/101/7 +f 62/102/8 64/103/8 61/104/8 +f 57/105/9 61/104/9 59/106/9 +f 60/99/10 63/107/10 58/108/10 +f 82/109/9 92/110/9 96/111/9 +f 85/112/8 93/113/8 88/114/8 +f 94/115/11 92/116/11 89/117/11 +f 88/114/10 94/118/10 90/119/10 +f 81/120/12 87/121/12 84/122/12 +f 76/123/8 77/124/8 74/125/8 +f 69/126/10 72/127/10 70/128/10 +f 68/129/8 69/126/8 66/130/8 +f 66/131/12 70/128/12 65/132/12 +f 65/133/7 72/127/7 67/134/7 +f 67/135/11 71/136/11 68/137/11 +f 74/125/12 78/138/12 73/139/12 +f 73/139/7 80/140/7 75/141/7 +f 75/141/11 79/142/11 76/123/11 +f 75/141/9 74/125/9 73/139/9 +f 82/143/13 84/122/13 83/144/13 +f 86/145/14 88/114/14 87/121/14 +f 92/116/15 90/146/15 89/117/15 +f 96/111/16 94/115/16 93/113/16 +f 83/147/7 91/148/7 82/149/7 +f 60/99/7 58/108/7 57/100/7 +f 62/102/8 63/107/8 64/103/8 +f 57/105/9 62/102/9 61/104/9 +f 60/99/10 64/103/10 63/107/10 +f 96/111/9 85/112/9 86/150/9 +f 86/150/9 81/151/9 82/109/9 +f 82/109/9 91/152/9 92/110/9 +f 92/110/9 95/153/9 96/111/9 +f 96/111/9 86/150/9 82/109/9 +f 85/112/8 96/111/8 93/113/8 +f 94/115/11 95/154/11 92/116/11 +f 90/119/10 83/155/10 84/156/10 +f 84/156/10 87/157/10 88/114/10 +f 88/114/10 93/113/10 94/118/10 +f 94/118/10 89/158/10 90/119/10 +f 90/119/10 84/156/10 88/114/10 +f 81/120/12 86/145/12 87/121/12 +f 76/123/8 79/159/8 77/124/8 +f 69/126/10 71/136/10 72/127/10 +f 68/129/8 71/136/8 69/126/8 +f 66/131/12 69/126/12 70/128/12 +f 65/133/7 70/128/7 72/127/7 +f 67/135/11 72/127/11 71/136/11 +f 74/125/12 77/160/12 78/138/12 +f 73/139/7 78/161/7 80/140/7 +f 75/141/11 80/162/11 79/142/11 +f 75/141/9 76/123/9 74/125/9 +f 82/143/13 81/120/13 84/122/13 +f 86/145/14 85/112/14 88/114/14 +f 92/116/15 91/148/15 90/146/15 +f 96/111/16 95/154/16 94/115/16 +f 83/147/7 90/146/7 91/148/7 +o ArmLower +v -0.250000 1.500000 -3.750000 +v 0.250000 1.500000 -3.750000 +v -0.250000 1.500000 -8.250000 +v 0.250000 1.500000 -8.250000 +v -0.250000 2.000000 -8.250000 +v -0.250000 2.000000 -3.750000 +v 0.250000 2.000000 -3.750000 +v 0.250000 2.000000 -8.250000 +v 0.312500 1.625000 -8.125000 +v 0.312500 1.875000 -8.125000 +v 0.312500 1.625000 -7.875000 +v 0.312500 1.875000 -7.875000 +v 0.375000 1.875000 -8.125000 +v 0.375000 1.625000 -8.125000 +v 0.375000 1.875000 -7.875000 +v 0.375000 1.625000 -7.875000 +v -0.375000 1.625000 -8.125000 +v -0.375000 1.875000 -8.125000 +v -0.375000 1.625000 -7.875000 +v -0.375000 1.875000 -7.875000 +v -0.312500 1.875000 -8.125000 +v -0.312500 1.625000 -8.125000 +v -0.312500 1.875000 -7.875000 +v -0.312500 1.625000 -7.875000 +v -0.312500 1.437500 -8.375000 +v -0.312500 1.375000 -8.312500 +v 0.312500 1.375000 -8.312500 +v 0.312500 1.437500 -8.375000 +v -0.312500 2.125000 -8.312500 +v -0.312500 2.062500 -8.375000 +v 0.312500 2.062500 -8.375000 +v 0.312500 2.125000 -8.312500 +v 0.312500 1.437500 -7.625000 +v 0.312500 1.375000 -7.687500 +v -0.312500 1.375000 -7.687500 +v -0.312500 1.437500 -7.625000 +v 0.312500 2.125000 -7.687500 +v 0.312500 2.062500 -7.625000 +v -0.312500 2.062500 -7.625000 +v -0.312500 2.125000 -7.687500 +vt 0.222222 0.780488 +vt 0.277778 0.341463 +vt 0.277778 0.780488 +vt 0.111111 0.341463 +vt 0.166667 0.780488 +vt 0.111111 0.780488 +vt 0.055556 0.341463 +vt 0.055556 0.780488 +vt 0.166667 0.341463 +vt 0.222222 0.341463 +vt 0.333333 0.207317 +vt 0.409722 0.213415 +vt 0.402778 0.280488 +vt 0.333333 0.280488 +vt 0.402778 0.341463 +vt 0.333333 0.341463 +vt 0.409722 0.341463 +vt 0.479167 0.280488 +vt 0.479167 0.341463 +vt 0.409722 0.347561 +vt 0.402778 0.414634 +vt 0.256944 0.280488 +vt 0.326389 0.341463 +vt 0.256944 0.341463 +vt 0.291667 0.213415 +vt 0.319444 0.207317 +vt 0.319444 0.213415 +vt 0.319444 0.237805 +vt 0.291667 0.213415 +vt 0.319444 0.213415 +vt 0.291667 0.243902 +vt 0.319444 0.243902 +vt 0.326389 0.237805 +vt 0.326389 0.213415 +vt 0.319444 0.207317 +vt 0.291667 0.207317 +vt 0.284722 0.213415 +vt 0.291667 0.237805 +vt 0.284722 0.237805 +vt 0.326389 0.237805 +vt 0.319444 0.237805 +vt 0.291667 0.243902 +vt 0.291667 0.237805 +vt 0.284722 0.213415 +vt 0.250000 0.280488 +vt 0.250000 0.341463 +vt 0.326389 0.280488 +vt 0.486111 0.341463 +vt 0.555556 0.341463 +vt 0.486111 0.280488 +vt 0.555556 0.280488 +vt 0.326389 0.274390 +vt 0.326389 0.213415 +vt 0.402778 0.207317 +vt 0.409722 0.274390 +vt 0.409722 0.280488 +vt 0.333333 0.414634 +vt 0.326389 0.408537 +vt 0.326389 0.347561 +vt 0.409722 0.408537 +vt 0.291667 0.207317 +vt 0.326389 0.213415 +vt 0.319444 0.243902 +vt 0.284722 0.237805 +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.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 100/163/17 97/164/17 99/165/17 +f 102/166/18 104/167/18 101/168/18 +f 97/169/19 101/168/19 99/170/19 +f 100/163/20 103/171/20 98/172/20 +f 122/173/19 132/174/19 136/175/19 +f 125/176/18 133/177/18 128/178/18 +f 134/179/21 132/180/21 129/181/21 +f 128/178/20 134/182/20 130/183/20 +f 121/184/22 127/185/22 124/186/22 +f 116/187/18 117/188/18 114/189/18 +f 109/190/20 112/191/20 110/192/20 +f 108/193/18 109/190/18 106/194/18 +f 106/195/22 110/192/22 105/196/22 +f 105/197/17 112/191/17 107/198/17 +f 107/199/21 111/200/21 108/201/21 +f 114/189/22 118/202/22 113/203/22 +f 113/203/17 120/204/17 115/205/17 +f 115/205/21 119/206/21 116/187/21 +f 115/205/19 114/189/19 113/203/19 +f 122/207/23 124/186/23 123/208/23 +f 126/209/24 128/178/24 127/185/24 +f 132/180/25 130/210/25 129/181/25 +f 136/175/26 134/179/26 133/177/26 +f 123/211/17 131/212/17 122/213/17 +f 100/163/17 98/172/17 97/164/17 +f 102/166/18 103/171/18 104/167/18 +f 97/169/19 102/166/19 101/168/19 +f 100/163/20 104/167/20 103/171/20 +f 136/175/19 125/176/19 126/214/19 +f 126/214/19 121/215/19 122/173/19 +f 122/173/19 131/216/19 132/174/19 +f 132/174/19 135/217/19 136/175/19 +f 136/175/19 126/214/19 122/173/19 +f 125/176/18 136/175/18 133/177/18 +f 134/179/21 135/218/21 132/180/21 +f 130/183/20 123/219/20 124/220/20 +f 124/220/20 127/221/20 128/178/20 +f 128/178/20 133/177/20 134/182/20 +f 134/182/20 129/222/20 130/183/20 +f 130/183/20 124/220/20 128/178/20 +f 121/184/22 126/209/22 127/185/22 +f 116/187/18 119/223/18 117/188/18 +f 109/190/20 111/200/20 112/191/20 +f 108/193/18 111/200/18 109/190/18 +f 106/195/22 109/190/22 110/192/22 +f 105/197/17 110/192/17 112/191/17 +f 107/199/21 112/191/21 111/200/21 +f 114/189/22 117/224/22 118/202/22 +f 113/203/17 118/225/17 120/204/17 +f 115/205/21 120/226/21 119/206/21 +f 115/205/19 116/187/19 114/189/19 +f 122/207/23 121/184/23 124/186/23 +f 126/209/24 125/176/24 128/178/24 +f 132/180/25 131/212/25 130/210/25 +f 136/175/26 135/218/26 134/179/26 +f 123/211/17 130/210/17 131/212/17 +o ArmTip +v -0.250000 1.500000 -7.750000 +v 0.250000 1.500000 -7.750000 +v -0.250000 1.500000 -10.250000 +v 0.250000 1.500000 -10.250000 +v -0.250000 2.000000 -10.250000 +v -0.250000 2.000000 -7.750000 +v 0.250000 2.000000 -7.750000 +v 0.250000 2.000000 -10.250000 +v -0.250000 1.875000 -10.250000 +v -0.250000 1.625000 -8.750000 +v -0.250000 1.625000 -10.250000 +v 0.250000 1.875000 -10.250000 +v -0.250000 1.875000 -8.750000 +v 0.250000 1.625000 -10.250000 +v 0.250000 1.875000 -8.750000 +v 0.250000 1.625000 -8.750000 +vt 0.444444 0.658537 +vt 0.500000 0.414634 +vt 0.500000 0.658537 +vt 0.333333 0.414634 +vt 0.388889 0.658537 +vt 0.333333 0.658537 +vt 0.500000 0.670732 +vt 0.444444 0.817073 +vt 0.444444 0.670732 +vt 0.333333 0.670732 +vt 0.388889 0.670732 +vt 0.333333 0.817073 +vt 0.291667 0.512195 +vt 0.277778 0.658537 +vt 0.277778 0.414634 +vt 0.319444 0.512195 +vt 0.500000 0.841463 +vt 0.444444 0.841463 +vt 0.402778 0.512195 +vt 0.388889 0.414634 +vt 0.430556 0.512195 +vt 0.444444 0.414634 +vt 0.500000 0.817073 +vt 0.388889 0.817073 +vt 0.291667 0.658537 +vt 0.319444 0.658537 +vt 0.402778 0.658537 +vt 0.430556 0.658537 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 0.0000 +s off +f 140/227/27 137/228/27 139/229/27 +f 142/230/28 144/231/28 141/232/28 +f 147/233/28 152/234/28 150/235/28 +f 145/236/29 144/231/29 148/237/29 +f 148/237/27 149/238/27 145/236/27 +f 139/229/29 150/235/29 140/227/29 +f 146/239/30 139/240/30 137/241/30 +f 141/232/30 149/242/30 142/230/30 +f 152/234/29 149/243/29 151/244/29 +f 142/230/30 146/239/30 137/241/30 +f 151/245/31 144/231/31 143/246/31 +f 140/227/31 152/247/31 138/248/31 +f 152/247/31 143/246/31 138/248/31 +f 140/227/27 138/248/27 137/228/27 +f 142/230/28 143/246/28 144/231/28 +f 147/233/28 146/249/28 152/234/28 +f 145/236/29 141/232/29 144/231/29 +f 148/237/27 151/250/27 149/238/27 +f 139/229/29 147/233/29 150/235/29 +f 146/239/30 147/251/30 139/240/30 +f 141/232/30 145/252/30 149/242/30 +f 152/234/29 146/249/29 149/243/29 +f 142/230/30 149/242/30 146/239/30 +f 151/245/31 148/253/31 144/231/31 +f 140/227/31 150/254/31 152/247/31 +f 152/247/31 151/245/31 143/246/31 +o Sawblade +v -0.125000 1.500000 -10.125000 +v 0.125000 1.500000 -10.125000 +v -0.125000 1.500000 -9.875000 +v 0.125000 1.500000 -9.875000 +v 0.125000 1.437500 -10.125000 +v -0.125000 1.437500 -10.125000 +v 0.125000 1.437500 -9.875000 +v -0.125000 1.437500 -9.875000 +v -0.125000 2.062500 -10.125000 +v 0.125000 2.062500 -10.125000 +v -0.125000 2.062500 -9.875000 +v 0.125000 2.062500 -9.875000 +v 0.125000 2.000000 -10.125000 +v -0.125000 2.000000 -10.125000 +v 0.125000 2.000000 -9.875000 +v -0.125000 2.000000 -9.875000 +v 0.000000 1.750000 -11.000000 +v -0.382683 1.750000 -10.923880 +v -0.707107 1.750000 -10.707107 +v -0.923880 1.750000 -10.382684 +v -1.000000 1.750000 -10.000000 +v -0.923880 1.750000 -9.617316 +v -0.707107 1.750000 -9.292893 +v -0.382683 1.750000 -9.076120 +v -0.000000 1.750000 -9.000000 +v 0.382683 1.750000 -9.076120 +v 0.707107 1.750000 -9.292893 +v 0.923880 1.750000 -9.617316 +v 1.000000 1.750000 -10.000000 +v 0.923879 1.750000 -10.382684 +v 0.707107 1.750000 -10.707107 +v 0.382683 1.750000 -10.923880 +v 0.000000 1.750000 -11.125000 +v -0.430519 1.750000 -11.039365 +v -0.795495 1.750000 -10.795495 +v -1.039364 1.750000 -10.430519 +v -1.125000 1.750000 -10.000000 +v -1.039364 1.750000 -9.569481 +v -0.795495 1.750000 -9.204505 +v -0.430519 1.750000 -8.960635 +v -0.000000 1.750000 -8.875000 +v 0.430519 1.750000 -8.960635 +v 0.795495 1.750000 -9.204505 +v 1.039364 1.750000 -9.569481 +v 1.125000 1.750000 -10.000000 +v 1.039364 1.750000 -10.430519 +v 0.795495 1.750000 -10.795495 +v 0.430518 1.750000 -11.039365 +v -0.125000 1.625000 -9.875000 +v -0.125000 1.875000 -9.875000 +v -0.125000 1.625000 -10.125000 +v -0.125000 1.875000 -10.125000 +v 0.125000 1.625000 -9.875000 +v 0.125000 1.875000 -9.875000 +v 0.125000 1.625000 -10.125000 +v 0.125000 1.875000 -10.125000 +v 0.000000 1.750000 -11.000000 +v -0.382683 1.750000 -10.923880 +v -0.707107 1.750000 -10.707107 +v -0.923880 1.750000 -10.382684 +v -1.000000 1.750000 -10.000000 +v -0.923880 1.750000 -9.617316 +v -0.707107 1.750000 -9.292893 +v -0.382683 1.750000 -9.076120 +v -0.000000 1.750000 -9.000000 +v 0.382683 1.750000 -9.076120 +v 0.707107 1.750000 -9.292893 +v 0.923880 1.750000 -9.617316 +v 1.000000 1.750000 -10.000000 +v 0.923879 1.750000 -10.382684 +v 0.707107 1.750000 -10.707107 +v 0.382683 1.750000 -10.923880 +v 0.000000 1.750000 -11.125000 +v -0.430519 1.750000 -11.039365 +v -0.795495 1.750000 -10.795495 +v -1.039364 1.750000 -10.430519 +v -1.125000 1.750000 -10.000000 +v -1.039364 1.750000 -9.569481 +v -0.795495 1.750000 -9.204505 +v -0.430519 1.750000 -8.960635 +v -0.000000 1.750000 -8.875000 +v 0.430519 1.750000 -8.960635 +v 0.795495 1.750000 -9.204505 +v 1.039364 1.750000 -9.569481 +v 1.125000 1.750000 -10.000000 +v 1.039364 1.750000 -10.430519 +v 0.795495 1.750000 -10.795495 +v 0.430518 1.750000 -11.039365 +vt 0.895833 0.750000 +vt 0.923611 0.743902 +vt 0.923611 0.750000 +vt 0.895833 0.713415 +vt 0.923611 0.689024 +vt 0.923611 0.713415 +vt 0.888889 0.689024 +vt 0.888889 0.713415 +vt 0.895833 0.719512 +vt 0.923611 0.719512 +vt 0.930556 0.713415 +vt 0.930556 0.689024 +vt 0.923611 0.682927 +vt 0.895833 0.689024 +vt 0.895833 0.682927 +vt 0.930556 0.774390 +vt 0.923611 0.774390 +vt 0.895833 0.780488 +vt 0.895833 0.774390 +vt 0.888889 0.750000 +vt 0.703555 0.959219 +vt 0.625000 0.987789 +vt 0.625000 0.792698 +vt 0.522363 0.927573 +vt 0.509534 0.932239 +vt 0.513907 0.890244 +vt 0.546445 0.959219 +vt 0.536626 0.967841 +vt 0.582486 0.980364 +vt 0.577172 0.991629 +vt 0.625000 0.999982 +vt 0.667514 0.980364 +vt 0.672828 0.991629 +vt 0.713374 0.967841 +vt 0.727637 0.927573 +vt 0.740467 0.932239 +vt 0.736093 0.890244 +vt 0.749980 0.890244 +vt 0.727637 0.852915 +vt 0.740467 0.848249 +vt 0.703555 0.821269 +vt 0.713374 0.812647 +vt 0.667514 0.800124 +vt 0.672828 0.788859 +vt 0.625000 0.780505 +vt 0.582486 0.800124 +vt 0.577172 0.788859 +vt 0.546445 0.821269 +vt 0.536626 0.812647 +vt 0.522363 0.852915 +vt 0.509534 0.848249 +vt 0.500020 0.890244 +vt 0.916667 0.743902 +vt 0.888889 0.719512 +vt 0.916667 0.719512 +vt 1.000000 0.743902 +vt 0.972222 0.719512 +vt 1.000000 0.719512 +vt 0.972222 0.743902 +vt 0.944444 0.719512 +vt 0.944444 0.743902 +vt 0.703555 0.821269 +vt 0.546445 0.821269 +vt 0.546445 0.959219 +vt 0.522363 0.927573 +vt 0.513907 0.890244 +vt 0.509534 0.932239 +vt 0.536626 0.967841 +vt 0.582486 0.980364 +vt 0.577172 0.991629 +vt 0.625000 0.987789 +vt 0.625000 0.999982 +vt 0.667514 0.980364 +vt 0.672828 0.991629 +vt 0.703555 0.959219 +vt 0.713374 0.967841 +vt 0.727637 0.927573 +vt 0.740467 0.932239 +vt 0.736093 0.890244 +vt 0.749980 0.890244 +vt 0.727637 0.852915 +vt 0.740467 0.848249 +vt 0.713374 0.812647 +vt 0.667514 0.800124 +vt 0.672828 0.788859 +vt 0.625000 0.792698 +vt 0.625000 0.780505 +vt 0.582486 0.800124 +vt 0.577172 0.788859 +vt 0.536626 0.812647 +vt 0.522363 0.852915 +vt 0.509534 0.848249 +vt 0.500020 0.890244 +vt 0.895833 0.743902 +vt 0.930556 0.750000 +vt 0.923611 0.780488 +vt 0.888889 0.774390 +vt 0.888889 0.743902 +vn 1.0000 0.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn 0.0000 1.0000 0.0000 +s off +f 164/255/32 165/256/32 162/257/32 +f 157/258/33 160/259/33 158/260/33 +f 156/261/32 157/258/32 154/262/32 +f 154/263/34 158/260/34 153/264/34 +f 153/265/35 160/259/35 155/266/35 +f 155/267/36 159/268/36 156/269/36 +f 162/257/34 166/270/34 161/271/34 +f 161/271/35 168/272/35 163/273/35 +f 163/273/36 167/274/36 164/255/36 +f 163/273/37 162/257/37 161/271/37 +f 183/275/37 169/276/37 177/277/37 +f 172/278/37 188/279/37 173/280/37 +f 171/281/37 187/282/37 172/278/37 +f 170/283/37 186/284/37 171/281/37 +f 169/276/37 185/285/37 170/283/37 +f 184/286/37 200/287/37 169/276/37 +f 183/275/37 199/288/37 184/286/37 +f 182/289/37 198/290/37 183/275/37 +f 181/291/37 197/292/37 182/289/37 +f 180/293/37 196/294/37 181/291/37 +f 179/295/37 195/296/37 180/293/37 +f 178/297/37 194/298/37 179/295/37 +f 177/277/37 193/299/37 178/297/37 +f 176/300/37 192/301/37 177/277/37 +f 175/302/37 191/303/37 176/300/37 +f 174/304/37 190/305/37 175/302/37 +f 173/280/37 189/306/37 174/304/37 +f 202/307/35 203/308/35 201/309/35 +f 204/310/34 207/311/34 203/312/34 +f 208/313/32 205/314/32 207/311/32 +f 206/315/36 201/309/36 205/314/36 +f 219/316/33 215/317/33 211/318/33 +f 212/319/33 213/320/33 228/321/33 +f 211/318/33 212/319/33 227/322/33 +f 210/323/33 211/318/33 226/324/33 +f 209/325/33 210/323/33 225/326/33 +f 224/327/33 209/325/33 240/328/33 +f 223/329/33 224/327/33 239/330/33 +f 222/331/33 223/329/33 238/332/33 +f 221/333/33 222/331/33 237/334/33 +f 220/335/33 221/333/33 236/336/33 +f 219/316/33 220/335/33 235/337/33 +f 218/338/33 219/316/33 234/339/33 +f 217/340/33 218/338/33 233/341/33 +f 216/342/33 217/340/33 232/343/33 +f 215/317/33 216/342/33 231/344/33 +f 214/345/33 215/317/33 230/346/33 +f 213/320/33 214/345/33 229/347/33 +f 164/255/32 167/348/32 165/256/32 +f 157/258/33 159/268/33 160/259/33 +f 156/261/32 159/268/32 157/258/32 +f 154/263/34 157/258/34 158/260/34 +f 153/265/35 158/260/35 160/259/35 +f 155/267/36 160/259/36 159/268/36 +f 162/257/34 165/349/34 166/270/34 +f 161/271/35 166/350/35 168/272/35 +f 163/273/36 168/351/36 167/274/36 +f 163/273/37 164/255/37 162/257/37 +f 169/276/37 170/283/37 171/281/37 +f 171/281/37 172/278/37 173/280/37 +f 173/280/37 174/304/37 175/302/37 +f 175/302/37 176/300/37 177/277/37 +f 177/277/37 178/297/37 179/295/37 +f 179/295/37 180/293/37 181/291/37 +f 181/291/37 182/289/37 183/275/37 +f 183/275/37 184/286/37 169/276/37 +f 169/276/37 171/281/37 173/280/37 +f 173/280/37 175/302/37 169/276/37 +f 175/302/37 177/277/37 169/276/37 +f 177/277/37 179/295/37 181/291/37 +f 181/291/37 183/275/37 177/277/37 +f 202/307/35 204/352/35 203/308/35 +f 204/310/34 208/313/34 207/311/34 +f 208/313/32 206/315/32 205/314/32 +f 206/315/36 202/307/36 201/309/36 +f 211/318/33 210/323/33 209/325/33 +f 209/325/33 224/327/33 223/329/33 +f 223/329/33 222/331/33 221/333/33 +f 221/333/33 220/335/33 219/316/33 +f 219/316/33 218/338/33 217/340/33 +f 217/340/33 216/342/33 215/317/33 +f 215/317/33 214/345/33 213/320/33 +f 213/320/33 212/319/33 211/318/33 +f 211/318/33 209/325/33 223/329/33 +f 223/329/33 221/333/33 219/316/33 +f 219/316/33 217/340/33 215/317/33 +f 215/317/33 213/320/33 211/318/33 +f 211/318/33 223/329/33 219/316/33 +o Main +v -0.500000 1.000000 0.500000 +v 0.500000 1.000000 0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 1.250000 -0.500000 +v 0.500000 1.500000 0.250000 +v 0.375000 2.000000 0.250000 +v 0.500000 1.250000 -0.500000 +v -0.500000 1.500000 -0.250000 +v -0.500000 1.500000 0.500000 +v 0.500000 1.500000 0.500000 +v 0.500000 1.500000 -0.250000 +v 0.375000 2.000000 -0.250000 +v 0.500000 1.500000 -0.250000 +v 0.500000 6.000000 -0.250000 +v 0.375000 5.500000 -0.250000 +v 0.500000 6.000000 0.250000 +v 0.375000 5.500000 0.250000 +v -0.375000 2.000000 0.250000 +v -0.500000 1.500000 0.250000 +v -0.500000 1.500000 -0.250000 +v -0.375000 2.000000 -0.250000 +v -0.375000 5.500000 -0.250000 +v -0.500000 6.000000 -0.250000 +v -0.375000 5.500000 0.250000 +v -0.500000 6.000000 0.250000 +v 0.312500 2.000000 0.250000 +v 0.312500 2.000000 -0.250000 +v -0.312500 2.000000 0.250000 +v -0.312500 2.000000 -0.250000 +v 0.312500 1.500000 0.250000 +v 0.312500 1.500000 -0.250000 +v -0.312500 1.500000 0.250000 +v -0.312500 1.500000 -0.250000 +v 0.500000 1.625000 -0.125000 +v 0.500000 1.875000 -0.125000 +v 0.500000 1.625000 0.125000 +v 0.500000 1.875000 0.125000 +v 0.562500 1.875000 -0.125000 +v 0.562500 1.625000 -0.125000 +v 0.562500 1.875000 0.125000 +v 0.562500 1.625000 0.125000 +v -0.562500 1.625000 -0.125000 +v -0.562500 1.875000 -0.125000 +v -0.562500 1.625000 0.125000 +v -0.562500 1.875000 0.125000 +v -0.500000 1.875000 -0.125000 +v -0.500000 1.625000 -0.125000 +v -0.500000 1.875000 0.125000 +v -0.500000 1.625000 0.125000 +v -0.750000 1.250000 0.500000 +v 0.750000 1.250000 0.500000 +v -0.750000 2.000000 0.500000 +v 0.750000 2.000000 0.500000 +v -0.750000 1.250000 1.250000 +v 0.750000 1.250000 1.250000 +v -0.750000 2.000000 1.250000 +v 0.750000 2.000000 1.250000 +v 0.500000 1.312500 0.375000 +v 0.500000 1.062500 0.375000 +v 0.500000 1.312500 -0.375000 +v 0.500000 1.062500 -0.375000 +v 0.750000 1.312500 -0.375000 +v 0.750000 1.312500 0.375000 +v 0.750000 1.062500 0.375000 +v 0.750000 1.062500 -0.375000 +v 0.500000 1.375000 0.375000 +v 0.500000 1.375000 -0.375000 +v 0.750000 1.375000 -0.375000 +v 0.750000 1.375000 0.375000 +v 0.500000 1.500000 -0.375000 +v 0.500000 1.500000 0.375000 +v 0.750000 1.500000 -0.375000 +v 0.750000 1.500000 0.375000 +v 0.531250 1.312500 0.281250 +v 0.531250 1.312500 -0.281250 +v 0.718750 1.312500 -0.281250 +v 0.718750 1.312500 0.281250 +v 0.531250 1.375000 0.281250 +v 0.531250 1.375000 -0.281250 +v 0.718750 1.375000 -0.281250 +v 0.718750 1.375000 0.281250 +v 0.562500 2.125000 0.375000 +v 0.562500 1.125000 0.375000 +v 0.687500 2.125000 0.375000 +v 0.687500 1.125000 0.375000 +v 0.562500 2.000000 0.500000 +v 0.562500 1.125000 0.500000 +v 0.687500 2.000000 0.500000 +v 0.687500 1.125000 0.500000 +v 0.562500 2.125000 1.500000 +v 0.687500 2.125000 1.500000 +v 0.562500 2.000000 1.500000 +v 0.687500 2.000000 1.500000 +v 0.625000 1.275888 -0.375000 +v 0.536612 1.187500 -0.375000 +v 0.713388 1.187500 -0.375000 +v 0.625000 1.099112 -0.375000 +v 0.536612 1.187500 -0.437500 +v 0.625000 1.275888 -0.437500 +v 0.625000 1.099112 -0.437500 +v 0.713388 1.187500 -0.437500 +v -0.500000 1.312500 -0.375000 +v -0.500000 1.312500 0.375000 +v -0.500000 1.062500 0.375000 +v -0.500000 1.062500 -0.375000 +v -0.562500 1.312500 -0.375000 +v -0.562500 1.312500 0.375000 +v -0.562500 1.062500 0.375000 +v -0.562500 1.062500 -0.375000 +v -0.312500 1.437500 -0.375000 +v -0.312500 1.375000 -0.312500 +v 0.312500 1.375000 -0.312500 +v 0.312500 1.437500 -0.375000 +v -0.312500 2.125000 -0.312500 +v -0.312500 2.062500 -0.375000 +v 0.312500 2.062500 -0.375000 +v 0.312500 2.125000 -0.312500 +v 0.312500 1.437500 0.375000 +v 0.312500 1.375000 0.312500 +v -0.312500 1.375000 0.312500 +v -0.312500 1.437500 0.375000 +v 0.312500 2.125000 0.312500 +v 0.312500 2.062500 0.375000 +v -0.312500 2.062500 0.375000 +v -0.312500 2.125000 0.312500 +vt 0.611111 -0.000000 +vt 0.500000 0.091463 +vt 0.500000 -0.000000 +vt 1.000000 0.341463 +vt 0.944444 0.682927 +vt 0.944444 0.341463 +vt 0.791667 0.341463 +vt 0.777778 0.731707 +vt 0.777778 0.292683 +vt 0.611111 0.140244 +vt 0.611111 0.091463 +vt 0.500000 0.262195 +vt 0.611111 0.237805 +vt 0.611111 0.262195 +vt 0.611111 0.213415 +vt 0.666667 0.140244 +vt 0.666667 0.237805 +vt 0.500000 0.140244 +vt 0.500000 0.213415 +vt 0.611111 0.292683 +vt 0.555556 0.731707 +vt 0.555556 0.292683 +vt 0.500000 0.237805 +vt 0.888889 0.292683 +vt 0.875000 0.682927 +vt 0.875000 0.341463 +vt 0.472222 0.237805 +vt 0.444444 0.237805 +vt 0.944444 0.341463 +vt 0.888889 0.682927 +vt 0.888889 0.341463 +vt 0.625000 0.341463 +vt 0.611111 0.731707 +vt 0.722222 0.731707 +vt 0.722222 0.292683 +vt 0.708333 0.682927 +vt 0.708333 0.341463 +vt 0.625000 0.634146 +vt 0.625000 0.682927 +vt 0.888889 0.731707 +vt 0.791667 0.682927 +vt 0.722222 0.780488 +vt 0.611111 0.780488 +vt 1.000000 0.335366 +vt 0.944444 0.335366 +vt 0.319444 0.237805 +vt 0.291667 0.213415 +vt 0.319444 0.213415 +vt 0.291667 0.243902 +vt 0.319444 0.243902 +vt 0.631944 0.292683 +vt 0.701389 0.292683 +vt 0.798611 0.292683 +vt 0.868056 0.292683 +vt 0.319444 0.207317 +vt 0.291667 0.207317 +vt 0.326389 0.237805 +vt 0.326389 0.213415 +vt 0.284722 0.213415 +vt 0.291667 0.237805 +vt 0.284722 0.237805 +vt 0.291667 0.237805 +vt 0.284722 0.213415 +vt 0.291667 0.213415 +vt 0.319444 0.207317 +vt 0.319444 0.213415 +vt 0.326389 0.237805 +vt 0.319444 0.237805 +vt 0.291667 0.243902 +vt 0.750000 0.292683 +vt 0.916667 0.219512 +vt 0.916667 0.292683 +vt 0.916667 0.146341 +vt 0.750000 0.073171 +vt 0.916667 0.073171 +vt 1.000000 0.146341 +vt 1.000000 0.219512 +vt 0.916667 0.000000 +vt 0.750000 0.000000 +vt 0.666667 0.219512 +vt 0.750000 0.146341 +vt 0.750000 0.219512 +vt 0.250000 0.024390 +vt 0.333333 0.048780 +vt 0.250000 0.048780 +vt 0.361111 0.048780 +vt 0.333333 0.024390 +vt 0.361111 0.024390 +vt 0.222222 0.024390 +vt 0.222222 0.048780 +vt 0.333333 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.073171 +vt 0.333333 0.073171 +vt 0.458333 0.024390 +vt 0.375000 0.000000 +vt 0.458333 0.000000 +vt 0.375000 0.060976 +vt 0.458333 0.036585 +vt 0.458333 0.060976 +vt 0.472222 0.060976 +vt 0.472222 0.036585 +vt 0.375000 0.073171 +vt 0.458333 0.073171 +vt 0.361111 0.036585 +vt 0.361111 0.060976 +vt 0.375000 0.036585 +vt 0.375000 0.024390 +vt 0.305556 0.079268 +vt 0.243056 0.073171 +vt 0.243056 0.079268 +vt 0.326389 0.079268 +vt 0.305556 0.073171 +vt 0.388889 0.073171 +vt 0.388889 0.079268 +vt 0.222222 0.073171 +vt 0.222222 0.079268 +vt 0.013889 0.317073 +vt 0.027778 0.219512 +vt 0.027778 0.317073 +vt 0.041667 0.219512 +vt 0.055556 0.304878 +vt 0.041667 0.304878 +vt 0.055556 0.329268 +vt 0.041667 0.426829 +vt 0.041667 0.329268 +vt 0.013889 0.219512 +vt 0.000000 0.304878 +vt 0.000000 0.219512 +vt 0.027778 0.207317 +vt 0.013889 0.426829 +vt 0.027778 0.439024 +vt 0.027778 0.426829 +vt 0.000000 0.329268 +vt -0.000000 0.426829 +vt 0.229167 0.054878 +vt 0.243056 0.067073 +vt 0.229167 0.067073 +vt 0.243056 0.048780 +vt 0.229167 0.048780 +vt 0.222222 0.054878 +vt 0.222222 0.067073 +vt 0.229167 0.073171 +vt 0.243056 0.073171 +vt 0.250000 0.067073 +vt 0.243056 0.054878 +vt 0.250000 0.054878 +vt 0.006944 0.079268 +vt 0.090278 0.054878 +vt 0.090278 0.079268 +vt 0.097222 0.079268 +vt 0.097222 0.054878 +vt 0.090278 0.048780 +vt 0.006944 0.054878 +vt 0.006944 0.048780 +vt 0.006944 0.085366 +vt 0.090278 0.085366 +vt 0.000000 0.054878 +vt 0.000000 0.079268 +vt 0.333333 0.207317 +vt 0.409722 0.213415 +vt 0.402778 0.280488 +vt 0.333333 0.280488 +vt 0.402778 0.341463 +vt 0.333333 0.341463 +vt 0.409722 0.341463 +vt 0.479167 0.280488 +vt 0.479167 0.341463 +vt 0.409722 0.347561 +vt 0.402778 0.414634 +vt 0.256944 0.280488 +vt 0.326389 0.341463 +vt 0.256944 0.341463 +vt 0.250000 0.280488 +vt 0.250000 0.341463 +vt 0.326389 0.280488 +vt 1.000000 0.682927 +vt 0.638889 0.237805 +vt 0.444444 0.140244 +vt 0.944444 0.682927 +vt 0.708333 0.634146 +vt 0.944444 0.335366 +vt 0.888889 0.335366 +vt 0.631944 0.341463 +vt 0.701389 0.341463 +vt 0.798611 0.341463 +vt 0.868056 0.341463 +vt 0.284722 0.237805 +vt 0.291667 0.207317 +vt 0.326389 0.213415 +vt 0.319444 0.243902 +vt 0.666667 0.146341 +vt 0.326389 0.073171 +vt 0.055556 0.219512 +vt 0.055556 0.426829 +vt 0.013889 0.207317 +vt 0.013889 0.439024 +vt 0.326389 0.274390 +vt 0.326389 0.213415 +vt 0.402778 0.207317 +vt 0.409722 0.274390 +vt 0.409722 0.280488 +vt 0.333333 0.414634 +vt 0.326389 0.408537 +vt 0.326389 0.347561 +vt 0.409722 0.408537 +vn 0.0000 -1.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 0.7071 -0.7071 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7071 0.7071 0.0000 +vn -0.7071 -0.7071 0.0000 +vn 0.7071 -0.7071 0.0000 +vn 0.0000 -0.7071 -0.7071 +vn 0.0000 0.7071 0.7071 +s off +f 244/353/38 241/354/38 243/355/38 +f 262/356/39 265/357/39 259/358/39 +f 259/359/40 266/360/40 260/361/40 +f 251/362/40 241/354/40 242/363/40 +f 243/364/41 248/365/41 244/366/41 +f 252/367/39 242/368/39 244/369/39 +f 250/370/42 252/367/42 249/371/42 +f 254/372/39 257/373/39 246/374/39 +f 245/375/43 252/367/43 248/365/43 +f 246/376/40 258/377/40 247/378/40 +f 249/371/44 245/379/44 243/380/44 +f 247/381/44 256/382/44 253/383/44 +f 253/384/41 255/385/41 254/372/41 +f 260/361/44 264/386/44 261/387/44 +f 261/387/41 263/388/41 262/389/41 +f 258/390/38 263/388/38 256/391/38 +f 257/392/40 265/393/40 258/377/40 +f 255/385/42 266/394/42 257/395/42 +f 256/391/41 264/386/41 255/385/41 +f 259/358/42 270/396/42 262/356/42 +f 253/383/42 267/397/42 247/381/42 +f 279/398/39 282/399/39 280/400/39 +f 278/401/42 279/398/42 276/402/42 +f 272/403/41 253/384/41 254/372/41 +f 262/389/41 274/404/41 261/387/41 +f 273/405/40 259/359/40 260/361/40 +f 247/378/40 271/406/40 246/376/40 +f 275/407/38 282/399/38 277/408/38 +f 276/409/41 280/400/41 275/410/41 +f 277/411/40 281/412/40 278/413/40 +f 286/414/42 287/415/42 284/416/42 +f 284/416/41 288/417/41 283/418/41 +f 283/418/38 290/419/38 285/420/38 +f 285/420/40 289/421/40 286/414/40 +f 285/420/44 284/416/44 283/418/44 +f 291/422/41 294/423/41 292/424/41 +f 298/425/40 295/426/40 296/427/40 +f 294/423/39 296/428/39 292/429/39 +f 292/430/38 295/426/38 291/431/38 +f 291/432/44 297/433/44 293/434/44 +f 293/434/42 298/425/42 294/423/42 +f 305/435/39 303/436/39 304/437/39 +f 301/438/41 306/439/41 302/440/41 +f 300/441/40 304/437/40 299/442/40 +f 302/443/38 305/435/38 300/444/38 +f 299/445/42 303/436/42 301/446/42 +f 309/447/38 307/448/38 308/449/38 +f 312/450/42 313/451/42 311/452/42 +f 308/453/41 313/451/41 309/454/41 +f 307/455/44 311/452/44 308/456/44 +f 310/457/40 312/450/40 307/458/40 +f 309/447/39 314/459/39 310/460/39 +f 317/461/39 322/462/39 318/463/39 +f 316/464/41 321/465/41 317/461/41 +f 316/464/39 319/466/39 315/467/39 +f 318/463/40 319/468/40 315/469/40 +f 325/470/41 324/471/41 323/472/41 +f 328/473/40 329/474/40 327/475/40 +f 324/471/44 327/475/44 323/472/44 +f 329/476/38 333/477/38 327/478/38 +f 326/479/39 329/480/39 330/481/39 +f 326/479/38 328/482/38 324/471/38 +f 323/472/42 332/483/42 325/470/42 +f 333/484/40 332/483/40 331/485/40 +f 327/478/44 331/485/44 323/472/44 +f 329/486/39 332/483/39 334/487/39 +f 340/488/41 341/489/41 339/490/41 +f 337/491/45 340/488/45 335/492/45 +f 335/493/46 339/490/46 336/494/46 +f 336/495/47 341/489/47 338/496/47 +f 338/497/48 342/498/48 337/499/48 +f 347/500/44 349/501/44 348/502/44 +f 344/503/40 349/501/40 345/504/40 +f 345/505/38 350/506/38 346/507/38 +f 343/508/42 348/502/42 344/509/42 +f 346/510/41 347/500/41 343/511/41 +f 352/512/44 362/513/44 366/514/44 +f 355/515/42 363/516/42 358/517/42 +f 364/518/40 362/519/40 359/520/40 +f 358/517/39 364/521/39 360/522/39 +f 351/523/41 357/524/41 354/525/41 +f 352/526/49 354/525/49 353/527/49 +f 356/528/43 358/517/43 357/524/43 +f 366/514/50 364/518/50 363/516/50 +f 244/353/38 242/363/38 241/354/38 +f 262/356/39 263/529/39 265/357/39 +f 259/359/40 265/393/40 266/360/40 +f 251/362/40 250/370/40 241/354/40 +f 243/364/41 245/375/41 248/365/41 +f 244/369/39 248/530/39 252/367/39 +f 252/367/39 251/362/39 242/368/39 +f 250/370/42 251/362/42 252/367/42 +f 254/372/39 255/385/39 257/373/39 +f 245/375/43 249/371/43 252/367/43 +f 246/376/40 257/392/40 258/377/40 +f 243/380/44 241/531/44 249/371/44 +f 241/531/44 250/370/44 249/371/44 +f 247/381/44 258/532/44 256/382/44 +f 253/384/41 256/391/41 255/385/41 +f 260/361/44 266/360/44 264/386/44 +f 261/387/41 264/386/41 263/388/41 +f 258/390/38 265/533/38 263/388/38 +f 257/392/40 266/360/40 265/393/40 +f 255/385/42 264/386/42 266/394/42 +f 256/391/41 263/388/41 264/386/41 +f 259/358/42 269/534/42 270/396/42 +f 253/383/42 268/535/42 267/397/42 +f 279/398/39 281/412/39 282/399/39 +f 278/401/42 281/412/42 279/398/42 +f 272/403/41 268/536/41 253/384/41 +f 262/389/41 270/537/41 274/404/41 +f 273/405/40 269/538/40 259/359/40 +f 247/378/40 267/539/40 271/406/40 +f 275/407/38 280/400/38 282/399/38 +f 276/409/41 279/398/41 280/400/41 +f 277/411/40 282/399/40 281/412/40 +f 286/414/42 289/540/42 287/415/42 +f 284/416/41 287/541/41 288/417/41 +f 283/418/38 288/542/38 290/419/38 +f 285/420/40 290/543/40 289/421/40 +f 285/420/44 286/414/44 284/416/44 +f 291/422/41 293/434/41 294/423/41 +f 298/425/40 297/433/40 295/426/40 +f 294/423/39 298/425/39 296/428/39 +f 292/430/38 296/427/38 295/426/38 +f 291/432/44 295/544/44 297/433/44 +f 293/434/42 297/433/42 298/425/42 +f 305/435/39 306/439/39 303/436/39 +f 301/438/41 303/436/41 306/439/41 +f 300/441/40 305/435/40 304/437/40 +f 302/443/38 306/439/38 305/435/38 +f 299/445/42 304/437/42 303/436/42 +f 309/447/38 310/460/38 307/448/38 +f 312/450/42 314/459/42 313/451/42 +f 308/453/41 311/452/41 313/451/41 +f 307/455/44 312/450/44 311/452/44 +f 310/457/40 314/459/40 312/450/40 +f 309/447/39 313/451/39 314/459/39 +f 317/461/39 321/465/39 322/462/39 +f 316/464/41 320/545/41 321/465/41 +f 316/464/39 320/545/39 319/466/39 +f 318/463/40 322/462/40 319/468/40 +f 325/470/41 326/479/41 324/471/41 +f 328/473/40 330/546/40 329/474/40 +f 324/471/44 328/473/44 327/475/44 +f 329/476/38 334/547/38 333/477/38 +f 326/479/39 325/470/39 329/480/39 +f 326/479/38 330/548/38 328/482/38 +f 323/472/42 331/485/42 332/483/42 +f 333/484/40 334/549/40 332/483/40 +f 327/478/44 333/477/44 331/485/44 +f 329/486/39 325/470/39 332/483/39 +f 340/488/41 342/498/41 341/489/41 +f 337/491/45 342/498/45 340/488/45 +f 335/493/46 340/488/46 339/490/46 +f 336/495/47 339/490/47 341/489/47 +f 338/497/48 341/489/48 342/498/48 +f 347/500/44 350/506/44 349/501/44 +f 344/503/40 348/502/40 349/501/40 +f 345/505/38 349/501/38 350/506/38 +f 343/508/42 347/500/42 348/502/42 +f 346/510/41 350/506/41 347/500/41 +f 366/514/44 355/515/44 356/550/44 +f 356/550/44 351/551/44 352/512/44 +f 352/512/44 361/552/44 362/513/44 +f 362/513/44 365/553/44 366/514/44 +f 366/514/44 356/550/44 352/512/44 +f 355/515/42 366/514/42 363/516/42 +f 364/518/40 365/554/40 362/519/40 +f 360/522/39 353/555/39 354/556/39 +f 354/556/39 357/557/39 358/517/39 +f 358/517/39 363/516/39 364/521/39 +f 364/521/39 359/558/39 360/522/39 +f 360/522/39 354/556/39 358/517/39 +f 351/523/41 356/528/41 357/524/41 +f 352/526/49 351/523/49 354/525/49 +f 356/528/43 355/515/43 358/517/43 +f 366/514/50 365/554/50 364/518/50 diff --git a/src/main/resources/assets/hbm/textures/items/powder_bismuth.png b/src/main/resources/assets/hbm/textures/items/powder_bismuth.png new file mode 100644 index 000000000..f9c3d1e16 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/powder_bismuth.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/autosaw.png b/src/main/resources/assets/hbm/textures/models/machines/autosaw.png new file mode 100644 index 000000000..904021824 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/autosaw.png differ