From 78694c778e7a0472ffbb46b79c0088baebfe3ad0 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sat, 23 Feb 2019 12:06:58 +0100 Subject: [PATCH] ams replacement blocks, karl & panzerschreck, new furnace textures --- assets/hbm/lang/de_DE.lang | 4 +- assets/hbm/lang/en_US.lang | 4 +- assets/hbm/models/core_emitter.obj | 918 ++++++++++++++++++ assets/hbm/models/core_injector.obj | 416 ++++++++ assets/hbm/models/core_receiver.obj | 770 +++++++++++++++ .../hbm/textures/blocks/arc/arc_electrode.png | Bin 0 -> 361 bytes .../blocks/arc/arc_electrode_burnt.png | Bin 0 -> 361 bytes assets/hbm/textures/blocks/concrete.png | Bin 421 -> 435 bytes assets/hbm/textures/blocks/concrete_tile.png | Bin 0 -> 421 bytes .../blocks/machine_arc_furnace_bottom.png | Bin 0 -> 454 bytes .../blocks/machine_arc_furnace_front_off.png | Bin 0 -> 494 bytes .../blocks/machine_arc_furnace_front_on.png | Bin 0 -> 750 bytes .../blocks/machine_arc_furnace_side.png | Bin 0 -> 467 bytes .../blocks/machine_arc_furnace_top.png | Bin 0 -> 503 bytes .../blocks/machine_arc_furnace_top_el.png | Bin 0 -> 486 bytes .../blocks/machine_arc_furnace_top_on.png | Bin 0 -> 682 bytes assets/hbm/textures/items/gun_karl.png | Bin 0 -> 353 bytes .../hbm/textures/items/gun_panzerschreck.png | Bin 0 -> 327 bytes .../hbm/textures/models/ModelGustavYellow.png | Bin 0 -> 1557 bytes .../textures/models/ModelPanzerschreck.png | Bin 0 -> 937 bytes assets/hbm/textures/models/core_emitter.png | Bin 0 -> 489 bytes assets/hbm/textures/models/core_injector.png | Bin 0 -> 393 bytes assets/hbm/textures/models/core_receiver.png | Bin 0 -> 353 bytes .../hbm/textures/models/missileStrong_EMP.png | Bin 0 -> 7748 bytes com/hbm/blocks/ModBlocks.java | 46 +- com/hbm/blocks/machine/CoreComponent.java | 59 ++ com/hbm/blocks/machine/MachineArcFurnace.java | 280 ++++++ com/hbm/handler/guncfg/GunRocketFactory.java | 33 + com/hbm/items/ModItems.java | 6 + com/hbm/items/weapon/ItemGunBase.java | 4 +- com/hbm/main/ClientProxy.java | 6 + com/hbm/main/CraftingManager.java | 6 +- com/hbm/main/MainRegistry.java | 8 + com/hbm/main/ResourceManager.java | 10 + com/hbm/render/item/ItemRenderRpg.java | 50 +- com/hbm/render/model/ModelPanzerschreck.java | 187 ++++ .../tileentity/RenderCoreComponent.java | 70 ++ .../machine/TileEntityCoreEmitter.java | 7 + .../machine/TileEntityCoreInjector.java | 7 + .../machine/TileEntityCoreReceiver.java | 7 + .../machine/TileEntityMachineArcFurnace.java | 336 +++++++ 41 files changed, 3213 insertions(+), 21 deletions(-) create mode 100644 assets/hbm/models/core_emitter.obj create mode 100644 assets/hbm/models/core_injector.obj create mode 100644 assets/hbm/models/core_receiver.obj create mode 100644 assets/hbm/textures/blocks/arc/arc_electrode.png create mode 100644 assets/hbm/textures/blocks/arc/arc_electrode_burnt.png create mode 100644 assets/hbm/textures/blocks/concrete_tile.png create mode 100644 assets/hbm/textures/blocks/machine_arc_furnace_bottom.png create mode 100644 assets/hbm/textures/blocks/machine_arc_furnace_front_off.png create mode 100644 assets/hbm/textures/blocks/machine_arc_furnace_front_on.png create mode 100644 assets/hbm/textures/blocks/machine_arc_furnace_side.png create mode 100644 assets/hbm/textures/blocks/machine_arc_furnace_top.png create mode 100644 assets/hbm/textures/blocks/machine_arc_furnace_top_el.png create mode 100644 assets/hbm/textures/blocks/machine_arc_furnace_top_on.png create mode 100644 assets/hbm/textures/items/gun_karl.png create mode 100644 assets/hbm/textures/items/gun_panzerschreck.png create mode 100644 assets/hbm/textures/models/ModelGustavYellow.png create mode 100644 assets/hbm/textures/models/ModelPanzerschreck.png create mode 100644 assets/hbm/textures/models/core_emitter.png create mode 100644 assets/hbm/textures/models/core_injector.png create mode 100644 assets/hbm/textures/models/core_receiver.png create mode 100644 assets/hbm/textures/models/missileStrong_EMP.png create mode 100644 com/hbm/blocks/machine/CoreComponent.java create mode 100644 com/hbm/blocks/machine/MachineArcFurnace.java create mode 100644 com/hbm/render/model/ModelPanzerschreck.java create mode 100644 com/hbm/render/tileentity/RenderCoreComponent.java create mode 100644 com/hbm/tileentity/machine/TileEntityCoreEmitter.java create mode 100644 com/hbm/tileentity/machine/TileEntityCoreInjector.java create mode 100644 com/hbm/tileentity/machine/TileEntityCoreReceiver.java create mode 100644 com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index dd3277c02..fb417cb48 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -751,11 +751,13 @@ tile.reinforced_light.name=Verstärkter Glowstone tile.reinforced_lamp_off.name=Verstärkte Lampe tile.reinforced_lamp_on.name=Verstärkte Lampe -tile.concrete.name=Beton +tile.concrete_smooth.name=Beton +tile.concrete.name=Betonfliese tile.brick_concrete.name=Betonziegel tile.brick_obsidian.name=Obsidianziegel tile.brick_light.name=Helle Ziegel tile.asphalt.name=Asphalt +tile.brick_compound.name=Verstärkter Verbund tile.cmb_brick.name=CMB-Stahlfliese tile.cmb_brick_reinforced.name=Verstärkte CMB-Ziegel diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 68b0df274..12a3f7601 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -751,11 +751,13 @@ tile.reinforced_light.name=Reinforced Glowstone tile.reinforced_lamp_off.name=Reinforced Lamp tile.reinforced_lamp_on.name=Reinforced Lamp -tile.concrete.name=Concrete +tile.concrete_smooth.name=Concrete +tile.concrete.name=Concrete Tile tile.brick_concrete.name=Concrete Bricks tile.brick_obsidian.name=Obsidian Bricks tile.brick_light.name=Light Bricks tile.asphalt.name=Asphalt +tile.brick_compound.name=Compound Mesh tile.cmb_brick.name=CMB Steel Tile tile.cmb_brick_reinforced.name=Reinforced CMB Bricks diff --git a/assets/hbm/models/core_emitter.obj b/assets/hbm/models/core_emitter.obj new file mode 100644 index 000000000..d76a256cd --- /dev/null +++ b/assets/hbm/models/core_emitter.obj @@ -0,0 +1,918 @@ +# Blender v2.76 (sub 0) OBJ File: 'core_emitter.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.343750 0.156250 +v -0.500000 0.656250 0.156250 +v -0.500000 0.343750 -0.156250 +v -0.500000 0.656250 -0.156250 +v 0.500000 0.343750 0.156250 +v 0.500000 0.656250 0.156250 +v 0.500000 0.343750 -0.156250 +v 0.500000 0.656250 -0.156250 +v -0.156250 0.343750 -0.500000 +v -0.156250 0.656250 -0.500000 +v 0.156250 0.343750 -0.500000 +v 0.156250 0.656250 -0.500000 +v -0.156250 0.000000 0.156250 +v -0.156250 1.000000 0.156250 +v -0.156250 0.000000 -0.156250 +v -0.156250 1.000000 -0.156250 +v 0.156250 0.000000 0.156250 +v 0.156250 1.000000 0.156250 +v 0.156250 0.000000 -0.156250 +v 0.156250 1.000000 -0.156250 +v -0.500000 0.125000 0.375000 +v -0.500000 0.875000 0.375000 +v -0.500000 0.125000 -0.375000 +v -0.500000 0.875000 -0.375000 +v 0.500000 0.125000 0.375000 +v 0.500000 0.875000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.875000 -0.375000 +v -0.375000 0.125000 0.500000 +v -0.375000 0.875000 0.500000 +v -0.375000 0.125000 -0.500000 +v -0.375000 0.875000 -0.500000 +v 0.375000 0.125000 0.500000 +v 0.375000 0.875000 0.500000 +v 0.375000 0.125000 -0.500000 +v 0.375000 0.875000 -0.500000 +v -0.375000 0.000000 0.375000 +v -0.375000 1.000000 0.375000 +v -0.375000 0.000000 -0.375000 +v -0.375000 1.000000 -0.375000 +v 0.375000 0.000000 0.375000 +v 0.375000 1.000000 0.375000 +v 0.375000 0.000000 -0.375000 +v 0.375000 1.000000 -0.375000 +v -0.500000 0.343750 0.156250 +v -0.500000 0.656250 0.156250 +v -0.500000 0.343750 -0.156250 +v -0.500000 0.656250 -0.156250 +v 0.500000 0.343750 0.156250 +v 0.500000 0.656250 0.156250 +v 0.500000 0.343750 -0.156250 +v 0.500000 0.656250 -0.156250 +v -0.156250 0.343750 0.375000 +v -0.156250 0.656250 0.375000 +v -0.156250 0.343750 -0.375000 +v -0.156250 0.656250 -0.375000 +v 0.156250 0.343750 0.375000 +v 0.156250 0.656250 0.375000 +v 0.156250 0.343750 -0.375000 +v 0.156250 0.656250 -0.375000 +v -0.156250 0.000000 0.156250 +v -0.156250 1.000000 0.156250 +v -0.156250 0.000000 -0.156250 +v -0.156250 1.000000 -0.156250 +v 0.156250 0.000000 0.156250 +v 0.156250 1.000000 0.156250 +v 0.156250 0.000000 -0.156250 +v 0.156250 1.000000 -0.156250 +v -0.156250 0.125000 0.156250 +v -0.156250 0.875000 0.156250 +v -0.156250 0.125000 -0.156250 +v -0.156250 0.875000 -0.156250 +v 0.156250 0.125000 0.156250 +v 0.156250 0.875000 0.156250 +v 0.156250 0.125000 -0.156250 +v 0.156250 0.875000 -0.156250 +v -0.375000 0.343750 0.156250 +v -0.375000 0.656250 0.156250 +v -0.375000 0.343750 -0.156250 +v -0.375000 0.656250 -0.156250 +v 0.375000 0.343750 0.156250 +v 0.375000 0.656250 0.156250 +v 0.375000 0.343750 -0.156250 +v 0.375000 0.656250 -0.156250 +v -0.375000 0.125000 0.375000 +v -0.375000 0.125000 -0.375000 +v 0.375000 0.125000 0.375000 +v 0.375000 0.125000 -0.375000 +v -0.375000 0.875000 0.375000 +v -0.375000 0.875000 -0.375000 +v 0.375000 0.875000 0.375000 +v 0.375000 0.875000 -0.375000 +v 0.000000 0.750000 0.375000 +v -0.095671 0.730970 0.375000 +v -0.176777 0.676777 0.375000 +v -0.230970 0.595671 0.375000 +v -0.250000 0.500000 0.375000 +v -0.230970 0.404329 0.375000 +v -0.176777 0.323223 0.375000 +v -0.095671 0.269030 0.375000 +v -0.000000 0.250000 0.375000 +v 0.095671 0.269030 0.375000 +v 0.176777 0.323223 0.375000 +v 0.230970 0.404329 0.375000 +v 0.250000 0.500000 0.375000 +v 0.230970 0.595671 0.375000 +v 0.176777 0.676777 0.375000 +v 0.095671 0.730970 0.375000 +v 0.000000 0.875000 0.375000 +v -0.143506 0.846455 0.375000 +v -0.265165 0.765165 0.375000 +v -0.346455 0.643506 0.375000 +v -0.375000 0.500000 0.375000 +v -0.346455 0.356494 0.375000 +v -0.265165 0.234835 0.375000 +v -0.143506 0.153545 0.375000 +v -0.000000 0.125000 0.375000 +v 0.143506 0.153545 0.375000 +v 0.265165 0.234835 0.375000 +v 0.346455 0.356494 0.375000 +v 0.375000 0.500000 0.375000 +v 0.346455 0.643506 0.375000 +v 0.265165 0.765165 0.375000 +v 0.143506 0.846455 0.375000 +v -0.095671 0.730970 0.625000 +v 0.000000 0.750000 0.625000 +v -0.176777 0.676777 0.625000 +v -0.230970 0.595671 0.625000 +v -0.250000 0.500000 0.625000 +v -0.230970 0.404329 0.625000 +v -0.176777 0.323223 0.625000 +v -0.095671 0.269030 0.625000 +v -0.000000 0.250000 0.625000 +v 0.095671 0.269030 0.625000 +v 0.176777 0.323223 0.625000 +v 0.230970 0.404329 0.625000 +v 0.250000 0.500000 0.625000 +v 0.230970 0.595671 0.625000 +v 0.176777 0.676777 0.625000 +v 0.095671 0.730970 0.625000 +v -0.143506 0.846455 0.625000 +v 0.000000 0.875000 0.625000 +v -0.265165 0.765165 0.625000 +v -0.346455 0.643506 0.625000 +v -0.375000 0.500000 0.625000 +v -0.346455 0.356494 0.625000 +v -0.265165 0.234835 0.625000 +v -0.143506 0.153545 0.625000 +v -0.000000 0.125000 0.625000 +v 0.143506 0.153545 0.625000 +v 0.265165 0.234835 0.625000 +v 0.346455 0.356494 0.625000 +v 0.375000 0.500000 0.625000 +v 0.346455 0.643506 0.625000 +v 0.265165 0.765165 0.625000 +v 0.143506 0.846455 0.625000 +v 0.000000 0.625000 0.375000 +v -0.088388 0.588388 0.375000 +v -0.125000 0.500000 0.375000 +v -0.088388 0.411612 0.375000 +v 0.000000 0.375000 0.375000 +v 0.088388 0.411612 0.375000 +v 0.125000 0.500000 0.375000 +v 0.088388 0.588388 0.375000 +v -0.088388 0.588388 1.000000 +v 0.000000 0.625000 1.000000 +v -0.125000 0.500000 1.000000 +v -0.088388 0.411612 1.000000 +v 0.000000 0.375000 1.000000 +v 0.088388 0.411612 1.000000 +v 0.125000 0.500000 1.000000 +v 0.088388 0.588388 1.000000 +v -0.088388 0.588388 0.375000 +v -0.088388 0.411612 0.375000 +v 0.088388 0.411612 0.375000 +v 0.088388 0.588388 0.375000 +v -0.088388 0.588388 0.625000 +v -0.088388 0.411612 0.625000 +v 0.088388 0.411612 0.625000 +v 0.088388 0.588388 0.625000 +v -0.156250 0.343750 -0.500000 +v -0.156250 0.656250 -0.500000 +v 0.156250 0.343750 -0.500000 +v 0.156250 0.656250 -0.500000 +v -0.500000 0.125000 0.375000 +v -0.500000 0.875000 0.375000 +v -0.500000 0.125000 -0.375000 +v -0.500000 0.875000 -0.375000 +v 0.500000 0.125000 0.375000 +v 0.500000 0.875000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.875000 -0.375000 +v -0.375000 0.125000 -0.500000 +v -0.375000 0.875000 -0.500000 +v 0.375000 0.125000 -0.500000 +v 0.375000 0.875000 -0.500000 +v -0.375000 0.000000 0.375000 +v -0.375000 1.000000 0.375000 +v -0.375000 0.000000 -0.375000 +v -0.375000 1.000000 -0.375000 +v 0.375000 0.000000 0.375000 +v 0.375000 1.000000 0.375000 +v 0.375000 0.000000 -0.375000 +v 0.375000 1.000000 -0.375000 +v -0.500000 0.343750 0.156250 +v -0.500000 0.656250 0.156250 +v -0.500000 0.343750 -0.156250 +v -0.500000 0.656250 -0.156250 +v 0.500000 0.343750 0.156250 +v 0.500000 0.656250 0.156250 +v 0.500000 0.343750 -0.156250 +v 0.500000 0.656250 -0.156250 +v -0.156250 0.343750 -0.375000 +v -0.156250 0.656250 -0.375000 +v 0.156250 0.343750 -0.375000 +v 0.156250 0.656250 -0.375000 +v -0.156250 0.000000 0.156250 +v -0.156250 1.000000 0.156250 +v -0.156250 0.000000 -0.156250 +v -0.156250 1.000000 -0.156250 +v 0.156250 0.000000 0.156250 +v 0.156250 1.000000 0.156250 +v 0.156250 0.000000 -0.156250 +v 0.156250 1.000000 -0.156250 +v -0.156250 0.125000 0.156250 +v -0.156250 0.875000 0.156250 +v -0.156250 0.125000 -0.156250 +v -0.156250 0.875000 -0.156250 +v 0.156250 0.125000 0.156250 +v 0.156250 0.875000 0.156250 +v 0.156250 0.125000 -0.156250 +v 0.156250 0.875000 -0.156250 +v -0.375000 0.343750 0.156250 +v -0.375000 0.656250 0.156250 +v -0.375000 0.343750 -0.156250 +v -0.375000 0.656250 -0.156250 +v 0.375000 0.343750 0.156250 +v 0.375000 0.656250 0.156250 +v 0.375000 0.343750 -0.156250 +v 0.375000 0.656250 -0.156250 +v -0.375000 0.125000 0.375000 +v -0.375000 0.125000 -0.375000 +v 0.375000 0.125000 0.375000 +v 0.375000 0.125000 -0.375000 +v -0.375000 0.875000 0.375000 +v -0.375000 0.875000 -0.375000 +v 0.375000 0.875000 0.375000 +v 0.375000 0.875000 -0.375000 +v -0.176777 0.676777 0.375000 +v -0.176777 0.323223 0.375000 +v 0.176777 0.323223 0.375000 +v 0.176777 0.676777 0.375000 +v -0.176777 0.676777 0.625000 +v -0.176777 0.323223 0.625000 +v 0.176777 0.323223 0.625000 +v 0.176777 0.676777 0.625000 +v -0.088388 0.588388 0.375000 +v -0.088388 0.411612 0.375000 +v 0.088388 0.411612 0.375000 +v 0.088388 0.588388 0.375000 +v -0.088388 0.588388 0.625000 +v -0.088388 0.411612 0.625000 +v 0.088388 0.411612 0.625000 +v 0.088388 0.588388 0.625000 +vt 0.500000 0.500000 +vt 0.437500 0.437500 +vt 0.437500 0.062500 +vt 0.062500 0.062500 +vt 0.000000 0.000000 +vt 0.500000 0.000000 +vt 0.312500 0.687500 +vt 0.468750 0.687500 +vt 0.468750 0.843750 +vt 0.312500 0.843750 +vt 0.562500 0.218750 +vt 0.562500 0.062500 +vt 0.718750 0.062500 +vt 0.718750 0.218750 +vt 0.781250 0.062500 +vt 0.781250 0.218750 +vt 0.718750 0.281250 +vt 0.562500 0.281250 +vt 0.062500 0.437500 +vt 0.000000 0.500000 +vt 0.562500 0.000000 +vt 0.718750 0.000000 +vt 0.500000 0.218750 +vt 0.500000 0.062500 +vt 0.781250 0.281250 +vt 0.625000 0.437500 +vt 0.625000 0.281250 +vt 0.062500 0.625000 +vt 0.062500 0.562500 +vt 0.437500 0.562500 +vt 0.062500 0.500000 +vt 0.437500 0.500000 +vt 0.437500 0.625000 +vt 0.281250 0.125000 +vt 0.281250 0.062500 +vt 0.343750 0.093750 +vt 0.218750 0.125000 +vt 0.218750 0.062500 +vt 0.187500 0.156250 +vt 0.156250 0.093750 +vt 0.312500 0.156250 +vt 0.406250 0.156250 +vt 0.343750 0.187500 +vt 0.437500 0.218750 +vt 0.375000 0.218750 +vt 0.437500 0.281250 +vt 0.375000 0.281250 +vt 0.406250 0.343750 +vt 0.343750 0.312500 +vt 0.343750 0.406250 +vt 0.281250 0.375000 +vt 0.312500 0.343750 +vt 0.281250 0.437500 +vt 0.218750 0.437500 +vt 0.218750 0.375000 +vt 0.156250 0.406250 +vt 0.156250 0.312500 +vt 0.187500 0.343750 +vt 0.093750 0.343750 +vt 0.062500 0.281250 +vt 0.125000 0.281250 +vt 0.062500 0.218750 +vt 0.125000 0.218750 +vt 0.093750 0.156250 +vt 0.156250 0.187500 +vt 0.531250 0.437500 +vt 0.531250 0.406250 +vt 0.781250 -0.000000 +vt 0.906250 0.000000 +vt 0.906250 0.062500 +vt 0.625000 0.781250 +vt 0.531250 0.781250 +vt 0.531250 0.750000 +vt 0.781250 0.937500 +vt 0.906250 0.937500 +vt 0.906250 1.000000 +vt 0.625000 0.750000 +vt 0.531250 0.718750 +vt 0.781250 0.875000 +vt 0.906250 0.875000 +vt 0.625000 0.718750 +vt 0.531250 0.687500 +vt 0.781250 0.812500 +vt 0.906250 0.812500 +vt 0.625000 0.687500 +vt 0.531250 0.656250 +vt 0.531250 0.593750 +vt 0.625000 0.593750 +vt 0.625000 0.625000 +vt 0.781250 0.750000 +vt 0.906250 0.750000 +vt 0.531250 0.531250 +vt 0.625000 0.531250 +vt 0.625000 0.562500 +vt 0.531250 0.625000 +vt 0.625000 0.656250 +vt 0.781250 0.687500 +vt 0.906250 0.687500 +vt 0.531250 0.562500 +vt 0.625000 0.406250 +vt 0.531250 0.375000 +vt 0.781250 0.625000 +vt 0.906250 0.625000 +vt 0.781250 0.437500 +vt 0.906250 0.437500 +vt 0.906250 0.500000 +vt 0.625000 0.375000 +vt 0.531250 0.343750 +vt 0.781250 0.562500 +vt 0.906250 0.562500 +vt 0.781250 0.375000 +vt 0.906250 0.375000 +vt 0.625000 0.343750 +vt 0.531250 0.312500 +vt 0.781250 0.500000 +vt 0.781250 0.312500 +vt 0.906250 0.312500 +vt 0.625000 0.312500 +vt 0.531250 0.281250 +vt 0.781250 0.250000 +vt 0.906250 0.250000 +vt 0.531250 0.500000 +vt 0.781250 0.187500 +vt 0.906250 0.187500 +vt 0.625000 0.500000 +vt 0.531250 0.468750 +vt 0.781250 0.125000 +vt 0.906250 0.125000 +vt 0.625000 0.468750 +vt 0.312500 0.625000 +vt 0.312500 0.656250 +vt 0.281250 0.687500 +vt 0.218750 0.625000 +vt 0.218750 0.937500 +vt 0.187500 0.937500 +vt 0.156250 0.625000 +vt 0.156250 0.937500 +vt 0.125000 0.937500 +vt 0.125000 0.625000 +vt 0.093750 0.937500 +vt 0.062500 0.937500 +vt 0.031250 0.937500 +vt 0.250000 0.625000 +vt 0.250000 0.937500 +vt 0.187500 0.625000 +vt 0.093750 0.625000 +vt 0.031250 0.625000 +vt -0.000000 0.937500 +vt 0.437500 0.843750 +vt 0.437500 0.906250 +vt 0.312500 0.906250 +vt 0.468750 0.625000 +vt 0.613025 0.561999 +vt 0.781250 1.000000 +vt 0.250000 0.687500 +vt 0.250000 0.656250 +vt 0.281250 0.625000 +vt 0.000000 0.625000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.707100 -0.707100 +vn -0.707100 0.707100 0.000000 +vn -0.707100 -0.707100 0.000000 +vn 0.000000 -0.707100 -0.707100 +vn 0.000000 -0.707100 0.707100 +vn 0.000000 0.707100 0.707100 +vn -0.707100 0.000000 -0.707100 +vn -0.707100 0.000000 0.707100 +vn 0.707100 0.000000 0.707100 +vn 0.707100 -0.707100 0.000000 +vn 0.707100 0.707100 0.000000 +vn 0.707100 0.000000 -0.707100 +vn 0.577400 0.577400 -0.577400 +vn -0.577400 0.577400 -0.577400 +vn -0.577400 -0.577400 -0.577400 +vn 0.577400 -0.577400 -0.577400 +vn 0.577400 -0.577400 0.577400 +vn -0.577400 -0.577400 0.577400 +vn -0.577400 0.577400 0.577400 +vn 0.577400 0.577400 0.577400 +vn -0.555600 0.831500 0.000000 +vn -0.195100 -0.980800 0.000000 +vn -0.831500 0.555600 0.000000 +vn 0.195100 -0.980800 0.000000 +vn -0.980800 0.195100 0.000000 +vn 0.555600 -0.831500 0.000000 +vn -0.980800 -0.195100 0.000000 +vn 0.831500 -0.555600 0.000000 +vn -0.831500 -0.555600 0.000000 +vn 0.980800 -0.195100 0.000000 +vn -0.555600 -0.831500 0.000000 +vn 0.980800 0.195100 0.000000 +vn 0.831500 0.555600 0.000000 +vn -0.195100 0.980800 0.000000 +vn 0.555600 0.831500 0.000000 +vn 0.195100 0.980800 0.000000 +vn -0.923900 -0.382700 0.000000 +vn -0.382700 0.923900 0.000000 +vn 0.382700 0.923900 0.000000 +vn 0.923900 -0.382700 0.000000 +vn -0.382700 -0.923900 0.000000 +vn -0.923900 0.382700 0.000000 +vn 0.923900 0.382700 0.000000 +vn 0.382700 -0.923900 0.000000 +s off +f 8/1/1 36/2/1 35/3/1 +f 4/1/2 40/2/2 39/3/2 +f 35/3/1 33/4/1 5/5/1 +f 39/3/2 43/4/2 7/5/2 +f 6/6/3 50/3/3 46/4/3 +f 8/1/3 52/2/3 50/3/3 +f 12/7/4 11/8/4 9/9/4 +f 14/10/1 13/7/1 15/8/1 +f 20/11/2 19/12/2 17/13/2 +f 23/7/5 27/8/5 25/9/5 +f 28/9/3 24/10/3 22/7/3 +f 76/12/3 72/13/3 70/14/3 +f 71/12/5 75/13/5 73/14/5 +f 91/15/2 92/16/2 60/14/2 +f 60/14/3 92/17/3 90/18/3 +f 58/11/1 57/12/1 59/13/1 +f 56/11/4 55/12/4 53/13/4 +f 2/5/3 46/4/3 48/19/3 +f 4/20/3 48/19/3 52/2/3 +f 7/6/5 51/3/5 47/4/5 +f 3/5/5 47/4/5 45/19/5 +f 1/20/5 45/19/5 49/2/5 +f 5/1/5 49/2/5 51/3/5 +f 34/19/1 36/2/1 8/1/1 +f 33/4/1 34/19/1 6/20/1 +f 31/4/4 32/19/4 4/20/4 +f 32/19/4 30/2/4 2/1/4 +f 30/2/4 29/3/4 1/6/4 +f 29/3/4 31/4/4 3/5/4 +f 44/19/2 40/2/2 4/1/2 +f 43/4/2 44/19/2 8/20/2 +f 38/19/6 42/2/6 6/1/6 +f 6/1/6 42/2/6 41/3/6 +f 41/3/6 37/4/6 1/5/6 +f 1/5/6 37/4/6 38/19/6 +f 19/12/5 67/21/5 63/22/5 +f 20/11/1 68/23/1 67/24/1 +f 18/14/3 64/17/3 68/18/3 +f 63/15/4 64/16/4 18/14/4 +f 64/8/7 80/9/7 84/10/7 +f 88/7/8 86/8/8 78/9/8 +f 85/9/9 87/10/9 79/7/9 +f 67/10/10 83/7/10 79/8/10 +f 61/10/11 77/7/11 81/8/11 +f 66/8/12 82/9/12 78/10/12 +f 87/8/13 88/9/13 64/10/13 +f 86/10/14 85/7/14 61/8/14 +f 89/8/15 90/9/15 66/10/15 +f 91/9/16 89/10/16 81/7/16 +f 90/7/17 92/8/17 84/9/17 +f 68/9/18 92/10/18 91/7/18 +f 84/25/19 92/26/19 68/27/19 +f 80/26/20 64/27/20 88/25/20 +f 79/25/21 87/26/21 63/27/21 +f 83/26/22 67/27/22 91/25/22 +f 81/25/23 89/26/23 65/27/23 +f 77/26/24 61/27/24 85/25/24 +f 78/25/25 86/26/25 62/27/25 +f 82/26/26 66/27/26 90/25/26 +f 58/11/6 90/23/6 89/24/6 +f 57/12/5 89/21/5 91/22/5 +f 65/8/6 66/9/6 62/10/6 +f 55/12/5 87/21/5 85/22/5 +f 53/13/6 85/15/6 86/16/6 +f 54/14/3 86/17/3 88/18/3 +f 56/11/2 88/23/2 87/24/2 +f 79/21/2 83/22/2 75/13/2 +f 77/23/4 79/24/4 71/12/4 +f 81/17/6 77/18/6 69/11/6 +f 83/15/1 81/16/1 73/14/1 +f 84/21/2 80/22/2 72/13/2 +f 80/15/4 78/16/4 70/14/4 +f 78/17/6 82/18/6 74/11/6 +f 82/23/1 84/24/1 76/12/1 +f 45/28/2 93/29/2 95/30/2 +f 95/30/3 93/29/3 37/31/3 +f 49/32/4 95/30/4 96/29/4 +f 96/29/3 95/30/3 33/33/3 +f 96/30/6 94/29/6 47/31/6 +f 47/32/1 94/30/1 93/29/1 +f 93/29/3 94/30/3 31/33/3 +f 39/28/3 94/29/3 96/30/3 +f 38/28/5 97/29/5 99/30/5 +f 99/30/2 97/29/2 46/31/2 +f 46/32/1 97/30/1 98/29/1 +f 48/32/6 98/30/6 100/29/6 +f 52/32/4 100/30/4 99/29/4 +f 99/29/5 100/30/5 36/33/5 +f 100/29/5 98/30/5 40/33/5 +f 98/29/5 97/30/5 30/33/5 +f 37/32/1 93/30/1 97/29/1 +f 99/30/4 95/29/4 41/31/4 +f 33/28/2 95/29/2 99/30/2 +f 100/29/6 96/30/6 35/33/6 +f 43/32/4 96/30/4 100/29/4 +f 98/30/1 94/29/1 39/31/1 +f 31/28/6 94/29/6 98/30/6 +f 97/29/2 93/30/2 29/33/2 +f 109/34/2 125/35/2 124/36/2 +f 110/37/2 126/38/2 125/35/2 +f 111/39/2 127/40/2 126/38/2 +f 108/41/2 124/36/2 123/42/2 +f 107/43/2 123/42/2 122/44/2 +f 106/45/2 122/44/2 121/46/2 +f 105/47/2 121/46/2 120/48/2 +f 104/49/2 120/48/2 119/50/2 +f 102/51/2 103/52/2 119/50/2 +f 102/51/2 118/53/2 117/54/2 +f 101/55/2 117/54/2 132/56/2 +f 115/57/2 116/58/2 132/56/2 +f 115/57/2 131/59/2 130/60/2 +f 114/61/2 130/60/2 129/62/2 +f 113/63/2 129/62/2 128/64/2 +f 112/65/2 128/64/2 127/40/2 +f 156/38/6 157/35/6 141/34/6 +f 157/35/6 158/36/6 142/41/6 +f 158/36/6 159/42/6 143/43/6 +f 155/40/6 156/38/6 140/37/6 +f 154/64/6 155/40/6 139/39/6 +f 153/62/6 154/64/6 138/65/6 +f 152/60/6 153/62/6 137/63/6 +f 151/59/6 152/60/6 136/61/6 +f 149/56/6 151/59/6 135/57/6 +f 150/54/6 149/56/6 133/58/6 +f 164/53/6 150/54/6 134/55/6 +f 163/50/6 164/53/6 148/51/6 +f 162/48/6 163/50/6 147/52/6 +f 161/46/6 162/48/6 146/49/6 +f 144/45/6 160/44/6 161/46/6 +f 143/43/6 159/42/6 160/44/6 +f 110/26/27 142/66/27 143/67/27 +f 125/68/28 157/69/28 156/70/28 +f 111/71/29 143/72/29 144/73/29 +f 126/74/30 158/75/30 157/76/30 +f 112/77/31 144/73/31 145/78/31 +f 127/79/32 159/80/32 158/75/32 +f 113/81/33 145/78/33 146/82/33 +f 128/83/34 160/84/34 159/80/34 +f 114/85/35 146/82/35 147/86/35 +f 101/87/30 134/88/30 133/89/30 +f 129/90/36 161/91/36 160/84/36 +f 115/92/37 147/93/37 148/94/37 +f 102/95/32 133/89/32 135/96/32 +f 130/97/38 162/98/38 161/91/38 +f 116/99/28 148/94/28 134/88/28 +f 103/100/34 135/67/34 136/101/34 +f 131/102/39 163/103/39 162/98/39 +f 118/104/40 149/105/40 150/106/40 +f 104/107/36 136/101/36 137/108/36 +f 132/109/41 164/110/41 163/103/41 +f 119/111/27 151/112/27 149/105/27 +f 105/113/38 137/108/38 138/114/38 +f 117/115/42 150/106/42 164/110/42 +f 120/116/29 152/117/29 151/112/29 +f 106/118/39 138/114/39 139/119/39 +f 121/120/31 153/121/31 152/117/31 +f 107/93/41 139/92/41 140/122/41 +f 122/123/33 154/124/33 153/121/33 +f 108/125/42 140/122/42 141/126/42 +f 123/127/35 155/128/35 154/124/35 +f 109/129/40 141/126/40 142/66/40 +f 124/15/37 156/70/37 155/128/37 +f 178/130/6 179/131/6 174/132/6 +f 168/133/43 176/134/43 175/135/43 +f 166/136/44 173/137/44 174/138/44 +f 165/139/45 174/138/45 180/140/45 +f 171/28/46 179/141/46 178/142/46 +f 169/143/47 177/144/47 176/134/47 +f 167/145/48 175/135/48 173/137/48 +f 172/146/49 180/140/49 179/141/49 +f 170/147/50 178/142/50 177/148/50 +f 185/149/9 135/150/9 103/151/9 +f 188/149/8 147/150/8 115/151/8 +f 187/10/17 143/151/17 111/150/17 +f 186/10/16 139/151/16 107/150/16 +f 74/8/18 50/7/18 99/130/18 +f 70/8/15 46/7/15 97/130/15 +f 84/130/15 100/152/15 52/8/15 +f 72/130/14 48/152/14 98/8/14 +f 43/8/17 19/7/17 67/130/17 +f 94/130/8 63/152/8 17/8/8 +f 40/8/9 18/7/9 64/130/9 +f 44/8/8 20/7/8 68/130/8 +f 60/8/12 36/7/12 100/130/12 +f 59/7/7 35/8/7 96/152/7 +f 57/8/10 33/7/10 95/130/10 +f 58/8/11 34/7/11 99/130/11 +f 79/130/14 94/152/14 47/8/14 +f 75/153/15 51/153/15 96/153/15 +f 81/8/18 95/7/18 49/130/18 +f 69/8/13 45/7/13 93/130/13 +f 87/130/7 94/152/7 31/8/7 +f 56/8/10 32/7/10 98/130/10 +f 54/8/7 30/7/7 97/130/7 +f 53/8/12 29/7/12 93/130/12 +f 257/151/17 261/150/17 269/149/17 +f 260/151/16 264/150/16 272/149/16 +f 259/150/9 263/151/9 271/10/9 +f 258/150/8 262/151/8 270/10/8 +f 255/130/14 210/7/14 230/8/14 +f 253/130/13 206/7/13 226/8/13 +f 212/8/13 256/152/13 240/130/13 +f 254/8/18 208/152/18 228/130/18 +f 223/130/9 191/7/9 203/8/9 +f 189/8/16 221/152/16 250/130/16 +f 222/130/17 190/7/17 202/8/17 +f 224/130/16 192/7/16 204/8/16 +f 256/130/10 200/7/10 220/8/10 +f 252/152/11 199/8/11 219/7/11 +f 251/130/12 197/7/12 217/8/12 +f 255/130/7 198/7/7 218/8/7 +f 207/8/18 250/152/18 235/130/18 +f 252/153/13 211/153/13 231/153/13 +f 209/130/14 251/7/14 237/8/14 +f 249/130/15 205/7/15 225/8/15 +f 195/8/11 250/152/11 243/130/11 +f 254/130/12 196/7/12 216/8/12 +f 253/130/11 194/7/11 214/8/11 +f 249/130/10 193/7/10 213/8/10 +f 7/6/1 8/1/1 35/3/1 +f 3/6/2 4/1/2 39/3/2 +f 7/6/1 35/3/1 5/5/1 +f 3/6/2 39/3/2 7/5/2 +f 2/5/3 6/6/3 46/4/3 +f 6/6/3 8/1/3 50/3/3 +f 10/10/4 12/7/4 9/9/4 +f 16/9/1 14/10/1 15/8/1 +f 18/14/2 20/11/2 17/13/2 +f 21/10/5 23/7/5 25/9/5 +f 26/8/3 28/9/3 22/7/3 +f 74/11/3 76/12/3 70/14/3 +f 69/11/5 71/12/5 73/14/5 +f 59/13/2 91/15/2 60/14/2 +f 58/11/3 60/14/3 90/18/3 +f 60/14/1 58/11/1 59/13/1 +f 54/14/4 56/11/4 53/13/4 +f 4/20/3 2/5/3 48/19/3 +f 8/1/3 4/20/3 52/2/3 +f 3/5/5 7/6/5 47/4/5 +f 1/20/5 3/5/5 45/19/5 +f 5/1/5 1/20/5 49/2/5 +f 7/6/5 5/1/5 51/3/5 +f 6/20/1 34/19/1 8/1/1 +f 5/5/1 33/4/1 6/20/1 +f 3/5/4 31/4/4 4/20/4 +f 4/20/4 32/19/4 2/1/4 +f 2/1/4 30/2/4 1/6/4 +f 1/6/4 29/3/4 3/5/4 +f 8/20/2 44/19/2 4/1/2 +f 7/5/2 43/4/2 8/20/2 +f 2/20/6 38/19/6 6/1/6 +f 5/6/6 6/1/6 41/3/6 +f 5/6/6 41/3/6 1/5/6 +f 2/20/6 1/5/6 38/19/6 +f 17/13/5 19/12/5 63/22/5 +f 19/12/1 20/11/1 67/24/1 +f 20/11/3 18/14/3 68/18/3 +f 17/13/4 63/15/4 18/14/4 +f 68/7/7 64/8/7 84/10/7 +f 80/10/8 88/7/8 78/9/8 +f 77/8/9 85/9/9 79/7/9 +f 63/9/10 67/10/10 79/8/10 +f 65/9/11 61/10/11 81/8/11 +f 62/7/12 66/8/12 78/10/12 +f 63/7/13 87/8/13 64/10/13 +f 62/9/14 86/10/14 61/8/14 +f 65/7/15 89/8/15 66/10/15 +f 83/8/16 91/9/16 81/7/16 +f 82/10/17 90/7/17 84/9/17 +f 67/8/18 68/9/18 91/7/18 +f 57/12/6 58/11/6 89/24/6 +f 59/13/5 57/12/5 91/22/5 +f 61/7/6 65/8/6 62/10/6 +f 53/13/5 55/12/5 85/22/5 +f 54/14/6 53/13/6 86/16/6 +f 56/11/3 54/14/3 88/18/3 +f 55/12/2 56/11/2 87/24/2 +f 71/12/2 79/21/2 75/13/2 +f 69/11/4 77/23/4 71/12/4 +f 73/14/6 81/17/6 69/11/6 +f 75/13/1 83/15/1 73/14/1 +f 76/12/2 84/21/2 72/13/2 +f 72/13/4 80/15/4 70/14/4 +f 70/14/6 78/17/6 74/11/6 +f 74/11/1 82/23/1 76/12/1 +f 49/33/2 45/28/2 95/30/2 +f 41/32/3 95/30/3 37/31/3 +f 51/31/4 49/32/4 96/29/4 +f 35/28/3 96/29/3 33/33/3 +f 51/32/6 96/30/6 47/31/6 +f 45/31/1 47/32/1 93/29/1 +f 29/28/3 93/29/3 31/33/3 +f 43/33/3 39/28/3 96/30/3 +f 42/33/5 38/28/5 99/30/5 +f 50/32/2 99/30/2 46/31/2 +f 48/31/1 46/32/1 98/29/1 +f 52/31/6 48/32/6 100/29/6 +f 50/31/4 52/32/4 99/29/4 +f 34/28/5 99/29/5 36/33/5 +f 44/28/5 100/29/5 40/33/5 +f 32/28/5 98/29/5 30/33/5 +f 38/31/1 37/32/1 97/29/1 +f 42/32/4 99/30/4 41/31/4 +f 34/33/2 33/28/2 99/30/2 +f 36/28/6 100/29/6 35/33/6 +f 44/31/4 43/32/4 100/29/4 +f 40/32/1 98/30/1 39/31/1 +f 32/33/6 31/28/6 98/30/6 +f 30/28/2 97/29/2 29/33/2 +f 108/41/2 109/34/2 124/36/2 +f 109/34/2 110/37/2 125/35/2 +f 110/37/2 111/39/2 126/38/2 +f 107/43/2 108/41/2 123/42/2 +f 106/45/2 107/43/2 122/44/2 +f 105/47/2 106/45/2 121/46/2 +f 104/49/2 105/47/2 120/48/2 +f 103/52/2 104/49/2 119/50/2 +f 118/53/2 102/51/2 119/50/2 +f 101/55/2 102/51/2 117/54/2 +f 116/58/2 101/55/2 132/56/2 +f 131/59/2 115/57/2 132/56/2 +f 114/61/2 115/57/2 130/60/2 +f 113/63/2 114/61/2 129/62/2 +f 112/65/2 113/63/2 128/64/2 +f 111/39/2 112/65/2 127/40/2 +f 140/37/6 156/38/6 141/34/6 +f 141/34/6 157/35/6 142/41/6 +f 142/41/6 158/36/6 143/43/6 +f 139/39/6 155/40/6 140/37/6 +f 138/65/6 154/64/6 139/39/6 +f 137/63/6 153/62/6 138/65/6 +f 136/61/6 152/60/6 137/63/6 +f 135/57/6 151/59/6 136/61/6 +f 133/58/6 149/56/6 135/57/6 +f 134/55/6 150/54/6 133/58/6 +f 148/51/6 164/53/6 134/55/6 +f 147/52/6 163/50/6 148/51/6 +f 146/49/6 162/48/6 147/52/6 +f 145/47/6 161/46/6 146/49/6 +f 145/47/6 144/45/6 161/46/6 +f 144/45/6 143/43/6 160/44/6 +f 111/100/27 110/26/27 143/67/27 +f 124/15/28 125/68/28 156/70/28 +f 112/77/29 111/71/29 144/73/29 +f 125/154/30 126/74/30 157/76/30 +f 113/81/31 112/77/31 145/78/31 +f 126/74/32 127/79/32 158/75/32 +f 114/85/33 113/81/33 146/82/33 +f 127/79/34 128/83/34 159/80/34 +f 115/96/35 114/85/35 147/86/35 +f 102/95/30 101/87/30 133/89/30 +f 128/83/36 129/90/36 160/84/36 +f 116/99/37 115/92/37 148/94/37 +f 103/86/32 102/95/32 135/96/32 +f 129/90/38 130/97/38 161/91/38 +f 101/87/28 116/99/28 134/88/28 +f 104/107/34 103/100/34 136/101/34 +f 130/97/39 131/102/39 162/98/39 +f 117/115/40 118/104/40 150/106/40 +f 105/113/36 104/107/36 137/108/36 +f 131/102/41 132/109/41 163/103/41 +f 118/104/27 119/111/27 149/105/27 +f 106/118/38 105/113/38 138/114/38 +f 132/109/42 117/115/42 164/110/42 +f 119/111/29 120/116/29 151/112/29 +f 107/27/39 106/118/39 139/119/39 +f 120/116/31 121/120/31 152/117/31 +f 108/125/41 107/93/41 140/122/41 +f 121/120/33 122/123/33 153/121/33 +f 109/129/42 108/125/42 141/126/42 +f 122/123/35 123/127/35 154/124/35 +f 110/26/40 109/129/40 142/66/40 +f 123/127/37 124/15/37 155/128/37 +f 174/132/6 173/155/6 175/156/6 +f 175/156/6 176/143/6 177/157/6 +f 177/157/6 178/130/6 174/132/6 +f 179/131/6 180/7/6 174/132/6 +f 174/132/6 175/156/6 177/157/6 +f 167/145/43 168/133/43 175/135/43 +f 165/139/44 166/136/44 174/138/44 +f 172/146/45 165/139/45 180/140/45 +f 170/147/46 171/28/46 178/142/46 +f 168/133/47 169/143/47 176/134/47 +f 166/136/48 167/145/48 173/137/48 +f 171/28/49 172/146/49 179/141/49 +f 169/158/50 170/147/50 177/148/50 +f 181/10/9 185/149/9 103/151/9 +f 184/10/8 188/149/8 115/151/8 +f 183/149/17 187/10/17 111/150/17 +f 182/149/16 186/10/16 107/150/16 +f 82/152/18 74/8/18 99/130/18 +f 78/152/15 70/8/15 97/130/15 +f 76/7/15 84/130/15 52/8/15 +f 80/7/14 72/130/14 98/8/14 +f 96/152/17 43/8/17 67/130/17 +f 39/7/8 94/130/8 17/8/8 +f 98/152/9 40/8/9 64/130/9 +f 100/152/8 44/8/8 68/130/8 +f 92/152/12 60/8/12 100/130/12 +f 91/130/7 59/7/7 96/152/7 +f 89/152/10 57/8/10 95/130/10 +f 90/152/11 58/8/11 99/130/11 +f 71/7/14 79/130/14 47/8/14 +f 83/153/15 75/153/15 96/153/15 +f 73/152/18 81/8/18 49/130/18 +f 77/152/13 69/8/13 93/130/13 +f 55/7/7 87/130/7 31/8/7 +f 88/152/10 56/8/10 98/130/10 +f 86/152/7 54/8/7 97/130/7 +f 85/152/12 53/8/12 93/130/12 +f 265/10/17 257/151/17 269/149/17 +f 268/10/16 260/151/16 272/149/16 +f 267/149/9 259/150/9 271/10/9 +f 266/149/8 258/150/8 270/10/8 +f 238/152/14 255/130/14 230/8/14 +f 234/152/13 253/130/13 226/8/13 +f 232/7/13 212/8/13 240/130/13 +f 236/7/18 254/8/18 228/130/18 +f 252/152/9 223/130/9 203/8/9 +f 201/7/16 189/8/16 250/130/16 +f 254/152/17 222/130/17 202/8/17 +f 256/152/16 224/130/16 204/8/16 +f 248/152/10 256/130/10 220/8/10 +f 247/130/11 252/152/11 219/7/11 +f 245/152/12 251/130/12 217/8/12 +f 246/152/7 255/130/7 218/8/7 +f 227/7/18 207/8/18 235/130/18 +f 239/153/13 252/153/13 231/153/13 +f 229/152/14 209/130/14 237/8/14 +f 233/152/15 249/130/15 225/8/15 +f 215/7/11 195/8/11 243/130/11 +f 244/152/12 254/130/12 216/8/12 +f 242/152/11 253/130/11 214/8/11 +f 241/152/10 249/130/10 213/8/10 diff --git a/assets/hbm/models/core_injector.obj b/assets/hbm/models/core_injector.obj new file mode 100644 index 000000000..75ca551cf --- /dev/null +++ b/assets/hbm/models/core_injector.obj @@ -0,0 +1,416 @@ +# Blender v2.76 (sub 0) OBJ File: 'core_injector.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.125000 0.375000 +v -0.500000 0.875000 0.375000 +v -0.500000 0.125000 -0.375000 +v -0.500000 0.875000 -0.375000 +v 0.500000 0.125000 0.375000 +v 0.500000 0.875000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.875000 -0.375000 +v -0.375000 0.000000 0.375000 +v -0.375000 1.000000 0.375000 +v -0.375000 0.000000 -0.375000 +v -0.375000 1.000000 -0.375000 +v 0.375000 0.000000 0.375000 +v 0.375000 1.000000 0.375000 +v 0.375000 0.000000 -0.375000 +v 0.375000 1.000000 -0.375000 +v -0.375000 0.125000 0.500000 +v -0.375000 0.875000 0.500000 +v -0.375000 0.125000 -0.500000 +v -0.375000 0.875000 -0.500000 +v 0.375000 0.125000 0.500000 +v 0.375000 0.875000 0.500000 +v 0.375000 0.125000 -0.500000 +v 0.375000 0.875000 -0.500000 +v -0.437500 0.875000 0.375000 +v -0.437500 0.875000 -0.375000 +v -0.437500 0.125000 -0.375000 +v -0.437500 0.125000 0.375000 +v 0.437500 0.875000 -0.375000 +v 0.437500 0.875000 0.375000 +v 0.437500 0.125000 0.375000 +v 0.437500 0.125000 -0.375000 +v -0.375000 0.062500 0.375000 +v -0.375000 0.062500 -0.375000 +v 0.375000 0.062500 -0.375000 +v 0.375000 0.062500 0.375000 +v 0.375000 0.937500 0.375000 +v 0.375000 0.937500 -0.375000 +v -0.375000 0.937500 -0.375000 +v -0.375000 0.937500 0.375000 +v -0.375000 0.875000 -0.437500 +v 0.375000 0.875000 -0.437500 +v 0.375000 0.125000 -0.437500 +v -0.375000 0.125000 -0.437500 +v 0.375000 0.875000 0.437500 +v -0.375000 0.875000 0.437500 +v -0.375000 0.125000 0.437500 +v 0.375000 0.125000 0.437500 +v -0.156250 0.000000 0.156250 +v 0.156250 0.000000 0.156250 +v -0.156250 0.000000 -0.156250 +v 0.156250 0.000000 -0.156250 +v -0.156250 0.062500 0.156250 +v 0.156250 0.062500 0.156250 +v -0.156250 0.062500 -0.156250 +v 0.156250 0.062500 -0.156250 +v -0.156250 1.000000 0.156250 +v 0.156250 1.000000 0.156250 +v -0.156250 1.000000 -0.156250 +v 0.156250 1.000000 -0.156250 +v -0.156250 0.937500 0.156250 +v 0.156250 0.937500 0.156250 +v -0.156250 0.937500 -0.156250 +v 0.156250 0.937500 -0.156250 +v -0.156250 0.343750 -0.500000 +v 0.156250 0.343750 -0.500000 +v -0.156250 0.656250 -0.500000 +v 0.156250 0.656250 -0.500000 +v -0.156250 0.343750 -0.437500 +v 0.156250 0.343750 -0.437500 +v -0.156250 0.656250 -0.437500 +v 0.156250 0.656250 -0.437500 +v -0.500000 0.343750 0.156250 +v -0.500000 0.343750 -0.156250 +v -0.500000 0.656250 0.156250 +v -0.500000 0.656250 -0.156250 +v -0.437500 0.343750 0.156250 +v -0.437500 0.343750 -0.156250 +v -0.437500 0.656250 0.156250 +v -0.437500 0.656250 -0.156250 +v 0.500000 0.343750 0.156250 +v 0.500000 0.343750 -0.156250 +v 0.500000 0.656250 0.156250 +v 0.500000 0.656250 -0.156250 +v 0.437500 0.343750 0.156250 +v 0.437500 0.343750 -0.156250 +v 0.437500 0.656250 0.156250 +v 0.437500 0.656250 -0.156250 +v 0.000000 0.625000 0.437500 +v -0.088388 0.588388 0.437500 +v -0.125000 0.500000 0.437500 +v -0.088388 0.411612 0.437500 +v 0.000000 0.375000 0.437500 +v 0.088388 0.411612 0.437500 +v 0.125000 0.500000 0.437500 +v 0.088388 0.588388 0.437500 +v -0.088388 0.588388 0.750000 +v 0.000000 0.625000 0.750000 +v -0.125000 0.500000 0.750000 +v -0.088388 0.411612 0.750000 +v 0.000000 0.375000 0.750000 +v 0.088388 0.411612 0.750000 +v 0.125000 0.500000 0.750000 +v 0.088388 0.588388 0.750000 +v -0.066291 0.566291 0.750000 +v 0.000000 0.593750 0.750000 +v -0.093750 0.500000 0.750000 +v -0.066291 0.433709 0.750000 +v 0.000000 0.406250 0.750000 +v 0.066291 0.433709 0.750000 +v 0.093750 0.500000 0.750000 +v 0.066291 0.566291 0.750000 +v -0.066291 0.566291 1.000000 +v 0.000000 0.593750 1.000000 +v -0.093750 0.500000 1.000000 +v -0.066291 0.433709 1.000000 +v 0.000000 0.406250 1.000000 +v 0.066291 0.433709 1.000000 +v 0.093750 0.500000 1.000000 +v 0.066291 0.566291 1.000000 +vt 0.062500 0.437500 +vt 0.437500 0.437500 +vt 0.500000 0.500000 +vt 0.437500 0.062500 +vt 0.062500 0.062500 +vt -0.000000 0.000000 +vt 0.000000 0.500000 +vt 0.500000 0.000000 +vt 0.375000 0.500000 +vt 0.375000 0.531250 +vt -0.000000 0.531250 +vt 0.156250 0.687500 +vt 0.156250 0.718750 +vt 0.000000 0.718750 +vt -0.000000 0.687500 +vt 0.156250 0.531250 +vt 0.468750 0.531250 +vt 0.437500 0.531250 +vt 0.500000 0.375000 +vt 0.500000 0.250000 +vt 0.656250 0.250000 +vt 0.500000 0.625000 +vt 0.656250 0.625000 +vt 0.656250 0.750000 +vt 0.500000 0.875000 +vt 0.656250 0.875000 +vt 0.656250 1.000000 +vt 0.500000 0.125000 +vt 0.656250 0.125000 +vt 0.656250 0.375000 +vt 0.656250 0.500000 +vt 0.500000 0.750000 +vt 0.656250 0.000000 +vt 0.656250 0.312500 +vt 0.781250 0.312500 +vt 0.781250 0.375000 +vt 0.406250 0.531250 +vt 0.406250 0.562500 +vt 0.375000 0.625000 +vt 0.406250 0.593750 +vt 0.437500 0.593750 +vt 0.437500 0.625000 +vt 0.468750 0.593750 +vt 0.500000 0.562500 +vt 0.468750 0.562500 +vt 0.437500 0.500000 +vt 0.375000 0.562500 +vt 0.656250 0.437500 +vt 0.781250 0.437500 +vt 0.781250 0.500000 +vt 0.656250 0.062500 +vt 0.781250 0.062500 +vt 0.781250 0.125000 +vt 0.656250 0.187500 +vt 0.781250 0.187500 +vt 0.781250 0.250000 +vt 0.781250 0.000000 +vt 0.500000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.923900 0.382700 0.000000 +vn 0.923900 0.382700 0.000000 +vn 0.382700 -0.923900 0.000000 +vn -0.923900 -0.382700 0.000000 +vn -0.382700 0.923900 -0.000000 +vn 0.382700 0.923900 0.000000 +vn 0.923900 -0.382700 0.000000 +vn -0.382700 -0.923900 0.000000 +s off +f 12/1/1 10/2/1 2/3/1 +f 27/4/2 31/5/2 7/6/2 +f 11/5/1 12/1/1 4/7/1 +f 31/5/2 32/1/2 8/7/2 +f 7/8/3 23/4/3 19/5/3 +f 3/6/3 19/5/3 17/1/3 +f 4/3/2 28/2/2 27/4/2 +f 32/1/2 28/2/2 4/3/2 +f 26/1/4 30/2/4 6/3/4 +f 6/3/4 30/2/4 29/4/4 +f 29/4/4 25/5/4 1/6/4 +f 1/6/4 25/5/4 26/1/4 +f 10/2/1 9/4/1 1/8/1 +f 9/4/1 11/5/1 3/6/1 +f 14/1/5 16/2/5 8/3/5 +f 13/5/5 14/1/5 6/7/5 +f 15/4/5 13/5/5 5/6/5 +f 8/3/5 16/2/5 15/4/5 +f 5/3/3 21/2/3 23/4/3 +f 1/7/3 17/1/3 21/2/3 +f 8/6/6 24/5/6 22/1/6 +f 6/7/6 22/1/6 18/2/6 +f 2/3/6 18/2/6 20/4/6 +f 4/8/6 20/4/6 24/5/6 +f 34/7/3 33/9/3 10/10/3 +f 35/7/4 34/9/4 12/10/4 +f 36/10/6 35/11/6 11/7/6 +f 33/10/2 36/11/2 9/7/2 +f 38/7/3 37/9/3 16/10/3 +f 39/7/2 38/9/2 14/10/2 +f 40/10/6 39/11/6 13/7/6 +f 37/10/4 40/11/4 15/7/4 +f 95/12/6 91/13/6 92/14/6 +f 42/7/5 41/9/5 17/10/5 +f 43/10/4 42/11/4 19/7/4 +f 44/10/1 43/11/1 23/7/1 +f 41/7/2 44/9/2 21/10/2 +f 95/15/4 93/12/4 89/13/4 +f 46/10/1 45/11/1 22/7/1 +f 47/7/4 46/9/4 24/10/4 +f 48/7/5 47/9/5 20/10/5 +f 45/10/2 48/11/2 18/7/2 +f 90/13/3 89/14/3 93/15/3 +f 50/7/3 49/9/3 28/10/3 +f 51/7/1 50/9/1 32/10/1 +f 52/10/6 51/11/6 31/7/6 +f 49/10/5 52/11/5 27/7/5 +f 54/1/4 55/5/4 56/4/4 +f 54/7/3 53/9/3 30/10/3 +f 55/7/5 54/9/5 26/10/5 +f 56/10/6 55/11/6 25/7/6 +f 53/10/1 56/11/1 29/7/1 +f 59/11/3 60/16/3 58/12/3 +f 66/15/6 68/11/6 67/16/6 +f 75/12/2 76/15/2 74/11/2 +f 90/16/5 92/12/5 91/15/5 +f 83/12/1 84/15/1 82/11/1 +f 96/12/2 92/13/2 90/14/2 +f 79/15/6 80/12/6 76/13/6 +f 77/15/1 79/12/1 75/13/1 +f 78/15/3 77/12/3 73/13/3 +f 76/14/5 80/15/5 78/12/5 +f 86/15/3 85/12/3 81/13/3 +f 85/15/4 87/12/4 83/13/4 +f 83/14/6 87/15/6 88/12/6 +f 84/14/2 88/15/2 86/12/2 +f 43/4/3 44/2/3 41/1/3 +f 62/15/4 61/12/4 57/13/4 +f 61/15/1 63/12/1 59/13/1 +f 64/15/5 62/12/5 58/13/5 +f 63/15/2 64/12/2 60/13/2 +f 35/5/1 36/4/1 33/2/1 +f 51/5/2 52/4/2 49/2/2 +f 39/5/5 40/4/5 37/2/5 +f 47/4/6 48/2/6 45/1/6 +f 68/14/2 72/15/2 71/12/2 +f 67/14/1 71/15/1 69/12/1 +f 65/14/4 69/15/4 70/12/4 +f 66/14/5 70/15/5 72/12/5 +f 110/3/4 118/17/4 117/18/4 +f 98/19/7 99/20/7 107/21/7 +f 104/22/8 112/23/8 111/24/8 +f 102/25/9 110/26/9 109/27/9 +f 100/28/10 108/29/10 107/21/10 +f 98/19/11 105/30/11 106/31/11 +f 97/3/12 106/31/12 112/23/12 +f 103/32/13 111/24/13 110/26/13 +f 101/8/14 109/33/14 108/29/14 +f 120/34/8 128/35/8 127/36/8 +f 108/9/4 116/37/4 115/38/4 +f 105/39/4 113/40/4 114/41/4 +f 106/42/4 114/41/4 120/43/4 +f 111/44/4 119/45/4 118/17/4 +f 109/46/4 117/18/4 116/37/4 +f 107/47/4 115/38/4 113/40/4 +f 112/22/4 120/43/4 119/45/4 +f 125/18/4 127/45/4 122/41/4 +f 118/48/9 126/49/9 125/50/9 +f 116/51/10 124/52/10 123/53/10 +f 113/54/11 121/55/11 122/56/11 +f 114/21/12 122/56/12 128/35/12 +f 119/30/13 127/36/13 126/49/13 +f 117/33/14 125/57/14 124/52/14 +f 115/29/7 123/53/7 121/55/7 +f 4/7/1 12/1/1 2/3/1 +f 3/8/2 27/4/2 7/6/2 +f 3/6/1 11/5/1 4/7/1 +f 7/6/2 31/5/2 8/7/2 +f 3/6/3 7/8/3 19/5/3 +f 1/7/3 3/6/3 17/1/3 +f 3/8/2 4/3/2 27/4/2 +f 8/7/2 32/1/2 4/3/2 +f 2/7/4 26/1/4 6/3/4 +f 5/8/4 6/3/4 29/4/4 +f 5/8/4 29/4/4 1/6/4 +f 2/7/4 1/6/4 26/1/4 +f 2/3/1 10/2/1 1/8/1 +f 1/8/1 9/4/1 3/6/1 +f 6/7/5 14/1/5 8/3/5 +f 5/6/5 13/5/5 6/7/5 +f 7/8/5 15/4/5 5/6/5 +f 7/8/5 8/3/5 15/4/5 +f 7/8/3 5/3/3 23/4/3 +f 5/3/3 1/7/3 21/2/3 +f 6/7/6 8/6/6 22/1/6 +f 2/3/6 6/7/6 18/2/6 +f 4/8/6 2/3/6 20/4/6 +f 8/6/6 4/8/6 24/5/6 +f 12/11/3 34/7/3 10/10/3 +f 11/11/4 35/7/4 12/10/4 +f 9/9/6 36/10/6 11/7/6 +f 10/9/2 33/10/2 9/7/2 +f 14/11/3 38/7/3 16/10/3 +f 13/11/2 39/7/2 14/10/2 +f 15/9/6 40/10/6 13/7/6 +f 16/9/4 37/10/4 15/7/4 +f 96/15/6 95/12/6 92/14/6 +f 19/11/5 42/7/5 17/10/5 +f 23/9/4 43/10/4 19/7/4 +f 21/9/1 44/10/1 23/7/1 +f 17/11/2 41/7/2 21/10/2 +f 91/14/4 95/15/4 89/13/4 +f 24/9/1 46/10/1 22/7/1 +f 20/11/4 47/7/4 24/10/4 +f 18/11/5 48/7/5 20/10/5 +f 22/9/2 45/10/2 18/7/2 +f 94/12/3 90/13/3 93/15/3 +f 32/11/3 50/7/3 28/10/3 +f 31/11/1 51/7/1 32/10/1 +f 27/9/6 52/10/6 31/7/6 +f 28/9/5 49/10/5 27/7/5 +f 53/2/4 54/1/4 56/4/4 +f 26/11/3 54/7/3 30/10/3 +f 25/11/5 55/7/5 26/10/5 +f 29/9/6 56/10/6 25/7/6 +f 30/9/1 53/10/1 29/7/1 +f 57/15/3 59/11/3 58/12/3 +f 65/12/6 66/15/6 67/16/6 +f 73/16/2 75/12/2 74/11/2 +f 89/11/5 90/16/5 91/15/5 +f 81/16/1 83/12/1 82/11/1 +f 94/15/2 96/12/2 90/14/2 +f 75/14/6 79/15/6 76/13/6 +f 73/14/1 77/15/1 75/13/1 +f 74/14/3 78/15/3 73/13/3 +f 74/13/5 76/14/5 78/12/5 +f 82/14/3 86/15/3 81/13/3 +f 81/14/4 85/15/4 83/13/4 +f 84/13/6 83/14/6 88/12/6 +f 82/13/2 84/14/2 86/12/2 +f 42/5/3 43/4/3 41/1/3 +f 58/14/4 62/15/4 57/13/4 +f 57/14/1 61/15/1 59/13/1 +f 60/14/5 64/15/5 58/13/5 +f 59/14/2 63/15/2 60/13/2 +f 34/1/1 35/5/1 33/2/1 +f 50/1/2 51/5/2 49/2/2 +f 38/1/5 39/5/5 37/2/5 +f 46/5/6 47/4/6 45/1/6 +f 67/13/2 68/14/2 71/12/2 +f 65/13/1 67/14/1 69/12/1 +f 66/13/4 65/14/4 70/12/4 +f 68/13/5 66/14/5 72/12/5 +f 109/46/4 110/3/4 117/18/4 +f 105/30/7 98/19/7 107/21/7 +f 103/32/8 104/22/8 111/24/8 +f 101/58/9 102/25/9 109/27/9 +f 99/20/10 100/28/10 107/21/10 +f 97/3/11 98/19/11 106/31/11 +f 104/22/12 97/3/12 112/23/12 +f 102/25/13 103/32/13 110/26/13 +f 100/28/14 101/8/14 108/29/14 +f 119/30/8 120/34/8 127/36/8 +f 107/47/4 108/9/4 115/38/4 +f 106/42/4 105/39/4 114/41/4 +f 112/22/4 106/42/4 120/43/4 +f 110/3/4 111/44/4 118/17/4 +f 108/9/4 109/46/4 116/37/4 +f 105/39/4 107/47/4 113/40/4 +f 111/44/4 112/22/4 119/45/4 +f 122/41/4 121/40/4 123/38/4 +f 123/38/4 124/37/4 125/18/4 +f 125/18/4 126/17/4 127/45/4 +f 127/45/4 128/43/4 122/41/4 +f 122/41/4 123/38/4 125/18/4 +f 117/31/9 118/48/9 125/50/9 +f 115/29/10 116/51/10 123/53/10 +f 114/21/11 113/54/11 122/56/11 +f 120/34/12 114/21/12 128/35/12 +f 118/48/13 119/30/13 126/49/13 +f 116/51/14 117/33/14 124/52/14 +f 113/54/7 115/29/7 121/55/7 diff --git a/assets/hbm/models/core_receiver.obj b/assets/hbm/models/core_receiver.obj new file mode 100644 index 000000000..55c870ba8 --- /dev/null +++ b/assets/hbm/models/core_receiver.obj @@ -0,0 +1,770 @@ +# Blender v2.76 (sub 0) OBJ File: 'core_receiver.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v -0.500000 0.125000 0.375000 +v -0.500000 0.875000 0.375000 +v -0.500000 0.125000 -0.375000 +v -0.500000 0.875000 -0.375000 +v 0.500000 0.125000 0.375000 +v 0.500000 0.875000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.875000 -0.375000 +v -0.375000 0.125000 0.500000 +v -0.375000 0.875000 0.500000 +v -0.375000 0.125000 -0.500000 +v -0.375000 0.875000 -0.500000 +v 0.375000 0.125000 0.500000 +v 0.375000 0.875000 0.500000 +v 0.375000 0.125000 -0.500000 +v 0.375000 0.875000 -0.500000 +v -0.375000 0.000000 0.375000 +v -0.375000 1.000000 0.375000 +v -0.375000 0.000000 -0.375000 +v -0.375000 1.000000 -0.375000 +v 0.375000 0.000000 0.375000 +v 0.375000 1.000000 0.375000 +v 0.375000 0.000000 -0.375000 +v 0.375000 1.000000 -0.375000 +v -0.375000 0.125000 0.375000 +v -0.375000 0.125000 -0.375000 +v 0.375000 0.125000 0.375000 +v 0.375000 0.125000 -0.375000 +v -0.375000 0.875000 0.375000 +v -0.375000 0.875000 -0.375000 +v 0.375000 0.875000 0.375000 +v 0.375000 0.875000 -0.375000 +v -0.000000 0.875000 -0.500000 +v -0.000000 0.875000 0.500000 +v 0.143506 0.846455 -0.500000 +v 0.143506 0.846455 0.500000 +v 0.265165 0.765165 -0.500000 +v 0.265165 0.765165 0.500000 +v 0.346455 0.643506 -0.500000 +v 0.346455 0.643506 0.500000 +v 0.375000 0.500000 -0.500000 +v 0.375000 0.500000 0.500000 +v 0.346455 0.356494 -0.500000 +v 0.346455 0.356494 0.500000 +v 0.265165 0.234835 -0.500000 +v 0.265165 0.234835 0.500000 +v 0.143506 0.153545 -0.500000 +v 0.143506 0.153545 0.500000 +v 0.000000 0.125000 -0.500000 +v 0.000000 0.125000 0.500000 +v -0.143506 0.153545 -0.500000 +v -0.143506 0.153545 0.500000 +v -0.265165 0.234835 -0.500000 +v -0.265165 0.234835 0.500000 +v -0.346455 0.356494 -0.500000 +v -0.346455 0.356494 0.500000 +v -0.375000 0.500000 -0.500000 +v -0.375000 0.500000 0.500000 +v -0.346455 0.643506 -0.500000 +v -0.346455 0.643506 0.500000 +v -0.265165 0.765165 -0.500000 +v -0.265165 0.765165 0.500000 +v -0.143506 0.846455 -0.500000 +v -0.143506 0.846455 0.500000 +v 0.000000 0.750000 0.500000 +v -0.095671 0.730970 0.500000 +v -0.176777 0.676777 0.500000 +v -0.230970 0.595671 0.500000 +v -0.250000 0.500000 0.500000 +v -0.230970 0.404329 0.500000 +v -0.176777 0.323223 0.500000 +v -0.095671 0.269030 0.500000 +v -0.000000 0.250000 0.500000 +v 0.095671 0.269030 0.500000 +v 0.176777 0.323223 0.500000 +v 0.230970 0.404329 0.500000 +v 0.250000 0.500000 0.500000 +v 0.230970 0.595671 0.500000 +v 0.176777 0.676777 0.500000 +v 0.095671 0.730970 0.500000 +v -0.095671 0.730970 0.750000 +v -0.000000 0.750000 0.750000 +v -0.176777 0.676777 0.750000 +v -0.230970 0.595671 0.750000 +v -0.250000 0.500000 0.750000 +v -0.230970 0.404329 0.750000 +v -0.176777 0.323223 0.750000 +v -0.095671 0.269030 0.750000 +v -0.000000 0.250000 0.750000 +v 0.095671 0.269030 0.750000 +v 0.176777 0.323223 0.750000 +v 0.230970 0.404329 0.750000 +v 0.250000 0.500000 0.750000 +v 0.230970 0.595671 0.750000 +v 0.176777 0.676777 0.750000 +v 0.095671 0.730970 0.750000 +v -0.071753 0.673227 0.750000 +v -0.000000 0.687500 0.750000 +v -0.132583 0.632583 0.750000 +v -0.173227 0.571753 0.750000 +v -0.187500 0.500000 0.750000 +v -0.173227 0.428247 0.750000 +v -0.132583 0.367417 0.750000 +v -0.071753 0.326773 0.750000 +v -0.000000 0.312500 0.750000 +v 0.071753 0.326773 0.750000 +v 0.132582 0.367417 0.750000 +v 0.173227 0.428247 0.750000 +v 0.187500 0.500000 0.750000 +v 0.173227 0.571753 0.750000 +v 0.132582 0.632583 0.750000 +v 0.071753 0.673227 0.750000 +v -0.071753 0.673227 0.500000 +v -0.000000 0.687500 0.500000 +v -0.132583 0.632583 0.500000 +v -0.173227 0.571753 0.500000 +v -0.187500 0.500000 0.500000 +v -0.173227 0.428247 0.500000 +v -0.132583 0.367417 0.500000 +v -0.071753 0.326773 0.500000 +v -0.000000 0.312500 0.500000 +v 0.071753 0.326773 0.500000 +v 0.132582 0.367417 0.500000 +v 0.173227 0.428247 0.500000 +v 0.187500 0.500000 0.500000 +v 0.173227 0.571753 0.500000 +v 0.132582 0.632583 0.500000 +v 0.071753 0.673227 0.500000 +v -0.500000 0.343750 0.156250 +v -0.500000 0.656250 0.156250 +v -0.500000 0.343750 -0.156250 +v -0.500000 0.656250 -0.156250 +v 0.500000 0.343750 0.156250 +v 0.500000 0.656250 0.156250 +v 0.500000 0.343750 -0.156250 +v 0.500000 0.656250 -0.156250 +v -0.156250 0.000000 0.156250 +v -0.156250 1.000000 0.156250 +v -0.156250 0.000000 -0.156250 +v -0.156250 1.000000 -0.156250 +v 0.156250 0.000000 0.156250 +v 0.156250 1.000000 0.156250 +v 0.156250 0.000000 -0.156250 +v 0.156250 1.000000 -0.156250 +v 0.375000 0.656250 -0.156250 +v 0.375000 0.343750 -0.156250 +v 0.375000 0.656250 0.156250 +v 0.375000 0.343750 0.156250 +v -0.156250 0.875000 0.156250 +v -0.156250 0.875000 -0.156250 +v 0.156250 0.875000 0.156250 +v 0.156250 0.875000 -0.156250 +v -0.375000 0.343750 0.156250 +v -0.375000 0.656250 0.156250 +v -0.375000 0.343750 -0.156250 +v -0.375000 0.656250 -0.156250 +v -0.156250 0.125000 0.156250 +v -0.156250 0.125000 -0.156250 +v 0.156250 0.125000 0.156250 +v 0.156250 0.125000 -0.156250 +v -0.500000 0.125000 0.375000 +v -0.500000 0.875000 0.375000 +v -0.500000 0.125000 -0.375000 +v -0.500000 0.875000 -0.375000 +v 0.500000 0.125000 0.375000 +v 0.500000 0.875000 0.375000 +v 0.500000 0.125000 -0.375000 +v 0.500000 0.875000 -0.375000 +v -0.375000 0.000000 0.375000 +v -0.375000 1.000000 0.375000 +v -0.375000 0.000000 -0.375000 +v -0.375000 1.000000 -0.375000 +v 0.375000 0.000000 0.375000 +v 0.375000 1.000000 0.375000 +v 0.375000 0.000000 -0.375000 +v 0.375000 1.000000 -0.375000 +v -0.375000 0.125000 0.375000 +v -0.375000 0.125000 -0.375000 +v 0.375000 0.125000 0.375000 +v 0.375000 0.125000 -0.375000 +v -0.375000 0.875000 0.375000 +v -0.375000 0.875000 -0.375000 +v 0.375000 0.875000 0.375000 +v 0.375000 0.875000 -0.375000 +v -0.500000 0.343750 0.156250 +v -0.500000 0.656250 0.156250 +v -0.500000 0.343750 -0.156250 +v -0.500000 0.656250 -0.156250 +v 0.500000 0.343750 0.156250 +v 0.500000 0.656250 0.156250 +v 0.500000 0.343750 -0.156250 +v 0.500000 0.656250 -0.156250 +v -0.156250 0.000000 0.156250 +v -0.156250 1.000000 0.156250 +v -0.156250 0.000000 -0.156250 +v -0.156250 1.000000 -0.156250 +v 0.156250 0.000000 0.156250 +v 0.156250 1.000000 0.156250 +v 0.156250 0.000000 -0.156250 +v 0.156250 1.000000 -0.156250 +v 0.375000 0.656250 -0.156250 +v 0.375000 0.343750 -0.156250 +v 0.375000 0.656250 0.156250 +v 0.375000 0.343750 0.156250 +v -0.156250 0.875000 0.156250 +v -0.156250 0.875000 -0.156250 +v 0.156250 0.875000 0.156250 +v 0.156250 0.875000 -0.156250 +v -0.375000 0.343750 0.156250 +v -0.375000 0.656250 0.156250 +v -0.375000 0.343750 -0.156250 +v -0.375000 0.656250 -0.156250 +v -0.156250 0.125000 0.156250 +v -0.156250 0.125000 -0.156250 +v 0.156250 0.125000 0.156250 +v 0.156250 0.125000 -0.156250 +vt 0.842105 0.421053 +vt 0.789474 0.368421 +vt 0.789474 0.052632 +vt 0.473684 0.052632 +vt 0.421053 0.000000 +vt 0.421053 0.421053 +vt 0.473684 0.368421 +vt 0.421053 0.526316 +vt 0.421053 0.473684 +vt 0.736842 0.473684 +vt 0.842105 -0.000000 +vt 0.736842 0.421053 +vt 0.736842 0.526316 +vt 0.000000 0.421053 +vt 0.000000 0.368421 +vt 0.421053 0.368421 +vt 0.000000 0.315789 +vt 0.421053 0.315789 +vt 0.000000 0.263158 +vt 0.000000 0.210526 +vt 0.421053 0.210526 +vt 0.000000 0.157895 +vt 0.000000 0.105263 +vt 0.421053 0.105263 +vt 0.000000 0.052632 +vt 0.421053 0.052632 +vt 0.000000 -0.000000 +vt 0.000000 0.842105 +vt 0.000000 0.789474 +vt 0.421053 0.789474 +vt 0.000000 0.736842 +vt 0.421053 0.736842 +vt 0.000000 0.684211 +vt 0.421053 0.684211 +vt 0.000000 0.631579 +vt 0.421053 0.631579 +vt 0.000000 0.578947 +vt 0.421053 0.578947 +vt 0.000000 0.526316 +vt 0.552632 0.078947 +vt 0.578947 0.105263 +vt 0.552632 0.131579 +vt 0.000000 0.473684 +vt 0.763158 0.289474 +vt 0.710526 0.342105 +vt 0.631579 0.052632 +vt 0.631579 0.105263 +vt 0.710526 0.078947 +vt 0.684211 0.105263 +vt 0.736842 0.105263 +vt 0.710526 0.131579 +vt 0.763158 0.131579 +vt 0.736842 0.157895 +vt 0.789474 0.210526 +vt 0.736842 0.210526 +vt 0.736842 0.263158 +vt 0.736842 0.315789 +vt 0.710526 0.289474 +vt 0.684211 0.315789 +vt 0.631579 0.368421 +vt 0.631579 0.315789 +vt 0.552632 0.342105 +vt 0.578947 0.315789 +vt 0.526316 0.315789 +vt 0.552632 0.289474 +vt 0.500000 0.289474 +vt 0.526316 0.263158 +vt 0.473684 0.210526 +vt 0.526316 0.210526 +vt 0.500000 0.131579 +vt 0.526316 0.157895 +vt 0.526316 0.105263 +vt 0.078947 0.842105 +vt 0.078947 0.947368 +vt 0.052632 0.947368 +vt 0.631579 0.289474 +vt 0.657895 0.289474 +vt 0.315789 0.842105 +vt 0.315789 0.947368 +vt 0.289474 0.947368 +vt 0.105263 0.842105 +vt 0.105263 0.947368 +vt 0.342105 0.842105 +vt 0.342105 0.947368 +vt 0.131579 0.842105 +vt 0.131579 0.947368 +vt 0.368421 0.842105 +vt 0.368421 0.947368 +vt 0.157895 0.842105 +vt 0.157895 0.947368 +vt 0.394737 0.842105 +vt 0.394737 0.947368 +vt 0.184211 0.842105 +vt 0.184211 0.947368 +vt 0.421053 0.842105 +vt 0.421053 0.947368 +vt 0.236842 0.842105 +vt 0.236842 0.947368 +vt 0.210526 0.947368 +vt 0.210526 0.842105 +vt 0.026316 0.842105 +vt 0.026316 0.947368 +vt 0.000000 0.947368 +vt 0.263158 0.842105 +vt 0.263158 0.947368 +vt 0.052632 0.842105 +vt 0.289474 0.842105 +vt 0.684211 0.263158 +vt 0.631579 0.131579 +vt 0.605263 0.131579 +vt 0.605263 0.289474 +vt 0.657895 0.131579 +vt 0.578947 0.263158 +vt 0.684211 0.157895 +vt 0.552632 0.236842 +vt 0.710526 0.184211 +vt 0.552632 0.210526 +vt 0.710526 0.210526 +vt 0.552632 0.184211 +vt 0.710526 0.236842 +vt 0.578947 0.157895 +vt 0.421053 0.657895 +vt 0.552632 0.526316 +vt 0.973684 0.000000 +vt 0.973684 0.421053 +vt 0.552632 0.657895 +vt 0.421053 0.710526 +vt 0.552632 0.710526 +vt 1.421053 0.263158 +vt 1.421053 0.131579 +vt 1.736842 0.131579 +vt 1.421053 0.552632 +vt 1.421053 0.421053 +vt 1.736842 0.421053 +vt 1.421053 0.289474 +vt 1.736842 0.289474 +vt 0.421053 0.263158 +vt 0.421053 0.157895 +vt 1.736842 0.263158 +vt 1.736842 0.552632 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.195100 0.980800 0.000000 +vn 0.555600 0.831500 -0.000000 +vn 0.831500 0.555600 0.000000 +vn 0.980800 0.195100 -0.000000 +vn 0.980800 -0.195100 0.000000 +vn 0.831500 -0.555600 0.000000 +vn 0.555600 -0.831500 0.000000 +vn 0.195100 -0.980800 0.000000 +vn -0.195100 -0.980800 0.000000 +vn -0.555600 -0.831500 0.000000 +vn -0.831500 -0.555600 0.000000 +vn -0.980800 -0.195100 0.000000 +vn -0.980800 0.195100 -0.000000 +vn -0.831500 0.555600 -0.000000 +vn -0.195100 0.980800 -0.000000 +vn -0.555600 0.831500 -0.000000 +vn 0.000000 0.707100 -0.707100 +vn 0.000000 -0.707100 -0.707100 +vn 0.000000 -0.707100 0.707100 +vn 0.000000 0.707100 0.707100 +vn 0.707100 0.000000 -0.707100 +vn 0.707100 0.000000 0.707100 +vn -0.707100 0.000000 0.707100 +vn -0.707100 0.000000 -0.707100 +s off +f 8/1/1 16/2/1 15/3/1 +f 4/1/2 20/2/2 19/3/2 +f 15/3/1 13/4/1 5/5/1 +f 19/3/2 23/4/2 7/5/2 +f 6/6/3 30/7/3 26/2/3 +f 8/5/3 32/4/3 30/7/3 +f 28/8/4 38/9/4 40/10/4 +f 2/1/3 26/2/3 28/3/3 +f 4/11/3 28/3/3 32/4/3 +f 7/11/5 31/3/5 27/4/5 +f 3/5/5 27/4/5 25/7/5 +f 1/6/5 25/7/5 29/2/5 +f 5/1/5 29/2/5 31/3/5 +f 14/7/1 16/2/1 8/1/1 +f 13/4/1 14/7/1 6/6/1 +f 11/4/6 12/7/6 4/6/6 +f 12/7/6 10/2/6 2/1/6 +f 10/2/6 9/3/6 1/11/6 +f 9/3/6 11/4/6 3/5/6 +f 24/7/2 20/2/2 4/1/2 +f 23/4/2 24/7/2 8/6/2 +f 18/7/4 22/2/4 6/1/4 +f 6/1/4 22/2/4 21/3/4 +f 21/3/4 17/4/4 1/5/4 +f 1/5/4 17/4/4 18/7/4 +f 25/12/2 33/10/2 35/9/2 +f 35/9/3 33/10/3 17/13/3 +f 29/12/6 35/10/6 36/9/6 +f 36/9/3 35/10/3 13/13/3 +f 36/10/4 34/9/4 27/6/4 +f 27/12/1 34/10/1 33/9/1 +f 33/9/3 34/10/3 11/13/3 +f 19/8/3 34/9/3 36/10/3 +f 18/12/5 37/10/5 39/9/5 +f 39/9/2 37/10/2 26/13/2 +f 26/8/1 37/9/1 38/10/1 +f 32/8/6 40/9/6 39/10/6 +f 39/10/5 40/9/5 16/6/5 +f 40/10/5 38/9/5 20/6/5 +f 38/10/5 37/9/5 10/6/5 +f 17/8/1 33/9/1 37/10/1 +f 39/9/6 35/10/6 21/13/6 +f 13/12/2 35/10/2 39/9/2 +f 40/10/4 36/9/4 15/6/4 +f 23/8/6 36/9/6 40/10/6 +f 38/9/1 34/10/1 19/13/1 +f 11/12/4 34/10/4 38/9/4 +f 37/10/2 33/9/2 9/6/2 +f 42/14/7 44/15/7 43/16/7 +f 43/16/8 44/15/8 46/17/8 +f 45/18/9 46/17/9 48/19/9 +f 48/19/10 50/20/10 49/21/10 +f 49/21/11 50/20/11 52/22/11 +f 52/22/12 54/23/12 53/24/12 +f 54/23/13 56/25/13 55/26/13 +f 55/26/14 56/25/14 58/27/14 +f 58/28/15 60/29/15 59/30/15 +f 60/29/16 62/31/16 61/32/16 +f 62/31/17 64/33/17 63/34/17 +f 64/33/18 66/35/18 65/36/18 +f 66/35/19 68/37/19 67/38/19 +f 68/37/20 70/39/20 69/8/20 +f 60/40/4 80/41/4 79/42/4 +f 72/43/21 42/14/21 41/6/21 +f 70/39/22 72/43/22 71/9/22 +f 55/40/2 67/44/2 71/45/2 +f 60/40/4 58/46/4 81/47/4 +f 58/46/4 56/48/4 82/49/4 +f 56/48/4 54/50/4 83/51/4 +f 54/50/4 52/52/4 84/53/4 +f 52/52/4 50/54/4 85/55/4 +f 48/44/4 86/56/4 85/55/4 +f 46/57/4 87/58/4 86/56/4 +f 44/45/4 88/59/4 87/58/4 +f 42/60/4 73/61/4 88/59/4 +f 72/62/4 74/63/4 73/61/4 +f 70/64/4 75/65/4 74/63/4 +f 68/66/4 76/67/4 75/65/4 +f 66/68/4 77/69/4 76/67/4 +f 64/70/4 78/71/4 77/69/4 +f 62/72/4 79/42/4 78/71/4 +f 84/73/12 100/74/12 99/75/12 +f 89/61/4 105/76/4 106/77/4 +f 77/78/19 93/79/19 92/80/19 +f 85/81/11 101/82/11 100/74/11 +f 78/83/18 94/84/18 93/79/18 +f 86/85/10 102/86/10 101/82/10 +f 79/87/17 95/88/17 94/84/17 +f 87/89/9 103/90/9 102/86/9 +f 80/91/16 96/92/16 95/88/16 +f 88/93/8 104/94/8 103/90/8 +f 81/95/15 97/96/15 96/92/15 +f 74/97/21 89/98/21 90/99/21 +f 73/100/7 90/99/7 104/94/7 +f 82/101/14 98/102/14 97/103/14 +f 75/104/22 91/105/22 89/98/22 +f 83/106/13 99/75/13 98/102/13 +f 76/107/20 92/80/20 91/105/20 +f 111/75/9 127/106/9 126/73/9 +f 90/59/4 106/77/4 120/108/4 +f 98/47/4 114/109/4 113/110/4 +f 91/63/4 107/111/4 105/76/4 +f 99/49/4 115/112/4 114/109/4 +f 92/65/4 108/113/4 107/111/4 +f 100/51/4 116/114/4 115/112/4 +f 93/67/4 109/115/4 108/113/4 +f 101/53/4 117/116/4 116/114/4 +f 93/67/4 94/69/4 110/117/4 +f 101/53/4 102/55/4 118/118/4 +f 94/69/4 95/71/4 111/119/4 +f 103/56/4 119/120/4 118/118/4 +f 96/42/4 112/121/4 111/119/4 +f 104/58/4 120/108/4 119/120/4 +f 97/41/4 113/110/4 112/121/4 +f 129/109/4 135/108/4 122/76/4 +f 119/105/17 135/104/17 134/107/17 +f 112/102/8 128/101/8 127/106/8 +f 119/105/16 120/98/16 136/97/16 +f 113/103/7 129/28/7 128/101/7 +f 105/94/14 121/93/14 122/100/14 +f 106/99/15 122/100/15 136/97/15 +f 114/92/21 130/91/21 129/95/21 +f 107/90/13 123/89/13 121/93/13 +f 115/88/22 131/87/22 130/91/22 +f 108/86/12 124/85/12 123/89/12 +f 116/84/20 132/83/20 131/87/20 +f 109/82/11 125/81/11 124/85/11 +f 117/79/19 133/78/19 132/83/19 +f 110/74/10 126/73/10 125/81/10 +f 118/80/18 134/107/18 133/78/18 +f 140/122/6 139/8/6 137/123/6 +f 144/11/2 143/124/2 139/125/2 +f 142/122/1 141/8/1 143/123/1 +f 138/125/4 137/1/4 141/11/4 +f 139/1/5 143/11/5 141/124/5 +f 144/124/3 140/125/3 138/1/3 +f 148/1/6 147/11/6 145/124/6 +f 152/1/2 151/11/2 147/124/2 +f 150/1/1 149/11/1 151/124/1 +f 146/1/4 145/11/4 149/124/4 +f 147/8/5 151/123/5 149/126/5 +f 152/8/3 148/123/3 146/126/3 +f 39/127/23 14/122/23 142/126/23 +f 156/126/24 141/128/24 13/127/24 +f 36/126/25 15/128/25 143/127/25 +f 153/127/26 144/122/26 16/126/26 +f 159/126/27 150/128/27 30/127/27 +f 40/126/28 32/128/28 152/127/28 +f 158/126/29 148/128/29 28/127/29 +f 37/126/30 26/128/30 146/127/30 +f 164/129/24 140/130/24 12/131/24 +f 37/127/25 10/122/25 138/126/25 +f 161/126/26 137/128/26 9/127/26 +f 34/127/23 11/122/23 139/126/23 +f 36/132/30 31/133/30 151/134/30 +f 35/127/27 29/122/27 149/126/27 +f 165/127/30 145/122/30 25/126/30 +f 34/133/29 27/135/29 147/136/29 +f 198/126/25 174/122/25 191/127/25 +f 173/127/26 197/128/26 212/126/26 +f 199/127/23 175/128/23 188/126/23 +f 176/126/24 200/122/24 209/127/24 +f 182/127/29 206/128/29 215/126/29 +f 208/127/30 184/128/30 192/126/30 +f 180/127/27 204/128/27 214/126/27 +f 202/127/28 178/128/28 189/126/28 +f 172/131/26 196/130/26 220/129/26 +f 194/126/23 170/122/23 189/127/23 +f 169/127/24 193/128/24 217/126/24 +f 195/126/25 171/122/25 186/127/25 +f 207/134/28 183/133/28 188/132/28 +f 205/126/29 181/122/29 187/127/29 +f 177/126/28 201/122/28 221/127/28 +f 203/136/27 179/135/27 186/133/27 +f 7/11/1 8/1/1 15/3/1 +f 3/11/2 4/1/2 19/3/2 +f 7/11/1 15/3/1 5/5/1 +f 3/11/2 19/3/2 7/5/2 +f 2/1/3 6/6/3 26/2/3 +f 6/6/3 8/5/3 30/7/3 +f 32/13/4 28/8/4 40/10/4 +f 4/11/3 2/1/3 28/3/3 +f 8/5/3 4/11/3 32/4/3 +f 3/5/5 7/11/5 27/4/5 +f 1/6/5 3/5/5 25/7/5 +f 5/1/5 1/6/5 29/2/5 +f 7/11/5 5/1/5 31/3/5 +f 6/6/1 14/7/1 8/1/1 +f 5/5/1 13/4/1 6/6/1 +f 3/5/6 11/4/6 4/6/6 +f 4/6/6 12/7/6 2/1/6 +f 2/1/6 10/2/6 1/11/6 +f 1/11/6 9/3/6 3/5/6 +f 8/6/2 24/7/2 4/1/2 +f 7/5/2 23/4/2 8/6/2 +f 2/6/4 18/7/4 6/1/4 +f 5/11/4 6/1/4 21/3/4 +f 5/11/4 21/3/4 1/5/4 +f 2/6/4 1/5/4 18/7/4 +f 29/6/2 25/12/2 35/9/2 +f 21/8/3 35/9/3 17/13/3 +f 31/6/6 29/12/6 36/9/6 +f 15/8/3 36/9/3 13/13/3 +f 31/12/4 36/10/4 27/6/4 +f 25/6/1 27/12/1 33/9/1 +f 9/8/3 33/9/3 11/13/3 +f 23/13/3 19/8/3 36/10/3 +f 22/6/5 18/12/5 39/9/5 +f 30/8/2 39/9/2 26/13/2 +f 28/13/1 26/8/1 38/10/1 +f 30/13/6 32/8/6 39/10/6 +f 14/12/5 39/10/5 16/6/5 +f 24/12/5 40/10/5 20/6/5 +f 12/12/5 38/10/5 10/6/5 +f 18/13/1 17/8/1 37/10/1 +f 22/8/6 39/9/6 21/13/6 +f 14/6/2 13/12/2 39/9/2 +f 16/12/4 40/10/4 15/6/4 +f 24/13/6 23/8/6 40/10/6 +f 20/8/1 38/9/1 19/13/1 +f 12/6/4 11/12/4 38/9/4 +f 10/12/2 37/10/2 9/6/2 +f 41/6/7 42/14/7 43/16/7 +f 45/18/8 43/16/8 46/17/8 +f 47/137/9 45/18/9 48/19/9 +f 47/137/10 48/19/10 49/21/10 +f 51/138/11 49/21/11 52/22/11 +f 51/138/12 52/22/12 53/24/12 +f 53/24/13 54/23/13 55/26/13 +f 57/5/14 55/26/14 58/27/14 +f 57/95/15 58/28/15 59/30/15 +f 59/30/16 60/29/16 61/32/16 +f 61/32/17 62/31/17 63/34/17 +f 63/34/18 64/33/18 65/36/18 +f 65/36/19 66/35/19 67/38/19 +f 67/38/20 68/37/20 69/8/20 +f 62/72/4 60/40/4 79/42/4 +f 71/9/21 72/43/21 41/6/21 +f 69/8/22 70/39/22 71/9/22 +f 71/45/2 41/60/2 47/66/2 +f 43/62/2 45/64/2 47/66/2 +f 47/66/2 49/68/2 55/40/2 +f 51/70/2 53/72/2 55/40/2 +f 55/40/2 57/46/2 59/48/2 +f 59/48/2 61/50/2 63/52/2 +f 63/52/2 65/54/2 67/44/2 +f 67/44/2 69/57/2 71/45/2 +f 41/60/2 43/62/2 47/66/2 +f 49/68/2 51/70/2 55/40/2 +f 55/40/2 59/48/2 63/52/2 +f 63/52/2 67/44/2 55/40/2 +f 71/45/2 47/66/2 55/40/2 +f 80/41/4 60/40/4 81/47/4 +f 81/47/4 58/46/4 82/49/4 +f 82/49/4 56/48/4 83/51/4 +f 83/51/4 54/50/4 84/53/4 +f 84/53/4 52/52/4 85/55/4 +f 50/54/4 48/44/4 85/55/4 +f 48/44/4 46/57/4 86/56/4 +f 46/57/4 44/45/4 87/58/4 +f 44/45/4 42/60/4 88/59/4 +f 42/60/4 72/62/4 73/61/4 +f 72/62/4 70/64/4 74/63/4 +f 70/64/4 68/66/4 75/65/4 +f 68/66/4 66/68/4 76/67/4 +f 66/68/4 64/70/4 77/69/4 +f 64/70/4 62/72/4 78/71/4 +f 83/106/12 84/73/12 99/75/12 +f 90/59/4 89/61/4 106/77/4 +f 76/107/19 77/78/19 92/80/19 +f 84/73/11 85/81/11 100/74/11 +f 77/78/18 78/83/18 93/79/18 +f 85/81/10 86/85/10 101/82/10 +f 78/83/17 79/87/17 94/84/17 +f 86/85/9 87/89/9 102/86/9 +f 79/87/16 80/91/16 95/88/16 +f 87/89/8 88/93/8 103/90/8 +f 80/91/15 81/95/15 96/92/15 +f 73/100/21 74/97/21 90/99/21 +f 88/93/7 73/100/7 104/94/7 +f 81/28/14 82/101/14 97/103/14 +f 74/97/22 75/104/22 89/98/22 +f 82/101/13 83/106/13 98/102/13 +f 75/104/20 76/107/20 91/105/20 +f 110/74/9 111/75/9 126/73/9 +f 104/58/4 90/59/4 120/108/4 +f 97/41/4 98/47/4 113/110/4 +f 89/61/4 91/63/4 105/76/4 +f 98/47/4 99/49/4 114/109/4 +f 91/63/4 92/65/4 107/111/4 +f 99/49/4 100/51/4 115/112/4 +f 92/65/4 93/67/4 108/113/4 +f 100/51/4 101/53/4 116/114/4 +f 109/115/4 93/67/4 110/117/4 +f 117/116/4 101/53/4 118/118/4 +f 110/117/4 94/69/4 111/119/4 +f 102/55/4 103/56/4 118/118/4 +f 95/71/4 96/42/4 111/119/4 +f 103/56/4 104/58/4 119/120/4 +f 96/42/4 97/41/4 112/121/4 +f 122/76/4 121/111/4 123/113/4 +f 123/113/4 124/115/4 122/76/4 +f 125/117/4 126/119/4 129/109/4 +f 127/121/4 128/110/4 129/109/4 +f 129/109/4 130/112/4 131/114/4 +f 131/114/4 132/116/4 129/109/4 +f 133/118/4 134/120/4 135/108/4 +f 135/108/4 136/77/4 122/76/4 +f 122/76/4 124/115/4 125/117/4 +f 126/119/4 127/121/4 129/109/4 +f 129/109/4 132/116/4 133/118/4 +f 133/118/4 135/108/4 129/109/4 +f 122/76/4 125/117/4 129/109/4 +f 118/80/17 119/105/17 134/107/17 +f 111/75/8 112/102/8 127/106/8 +f 135/104/16 119/105/16 136/97/16 +f 112/102/7 113/103/7 128/101/7 +f 106/99/14 105/94/14 122/100/14 +f 120/98/15 106/99/15 136/97/15 +f 113/96/21 114/92/21 129/95/21 +f 105/94/13 107/90/13 121/93/13 +f 114/92/22 115/88/22 130/91/22 +f 107/90/12 108/86/12 123/89/12 +f 115/88/20 116/84/20 131/87/20 +f 108/86/11 109/82/11 124/85/11 +f 116/84/19 117/79/19 132/83/19 +f 109/82/10 110/74/10 125/81/10 +f 117/79/18 118/80/18 133/78/18 +f 138/126/6 140/122/6 137/123/6 +f 140/1/2 144/11/2 139/125/2 +f 144/126/1 142/122/1 143/123/1 +f 142/124/4 138/125/4 141/11/4 +f 137/125/5 139/1/5 141/124/5 +f 142/11/3 144/124/3 138/1/3 +f 146/125/6 148/1/6 145/124/6 +f 148/125/2 152/1/2 147/124/2 +f 152/125/1 150/1/1 151/124/1 +f 150/125/4 146/1/4 149/124/4 +f 145/122/5 147/8/5 149/126/5 +f 150/122/3 152/8/3 146/126/3 +f 155/128/23 39/127/23 142/126/23 +f 35/122/24 156/126/24 13/127/24 +f 154/122/25 36/126/25 143/127/25 +f 40/128/26 153/127/26 16/126/26 +f 39/122/27 159/126/27 30/127/27 +f 160/122/28 40/126/28 152/127/28 +f 38/122/29 158/126/29 28/127/29 +f 157/122/30 37/126/30 146/127/30 +f 38/139/24 164/129/24 12/131/24 +f 162/128/25 37/127/25 138/126/25 +f 33/122/26 161/126/26 9/127/26 +f 163/128/23 34/127/23 139/126/23 +f 168/140/30 36/132/30 151/134/30 +f 167/128/27 35/127/27 149/126/27 +f 33/128/30 165/127/30 25/126/30 +f 166/134/29 34/133/29 147/136/29 +f 211/128/25 198/126/25 191/127/25 +f 187/122/26 173/127/26 212/126/26 +f 210/122/23 199/127/23 188/126/23 +f 192/128/24 176/126/24 209/127/24 +f 191/122/29 182/127/29 215/126/29 +f 216/122/30 208/127/30 192/126/30 +f 190/122/27 180/127/27 214/126/27 +f 213/122/28 202/127/28 189/126/28 +f 190/139/26 172/131/26 220/129/26 +f 218/128/23 194/126/23 189/127/23 +f 185/122/24 169/127/24 217/126/24 +f 219/128/25 195/126/25 186/127/25 +f 224/140/28 207/134/28 188/132/28 +f 223/128/29 205/126/29 187/127/29 +f 185/128/28 177/126/28 221/127/28 +f 222/134/27 203/136/27 186/133/27 diff --git a/assets/hbm/textures/blocks/arc/arc_electrode.png b/assets/hbm/textures/blocks/arc/arc_electrode.png new file mode 100644 index 0000000000000000000000000000000000000000..f8538efc46b97ab155938a893d1fd4b730ac7604 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3( zJ<}BT2#__mJY5_^Ed1wAI?30fAmCyvv35A7r|Mm0~;c07Uhu*ZB?r_{>c70d`(?#iH#`kA-s%jM9 z-qxR1#CffBYX6ck@k6VAdUBM!>UyimT5LA2yD8Y z@MvR-nRo1EY2%5^=TE2o+^6qU{z&%u6M18X_sn^hS_^hh<4p(plEKr}&t;ucLK6V% CMv!^{ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/arc/arc_electrode_burnt.png b/assets/hbm/textures/blocks/arc/arc_electrode_burnt.png new file mode 100644 index 0000000000000000000000000000000000000000..7e1a1f14e98a0499aeea59f7624be69fb9e2cdd1 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucL5ULAh?3y^w370~qEv>0#LT=By}Z;C1rt3( zJ<}BT2#__mJY5_^Ec~bTS#uq75OEFeJjS2gbkVb*Nr_|G#!Vg38#WfOm)&fApm(Qf z?(7Ys(bWh2a^}9~R;qi}IP+1#^SQs%B-k5Fy)?U?-_-aoxLWT}fRmT!;-}1=T^G7l zZaH%Ad+*3`P`^m$5ksa(g20atQl%kxxn4He-%yhat8J{*n9w0L>#5Mo^mLu#IYIKb z6PY8AA6@co-<;1|PZXYa+i}k6&G9C;&E`k+t8AA(*ew&b@4{|X*86)CQv2+3G=97j z4!d>0OFCkuzB||D;tiMB-0z>8QWMD%CdPh_IY8;g;b&_X=Ky`l;OXk;vd$@?2>@Xx BjJW^+ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/concrete.png b/assets/hbm/textures/blocks/concrete.png index 8a6e232941ed3b904dcb8331076438bbc6e01ab8..f59faff0fc4c05f8b5f88ff3937a4292e5094ad8 100644 GIT binary patch delta 420 zcmV;V0bBm11G58=8Gix*005AYXf^-<00DDSM?wIu&K&6g000DMK}|sb0I`n?{9y$E z000SaNLh0L01m?d01m?e$8V@)0000ObVXQnQ*UN;cVTj60B~VxZgehgWpp4kE-@}O zWJg$10003bNklqF+zZVio4K$_a4TGJb!c&+i}t|<-YIpJeOtJ zwyka3VHnnR{rkmrU8sHEA>%ks(aVaFp z>>vz97q(&k|FIuhK_S@Zp~qG_QZykk`%2o^*H@SsKR-XXI{>XU?!80=01;9503yPi z6II0`g75F|8f>lcJP#sLAZA8u4R@#a&RVNT4B+02yVF_&z<=Fqoj`fN)+%5T!Ol4) zTSRboRF&s>N=*)@4G{rg&WWgM$-MVsW~gcbjxmUc$|vWa=K;Xd@7|laWy^VfSPA~@&NjJsnZQXAjs38<>2(A^P{n*IMy$V*jG)e7~!&Whc= z2+ldb=ODw&dVg}$yWV#$?|;c;@4Z#kd)<4lOwKvDJA3Z}l{_Txn)co$`yE~m8Sc*K^I^`(7^CdWIV+2_ zl>zU)S!-dLd@`SNxc8Rlh+vGtTIV!Z diff --git a/assets/hbm/textures/blocks/concrete_tile.png b/assets/hbm/textures/blocks/concrete_tile.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6e232941ed3b904dcb8331076438bbc6e01ab8 GIT binary patch literal 421 zcmV;W0b2fvP)EAm zKe#&ptu^kwL<9g4QTG5M!kiOT#Ug_5@9!FHt?@h$B2pk`Mr#dsr}xfUt4Ivs-iy1_ zS_8n{Yn?!Ozt$>X5y8$mC0j&rcT|<KyEQ1jP&Cn7lK)Qr1hB2pXQ=n1H*rO@3G zk(&MgPRL7DQPm3dz0Qi=y$H@Zzvm#s%X)ItyWV#$?|;c;@4Z#kd)<4lOwKvDJA3Z} zl{_Txn)co$`yE~m z8Sc*K^I^`(7^CdWIV+2_l>zU)S!-dLd@`SNxc8Rlh+vGtTIN2bZe?^J zG%hhNHDpIvQUCw}L`g(JR5(w4lG}=dKoCUz@D<~Wc#GF~iR+4p5D^1@;+{#dCcbPv zG;Ld_yJytewr!s0aU7>%d)KNy6-!$K7}FAa|_4!OI_Cy`@aAA6FEiV{eG{i zswj%fxLVFG@3+v=s?33WC7=8vILi w)e!BbrCEa=bQ1?-0Q$MEONPGwm2ueiFV_FLrkh4R!vFvP07*qoM6N<$f&whE_W%F@ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_arc_furnace_front_off.png b/assets/hbm/textures/blocks/machine_arc_furnace_front_off.png new file mode 100644 index 0000000000000000000000000000000000000000..b888a183346b17562c35a0e4f27b504532b97d1d GIT binary patch literal 494 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00bfZ(K~y+TeUe{?!%z^#^Ih^%Dqm*_q2#TE zK9nVd5F-DDQu+`=$U`+!B@z90`@5aG?XKGMa5^(RXJ+orHHKk0olb|t;dnd}G)>dC zZP#_w|A1l~#|8@D_dUg=4s$6NalG)N*ma+EOf9ASczU3)U{$jCx$f3I0?Ue zR9IpOw%aX>y$o;^MOs8l)<6M2Ea@);?}Twk`8vcJyfGjzN(}00aA<{97<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%hhNHDpIvQUCw~Y)M2xR5(vvl3Q2WKoH0IdhKaXt))l`F@l$ZMMI?`Xb=pBOzsJU zgj59OR4bR_g`4%(hd$Sbeh>TVYbW4CPxnmr%*_6Oo86u9bUK|%rBW;w%jGgU)oQg~ zuQwVE%>Oqq$#I+q73p+37K_m|ok%2-?pU8#BC$r(tC+{ZFbt|Git^yb7>lAP2m*d% z16dSQNsvWQBtenfH2_|cB!VE^KOo>H_yRyd;CE%nYeHUwoXTfaV09TJf#-RyV%x!B zz;kqTgoo(&dgo`|_Q{vi=HZ}KyKFh%Ps*d?(x~YS+VyW=57;c@*cL_2dhjZE+V>O)=5~Jrt!F1&<;=d$CgTy?H0CA%-t2PNSAhMj=8pCCQ+eT94cyAp zKNRncPM&L#V?CMQSgzVeh$3AePOn~#`bBX^Of8%nvB!tIU!~WNe}0agX`H*-2O+gs zv(zvZ^fV3+5x5@pY&Flt{TFfw6~BwmC&0uR>Pt#GbYRKzbN>JaFolo)E(FKAXE>vD z;@~cPBJc!Y2@x3f&NSE-Q}ay-qwc=+$^{v_ zn+)>TK}c6VPe5ICfiutRrsLVWq3Z@U8krw5>#I zuwp@KZ8>b4I*Elt0Q&^1i0zQiZsnOzkfD{#vYv^kTT9YbB)9&4BOY0aE?Q=ZApGvL zvMh`JQZ`LYVRal++cV{=DWRcb8M0}pB}3=9T^B%gI2^{V!ocTyJL8(y@ADEfZ-}vj gAtrGN1q4C-1t$EaZPj-dO8@`>07*qoM6N<$g64}N2bZe?^J zG%hhNHDpIvQUCw}QAtEWR5(w4l3#~}U=)Y@3d@Ra`U07&%-7hV@wmqNEUDuJn z6Ui*gG%BJfIv$Tf5QJfPx)Do~qBxGJ_B>CcG3#lXhG7r~I`w_eSFDK1CrMHih2uEN zK>z}@6$wK|2BwCHceC4^_L$3_`VOIMxqVCJkK~%`ua}*Wm)1t z#|yw>S(Xhj4CC`-|8;tkSOA({9RSvKy#*LX^b8;?0PQy)0@=d@AkT9FwqYayz?_;3 zz!l0K0Cu|_727Zp$Vl8QfI3zH>;$kZi_@gyP5>M$r*sAQ0wCNG70itYSd#w(@J_Jf z2lr3Bi8qGiMG2su2AfXPlxo%wC02;XrvR!ChXWCMe=1esINuRIOcYV7^Fsgt002ov JPDHLkV1iK!wh;gT literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_arc_furnace_top.png b/assets/hbm/textures/blocks/machine_arc_furnace_top.png new file mode 100644 index 0000000000000000000000000000000000000000..6c04585f4e427c8c5503f2b2cd24a77c2ad55eea GIT binary patch literal 503 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00cc4?K~y+TeUe>nf>02JT|}Sz&@FT;T}}z8 z!SEAM1VkuJkeEOee_q^QzuS|ly!3=jCik8*b7r`cVHo!NebY2;+mdu$*Z2M5aJXKt zTs;Fqk|YxtU%#lTidfh6_aDePB$j2F=lOcQb{uDdj#IGRZn*&DQW8(6)A@X+^J=w9 z)6}vo(*Y9fEXy{VjUpN%RS|r=z3}33Y z^T`h#0Rko?A)>@g5CpIRS0jNuz&jp~wB7A?>WP>rj0Dnfia@?S&lB&CkwA;11Lfs= zHk*kD=)*o90%~i3D2njSPGHaHbGZT(0!F|dSnKU}W8e7JHjsfhjj!PHt^M02h5`Tp002ovPDHLkV1fz>&T{|& literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_arc_furnace_top_el.png b/assets/hbm/textures/blocks/machine_arc_furnace_top_el.png new file mode 100644 index 0000000000000000000000000000000000000000..cb89d7532d6a3493e15b4caf0bcdddc4b8b68aa0 GIT binary patch literal 486 zcmV@P)<{97<5HgbW?9;ba!ELWdLwtX>N2bZe?^J zG%hhNHDpIvQUCw}WJyFpR5(w4lG%=eKoCX!2NDzib%+RoxJ20$+$K>%B4JTq_`f+l zH-q{z_n}g0?y0ISdepXUS(cZ}r6>xL+wE3WRbAK5=aWzG!Vt&t2*>GH$K#QBKA*q; zM9v}ca5(ICyCg{*#~HzKiuU_G9}u}nV%K%|`<>2F6s2iu+qUU|3HNrp&9Y1phDcR_ z$z)<#)?%@s!*n_|cfg(JIW;&6!;r{{1TY?t0es(ItyX3v?x%U^hyb`52@#TEmdhn> z#HSBHGvI5QhPK!1RXu@;(gz@hQvl69pU>qR^Z{sbbfCQEc3oFKL?8C?0;sJEtk-Mi zW+%8k&(lD zcntf-7X*PAV4@PvUq9}B-xQNcQ;`58E@qwvZ;9)|=oRT#AjV(@ZDL>yK)u;)Muxur cm2uei5A0v5uzG~zssI2007*qoM6N<$fPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y9E;VFFSW*B00vkz0K~y+TZIan;+E5fl`3Iy(d{jkI`vHAu zGZaPbYw>Vx2;c$R*VnVnURcc=%NZBnOSi16Bi+4@_c?Yc%d+Wo znx^SwGC?t$&F1s@a=F}WHn_@G%k^r32L%kaZI|Fk4vOO#XTRScJSmArA-xT?sn<;$ z-LWl6l1kuUg~Bk54my%aoJRJaiMo&LkM7%<{xPyuk>~R_zy!DJy1wrhCz!xXk~RTrO{0uZET+i$XpF+(8gfN*QC8WigvZffxJi+5vEJa&iLTPOgS(LncBA^A&lV zgQ(dHtnP@)14A5{Ged9@x8)d=@H=NaH|y zy*74GSg}JakYI+-+49C$_sM0E`-fZupmmzM+BJGQOofW2=fKx5>ub03H?9}Ce@fL@ zZ`{Y^SF5&_UW}Wkf!Ws7+zp3mnkWE6s;UZtP@0U# z9;0Axy!Nf%={p)e9wH+~u^bdnOb#HNEJ^sQ2;UI7PXgEAIgbCI;1&eoADe=s&SMMY QiU0rr07*qoM6N<$f?0kl9{>OV literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/gun_karl.png b/assets/hbm/textures/items/gun_karl.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1dba93d4ae6c3782c7ad3c16d3244f8f557ce5 GIT binary patch literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#X#z`!Ws>Eak- z(VLvGK<&mhyI=Mzt7athv~K?Me{wR1@TOWlA;d}5PZy(mXwr`kWf2Y zb7({Qc{#SA7^d%s8lAUGe!7$@p`xlP8MNv9bvBLAWO%z;K`SsRkp8A8Gqe@B_$} znDKvZ;)RRTn^tS<-96l4DlpMhxm$Z>hhahC<^>(erHpzP?mYM~zp;@q&!h0AoZFnl q2L77gzuFh>DB<^{m z5X%m>BopIB(uWQJ!MT&?KfL{%&31pz+MXL*6&Zw$j%z2|Dl;=PAKrd`z2uGx*UlnK z;avyr+wYf{5qU$RuI~SdhBvZ{cy8Dn{k=c`T-Y&o{W_4P0=XP9#vpB5*jx@Ia!1V3 zYhaBCI~?W~QMKda2WiLY4|q~%D9XIi;o%a>;o;$#aHFs&f{9`^d)kSk(&r_+ zZj~D?s%R8waNSt^hslkvOl${tXBi_i^O0zfKKr_Vjk_CC9Q@i2b2B_D&&f)Cpn4t{ O5)7WMelF{r5}E*D0e}Pm literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/ModelGustavYellow.png b/assets/hbm/textures/models/ModelGustavYellow.png new file mode 100644 index 0000000000000000000000000000000000000000..f35253ad762880221f8043276ff2fbdb0f064c85 GIT binary patch literal 1557 zcmV+w2I~2VP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1%F9IK~#8N?V7)9 zB~=v1UzfiiWk8S+5F!B^35Z)*h$sOO7TkcW*aQMgShf|>Qba7a(Z;Q`5j#68|FCgB zcg}Zm=H%RYGcQk>=zQVJ+}z|7)v1!P?yaPtXT#2V^a^{3x4s@n*$=FKI~sq zL2E^ZJnbC$TqTQk_%kkxSWkf5CS>lIWmfMP}G`0^sL!!F=qP7qRp6Xh#DuE*-V> z24FK|1(?EJ{XE-xv6g|1cr<8N&JM_@o&bWH;L*FU7n-;R~2}FNC}( zGA=jCp0MuT%Xs-)`ufOWyOf^DRP>r0ACEZ=z>|C5699k4)pvmI-g$xv4l|v&&jfQX zpM<566I3~Yta)k!sPHvXA0LA`Bu@6(4k<8CIakS|9sZ2_2Jknrg_kB^9El2MI*|g# zKa@xw8THv8X0pUDh1pABwl9s%EJd`9b2F>L`%qVnH8-oC1^45$0XPBHZvoR-7Sh(p%amX*lU!rm#HjD8a0{=Cw$RL~(0WvG`6Gj7 zc8iDD0Q-8kn9DX@tYsi09*Jd*yO0=ute6^0H)a#5HPHaiuHPCEx%XX9fEg?cshj|) zcA>@X$C1+2Y@$9gHbB%D#ICTwcQ!kRyCyvITY7_%L%#>;*H0?NG5wgXW)t<1TN|ME zEdVT~0a!|w_@yv@3#h^Gk(~Q+`hsR)|6MumLb@8aHUL;pfcvq_;&v$MHD)+JKW{uu z+{5S2lbXWV05qDf_xcVngKfT9%Rojv655qx9PDF^8P3km8c!2fQHv$H{=#VDA+nR8 z6}NuN_`dznPXZO8#thp|fQVWw$!9kJXjKE*91@QZF)s7SsE>XRy#cf@^6bB(OJ-&R zOg#a#1{HWJ&Ar2V0^E;X7CW$B8d&uEg5)}WK4+iNQ%`{STY`+S_{hpTfVlJqAd%vj z-4yQX=UEmMPDkRAN7E11D;-6KV-28MlPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0|iM$K~#8N?OMTV z6hRQ(Zxe$`K!`VQf?`fy^rC_gy#y~gNytGDIe5x35XixA8}nxCEpKY8w``cNE`-bZ_v1@`%VS_kx z6%lE_etg}XemU-N)v-+{ri3=YH*}M~G;e9QhHtvJO_rDnY~JaI$1B3_C-2@0gQniu z@83SVcN4f-%v{6jeh#&`!~|fGxe-A6l%L-{AJE74$qJy(%r!*ujH$&YCWIDSHw1{2 zuj~UxqSnM{1Hi|)O|gl8M5(x1{FTOk5*)N?+&Cp#NRP;79@3@~Q)6s#vmtwm`)&Z9 zPID*r4Q#ZTE6`t>PwWYzZ*<~6LT-Th-2}P;N;=Hv+n_b;z6o$W4L5K_}OkFE3Kq4*>F2KrhBF@1H7~ujn2S5rJ zKpnebWr)O-E)5DHHg*!AL;nfc&-uSR=RF&TCnyMl-1mI|q?9B{;uLdl&j8TLT`U&4 zE?~W0JG%MS0KHz%C~!WXUx9A7+fKmT!C=tEbD9H~25!RedLRsQXSr;h1!DjJrlsHe zw$@Dm6e`NBT4E-8eHmIsca(N3fTB-?n@#ub{Dm!8tyT`eXf)Dx#HvoGQzwn+M)xu(3mSwHJ1s9;-?>Aa(3#|kIm`o;C3lE1w?RXx?R)^F>zJWZBjZ0b! zAcSy)5cYdKHHT0Fl#L$=Q43IKXa%w7a&X;)xH*h;MnVWDilUnbCQ0HHcY@h&2V7sj zgCI~syuJ}t2cjs-RavNed)?dV=9B;`h&pqC;vWydXC_F;KEtDA=0}%tDWwuXxdmlI zm3dX^*vEbUARYVngMX#H5t$kn8XhGnUkr~Dybb_NR8H^AkKh~d^l7gJQ1$kE(v_M? f8M@HTsn%3KCPkk&g?Hm*00000NkvXXu0mjfraZ`) literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/core_injector.png b/assets/hbm/textures/models/core_injector.png new file mode 100644 index 0000000000000000000000000000000000000000..4fd6d9702a19d49f4c436778b410384b63e2022b GIT binary patch literal 393 zcmV;40e1e0P)p*_sc)}j}8oVIG&oFzi-FaONFn`4`-_X#T39)8^8vz0X!YR z4a2aZl(rLEYh+nAxsjOa`4ym)B8nm?rN9_Nnx^Xl0Dw{od7e))9FC{PIsjt~f1hj0 z)mnGTuC-nlKuQTIWoMExX0^;?a(v%63VVHf$L;?B0POrdu9pf`b;i&4@MrA;faiI$ z!t1)8<@*N!0C5~YWK5F8IJ^S@07X%Nb3SSiLLdl&c5M2xbO1Q#D9duxaJ$B|XS;oq zgpl6F_u#An^o0#UnQHVhB7`g!JPBY84ITlo%$ZLHSi1D10Bh{L7eEN{a3it`5Cp;9 n-P;WB0NCp7vjA+|YIF4qIn`wCnJ&2M00000NkvXXu0mjf>1?V7 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/core_receiver.png b/assets/hbm/textures/models/core_receiver.png new file mode 100644 index 0000000000000000000000000000000000000000..9fba1ff0204be22a8dafac9360aa57ab1d53fad6 GIT binary patch literal 353 zcmV-n0iOPeP)c zm)%m4*3M?6q2#+L8ivozFo^*YJTk5IIV6BFCXAvrb0RRzQ@4fdDA;ZOp2*;l2S15ODy!aO#0gdJ0VNSpK+OB!^nC+R5!IM;4$isRv%0SD z?(v3Uc&e2|+b)tAm*5)X?#q-?v-)e>cF~}%wV6n}`0sziqmL310|2cxYrHY$;rnQ7 zEQxVRVqB6Kmn6m|iE$BIE7#UOE+S%E97$aOW0pl#2@S(?00000NkvXXu0mjfcP^PZ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/missileStrong_EMP.png b/assets/hbm/textures/models/missileStrong_EMP.png new file mode 100644 index 0000000000000000000000000000000000000000..a981e35a801d375a08427876e5572d649bd5fe5a GIT binary patch literal 7748 zcmeHshcg^r)b_5mtFv07_fA->wW6)wStUe7O|(RhU=el^y+z9^KQ>50h-guwEm5N; zi0CZ{(M4~s_aFHFf$u#t=bkxd=AJwEIrE&EdrutNScis^jS>I=(CF!En%!9J|0+4? zX8pJD>h#6{pPA{X11g3%)^8kAS2ZIw0H7*`>cSBW0Du5!Lkq2&xQK{|sHmuzn3%Y@ zxP*knojZ3VB_*Y#q+l?Zw6wI0jEtgpOA8k(A#T3TA#+S>a1`oY1$At525p`kBcya)>m3l9$miGGJj zjFH_LCzt$5AvHk>`$Z)^Ni8!)BRfqCpP`eRg(BtvLf3)@2SSGbgpCeGjE_W3j>XU? z;-;q(W@mTI&m}D`r0!k9EU%=kuBYn&*S`Q*EEb2uMMOkIMn*0UzRj)i*o=_?sDANx8>5_ix${>wkKhY8F9uTREOK>=Oae(*#Vx zt5E`Gl>E4pAOyj^m|_vYjap*Uudca&&mC)vw07eD=E2{uCB*!?^~P?`{vwQR!XQA(5sOc z>=&DqCm8m_SH8w-?aP>as} z1jG;c`u5AeJ=*3Lc2`-Q6dR8B&C4{c^TzhOXl2zrv8WUtb_##x+MH}&FLj{A>dI`h zR@A(36)|0J;{B;McDX_K6#gkqVE9yUjr(Xgy;vlHDYEhoFJ!$Hh>18gjW+L2GSV-^ zTVaNRn^&uJb7jgM94&dc+`DD$?J&lqKj0O+{3bn}xq-1yBZO7*={d557~LDa0o_%O z2(dIg^5C&)mWpn7n(0v2Pr*im8nO0hxUs&MaH_qXHQRv@1<#pp8go^ZVGW0(}vt`3J7X0JMAzFIN)_puR(jbeS27F7Ep zIHU@r87re7&jOWsqE#8OKq~T-113mv|3HAGv4VonM}0uoHb4BUqI0$-6O6m&Q-62p zH?zkIW%&*$4tf$pM0Sx9C%r~KUwnHE-s(3Ae?AM(1C4Bf&^!{L-GfN$Cl>p@C}UnN z7AC7lO)X*oUkAEey|G?(BU%FVDY2tSQXmG~NBVE`Eta|}`@O-Q7+1J^*Tq_}Fo8NfHW$MTyqOgk->@w05Mm zb@H1rc%PV`STQwh=qe`bccOqibFf~BmK zZ_&DyF0;>yPwkQBPxTY|guE1D@5yk^=$U?B|Jt3t8Xl#T`~%4@T&}0KPxs1|*%3k= zyV45mP%JCSk>HNB3eyc8_*lqETS#mDpFPzFSaAYDU)bJm>|s~BdQ6b16%S-HJ~x8$ zk!W5aDz1+aRE`LR>{(lD2}X}7-5{7p)yL61o+_e%{mgl z7hidbQ^J#3%XO3*Iy?9~iN%k9<45aTV8AYC z)_}oJu{8Q}drOSoEKq}ub>WX1mw34$S+MVU)P zEpQ)S%wruy4JzX{%aZ&iaAl*bm=r!nmC1A_v~#d9MUTfom`7ex5_z(d%JmQK2Q$3D4`K5yIsO(ZM%H4sx$+=$ACLo3=&iU-(Jh>iiKFF zrNKHFu;go=H@xC??PPWCta$`PU5+42AMr$qXNo#}-q0hxN~MZa0}iHEGHR!J_NDss z=`X3#Qbda;_7(x7@9Nnl>6#!qrgm3%TFRFg#JaUa{$nc)aKn{|01bU)Sh%PhU)qxX z05u8TGu|a%;Htk$dVNyFj^?w##Ye|WXn_=j(?dTLVWhh&bwK(u(Y}C@2-7>)+>#_i z0T?rIWqfmLBt8{%hk!yv=$ni_c^&cXXc;6_NrcI0sl^IWac-mLG&fiulK&%1ETOSk zZWSulOLR7PmdFbgyEmvx@-x2Hhw6{6Pzan*XvK4-znVoD`Ked*qq7`lO$Q^Fp(103Phk#d55e?-I6TIs;h4YMFU z^!l|v;()s+Xvs$-o1w^+%1=_)OZ_?45j^!OF6Te-l?h{42JaUFgkR*UL`& z7t5)-e|adK*F7Q|qthF}ZyA67vVENLWROU)Lc7ivr^jgLAg4iD@aw5G^gIw!DdJ?C zLodOioyO`(=d`NEpECKx>}fC21|VTlsN6kRDHCtxkrrv;xVxf3=KO;fotx76l zt!*%R%5X-Pb4&}X5}w>(BE*pB=3O36V2TIX>!Ka_5R2nnkY7nOB1AM~9d8UHL7sR? z?g3LYg^xFbh)V3CSuP(K?ga#cq5km=q`E33I)qZUTOI?p0^e^JwJ@QvGt{r3f6z%7 zg`XU++vf;=CGT_t&iP2*bhoE03W9a(vHWQ%|D^Pzpwm5n823|CP>^L1v!mY;wS%`c z*+5~Wa)w&=5<5F1ql}>=sEbw1(@>OY(lb)m6b4FlrAUctF?t851&rv+ z&a9ASg@u0mx9jrd6#S*+f2vNl)49Z8ON&%$AH$yZ;Jzp!c!t209Rf2kqIl=Mhd(18 zKq)Cbe=@_WiyoP)bj(S8sw#s9A<=gjEXjS7bk!cB&G6gQz0oNUp2?R;6Ls>FIK2lS zx@PpY1(n}1Rv8*IAtcO`7i6E&-_%I53#EG+M2;fkaRtk*1`A*rcvRy}Ds(_Fotfq( zIR!e_sg9=whYw~R zu)Lbvgzf$-6zlV)Pw5WwP>gJ}e(e@~_Isn;Fz`cn;>EOU-Ru3^{LGuXHuvF=x z69xo5u{1eVVsQ-IgwaA363l=>!?gQZMaM_k^UswNfEJy)A24`Q=4||@iHw(iokxVn zENb9s*RYAhJm4ojCJOr3H6jpX=1(zdz5n*mg}?3s(`L_)?T1-WY+J1R@}26xd$@iP zcKxrgCdH&FM#RZ^L6Ru^4@UCeTzOTtl`$LW*V%FCq!p3il8B0(jj$=B^VX;DZ71q& zW&dt?m0)J;HAan3{oSU6|7^HV(7hNPI&(iS2f}S8|AhW$n(Fx}9iu`@pTm1NvAuKDUsjYOm=4 zM#a#Q_qz9&RL%yLA>3})pSQkvb<}7 zdVcuUX7fVUfw}j7QrFU@X!uQrQXLxJOFJ!p;{e$?CS_a|3(KO?a~uaJFw}vhB&KzR ztkyJcwJD!AV;XJF%UAo?RT&CS{S@P__?OM+L~?iE2TSWX1%2gq?oX!zV_s}s0jHdiJW*YlgJ?jGD?x{$Z$aQ=yhln;u}SPQ zh+ctgX)~i79exNxvQq#_kX8{oekAb((9fR|*rF10`wr;eqJqT))%YWwr046&xZ06fHP2EM=jhDdBeH8li?NurZSo#*W$oW8xbg`O+bai-lb75s9Yi=uzN01*G>*ub2i~PIjxXGnFg`6%EockT z`E2g7vzPvN*i}^>v?GyNKbA|&n0M^gAzF-TcbYgqaHa7va99B1bU2EMzCX87_D8uk zuI0o|5r1x;S(xW^ssommMc0RFm1t*0cgc%6wndo+q92=UOr@`$iV?%wvO+WbW^um98$;!$%`XH&N$E8_clT6W}%~c6Y$Nk1IeF#)R=k$Xv2_(5h@?kOYh2tBO$@IFhpGGvY z)R*PCt0%T4eLaEUd8wGNxb?2hx52-&Zjoc!NU^Gz&k{3G5vY||l zuqyV^%R__D8hi_Rdh>=;6PxnHFFHvI?!u!QDlxniy;MA%CaY5KXj2_(x3u$fg8taV z(UgngBhz;phRMEASk!+c;kfs#b`vlaivlU3i2eb(c`gF_!PHXuatq$AO!w3KGX5<8 zqrdA0<1=R(3A89m=4buxu@yDEX~aZnda_K7UzBclt?>#*Qjm}ISEzEhc=m^T^b2n} zsGWp?*qaHlSE~tg9TDo>OuO;Qm$`Rgpd+5c#Sv5NSXYK!tkC9$>JZ@H`%Z>xMRxU( z^%Exo8T+S~(TON)L`lRK_l9*rW#aS0gO$T4n9modPcSVPyN;Ne)(7^p4=Yq9U;mZc zk(jV5>p$Fhf?1jMwBoK(5-`|X+!#?atZ-y(kO7 zj&1mT`%j-H7v7hRpRFAZ_Ka`ryCUo>PD4IFu$?Wpx^S?(&wJ4Hyp|8HS07#ZU2G3u zapq&8Z~i8VhxT1wZ=9{%E5SBaB7ytcpfDbS@&4TGk~=;)e(3k2vDJEB0@Ky{w~X#7 zqP4wYWuITW;vuhzopY^ZCdUPRE35jqdx`rGI;S39Y&kOC!Xz#~E>LD8EWGXG!Ss;L zu=ua;yEOWpu8fbzj6X@5=+5&GeP}-i%}%*rbAZwgc~B#>z9gf&a~m>Ir}0RKZ-*QFbd4*onb^Rke+p$ITeAPu@*4?R5Q>#Xilu+c^Xc`(Lp0MKHd;WrAQfdzOVCEW7konPGzro+aWe8c2S@Z6@K$yZ1nB*-`w%>jaATO1CXVEd{7Qt{e^ZB zm{GAn;=#y^j$(1_VC)$JwFw2**TlqZUloqX`WB{u@NB>Z@md|sa)Zg1)6kxOI64^5@ z5_&IC$N; z{N7;6>z;%aH{q=VV2Nb%yL2`Z68Lh26nu>z1MP=r_;}uch;I!8e0?_1HnFm4I+2w zbRZ%0Qezx16x%Op>D5_c=^Q+oD1r`WZAmYlD2Nv+og)$eI8Fcazgt_Myth{mXwLIz z{_{wd_Xz7}FF*(v%niu5%?+9$*vtLFhxVXF^9SV6G56j47A4s#C32d!!ojKarx#Yd zj7d5mj!1k%*E=>?z|5of*X>=Wm%@m}*EUzDFYz9$J;%A}r?abEkCNqkj^~>qin#OX z$*M<&l*mh;&had58nOuiuwlAM#_r~!lJ_>Js?-Z8w}}h5ks9hX?`?1S`h%vBh$LnY7N{CmrMk#~ytlFOs&IWz1z?{w6vy_8PBH-) z+o-f-kWA%f?UBx=i+6n@iQY{qjw zm}i0Ep&sCwp?QyO#DQwndalB0TkbWbjF)`D_KBh-?EET^S1)!|e>s83xg{`LsHEI7BXT+8=sZn=cFJp*f^ zC$6aS`LxTCQ*=$Bm>s~fKpup8FwxMVfcblXY}LLS(f-RS`_JzFWrgXXwzhMwiIn*n z${5u>#1U3Uy?Qc8o*^~Q7=kjMi2;(i$J;6wQPISVyt2-Fuc+u!^_s7(wA8N4SuuBr;Q!3lKR@ z$~8)e5C#+ov%qndU_)&xOUm!Ddj*=ZsoJ8$vxsHnp(D-`l3X(q`H z-dFMq#vym%<`?=?Qmni4*M}2VLC2)k6qm6BV;TBJH!uCp>1W@s{={PLnfmE6J~kG{ z!OYvtHN)4>{1RS=H|IXz>cR5}8lO*m-nyMdkQYyW9|>X=G+aFqpP`Vw_J#B!)JXtQ z9_f@O09{oLLNgio5m3lfyjK6Y0`p!EEB1)`b9VvkR;rWkz_#Wa^#?VRff|7#q_jAp zuj0+Kt%1LI-WeD6S^x zd@Vg6aNBq_P`m_~BfP@8$==7+H^(I5V(*@TD$^)V8o1vv;-7VlRs;Lp6thNORsr=hVtsxKf;7d4 ziezX7;kz1NJ)0)VH5B=hJIH-hVZ3cq{4Swq54ImuZwt{dK{5@@bY+8*{_$kye5v3y z7?!e=aZslvmf4(w6YO6`jfg2`UTgQJyPjkiFdHJu?`&{=pj(3@JpSA^G9+X;oj{lL zkt04*RB2EHE~g$nsY3f2-TQ`F&v)}-#|K~bya0@}9j+*w<^|;T5g_$))8zv&#eIuQ zz@*Xeu00$u@2f6TrtFlD?qkGy6-gJwlai{8t<8FTMUt%7aB?G)MsXLxEaHu^q#xq} u(p>sObPrFRWY4Y}Z)PZTh=qf-Yp|K7^I0~IMCX5pVR~A|nic8}5&r{Tl)lyg literal 0 HcmV?d00001 diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 13a4fe31e..a4fed6270 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -132,10 +132,12 @@ public class ModBlocks { public static Block reinforced_lamp_off; public static Block reinforced_lamp_on; + public static Block concrete_smooth; public static Block concrete; public static Block brick_concrete; public static Block brick_obsidian; public static Block brick_light; + public static Block brick_compound; public static Block cmb_brick; public static Block cmb_brick_reinforced; @@ -327,6 +329,9 @@ public class ModBlocks { public static Block machine_electric_furnace_off; public static Block machine_electric_furnace_on; public static final int guiID_electric_furnace = 16; + + public static Block machine_arc_furnace_off; + public static Block machine_arc_furnace_on; //public static Block machine_deuterium; public static final int guiID_machine_deuterium = 20; @@ -416,6 +421,10 @@ public class ModBlocks { public static Block ams_limiter; public static final int guiID_ams_limiter = 56; + public static Block dfc_emitter; + public static Block dfc_injector; + public static Block dfc_receiver; + public static Block machine_converter_he_rf; public static final int guiID_converter_he_rf = 28; @@ -731,17 +740,19 @@ public class ModBlocks { gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian"); asphalt = new BlockGeneric(Material.rock).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt"); - reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); - reinforced_glass = new ReinforcedBlock(Material.glass).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_glass"); - reinforced_light = new ReinforcedBlock(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setLightLevel(1.0F).setHardness(15.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); - reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); - reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); - reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); + reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick"); + reinforced_glass = new ReinforcedBlock(Material.glass).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(200.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_glass"); + reinforced_light = new ReinforcedBlock(Material.rock).setBlockName("reinforced_light").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setLightLevel(1.0F).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_light"); + reinforced_sand = new BlockGeneric(Material.rock).setBlockName("reinforced_sand").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(400.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_sand"); + reinforced_lamp_off = new ReinforcedLamp(Material.rock, false).setBlockName("reinforced_lamp_off").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_off"); + reinforced_lamp_on = new ReinforcedLamp(Material.rock, true).setBlockName("reinforced_lamp_on").setHardness(15.0F).setResistance(300.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_lamp_on"); - concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); - brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); - brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); + concrete_smooth = new BlockGeneric(Material.rock).setBlockName("concrete_smooth").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete"); + concrete = new BlockGeneric(Material.rock).setBlockName("concrete").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(4000.0F).setBlockTextureName(RefStrings.MODID + ":concrete_tile"); + brick_concrete = new BlockGeneric(Material.rock).setBlockName("brick_concrete").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":brick_concrete"); + brick_obsidian = new BlockGeneric(Material.rock).setBlockName("brick_obsidian").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(8000.0F).setBlockTextureName(RefStrings.MODID + ":brick_obsidian"); brick_light = new BlockGeneric(Material.rock).setBlockName("brick_light").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":brick_light"); + brick_compound = new BlockGeneric(Material.rock).setBlockName("brick_compound").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":brick_compound"); cmb_brick = new BlockGeneric(Material.rock).setBlockName("cmb_brick").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick"); cmb_brick_reinforced = new BlockGeneric(Material.rock).setBlockName("cmb_brick_reinforced").setCreativeTab(MainRegistry.blockTab).setHardness(25.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":cmb_brick_reinforced"); @@ -848,9 +859,11 @@ public class ModBlocks { machine_industrial_generator = new MachineIGenerator(Material.iron).setBlockName("machine_industrial_generator").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":industrial_generator"); machine_cyclotron = new MachineCyclotron(Material.iron).setBlockName("machine_cyclotron").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cyclotron"); machine_radgen = new MachineRadGen(Material.iron).setBlockName("machine_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_radgen"); - + machine_electric_furnace_off = new MachineElectricFurnace(false).setBlockName("machine_electric_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_electric_furnace_on = new MachineElectricFurnace(true).setBlockName("machine_electric_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); + machine_arc_furnace_off = new MachineArcFurnace(false).setBlockName("machine_arc_furnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); + machine_arc_furnace_on = new MachineArcFurnace(true).setBlockName("machine_arc_furnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); //machine_deuterium = new MachineDeuterium(Material.iron).setBlockName("machine_deuterium").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -949,6 +962,10 @@ public class ModBlocks { machine_converter_he_rf = new BlockConverterHeRf(Material.iron).setBlockName("machine_converter_he_rf").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_converter_he_rf"); machine_converter_rf_he = new BlockConverterRfHe(Material.iron).setBlockName("machine_converter_rf_he").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_converter_rf_he"); + dfc_emitter = new CoreComponent(Material.iron).setBlockName("dfc_emitter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_emitter"); + dfc_injector = new CoreComponent(Material.iron).setBlockName("dfc_injector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_injector"); + dfc_receiver = new CoreComponent(Material.iron).setBlockName("dfc_receiver").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":dfc_receiver"); + seal_frame = new BlockGeneric(Material.iron).setBlockName("seal_frame").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":seal_frame"); seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3"); @@ -1229,9 +1246,11 @@ public class ModBlocks { GameRegistry.registerBlock(reinforced_lamp_on, reinforced_lamp_on.getUnlocalizedName()); //Bricks + GameRegistry.registerBlock(concrete_smooth, concrete_smooth.getUnlocalizedName()); GameRegistry.registerBlock(concrete, concrete.getUnlocalizedName()); GameRegistry.registerBlock(brick_concrete, brick_concrete.getUnlocalizedName()); GameRegistry.registerBlock(brick_obsidian, brick_obsidian.getUnlocalizedName()); + GameRegistry.registerBlock(brick_compound, brick_compound.getUnlocalizedName()); GameRegistry.registerBlock(brick_light, brick_light.getUnlocalizedName()); //CMB Building Elements @@ -1425,6 +1444,8 @@ public class ModBlocks { GameRegistry.registerBlock(machine_converter_rf_he, machine_converter_rf_he.getUnlocalizedName()); GameRegistry.registerBlock(machine_electric_furnace_off, machine_electric_furnace_off.getUnlocalizedName()); GameRegistry.registerBlock(machine_electric_furnace_on, machine_electric_furnace_on.getUnlocalizedName()); + GameRegistry.registerBlock(machine_arc_furnace_off, machine_arc_furnace_off.getUnlocalizedName()); + GameRegistry.registerBlock(machine_arc_furnace_on, machine_arc_furnace_on.getUnlocalizedName()); GameRegistry.registerBlock(machine_assembler, machine_assembler.getUnlocalizedName()); GameRegistry.registerBlock(machine_chemplant, machine_chemplant.getUnlocalizedName()); GameRegistry.registerBlock(machine_fluidtank, machine_fluidtank.getUnlocalizedName()); @@ -1518,6 +1539,11 @@ public class ModBlocks { GameRegistry.registerBlock(ams_emitter, ams_emitter.getUnlocalizedName()); GameRegistry.registerBlock(ams_limiter, ams_limiter.getUnlocalizedName()); + //Dark Fusion Core + GameRegistry.registerBlock(dfc_emitter, dfc_emitter.getUnlocalizedName()); + GameRegistry.registerBlock(dfc_injector, dfc_injector.getUnlocalizedName()); + GameRegistry.registerBlock(dfc_receiver, dfc_receiver.getUnlocalizedName()); + //Missile Blocks GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); diff --git a/com/hbm/blocks/machine/CoreComponent.java b/com/hbm/blocks/machine/CoreComponent.java new file mode 100644 index 000000000..e4f5fb01a --- /dev/null +++ b/com/hbm/blocks/machine/CoreComponent.java @@ -0,0 +1,59 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.interfaces.IBomb; +import com.hbm.interfaces.IMultiblock; +import com.hbm.tileentity.machine.TileEntityCoreEmitter; +import com.hbm.tileentity.machine.TileEntityCoreInjector; +import com.hbm.tileentity.machine.TileEntityCoreReceiver; +import com.hbm.tileentity.machine.TileEntityVaultDoor; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockPistonBase; +import net.minecraft.block.material.Material; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class CoreComponent extends BlockContainer { + + public CoreComponent(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + + if(this == ModBlocks.dfc_emitter) + return new TileEntityCoreEmitter(); + if(this == ModBlocks.dfc_receiver) + return new TileEntityCoreReceiver(); + if(this == ModBlocks.dfc_injector) + return new TileEntityCoreInjector(); + + return null; + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack stack) { + + int l = BlockPistonBase.determineOrientation(world, x, y, z, player); + world.setBlockMetadataWithNotify(x, y, z, l, 2); + } +} diff --git a/com/hbm/blocks/machine/MachineArcFurnace.java b/com/hbm/blocks/machine/MachineArcFurnace.java new file mode 100644 index 000000000..3bf9f5a13 --- /dev/null +++ b/com/hbm/blocks/machine/MachineArcFurnace.java @@ -0,0 +1,280 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; +import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class MachineArcFurnace extends BlockContainer { + + private final Random field_149933_a = new Random(); + private Random rand; + private final boolean isActive; + private static boolean keepInventory; + + @SideOnly(Side.CLIENT) + private IIcon iconFront; + @SideOnly(Side.CLIENT) + private IIcon iconTop; + @SideOnly(Side.CLIENT) + private IIcon iconBottom; + + public MachineArcFurnace(boolean blockState) { + super(Material.iron); + rand = new Random(); + isActive = blockState; + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_arc_furnace_front_on" : ":machine_arc_furnace_front_off")); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (this.isActive ? ":machine_arc_furnace_top_on" : ":machine_arc_furnace_top")); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + ":machine_arc_furnace_bottom"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_arc_furnace_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + + if(side == 0) + return this.iconBottom; + if(side == 1) + return this.iconTop; + + return metadata == 0 && side == 3 ? this.iconFront : (side == metadata ? this.iconFront : this.blockIcon); + } + + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) + { + return Item.getItemFromBlock(ModBlocks.machine_arc_furnace_off); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + this.setDefaultDirection(world, x, y, z); + } + + private void setDefaultDirection(World world, int x, int y, int z) { + if(!world.isRemote) + { + Block block1 = world.getBlock(x, y, z - 1); + Block block2 = world.getBlock(x, y, z + 1); + Block block3 = world.getBlock(x - 1, y, z); + Block block4 = world.getBlock(x + 1, y, z); + + byte b0 = 3; + + if(block1.func_149730_j() && !block2.func_149730_j()) + { + b0 = 3; + } + if(block2.func_149730_j() && !block1.func_149730_j()) + { + b0 = 2; + } + if(block3.func_149730_j() && !block4.func_149730_j()) + { + b0 = 5; + } + if(block4.func_149730_j() && !block3.func_149730_j()) + { + b0 = 4; + } + + world.setBlockMetadataWithNotify(x, y, z, b0, 2); + } + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) + { + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + if(i == 1) + { + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + } + if(i == 2) + { + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + } + if(i == 3) + { + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + + if(itemStack.hasDisplayName()) + { + ((TileEntityMachineArcFurnace)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); + } + } + + @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) + { + return true; + } else if(!player.isSneaking()) + { + TileEntityMachineArcFurnace entity = (TileEntityMachineArcFurnace) world.getTileEntity(x, y, z); + if(entity != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_electric_furnace, world, x, y, z); + } + return true; + } else { + return false; + } + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityMachineArcFurnace(); + } + + public static void updateBlockState(boolean isProcessing, World world, int x, int y, int z) { + int i = world.getBlockMetadata(x, y, z); + TileEntity entity = world.getTileEntity(x, y, z); + keepInventory = true; + + if(isProcessing) + { + world.setBlock(x, y, z, ModBlocks.machine_arc_furnace_on); + }else{ + world.setBlock(x, y, z, ModBlocks.machine_arc_furnace_off); + } + + keepInventory = false; + world.setBlockMetadataWithNotify(x, y, z, i, 2); + + if(entity != null) { + entity.validate(); + world.setTileEntity(x, y, z, entity); + } + } + + @Override + public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) + { + if (!keepInventory) + { + TileEntityMachineArcFurnace tileentityfurnace = (TileEntityMachineArcFurnace)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + + if (tileentityfurnace != null) + { + for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) + { + ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); + + if (itemstack != null) + { + float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; + + while (itemstack.stackSize > 0) + { + int j1 = this.field_149933_a.nextInt(21) + 10; + + if (j1 > itemstack.stackSize) + { + j1 = itemstack.stackSize; + } + + itemstack.stackSize -= j1; + EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); + + if (itemstack.hasTagCompound()) + { + entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); + } + + float f3 = 0.05F; + entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; + entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; + p_149749_1_.spawnEntityInWorld(entityitem); + } + } + } + + p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); + } + } + + super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); + } + + @Override + @SideOnly(Side.CLIENT) + public void randomDisplayTick(World p_149734_1_, int x, int y, int z, Random rand) + { + if (isActive) + { + int l = p_149734_1_.getBlockMetadata(x, y, z); + float f = x + 0.5F; + float f1 = y + 0.0F + rand.nextFloat() * 6.0F / 16.0F; + float f2 = z + 0.5F; + float f3 = 0.52F; + float f4 = rand.nextFloat() * 0.6F - 0.3F; + float f5 = rand.nextFloat(); + float f6 = rand.nextFloat(); + + if (l == 4) + { + p_149734_1_.spawnParticle("smoke", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); + p_149734_1_.spawnParticle("flame", f - f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); + } + else if (l == 5) + { + p_149734_1_.spawnParticle("smoke", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); + p_149734_1_.spawnParticle("flame", f + f3, f1, f2 + f4, 0.0D, 0.0D, 0.0D); + } + else if (l == 2) + { + p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); + p_149734_1_.spawnParticle("flame", f + f4, f1, f2 - f3, 0.0D, 0.0D, 0.0D); + } + else if (l == 3) + { + p_149734_1_.spawnParticle("smoke", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); + p_149734_1_.spawnParticle("flame", f + f4, f1, f2 + f3, 0.0D, 0.0D, 0.0D); + } + } + } + + @Override + @SideOnly(Side.CLIENT) + public Item getItem(World p_149694_1_, int p_149694_2_, int p_149694_3_, int p_149694_4_) + { + return Item.getItemFromBlock(ModBlocks.machine_arc_furnace_off); + } +} diff --git a/com/hbm/handler/guncfg/GunRocketFactory.java b/com/hbm/handler/guncfg/GunRocketFactory.java index 923324a9a..50e32da29 100644 --- a/com/hbm/handler/guncfg/GunRocketFactory.java +++ b/com/hbm/handler/guncfg/GunRocketFactory.java @@ -48,6 +48,39 @@ public class GunRocketFactory { return config; } + public static GunConfiguration getKarlConfig() { + + GunConfiguration config = getGustavConfig(); + + config.reloadDuration = 20; + + config.name = "M1 Karl-Gerät"; + config.manufacturer = "???"; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.ROCKET_HE); + config.config.add(BulletConfigSyncingUtil.ROCKET_EMP); + config.config.add(BulletConfigSyncingUtil.ROCKET_SLEEK); + config.config.add(BulletConfigSyncingUtil.ROCKET_NUKE); + config.durability = 500; + + return config; + } + + public static GunConfiguration getPanzConfig() { + + GunConfiguration config = getGustavConfig(); + + config.reloadDuration = 25; + + config.name = "Raketenpanzerbüchse 54"; + config.manufacturer = "Enzinger Union"; + + config.durability = 260; + + return config; + } + public static BulletConfiguration getRocketConfig() { BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 4f4f2e08c..b896deaad 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -865,6 +865,8 @@ public class ModItems { public static Item gun_rpg; public static Item gun_rpg_ammo; + public static Item gun_karl; + public static Item gun_panzerschreck; public static Item gun_hk69; public static Item gun_stinger; public static Item gun_skystinger; @@ -2319,6 +2321,8 @@ public class ModItems { ammo_grenade_sleek = new ItemAmmo().setUnlocalizedName("ammo_grenade_sleek").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_grenade_sleek"); gun_rpg = new ItemGunBase(GunRocketFactory.getGustavConfig()).setUnlocalizedName("gun_rpg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_rpg"); + gun_karl = new ItemGunBase(GunRocketFactory.getKarlConfig()).setUnlocalizedName("gun_karl").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_karl"); + gun_panzerschreck = new ItemGunBase(GunRocketFactory.getPanzConfig()).setUnlocalizedName("gun_panzerschreck").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_panzerschreck"); gun_rpg_ammo = new Item().setUnlocalizedName("gun_rpg_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_rpg_ammo_alt"); gun_hk69 = new ItemGunBase(GunGrenadeFactory.getHK69Config()).setFull3D().setUnlocalizedName("gun_hk69").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_hk69"); gun_stinger = new GunStinger().setUnlocalizedName("gun_stinger").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_stinger"); @@ -3942,6 +3946,8 @@ public class ModItems { GameRegistry.registerItem(gun_b92, gun_b92.getUnlocalizedName()); GameRegistry.registerItem(gun_b93, gun_b93.getUnlocalizedName()); GameRegistry.registerItem(gun_rpg, gun_rpg.getUnlocalizedName()); + GameRegistry.registerItem(gun_karl, gun_karl.getUnlocalizedName()); + GameRegistry.registerItem(gun_panzerschreck, gun_panzerschreck.getUnlocalizedName()); GameRegistry.registerItem(gun_hk69, gun_hk69.getUnlocalizedName()); GameRegistry.registerItem(gun_stinger, gun_stinger.getUnlocalizedName()); GameRegistry.registerItem(gun_fatman, gun_fatman.getUnlocalizedName()); diff --git a/com/hbm/items/weapon/ItemGunBase.java b/com/hbm/items/weapon/ItemGunBase.java index 3185928e6..e05d6d6c8 100644 --- a/com/hbm/items/weapon/ItemGunBase.java +++ b/com/hbm/items/weapon/ItemGunBase.java @@ -241,7 +241,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon { if(player.inventory.hasItem(ammo)) { player.inventory.consumeInventoryItem(ammo); setMag(stack, getMag(stack) + 1); - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); } else { setIsReloading(stack, false); break; @@ -250,6 +249,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon { if(getMag(stack) == mainConfig.ammoCap) { setIsReloading(stack, false); + world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); break; } else { resetReloadCycle(stack); @@ -290,7 +290,6 @@ public class ItemGunBase extends Item implements IHoldableWeapon { if(player.inventory.hasItem(ammo)) { player.inventory.consumeInventoryItem(ammo); setMag(stack, getMag(stack) + 1); - world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); } else { setIsReloading(stack, false); break; @@ -299,6 +298,7 @@ public class ItemGunBase extends Item implements IHoldableWeapon { if(getMag(stack) == mainConfig.ammoCap) { setIsReloading(stack, false); + world.playSoundAtEntity(player, mainConfig.reloadSound, 1.0F, 1.0F); break; } else { resetReloadCycle(stack); diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index f27df3b87..9ef2e7a39 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -118,6 +118,8 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_rpg, new ItemRenderRpg()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_karl, new ItemRenderRpg()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_panzerschreck, new ItemRenderRpg()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_stinger, new ItemRenderStinger()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_skystinger, new ItemRenderStinger()); //MinecraftForgeClient.registerItemRenderer(ModItems.gun_rpg_ammo, new ItemRenderRocket()); @@ -316,6 +318,10 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSEmitter.class, new RenderAMSEmitter()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityAMSLimiter.class, new RenderAMSLimiter()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreEmitter.class, new RenderCoreComponent()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreReceiver.class, new RenderCoreComponent()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCoreInjector.class, new RenderCoreComponent()); + RenderingRegistry.registerEntityRenderingHandler(EntityMissileGeneric.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileAntiBallistic.class, new RenderMissileGeneric()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileIncendiary.class, new RenderMissileGeneric()); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index e2c6426ea..b7f769c72 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -713,8 +713,10 @@ public class CraftingManager { //GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.asphalt), 8), new Object[] { "BGB", "GSG", "BGB", 'B', ModItems.canister_bitumen, 'G', Blocks.gravel, 'S', Blocks.sand }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_light), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.fence, 'B', Blocks.brick_block }); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.concrete), 8), new Object[] { "SGS", "GWG", "SGS", 'S', Blocks.sand, 'G', Blocks.gravel, 'W', Items.water_bucket }); - GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.concrete), 8), new Object[] { "GSG", "SWS", "GSG", 'S', Blocks.sand, 'G', Blocks.gravel, 'W', Items.water_bucket }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.concrete_smooth), 8), new Object[] { "SGS", "GWG", "SGS", 'S', Blocks.sand, 'G', Blocks.gravel, 'W', Items.water_bucket }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.concrete_smooth), 8), new Object[] { "GSG", "SWS", "GSG", 'S', Blocks.sand, 'G', Blocks.gravel, 'W', Items.water_bucket }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.concrete), 4), new Object[] { "CC", "CC", 'C', ModBlocks.concrete_smooth }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_concrete), 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete_smooth, 'B', Items.clay_ball }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_concrete), 4), new Object[] { " C ", "CBC", " C ", 'C', ModBlocks.concrete, 'B', Items.clay_ball }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.brick_obsidian), 4), new Object[] { "FBF", "BFB", "FBF", 'F', Blocks.iron_bars, 'B', Blocks.obsidian }); //GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.cmb_brick), 4), new Object[] { "PPP", "PIP", "PPP", 'P', ModItems.plate_combine_steel, 'I', ModItems.ingot_combine_steel }); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 2c538f422..eb8dea227 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -273,6 +273,9 @@ import com.hbm.tileentity.machine.TileEntityBroadcaster; import com.hbm.tileentity.machine.TileEntityConverterHeRf; import com.hbm.tileentity.machine.TileEntityConverterRfHe; import com.hbm.tileentity.machine.TileEntityCoreAdvanced; +import com.hbm.tileentity.machine.TileEntityCoreEmitter; +import com.hbm.tileentity.machine.TileEntityCoreInjector; +import com.hbm.tileentity.machine.TileEntityCoreReceiver; import com.hbm.tileentity.machine.TileEntityCoreTitanium; import com.hbm.tileentity.machine.TileEntityCrateIron; import com.hbm.tileentity.machine.TileEntityCrateSteel; @@ -284,6 +287,7 @@ import com.hbm.tileentity.machine.TileEntityFWatzCore; import com.hbm.tileentity.machine.TileEntityForceField; import com.hbm.tileentity.machine.TileEntityFusionMultiblock; import com.hbm.tileentity.machine.TileEntityHatch; +import com.hbm.tileentity.machine.TileEntityMachineArcFurnace; import com.hbm.tileentity.machine.TileEntityMachineAssembler; import com.hbm.tileentity.machine.TileEntityMachineBattery; import com.hbm.tileentity.machine.TileEntityMachineBoiler; @@ -776,6 +780,10 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityDecon.class, "tileentity_decon"); GameRegistry.registerTileEntity(TileEntityMachineSatDock.class, "tileentity_miner_dock"); GameRegistry.registerTileEntity(TileEntityMachineEPress.class, "tileentity_electric_press"); + GameRegistry.registerTileEntity(TileEntityCoreEmitter.class, "tileentity_v0_emitter"); + GameRegistry.registerTileEntity(TileEntityCoreReceiver.class, "tileentity_v0_receiver"); + GameRegistry.registerTileEntity(TileEntityCoreInjector.class, "tileentity_v0_injector"); + GameRegistry.registerTileEntity(TileEntityMachineArcFurnace.class, "tileentity_arc_furnace"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 967c342fc..52efcef58 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -72,6 +72,11 @@ public class ResourceManager { public static final IModelCustom ams_limiter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_limiter.obj")); public static final IModelCustom ams_limiter_destroyed = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ams_limiter_destroyed.obj")); + //Dark Matter Core + public static final IModelCustom dfc_emitter = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/core_emitter.obj")); + public static final IModelCustom dfc_receiver = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/core_receiver.obj")); + public static final IModelCustom dfc_injector = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/core_injector.obj")); + //Sphere public static final IModelCustom sphere_ruv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_ruv.obj")); public static final IModelCustom sphere_iuv = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/sphere_iuv.obj")); @@ -203,6 +208,11 @@ public class ResourceManager { public static final ResourceLocation ams_limiter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_limiter.png"); public static final ResourceLocation ams_destroyed_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ams_destroyed.png"); + //Dark Matter Core + public static final ResourceLocation dfc_emitter_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_emitter.png"); + public static final ResourceLocation dfc_receiver_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_receiver.png"); + public static final ResourceLocation dfc_injector_tex = new ResourceLocation(RefStrings.MODID, "textures/models/core_injector.png"); + //Radgen public static final ResourceLocation radgen_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/rad_gen_body.png"); diff --git a/com/hbm/render/item/ItemRenderRpg.java b/com/hbm/render/item/ItemRenderRpg.java index be57d6e2f..930a025ab 100644 --- a/com/hbm/render/item/ItemRenderRpg.java +++ b/com/hbm/render/item/ItemRenderRpg.java @@ -2,9 +2,11 @@ package com.hbm.render.item; import org.lwjgl.opengl.GL11; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.render.model.ModelAt4; import com.hbm.render.model.ModelGustav; +import com.hbm.render.model.ModelPanzerschreck; import com.hbm.render.model.ModelStinger; import net.minecraft.client.Minecraft; @@ -14,11 +16,13 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class ItemRenderRpg implements IItemRenderer { - + protected ModelGustav swordModel; + protected ModelPanzerschreck panz; public ItemRenderRpg() { swordModel = new ModelGustav(); + panz = new ModelPanzerschreck(); } @Override @@ -42,28 +46,64 @@ public class ItemRenderRpg implements IItemRenderer { switch(type) { case EQUIPPED_FIRST_PERSON: GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png")); + if(item.getItem() == ModItems.gun_rpg) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png")); + if(item.getItem() == ModItems.gun_karl) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustavYellow.png")); + if(item.getItem() == ModItems.gun_panzerschreck) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPanzerschreck.png")); + GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glScalef(0.5F, 0.5F, 0.5F); GL11.glTranslatef(0.4F, -1.0F, -0.7F); + + if(item.getItem() == ModItems.gun_panzerschreck) { + GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glTranslatef(-0.2F, -0.3F, -0.5F); + } else { + GL11.glTranslatef(0F, -0.1F, -0.4F); + } GL11.glRotatef(-20.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(5.0F, 0.0F, 1.0F, 0.0F); GL11.glTranslatef(-0.2F, 0.0F, -0.2F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + + if(item.getItem() == ModItems.gun_rpg) + swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_karl) + swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_panzerschreck) + panz.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); break; case EQUIPPED: case ENTITY: GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png")); + if(item.getItem() == ModItems.gun_rpg) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustav.png")); + if(item.getItem() == ModItems.gun_karl) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelGustavYellow.png")); + if(item.getItem() == ModItems.gun_panzerschreck) + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelPanzerschreck.png")); + GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); GL11.glTranslatef(0.0F, -0.2F, -0.5F); GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(0.9F, 0.0F, 0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + + if(item.getItem() == ModItems.gun_panzerschreck) { + GL11.glTranslatef(-0.5F, -0.1F, 0F); + GL11.glScalef(1.5F, 1.5F, 1.5F); + } + + if(item.getItem() == ModItems.gun_rpg) + swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_karl) + swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + if(item.getItem() == ModItems.gun_panzerschreck) + panz.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); default: break; } diff --git a/com/hbm/render/model/ModelPanzerschreck.java b/com/hbm/render/model/ModelPanzerschreck.java new file mode 100644 index 000000000..573b8cbe0 --- /dev/null +++ b/com/hbm/render/model/ModelPanzerschreck.java @@ -0,0 +1,187 @@ +// Date: 20.02.2019 22:40:59 +// Template version 1.1 +// Java generated by Techne +// Keep in mind that you still need to fill in some blanks +// - ZeuX + +package com.hbm.render.model; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelPanzerschreck extends ModelBase { + // fields + ModelRenderer Shape1; + ModelRenderer Shape2; + ModelRenderer Shape3; + ModelRenderer Shape4; + ModelRenderer Shape5; + ModelRenderer Shape6; + ModelRenderer Shape7; + ModelRenderer Shape8; + ModelRenderer Shape9; + ModelRenderer Shape10; + ModelRenderer Shape11; + ModelRenderer Shape12; + ModelRenderer Shape13; + ModelRenderer Shape14; + ModelRenderer Shape15; + ModelRenderer Shape16; + ModelRenderer Shape17; + ModelRenderer Shape18; + + public ModelPanzerschreck() { + textureWidth = 128; + textureHeight = 32; + + Shape1 = new ModelRenderer(this, 0, 0); + Shape1.addBox(0F, 0F, 0F, 40, 2, 3); + Shape1.setRotationPoint(-20F, 0F, -1.5F); + Shape1.setTextureSize(128, 32); + Shape1.mirror = true; + setRotation(Shape1, 0F, 0F, 0F); + Shape2 = new ModelRenderer(this, 0, 5); + Shape2.addBox(0F, 0F, 0F, 40, 3, 2); + Shape2.setRotationPoint(-20F, -0.5F, -1F); + Shape2.setTextureSize(128, 32); + Shape2.mirror = true; + setRotation(Shape2, 0F, 0F, 0F); + Shape3 = new ModelRenderer(this, 0, 10); + Shape3.addBox(0F, 0F, 0F, 2, 3, 1); + Shape3.setRotationPoint(-7.5F, 2.5F, -0.5F); + Shape3.setTextureSize(128, 32); + Shape3.mirror = true; + setRotation(Shape3, 0F, 0F, 0F); + Shape4 = new ModelRenderer(this, 6, 10); + Shape4.addBox(0F, 0F, 0F, 6, 1, 1); + Shape4.setRotationPoint(-7.5F, 5.5F, -0.5F); + Shape4.setTextureSize(128, 32); + Shape4.mirror = true; + setRotation(Shape4, 0F, 0F, 0F); + Shape5 = new ModelRenderer(this, 0, 14); + Shape5.addBox(0F, 0F, 0F, 2, 3, 1); + Shape5.setRotationPoint(-1.5F, 2.5F, -0.5F); + Shape5.setTextureSize(128, 32); + Shape5.mirror = true; + setRotation(Shape5, 0F, 0F, 0F); + Shape6 = new ModelRenderer(this, 6, 12); + Shape6.addBox(0F, 0F, 0F, 1, 3, 1); + Shape6.setRotationPoint(0.5F, 2.5F, -0.5F); + Shape6.setTextureSize(128, 32); + Shape6.mirror = true; + setRotation(Shape6, 0F, 0F, 0F); + Shape7 = new ModelRenderer(this, 10, 12); + Shape7.addBox(-1F, 0F, 0F, 1, 2, 1); + Shape7.setRotationPoint(-2F, 2.5F, -0.5F); + Shape7.setTextureSize(128, 32); + Shape7.mirror = true; + setRotation(Shape7, 0F, 0F, 0.3490659F); + Shape8 = new ModelRenderer(this, 0, 18); + Shape8.addBox(0F, 0F, 0F, 1, 4, 4); + Shape8.setRotationPoint(22F, -1F, -2F); + Shape8.setTextureSize(128, 32); + Shape8.mirror = true; + setRotation(Shape8, 0F, 0F, 0F); + Shape9 = new ModelRenderer(this, 20, 10); + Shape9.addBox(-3F, 0F, 0F, 3, 1, 1); + Shape9.setRotationPoint(22F, -1F, -0.5F); + Shape9.setTextureSize(128, 32); + Shape9.mirror = true; + setRotation(Shape9, 0F, 0F, -0.2617994F); + Shape10 = new ModelRenderer(this, 14, 12); + Shape10.addBox(-3F, 0F, 0F, 3, 1, 1); + Shape10.setRotationPoint(22F, 0.5F, -2F); + Shape10.setTextureSize(128, 32); + Shape10.mirror = true; + setRotation(Shape10, 0F, 0.2617994F, 0F); + Shape11 = new ModelRenderer(this, 14, 14); + Shape11.addBox(-3F, 0F, -1F, 3, 1, 1); + Shape11.setRotationPoint(22F, 0.5F, 2F); + Shape11.setTextureSize(128, 32); + Shape11.mirror = true; + setRotation(Shape11, 0F, -0.2617994F, 0F); + Shape12 = new ModelRenderer(this, 28, 10); + Shape12.addBox(-3F, -1F, 0F, 3, 1, 1); + Shape12.setRotationPoint(22F, 3F, -0.5F); + Shape12.setTextureSize(128, 32); + Shape12.mirror = true; + setRotation(Shape12, 0F, 0F, 0.2617994F); + Shape13 = new ModelRenderer(this, 22, 12); + Shape13.addBox(0F, 0F, 0F, 1, 1, 3); + Shape13.setRotationPoint(-20F, -1.5F, -1.5F); + Shape13.setTextureSize(128, 32); + Shape13.mirror = true; + setRotation(Shape13, 0F, 0F, 0F); + Shape14 = new ModelRenderer(this, 30, 12); + Shape14.addBox(0F, 0F, 0F, 1, 1, 3); + Shape14.setRotationPoint(-20F, -2.5F, -1.5F); + Shape14.setTextureSize(128, 32); + Shape14.mirror = true; + setRotation(Shape14, 0F, 0F, 0F); + Shape15 = new ModelRenderer(this, 36, 10); + Shape15.addBox(0F, 0F, 0F, 3, 1, 1); + Shape15.setRotationPoint(15F, -1F, -2F); + Shape15.setTextureSize(128, 32); + Shape15.mirror = true; + setRotation(Shape15, 0F, 0F, 0F); + Shape16 = new ModelRenderer(this, 108, 10); + Shape16.addBox(0F, 0F, 0F, 0, 12, 10); + Shape16.setRotationPoint(-10F, -5F, -8.5F); + Shape16.setTextureSize(128, 32); + Shape16.mirror = true; + setRotation(Shape16, 0F, 0F, 0F); + Shape17 = new ModelRenderer(this, 38, 12); + Shape17.addBox(0F, 0F, 0F, 1, 3, 1); + Shape17.setRotationPoint(3.5F, 2.5F, -0.5F); + Shape17.setTextureSize(128, 32); + Shape17.mirror = true; + setRotation(Shape17, 0F, 0F, -0.4363323F); + Shape18 = new ModelRenderer(this, 10, 15); + Shape18.addBox(0F, 0F, 0F, 1, 3, 1); + Shape18.setRotationPoint(5F, 2.5F, -0.5F); + Shape18.setTextureSize(128, 32); + Shape18.mirror = true; + setRotation(Shape18, 0F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5, entity); + GL11.glDisable(GL11.GL_CULL_FACE); + Shape1.render(f5); + Shape2.render(f5); + Shape3.render(f5); + Shape4.render(f5); + Shape5.render(f5); + Shape6.render(f5); + Shape7.render(f5); + Shape8.render(f5); + Shape9.render(f5); + Shape10.render(f5); + Shape11.render(f5); + Shape12.render(f5); + Shape13.render(f5); + Shape14.render(f5); + Shape15.render(f5); + GL11.glEnable(GL11.GL_CULL_FACE); + Shape16.render(f5); + GL11.glDisable(GL11.GL_CULL_FACE); + Shape17.render(f5); + Shape18.render(f5); + GL11.glEnable(GL11.GL_CULL_FACE); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } + +} diff --git a/com/hbm/render/tileentity/RenderCoreComponent.java b/com/hbm/render/tileentity/RenderCoreComponent.java new file mode 100644 index 000000000..0997d10e2 --- /dev/null +++ b/com/hbm/render/tileentity/RenderCoreComponent.java @@ -0,0 +1,70 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityCoreEmitter; +import com.hbm.tileentity.machine.TileEntityCoreInjector; +import com.hbm.tileentity.machine.TileEntityCoreReceiver; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderCoreComponent extends TileEntitySpecialRenderer { + + public RenderCoreComponent() { } + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glRotatef(90, 0F, 1F, 0F); + + switch(tileEntity.getBlockMetadata()) { + case 0: + GL11.glTranslated(0.0D, 0.5D, -0.5D); + GL11.glRotatef(90, 1F, 0F, 0F); break; + case 1: + GL11.glTranslated(0.0D, 0.5D, 0.5D); + GL11.glRotatef(90, -1F, 0F, 0F); break; + case 2: + GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: + GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: + GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: + GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glTranslated(0.0D, 0D, 0.0D); + + if(tileEntity instanceof TileEntityCoreEmitter) { + bindTexture(ResourceManager.dfc_emitter_tex); + ResourceManager.dfc_emitter.renderAll(); + } + + if(tileEntity instanceof TileEntityCoreReceiver) { + bindTexture(ResourceManager.dfc_receiver_tex); + ResourceManager.dfc_receiver.renderAll(); + } + + if(tileEntity instanceof TileEntityCoreInjector) { + bindTexture(ResourceManager.dfc_injector_tex); + ResourceManager.dfc_injector.renderAll(); + } + + GL11.glEnable(GL11.GL_LIGHTING); + + GL11.glPopMatrix(); + } + +} diff --git a/com/hbm/tileentity/machine/TileEntityCoreEmitter.java b/com/hbm/tileentity/machine/TileEntityCoreEmitter.java new file mode 100644 index 000000000..019a0e1e6 --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityCoreEmitter.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity.machine; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityCoreEmitter extends TileEntity { + +} diff --git a/com/hbm/tileentity/machine/TileEntityCoreInjector.java b/com/hbm/tileentity/machine/TileEntityCoreInjector.java new file mode 100644 index 000000000..af86ea190 --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityCoreInjector.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity.machine; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityCoreInjector extends TileEntity { + +} diff --git a/com/hbm/tileentity/machine/TileEntityCoreReceiver.java b/com/hbm/tileentity/machine/TileEntityCoreReceiver.java new file mode 100644 index 000000000..9872c8378 --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityCoreReceiver.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity.machine; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityCoreReceiver extends TileEntity { + +} diff --git a/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java b/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java new file mode 100644 index 000000000..22dcc8e44 --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityMachineArcFurnace.java @@ -0,0 +1,336 @@ +package com.hbm.tileentity.machine; + +import com.hbm.blocks.machine.MachineArcFurnace; +import com.hbm.interfaces.IConsumer; +import com.hbm.items.special.ItemBattery; +import com.hbm.lib.Library; +import com.hbm.packet.AuxElectricityPacket; +import com.hbm.packet.AuxGaugePacket; +import com.hbm.packet.PacketDispatcher; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.item.crafting.FurnaceRecipes; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; + +public class TileEntityMachineArcFurnace extends TileEntity implements ISidedInventory, IConsumer { + + private ItemStack slots[]; + + public int dualCookTime; + public long power; + public static final long maxPower = 100000; + public static final int processingSpeed = 100; + + private static final int[] slots_top = new int[] {1}; + private static final int[] slots_bottom = new int[] {2, 0}; + private static final int[] slots_side = new int[] {0}; + + private String customName; + + public TileEntityMachineArcFurnace() { + slots = new ItemStack[3]; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if(slots[i] != null) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) + { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.electricFurnace"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) + { + return false; + }else{ + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64; + } + } + + //You scrubs aren't needed for anything (right now) + @Override + public void openInventory() {} + @Override + public void closeInventory() {} + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + if(i == 0) + if(itemStack.getItem() instanceof ItemBattery) + return true; + + if(i == 1) + return true; + + return false; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if(slots[i] != null) + { + if(slots[i].stackSize <= j) + { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) + { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + this.power = nbt.getLong("powerTime"); + this.dualCookTime = nbt.getInteger("cookTime"); + slots = new ItemStack[getSizeInventory()]; + + for(int i = 0; i < list.tagCount(); i++) + { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if(b0 >= 0 && b0 < slots.length) + { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + nbt.setLong("powerTime", power); + nbt.setInteger("cookTime", dualCookTime); + NBTTagList list = new NBTTagList(); + + for(int i = 0; i < slots.length; i++) + { + if(slots[i] != null) + { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte)i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) + { + return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + if(i == 0) + if (itemStack.getItem() instanceof ItemBattery && ItemBattery.getCharge(itemStack) == 0) + return true; + if(i == 2) + return true; + + return false; + } + + public int getDiFurnaceProgressScaled(int i) { + return (dualCookTime * i) / processingSpeed; + } + + public long getPowerRemainingScaled(long i) { + return (power * i) / maxPower; + } + + public boolean hasPower() { + return power > 0; + } + + public boolean isProcessing() { + return this.dualCookTime > 0; + } + + public boolean canProcess() { + if(slots[1] == null) + { + return false; + } + ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); + + if(itemStack == null) + { + return false; + } + + if(slots[2] == null) + { + return true; + } + + if(!slots[2].isItemEqual(itemStack)) { + return false; + } + + if(slots[2].stackSize < getInventoryStackLimit() && slots[2].stackSize < slots[2].getMaxStackSize()) { + return true; + }else{ + return slots[2].stackSize < itemStack.getMaxStackSize(); + } + } + + private void processItem() { + if(canProcess()) { + ItemStack itemStack = FurnaceRecipes.smelting().getSmeltingResult(this.slots[1]); + + if(slots[2] == null) + { + slots[2] = itemStack.copy(); + }else if(slots[2].isItemEqual(itemStack)) { + slots[2].stackSize += itemStack.stackSize; + } + + for(int i = 1; i < 2; i++) + { + if(slots[i].stackSize <= 0) + { + slots[i] = new ItemStack(slots[i].getItem().setFull3D()); + }else{ + slots[i].stackSize--; + } + if(slots[i].stackSize <= 0) + { + slots[i] = null; + } + } + } + } + + @Override + public void updateEntity() { + boolean flag = this.hasPower(); + boolean flag1 = false; + + if(!worldObj.isRemote) + { + if(hasPower() && canProcess()) + { + dualCookTime++; + + power -= 50; + + if(this.dualCookTime == TileEntityMachineElectricFurnace.processingSpeed) + { + this.dualCookTime = 0; + this.processItem(); + flag1 = true; + } + }else{ + dualCookTime = 0; + } + + boolean trigger = true; + + if(hasPower() && canProcess() && this.dualCookTime == 0) + { + trigger = false; + } + + if(trigger) + { + flag1 = true; + MachineArcFurnace.updateBlockState(this.dualCookTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord); + } + + power = Library.chargeTEFromItems(slots, 0, power, maxPower); + + PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); + PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, dualCookTime, 0)); + } + + + if(flag1) + { + this.markDirty(); + } + } + + @Override + public void setPower(long i) { + power = i; + + } + + @Override + public long getPower() { + return power; + + } + + @Override + public long getMaxPower() { + return maxPower; + } +}