From d959ab99a1a9807e4121f4e535a8b26bb73094d6 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Mon, 17 Dec 2018 01:02:22 +0100 Subject: [PATCH] NN45 functionality, new bullet crafting, nuclear machines texture rework --- assets/hbm/lang/de_DE.lang | 5 + assets/hbm/lang/en_US.lang | 28 + assets/hbm/models/TheGadget3_smooth.obj | 1293 +++++++++++++++++ assets/hbm/models/epress_body.obj | 587 ++++++++ assets/hbm/models/epress_head.obj | 125 ++ assets/hbm/sounds/jeff.ogg | Bin 0 -> 11082 bytes .../blocks/machine_coal_front_off.png | Bin 417 -> 377 bytes .../blocks/machine_coal_front_off_alt.png | Bin 0 -> 481 bytes .../textures/blocks/machine_coal_front_on.png | Bin 418 -> 467 bytes .../blocks/machine_coal_front_on_alt.png | Bin 0 -> 526 bytes .../hbm/textures/blocks/machine_coal_side.png | Bin 495 -> 391 bytes .../textures/blocks/machine_coal_side_alt.png | Bin 0 -> 578 bytes .../hbm/textures/blocks/machine_rtg_top.png | Bin 0 -> 562 bytes assets/hbm/textures/blocks/rf_cable.png | Bin 0 -> 252 bytes assets/hbm/textures/blocks/rf_cable_icon.png | Bin 0 -> 199 bytes .../hbm/textures/items/assembly_calamity.png | Bin 0 -> 275 bytes assets/hbm/textures/items/assembly_gold.png | Bin 0 -> 304 bytes assets/hbm/textures/items/assembly_iron.png | Bin 0 -> 302 bytes assets/hbm/textures/items/assembly_lead.png | Bin 0 -> 260 bytes .../hbm/textures/items/assembly_nightmare.png | Bin 0 -> 285 bytes assets/hbm/textures/items/assembly_nopip.png | Bin 0 -> 282 bytes assets/hbm/textures/items/assembly_pip.png | Bin 0 -> 301 bytes .../textures/items/assembly_schrabidium.png | Bin 0 -> 309 bytes assets/hbm/textures/items/assembly_smg.png | Bin 0 -> 269 bytes assets/hbm/textures/items/assembly_steel.png | Bin 0 -> 318 bytes assets/hbm/textures/items/assembly_uzi.png | Bin 0 -> 283 bytes assets/hbm/textures/items/casing_357.png | Bin 0 -> 204 bytes assets/hbm/textures/items/casing_44.png | Bin 0 -> 193 bytes assets/hbm/textures/items/casing_50.png | Bin 0 -> 220 bytes assets/hbm/textures/items/casing_9.png | Bin 0 -> 184 bytes assets/hbm/textures/items/casing_buckshot.png | Bin 0 -> 202 bytes .../hbm/textures/items/gun_revolver_ammo.png | Bin 273 -> 247 bytes .../textures/items/gun_revolver_ammo_alt.png | Bin 0 -> 273 bytes .../items/gun_revolver_cursed_ammo.png | Bin 238 -> 189 bytes .../items/gun_revolver_cursed_ammo_alt.png | Bin 0 -> 238 bytes .../textures/items/gun_revolver_gold_ammo.png | Bin 243 -> 236 bytes .../items/gun_revolver_gold_ammo_alt.png | Bin 0 -> 243 bytes .../textures/items/gun_revolver_iron_ammo.png | Bin 241 -> 246 bytes .../items/gun_revolver_iron_ammo_alt.png | Bin 0 -> 241 bytes .../textures/items/gun_revolver_lead_ammo.png | Bin 283 -> 269 bytes .../items/gun_revolver_lead_ammo_alt.png | Bin 0 -> 283 bytes .../items/gun_revolver_nightmare_ammo.png | Bin 201 -> 244 bytes .../items/gun_revolver_nightmare_ammo_alt.png | Bin 0 -> 201 bytes .../items/gun_revolver_nopip_ammo.png | Bin 212 -> 221 bytes .../items/gun_revolver_nopip_ammo_alt.png | Bin 0 -> 212 bytes .../textures/items/gun_revolver_pip_ammo.png | Bin 231 -> 242 bytes .../items/gun_revolver_pip_ammo_alt.png | Bin 0 -> 231 bytes .../items/gun_revolver_schrabidium_ammo.png | Bin 248 -> 239 bytes .../gun_revolver_schrabidium_ammo_alt.png | Bin 0 -> 248 bytes assets/hbm/textures/items/primer_357.png | Bin 0 -> 186 bytes assets/hbm/textures/items/primer_44.png | Bin 0 -> 187 bytes assets/hbm/textures/items/primer_50.png | Bin 0 -> 217 bytes assets/hbm/textures/items/primer_9.png | Bin 0 -> 186 bytes assets/hbm/textures/items/primer_buckshot.png | Bin 0 -> 183 bytes assets/hbm/textures/items/stamp_357.png | Bin 0 -> 268 bytes assets/hbm/textures/items/stamp_44.png | Bin 0 -> 261 bytes assets/hbm/textures/items/stamp_50.png | Bin 0 -> 254 bytes assets/hbm/textures/items/stamp_9.png | Bin 0 -> 264 bytes assets/hbm/textures/models/centrifuge_gas.png | Bin 31798 -> 25613 bytes assets/hbm/textures/models/centrifuge_new.png | Bin 31711 -> 21514 bytes assets/hbm/textures/models/press_body.png | Bin 3068 -> 6126 bytes assets/hbm/textures/models/press_body_alt.png | Bin 0 -> 3068 bytes com/hbm/blocks/ModBlocks.java | 3 + com/hbm/blocks/bomb/NukeN45.java | 12 +- com/hbm/blocks/machine/BlockRFCable.java | 81 ++ com/hbm/blocks/machine/MachineRTG.java | 4 +- com/hbm/handler/GUIHandler.java | 96 +- com/hbm/inventory/MachineRecipes.java | 63 + .../inventory/container/ContainerNukeN45.java | 84 ++ com/hbm/inventory/gui/GUINukeN45.java | 79 + com/hbm/items/ModItems.java | 80 + com/hbm/main/ClientProxy.java | 1 + com/hbm/main/MainRegistry.java | 2 + com/hbm/main/ResourceManager.java | 2 + com/hbm/render/tileentity/RenderRFCable.java | 159 ++ .../tileentity/bomb/TileEntityNukeN45.java | 61 +- .../conductor/TileEntityRFDuct.java | 144 ++ .../machine/TileEntityConverterRfHe.java | 1 + 78 files changed, 2819 insertions(+), 91 deletions(-) create mode 100644 assets/hbm/models/TheGadget3_smooth.obj create mode 100644 assets/hbm/models/epress_body.obj create mode 100644 assets/hbm/models/epress_head.obj create mode 100644 assets/hbm/sounds/jeff.ogg create mode 100644 assets/hbm/textures/blocks/machine_coal_front_off_alt.png create mode 100644 assets/hbm/textures/blocks/machine_coal_front_on_alt.png create mode 100644 assets/hbm/textures/blocks/machine_coal_side_alt.png create mode 100644 assets/hbm/textures/blocks/machine_rtg_top.png create mode 100644 assets/hbm/textures/blocks/rf_cable.png create mode 100644 assets/hbm/textures/blocks/rf_cable_icon.png create mode 100644 assets/hbm/textures/items/assembly_calamity.png create mode 100644 assets/hbm/textures/items/assembly_gold.png create mode 100644 assets/hbm/textures/items/assembly_iron.png create mode 100644 assets/hbm/textures/items/assembly_lead.png create mode 100644 assets/hbm/textures/items/assembly_nightmare.png create mode 100644 assets/hbm/textures/items/assembly_nopip.png create mode 100644 assets/hbm/textures/items/assembly_pip.png create mode 100644 assets/hbm/textures/items/assembly_schrabidium.png create mode 100644 assets/hbm/textures/items/assembly_smg.png create mode 100644 assets/hbm/textures/items/assembly_steel.png create mode 100644 assets/hbm/textures/items/assembly_uzi.png create mode 100644 assets/hbm/textures/items/casing_357.png create mode 100644 assets/hbm/textures/items/casing_44.png create mode 100644 assets/hbm/textures/items/casing_50.png create mode 100644 assets/hbm/textures/items/casing_9.png create mode 100644 assets/hbm/textures/items/casing_buckshot.png create mode 100644 assets/hbm/textures/items/gun_revolver_ammo_alt.png create mode 100644 assets/hbm/textures/items/gun_revolver_cursed_ammo_alt.png create mode 100644 assets/hbm/textures/items/gun_revolver_gold_ammo_alt.png create mode 100644 assets/hbm/textures/items/gun_revolver_iron_ammo_alt.png create mode 100644 assets/hbm/textures/items/gun_revolver_lead_ammo_alt.png create mode 100644 assets/hbm/textures/items/gun_revolver_nightmare_ammo_alt.png create mode 100644 assets/hbm/textures/items/gun_revolver_nopip_ammo_alt.png create mode 100644 assets/hbm/textures/items/gun_revolver_pip_ammo_alt.png create mode 100644 assets/hbm/textures/items/gun_revolver_schrabidium_ammo_alt.png create mode 100644 assets/hbm/textures/items/primer_357.png create mode 100644 assets/hbm/textures/items/primer_44.png create mode 100644 assets/hbm/textures/items/primer_50.png create mode 100644 assets/hbm/textures/items/primer_9.png create mode 100644 assets/hbm/textures/items/primer_buckshot.png create mode 100644 assets/hbm/textures/items/stamp_357.png create mode 100644 assets/hbm/textures/items/stamp_44.png create mode 100644 assets/hbm/textures/items/stamp_50.png create mode 100644 assets/hbm/textures/items/stamp_9.png create mode 100644 assets/hbm/textures/models/press_body_alt.png create mode 100644 com/hbm/blocks/machine/BlockRFCable.java create mode 100644 com/hbm/inventory/container/ContainerNukeN45.java create mode 100644 com/hbm/inventory/gui/GUINukeN45.java create mode 100644 com/hbm/render/tileentity/RenderRFCable.java create mode 100644 com/hbm/tileentity/conductor/TileEntityRFDuct.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 665fa2ea4..735cd63a6 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -703,6 +703,7 @@ 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.brick_concrete.name=Betonziegel tile.brick_obsidian.name=Obsidianziegel tile.brick_light.name=Helle Ziegel @@ -1746,6 +1747,10 @@ item.stamp_schrabidium_flat.name=Flacher Stempel (Schrabidium) item.stamp_schrabidium_plate.name=Plattenstempel (Schrabidium) item.stamp_schrabidium_wire.name=Kabelstempel (Schrabidium) item.stamp_schrabidium_circuit.name=Schaltkreisstempel (Schrabidium) +item.stamp_357.name=.357 Magnum-Stempel +item.stamp_44.name=.44 Magnum-Stempel +item.stamp_9.name=Kleinkaliberstempel +item.stamp_50.name=Großkaliberstempel item.part_lithium.name=Lithiumstaubkiste item.part_beryllium.name=Berylliumstaubkiste diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 85ab6084a..320bebdd4 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -233,6 +233,7 @@ container.nukePrototype=The Prototype container.nukeCustom=Custom Nuke container.nukeSolinium=The Blue Rinse container.nukeN2=N² Mine +container.nukeN45=N45 Naval Mine container.bombMulti=Multi Purpose Bomb @@ -246,6 +247,7 @@ tile.nuke_prototype.name=The Prototype tile.nuke_custom.name=Custom Nuke tile.nuke_solinium.name=The Blue Rinse tile.nuke_n2.name=N² Mine +tile.nuke_n45.name=N45 Naval Mine tile.bomb_multi.name=Multi Purpose Bomb tile.rejuvinator.name=Rejuvination Device @@ -625,6 +627,27 @@ item.mechanism_launcher_1.name=Launcher Mechanism item.mechanism_launcher_2.name=Advanced Launcher Mechanism item.mechanism_special.name=High-Tech Weapon Mechanism +item.primer_357.name=.357 Magnum Primer (x16) +item.primer_44.name=.44 Magnum Primer (x16) +item.primer_9.name=Small Caliber Primer (x24) +item.primer_50.name=Large Caliber Primer (x8) +item.primer_buckshot.name=Buckshot Primer (x8) +item.casing_357.name=.357 Magnum Casing (x16) +item.casing_44.name=.44 Magnum Casing (x16) +item.casing_9.name=Small Caliber Casing (x24) +item.casing_50.name=Large Caliber Casing (x8) +item.casing_buckshot.name=Buckshot Casing (x8) +item.assembly_iron.name=Iron Bullet Assembly +item.assembly_steel.name=Lead Bullet Assembly +item.assembly_lead.name=Glass Bullet Assembly +item.assembly_gold.name=Gold Bullet Assembly +item.assembly_schrabidium.name=Schrabidium Bullet Assembly +item.assembly_pip.name=Tainted Bullet Assembly +item.assembly_nopip.name=.44 Magnum Assembly +item.assembly_smg.name=9mm Assembly +item.assembly_uzi.name=.22LR Assembly +item.assembly_calamity.name=.50 BMG Assembly + item.piston_selenium.name=Radial Engine Piston tile.block_aluminium.name=Block of Aluminium @@ -703,6 +726,7 @@ 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.brick_concrete.name=Concrete Bricks tile.brick_obsidian.name=Obsidian Bricks tile.brick_light.name=Light Bricks @@ -1746,6 +1770,10 @@ item.stamp_schrabidium_flat.name=Flat Stamp (Schrabidium) item.stamp_schrabidium_plate.name=Plate Stamp (Schrabidium) item.stamp_schrabidium_wire.name=Wire Stamp (Schrabidium) item.stamp_schrabidium_circuit.name=Circuit Stamp (Schrabidium) +item.stamp_357.name=.357 Magnum Stamp +item.stamp_44.name=.44 Magnum Stamp +item.stamp_9.name=Small Caliber Stamp +item.stamp_50.name=Large Caliber Stamp item.part_lithium.name=Box of Lithium Dust item.part_beryllium.name=Box of Beryllium Dust diff --git a/assets/hbm/models/TheGadget3_smooth.obj b/assets/hbm/models/TheGadget3_smooth.obj new file mode 100644 index 000000000..745a9d304 --- /dev/null +++ b/assets/hbm/models/TheGadget3_smooth.obj @@ -0,0 +1,1293 @@ +# Blender v2.76 (sub 0) OBJ File: 'TheGadget3_smooth.blend' +# www.blender.org +o Cylinder.003 +v 0.550000 1.500000 -0.850000 +v 0.650000 1.500000 -0.850000 +v 0.550000 1.174719 -0.785298 +v 0.650000 1.174719 -0.785298 +v 0.550001 0.898959 -0.601041 +v 0.650001 0.898959 -0.601041 +v 0.550001 0.714702 -0.325281 +v 0.650001 0.714702 -0.325281 +v 0.550001 0.650000 0.000000 +v 0.650001 0.650000 0.000000 +v 0.550001 0.714702 0.325281 +v 0.650001 0.714702 0.325281 +v 0.550001 0.898959 0.601041 +v 0.650001 0.898959 0.601041 +v 0.550000 1.174719 0.785298 +v 0.650000 1.174719 0.785298 +v 0.550000 1.500000 0.850000 +v 0.650000 1.500000 0.850000 +v 0.550000 1.825281 0.785298 +v 0.650000 1.825281 0.785298 +v 0.549999 2.101041 0.601041 +v 0.649999 2.101041 0.601041 +v 0.549999 2.285297 0.325281 +v 0.649999 2.285298 0.325281 +v 0.549999 2.350000 -0.000000 +v 0.649999 2.350000 -0.000000 +v 0.549999 2.285297 -0.325281 +v 0.649999 2.285298 -0.325281 +v 0.549999 2.101040 -0.601041 +v 0.649999 2.101041 -0.601041 +v 0.550000 1.825280 -0.785298 +v 0.650000 1.825281 -0.785298 +v -0.650000 1.500000 -0.850000 +v -0.550000 1.500000 -0.850000 +v -0.650000 1.174719 -0.785298 +v -0.550000 1.174719 -0.785298 +v -0.649999 0.898959 -0.601041 +v -0.549999 0.898959 -0.601041 +v -0.649999 0.714702 -0.325281 +v -0.549999 0.714702 -0.325281 +v -0.649999 0.650000 0.000000 +v -0.549999 0.650000 0.000000 +v -0.649999 0.714702 0.325281 +v -0.549999 0.714702 0.325281 +v -0.649999 0.898959 0.601041 +v -0.549999 0.898959 0.601041 +v -0.650000 1.174719 0.785298 +v -0.550000 1.174719 0.785298 +v -0.650000 1.500000 0.850000 +v -0.550000 1.500000 0.850000 +v -0.650000 1.825281 0.785298 +v -0.550000 1.825281 0.785298 +v -0.650001 2.101041 0.601041 +v -0.550001 2.101041 0.601041 +v -0.650001 2.285297 0.325281 +v -0.550001 2.285298 0.325281 +v -0.650001 2.350000 -0.000000 +v -0.550001 2.350000 -0.000000 +v -0.650001 2.285297 -0.325281 +v -0.550001 2.285298 -0.325281 +v -0.650001 2.101040 -0.601041 +v -0.550001 2.101041 -0.601041 +v -0.650000 1.825280 -0.785298 +v -0.550000 1.825281 -0.785298 +v -1.500000 1.499999 -0.700000 +v 1.000000 1.500001 -0.700000 +v -1.500000 1.232120 -0.646716 +v 1.000000 1.232123 -0.646716 +v -1.500000 1.005024 -0.494975 +v 1.000000 1.005026 -0.494975 +v -1.499999 0.853283 -0.267878 +v 1.000000 0.853285 -0.267878 +v -1.499999 0.799999 0.000000 +v 1.000000 0.800001 0.000000 +v -1.499999 0.853283 0.267878 +v 1.000000 0.853285 0.267878 +v -1.500000 1.005024 0.494975 +v 1.000000 1.005026 0.494975 +v -1.500000 1.232120 0.646716 +v 1.000000 1.232123 0.646716 +v -1.500000 1.499999 0.700000 +v 1.000000 1.500001 0.700000 +v -1.500000 1.767877 0.646716 +v 1.000000 1.767879 0.646716 +v -1.500000 1.994973 0.494975 +v 0.999999 1.994976 0.494975 +v -1.500001 2.146714 0.267879 +v 0.999999 2.146717 0.267879 +v -1.500001 2.199999 -0.000000 +v 0.999999 2.200001 -0.000000 +v -1.500001 2.146714 -0.267879 +v 0.999999 2.146717 -0.267879 +v -1.500000 1.994973 -0.494975 +v 0.999999 1.994976 -0.494975 +v -1.500000 1.767877 -0.646716 +v 1.000000 1.767879 -0.646716 +v 0.450000 1.500000 -1.000000 +v 0.550000 1.500000 -1.000000 +v 0.450000 1.117316 -0.923880 +v 0.550000 1.117316 -0.923880 +v 0.450001 0.792893 -0.707107 +v 0.550001 0.792893 -0.707107 +v 0.450001 0.576120 -0.382683 +v 0.550001 0.576120 -0.382683 +v 0.450001 0.500000 0.000000 +v 0.550001 0.500000 0.000000 +v 0.450001 0.576120 0.382684 +v 0.550001 0.576120 0.382684 +v 0.450001 0.792893 0.707107 +v 0.550001 0.792893 0.707107 +v 0.450000 1.117316 0.923880 +v 0.550000 1.117316 0.923880 +v 0.450000 1.500000 1.000000 +v 0.550000 1.500000 1.000000 +v 0.450000 1.882683 0.923880 +v 0.550000 1.882683 0.923880 +v 0.449999 2.207107 0.707107 +v 0.549999 2.207107 0.707107 +v 0.449999 2.423879 0.382684 +v 0.549999 2.423880 0.382684 +v 0.449999 2.500000 -0.000000 +v 0.549999 2.500000 -0.000000 +v 0.449999 2.423879 -0.382684 +v 0.549999 2.423879 -0.382684 +v 0.449999 2.207106 -0.707107 +v 0.549999 2.207107 -0.707107 +v 0.450000 1.882683 -0.923880 +v 0.550000 1.882683 -0.923880 +v -0.550000 1.500000 -1.000000 +v -0.450000 1.500000 -1.000000 +v -0.550000 1.117316 -0.923880 +v -0.450000 1.117317 -0.923880 +v -0.549999 0.792893 -0.707107 +v -0.449999 0.792893 -0.707107 +v -0.549999 0.576120 -0.382683 +v -0.449999 0.576120 -0.382683 +v -0.549999 0.500000 0.000000 +v -0.449999 0.500000 0.000000 +v -0.549999 0.576120 0.382684 +v -0.449999 0.576120 0.382684 +v -0.549999 0.792893 0.707107 +v -0.449999 0.792893 0.707107 +v -0.550000 1.117316 0.923880 +v -0.450000 1.117316 0.923880 +v -0.550000 1.500000 1.000000 +v -0.450000 1.500000 1.000000 +v -0.550000 1.882683 0.923880 +v -0.450000 1.882683 0.923880 +v -0.550001 2.207107 0.707107 +v -0.450001 2.207107 0.707107 +v -0.550001 2.423879 0.382684 +v -0.450001 2.423880 0.382684 +v -0.550001 2.500000 -0.000000 +v -0.450001 2.500000 -0.000000 +v -0.550001 2.423879 -0.382684 +v -0.450001 2.423879 -0.382684 +v -0.550001 2.207107 -0.707107 +v -0.450001 2.207107 -0.707107 +v -0.550000 1.882683 -0.923880 +v -0.450000 1.882683 -0.923880 +v -0.550000 -0.000000 -0.750000 +v -0.550000 -0.000000 -1.000000 +v -0.450000 -0.000000 -1.000000 +v -0.450000 -0.000000 -0.750000 +v -0.550000 -0.000000 1.000000 +v -0.550000 -0.000000 0.750000 +v -0.450000 -0.000000 0.750000 +v -0.450000 -0.000000 1.000000 +v 0.450000 0.000000 -0.750000 +v 0.450000 0.000000 -1.000000 +v 0.550000 0.000000 -1.000000 +v 0.550000 0.000000 -0.750000 +v 0.450000 -0.000000 1.000000 +v 0.450000 -0.000000 0.750000 +v 0.550000 -0.000000 0.750000 +v 0.550000 -0.000000 1.000000 +v -1.125000 1.499999 -0.700000 +v -1.125000 1.232121 -0.646716 +v -1.125000 1.005024 -0.494975 +v -1.124999 0.853284 -0.267878 +v -1.124999 0.799999 0.000000 +v -1.124999 0.853284 0.267878 +v -1.125000 1.005024 0.494975 +v -1.125000 1.232121 0.646716 +v -1.125000 1.499999 0.700000 +v -1.125000 1.767877 0.646716 +v -1.125000 1.994974 0.494975 +v -1.125001 2.146715 0.267879 +v -1.125001 2.199999 -0.000000 +v -1.125001 2.146715 -0.267879 +v -1.125000 1.994974 -0.494975 +v -1.125000 1.767877 -0.646716 +v 0.707106 2.207107 0.000000 +v 0.382683 2.423880 0.000000 +v -0.000001 2.500000 0.000000 +v -0.382684 2.423880 0.000000 +v -0.707107 2.207107 0.000000 +v 0.707106 2.000000 -0.500000 +v 0.382683 2.153281 -0.653281 +v -0.000001 2.207107 -0.707107 +v -0.382684 2.153281 -0.653281 +v -0.707107 2.000000 -0.500000 +v 0.707106 1.500000 -0.707107 +v 0.382683 1.500000 -0.923879 +v -0.000000 1.500000 -1.000000 +v -0.382684 1.500000 -0.923879 +v -0.707107 1.500000 -0.707107 +v 0.707106 1.000000 -0.500000 +v 0.382683 0.846719 -0.653281 +v -0.000000 0.792893 -0.707107 +v -0.382684 0.846719 -0.653281 +v -0.707107 1.000000 -0.500000 +v 0.707106 0.792894 -0.000000 +v 0.382683 0.576121 -0.000000 +v -0.000000 0.500001 -0.000000 +v -0.382684 0.576121 -0.000000 +v -0.707107 0.792894 -0.000000 +v 0.707106 1.000000 0.500000 +v 0.382683 0.846719 0.653281 +v -0.000000 0.792893 0.707107 +v -0.382684 0.846719 0.653281 +v -0.707107 1.000000 0.500000 +v 0.707106 1.500000 0.707107 +v 0.382683 1.500000 0.923879 +v -0.000000 1.500000 1.000000 +v -0.382684 1.500000 0.923879 +v -0.707107 1.500000 0.707107 +v 0.707106 2.000000 0.500000 +v 0.382683 2.153281 0.653281 +v -0.000001 2.207107 0.707107 +v -0.382684 2.153281 0.653281 +v -0.707107 2.000000 0.500000 +vt 0.589205 0.570129 +vt 0.537513 0.535589 +vt 0.559924 0.422922 +vt 0.897932 0.155115 +vt 0.943209 0.155115 +vt 0.943209 0.166719 +vt 0.943209 0.206379 +vt 0.897932 0.206379 +vt 0.897932 0.194775 +vt 0.105201 0.410793 +vt 0.241650 0.501966 +vt 0.014028 0.547243 +vt 0.574727 0.365411 +vt 0.525385 0.291565 +vt 0.616557 0.155115 +vt 0.601856 0.880859 +vt 0.601856 0.869255 +vt 0.647133 0.869255 +vt 0.916064 0.864137 +vt 0.916064 0.875741 +vt 0.870787 0.875741 +vt 0.105201 0.155115 +vt 0.241650 0.246288 +vt 0.014028 0.291565 +vt 0.360879 0.382738 +vt 0.269706 0.246288 +vt 0.406156 0.155115 +vt 0.350122 0.445333 +vt 0.462789 0.422922 +vt 0.485200 0.535589 +vt 0.787808 0.042971 +vt 0.657853 0.042971 +vt 0.693703 0.015316 +vt 0.787808 0.071027 +vt 0.785836 0.099970 +vt 0.693703 0.098682 +vt 0.975417 0.946312 +vt 0.845462 0.946312 +vt 0.881311 0.918657 +vt 0.364637 0.841199 +vt 0.364637 0.829595 +vt 0.494592 0.829595 +vt 0.624808 0.985972 +vt 0.494853 0.985972 +vt 0.530702 0.958317 +vt 0.399665 0.626770 +vt 0.399661 0.638374 +vt 0.269706 0.638329 +vt 0.842731 0.824477 +vt 0.840759 0.853420 +vt 0.748626 0.852132 +vt 0.520818 0.626812 +vt 0.520814 0.638416 +vt 0.428672 0.638384 +vt 0.523602 0.829595 +vt 0.615745 0.829595 +vt 0.615745 0.841199 +vt 0.678829 0.638416 +vt 0.548874 0.638416 +vt 0.584723 0.610761 +vt 0.945819 0.014028 +vt 0.943847 0.042971 +vt 0.851714 0.041683 +vt 0.945819 0.071027 +vt 0.943847 0.099970 +vt 0.851714 0.098682 +vt 0.523602 0.841199 +vt 0.494592 0.841199 +vt 0.523603 0.789935 +vt 0.615745 0.789935 +vt 0.615745 0.801539 +vt 0.364637 0.801539 +vt 0.364637 0.789935 +vt 0.494592 0.789935 +vt 0.494596 0.750233 +vt 0.494592 0.761837 +vt 0.364637 0.761792 +vt 0.615749 0.750275 +vt 0.615745 0.761879 +vt 0.523602 0.761847 +vt 0.428676 0.626780 +vt 0.523606 0.750243 +vt 0.523603 0.801539 +vt 0.494592 0.801539 +vt 0.589206 0.410793 +vt 0.620899 0.410793 +vt 0.650181 0.422922 +vt 0.672592 0.445333 +vt 0.684720 0.474614 +vt 0.684720 0.506308 +vt 0.672591 0.535590 +vt 0.650180 0.558000 +vt 0.620899 0.570129 +vt 0.559924 0.558000 +vt 0.525385 0.506308 +vt 0.525385 0.474614 +vt 0.537513 0.445333 +vt 0.897932 0.166719 +vt 0.943209 0.194775 +vt 0.150478 0.638416 +vt 0.105201 0.638416 +vt 0.063370 0.621089 +vt 0.031355 0.589073 +vt 0.014028 0.501966 +vt 0.031355 0.460136 +vt 0.063370 0.428120 +vt 0.150478 0.410793 +vt 0.192308 0.428120 +vt 0.224324 0.460136 +vt 0.241650 0.547243 +vt 0.224324 0.589074 +vt 0.192308 0.621089 +vt 0.661834 0.155115 +vt 0.703665 0.172442 +vt 0.735680 0.204457 +vt 0.753007 0.246288 +vt 0.753007 0.291565 +vt 0.735680 0.333395 +vt 0.703665 0.365411 +vt 0.661834 0.382738 +vt 0.616557 0.382738 +vt 0.542711 0.333395 +vt 0.525385 0.246288 +vt 0.542711 0.204457 +vt 0.574727 0.172442 +vt 0.647133 0.880859 +vt 0.870787 0.864137 +vt 0.150478 0.382738 +vt 0.105201 0.382738 +vt 0.063370 0.365411 +vt 0.031355 0.333395 +vt 0.014028 0.246288 +vt 0.031355 0.204458 +vt 0.063370 0.172442 +vt 0.150478 0.155115 +vt 0.192308 0.172442 +vt 0.224324 0.204457 +vt 0.241650 0.291565 +vt 0.224324 0.333395 +vt 0.192308 0.365411 +vt 0.447986 0.172442 +vt 0.480002 0.204457 +vt 0.497329 0.246288 +vt 0.497329 0.291565 +vt 0.480002 0.333395 +vt 0.447986 0.365411 +vt 0.406156 0.382738 +vt 0.319049 0.365411 +vt 0.287033 0.333395 +vt 0.269706 0.291565 +vt 0.287033 0.204458 +vt 0.319049 0.172442 +vt 0.360879 0.155115 +vt 0.462789 0.558000 +vt 0.433508 0.570129 +vt 0.401814 0.570129 +vt 0.372533 0.558000 +vt 0.350122 0.535589 +vt 0.337993 0.506308 +vt 0.337993 0.474614 +vt 0.372533 0.422922 +vt 0.401814 0.410793 +vt 0.433508 0.410793 +vt 0.485200 0.445333 +vt 0.497329 0.474614 +vt 0.497329 0.506308 +vt 0.785836 0.014028 +vt 0.657853 0.071027 +vt 0.973445 0.917369 +vt 0.622836 0.957029 +vt 0.269710 0.626725 +vt 0.712776 0.824477 +vt 0.676857 0.609473 +vt 0.815864 0.014028 +vt 0.815864 0.071027 +vt 0.364641 0.750188 +vt 0.167969 0.666472 +vt 0.167969 0.678076 +vt 0.129484 0.678076 +vt 0.090999 0.678076 +vt 0.090999 0.666472 +vt 0.052513 0.678076 +vt 0.052513 0.666472 +vt 0.014028 0.678076 +vt 0.014028 0.666472 +vt 0.629794 0.666472 +vt 0.629794 0.678076 +vt 0.591308 0.678076 +vt 0.552823 0.678076 +vt 0.552823 0.666472 +vt 0.514338 0.678076 +vt 0.475852 0.678076 +vt 0.475852 0.666472 +vt 0.437367 0.678076 +vt 0.437367 0.666472 +vt 0.398881 0.678076 +vt 0.360396 0.678076 +vt 0.360396 0.666472 +vt 0.321910 0.678076 +vt 0.321910 0.666472 +vt 0.283425 0.678076 +vt 0.283425 0.666472 +vt 0.244940 0.678076 +vt 0.206454 0.666472 +vt 0.206454 0.678076 +vt 0.244940 0.666472 +vt 0.167969 0.126901 +vt 0.129483 0.126888 +vt 0.129487 0.115284 +vt 0.090998 0.126875 +vt 0.091002 0.115271 +vt 0.052513 0.126861 +vt 0.052517 0.115257 +vt 0.014028 0.126848 +vt 0.629793 0.127059 +vt 0.591308 0.127046 +vt 0.591312 0.115442 +vt 0.552822 0.127033 +vt 0.552826 0.115429 +vt 0.514337 0.127020 +vt 0.514341 0.115416 +vt 0.475851 0.127007 +vt 0.475855 0.115403 +vt 0.437366 0.126994 +vt 0.437370 0.115389 +vt 0.398881 0.126980 +vt 0.398885 0.115376 +vt 0.360395 0.126967 +vt 0.321910 0.126954 +vt 0.321914 0.115350 +vt 0.283425 0.126941 +vt 0.283429 0.115337 +vt 0.244939 0.126927 +vt 0.206458 0.115310 +vt 0.206454 0.126914 +vt 0.244943 0.115323 +vt 0.421520 0.957030 +vt 0.466797 0.957030 +vt 0.466797 0.968634 +vt 0.871616 0.373560 +vt 0.826340 0.373560 +vt 0.826340 0.361956 +vt 0.781063 0.373560 +vt 0.781063 0.361956 +vt 0.455191 0.880859 +vt 0.409914 0.880859 +vt 0.409914 0.869255 +vt 0.364637 0.880859 +vt 0.364637 0.869255 +vt 0.014028 0.957029 +vt 0.059305 0.957029 +vt 0.059305 0.968633 +vt 0.104582 0.957029 +vt 0.104582 0.968633 +vt 0.149858 0.957029 +vt 0.195135 0.957029 +vt 0.195135 0.968633 +vt 0.240412 0.957029 +vt 0.240412 0.968633 +vt 0.285689 0.957029 +vt 0.285689 0.968633 +vt 0.330966 0.957029 +vt 0.376243 0.957029 +vt 0.421520 0.968634 +vt 0.330966 0.968634 +vt 0.772129 0.917369 +vt 0.817406 0.917369 +vt 0.817406 0.928973 +vt 0.573800 0.880859 +vt 0.528523 0.880859 +vt 0.528523 0.869255 +vt 0.483246 0.880859 +vt 0.483246 0.869255 +vt 0.961341 0.836081 +vt 0.916064 0.836081 +vt 0.916064 0.824477 +vt 0.870787 0.836081 +vt 0.870787 0.824477 +vt 0.364637 0.928973 +vt 0.364637 0.917369 +vt 0.409914 0.917369 +vt 0.455191 0.917369 +vt 0.455191 0.928973 +vt 0.500467 0.917369 +vt 0.500467 0.928973 +vt 0.545744 0.917369 +vt 0.545744 0.928973 +vt 0.591021 0.917369 +vt 0.591021 0.928973 +vt 0.636298 0.917369 +vt 0.636298 0.928973 +vt 0.681575 0.917369 +vt 0.681575 0.928973 +vt 0.726852 0.917369 +vt 0.772129 0.928973 +vt 0.164597 0.057593 +vt 0.132903 0.057583 +vt 0.132918 0.014067 +vt 0.126111 0.057580 +vt 0.094418 0.057569 +vt 0.094433 0.014054 +vt 0.087626 0.057567 +vt 0.055933 0.057556 +vt 0.055947 0.014041 +vt 0.049141 0.057554 +vt 0.017447 0.057543 +vt 0.017462 0.014028 +vt 0.626436 0.014236 +vt 0.626421 0.057751 +vt 0.594727 0.057740 +vt 0.587936 0.057738 +vt 0.556242 0.057727 +vt 0.556257 0.014212 +vt 0.549450 0.057725 +vt 0.517756 0.057714 +vt 0.517771 0.014199 +vt 0.510965 0.057712 +vt 0.479271 0.057701 +vt 0.479286 0.014186 +vt 0.472494 0.014183 +vt 0.472479 0.057699 +vt 0.440786 0.057688 +vt 0.434009 0.014170 +vt 0.433994 0.057686 +vt 0.402300 0.057675 +vt 0.395524 0.014157 +vt 0.395509 0.057672 +vt 0.363815 0.057662 +vt 0.357023 0.057659 +vt 0.325329 0.057648 +vt 0.325344 0.014133 +vt 0.318538 0.057646 +vt 0.286844 0.057635 +vt 0.286859 0.014120 +vt 0.280053 0.057633 +vt 0.248359 0.057622 +vt 0.248374 0.014107 +vt 0.203082 0.057607 +vt 0.171388 0.057596 +vt 0.171403 0.014081 +vt 0.241567 0.057620 +vt 0.209873 0.057609 +vt 0.209888 0.014094 +vt 0.360399 0.115363 +vt 0.014032 0.115244 +vt 0.167973 0.115297 +vt 0.357000 0.722132 +vt 0.286821 0.722132 +vt 0.248335 0.722132 +vt 0.209850 0.722132 +vt 0.171365 0.722132 +vt 0.132880 0.722132 +vt 0.094394 0.722132 +vt 0.055909 0.722132 +vt 0.017424 0.722132 +vt 0.626398 0.722133 +vt 0.587913 0.722133 +vt 0.549427 0.722132 +vt 0.510942 0.722132 +vt 0.472456 0.722132 +vt 0.433971 0.722132 +vt 0.395485 0.722132 +vt 0.336581 0.839581 +vt 0.247767 0.839581 +vt 0.251147 0.794430 +vt 0.323575 0.928973 +vt 0.260774 0.928973 +vt 0.251147 0.884731 +vt 0.333201 0.794430 +vt 0.260774 0.750188 +vt 0.333201 0.884731 +vt 0.918460 0.707029 +vt 0.829646 0.707029 +vt 0.833026 0.661878 +vt 0.905453 0.796421 +vt 0.842652 0.796421 +vt 0.833026 0.752179 +vt 0.915079 0.661878 +vt 0.842652 0.617636 +vt 0.915079 0.752179 +vt 0.089835 0.750188 +vt 0.099461 0.794430 +vt 0.017408 0.794430 +vt 0.099461 0.884731 +vt 0.017408 0.884731 +vt 0.014028 0.839581 +vt 0.102842 0.839581 +vt 0.089835 0.928973 +vt 0.027034 0.928973 +vt 0.798208 0.545339 +vt 0.716155 0.545336 +vt 0.712776 0.500185 +vt 0.801590 0.500188 +vt 0.716158 0.455035 +vt 0.788580 0.589580 +vt 0.725779 0.589578 +vt 0.788587 0.410796 +vt 0.798211 0.455038 +vt 0.801590 0.707029 +vt 0.712776 0.707029 +vt 0.716156 0.661878 +vt 0.788583 0.796421 +vt 0.725782 0.796421 +vt 0.716156 0.752179 +vt 0.788584 0.617636 +vt 0.798210 0.661878 +vt 0.798209 0.752179 +vt 0.905453 0.589578 +vt 0.842652 0.589578 +vt 0.833026 0.545336 +vt 0.915079 0.455035 +vt 0.833026 0.455035 +vt 0.842652 0.410793 +vt 0.918460 0.500186 +vt 0.915079 0.545336 +vt 0.829646 0.500186 +vt 0.866496 0.199357 +vt 0.784443 0.199357 +vt 0.794069 0.155115 +vt 0.869877 0.244508 +vt 0.866496 0.289658 +vt 0.784443 0.289658 +vt 0.781063 0.244507 +vt 0.856870 0.333900 +vt 0.794069 0.333900 +vt 0.216331 0.794430 +vt 0.219711 0.839581 +vt 0.130898 0.839581 +vt 0.206705 0.928973 +vt 0.143904 0.928973 +vt 0.134278 0.884731 +vt 0.134278 0.794430 +vt 0.143904 0.750188 +vt 0.216331 0.884731 +vt 0.129484 0.666472 +vt 0.591308 0.666472 +vt 0.514338 0.666472 +vt 0.398881 0.666472 +vt 0.629797 0.115455 +vt 0.871616 0.361956 +vt 0.455191 0.869255 +vt 0.014028 0.968633 +vt 0.149858 0.968633 +vt 0.376243 0.968634 +vt 0.573800 0.869255 +vt 0.961341 0.824477 +vt 0.409914 0.928973 +vt 0.726852 0.928973 +vt 0.164612 0.014078 +vt 0.126126 0.014065 +vt 0.087641 0.014052 +vt 0.049156 0.014039 +vt 0.594742 0.014225 +vt 0.587951 0.014223 +vt 0.549465 0.014210 +vt 0.510980 0.014196 +vt 0.440801 0.014172 +vt 0.402315 0.014159 +vt 0.363830 0.014146 +vt 0.357038 0.014144 +vt 0.318553 0.014131 +vt 0.280067 0.014118 +vt 0.203097 0.014091 +vt 0.241582 0.014104 +vt 0.325306 0.722132 +vt 0.318515 0.722132 +vt 0.280029 0.722132 +vt 0.241544 0.722132 +vt 0.203059 0.722132 +vt 0.164573 0.722132 +vt 0.126088 0.722132 +vt 0.087603 0.722132 +vt 0.049117 0.722132 +vt 0.594704 0.722133 +vt 0.556219 0.722133 +vt 0.517733 0.722132 +vt 0.479248 0.722132 +vt 0.440762 0.722132 +vt 0.402277 0.722132 +vt 0.363792 0.722132 +vt 0.323575 0.750188 +vt 0.905453 0.617636 +vt 0.027034 0.750188 +vt 0.725786 0.410793 +vt 0.725783 0.617636 +vt 0.905453 0.410793 +vt 0.856870 0.155115 +vt 0.206705 0.750188 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 -0.555600 -0.831500 +vn 0.000000 -0.555600 0.831500 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.068000 -0.997700 +vn 0.000000 0.068000 0.997700 +vn 0.000000 -0.054000 -0.998500 +vn 0.000000 -0.054000 0.998500 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.196300 0.000000 -0.980500 +vn 0.196300 -0.375200 -0.905900 +vn 0.196300 -0.693300 -0.693300 +vn 0.000000 -0.707100 -0.707100 +vn 0.196300 -0.905900 -0.375200 +vn 0.000000 -0.923900 -0.382700 +vn 0.196300 -0.980500 0.000000 +vn 0.196300 -0.905900 0.375200 +vn 0.196300 -0.693300 0.693300 +vn 0.000000 -0.707100 0.707100 +vn 0.196300 -0.375200 0.905900 +vn 0.196300 0.000000 0.980500 +vn 0.000000 0.000000 1.000000 +vn 0.196300 0.375200 0.905900 +vn 0.000000 0.382700 0.923900 +vn 0.196300 0.693300 0.693300 +vn 0.196300 0.905900 0.375200 +vn 0.000000 0.923900 0.382700 +vn 0.196300 0.980500 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.196300 0.905900 -0.375200 +vn 0.000000 0.923900 -0.382700 +vn 0.196300 0.693300 -0.693300 +vn 0.000000 0.382700 -0.923900 +vn 0.196300 0.375200 -0.905900 +vn 0.000000 0.707100 -0.707100 +vn 0.000000 -0.382700 -0.923900 +vn -0.149500 -0.378400 -0.913500 +vn -0.149500 -0.699100 -0.699100 +vn -0.149500 -0.913500 -0.378400 +vn 0.000000 -0.923900 0.382700 +vn -0.149500 -0.913500 0.378400 +vn -0.149500 -0.699100 0.699100 +vn 0.000000 -0.382700 0.923900 +vn -0.149500 -0.378400 0.913500 +vn -0.149500 0.000000 0.988700 +vn -0.149500 0.378400 0.913500 +vn 0.000000 0.707100 0.707100 +vn -0.149500 0.699100 0.699100 +vn -0.149600 0.988700 0.000000 +vn -0.149600 0.913500 -0.378400 +vn -0.149500 0.378400 -0.913500 +vn -0.149600 0.699100 -0.699100 +vn 0.665700 0.000000 -0.746200 +vn 0.599900 -0.188900 -0.777400 +vn -0.599900 -0.188900 -0.777400 +vn 0.913000 -0.393800 -0.106200 +vn 0.665700 -0.689400 -0.285500 +vn -0.665700 -0.689400 -0.285500 +vn 0.665700 -0.746200 0.000000 +vn -0.665700 -0.746200 0.000000 +vn 0.665700 -0.689400 0.285500 +vn -0.665700 -0.689400 0.285500 +vn 0.913000 -0.393800 0.106200 +vn -0.913000 -0.393800 0.106200 +vn 0.599900 -0.188900 0.777400 +vn 0.665700 0.000000 0.746200 +vn -0.665700 0.000000 0.746200 +vn 0.665700 0.285500 0.689400 +vn -0.665700 0.285500 0.689400 +vn 0.665700 0.527600 0.527600 +vn 0.665700 0.689400 0.285500 +vn -0.665700 0.689400 0.285500 +vn 0.665700 0.746200 0.000000 +vn -0.665700 0.746200 0.000000 +vn 0.665700 0.689400 -0.285500 +vn -0.665700 0.689400 -0.285500 +vn 0.665700 0.527600 -0.527600 +vn 0.665700 0.285500 -0.689400 +vn -0.665700 0.000000 -0.746200 +vn -0.665700 0.527600 -0.527600 +vn -0.599900 -0.188900 0.777400 +vn -0.665700 0.527600 0.527600 +vn -0.155200 0.000000 -0.987900 +vn -0.155200 -0.378000 -0.912700 +vn -0.665700 -0.285500 -0.689400 +vn -0.155200 -0.698500 -0.698500 +vn -0.665700 -0.527600 -0.527600 +vn -0.155200 -0.912700 -0.378000 +vn -0.155200 -0.987900 0.000000 +vn -0.155200 -0.912700 0.378000 +vn -0.155200 -0.698500 0.698500 +vn -0.665700 -0.527600 0.527600 +vn -0.155200 -0.378000 0.912700 +vn -0.665700 -0.285500 0.689400 +vn -0.155200 0.000000 0.987900 +vn -0.155200 0.378000 0.912700 +vn -0.155200 0.698500 0.698500 +vn -0.155200 0.912700 0.378000 +vn -0.155200 0.987900 0.000000 +vn -0.155200 0.912700 -0.378000 +vn -0.155200 0.698500 -0.698500 +vn -0.155200 0.378000 -0.912700 +vn -0.665700 0.285500 -0.689400 +vn -0.149600 0.913500 0.378400 +vn -0.149500 -0.988700 0.000000 +vn -0.149500 0.000000 -0.988700 +vn 0.803800 0.549600 0.227600 +vn 0.803800 0.549600 -0.227600 +vn 0.803800 0.420600 -0.420600 +vn 0.803800 0.227600 -0.549600 +vn 0.803800 0.000000 -0.594900 +vn 0.803800 -0.227600 -0.549600 +vn 0.803800 -0.420600 -0.420600 +vn 0.803800 -0.549600 -0.227600 +vn 0.803800 -0.594900 0.000000 +vn 0.803800 -0.549600 0.227600 +vn 0.803800 -0.420600 0.420600 +vn 0.803800 -0.227600 0.549600 +vn 0.803800 0.000000 0.594900 +vn 0.803800 0.227600 0.549600 +vn 0.803800 0.420600 0.420600 +vn -0.366800 0.657800 -0.657800 +vn 0.555600 0.831400 0.000000 +vn 0.555600 0.587900 -0.587900 +vn 0.366800 0.657800 -0.657800 +vn -0.366800 0.930300 0.000000 +vn -0.555600 0.587900 -0.587900 +vn 0.366800 0.930300 0.000000 +vn -0.366800 0.000000 -0.930300 +vn 0.555600 0.000000 -0.831400 +vn 0.366800 0.000000 -0.930300 +vn -0.555600 0.000000 -0.831400 +vn -0.366800 -0.657800 -0.657800 +vn 0.366800 -0.657800 -0.657800 +vn 0.555600 -0.587900 -0.587900 +vn 0.366800 -0.930300 0.000000 +vn -0.366800 -0.930300 0.000000 +vn 0.555600 -0.831400 0.000000 +vn -0.555600 -0.587900 -0.587900 +vn -0.366800 -0.657800 0.657800 +vn 0.555600 -0.587900 0.587900 +vn 0.366800 -0.657800 0.657800 +vn -0.555600 -0.831400 0.000000 +vn 0.555600 0.000000 0.831400 +vn 0.366800 0.000000 0.930300 +vn -0.366800 0.000000 0.930300 +vn -0.555600 0.000000 0.831400 +vn -0.366800 0.657800 0.657800 +vn -0.555600 0.587900 0.587900 +vn 0.366800 0.657800 0.657800 +vn 0.555600 0.587900 0.587900 +vn -0.555600 0.831400 0.000000 +vn -0.913000 -0.393800 -0.106200 +vn 0.803800 0.594900 0.000000 +vn -0.555600 -0.587900 0.587900 +s off +f 83/1/1 87/2/1 95/3/1 +f 100/4/2 102/5/2 101/6/2 +f 110/7/3 112/8/3 111/9/3 +f 118/10/4 110/11/4 126/12/4 +f 115/13/1 119/14/1 127/15/1 +f 131/16/2 132/17/2 134/18/2 +f 141/19/3 142/20/3 144/21/3 +f 150/22/4 142/23/4 158/24/4 +f 143/25/1 151/26/1 159/27/1 +f 86/28/4 78/29/4 70/30/4 +f 163/31/4 132/32/4 134/33/4 +f 168/34/4 167/35/4 142/36/4 +f 173/37/1 111/38/1 109/39/1 +f 131/40/5 132/41/5 163/42/5 +f 165/43/1 143/44/1 141/45/1 +f 165/46/6 168/47/6 144/48/6 +f 162/49/1 161/50/1 133/51/1 +f 141/52/7 142/53/7 167/54/7 +f 164/55/8 134/56/8 133/57/8 +f 171/58/4 100/59/4 102/60/4 +f 176/61/4 175/62/4 110/63/4 +f 170/64/1 169/65/1 101/66/1 +f 164/55/9 161/67/9 162/68/9 +f 172/69/8 102/70/8 101/71/8 +f 99/72/5 100/73/5 171/74/5 +f 173/75/6 176/76/6 112/77/6 +f 109/78/7 110/79/7 175/80/7 +f 168/47/9 165/46/9 166/81/9 +f 176/76/9 173/75/9 174/82/9 +f 172/69/9 169/83/9 170/84/9 +f 95/3/1 65/85/1 67/86/1 +f 67/86/1 69/87/1 71/88/1 +f 71/88/1 73/89/1 75/90/1 +f 75/90/1 77/91/1 71/88/1 +f 79/92/1 81/93/1 83/1/1 +f 83/1/1 85/94/1 87/2/1 +f 87/2/1 89/95/1 91/96/1 +f 91/96/1 93/97/1 87/2/1 +f 95/3/1 67/86/1 79/92/1 +f 71/88/1 77/91/1 79/92/1 +f 79/92/1 83/1/1 95/3/1 +f 87/2/1 93/97/1 95/3/1 +f 67/86/1 71/88/1 79/92/1 +f 99/98/2 100/4/2 101/6/2 +f 109/99/3 110/7/3 111/9/3 +f 102/100/4 100/101/4 98/102/4 +f 98/102/4 128/103/4 126/12/4 +f 126/12/4 124/104/4 118/10/4 +f 122/105/4 120/106/4 118/10/4 +f 118/10/4 116/107/4 110/11/4 +f 114/108/4 112/109/4 110/11/4 +f 110/11/4 108/110/4 106/111/4 +f 106/111/4 104/112/4 110/11/4 +f 102/100/4 98/102/4 126/12/4 +f 124/104/4 122/105/4 118/10/4 +f 116/107/4 114/108/4 110/11/4 +f 110/11/4 104/112/4 102/100/4 +f 102/100/4 126/12/4 110/11/4 +f 127/15/1 97/113/1 99/114/1 +f 99/114/1 101/115/1 103/116/1 +f 103/116/1 105/117/1 107/118/1 +f 107/118/1 109/119/1 111/120/1 +f 111/120/1 113/121/1 115/13/1 +f 115/13/1 117/122/1 119/14/1 +f 119/14/1 121/123/1 123/124/1 +f 123/124/1 125/125/1 127/15/1 +f 127/15/1 99/114/1 103/116/1 +f 103/116/1 107/118/1 111/120/1 +f 111/120/1 115/13/1 127/15/1 +f 119/14/1 123/124/1 127/15/1 +f 127/15/1 103/116/1 111/120/1 +f 133/126/2 131/16/2 134/18/2 +f 143/127/3 141/19/3 144/21/3 +f 134/128/4 132/129/4 130/130/4 +f 130/130/4 160/131/4 158/24/4 +f 158/24/4 156/132/4 150/22/4 +f 154/133/4 152/134/4 150/22/4 +f 150/22/4 148/135/4 142/23/4 +f 146/136/4 144/137/4 142/23/4 +f 142/23/4 140/138/4 138/139/4 +f 138/139/4 136/140/4 142/23/4 +f 134/128/4 130/130/4 158/24/4 +f 156/132/4 154/133/4 150/22/4 +f 148/135/4 146/136/4 142/23/4 +f 142/23/4 136/140/4 134/128/4 +f 134/128/4 158/24/4 142/23/4 +f 159/27/1 129/141/1 131/142/1 +f 131/142/1 133/143/1 159/27/1 +f 135/144/1 137/145/1 139/146/1 +f 139/146/1 141/147/1 135/144/1 +f 143/25/1 145/148/1 147/149/1 +f 147/149/1 149/150/1 151/26/1 +f 151/26/1 153/151/1 155/152/1 +f 155/152/1 157/153/1 159/27/1 +f 159/27/1 133/143/1 135/144/1 +f 135/144/1 141/147/1 143/25/1 +f 143/25/1 147/149/1 151/26/1 +f 151/26/1 155/152/1 159/27/1 +f 159/27/1 135/144/1 143/25/1 +f 70/30/4 68/154/4 66/155/4 +f 66/155/4 96/156/4 94/157/4 +f 94/157/4 92/158/4 90/159/4 +f 90/159/4 88/160/4 86/28/4 +f 86/28/4 84/161/4 78/29/4 +f 82/162/4 80/163/4 78/29/4 +f 78/29/4 76/164/4 70/30/4 +f 74/165/4 72/166/4 70/30/4 +f 70/30/4 66/155/4 94/157/4 +f 94/157/4 90/159/4 70/30/4 +f 84/161/4 82/162/4 78/29/4 +f 76/164/4 74/165/4 70/30/4 +f 70/30/4 90/159/4 86/28/4 +f 164/167/4 163/31/4 134/33/4 +f 144/168/4 168/34/4 142/36/4 +f 174/169/1 173/37/1 109/39/1 +f 162/68/5 131/40/5 163/42/5 +f 166/170/1 165/43/1 141/45/1 +f 143/171/6 165/46/6 144/48/6 +f 131/172/1 162/49/1 133/51/1 +f 166/81/7 141/52/7 167/54/7 +f 161/67/8 164/55/8 133/57/8 +f 172/173/4 171/58/4 102/60/4 +f 112/174/4 176/61/4 110/63/4 +f 99/175/1 170/64/1 101/66/1 +f 163/42/9 164/55/9 162/68/9 +f 169/83/8 172/69/8 101/71/8 +f 170/84/5 99/72/5 171/74/5 +f 111/176/6 173/75/6 112/77/6 +f 174/82/7 109/78/7 175/80/7 +f 167/54/9 168/47/9 166/81/9 +f 175/80/9 176/76/9 174/82/9 +f 171/74/9 172/69/9 170/84/9 +s 1 +f 1/177/10 2/178/11 4/179/12 +f 4/179/12 6/180/13 5/181/14 +f 6/180/13 8/182/15 7/183/16 +f 8/182/15 10/184/17 9/185/9 +f 9/186/9 10/187/17 12/188/18 +f 12/188/18 14/189/19 13/190/20 +f 13/190/20 14/189/19 16/191/21 +f 16/191/21 18/192/22 17/193/23 +f 18/192/22 20/194/24 19/195/25 +f 19/195/25 20/194/24 22/196/26 +f 22/196/26 24/197/27 23/198/28 +f 24/197/27 26/199/29 25/200/30 +f 25/200/30 26/199/29 28/201/31 +f 27/202/32 28/201/31 30/203/33 +f 31/204/34 32/205/35 2/178/11 +f 29/206/36 30/203/33 32/205/35 +f 34/207/10 36/208/37 35/209/38 +f 36/208/37 38/210/14 37/211/39 +f 37/211/39 38/210/14 40/212/16 +f 39/213/40 40/212/16 42/214/9 +f 42/215/9 44/216/41 43/217/42 +f 44/216/41 46/218/20 45/219/43 +f 46/218/20 48/220/44 47/221/45 +f 48/220/44 50/222/23 49/223/46 +f 50/222/23 52/224/25 51/225/47 +f 51/225/47 52/224/25 54/226/48 +f 53/227/49 54/226/48 56/228/28 +f 56/228/28 58/229/30 57/230/50 +f 57/230/50 58/229/30 60/231/32 +f 59/232/51 60/231/32 62/233/36 +f 63/234/52 64/235/34 34/207/10 +f 61/236/53 62/233/36 64/235/34 +f 98/237/54 100/238/55 99/239/56 +f 102/240/57 104/241/58 103/242/59 +f 104/241/58 106/243/60 105/244/61 +f 106/245/60 108/246/62 107/247/63 +f 108/246/62 110/248/64 109/249/65 +f 112/250/66 114/251/67 113/252/68 +f 114/251/67 116/253/69 115/254/70 +f 115/254/70 116/253/69 118/255/71 +f 118/255/71 120/256/72 119/257/73 +f 120/256/72 122/258/74 121/259/75 +f 122/258/74 124/260/76 123/261/77 +f 123/261/77 124/260/76 126/262/78 +f 128/263/79 98/237/54 97/264/80 +f 125/265/81 126/262/78 128/263/79 +f 130/266/54 132/267/55 131/268/56 +f 134/269/57 136/270/58 135/271/59 +f 136/270/58 138/272/60 137/273/61 +f 138/274/60 140/275/62 139/276/63 +f 140/275/62 142/277/64 141/278/65 +f 143/279/82 144/280/66 146/281/67 +f 146/281/67 148/282/69 147/283/70 +f 148/282/69 150/284/71 149/285/83 +f 150/284/71 152/286/72 151/287/73 +f 152/286/72 154/288/74 153/289/75 +f 154/288/74 156/290/76 155/291/77 +f 156/290/76 158/292/78 157/293/81 +f 160/294/79 130/266/54 129/295/80 +f 157/293/81 158/292/78 160/294/79 +f 177/296/84 178/297/85 67/298/86 +f 178/299/85 179/300/87 69/301/88 +f 179/302/87 180/303/89 71/304/59 +f 180/305/89 181/306/90 73/307/61 +f 73/308/61 181/309/90 182/310/91 +f 182/311/91 183/312/92 77/313/93 +f 183/314/92 184/315/94 79/316/95 +f 184/317/94 185/318/96 81/319/68 +f 81/320/68 185/321/96 186/322/97 +f 83/323/70 186/324/97 187/325/98 +f 85/326/83 187/327/98 188/328/99 +f 188/329/99 189/330/100 89/331/75 +f 189/332/100 190/333/101 91/334/77 +f 190/335/101 191/336/102 93/337/81 +f 192/338/103 177/339/84 65/340/80 +f 191/341/102 192/342/103 95/343/104 +f 190/335/101 59/232/51 61/236/53 +f 59/232/51 190/333/101 189/332/100 +f 57/230/50 189/330/100 188/329/99 +f 53/227/49 55/344/105 188/328/99 +f 51/225/47 53/227/49 187/325/98 +f 49/223/46 51/225/47 186/322/97 +f 47/221/45 49/223/46 185/318/96 +f 45/219/43 47/221/45 184/315/94 +f 43/217/42 45/219/43 183/312/92 +f 43/217/42 182/310/91 181/309/90 +f 39/213/40 41/345/106 181/306/90 +f 39/213/40 180/303/89 179/302/87 +f 37/211/39 179/300/87 178/299/85 +f 35/209/38 178/297/85 177/296/84 +f 33/346/107 177/339/84 192/338/103 +f 63/234/52 192/342/103 191/341/102 +f 26/199/29 24/197/27 88/347/108 +f 92/348/109 28/201/31 26/199/29 +f 94/349/110 30/203/33 28/201/31 +f 96/350/111 32/205/35 30/203/33 +f 66/351/112 2/178/11 32/205/35 +f 68/352/113 4/179/12 2/178/11 +f 70/353/114 6/180/13 4/179/12 +f 72/354/115 8/182/15 6/180/13 +f 74/355/116 10/184/17 8/182/15 +f 12/188/18 10/187/17 74/356/116 +f 14/189/19 12/188/18 76/357/117 +f 16/191/21 14/189/19 78/358/118 +f 18/192/22 16/191/21 80/359/119 +f 20/194/24 18/192/22 82/360/120 +f 22/196/26 20/194/24 84/361/121 +f 24/197/27 22/196/26 86/362/122 +f 195/363/30 200/364/36 201/365/123 +f 193/366/124 198/367/125 199/368/126 +f 196/369/127 201/365/123 202/370/128 +f 194/371/129 199/368/126 200/364/36 +f 200/372/36 205/373/10 206/374/130 +f 198/375/125 203/376/131 204/377/132 +f 201/378/123 206/374/130 207/379/133 +f 199/380/126 204/377/132 205/373/10 +f 207/381/133 206/382/130 211/383/134 +f 204/384/132 209/385/135 210/386/14 +f 205/387/10 210/386/14 211/383/134 +f 204/384/132 203/388/131 208/389/136 +f 209/390/135 214/391/137 215/392/9 +f 210/393/14 215/392/9 216/394/138 +f 209/390/135 208/395/136 213/396/139 +f 212/397/140 211/398/134 216/394/138 +f 215/399/9 220/400/20 221/401/141 +f 213/402/139 218/403/142 219/404/143 +f 217/405/144 216/406/138 221/401/141 +f 215/399/9 214/407/137 219/404/143 +f 218/408/142 223/409/145 224/410/146 +f 221/411/141 226/412/147 227/413/148 +f 220/414/20 219/415/143 224/410/146 +f 220/414/20 225/416/23 226/412/147 +f 226/417/147 231/418/149 232/419/150 +f 225/420/23 224/421/146 229/422/151 +f 226/417/147 225/420/23 230/423/48 +f 223/424/145 228/425/152 229/422/151 +f 231/426/149 230/427/48 195/428/30 +f 228/429/152 193/430/124 194/431/129 +f 231/426/149 196/432/127 197/433/153 +f 229/434/151 194/431/129 195/428/30 +f 3/435/37 1/177/10 4/179/12 +f 3/435/37 4/179/12 5/181/14 +f 5/181/14 6/180/13 7/183/16 +f 7/183/16 8/182/15 9/185/9 +f 11/436/41 9/186/9 12/188/18 +f 11/436/41 12/188/18 13/190/20 +f 15/437/44 13/190/20 16/191/21 +f 15/437/44 16/191/21 17/193/23 +f 17/193/23 18/192/22 19/195/25 +f 21/438/48 19/195/25 22/196/26 +f 21/438/48 22/196/26 23/198/28 +f 23/198/28 24/197/27 25/200/30 +f 27/202/32 25/200/30 28/201/31 +f 29/206/36 27/202/32 30/203/33 +f 1/177/10 31/204/34 2/178/11 +f 31/204/34 29/206/36 32/205/35 +f 33/346/107 34/207/10 35/209/38 +f 35/209/38 36/208/37 37/211/39 +f 39/213/40 37/211/39 40/212/16 +f 41/345/106 39/213/40 42/214/9 +f 41/439/106 42/215/9 43/217/42 +f 43/217/42 44/216/41 45/219/43 +f 45/219/43 46/218/20 47/221/45 +f 47/221/45 48/220/44 49/223/46 +f 49/223/46 50/222/23 51/225/47 +f 53/227/49 51/225/47 54/226/48 +f 55/344/105 53/227/49 56/228/28 +f 55/344/105 56/228/28 57/230/50 +f 59/232/51 57/230/50 60/231/32 +f 61/236/53 59/232/51 62/233/36 +f 33/346/107 63/234/52 34/207/10 +f 63/234/52 61/236/53 64/235/34 +f 97/264/80 98/237/54 99/239/56 +f 101/440/154 102/240/57 103/242/59 +f 103/242/59 104/241/58 105/244/61 +f 105/441/61 106/245/60 107/247/63 +f 107/247/63 108/246/62 109/249/65 +f 111/442/82 112/250/66 113/252/68 +f 113/252/68 114/251/67 115/254/70 +f 117/443/83 115/254/70 118/255/71 +f 117/443/83 118/255/71 119/257/73 +f 119/257/73 120/256/72 121/259/75 +f 121/259/75 122/258/74 123/261/77 +f 125/265/81 123/261/77 126/262/78 +f 127/444/104 128/263/79 97/264/80 +f 127/444/104 125/265/81 128/263/79 +f 129/295/80 130/266/54 131/268/56 +f 133/445/154 134/269/57 135/271/59 +f 135/271/59 136/270/58 137/273/61 +f 137/446/61 138/274/60 139/276/63 +f 139/276/63 140/275/62 141/278/65 +f 145/447/68 143/279/82 146/281/67 +f 145/447/68 146/281/67 147/283/70 +f 147/283/70 148/282/69 149/285/83 +f 149/285/83 150/284/71 151/287/73 +f 151/287/73 152/286/72 153/289/75 +f 153/289/75 154/288/74 155/291/77 +f 155/291/77 156/290/76 157/293/81 +f 159/448/104 160/294/79 129/295/80 +f 159/448/104 157/293/81 160/294/79 +f 65/449/80 177/296/84 67/298/86 +f 67/450/86 178/299/85 69/301/88 +f 69/451/88 179/302/87 71/304/59 +f 71/452/59 180/305/89 73/307/61 +f 75/453/63 73/308/61 182/310/91 +f 75/454/63 182/311/91 77/313/93 +f 77/455/93 183/314/92 79/316/95 +f 79/456/95 184/317/94 81/319/68 +f 83/457/70 81/320/68 186/322/97 +f 85/458/83 83/323/70 187/325/98 +f 87/459/73 85/326/83 188/328/99 +f 87/460/73 188/329/99 89/331/75 +f 89/461/75 189/332/100 91/334/77 +f 91/462/77 190/335/101 93/337/81 +f 95/463/104 192/338/103 65/340/80 +f 93/464/81 191/341/102 95/343/104 +f 191/336/102 190/335/101 61/236/53 +f 57/230/50 59/232/51 189/332/100 +f 55/344/105 57/230/50 188/329/99 +f 187/327/98 53/227/49 188/328/99 +f 186/324/97 51/225/47 187/325/98 +f 185/321/96 49/223/46 186/322/97 +f 184/317/94 47/221/45 185/318/96 +f 183/314/92 45/219/43 184/315/94 +f 182/311/91 43/217/42 183/312/92 +f 41/439/106 43/217/42 181/309/90 +f 180/305/89 39/213/40 181/306/90 +f 37/211/39 39/213/40 179/302/87 +f 35/209/38 37/211/39 178/299/85 +f 33/346/107 35/209/38 177/296/84 +f 63/234/52 33/346/107 192/338/103 +f 61/236/53 63/234/52 191/341/102 +f 90/465/155 26/199/29 88/347/108 +f 90/466/155 92/348/109 26/199/29 +f 92/467/109 94/349/110 28/201/31 +f 94/468/110 96/350/111 30/203/33 +f 96/469/111 66/351/112 32/205/35 +f 66/470/112 68/352/113 2/178/11 +f 68/471/113 70/353/114 4/179/12 +f 70/472/114 72/354/115 6/180/13 +f 72/473/115 74/355/116 8/182/15 +f 76/474/117 12/188/18 74/356/116 +f 78/475/118 14/189/19 76/357/117 +f 80/476/119 16/191/21 78/358/118 +f 82/477/120 18/192/22 80/359/119 +f 84/478/121 20/194/24 82/360/120 +f 86/479/122 22/196/26 84/361/121 +f 88/480/108 24/197/27 86/362/122 +f 196/369/127 195/363/30 201/365/123 +f 194/371/129 193/366/124 199/368/126 +f 197/481/153 196/369/127 202/370/128 +f 195/363/30 194/371/129 200/364/36 +f 201/378/123 200/372/36 206/374/130 +f 199/380/126 198/375/125 204/377/132 +f 202/482/128 201/378/123 207/379/133 +f 200/372/36 199/380/126 205/373/10 +f 212/483/140 207/381/133 211/383/134 +f 205/387/10 204/384/132 210/386/14 +f 206/382/130 205/387/10 211/383/134 +f 209/385/135 204/384/132 208/389/136 +f 210/393/14 209/390/135 215/392/9 +f 211/398/134 210/393/14 216/394/138 +f 214/391/137 209/390/135 213/396/139 +f 217/484/144 212/397/140 216/394/138 +f 216/406/138 215/399/9 221/401/141 +f 214/407/137 213/402/139 219/404/143 +f 222/485/156 217/405/144 221/401/141 +f 220/400/20 215/399/9 219/404/143 +f 219/415/143 218/408/142 224/410/146 +f 222/486/156 221/411/141 227/413/148 +f 225/416/23 220/414/20 224/410/146 +f 221/411/141 220/414/20 226/412/147 +f 227/487/148 226/417/147 232/419/150 +f 230/423/48 225/420/23 229/422/151 +f 231/418/149 226/417/147 230/423/48 +f 224/421/146 223/424/145 229/422/151 +f 196/432/127 231/426/149 195/428/30 +f 229/434/151 228/429/152 194/431/129 +f 232/488/150 231/426/149 197/433/153 +f 230/427/48 229/434/151 195/428/30 diff --git a/assets/hbm/models/epress_body.obj b/assets/hbm/models/epress_body.obj new file mode 100644 index 000000000..a8c49fcd0 --- /dev/null +++ b/assets/hbm/models/epress_body.obj @@ -0,0 +1,587 @@ +# Blender v2.76 (sub 0) OBJ File: 'epress_body.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.166667 1.000000 -0.500000 +v -0.500000 2.000000 -0.500000 +v -0.500000 2.000000 0.500000 +v -0.166667 1.000000 0.500000 +v -0.166667 2.000000 0.500000 +v -0.166667 2.000000 -0.500000 +v 0.500000 2.000000 0.500000 +v 0.500000 2.000000 -0.500000 +v 0.500000 3.000000 0.500000 +v 0.500000 3.000000 -0.500000 +v -0.166667 3.000000 0.500000 +v -0.166667 3.000000 -0.500000 +v -0.166667 2.500000 -0.500000 +v -0.166667 2.500000 0.500000 +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.343750 0.500000 +v 0.156250 0.656250 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.156250 0.656250 -0.500000 +v 0.156250 0.343750 -0.500000 +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.250000 0.250000 0.500000 +v -0.250000 0.750000 0.500000 +v -0.250000 0.250000 -0.500000 +v -0.250000 0.750000 -0.500000 +v 0.250000 0.250000 0.500000 +v 0.250000 0.750000 0.500000 +v 0.250000 0.250000 -0.500000 +v 0.250000 0.750000 -0.500000 +v -0.500000 0.750000 0.250000 +v -0.500000 0.750000 -0.250000 +v -0.500000 0.250000 -0.250000 +v -0.500000 0.250000 0.250000 +v 0.500000 0.250000 0.250000 +v 0.500000 0.250000 -0.250000 +v 0.500000 0.750000 -0.250000 +v 0.500000 0.750000 0.250000 +v 0.450000 0.750000 -0.250000 +v 0.450000 0.250000 -0.250000 +v 0.450000 0.750000 0.250000 +v 0.450000 0.250000 0.250000 +v 0.450000 0.656250 -0.156250 +v 0.450000 0.656250 0.156250 +v 0.450000 0.343750 0.156250 +v 0.450000 0.343750 -0.156250 +v -0.156250 0.656250 -0.450000 +v 0.156250 0.656250 -0.450000 +v 0.156250 0.343750 -0.450000 +v -0.156250 0.343750 -0.450000 +v -0.250000 0.750000 -0.450000 +v -0.250000 0.250000 -0.450000 +v 0.250000 0.750000 -0.450000 +v 0.250000 0.250000 -0.450000 +v -0.450000 0.250000 0.250000 +v -0.450000 0.750000 0.250000 +v -0.450000 0.750000 -0.250000 +v -0.450000 0.250000 -0.250000 +v -0.450000 0.343750 0.156250 +v -0.450000 0.656250 0.156250 +v -0.450000 0.656250 -0.156250 +v -0.450000 0.343750 -0.156250 +v 0.156250 0.656250 0.450000 +v -0.156250 0.656250 0.450000 +v -0.156250 0.343750 0.450000 +v 0.156250 0.343750 0.450000 +v -0.250000 0.250000 0.450000 +v -0.250000 0.750000 0.450000 +v 0.250000 0.750000 0.450000 +v 0.250000 0.250000 0.450000 +v 0.500000 2.175000 -0.325000 +v 0.500000 2.175000 0.325000 +v 0.500000 2.825000 -0.325000 +v 0.500000 2.825000 0.325000 +v 0.350000 2.175000 -0.325000 +v 0.350000 2.175000 0.325000 +v 0.350000 2.825000 -0.325000 +v 0.350000 2.825000 0.325000 +v 0.350000 2.175000 -0.151667 +v 0.350000 2.825000 -0.151667 +v 0.350000 2.175000 0.281667 +v 0.350000 2.175000 0.151667 +v 0.350000 2.825000 0.151667 +v 0.350000 2.825000 0.281667 +v 0.350000 2.175000 0.065000 +v 0.350000 2.175000 -0.065000 +v 0.350000 2.825000 -0.065000 +v 0.350000 2.825000 0.065000 +v 0.400000 2.175000 -0.151667 +v 0.400000 2.175000 -0.281667 +v 0.400000 2.825000 -0.281667 +v 0.400000 2.825000 -0.151667 +v 0.400000 2.175000 0.281667 +v 0.400000 2.175000 0.151667 +v 0.400000 2.825000 0.151667 +v 0.400000 2.825000 0.281667 +v 0.400000 2.175000 0.065000 +v 0.400000 2.175000 -0.065000 +v 0.400000 2.825000 -0.065000 +v 0.400000 2.825000 0.065000 +v 0.450000 2.175000 -0.184167 +v 0.450000 2.175000 -0.249167 +v 0.450000 2.825000 -0.249167 +v 0.450000 2.825000 -0.184167 +v 0.450000 2.175000 0.249167 +v 0.450000 2.175000 0.184167 +v 0.450000 2.825000 0.184167 +v 0.450000 2.825000 0.249167 +v 0.450000 2.175000 0.032500 +v 0.450000 2.175000 -0.032500 +v 0.450000 2.825000 -0.032500 +v 0.450000 2.825000 0.032500 +v 0.350000 2.825000 -0.281667 +v 0.350000 2.175000 -0.281667 +vt 0.657280 0.519248 +vt 0.657280 0.629673 +vt 0.491641 0.629673 +vt 0.436429 0.016646 +vt 0.602067 0.016646 +vt 0.602067 0.182285 +vt 0.403136 0.519248 +vt 0.403136 0.684886 +vt 0.237498 0.684886 +vt 0.292710 0.016646 +vt 0.292710 0.127072 +vt 0.127072 0.127072 +vt 0.237497 0.519248 +vt 0.182285 0.684886 +vt 0.458349 0.519248 +vt 0.458349 0.684886 +vt 0.182285 0.519248 +vt 0.016646 0.684886 +vt 0.263724 0.156059 +vt 0.156059 0.156059 +vt 0.292710 0.292710 +vt 0.292710 0.403136 +vt 0.127072 0.403136 +vt 0.182285 0.767705 +vt 0.403136 0.209891 +vt 0.292710 0.485955 +vt 0.127072 0.485955 +vt 0.237498 0.784422 +vt 0.458349 0.767705 +vt 0.127072 0.292710 +vt 0.016646 0.292710 +vt 0.016646 0.209891 +vt 0.830994 0.527529 +vt 0.830994 0.579291 +vt 0.779232 0.579292 +vt 0.819797 0.364817 +vt 0.819797 0.416579 +vt 0.768035 0.416579 +vt 0.444710 0.466270 +vt 0.444710 0.414508 +vt 0.496472 0.414508 +vt 0.776317 0.076690 +vt 0.776317 0.024928 +vt 0.828079 0.024928 +vt 0.223694 0.941944 +vt 0.306514 0.941944 +vt 0.347923 0.983353 +vt 0.223694 0.859125 +vt 0.182285 0.817715 +vt 0.347923 0.817715 +vt 0.182285 0.983354 +vt 0.140875 0.941944 +vt 0.071859 0.983354 +vt 0.140875 0.859125 +vt 0.058056 0.859125 +vt 0.016646 0.817715 +vt 0.058056 0.941944 +vt 0.016646 0.983354 +vt 0.637790 0.941944 +vt 0.679200 0.983353 +vt 0.513562 0.983353 +vt 0.554971 0.859125 +vt 0.513561 0.817715 +vt 0.679200 0.817715 +vt 0.554971 0.941944 +vt 0.458349 0.983353 +vt 0.389333 0.941944 +vt 0.472152 0.941944 +vt 0.472152 0.859125 +vt 0.389333 0.859125 +vt 0.734743 0.107747 +vt 0.726461 0.107747 +vt 0.726461 0.024928 +vt 0.768035 0.076690 +vt 0.768035 0.024928 +vt 0.726461 0.016646 +vt 0.643641 0.024928 +vt 0.635359 0.024928 +vt 0.643641 0.107747 +vt 0.718179 0.215577 +vt 0.718179 0.223859 +vt 0.635360 0.223859 +vt 0.635360 0.314960 +vt 0.635360 0.306678 +vt 0.718179 0.306678 +vt 0.496472 0.466270 +vt 0.496472 0.474552 +vt 0.444710 0.474552 +vt 0.444710 0.406226 +vt 0.496472 0.406226 +vt 0.759753 0.416579 +vt 0.759753 0.364817 +vt 0.828079 0.364817 +vt 0.828079 0.416579 +vt 0.491641 0.671248 +vt 0.499923 0.671248 +vt 0.499923 0.754067 +vt 0.591024 0.754067 +vt 0.582742 0.754067 +vt 0.582742 0.671248 +vt 0.779232 0.527530 +vt 0.779232 0.519248 +vt 0.830994 0.519248 +vt 0.830994 0.587573 +vt 0.779232 0.587573 +vt 0.627078 0.356535 +vt 0.635360 0.356535 +vt 0.635360 0.439354 +vt 0.726461 0.439354 +vt 0.718179 0.439354 +vt 0.718179 0.356535 +vt 0.702650 0.291150 +vt 0.650888 0.239388 +vt 0.650888 0.291150 +vt 0.702650 0.239388 +vt 0.726461 0.306678 +vt 0.436429 0.466270 +vt 0.436429 0.414508 +vt 0.504754 0.414508 +vt 0.504754 0.466270 +vt 0.627078 0.223859 +vt 0.515452 0.738538 +vt 0.515452 0.686776 +vt 0.567214 0.686776 +vt 0.582742 0.662966 +vt 0.499923 0.762349 +vt 0.819797 0.424861 +vt 0.768035 0.424861 +vt 0.768035 0.364817 +vt 0.768035 0.356535 +vt 0.819797 0.356535 +vt 0.702650 0.372063 +vt 0.650888 0.372063 +vt 0.702650 0.423825 +vt 0.650888 0.423825 +vt 0.635360 0.447636 +vt 0.718179 0.348253 +vt 0.839276 0.527529 +vt 0.839276 0.579291 +vt 0.770950 0.579292 +vt 0.770950 0.527530 +vt 0.710932 0.092219 +vt 0.659170 0.040457 +vt 0.828079 0.076690 +vt 0.828079 0.084972 +vt 0.776317 0.084972 +vt 0.836361 0.024928 +vt 0.836361 0.076690 +vt 0.643641 0.116029 +vt 0.776317 0.016646 +vt 0.828079 0.016646 +vt 0.436429 0.240423 +vt 0.461274 0.240423 +vt 0.461274 0.348088 +vt 0.156059 0.263724 +vt 0.263724 0.263724 +vt 0.729376 0.626913 +vt 0.729376 0.519248 +vt 0.737658 0.519248 +vt 0.593785 0.348088 +vt 0.568939 0.348088 +vt 0.568939 0.240423 +vt 0.719498 0.626913 +vt 0.719498 0.519248 +vt 0.461274 0.215577 +vt 0.708732 0.626913 +vt 0.698854 0.519248 +vt 0.698854 0.626913 +vt 0.690572 0.626913 +vt 0.798557 0.323242 +vt 0.798557 0.215577 +vt 0.806839 0.215577 +vt 0.768035 0.215577 +vt 0.768035 0.323242 +vt 0.759753 0.323242 +vt 0.729376 0.767870 +vt 0.729376 0.660205 +vt 0.737658 0.660205 +vt 0.698854 0.660205 +vt 0.698854 0.767870 +vt 0.690572 0.767870 +vt 0.708732 0.519248 +vt 0.788679 0.215577 +vt 0.788679 0.323242 +vt 0.777913 0.323242 +vt 0.777913 0.215577 +vt 0.719498 0.660205 +vt 0.719498 0.767870 +vt 0.708732 0.767870 +vt 0.708732 0.660205 +vt 0.461274 0.372934 +vt 0.491641 0.519248 +vt 0.436429 0.182285 +vt 0.127072 0.016646 +vt 0.016646 0.519248 +vt 0.403136 0.127072 +vt 0.403136 0.292710 +vt 0.403136 0.784422 +vt 0.016646 0.127072 +vt 0.306514 0.859125 +vt 0.637790 0.859124 +vt 0.734743 0.024928 +vt 0.643641 0.016646 +vt 0.635359 0.107747 +vt 0.635360 0.215577 +vt 0.718179 0.314960 +vt 0.491641 0.754067 +vt 0.591024 0.671248 +vt 0.627078 0.439354 +vt 0.726461 0.356535 +vt 0.726461 0.223859 +vt 0.627078 0.306678 +vt 0.567214 0.738538 +vt 0.499923 0.662966 +vt 0.582742 0.762349 +vt 0.718179 0.447636 +vt 0.635360 0.348253 +vt 0.659170 0.092219 +vt 0.710932 0.040457 +vt 0.726461 0.116029 +vt 0.436429 0.348088 +vt 0.737658 0.626913 +vt 0.593785 0.240423 +vt 0.568939 0.215577 +vt 0.690572 0.519248 +vt 0.806839 0.323242 +vt 0.759753 0.215577 +vt 0.737658 0.767870 +vt 0.690572 0.660205 +vt 0.568939 0.372934 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn -0.832100 0.554700 0.000000 +vn 0.545000 0.000000 -0.838400 +vn 0.545000 0.000000 0.838400 +s off +f 8/1/1 9/2/1 12/3/1 +f 3/4/2 7/5/2 5/6/2 +f 2/7/3 11/8/3 10/9/3 +f 14/10/2 16/11/2 15/12/2 +f 4/13/4 10/9/4 14/14/4 +f 12/15/5 13/16/5 11/8/5 +f 9/17/6 14/14/6 13/18/6 +f 16/11/6 87/19/6 88/20/6 +f 18/21/1 20/22/1 19/23/1 +f 14/14/4 10/9/4 21/24/4 +f 21/25/4 18/21/4 16/11/4 +f 20/22/3 21/26/3 22/27/3 +f 21/28/7 10/9/7 11/8/7 +f 11/8/5 13/16/5 22/29/5 +f 17/30/5 19/31/5 22/32/5 +f 35/33/3 36/34/3 31/35/3 +f 33/36/4 34/37/4 25/38/4 +f 37/39/6 38/40/6 29/41/6 +f 24/42/5 23/43/5 27/44/5 +f 54/45/6 53/46/6 8/47/6 +f 51/48/6 5/49/6 7/50/6 +f 54/45/6 6/51/6 5/49/6 +f 44/52/5 6/51/5 12/53/5 +f 5/49/5 6/51/5 44/52/5 +f 43/54/5 39/55/5 1/56/5 +f 40/57/5 2/58/5 1/56/5 +f 47/59/3 2/60/3 4/61/3 +f 49/62/3 3/63/3 1/64/3 +f 1/64/3 2/60/3 47/59/3 +f 48/65/3 4/61/3 3/63/3 +f 9/66/4 46/67/4 42/68/4 +f 3/63/4 4/61/4 42/68/4 +f 41/69/4 45/70/4 7/50/4 +f 46/67/4 8/47/4 7/50/4 +f 7/50/6 8/47/6 53/46/6 +f 44/71/3 85/72/3 86/73/3 +f 24/42/3 80/74/3 81/75/3 +f 43/76/1 86/73/1 83/77/1 +f 39/78/6 83/77/6 84/79/6 +f 52/80/1 56/81/1 58/82/1 +f 54/83/2 57/84/2 55/85/2 +f 30/86/1 59/87/1 60/88/1 +f 38/40/2 61/89/2 62/90/2 +f 25/38/3 66/91/3 63/92/3 +f 33/36/6 64/93/6 65/94/6 +f 46/95/2 69/96/2 67/97/2 +f 41/98/1 68/99/1 70/100/1 +f 32/101/1 76/102/1 77/103/1 +f 36/34/2 78/104/2 75/105/2 +f 47/106/4 72/107/4 71/108/4 +f 49/109/5 74/110/5 73/111/5 +f 59/112/6 55/85/6 57/84/6 +f 61/113/6 60/114/6 57/84/6 +f 62/115/6 61/113/6 58/82/6 +f 55/85/6 59/112/6 62/115/6 +f 53/116/5 55/85/5 56/81/5 +f 37/39/5 60/117/5 61/118/5 +f 29/41/4 62/119/4 59/120/4 +f 51/121/4 58/82/4 57/84/4 +f 63/122/4 67/97/4 69/96/4 +f 64/123/4 69/96/4 70/100/4 +f 65/124/4 70/100/4 68/99/4 +f 68/99/4 67/97/4 63/122/4 +f 45/125/3 70/100/3 69/96/3 +f 42/126/6 67/97/6 68/99/6 +f 34/37/2 65/127/2 66/128/2 +f 26/129/1 63/130/1 64/131/1 +f 77/132/3 76/133/3 72/107/3 +f 78/134/3 77/132/3 73/111/3 +f 75/135/3 78/134/3 74/110/3 +f 76/133/3 75/135/3 71/108/3 +f 50/136/1 71/108/1 74/110/1 +f 48/137/2 73/111/2 72/107/2 +f 35/33/4 77/138/4 78/139/4 +f 31/35/5 75/140/5 76/141/5 +f 79/142/5 85/72/5 84/79/5 +f 86/73/5 85/72/5 79/142/5 +f 81/143/5 83/77/5 86/73/5 +f 84/79/5 83/77/5 81/143/5 +f 28/144/1 79/145/1 80/146/1 +f 27/44/6 82/147/6 79/148/6 +f 40/149/2 84/79/2 85/72/2 +f 23/43/2 81/150/2 82/151/2 +f 88/152/4 92/153/4 94/154/4 +f 15/12/6 88/20/6 90/155/6 +f 17/30/6 90/155/6 89/156/6 +f 18/21/6 89/156/6 87/19/6 +f 107/157/4 106/158/4 130/159/4 +f 89/160/5 93/161/5 91/162/5 +f 119/163/8 118/164/8 106/158/8 +f 91/162/1 92/153/1 88/165/1 +f 118/164/6 119/163/6 120/166/6 +f 105/167/5 108/168/5 96/169/5 +f 111/170/4 110/171/4 98/172/4 +f 109/173/5 112/174/5 100/175/5 +f 115/176/4 114/177/4 102/178/4 +f 113/179/5 116/180/5 104/181/5 +f 117/182/9 120/166/9 108/168/9 +f 122/183/6 123/184/6 124/185/6 +f 123/184/8 122/183/8 110/171/8 +f 121/186/9 124/185/9 112/174/9 +f 126/187/6 127/188/6 128/189/6 +f 127/188/8 126/187/8 114/177/8 +f 125/190/9 128/189/9 116/180/9 +f 90/191/2 94/154/2 93/161/2 +f 94/154/6 92/153/6 91/162/6 +f 6/192/1 8/1/1 12/3/1 +f 1/193/2 3/4/2 5/6/2 +f 4/13/3 2/7/3 10/9/3 +f 13/194/2 14/10/2 15/12/2 +f 9/17/4 4/13/4 14/14/4 +f 2/7/5 12/15/5 11/8/5 +f 12/195/6 9/17/6 13/18/6 +f 15/12/6 16/11/6 88/20/6 +f 17/30/1 18/21/1 19/23/1 +f 16/11/4 14/196/4 21/25/4 +f 21/25/4 20/197/4 18/21/4 +f 19/23/3 20/22/3 22/27/3 +f 22/198/7 21/28/7 11/8/7 +f 22/32/5 13/199/5 15/12/5 +f 15/12/5 17/30/5 22/32/5 +f 32/101/3 35/33/3 31/35/3 +f 26/129/4 33/36/4 25/38/4 +f 30/86/6 37/39/6 29/41/6 +f 28/144/5 24/42/5 27/44/5 +f 6/51/6 54/45/6 8/47/6 +f 52/200/6 51/48/6 7/50/6 +f 51/48/6 54/45/6 5/49/6 +f 12/53/5 2/58/5 40/57/5 +f 40/57/5 44/52/5 12/53/5 +f 43/54/5 5/49/5 44/52/5 +f 5/49/5 43/54/5 1/56/5 +f 39/55/5 40/57/5 1/56/5 +f 48/65/3 47/59/3 4/61/3 +f 50/201/3 49/62/3 1/64/3 +f 50/201/3 1/64/3 47/59/3 +f 49/62/3 48/65/3 3/63/3 +f 42/68/4 4/61/4 9/66/4 +f 9/66/4 8/47/4 46/67/4 +f 41/69/4 3/63/4 42/68/4 +f 3/63/4 41/69/4 7/50/4 +f 45/70/4 46/67/4 7/50/4 +f 52/200/6 7/50/6 53/46/6 +f 43/202/3 44/71/3 86/73/3 +f 23/43/3 24/42/3 81/75/3 +f 39/203/1 43/76/1 83/77/1 +f 40/204/6 39/78/6 84/79/6 +f 51/205/1 52/80/1 58/82/1 +f 53/206/2 54/83/2 55/85/2 +f 37/39/1 30/86/1 60/88/1 +f 29/41/2 38/40/2 62/90/2 +f 26/129/3 25/38/3 63/92/3 +f 34/37/6 33/36/6 65/94/6 +f 42/207/2 46/95/2 67/97/2 +f 45/208/1 41/98/1 70/100/1 +f 35/33/1 32/101/1 77/103/1 +f 31/35/2 36/34/2 75/105/2 +f 50/209/4 47/106/4 71/108/4 +f 48/210/5 49/109/5 73/111/5 +f 60/114/6 59/112/6 57/84/6 +f 58/82/6 61/113/6 57/84/6 +f 56/81/6 62/115/6 58/82/6 +f 56/81/6 55/85/6 62/115/6 +f 52/211/5 53/116/5 56/81/5 +f 38/40/5 37/39/5 61/118/5 +f 30/86/4 29/41/4 59/120/4 +f 54/212/4 51/121/4 57/84/4 +f 64/123/4 63/122/4 69/96/4 +f 65/124/4 64/123/4 70/100/4 +f 66/213/4 65/124/4 68/99/4 +f 66/213/4 68/99/4 63/122/4 +f 46/214/3 45/125/3 69/96/3 +f 41/215/6 42/126/6 68/99/6 +f 25/38/2 34/37/2 66/128/2 +f 33/36/1 26/129/1 64/131/1 +f 73/111/3 77/132/3 72/107/3 +f 74/110/3 78/134/3 73/111/3 +f 71/108/3 75/135/3 74/110/3 +f 72/107/3 76/133/3 71/108/3 +f 49/216/1 50/136/1 74/110/1 +f 47/217/2 48/137/2 72/107/2 +f 36/34/4 35/33/4 78/139/4 +f 32/101/5 31/35/5 76/141/5 +f 80/218/5 79/142/5 84/79/5 +f 82/219/5 86/73/5 79/142/5 +f 82/219/5 81/143/5 86/73/5 +f 80/218/5 84/79/5 81/143/5 +f 24/42/1 28/144/1 80/146/1 +f 28/144/6 27/44/6 79/148/6 +f 44/220/2 40/149/2 85/72/2 +f 27/44/2 23/43/2 82/151/2 +f 90/221/4 88/152/4 94/154/4 +f 17/30/6 15/12/6 90/155/6 +f 18/21/6 17/30/6 89/156/6 +f 16/11/6 18/21/6 87/19/6 +f 129/222/4 107/157/4 130/159/4 +f 87/223/5 89/160/5 91/162/5 +f 107/157/8 119/163/8 106/158/8 +f 87/224/1 91/162/1 88/165/1 +f 117/182/6 118/164/6 120/166/6 +f 95/225/5 105/167/5 96/169/5 +f 99/226/4 111/170/4 98/172/4 +f 97/227/5 109/173/5 100/175/5 +f 103/228/4 115/176/4 102/178/4 +f 101/229/5 113/179/5 104/181/5 +f 105/167/9 117/182/9 108/168/9 +f 121/186/6 122/183/6 124/185/6 +f 111/170/8 123/184/8 110/171/8 +f 109/173/9 121/186/9 112/174/9 +f 125/190/6 126/187/6 128/189/6 +f 115/176/8 127/188/8 114/177/8 +f 113/179/9 125/190/9 116/180/9 +f 89/230/2 90/191/2 93/161/2 +f 93/161/6 94/154/6 91/162/6 diff --git a/assets/hbm/models/epress_head.obj b/assets/hbm/models/epress_head.obj new file mode 100644 index 000000000..4dda331ea --- /dev/null +++ b/assets/hbm/models/epress_head.obj @@ -0,0 +1,125 @@ +# Blender v2.76 (sub 0) OBJ File: 'epress_head.blend' +# www.blender.org +o Cube.001_Cube.002 +v -0.100000 0.000000 0.375000 +v -0.100000 0.125000 0.375000 +v -0.100000 0.000000 -0.375000 +v -0.100000 0.125000 -0.375000 +v 0.400000 0.000000 0.375000 +v 0.400000 0.125000 0.375000 +v 0.400000 0.000000 -0.375000 +v 0.400000 0.125000 -0.375000 +v -0.100000 0.125000 0.000000 +v 0.400000 0.125000 0.000000 +v 0.300000 0.125000 -0.075000 +v 0.300000 0.125000 -0.300000 +v 0.000000 0.125000 -0.300000 +v 0.000000 0.125000 -0.075000 +v 0.300000 0.125000 0.300000 +v 0.300000 0.125000 0.075000 +v 0.000000 0.125000 0.075000 +v 0.000000 0.125000 0.300000 +v 0.300000 1.000000 -0.300000 +v 0.300000 1.000000 -0.075000 +v 0.000000 1.000000 -0.300000 +v 0.000000 1.000000 -0.075000 +v 0.300000 1.000000 0.075000 +v 0.300000 1.000000 0.300000 +v 0.000000 1.000000 0.075000 +v 0.000000 1.000000 0.300000 +vt 0.026199 0.239343 +vt 0.079485 0.079485 +vt 0.079485 0.399201 +vt 0.292629 0.026199 +vt 0.292629 0.079485 +vt 0.345915 0.239343 +vt 0.292629 0.399201 +vt 0.079485 0.452487 +vt 0.377886 0.504884 +vt 0.377887 0.877887 +vt 0.250000 0.877887 +vt 0.388544 0.111456 +vt 0.388544 0.207371 +vt 0.516430 0.111457 +vt 0.345915 0.079485 +vt 0.516430 0.207371 +vt 0.559059 0.079485 +vt 0.559059 0.239343 +vt 0.154085 0.504884 +vt 0.154085 0.877887 +vt 0.026199 0.877887 +vt 0.388544 0.271315 +vt 0.388544 0.367229 +vt 0.345915 0.399201 +vt 0.516430 0.271315 +vt 0.516430 0.367229 +vt 0.559059 0.399201 +vt 0.973801 0.504884 +vt 0.973801 0.877887 +vt 0.877887 0.877887 +vt 0.750000 0.504884 +vt 0.750000 0.877887 +vt 0.654085 0.877887 +vt 0.473801 0.504884 +vt 0.473801 0.877886 +vt 0.654085 0.504884 +vt 0.526199 0.877887 +vt 0.250000 0.504884 +vt 0.877887 0.504884 +vt 0.026199 0.399201 +vt 0.026199 0.079485 +vt 0.079485 0.026199 +vt 0.292629 0.452487 +vt 0.026199 0.504884 +vt 0.526199 0.504884 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -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 1.000000 0.000000 +s off +f 9/1/1 3/2/1 1/3/1 +f 8/4/2 7/5/2 3/2/2 +f 10/6/3 5/7/3 7/5/3 +f 2/8/4 1/3/4 5/7/4 +f 3/2/5 7/5/5 5/7/5 +f 13/9/2 21/10/2 19/11/2 +f 12/12/6 11/13/6 10/6/6 +f 13/14/6 12/12/6 8/15/6 +f 14/16/6 13/14/6 4/17/6 +f 11/13/6 14/16/6 9/18/6 +f 11/19/4 20/20/4 22/21/4 +f 16/22/6 15/23/6 6/24/6 +f 17/25/6 16/22/6 10/6/6 +f 18/26/6 17/25/6 9/18/6 +f 15/23/6 18/26/6 2/27/6 +f 18/28/1 26/29/1 25/30/1 +f 16/31/3 23/32/3 24/33/3 +f 14/34/1 22/35/1 21/10/1 +f 15/36/4 24/33/4 26/37/4 +f 12/38/3 19/11/3 20/20/3 +f 17/39/2 25/30/2 23/32/2 +f 1/3/1 2/40/1 9/1/1 +f 9/1/1 4/41/1 3/2/1 +f 4/42/2 8/4/2 3/2/2 +f 7/5/3 8/15/3 10/6/3 +f 10/6/3 6/24/3 5/7/3 +f 6/43/4 2/8/4 5/7/4 +f 1/3/5 3/2/5 5/7/5 +f 12/38/2 13/9/2 19/11/2 +f 8/15/6 12/12/6 10/6/6 +f 4/17/6 13/14/6 8/15/6 +f 9/18/6 14/16/6 4/17/6 +f 10/6/6 11/13/6 9/18/6 +f 14/44/4 11/19/4 22/21/4 +f 10/6/6 16/22/6 6/24/6 +f 9/18/6 17/25/6 10/6/6 +f 2/27/6 18/26/6 9/18/6 +f 6/24/6 15/23/6 2/27/6 +f 17/39/1 18/28/1 25/30/1 +f 15/36/3 16/31/3 24/33/3 +f 13/9/1 14/34/1 21/10/1 +f 18/45/4 15/36/4 26/37/4 +f 11/19/3 12/38/3 20/20/3 +f 16/31/2 17/39/2 23/32/2 diff --git a/assets/hbm/sounds/jeff.ogg b/assets/hbm/sounds/jeff.ogg new file mode 100644 index 0000000000000000000000000000000000000000..1c251fc4284ddd3f70ef396c178492f60c3441d5 GIT binary patch literal 11082 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 AX8-^I literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_coal_front_off.png b/assets/hbm/textures/blocks/machine_coal_front_off.png index 3f819a1b3fcd16f34c9693bc34f3de04d13ab80c..88988d8af67e019acc56be8329a53ccea32d0412 100644 GIT binary patch delta 361 zcmV-v0ha!u1Nj1w8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0We8KK~y-6g;Oz- z!axj@>}4p@K*a;#9}G=;e#_A19XudidS*;G=IU}Q2;aJ$|9b)fJ2Ws|nsw`2gg-|xwSBucCLe!s_dyImy2 zq6O~xeC9YLmo^>_hZL`rlIOo7x3L9<1FD*=NajAQ3jn|m2dvZUp8KPL00000NkvXX Hu0mjf2TrEp delta 402 zcmV;D0d4;I0-*zt8Gix*005AYXf^-<00d`2O+f$vv5yPcO5QRS{hC~qp5()}RB;J6U3c=e_!gJ7XLx)6#WMe13 zY!Ss;R=;*v|45cE@|-i5GvaVKL~AYoV?|LQt+mv3jrX1`%Md~kV@$g-2Jbz2o)bbK z#+U%Qu0skT(x=U4^C#wykB7-K{!^{4Q^ z1AFh0wXLq8smNgGm1va&2`+ZL_$ug(CM%LV5gZQJ%B)>@jT0idpHilTUP5JC__ zAj>jhj96<^v~AlWfiw%tgQ XmvREZB$KC$00000NkvXXu0mjf#1NXBDgydK@Ab%QPf-!A=eL8C8gAoDqhcVlu|IWTYrOyU_PHeoGK#i&D{|Z zuGcFOK?X=EAtId5XGG+ViJ76Qlv0>XCPV~_#R65u%*eH%PB<#I_%sTEW$+`U<+s%@CN_Zo~@LL4@D0RXbfS7ZRlhQ&3!(X0T9ZTCidmilY=y z%$~pXE0`G*?dg4e3SNI5pab@B0#+TI_OJrz;QP-FFZmPIXZ}W=nC*JFzDluNH&RXuc?N-Jyzcfi|#RUDZ8Ha@Kv uKUI6orJwRPD&BF!7|uO>6y+s<0Pq)gX5uRAO}Uu>0000V%K#|(-7OXC2>?$C1qLmeb4U4uYiL%%Q8V%6ve*pd7hJ?cTf^x z(3NCeS9XvI^*D~_dE!K#fTj!~q7k}!t?DP>69jClfPx{(5|J|HUSet6HX^Nc0%wAy z<2XJap#StIXn&1H=;4n6l6OEg-75)P3e`j*guM}`aHGCf9MBa3ed#P+PqWJF_oR73VARDc=0 xMyj)u($`I|3qiERIAp0=q^86+A%GCV9kUDdZmJ{)W()uT002ovPDHLkV1fyXrg;DW diff --git a/assets/hbm/textures/blocks/machine_coal_front_on_alt.png b/assets/hbm/textures/blocks/machine_coal_front_on_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..fd3db8a9af4dacb3c7843b78d82e2ece67df960c GIT binary patch literal 526 zcmV+p0`dKcP) zF@{d3gL96_WWwcgq1Wr7thMy}eUc<$JRY;(@BhlaTCErkhg`2$(ljNo){G z9!1pdtExgNMOl^}RBMf@s){sCJ@f0~06Sm{M_|5#;}+%sJNWYbv)6`FiXe(2ilRVk z&Fj|#M`~wwzy3Sl;X%K>y&M1bLp5Bne59!1lp-)39zDlm>L(YAk>dqBT`CK7=~n7R*Pl(%*LhxY9o26-`+pH19dz91g5h8U=5cF Q_y7O^07*qoM6N<$f)H8iQUCw| literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_coal_side.png b/assets/hbm/textures/blocks/machine_coal_side.png index 68b17556c91a976318272d992f39d5e6c3d95168..ae621d7a011e1cbff85e53d60c431588b2811da1 100644 GIT binary patch delta 375 zcmV--0f_$Z1BU~U8Gi-<001BJ|6u?C00eVFNmK|32nc)#WQYI&0X|7YK~y-6b&@e| z0x=Lp-*}b|DO`bqhD)T#2`F-aHw|A@63U?>xOlM{lz};CcmzB0gXru4@QJzF`Dxg3`y{)(B zuDy^j5yAWK7w0p~W?%+CZy!Vi?mhyp0Hu`Cyz@D%*DsV(*zHaaFH6ugrKtUSy)^&~ z!(C|gXmz5aqHspITwuFBak<<^kSph<4z3Fr~>6x~QZyO}pLZ?OcfFqltQmgL_G2vsOvh9bV6j7*stReoJCX zC}*;YPDi+T3$gYppZ$>w*>UTslhNbNSDN5_mVg_X&eY+t4A3pY=m|Q!|)4m WuJ+F(s*dXb0000St59ac97VD_tR#Pmm&2u94fM&LL9d z2nGbmD%`lU3tRST$0Ws{6q{vi1PF|{7Oj7B50wU*^_NeF?W zC{Rj~Qp&e6h7bZ}SrTI;rIY~Cdf-rh2uPSGI*X0sVh)9~={z-qOkD2g{!UtV7Fd$ZZFSS+}^ zyQAy69>5rbF$U)x#+Y}NF|g8;$pmXHB0}4?hzKbqKL7lN2vij)1>Zk@0bsx1^ZfkG z;c)0x5D}KkB~8;%*EMxr12CP!#l@T$Bb!Z|?R8xjm`;13}XLO>rK9pSx4M0k37!Z`6t!Xb+m0uN{Rh`|Ih9Z@|IMARtl%gmKy!Ux%2AkFz?|si;G#X)yA*Do&F>l>Kf7nFtJzDGRgMOWV0S{I?-b2x} Q$N&HU07*qoM6N<$g8NAY+yDRo literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/machine_rtg_top.png b/assets/hbm/textures/blocks/machine_rtg_top.png new file mode 100644 index 0000000000000000000000000000000000000000..8e3391409d842d373a151478f8a63004fd0e7dc7 GIT binary patch literal 562 zcmV-20?qx2P)YTih=|zLbZQ=ANte>3BiXZ zN*|24-g!rBz02M0^daQT+Cm4GU1n#$-QUctIz2s=JkL=|VT@^pQVJ1aV@fGrUS3d2 zc|OzWbeK#gh={lO-bBO$W?9DV?JcG(O8}mpo(O^ftu+A7xn^yQ@eWs2#lyqHdT--w zx7!p&fpZQ3Yb^kET>~%}3@FQzAPA`Iy76mIk1<$lvDWgM#q|4q^zVe#uaxC-Ns=UJ zt-aSY0OuU5)e3;uET*j;RaKEY&G5r9uUX7^JpL;;9w3fmDryqop0a;RyiGi)(fdPIz3*yap4Iw;Z%uE%x^I z2s>Q>dZRP4yD7#P3a5Eo%sBq|nKVuPDr{>K5uzyK==_Ss&6L8e`MJ{^onLuzo7rsB z>bhoUX9sI7lZ(qHXmW8$nx;(?Z7vlN%=QbmTQ-hkq9`KI^CtV7@`Yjec1A=uQvd(}07*qoM6N<$g1Jck A761SM literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/rf_cable.png b/assets/hbm/textures/blocks/rf_cable.png new file mode 100644 index 0000000000000000000000000000000000000000..a51c96b96354a6eb45bfa7f5caec47189996c768 GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;7_BIEF;D zzP)6ab=X0qsVwFRfrxZ_>6zJFBwL}p)~PQk_m0ggL6gj|khP4Cs7U9wWl z{Qc{D*=b!Xcdh%)tN0=0x@rCU(%8spt^3|v&Qv39#U(cWNL*{rA w>#F}|6M~ZFrMD$&Y+_9AF+3&#B=WyA{9o^Rk}rI^8PNF*p00i_>zopr05n%*^8f$< literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/blocks/rf_cable_icon.png b/assets/hbm/textures/blocks/rf_cable_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4490d71e8621554a350efe09cc05618e90e3870c GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfwG@$+=)tTqItG0-@K*<+BiNiYOCIU^P#|;AeNY;4<o_jin~Wzh4+EZCTa!u5MXucIvEjF~O?uvHN&#R6s- z8JU0C85tAa2vsP^SrjyUJlxJ-;CrI*@1LjUZRg|bjB9>!9gN_0xZc9^!Bv?drNDI| UbIQy$KwmLHq)$ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/assembly_gold.png b/assets/hbm/textures/items/assembly_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..3ccdaccd0c7fe23ec119a71675fd4c82a39945c4 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfN-ZpyNY$0yAE{qjZY?AMDLW-$Edp6s%J``Wr?nMba_ z4vt{o`g79EgJ+!GWqEyEbe2BR;$GWvutB2Xd#=T&z(;%bJls^J5Mh4JPu`KEL+iGo zKvH4Gk&cF+`y6AfIp11;5Y5W{_2~M^GVuyO>rbWgSUfc6N=lTQrn)L9y;Jbg)IKM& zq};(p=J>|PE-N!OSttCnzVXeM{qe=Jwin`i8Nb;lFXHe13JMPfPgg&ebxsLQ06F)6 A8vpx^@~MYErai=qGkD5dnR>&Pa+RKqYhoz2hJx;F6L8Zo65 zlv02YfDjy$L|cH#e&6><({ur0jN!l-NEm_!!J=mXZQGhlDdpl(9LKmziQx6}15W2N zX_^L7N?fYS3Xm~oiGi;WUBc;G<0qfT^XYc*t42q-UO=Ab)*^jR^#X(tI*KAM#04?{ zA%y0fTTYZx-su3a2yH&OEKAdyFAe~#UGr7-28~Qx`6nZIW&i*H07*qoM6N<$f@Mv7 A=>Px# literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/assembly_lead.png b/assets/hbm/textures/items/assembly_lead.png new file mode 100644 index 0000000000000000000000000000000000000000..d9077e55bd6c59857fb74dceb0d9e53b0c7201a0 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf%Kdd458V9!@9*#P zM~)on=;5z%l{nF|jx*BO$f2AyO#Fb!|394Niia1z=Lmmb%CHP55hFM$t>=TovjZmf z_5XxcoAcGQ?s)R~@a`FG2TUGbI&bAU-Ir?T%DGa+>#k*nk*gm{}GqRo`la^ zZ~vE+P&nro j#&INTp5A-A=C9%dr{Y|`{{e02@-9=6IQL-rJk_%Y}D(? zC-V9Fk|VNiH;O`FcKj^cL@WGy9*2UfiAKdEoja7`+i$4hft?qSRF dmoE(WF`PT*e0P(YemBr_44$rjF6*2UngDrAt56otPRi>8l45*rF3O(&5+K{B}e{%!w)i)-hMp)O*T zE~(8V0jtkJ3}{fE=-`j-UIeiAh0mLoQW7>h^jZUBNCn85 z^1OKk;7|Nqo&ez2nz3lijm1*vTiR><7@yKxUQTZNBe{xp=PnM7Pw-4T} z6a5D|H((IW5>&%bO6fR`$+C>1C;&*)RKV`YmNF-7b|}k| z@A6C30LSt7W`H0FwC8y^j)TZ0pW~6y_KdUzp?E(jP`Z$%00000NkvXXu0mjf*Uo|E literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/assembly_schrabidium.png b/assets/hbm/textures/items/assembly_schrabidium.png new file mode 100644 index 0000000000000000000000000000000000000000..a0be71f9a330eb0300a08c5fafd7b401de72fc3a GIT binary patch literal 309 zcmV-50m}Y~P)KSPLKi5xp00000NkvXX Hu0mjfx!!%b literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/assembly_smg.png b/assets/hbm/textures/items/assembly_smg.png new file mode 100644 index 0000000000000000000000000000000000000000..40a59dd8c4209a88ead4728f68884b916c1bad35 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfprtQu2RP)NklHYbB`aK@}tH|@S%k#7Q_3$ugHw@bC_pd*Oyet!1>nQyB zeY?FUQNY%4Q4|2&?-l@KjC(vx0T;39;lmob4`-DXZA(*CVWii-6Y;d+U4_j;F7QTy^@+P3F zs?`lFRW|`rN|$BXCL{*(04b#_%X0M-W6Y*HK(MrD<#8N+ZF$=B5&cPg0W?HoNupk9 QX#fBK07*qoM6N<$f{5RSeEe3!8KEbUdp=%ut$OQVs3=cSuI3?(Q?^s{~^c{nztDnm{r-UW|__}s4 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/casing_357.png b/assets/hbm/textures/items/casing_357.png new file mode 100644 index 0000000000000000000000000000000000000000..3a11a867a2dfe6a692cf6361218925e67963d813 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfFVdQ&MBb@0ESmj A$p8QV literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/casing_44.png b/assets/hbm/textures/items/casing_44.png new file mode 100644 index 0000000000000000000000000000000000000000..439189a43481ad1cef380f51865b91fcea1cb2d1 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfpUvk4l^Kv@ZuqdOnu za2o2xoRWwrIAvg9Ao04}sOHz7?uVbJ-?zB>poDQ_!VakqkFJ{Y7(UT(Ws695bn5AT z`15o=&;0#=(tdmrZK~W6xlyXYSoNNT%%}PN(|P53m(7zdTqPU9z>s*saJJdE_GLil OF?hQAxvXzopr0DpH$;s5{u literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/casing_buckshot.png b/assets/hbm/textures/items/casing_buckshot.png new file mode 100644 index 0000000000000000000000000000000000000000..abcff8db185582b8157eaab9ace4ec7ecd15b749 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf*Fr>mdKI;Vst0Bf5?e*gdg literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/gun_revolver_ammo.png b/assets/hbm/textures/items/gun_revolver_ammo.png index 37d74f02cebbc3cd1da2a9937014f2d696e4327d..f3547c6df35a890fddb58256c99d007f6120a7a3 100644 GIT binary patch delta 198 zcmV;%06G7W0`~!sB#|)~f5HF&4#EKyC`y0;000D02p*dSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E;js(W8VM(0D?(GK~y+TrHsK1fFKM-O&Gw00UU!f@$483 z;8YCY9t_|#)lbr-0W>K+yvuLjTZqWSaAdsS2(-IoI0A^J+?Bt`aFlY+SLG|x4FJzc zEP|9yeE<^6z`6B3^}pQ!I3O_vVm$N#NGwkWB&I+JyFLJk<>`P#6~MDOFrxhf-JpY( Y2Sw1GLr#9gwEzGB07*qoM6N<$f(4;i;{X5v diff --git a/assets/hbm/textures/items/gun_revolver_ammo_alt.png b/assets/hbm/textures/items/gun_revolver_ammo_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..37d74f02cebbc3cd1da2a9937014f2d696e4327d GIT binary patch literal 273 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;C1rt33 zJ+nVO$@hV3nmk<`LoEE4_8jDGP~dU(l{nDCDAR2G@r?w}gAkqvay$=AuKHhE!f2vt zyXSQN{pgMpM+#E*+~?S`JH>*jW9gl#`%e^1DLNPaRQnPy!+D*iDSovKLZ=Vx{A&Ak z|6K+P1w+;(n=gzWI{xe`%N#g%+c9)Lec9k5dSJ7q!J@y+cNa8IV|TqU*V(V`$X1|h O7(8A5T-G@yGywo3o?rw3 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/gun_revolver_cursed_ammo.png b/assets/hbm/textures/items/gun_revolver_cursed_ammo.png index 318a70da4da0dc457d984869fe32401995c0b3ad..0b2aa0496d6426fab024f002deca12f9eb830a7c 100644 GIT binary patch delta 160 zcmV;R0AK&^0lfi`C4X~5NmK|32nc)#WQYI&0CY)2K~y-6wUe<8z#t3+FHuHg1LkA} z?_r5KXp<(2Xm~@SyhLUH`E3dKS?B$R+LXDJ0zl4r*tOUcYJIw+uOkD)#(wTUiL49^44efXk;M!Qe1|}oQB=dL0VpU@;u=vBoS#-w zo>-L1P>`6JSE84fTB2a0XP{^HrziP7P)&}fi(`m||K6U9oCg$mSmz#k&olYv9W~=+ zc8UU7I!7G1!=Jp24ZbS$FyjpW{>q;BjuuQEN}GOobsbqe`M5-PaEkObi*#W|{f2PiFuC diff --git a/assets/hbm/textures/items/gun_revolver_cursed_ammo_alt.png b/assets/hbm/textures/items/gun_revolver_cursed_ammo_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..318a70da4da0dc457d984869fe32401995c0b3ad GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94rhj;D)b zh=u>&o{O9Z6nI$Y9(vC+`Q{xp<7IY=0$Dmo9Js@uyo?RLD)cbp4FCShp7)LxOdU#_ zesmpKJo&gpcW{dIHH&m%M&swq6MXjZRd_Kfonlv*StI*l3e(>2H4KwZUS~Z2zp>-H e^#)$cEw=xkwq%!7us;FX%i!ti=d#Wzp$P!{uu;7L literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/gun_revolver_gold_ammo.png b/assets/hbm/textures/items/gun_revolver_gold_ammo.png index 0f28b6663b6c83306729b21075cdf86358207ac6..57576c19225d83ddf2498212e16607beeab76780 100644 GIT binary patch delta 184 zcmV;p07w7x0qg;gJb%Cd01m(bYSxJf0000ObVXQnQ*UN;cVTj60B~VxZgehgWpp4k zE-@}OWJg$10001LNklJD zT?}5&oDg)icIF`)pcQ~}fH>U@wd5cZ;2VhD*TDev4Z>qk8!^o32$O&vrcUrM4e;Ab mfanwe%_RVYK=k_lS|Sfo)voj02dmQn0000!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94rhp{I*u zh=u>so<`0F10I&m&3ac`S<(w!Uux;!kKoA_m?hFT>G^*a2QKqBbCx&s>^#bQ(mLn8 z|D(1to|xXCGP&S#t`4q}6&@}QB|c3}{ZkfPYiLlO_vbK^w^xDu?OhFv?fAHLyqTt5 hX6oPQzAS}U5*;#NHa(y2wNK)lVpmfP5mJT2EId#q8eTe3=9ksC9V-A!TD(=<%vb93~dIoxC ze|nPd1J&evx;Tbd_%H3b$myWS;TpY)S8AE1%%YpOjven+_wZW4_Iz>obCWc^hkb`6 znh);Hz9abOQRVs$>#WN6wJ-KQ&dxi_ARr*PX6qwH52fYIX0w7CIv~thK?&z1`5lBT nWiPZaS?ICbyt7VdlelA-qH)snWt@o(&~64#S3j3^P6!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94rhzNd?0 zh=u>so{O9giX5)dt9YfBS;{QBdF$BmUUd(z1#Hh3cRx2t(|g!=NTT`R-t0Sqe;!q? z@379Qd|&%w@8j&evkU?Pf@`)uV)Rg2&O9rqp##QBI48;PAY>_fp@qppkKN{-bwZoO a9lI2blcq1@Ol*KwGkCiCxvX{!{JaE9E!_u0ZxJ89M~47X_E>P zczj;+M7KMWHNVDM>u7jt0X$;pBS|Wlx0eF>f)tLGu84weEK(c=mIN##0d9xV%VYr% zFrAiFzkmWaedT3H!uNIJ1;7+o761U}b*5jyG7vD0Gyi!fXUmd+0Hh7$uVc&(=LFV5 TlHZzj00000NkvXXu0mjf^rBKF delta 231 zcmVJw`c>!T9cyIgfJ7NTk1Qu3hg>(xq$!x002ovPDHLkV1hfbSx^7~ diff --git a/assets/hbm/textures/items/gun_revolver_lead_ammo_alt.png b/assets/hbm/textures/items/gun_revolver_lead_ammo_alt.png new file mode 100644 index 0000000000000000000000000000000000000000..3834c6de943133273513ded55e264316b3842709 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+L6~vJ#O${~LCF%=h?3y^w370~qEv>0#LT=By}Z;C1rt33Jwt=FTwDi$ie`Aa zIEGmGFYVvR%VfyoYAnwj5a>`YD=W$?D|&jv0pG&2XC0*{x2I@!%{{cN!s_SA|Hs2! zp6JJ{yb{IgcK@;0i{{tqagV&-U%jd7)}VJkUY+sTO;I-nMunQ{d9!EzZxdV~F5oBn zVw0FbJNJ&J4_^y2wJI4Cbu03Jzqd|e>0v$dkV&B?hR;`3Utx~chiQjdj)+%jhBhZZup00i_>zopr0DD7WcmMzZ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/gun_revolver_nightmare_ammo.png b/assets/hbm/textures/items/gun_revolver_nightmare_ammo.png index c2c3a5e445f0e789b29bbc96fe9ea11969961085..d532c72b918b10f8638bee96c812e7fdfe497bcc 100644 GIT binary patch delta 216 zcmX@f_=RzTNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8YLi4xa{lHmNblJdl&REC1Y%)Ao4ywnl}6Foyc(-ilJAfTF5PZ!4!3;(_S)?5sR z94@*!N3Ur|JpY$|JJpFLI^CW**yYnajrne&`hj0;(iwMLyR}qB^@L9x!wjJ>Zv{76 zPkLayKxoFz7zPQ2SMTO9+-3}J;tN(6@!@{;&AsVfJu64UJ>xoSCG+J~A#>BtZL|Q| O$l&Sf=d#Wzp$PyF6HDa) delta 173 zcmV;e08;<-0m%W7B!2{RLP=Bz2nYy#2xN!=004kVL_t(IjkS|83cw%?MPEzq>=EA3AR(9gE6(xzX+Q55|F^35s^zou2s#kf>TNWD}j&fTALq`Ujk=6TEHk>M9RfYvi1#ta^nQBO*cw ffl`Wkh2PHyjEO6?s}41H00000NkvXXu0mjfGhtMX delta 168 zcmV;Z09XIr0n`DIG=GapL_t(Ijopzk4#Xe~1cw+YiYSO*!2e&Ck}5LLb;`OoI3dpyRVC-lec$d4UXTxG WN+_|a$#*{h0000bAD@)Gl+2^TMI3&(GA}f5#g)fj`|#W8f<*)Qxu>b%707*qoM6N<$f{yxC AcmMzZ delta 187 zcmV;s07U=t0p|gbG=H8+L_t(IjopvE3c^4b1SiqN_-P?{2tiL$NI(QDdmrC6wUzio zifHWQAmaH1ml&*c+g*lP`1@ELrS>a;h|~gnSD~0&5n&oGSogM0h!b$-$oMq_;O^z^ z4FGQbnX+@Ko6vO?tH}nd9_T2=EBl-d`*r|;Q57@v72Y#)ZZw=1n$#N&syrZ*9Yt7R pjA?HW#1%=Bpq2x))*spYXx{XyU#4i~7YQKQa|7I2`?hJRDfGtL5*TZJqkVxhvz%6NN`VS*A;@DY+fn7Ww0M zgzVC9+6^67m}dVlVx2a5_&T81&)Y%PFgUHdCN8V dn}0Iyec7(^Q0&Tmd!S1hJYD@<);T3K0RZMfT7Uom literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/gun_revolver_schrabidium_ammo.png b/assets/hbm/textures/items/gun_revolver_schrabidium_ammo.png index cb5cc71f36e9180850f030e71aa566db1b788af2..8186214664834f35dd0a02a8222bf41946382988 100644 GIT binary patch delta 187 zcmV;s07U=z0q+5jJb%Fe01m+cxRGn^0000ObVXQnQ*UN;cVTj60B~VxZgehgWpp4k zE-@}OWJg$10001ONkl pObh(?lwfN}fZ>z?0kHN=L_W!lvI6;>1s;*b z3=DjSK$uZf!>a)(C{f}XQ4*Y=R#Ki=l*&+$n3-3imzP?iV4`QBXZEKj`94rhnWu|m zh=u>soT4_Oh$_BpT6 zo#EpY{vX{x7EkP#)^d$|eoa<&fzplR9qbA#_sDEm!W8}fBZJD+>CDqY8lt+{6>L9c oJ#f`fIR3NYa1FbiGtV;a$J6d)OU_*VALs%GPgg&ebxsLQ0Li9Q-2eap literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/primer_357.png b/assets/hbm/textures/items/primer_357.png new file mode 100644 index 0000000000000000000000000000000000000000..c20411ce761d777fe3f9a7e916ae9c4fad1ed8e7 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfz>% literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/primer_44.png b/assets/hbm/textures/items/primer_44.png new file mode 100644 index 0000000000000000000000000000000000000000..1b7fd54357812de94b840bcc54f818929caf4bb8 GIT binary patch literal 187 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfvjm6 z_*u<@@C4=x-W}h6*f&qoQ9eB1zP?~p;z2cz&AGpqmbBSFFUU?yI3V0{^ytz56X)8N iz6zO><<8j3z)+vBb>iRqo1h-kFAV7$1o)*0aMnC*a!|C{s#iJXI$;jT~C7khO|BtMs5S7>Fx8~5cZd(upO*;QRPjsxAs N;OXk;vd$@?2>=lhPw4;v literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/primer_9.png b/assets/hbm/textures/items/primer_9.png new file mode 100644 index 0000000000000000000000000000000000000000..e88ab382f981dbb407781eab70ee6c5431c0b445 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfM-mV&xB|ys=JYD@<);T3K0RU|pLlXc1 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/primer_buckshot.png b/assets/hbm/textures/items/primer_buckshot.png new file mode 100644 index 0000000000000000000000000000000000000000..701799005b6a405aad6b2e923b2bcacff1d5b0fd GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vfr0Q=U!;7VC0X9sbUOg4cFs}b9B11z1wWklF1?;n;q(&ovjg` zv}WBZarF|$j9G3rGHr|v>t64vP3B?vY*R0EB!PRH>%rp4vI|ouC7540ry7y{)|#VP zMdQ^0Ub*8JU;j4rz4J<{p)~fpV6I}=U8hCOQ&c_#G))otQFb_MbP0l+XkKKj&); literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/stamp_44.png b/assets/hbm/textures/items/stamp_44.png new file mode 100644 index 0000000000000000000000000000000000000000..17de2d75166a2e0d40a3f9d16311cdf000056088 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf$2eozN#(}u%%7aQQ7qlXBIB;<|(`D z+7hbyu9p8mq0G0>Y)irlzqT&o^eXVWDHgQOk?Hzb)}jqR4eoL6KeX-*m*xSNf34Ni zau>2NUx|8spjO8Hc6DaLg(ks+9UpFdkFi+&>Xym!d7rsiKIRFYGWXjB^aq2dtDnm{ Hr-UW|NAYLT literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/stamp_50.png b/assets/hbm/textures/items/stamp_50.png new file mode 100644 index 0000000000000000000000000000000000000000..5192c5a467798e52bd2da31ca2c48f9834af9973 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf#%}=YrT`+#8^(2O~Shb^dGF;+hATG_<>95@xItCnzMR3RX5Aj-haMeZp1Y4 zyekY0L0)ASC72m5M2XibF)>&?w_`M|V1Ax?=+$5TGpnB`b+ib@1lO_J){p=5+_Yq;_e?IEFSGTNoZbQ+-vk zK;ioPmdKI;Vst0RMGi A^8f$< literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/stamp_9.png b/assets/hbm/textures/items/stamp_9.png new file mode 100644 index 0000000000000000000000000000000000000000..11af6984b04108de5cae39cd78e057298b326158 GIT binary patch literal 264 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfKr7xGh|HCM_HD~QBjoto0uP}JJ L`njxgN@xNAfQ@J< literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/centrifuge_gas.png b/assets/hbm/textures/models/centrifuge_gas.png index 5367218d30711207390352c3536ef60f83c4bd12..9b56d8796857e7c6414565bd726e73ea0929c30e 100644 GIT binary patch literal 25613 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 Pz5$RA%ChCsrXl|e8OgmH diff --git a/assets/hbm/textures/models/centrifuge_new.png b/assets/hbm/textures/models/centrifuge_new.png index fb7f75de8ee27f07160e9c5c8a0e354b66c91c7a..629b4803cc3b637068bf692f86cb28dbe8549b5c 100644 GIT binary patch literal 21514 zcmd3O^-~;O*en_}xF)zR!Civ8E$#$|K!C;F7Fpb36J&AAn=Gyg?h+h=B#T3ESls2~ zt9$SNaOanEs-~uD=1liYKi$tvypER2Yuq=uC@3he)l?PrP*6}`rl=^`uU>`^UjKc3 z88E!%)eNv-wh(OlI205H6g5RTgMhrl4)gz55a88o)2vpX>(0rsoE-0zr!3|_Ggi$k z=4#y-T&(W$*j-x#M3Mb6yfLyQ_z{vA%;~X`R1X#_CGAB;);x_{pqYU zqsl4hSLOcx3l0`%wXN5`tG|7(?mQG1-1$xU@w@-^cSHF1dE}FM7bf~E zd@4Tc?r_xq&n63uM)Xe;tGDkhu_K5|;Gw}P<^{&l*J1G0tLSPMY{runQ9AI^LfBCg z?D?P7lY^C1%Zl;i`<}{&F;w&*S>tDq3C3~^5%yh))5<4Hl^=$-e<@qz zd=aJI)t8IDR-mq?&}TNP<#1HaB>|KwU*k6Oi~J(PjZgO-ymyVuUp#W-Lam$*TJC=S z0$^>>pHz5iTn=U@YkdH2fN&f$M>;udTuXF+3x5vHWt?*~kTSYIfOEX2@}U3WfTI4b zDH)z=s2&)5B5DYS@6`O>1I?Yk`x^(cl1=~$6;<1HOd59G|CW7)ZxZ|dO*dPn`&^js zgfrR#XoCmVx>Efu6qfuN0VBR=s`u6Et3d8gx-5&Mzgl7sx<$EDy(Jg%ylbL`KUU6a zicAx`diC%Wv2e-KrAmJN`X>YLKPK zV!$$g)z2ODICp;}0oHG{a9o`jLPfvZ_=0NUVs&4)_x^_!d8@|1n$+S%K18-o=0Yef zs@rA}f~8%Y=sBDhuLXZ?W5f19D+XsNsi#3^4K&1!E+!*`Wm(vW2>J)h?&Z;q0;bIU zClBM$rJZcO|G_ICroTYVSM>VjNJ{W2WyChiXSQ}6?YrhhR`%k_pO^g4+wM=>e?1$Q z9WU>Jy-Db=4$-UFx_L-Xr8OfvC)#)_M@4_s)cIeUzs4iLx9)}wy0CSJKNb-(f6~Bx z!?y-p|AOiRT;vJvL_#`vgTa}0tDe;g!o`k-RC(XfSA^d5h2JwYe?G4|hL~Sk$y_n6 zI9JQf-oh#u;X7g%alHNWb7T>y4$|FJYPuudKBdA`rWzZ z6ERG(rCHi&wc|DZ+5-4-0f}Ebs-kNlv2q>gC$0>iEPi_2FC>aYhF!OzXDyN5RiV1c zWeQcsuHTiYwH`|}hvs4fyWHg~f$N>kIL{6x$q@@pRlb@(6Hoob6%RB&>NE0L3$_oU z_%VKIZ8VAP^t=I0J9r7vB95yLs4IghE~Q};!3efX3GV7A_sdX2J!4kCrkaZDzrw~V zY)8BBIP+I054Yadj}Xh^6*nv1|A5>dL<@l6Rm@P@X!vG=*xwMUxhpG?+z=AO!OmkT zQMJ>#>&vHmCks%LQ+JrhC<+fRufI{p^{rRy;7shzz3S&Xe;`R1BKW%t|Gkj=F)8Qy zYs+i*i_`MoIPIf~PV%tr#^ZKW#JU#Sn#9ghg@|v~T^rEKql=>-K?go)2|H-QYRia( zJ1&TL!dQ;8;(5lazt4*{Rh1kMA0@WN>vV00KfWNZJ>ayYuBX%WTpFX6;GXF(=pJzq z2AhDxXW_^@qB)o>X^+Ab{=C{28=J*rC*gj-G||(eEi-8mA-}6&#I;S3>wC|Aj6W)P zdx^jhOn1C8sK4uT>y_SuUaMxf^!5Cp!T0SU5&QsInRX+hGCUwn2e7y50M6TUIkLKn z31U-U@T6Y|MPP%YgXAc7cTztErCf>_`g|gtd$}k>{6#_ujY#2+vO7E{7z^kqcdCqM zo>mvQ?}aE^{H(ha%W=XZrydWjH$1W`-lJU*WWIOC1MV0!rTQOHcXBSaa@};+;n?`9 z!QTC48xQ^O47ektHY6d}o=h67G|Y*1cm@+H*3frl+HFN~YCZlXM6DU|SRzR30UPL^RWJB`Tu&h^ z3R}ur2wlx<`}VxwzjrWp!2E50p{g|Xm7aga<TY%#C3#q0Vl1^XLs9HAFHj1jV~?loE*BI4!Sz0 zHJr{ajAcY`C364zFZ;vhPb#SXC8R}@g=1l$os6m+JY>)s#4;kA1C8sZSHeL~FU<5i zZXH=E_p7O%y}D-`a!zUsd#vzlyAk>Ow+Xl}o!K!Sc;nzg2HYNNJ#FGo1{Rny=XJp` zePmSwSdWY~8A9k?!QJ=9z%P$00&)J?IEQ4f4)5h#X*@tju$0SHo3;c=P*TOg-?`2G z^H#Cj)&t`qo##$G(3s0*%|YPNTZ`Ofi47}Jta*ND)2_}VTuTNiJIrwVb92{RnZBQM z<67g$+W6sD&4YSPmfmHA0Wwq{SpC}H8O?2fcR!J>WL4!E6k4enEj{z|V6iF0KiW4F zOxp(+fOhV})j(booz-nx&izBorp7?zrm%qj?Tf*8~oqeq7$(Ib5UiriGYFcD?OeUU6jp1t7+hiHzPinWpO*sPHGM)k5cgYl?`2OI)yB-ycYN?y+SBL?9gb}eAeS1!1e89tGB-# z%x`)NzIYilCk<;%uJ8ke8VJYuF2F7AGJn?ABaQc4(`w>Y-**`-aIQSRA?~U_&q|6~ z07gjoIbd8nG*|Vx+@lHoaRo&opzphIK39ZwRNK)SI*v+Af>(pTwZL7>?lYd|p6;By z4|E)PE`yzBw{xoz{r~+H`do2vSb^ygd!x|BSjKKYd;%v8SZ1$H`O!t9i(H>>B(v z6lqtUz1*~r^)~{yi=iL%A5yroH|}-UaBy634<;&6XGm%YD$_;U01Uir7cmE=l{ zo%#KssQD!)S56cZSxqtZLr`bI-<<@M8K@8LsR&C7ElT7U`qtL=;j7le{S?=J?vlvk z{Ly2pmF=a)V@t(>>)DvmjFq}&;4|@PfK1KrFi+!wYx0b)WD0|_&`fu0-_A6Wfa@RK z+~|ueKJyjF#^6;9;7o~&CTOCn`KnDI2I%^9Cww3hIO~om;bBFD;32YU?lZc5(P{)C zcVckEc(`57(=wKSXak(cy7u;;0G9RKQNp6tEuJNR;&;;85z)1*uDD~a%N7cMy@-~a zH4wO_^I+D|%CO<+&3#(HeZ~XuF$n3-?w3j1&YkC7^=TZ~KSv4N5w@@+eKo&j{4K@% zGITcg8AzSo&fMX$X@a{Sbh7P+V4d}PtsANJb-gWi{$F=!op$Ver)wuLFB7z2xd2`j z;oNZd3OYguUe{`WY@VoVId19n>mb??{y1NbbJ4R*1OCx;&FO;SCW!7r9k#AlP=UZN z?l<09-fLqIyEF#-9%Nm>yYAq@n<5>}Snhpn1Rb42(hCSbSNQ#s;icu==)wNiqgG%S zC_x0x=%zIX&yIr9)NVv9UMoZsHJ21&c}blj7GDDTAR?*Hq!1_im6&dtr8RjeYUjSX)^3Kh-4aB&mS z&qj-JI7{lcuh_b0=sn=H1`5$772;f(@$W#*i>mik16prnDRaNy_HOIdj9)GF*R@ok zyIURQ{uLqK>CEX7c_Rx$7A1O$6hDo%(PRQY&WIr9RwK@*rlbACM&3HFYmCg4b~&q< zaNHb=-vqB~(RIHFge;Z zx1v8S7kpv0i6RYWYsNJ#gs+Q^y%(duRkC?XXcWPUPillI`;pxh7^USaovPXOBJx4llUT@&j2B8;cXt%I1$*&d+AHssP-4AL+=7> zo*N*WCk8L$>!~j@K1oFVc?b)MmVTtQbsyiUQGJ#O1b@y0bGnwH3jL`)jt)z^GrY}N$lRz0=$D+I5GBpO5zn+EPTb`)b zU+=+xF1K+%7MH&};aNGV_B$x^A+<58JN|dgI%p9ertfq6F88l%WDpnxsmIZ6xwX7Y z`Wf~pQU%|W`b{mHFX#Si3Ztg|8tA`bT(a8qh`b|Palm3&vZJcS0rIvVEc!j|dy{UO z_#a8EK+VDm7hG|tU&$Yr(x6s!#bFNC7|e(H+nbu2t@bbeLI^;2gBzOe<*#mHFG zC$h~Ezi}g#5pqI7sBTN#sov~g`iXZTZ;T(0BSGbUl>F80du=II>N>!0L!m=$6YVZA zEMHsXK|fqDrggIDcyia9Fx224;qtrvY1xG28I&JhlSW#5XN}mXg?&%EwDYw98-ovM zd_fuIqvB1@t6Awj%L{BK$?$_EV7|F~Nwy;C>|rhzOaK9F`U0dvY44Qoif4>_ZyEXb z8rZpPPM?Xb64r(Zu|M{)OVV7OUvXz;)34tmo=zPuCST<$ z-?tEMF1`YpMS!bxh9z$NEp}Js4$Q(qR`#%j1uWo9shZN#_K!~;QJr=c3l$nwq54|G zz!T1{Gfwx_A`!?_6mWjqO?^Bp(c5xJ+W6uqa>8H@cr*m8{bpsY?^?Ry|ECm@QoQ2- zcwe!Kg&&~*qZCyr+9p?8)W-b&$HC(7E9tsq@4C@HhTt#288E{GsukO@B5Lm0?0w02 z@$66qBDS&0mQufX6yo&0Ik`AxPVY~rdDcq}y!uiDn_VL~+L2|;LNtxlHKEDyZ%ANY z9_*q+{&U^2E!x9)*JaD9di8px!gtY3&U*y-8QF1#@;nMg)&z5~&cr&>4CJbQg6j2u zLWB4-48Ujn(-RavTb=F~&gTNu0SOylY-$o>&0Ny4AI|pm)a_aNbUC4Vik|8;LsXLT zswHB|0~~4+aw#M;K1nGgP%YKe)O0<&j=n!MjNLgjtdAhMS((QhLFuOl%t6ye^>9NW zmZjLs6jik({)hYLb#UwH)^d>lTBql#i0dZJlD%u_q*_AL#`5FJ&G}K@9Wn5NONmbR_09$2eZ%o+SMZ{ZFtBB>yH|LI-pQeQofZuTxR{pb9&?Z=yvwVwiqJ||A_^vyPR`J zzB}!D9rt-~b2=UESbEd2$GjZ##@LqtqBH7nLgHeKV_F1NEIPqZwyr7%Bp6o|>Zw*) z8d6YD6h=Vl;(JwN>*;vOy-1?ciod6wo4D}L3$*13;j2qzu;6Gan;4LJ z3lw-r<zkjLpZ_jtkeQPxqYj9u?%A@hiwFqCv{)rSHk2Q?!4Haoh- zVu|R?1E6R9bu64-m6y8!CUw$Zy$oq&-}`r{r)Ly%v}yne_>LMM&pCf_Z9XJU20mQi z#Im!OmEw5jML}s&?JDrbZyURVJ+Ob(vm`Jj@te4`@R<0FqC5?*-n>1a_afB3=`34h zd-qU5cgJ>NV-EyDh#s!opZyLNzwa~!K6RyJto~`!_cJDy*GRr5;2;k(-8bf-oku2G zr@B-{b#z_~^?QaKj2Q~_s;A1@ddP7PZ4#-{@~i9R{nyUPcrsyAsemGnn@1_OnWjOi z5F<4VsOmG1wREO8{bG|;JWNStH@v;@u%`Wl!A&Fc@N|8fo+`a@vyRS|sQ}4HB4kVY zytV}0Vl_e5&g*?))l;v$c6C8t5(uZ{wQN_Gg+Xx+ek~ye{VaEKkh7B&YKj)u&3l1! ztNWWrt+6$Df@$iVgBX4h=P|160bFQud5WWlUH>HTcA|3g69DMH#VcZ>WJ%UmsHbNlc~Lq^ObYOGdBwuiLzA;ytkvE-p8}J|<4p+3b3u z0A%)Lg(Ub&-1JNOq@(6n{k&&X$A-5n!FST7r&Qm_&?arRe&+1hNB6Bqu1-V^*)?k_ z(}@5kHGP8&9kN%OZen3KWKiW#KpWR#jpmegk8qZF<*{*m{h$J=;ECxG4pSq(f;@rz z31YLfeqvIooqxVsdE6-~%`@j^Ugu@E!FB4SBLwN-SUV*-9rrVm6g`VQ$0N03% zBHx6%0i(&IrZq6E^)I{HM~e#c$7@ig*L=Pet@c9701zxH73JF{T&(upxZ`ndYIgse zXRJQ{zg6WuFnvEE5l*xsk(zItZWff0P*xR(fGMBBKr@47%Yi`}J6b#coJwDZOq|zJ za_8(U0|tA$ZL0NU2T&DPn(ZmUIEg=K+J5dt%MvK@CW1^ALye5tz(YA@GKE-=-)iY( z?E*3#kR-?&_>qIsyMot}ud84qnK^|iL6Utw_jD^QHnq_D^Ty${zB-H3f zEbGeHgQ9{nr*WGNLwR|53{4w%^=sQ_38R#}KY{{#4!7Uz&@=<;EIqE)P$$IdZzH2( z35oPhR{rQ0xby^T7o@?^T)54!l85TBNUimUEEbS+o%3o<(%)~tTfp9}7{62Lu z$%}g%nU!UnCj-_pGOI7aKUQP}?09F0G5YC{#jqrt*2xAWl2fpAGSpU z-$^1Z%uV{Z8ICZ9jLuPU+mg4gG!L>x8JBGu zEd|BpXmkD+6xIEW=!2M#5gA+7`(ZkAHr1S8^?ladTTGRBsYnT~l52nTZf`1xal z{wejDG|=Yea3c~{VsFz;j(2z~{Cqbly*?6Um%yc>KJ+IlmWGZlBP-^4^Z6k(DRzbm zav`=8@9%-JA`qU%YjwP5C}d|I3@#k%-24#RnbA6qvuIy}59xY)ETET+-biY)r#rzI ztza@-k4b6Fn>8YZnW&`vWB%+mmAHLOq$oE`Y8^o zIFR8fvC-3~PuKMf&78Gk+l2NBDf3p3B(2|rABOVsCD$ekq;~dNx_~@Vyqy6Pmvea^ zc0%q;Q*UlkpTcF{J;y1U6-WkjM-4g3Z5&`T+GZ$PSINQCo+_Jt(1c=8ua$hJz*VyJ z8y1d!uJR9{X1_w03()FCFe#}?6TEuRRl$n=FT&}0l^qJj?xv2NqbO#Xc!dlzrBW`9 z8y&@?NW>fzODHJ=sMpskIwy0H>td8nQF3@T&*#&zxRzL;Lw+GT`nBD_dxL?GPe!yNT45 z7zJO@KeInvtvBo+Oy|YEFA0`>z11@s8n;?lsnL>ZMRIr7i*w9{ZsYz~Yb@8#b+w zFgeGBRcFz#M#VXGppkXbS3cJHAc}Kw&)kyI>=~*tf!iJ1-1EI#jq2(ewM?ik4Y5+L zB1cl>v}&mVBu>ckQ<;`(DHR!6c`=s;O^QLP2V38Nk?9(@IfW1WLstHCU;25a%T{_6pwV}FO6uN}`eeiT(Q+XuUk)*hR0z#YuszSmu`TOuA4)>RBz zy)#z4mfTx86K=!jc`upNLW6ifyiUd+p9n1`0s`e1VmQ(^v~T@m+AMrZM3&k{pO91u z1*A=ECJmTr&;%L~&m?@-E0Qx&al`M$fiywSlQ{he*x6Zh`!Dw2IC95g4L$r$1t;DP zi2qB}4!F1=_M|yKnP#Sw3>&_uZ`aOaqtZVql{uwNNnxX*p)DQFa1T3q{q&Dere}j+ zt0=m=ZQS_0`Xy+Xn4FAw(rdkUxUf?R1;&X+HwPpBnHtzV02vJyEi`^=Z&(qBAy!ZP z_@c#9(%W_iZt(5rDkvcnKhT2UF%|BNBYNCzuqM zt`;;~3)AZ*@1i z+G93K2)^OSJY~ef!eWun9RH}9!e#>Rc{{Q4-a#@&JdH!1}VSWocFd*x29BmE<+u!VDD0B2#xxSkepXD-3g)h z`9LhWvAqfgY~>`i;-hUV8IAbVZOe#Q^fCY=0g~Hm46MmQCQ%%Msw4@OEN{L7sP(t; z5*`v}%qHl%hEksvTYeU-6xkzkwtwz_#MUGC^bCw{Dv;#$)GCH_qm>Jfc~3sy4}r&S*7fP6!+zafysNDDF8ZKW z$(l|Cu*c>%Q%GW>$Q>e__>vxxwh|oV^=my~?DQ11F2jj>J&D=MUJOnI@S(B$kVJyn z%#~wlb+$Xg+<87LGyb(O1a+o#lgjwx7>^avr;}!DA@#Ig=ID){5%kV=7TyZ)O7pv{ zW=s4JqZqFGp2j0wZ859gGkoZEqnqstA%)GsmGt*1@Yiq=;6!(Y8acI=|*Q1 zGlr%?DBS_K=@akcV6G%v02OZXHWcKDzWgy4b}a7TsRE z1d;=FC{$6Mn4Ld;#>SyI&573A$76UiHdRbQRd+@2Bc3uADa(s4l~AvvYdrVNEBJrC z0O*XuW(uDuJT}z`*(D#>q)Gx5b?q5?a^8Aj8Hr^8db8F*34&i(XuZYMb0%;pCb+!m znkWAQEmK-!GWM3lil9Y?jYxpj8>(qT4~E`(BE2eC5F$HA37<`gy{4>c1|JOj*lwQ@ zxnlCzWm82oR1wfO*m(Ba=i(_RONsSs!QiVM==|yUSLEsLx`OR%PXT2Tb&xoggRXTw zrjo8l=D4o9U0ykW%TiAAO=bnZBl}m$u#339K6CO6tj=EwK$|iLaQQ=Qr6= z{s|tPnG80Z5+NFTTAi%~m9&xWT+<)twNld!x?{5-L|dJ17m;L{liGfko^g_Gy# zp7$t=LbmK&l1_88!Gj@6Sa7y;{we?fR)%){Q{)&F_ z(Pq!?1>8v2gwB`r{`{(Z0vUOa`|QgPzq>`O3`vaKiLjtIaX7F*i@+GBZgDlsVL(F-daWut-&G&GhwTX7jP1t?h$&YPl@^YVs0v z{95dJG<5uQtTZV@nrwE1rNm;X++M#yb1ORL-B8x}1f5>HQ8eQi0ZUJ)4#ff$^NYGB z(4I^SaJ4L&a}r0AhyDCDO%>&3oviegzjPXVUA?SfQJ~A>S38Frb@#u2|6F96qxtUZ5D-jx_B%nnJUldM zTwXv$Lz|z*LcIAxGNaL|-q(o(NuC)cO_oLvIJv?rOnD_A#)#E3Dwx|dvu6a_T9wsD zl7BGd(0KTGk^G7#*Jub11UHZAR>;PYc_a;S=t6aJm9UkL_t9^nt!|>1S9`OFbS=+8=*{UmmbSQfXg5IZ zbj33yr1xTj^+h}{eXw9GR~+Ks)E(>T$*u=X>#Aoc771bPWeWl0H{wb&XS-z$6v;ST zbvIlihzg>j&>2|%1<-%TQqseOt!zaEBrD-W&?T#td>yNnRxweKZY$2?rlO@M8DfT9 z*`MQcV9LArkVP~E=rhbhgn)r(yHZaVn@H}R-+qxd$=t7k5Vch`w)&SH8ke!g(s97S za}ko8tYlSoF|0b=U^GoOQt6v?eziOjCEc_%OWV=BokA&QbFQ0{$7_z&VAb?2G5QQ= z2s$~dDs`EEMv|(^=D+W4X*`vgLcd=@aoOb!8Gf?Jl7CX9CW)*cK+}g}+r-ThSC}wB ziU8ayU)iC7DWWMaHGmokZ(qWfs3B72PmyE^^^GPj9`&+q*q>-8f+1v@Y&d4`^6>Gp zn|o;KQ4Z<8BMg0yqbi<^pPOHES5MhDAYH~TT|mM4HgZ!39xFu#{Qxabc@I8mY(wvU zy}q-xB)PpfLhzOX#)jYNXAZB!8NV!f%$Rj4>{N4#J0hmu+ghsO;KT$bXhzZ|y2q;s zhdL8J*oqDXW;Fn3G}GRs28mhTV8WY2^Hr5Gz7#r;%mU*c-bwry!po7Fb!Z6Zqm&ASA7p004QdDVaMCADHsL6;e@#H!&z$ax`DDi{nb2Ox>rfqcL4Pn(@nrE54WnCM?;yM(8C-HUtRoh~;>M24Z^3 z>*6YBG8+gDuEj%M)x?pEzewN7g3uT@)rI4zu=kNXb%grX<^f${g^`_)?)4_0%rDX( zLggXAn^vMrw&8Occ9wVoOu0rAWxDpS`}Bz=aV3D06+yb>^mk^*=hx2OQ<9TCSub|q zAQ?7RX%tn2JcnHRILAl9r-%F1&4-7)^K(3cL99HwLVh)6jaMWkB&ni>mrx=ol4N!Y>PMeY6Dl6}5==ps+-5T)bFaMQF;2R=B~M)aD5PyM!-q zb6iv2$IBv0+_YO*H!7Lqc$$KJ^P5*i#f>;I7iw02yS-gip3R1Xjb)IWU)SMDzT28) ztpAmdb7vhzV{_iLV~+;JW6r;arYM|h@p>w0ktr#f*8Oqjd5 zxtVCz{0s@4c#%9WR#DRCCRY3P31g<15+06LS_O`!stjEM2G^e1S$0jjyt9o&Z|TPyyA_r5wMSxQ6A}!rrfiE0gO(LqsymG( z-;|b$E8x%_vetsY=WXd;tKa31yQL-$yEzV1nUn?3h9<9Wn;vqng%^^d5JR zb`0_!|M#^}AVFmquyHYB=jQfNm6j$iJ;jtB= z>Ir>!AEMro{`cf^P>S@vl~6*vTZ-bQRdJxJV4()$q}kO7EO_$sR01|dVx&b)KS29y;Ec%Ad3;w z{fG7ZTEKM~xR^YYEqk#Cz>QWYQyzHZ-baC$H(Bz^S~gJ`YrveyS!-{wv5@P`_P#xf zeDNy0p3V}+#2_(Q3&!@Q1gh;sn##;C_B||>Oli?}%rwuOL~=bqxKO}qOAM=FAW2tf z<8SXsl)gdk$;~13^pvrl>vkD@(e?87OK4*K^APhV@tN*&DC_wOIwHeTnF!5AZyxyf93=LCA7MTLmGEiR8Oy z>W0pKa#necGSNqmDoAzM`li@hE?Fnp)n)6FVVb#YpTBjh(66?%^a}GFd2zm17=daT zNr3!+=ZW6xc4ER%Th0&m1h>9xEO@ODm+QgpP)Rd1`UHt$6Gzo_)Qi$g;Y~yua zj=P`U?CD!df_r41^TG0!!V~7MpMG?9+6r~Z4kW~rjNS_;E1BP|HA#kB^jaFS)qmTr zeQ76QFSFRVp2Ji<80=8(IC7>K9J|0n7jL2DlPoVvfD%%@8ky zZ2H@FkASZ4jhn;uNduC0FW}GT&2|t^WEzrCWdi0_tVuQOIzRG5B63w*pYE%8nIsF|E?Cmkt>JlNtL#BQYZ==k%)wo2$XT zW}T3^Dy4D)X3h0Q+;qGmvhin9ejuytfXS zE!BT91AYash7=aw-xfOZcgO`y?oAW(rf8dduq@h)E5&leu97E^OSc=v*m*sXQ^jfA z@df)gJLJ_7bpVL&syeAd1lCa%itzOpMsKB3GA~Z+#6YN&-bpB<{C%K?edPZ#N*naA z-b@>iM%+AJ??B!BZ{qdJ`|Sp<#?K_kUOH4a-^QL|qihm8{MkJrCp4uA$w~Rnh*&j= z?UR!Y~b7W8*+IGx%MkJYtOOettr~BXz@nyF3Ox;w zrx{8bvP(%#Roft=9r|EtnE}iA$uA~Zeu<6g@JUUXS=lqmlE=)8P4)D}kcXsUeh3yRZu^SvP*Vk8$;BiR5z$iQ3Xv6_~h_L6kofq^6c0Zg)K7%`l` zF*;SnZ)T6!Yl;`19%8N9`2~*0f=^Y%C8SuXQ^SjF_QlrMGuf#KvvwwPCLLK+hMZ94 zam%s-T>M2*MR4+)zTMBQippgMtqND{H{C&={T%RN62$O@%ArR@JrUL+HuYG&A-5C< z`8)-caX9|%lb(7)FNw=Yh_uRGn!IcBP-{2FS$%kUd=|NQ!)+4m#cZP9R+7uDDD#w; zp!W9gP|RRc4C;RgCF9ea^OTEqb{$8)YPwes*W<^k0DvSaik|or%=s!`2;PqZE}#!V z2@=w;9EBzI{_LjJ~2cdxS+CM39)HY`{kzzGNH|K`<(#jR> zRhL5rP$ywYCG0(D(#{&Yt%o>G1-seBACp+r_f+mbARcbI~D zP(s}ukl2l1*<>H6wa3+<6f-4vnOcHfB`gu2t~<81%g0C6i`zG1FArs7Da}qi-{GRb zt1w;&Kzgo}600&!2{6SoDQ}{u5NM}S)RM4f{`;jA>q`eg!IDrPt{2zCo;k&KluDHB z^HVIHFZLDpuyTDceRXmJSXu7*kuhUaGRQ1SN53kIm9=yiZ)=*o2u{dt$3y-Q70>xefo8J z%27HE@qzL@>f@gL81u+?prNN{CL~ZT&4!O=C1pZGI;{)HO-Mrs-lZ!FFeNMNM2bcp zI!AcqUU;AdwEOHT)(`Ih_QX^bI%IhEg3tYoGO)Y$}BTQ8CzbwdSK%fH#3CjB|(V6?^f!$_=mYO zSs>Vv_v))HbzUkPFBLn-z&ih#!pN>o?=7M9`gTKBQVP4+i{MX+*JkgJ<(Q=`^!5!L z$^5D<=S+rHjNw2{@g}gossLdm9sX_~qq({>jB<8yyS4V`g{4X(O!cPP#Xm<7^mr); z%X)0Osu~d2$Tlj-R!aPd zjQ>rtn4~0&8dH1ASe7{Ed__-J+IU_0|BB{=EJ{t@tgC0eSwI3>G0UG2IW96=S8=J( zZcnf7fd)sK!UD$nJkzi!6|c*{o?gn3d&jWI19+m2{8(@!w3sR$N+zPn?I(hI#a(QK z{vAf%Ms$a3LDE$9$n%sO+IY|hxJx-d(A)*p4l*e&5*hreJ)7Wdnf2lsQ?WY)4d!_h z?9fKz(D}F=foN8PRVvAUascWxe7;@PJlI!o)#;M#zhdBvcHp--d0EJh(uMkDn2CRA z8ZK0pmOeCOI{?bX@@QV-#cUNq`m?nyD3)U?;G_Nu_)J>n>KvRrGEHneS?GPWmGpdv zd@^2Y59!II5AHoZ<=?sWE=wzx{V#*cF=zZEL$hcPatk#iXP0S-ZM^uk;oxjJYx}o= z;5o{v?f%N<`*$xpscW&@Ig!}8^|iweJ!1ld8G1!0CHP?x(G~))6v(2Z<=5nmimn%X zQ8{I_u({0+^_pdA6Ba#<#oaX{m58X2*T8*|4vv6ql*EP1Wtn%>*< zQhd5>>)$1w7G2)SQP%@4olKx&hT`rB<48c{c>xQMSTDnYdZkTg;J?LbtlGq_KQY!< z>%Ob~ACXa@Gs@O51Z2Ic5mJMOZgLAa4i-#%zu-f#)BQJ%PDOy zg=gCN3ty^vn`g_DmMd!7{Bl{CB!rJL|wDx zNfCVO8JI((9eTK!d=#!|a7j48TqrDL*0Ot;rjk;pqNTB$lmtK2Jf}6dgNIdQE@w5Z z!g>zx-jL(01V2DttXdj6FOL9xG$_)eAisU!Q{F6CZcJS+)G2HFzt<2 zLR7R1H$oTT)*&8bUj*<@L~bMpGwn9|i%La{P=)^C9Fo9SMdzzToe+*h&5rV+`RSpJ z*)l~4NGea$ z)CqhO^!Sa9se|Zff+pTy0M^%I9RoH!2O>|`0f&g#zIcAUA#4tQhxii;c56T1zSBMx zs!Zl2<^MQ1_}xUaSyV)a7G`%Uhie7w!twd*Bp^FUtKi3*g%wxje z!qMD0M;4k8LcB#OzM7@Hq=?VE_eH;a_BUO;T*E%+hl6f$?(In&Od|;=Yq_}na>!T| z0ndhCMuD=LKYg}MYY7-_8-0p@@xb@xZ1{CDSg7pORO1ZQNxnW@f)7?-V)X=V>D#1p z%AKV#8cS)puPKpnz2Vn3h9%H~)UIdhiT?k@m?kL~$4)21o(aX@ODUuZSyBn%{2SN_ zIem0|@CRRatv^5IKPMue9<0_+Y90(bZ?nJ&LdnEtg4FZ^`O93SFx*Pck@~k4S(G2b zo+n#^+^#8Jxyt9C%+n$!tU^~<(w#DE*E@Au_Tb=!zA_8Dhwrw9Z?m#zHu~$y7T;ZC zL>T3^3sLDar3Vm;JbgIECz5=Sx2;kcz}0pU4tQcP;|=7vf?QWz~sNjaBAEloXhykgYRiMYCK*iQ)6 zXi-^Up-yek3RZ>;4qH8~xm(7(JQwAM?Q2ORA3I#}@0!#{?+L- z5j!z<#96^8EbGJ5EhhalxbXBTN~O%R*Hwg>lOp7v9h^~`sZe?O!Qz8$ecosy9-HS_ zYUrkdt>f){OXqm7b|KRo283;t){aqEk55{ncf(_X)Ls?v@!cN<-6`^Yaa7p%F%U^d zYjqdA%QvN!?W<+}kH5X{q10*%p&&%(LFW}QY5-*m8e+$UmcmZqPbK*}dP_yN!M@+O zlPa0v)_);BP8_4=a~jh|zRii*DE2(dC=gQp|>y5Gg6rJ3|zVqP@0J=UbbGInHo zfwW>jj*&z=9v-CK-vo_Y4WoInj>V)9AWL~wtlpw_1d_b)ja};;G@*4V^fbtsb3Xsv zDpJeKy#``=n9DwX&$3&NLZ49m#X;@AQ=1;RH8QdG!AK30iKs=ksIfl)U3s&%80Bk| z&ChBA!!VL6Pm&U+rfXRS5q++>&Fqqs{?oX?e7eDUU^CIt>Es_TqVs&0yF zkrot44cNtJX74)5lYN3rN$Mx)jGdN%T$5Nrz$;d#PKCO?*5~eDV;%Jx!nma z1l?dU$2jILJdWroQ?IDp><)*fH=?JcY>RDFXWqsRNT#+`MOug9&i|1>nk_{iYCxqQ zp0RbyR5?xQ;p>f4zVqVW+U7X?$Kr&cg^ioZEa}7@|IvGje@{-`GA3GMkHz8a35%xd z8P$QzPwYyMseBMmg&$8%CHi`C2EsZRG<4Jh(~CgP$~FDpmfRP#gX(Ni4BvOrMJx_} z~e~Y?1q@9WNy8xENKDe=z7zMxH*MUz4PBOu45+t1%_9I){MOgvh)}6FPf9~by1Dtk$I_me#i259$bC$?$(gW ztT=@xZ=;pH2QkA=oyq+LOyxMM!d*-OlE``x*&h3fn}#^SFJ z)2Au;))uPOpM0(I!xw1pt!Z_SMp<@U-U;!?-wC?Bb;;a9?%U~uhr*4AHKO#0QuWs6 zUU97iOVS~G-y5mNFy%YM50R=-x9<-Ub0l99*u9P{s@M3}BT*JLW4>X+fE}-rp49!B z%sZBnL_Y`u;FIX=xNpFL0oMjJhHh;8W&z9i#rR_R2Oy;ai^uS-_ zO{z0Fn3BMC`N!$4#Su+r<7kcIE@c@`ayGx2N*RD5|2?ecxse>Ff3h$;HMl z)a5k2^}GQI6*8sKxd;LmR{2G~Sj9zv; zklLI$jyQ+j^=U@EUBpfM{JTn(G&&+k6BgsU^$r~KEb~NT#z<=l?+trJ5*Htm^*mM* zhI|J}EvnSaG?=wI1f%N%9#M%ZL7Tn$3P^=89}$IQ%9;Q609th~nek7qLjG7t_Rg0n zIl8WpF9K?|Yer|Fppbt1-~R&m)!tu6vFL5FZYd34re>K2>m{r$TamQtO=kpr38a!| zFd`79%!q_yKcVk%;mYZLQO#M)mmPHeNuph33w*;$W#^$KyN5#Rx38OE5_!!ECsUG2 z@U$6af|_kpDH5A$Ku;D2(7rN@i785`lrX!Rt}(}Vuc^l_)a>?{;jJ)3Y)3WMp0v6} ze2Axh5zk!sBgE$>L#6IQhfJ;oT}QX>{yPRerFDX^Tw~O7twSTO3+nl9W~_1WBJ=pf zvWlQTEU?QUvU|0qwPbY6vKx`!Q^92@5Ekm>sZnfs51JTxdi7ZD;fiR+6g%Zn*8bk$ zN>gQ$N`?Pv<=+39Q2alDqeF+3dx=mkbD2x-CqiVEdoCMdQggp%n7eY%ZEnpacS>XK zb17m{E*rUz*_ebTW6J#!KK=Ur{ri5r{)YEYujh-d7SEM;^4*}zpj^_Jy`?dYH#xWD z!SWY)j8fIATCbbt>I3dAWNxQf1oKeKb`DG_Bd~Ffe z{XWB^2QbhUQH^ZSovw;ljaxW9e(wK``{F_C*-A(fP38X#9?Ww;-}XP*P*P`W#fSes ze)OrmXoCrN zl)x6GdMWFXEo+@xx>7_qux_Sc25{o9RRVp9Blv`X_?E~Q&dCfl@3wbyh4Cp;6QRnE92My0a}Cr;=7Z#8@v^#k5_k?)t=1cb);Tx@_b8K`??nv>I=hYr$g*$x5)V9@=jUD953;c%AXJ6KK`T9?*+W5CS0c;joNrgHM0C@blF zTa=wyQCAA|u1-_~E<;!Iw?fdO*|Pi&{;!L?@0_!0QK;i|5>=ejp8Ba}_d>&cp4Yv} zzO-(IakP_APrcU}2h?j=*N-vu%$#xLb0jHR*9cS&xwXHx2}r3p!*vBxe6Qg@J-ZQb zGh%Y{tY-dS6;i5iI7#jKmb-|Hd#>2n!-3oynd+3joaOTgUbeavzgN95R3&n6lxi_L zk8idYg?NUIZ_8Z&cyzQ~!0PJC6U%X3)j}uT+w37^=n-N?$D&c9F63zfQk-o0kHa>d zo=4d;)nY8`U}VOWz4}aKQ26h~A$@r`vT+&oMJ-<;ycu+T9dt+k)+R}0_dM7fSXrQA z9p%%qD^7Zcu035P4KCc%*Iz^#w`1=}c^BJN(BtQ1$t>t>ffyV0Z^)i<-z#qe>m{*% zC5sb9FYuf{>&~m9ai^yp?i_+cOtQ9;o5?gopKJQ$U$yHVb8eSQsN~TEVPgl9f6*tz*&&8g9?8P(_0IJLC@yRD!I64B}bY|QFn0N(^joN31G1$$!)4^BPA z)NU%2)S|@#&Jd>PLG`B%^Xt}G@0@7^3PR61AuMg_D4R0(Pi5O%PtQMCd?3t4w8x!I zjhaVBM$TQZ`-5y6#&T#1Pc`s=q=cPSdVLr?`zm)11OK<;&&uhI{k}H;f%%lJe9sGy zm~x?>pZKoxJ-c6{;yrZf_3ZHdg!znQhKok}TWMq@%?xsQy0jz_`OM6?&^LK|B*5#q zW$B?sxNt3TNh+>5!n7_yij&1jxf&arF%Nk;b7o4U$_gqVYZD5d3MmngN3eV|*bUYa z6gFVrlKayUHTR1ymIdza;tb{pT`F7J^Fo{HU35&Dp!9 z-~9H)y+)6y8u=~~y$^mUi;DeuIbrf$h$Q`8Ap80?(z>GnUf7aM0sb~&ssk8efzg%a&wU2 zxKd-&#E|Z^b?Ve~DJl6r_2&MGM>Df!fum4^&?se~b37|{{>jxkH|FN0tk`4-_|@8E zR9Lin_>mtX`;kd}azUdDN1vknxIvFqKv#mpF4G0R(3%!KYmT3XqX==3N-djENT00v zen70eb}af5L&RnOa9RBxVVF`;w#x3;87l?^YGc065@pF2!+xX;xWeDY`ePX9V{Euo zwa~q47uQb)E>t(dS5dtjxvhK=&62*G-doM^*{SPrrG65Y7YpxV(TtF&*fPr)%)<^; zaQ2P}y!x%PA_lwwXC+;~)SLoYlASP@{7gBf6sC*$`H2=PYWtJiQm z%SA({RRqtKCS9!h2_CDs;FWppUHxZHAYbq0Yj}5Rex8B@utLA-n!nG<(II_NFr(%> zw)wq&541azc(cvAGi5DFVT>c}DX+0ZMSdp2F~G9|JSF@w+-eOx5Z7w3zR#7SVSw3dTj#vwDR#Wz+Suz{F(w-^Z9E5p~^<_AopGu@A zeMoi^`82cec*?;!__=C5S@nr^GI6Q&lVafQBd45sYkwXX%XV*ifpY=d-QHBD0xoTB z?)(>HgfGs>?fOrb7If+UZUSM6&A;Ghd)hI<$vdYg4MfSdPvfhCG5I~JNv5ihFodxp z|3dm9%DyfIQ2LI?5~n?BiRz)sYjc>^xA3puy`^pHvDaB}5^ri>(vgUbj#itN0G{-J z{PhiNW|Ce%H|cQkxb_28>}`S@>T*sUcMvxL{#0E%ptOsZKEGaD{>y424ftPbdZCez z91CihK00f4EL<62ekl`L6sqT}7V7RjP-&EY)Jpqt7>+J}Fye0ak8~(2@UmqV;5)dV?@G1Xn}_EHh#Z3)Z3q2<#E&r|mH~@$G3~R_ z5NJY5@R!S@t|}jgx#A+vlU^W2NE(C;dG-xp#Of$^VGCv}N?&qIfI=?i$|&i0C)>m( zW?d}>4R6rrxI143uvw}32#4c*Ij(Q#h5U$Z2w(gxk3AQGXnnb+Bo`IVMG57L`;h0P zd_@ZxrpMIlZLMOGmgXVV%Ee*CX@{Rmpekp=mCIFG0yF{%eN_yYQii$y#Y~& za)z?i1p|*lir<0d_L)K5nCr*dK={N7q`=;zg5Qt-4M=6J8Fo@Ib1K`sR~M#*5G)%%OroSy97@30rc^#YNzl!j7VFLAch z^R>IT+QmS=0%pyeROs%aPlWWO8`wuV!)L?fmhYl1;*!tUXyBn;UXF;K07$K0J?H8N zNzoGFzV}ZwH)A9`gvUInG#i5a9(LY>SMhLPT$Z&Ts~S_p&8iz)UH*i{Bbrkn1!F3W(HP#0|{q)^U6 z9ZwL?$hKL@X-==lCaDIkKW@kkw7SR|>yKERAM|-H>eMrGtVhAk{E*Xfra_g2|EqI> zRRm61_&B*9Cg|U(%c{g{+^h5J7LvMujsxr!X56=3i3MvCTu8cD941B<*l?x1p==V$ z10TisaTf|S&hX(0J9w)uT7`4gu*TgNji@mDGB~8%{z^43cd!^+3dC_pz-`=A%mZWq zG=HVNm*VF(N*U_hH03f98+M=QrZLI{xclPsO%q(0Z@b0=h)8AIrXQIq+m7kzi(LY5 zwJP6VefT5BQgU+h+#vjSXW*`>&h1C``9#weT@_qcvX||@KRWEU{qm~ct=xqh>dPat zZCHYHWx($%R`bCPyfFP~3hf{sX8K+Q)++HUGK5(UupoHYlkRk;p2Jm_pHSj6+t=~@ z>}p|BN0g3dg3TB;->HjJiTcs7z>$Gl&QG7WQ8Mxt>Tv?&2R+BTq z(G5D^NC!L@;snhM9284DAKDi_XK}hJ7_?p=^*9;*5=1JOugNK}?09YM=G7wO${04! zU&j+d+v=B5a{_lHotL@ncWQb|hKYQFD`a(`<*BhS)dkmlHC3 zV7Vs;pCt8aMu`5*h$AE4ECNlx_{5INO$1vVZ3737wqnO( z9scDn5T5Nxj}6*ew+9u?G8IQYZ~qbfE_hbFe0@<0;$-s&cDyxWw0Yq%dz;!>VPWX-=TT4nC6f*-^~*zghqMK${FrqBGvG|(TJ zvpSoN@Y{Aw#26R6Ut6nUKEG(-lEoEMm#DAzwn4d_$rylC1YcL1D!uY-A4ws>yl^!hB`d{L3ZuH6$#6S~ML-{&|h;`iUnXKj?~q^6?}WT^oSclxGw4n{ak&~IF` zSY!K{t-(o-IGM)W;<(+eI`PKosw+#*;(t20xLho47=e4b|9IcHr$ROmmmJs_$Pk02 zDR*~w_aAqv*nd^p4ZosQX@%ib~th=I-SjyIPQ@YDa@5K>@Va*Ou z`Bby{0^+6}=ZH$)oR1g{0Tmq(rH8oNbq{ zzdRNQWdxT}*Lzv6w|^d@&lx?y_bUc6_iecJjz2F zr-?+Do}Y=y=2ZBIU>}>_%fa((B(*?o9AP*I_1{2G8;yl1!p2L0nl;)w29H(s)q_pg zLR_olGQPgTpPH7AFYsvYeR;Sur>eOFy7RV*rI|CIS@7*Md3&C5_KF8ba;7K!re0pt z{N`~nVrPT=eXq^mCaX_#jsik=qh}voc*VPSRBVYH51nz?47WH@$t+&idREcCx2!in z6FV&e3x;oDv%Dy|xynb{62>5quNwoIC*3}vs?t#VN_*}a`XI+PK7vC#Znx02P&P|G z!9MxSg<;Qc^G8kZ!}7{cAnDF+)m+gvrk$ADTNljMB@x!+9xtu+>t|6nw}*lv7RHlA zB#^-M-pd>y(uo~5Y~WzXg~HR5#u6D0{GC8Bc`#qfc6WHr`At`r=WrEzeW4*cvB`#| z9LsDNRF9Sndz-sh^SxR?vs!$~Jkxc#TzXCL11d*Bexiyh{vinW%d-a>s+WFpx_5xJ znrOH<2A0OxW|IY$o63Zf{G45^$avrkw~nhP6r(J<0L~a0Cu}ahEng2Y)dm)c;sk0^ zGog{2;7CFcHDJE>w(T2mVU_3W|F8Tw%Q<6-VhL~u;0pu)j(aj0fy@o-4V+{D2c}ST A761SM literal 31711 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 diff --git a/assets/hbm/textures/models/press_body.png b/assets/hbm/textures/models/press_body.png index 62c11e6d3ff1197b02e3910163a9f18567dda11c..48139e4fc0104141a485a992c318890ed82fe849 100644 GIT binary patch literal 6126 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 AHUIzs delta 3047 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 Cb>ABR literal 0 HcmV?d00001 diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 7f94e595b..7385067d0 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -333,6 +333,7 @@ public class ModBlocks { public static Block red_wire_coated; public static Block red_cable; public static Block red_pylon; + public static Block rf_cable; public static Block oil_duct_solid; public static Block oil_duct; public static Block gas_duct_solid; @@ -850,6 +851,7 @@ public class ModBlocks { red_wire_coated = new WireCoated(Material.iron).setBlockName("red_wire_coated").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_wire_coated"); red_cable = new BlockCable(Material.iron).setBlockName("red_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_cable_icon"); + rf_cable = new BlockRFCable(Material.iron).setBlockName("rf_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rf_cable_icon"); red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); oil_duct_solid = new OilDuctSolid(Material.iron).setBlockName("oil_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_solid_alt"); oil_duct = new BlockOilDuct(Material.iron).setBlockName("oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_icon_alt"); @@ -1342,6 +1344,7 @@ public class ModBlocks { GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); GameRegistry.registerBlock(red_pylon, red_pylon.getUnlocalizedName()); + GameRegistry.registerBlock(rf_cable, rf_cable.getUnlocalizedName()); GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName()); GameRegistry.registerBlock(oil_duct_solid, oil_duct_solid.getUnlocalizedName()); GameRegistry.registerBlock(gas_duct, gas_duct.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/NukeN45.java b/com/hbm/blocks/bomb/NukeN45.java index 363774e76..90855e18d 100644 --- a/com/hbm/blocks/bomb/NukeN45.java +++ b/com/hbm/blocks/bomb/NukeN45.java @@ -19,6 +19,7 @@ import net.minecraft.block.material.Material; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; @@ -45,7 +46,7 @@ public class NukeN45 extends BlockContainer implements IBomb { { if (!keepInventory) { - TileEntityNukeN2 tileentityfurnace = (TileEntityNukeN2)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); + ISidedInventory tileentityfurnace = (ISidedInventory)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); if (tileentityfurnace != null) { @@ -133,6 +134,15 @@ public class NukeN45 extends BlockContainer implements IBomb { @Override public void explode(World world, int x, int y, int z) { + + TileEntityNukeN45 entity = (TileEntityNukeN45) world.getTileEntity(x, y, z); + if(entity.getType() == 100) { + entity.primed = true; + } else if(!entity.primed && entity.getType() > 0) { + int t = entity.getType(); + entity.clearSlots(); + entity.explode(world, x, y, z, t); + } } } diff --git a/com/hbm/blocks/machine/BlockRFCable.java b/com/hbm/blocks/machine/BlockRFCable.java new file mode 100644 index 000000000..ef77281d2 --- /dev/null +++ b/com/hbm/blocks/machine/BlockRFCable.java @@ -0,0 +1,81 @@ +package com.hbm.blocks.machine; + +import com.hbm.tileentity.conductor.TileEntityRFDuct; + +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockRFCable extends BlockContainer { + + public BlockRFCable(Material p_i45386_1_) { + super(p_i45386_1_); + float p = 1F/16F; + this.setBlockBounds(11 * p / 2, 11 * p / 2, 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2, 1 - 11 * p / 2); + this.useNeighborBrightness = true; + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + if(world.getTileEntity(x, y, z) instanceof TileEntityRFDuct) { + TileEntityRFDuct cable = (TileEntityRFDuct)world.getTileEntity(x, y, z); + + if(cable != null) + { + float p = 1F/16F; + float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); + float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); + float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); + float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); + float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); + float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); + + this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); + } + } + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, z + this.maxZ); + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + if(world.getTileEntity(x, y, z) instanceof TileEntityRFDuct) { + TileEntityRFDuct cable = (TileEntityRFDuct)world.getTileEntity(x, y, z); + + if(cable != null) + { + float p = 1F/16F; + float minX = 11 * p / 2 - (cable.connections[5] != null ? (11 * p / 2) : 0); + float minY = 11 * p / 2 - (cable.connections[1] != null ? (11 * p / 2) : 0); + float minZ = 11 * p / 2 - (cable.connections[2] != null ? (11 * p / 2) : 0); + float maxX = 1 - 11 * p / 2 + (cable.connections[3] != null ? (11 * p / 2) : 0); + float maxY = 1 - 11 * p / 2 + (cable.connections[0] != null ? (11 * p / 2) : 0); + float maxZ = 1 - 11 * p / 2 + (cable.connections[4] != null ? (11 * p / 2) : 0); + + this.setBlockBounds(minX, minY, minZ, maxX, maxY, maxZ); + } + } + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityRFDuct(10000); + } + + @Override + public int getRenderType(){ + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } +} diff --git a/com/hbm/blocks/machine/MachineRTG.java b/com/hbm/blocks/machine/MachineRTG.java index b5b8492ce..8dfce9bc1 100644 --- a/com/hbm/blocks/machine/MachineRTG.java +++ b/com/hbm/blocks/machine/MachineRTG.java @@ -61,10 +61,10 @@ public class MachineRTG extends BlockContainer { else s = "null"; - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (":machine_rtg_top_" + s)); + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (":machine_rtg_top")); //this.iconFront = iconRegister.registerIcon(RefStrings.MODID + (":reactor_front")); this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (":red_wire_coated")); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_rtg_side_" + s); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_rtg_furnace_base_alt"); } @Override diff --git a/com/hbm/handler/GUIHandler.java b/com/hbm/handler/GUIHandler.java index 4cf5f8589..5466061bf 100644 --- a/com/hbm/handler/GUIHandler.java +++ b/com/hbm/handler/GUIHandler.java @@ -4,82 +4,8 @@ import com.hbm.blocks.ModBlocks; import com.hbm.inventory.container.*; import com.hbm.inventory.gui.*; import com.hbm.items.ModItems; -import com.hbm.tileentity.*; -import com.hbm.tileentity.bomb.TileEntityBombMulti; -import com.hbm.tileentity.bomb.TileEntityCelPrime; -import com.hbm.tileentity.bomb.TileEntityLaunchPad; -import com.hbm.tileentity.bomb.TileEntityNukeBoy; -import com.hbm.tileentity.bomb.TileEntityNukeCustom; -import com.hbm.tileentity.bomb.TileEntityNukeFleija; -import com.hbm.tileentity.bomb.TileEntityNukeGadget; -import com.hbm.tileentity.bomb.TileEntityNukeMan; -import com.hbm.tileentity.bomb.TileEntityNukeMike; -import com.hbm.tileentity.bomb.TileEntityNukeN2; -import com.hbm.tileentity.bomb.TileEntityNukePrototype; -import com.hbm.tileentity.bomb.TileEntityNukeSolinium; -import com.hbm.tileentity.bomb.TileEntityNukeTsar; -import com.hbm.tileentity.bomb.TileEntityTestNuke; -import com.hbm.tileentity.machine.TileEntityAMSBase; -import com.hbm.tileentity.machine.TileEntityAMSEmitter; -import com.hbm.tileentity.machine.TileEntityAMSLimiter; -import com.hbm.tileentity.machine.TileEntityConverterHeRf; -import com.hbm.tileentity.machine.TileEntityConverterRfHe; -import com.hbm.tileentity.machine.TileEntityCoreAdvanced; -import com.hbm.tileentity.machine.TileEntityCoreTitanium; -import com.hbm.tileentity.machine.TileEntityCrateIron; -import com.hbm.tileentity.machine.TileEntityCrateSteel; -import com.hbm.tileentity.machine.TileEntityDiFurnace; -import com.hbm.tileentity.machine.TileEntityFWatzCore; -import com.hbm.tileentity.machine.TileEntityForceField; -import com.hbm.tileentity.machine.TileEntityFusionMultiblock; -import com.hbm.tileentity.machine.TileEntityMachineAssembler; -import com.hbm.tileentity.machine.TileEntityMachineBattery; -import com.hbm.tileentity.machine.TileEntityMachineBoiler; -import com.hbm.tileentity.machine.TileEntityMachineBoilerElectric; -import com.hbm.tileentity.machine.TileEntityMachineCMBFactory; -import com.hbm.tileentity.machine.TileEntityMachineCentrifuge; -import com.hbm.tileentity.machine.TileEntityMachineChemplant; -import com.hbm.tileentity.machine.TileEntityMachineCoal; -import com.hbm.tileentity.machine.TileEntityMachineCyclotron; -import com.hbm.tileentity.machine.TileEntityMachineDeuterium; -import com.hbm.tileentity.machine.TileEntityMachineDiesel; -import com.hbm.tileentity.machine.TileEntityMachineElectricFurnace; -import com.hbm.tileentity.machine.TileEntityMachineFluidTank; -import com.hbm.tileentity.machine.TileEntityMachineGasCent; -import com.hbm.tileentity.machine.TileEntityMachineGasFlare; -import com.hbm.tileentity.machine.TileEntityMachineGenerator; -import com.hbm.tileentity.machine.TileEntityMachineIGenerator; -import com.hbm.tileentity.machine.TileEntityMachineInserter; -import com.hbm.tileentity.machine.TileEntityMachineKeyForge; -import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; -import com.hbm.tileentity.machine.TileEntityMachineOilWell; -import com.hbm.tileentity.machine.TileEntityMachinePress; -import com.hbm.tileentity.machine.TileEntityMachinePuF6Tank; -import com.hbm.tileentity.machine.TileEntityMachinePumpjack; -import com.hbm.tileentity.machine.TileEntityMachineRTG; -import com.hbm.tileentity.machine.TileEntityMachineRadGen; -import com.hbm.tileentity.machine.TileEntityMachineRadar; -import com.hbm.tileentity.machine.TileEntityMachineReactor; -import com.hbm.tileentity.machine.TileEntityMachineReactorSmall; -import com.hbm.tileentity.machine.TileEntityMachineRefinery; -import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; -import com.hbm.tileentity.machine.TileEntityMachineSeleniumEngine; -import com.hbm.tileentity.machine.TileEntityMachineShredder; -import com.hbm.tileentity.machine.TileEntityMachineSiren; -import com.hbm.tileentity.machine.TileEntityMachineTeleLinker; -import com.hbm.tileentity.machine.TileEntityMachineTeleporter; -import com.hbm.tileentity.machine.TileEntityMachineTurbine; -import com.hbm.tileentity.machine.TileEntityMachineTurbofan; -import com.hbm.tileentity.machine.TileEntityMachineUF6Tank; -import com.hbm.tileentity.machine.TileEntityNukeFurnace; -import com.hbm.tileentity.machine.TileEntityRadioRec; -import com.hbm.tileentity.machine.TileEntityRadiobox; -import com.hbm.tileentity.machine.TileEntityReactorMultiblock; -import com.hbm.tileentity.machine.TileEntityReiXMainframe; -import com.hbm.tileentity.machine.TileEntityRtgFurnace; -import com.hbm.tileentity.machine.TileEntitySafe; -import com.hbm.tileentity.machine.TileEntityMachineSatLinker; -import com.hbm.tileentity.machine.TileEntityWatzCore; +import com.hbm.tileentity.bomb.*; +import com.hbm.tileentity.machine.*; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -758,6 +684,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_nuke_n45: + { + if(entity instanceof TileEntityNukeN45) + { + return new ContainerNukeN45(player.inventory, (TileEntityNukeN45) entity); + } + return null; + } } return null; } @@ -1434,6 +1369,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_nuke_n45: + { + if(entity instanceof TileEntityNukeN45) + { + return new GUINukeN45(player.inventory, (TileEntityNukeN45) entity); + } + return null; + } } } else { //CLIENTONLY GUIS diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index 7edecfb0e..f9f12c6fc 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -627,6 +627,45 @@ public class MachineRecipes { return new ItemStack(ModItems.circuit_aluminium); } + if(stamp.getItem() == ModItems.stamp_357) { + + if(input.getItem() == ModItems.assembly_iron) + return new ItemStack(ModItems.gun_revolver_iron_ammo); + if(input.getItem() == ModItems.assembly_steel) + return new ItemStack(ModItems.gun_revolver_ammo); + if(input.getItem() == ModItems.assembly_lead) + return new ItemStack(ModItems.gun_revolver_lead_ammo); + if(input.getItem() == ModItems.assembly_gold) + return new ItemStack(ModItems.gun_revolver_gold_ammo); + if(input.getItem() == ModItems.assembly_schrabidium) + return new ItemStack(ModItems.gun_revolver_schrabidium_ammo); + + if(mODE(input, "ingotSteel")) + return new ItemStack(ModItems.gun_revolver_cursed_ammo); + } + + if(stamp.getItem() == ModItems.stamp_44) { + + if(input.getItem() == ModItems.assembly_pip) + return new ItemStack(ModItems.gun_revolver_pip_ammo); + if(input.getItem() == ModItems.assembly_nopip) + return new ItemStack(ModItems.gun_revolver_nopip_ammo); + } + + if(stamp.getItem() == ModItems.stamp_9) { + + if(input.getItem() == ModItems.assembly_smg) + return new ItemStack(ModItems.gun_mp40_ammo); + if(input.getItem() == ModItems.assembly_uzi) + return new ItemStack(ModItems.gun_uzi_ammo); + } + + if(stamp.getItem() == ModItems.stamp_50) { + + if(input.getItem() == ModItems.assembly_calamity) + return new ItemStack(ModItems.gun_calamity_ammo); + } + return null; } @@ -646,6 +685,15 @@ public class MachineRecipes { for(Item i : stamps_circuit) i_stamps_circuit.add(new ItemStack(i)); + List i_stamps_357 = new ArrayList(); + i_stamps_357.add(new ItemStack(ModItems.stamp_357)); + List i_stamps_44 = new ArrayList(); + i_stamps_44.add(new ItemStack(ModItems.stamp_44)); + List i_stamps_9 = new ArrayList(); + i_stamps_9.add(new ItemStack(ModItems.stamp_9)); + List i_stamps_50 = new ArrayList(); + i_stamps_50.add(new ItemStack(ModItems.stamp_50)); + recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_coal) }, getPressResultNN(stamps_flat.get(0), ModItems.powder_coal)); recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_quartz) }, getPressResultNN(stamps_flat.get(0), ModItems.powder_quartz)); recipes.put(new Object[] { i_stamps_flat, new ItemStack(ModItems.powder_lapis) }, getPressResultNN(stamps_flat.get(0), ModItems.powder_lapis)); @@ -676,6 +724,21 @@ public class MachineRecipes { recipes.put(new Object[] { i_stamps_wire, new ItemStack(ModItems.ingot_magnetized_tungsten) }, getPressResultNN(stamps_wire.get(0), ModItems.ingot_magnetized_tungsten)); recipes.put(new Object[] { i_stamps_circuit, new ItemStack(ModItems.circuit_raw) }, getPressResultNN(stamps_circuit.get(0), ModItems.circuit_raw)); + + recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_iron) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_iron)); + recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_steel) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_steel)); + recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_lead) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_lead)); + recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_gold) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_gold)); + recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_schrabidium) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_schrabidium)); + recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.ingot_steel) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.ingot_steel)); + + recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_nopip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_nopip)); + recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_pip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_pip)); + + recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_smg) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_smg)); + recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_uzi) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_uzi)); + + recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_calamity) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_calamity)); return recipes; } diff --git a/com/hbm/inventory/container/ContainerNukeN45.java b/com/hbm/inventory/container/ContainerNukeN45.java new file mode 100644 index 000000000..878333ae4 --- /dev/null +++ b/com/hbm/inventory/container/ContainerNukeN45.java @@ -0,0 +1,84 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.bomb.TileEntityNukeN45; +import com.hbm.tileentity.machine.TileEntityForceField; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerNukeN45 extends Container { + + private TileEntityNukeN45 diFurnace; + + public ContainerNukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { + + diFurnace = tedf; + + //Payload + this.addSlotToContainer(new Slot(tedf, 0, 44, 35)); + //Range up + this.addSlotToContainer(new Slot(tedf, 1, 116, 35)); + + for(int i = 0; i < 3; i++) + { + for(int j = 0; j < 9; j++) + { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) + { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142)); + } + } + + @Override + public void addCraftingToCrafters(ICrafting crafting) { + super.addCraftingToCrafters(crafting); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) + { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if (var4 != null && var4.getHasStack()) + { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if (par2 <= 1) { + if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) + { + return null; + } + } + else if (!this.mergeItemStack(var5, 0, 2, false)) + { + return null; + } + + if (var5.stackSize == 0) + { + var4.putStack((ItemStack) null); + } + else + { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return diFurnace.isUseableByPlayer(player); + } +} diff --git a/com/hbm/inventory/gui/GUINukeN45.java b/com/hbm/inventory/gui/GUINukeN45.java new file mode 100644 index 000000000..ea9503083 --- /dev/null +++ b/com/hbm/inventory/gui/GUINukeN45.java @@ -0,0 +1,79 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerForceField; +import com.hbm.inventory.container.ContainerNukeN45; +import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxButtonPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.bomb.TileEntityNukeN45; +import com.hbm.tileentity.machine.TileEntityForceField; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUINukeN45 extends GuiInfoContainer { + + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_n45.png"); + private TileEntityNukeN45 diFurnace; + + public GUINukeN45(InventoryPlayer invPlayer, TileEntityNukeN45 tedf) { + super(new ContainerNukeN45(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 176; + this.ySize = 168; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + String[] text = new String[] { "The first slot holds the payload.", + "Acceptable payloads:", + " -Det Cord", + " -TNT", + " -Explosive Charge", + " -Nuclear Charge", + "Using detonator while in mine mode will", + "arm the mine, set to explode when", + "it detects a large entity nearby."}; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36, 16, 16, guiLeft - 8, guiTop + 36 + 16, text); + + String[] text1 = new String[] { "The second slot is for green machine", + "upgrades. Entity detection range increases", + "by 5 blocks for every level.", + "When left empty, the mine can not be armed", + "an will behave like a regular bomb." }; + this.drawCustomInfoStat(mouseX, mouseY, guiLeft - 16, guiTop + 36 + 16, 16, 16, guiLeft - 8, guiTop + 36 + 16, text1); + + if(diFurnace.primed) + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 121, guiTop + 22, 6, 8, mouseX, mouseY, new String[]{ "Mine armed!" } ); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(diFurnace.primed) { + drawTexturedModalRect(guiLeft + 121, guiTop + 22, 176, 0, 6, 8); + } + + this.drawInfoPanel(guiLeft - 16, guiTop + 36, 16, 16, 2); + this.drawInfoPanel(guiLeft - 16, guiTop + 36 + 16, 16, 16, 3); + } +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 09095bced..472bd607c 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -288,6 +288,27 @@ public class ModItems { public static Item mechanism_launcher_2; public static Item mechanism_special; + public static Item primer_357; + public static Item primer_44; + public static Item primer_9; + public static Item primer_50; + public static Item primer_buckshot; + public static Item casing_357; + public static Item casing_44; + public static Item casing_9; + public static Item casing_50; + public static Item casing_buckshot; + public static Item assembly_iron; + public static Item assembly_steel; + public static Item assembly_lead; + public static Item assembly_gold; + public static Item assembly_schrabidium; + public static Item assembly_pip; + public static Item assembly_nopip; + public static Item assembly_smg; + public static Item assembly_uzi; + public static Item assembly_calamity; + public static Item circuit_targeting_tier1; public static Item circuit_targeting_tier2; public static Item circuit_targeting_tier3; @@ -396,6 +417,11 @@ public class ModItems { public static Item stamp_schrabidium_wire; public static Item stamp_schrabidium_circuit; + public static Item stamp_357; + public static Item stamp_44; + public static Item stamp_9; + public static Item stamp_50; + public static Item blades_gold; public static Item blades_aluminium; public static Item blades_iron; @@ -1726,6 +1752,26 @@ public class ModItems { mechanism_launcher_1 = new Item().setUnlocalizedName("mechanism_launcher_1").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_5"); mechanism_launcher_2 = new Item().setUnlocalizedName("mechanism_launcher_2").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_6"); mechanism_special = new Item().setUnlocalizedName("mechanism_special").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":mechanism_7"); + primer_357 = new Item().setUnlocalizedName("primer_357").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_357"); + primer_44 = new Item().setUnlocalizedName("primer_44").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_44"); + primer_9 = new Item().setUnlocalizedName("primer_9").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_9"); + primer_50 = new Item().setUnlocalizedName("primer_50").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_50"); + primer_buckshot = new Item().setUnlocalizedName("primer_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":primer_buckshot"); + casing_357 = new Item().setUnlocalizedName("casing_357").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_357"); + casing_44 = new Item().setUnlocalizedName("casing_44").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_44"); + casing_9 = new Item().setUnlocalizedName("casing_9").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_9"); + casing_50 = new Item().setUnlocalizedName("casing_50").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_50"); + casing_buckshot = new Item().setUnlocalizedName("casing_buckshot").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":casing_buckshot"); + assembly_iron = new Item().setUnlocalizedName("assembly_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_iron"); + assembly_steel = new Item().setUnlocalizedName("assembly_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_steel"); + assembly_lead = new Item().setUnlocalizedName("assembly_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_lead"); + assembly_gold = new Item().setUnlocalizedName("assembly_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_gold"); + assembly_schrabidium = new Item().setUnlocalizedName("assembly_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_schrabidium"); + assembly_pip = new Item().setUnlocalizedName("assembly_pip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_pip"); + assembly_nopip = new Item().setUnlocalizedName("assembly_nopip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nopip"); + assembly_smg = new Item().setUnlocalizedName("assembly_smg").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_smg"); + assembly_uzi = new Item().setUnlocalizedName("assembly_uzi").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_uzi"); + assembly_calamity = new Item().setUnlocalizedName("assembly_calamity").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_calamity"); wiring_red_copper = new ItemWiring().setUnlocalizedName("wiring_red_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":wiring_red_copper"); @@ -1803,6 +1849,10 @@ public class ModItems { stamp_schrabidium_plate = new ItemBlades(1024).setUnlocalizedName("stamp_schrabidium_plate").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_schrabidium_plate"); stamp_schrabidium_wire = new ItemBlades(1024).setUnlocalizedName("stamp_schrabidium_wire").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_schrabidium_wire"); stamp_schrabidium_circuit = new ItemBlades(1024).setUnlocalizedName("stamp_schrabidium_circuit").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_schrabidium_circuit"); + stamp_357 = new ItemBlades(512).setUnlocalizedName("stamp_357").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_357"); + stamp_44 = new ItemBlades(512).setUnlocalizedName("stamp_44").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_44"); + stamp_9 = new ItemBlades(512).setUnlocalizedName("stamp_9").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_9"); + stamp_50 = new ItemBlades(512).setUnlocalizedName("stamp_50").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":stamp_50"); blades_aluminium = new ItemBlades(1 * 1200).setUnlocalizedName("blades_aluminium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_aluminium"); blades_gold = new ItemBlades(5 * 1200).setUnlocalizedName("blades_gold").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":blades_gold"); @@ -3097,6 +3147,32 @@ public class ModItems { GameRegistry.registerItem(mechanism_launcher_2, mechanism_launcher_2.getUnlocalizedName()); GameRegistry.registerItem(mechanism_special, mechanism_special.getUnlocalizedName()); + //Primers + GameRegistry.registerItem(primer_357, primer_357.getUnlocalizedName()); + GameRegistry.registerItem(primer_44, primer_44.getUnlocalizedName()); + GameRegistry.registerItem(primer_9, primer_9.getUnlocalizedName()); + GameRegistry.registerItem(primer_50, primer_50.getUnlocalizedName()); + GameRegistry.registerItem(primer_buckshot, primer_buckshot.getUnlocalizedName()); + + //Casings + GameRegistry.registerItem(casing_357, casing_357.getUnlocalizedName()); + GameRegistry.registerItem(casing_44, casing_44.getUnlocalizedName()); + GameRegistry.registerItem(casing_9, casing_9.getUnlocalizedName()); + GameRegistry.registerItem(casing_50, casing_50.getUnlocalizedName()); + GameRegistry.registerItem(casing_buckshot, casing_buckshot.getUnlocalizedName()); + + //Bullet Assemblies + GameRegistry.registerItem(assembly_iron, assembly_iron.getUnlocalizedName()); + GameRegistry.registerItem(assembly_steel, assembly_steel.getUnlocalizedName()); + GameRegistry.registerItem(assembly_lead, assembly_lead.getUnlocalizedName()); + GameRegistry.registerItem(assembly_gold, assembly_gold.getUnlocalizedName()); + GameRegistry.registerItem(assembly_schrabidium, assembly_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(assembly_pip, assembly_pip.getUnlocalizedName()); + GameRegistry.registerItem(assembly_nopip, assembly_nopip.getUnlocalizedName()); + GameRegistry.registerItem(assembly_smg, assembly_smg.getUnlocalizedName()); + GameRegistry.registerItem(assembly_uzi, assembly_uzi.getUnlocalizedName()); + GameRegistry.registerItem(assembly_calamity, assembly_calamity.getUnlocalizedName()); + //Wiring GameRegistry.registerItem(wiring_red_copper, wiring_red_copper.getUnlocalizedName()); @@ -3264,6 +3340,10 @@ public class ModItems { GameRegistry.registerItem(stamp_schrabidium_plate, stamp_schrabidium_plate.getUnlocalizedName()); GameRegistry.registerItem(stamp_schrabidium_wire, stamp_schrabidium_wire.getUnlocalizedName()); GameRegistry.registerItem(stamp_schrabidium_circuit, stamp_schrabidium_circuit.getUnlocalizedName()); + GameRegistry.registerItem(stamp_357, stamp_357.getUnlocalizedName()); + GameRegistry.registerItem(stamp_44, stamp_44.getUnlocalizedName()); + GameRegistry.registerItem(stamp_9, stamp_9.getUnlocalizedName()); + GameRegistry.registerItem(stamp_50, stamp_50.getUnlocalizedName()); //Machine Upgrades GameRegistry.registerItem(upgrade_template, upgrade_template.getUnlocalizedName()); diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index a63f5b2da..1dff35b56 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -301,6 +301,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOilDuct.class, new RenderOilDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityGasDuct.class, new RenderGasDuct()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFluidDuct.class, new RenderFluidDuct()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRFDuct.class, new RenderRFCable()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityPylonRedWire.class, new RenderPylon()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityStructureMarker.class, new RenderStructureMaker()); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 4cb8409e4..1462c986b 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -245,6 +245,7 @@ import com.hbm.tileentity.conductor.TileEntityGasDuctSolid; import com.hbm.tileentity.conductor.TileEntityOilDuct; import com.hbm.tileentity.conductor.TileEntityOilDuctSolid; import com.hbm.tileentity.conductor.TileEntityPylonRedWire; +import com.hbm.tileentity.conductor.TileEntityRFDuct; import com.hbm.tileentity.conductor.TileEntityWireCoated; import com.hbm.tileentity.deco.TileEntityBomber; import com.hbm.tileentity.deco.TileEntityDecoBlock; @@ -743,6 +744,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityFF.class, "tileentity_forcefield"); GameRegistry.registerTileEntity(TileEntityForceField.class, "tileentity_machine_field"); GameRegistry.registerTileEntity(TileEntityMachineShredderLarge.class, "tileentity_machine_big_shredder"); + GameRegistry.registerTileEntity(TileEntityRFDuct.class, "tileentity_hbm_rfduct"); 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 5470e1cfc..fb1007f8b 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -56,6 +56,8 @@ public class ResourceManager { //Press public static final IModelCustom press_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_body.obj")); public static final IModelCustom press_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/press_head.obj")); + public static final IModelCustom epress_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_body.obj")); + public static final IModelCustom epress_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/epress_head.obj")); //Chemplant public static final IModelCustom chemplant_new = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_main_new.obj")); diff --git a/com/hbm/render/tileentity/RenderRFCable.java b/com/hbm/render/tileentity/RenderRFCable.java new file mode 100644 index 000000000..918d88d6a --- /dev/null +++ b/com/hbm/render/tileentity/RenderRFCable.java @@ -0,0 +1,159 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.conductor.TileEntityRFDuct; + +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.common.util.ForgeDirection; + +public class RenderRFCable extends TileEntitySpecialRenderer { + + public ResourceLocation texture = new ResourceLocation(RefStrings.MODID, "textures/blocks/rf_cable.png"); + float pixel = 1F/16F; + float textureP = 1F / 32F; + + @Override + public void renderTileEntityAt(TileEntity tileentity, double offsetX, double offsetY, double offsetZ, float f) { + GL11.glTranslated(offsetX, offsetY, offsetZ); + GL11.glDisable(GL11.GL_LIGHTING); + this.bindTexture(texture); + drawCore(tileentity); + TileEntityRFDuct cable = (TileEntityRFDuct) tileentity; + for(int i = 0; i < cable.connections.length; i++) + { + if(cable.connections[i] != null) + { + drawConnection(cable.connections[i]); + } + } + GL11.glTranslated(-offsetX, -offsetY, -offsetZ); + GL11.glEnable(GL11.GL_LIGHTING); + + } + + public void drawCore(TileEntity tileentity) { + Tessellator tesseract = Tessellator.instance; + tesseract.startDrawingQuads(); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 11 * pixel / 2, 0 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 11 * pixel / 2, 1 - 11 * pixel / 2, 0 * textureP, 5 * textureP); + tesseract.draw(); + + // Muehsam muss ich hier im BSH meine genialen Mods schreiben, obwohl ich die Zeit eigentlich doch besser nutzen koennte. + // Da mir das aber Spass macht, wird auch in Zukunft gutes Zeug von mir geben (und damit meine ich NICHT Drogen, etc.) + // Danke. + + //I didn't write this, but I'm gonna leave it there. + } + + public void drawConnection(ForgeDirection direction) + { + Tessellator tesseract = Tessellator.instance; + tesseract.startDrawingQuads(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + if(direction.equals(ForgeDirection.UP)) + { + + } + if(direction.equals(ForgeDirection.DOWN)) + { + GL11.glRotatef(180, 1, 0, 0); + } + if(direction.equals(ForgeDirection.NORTH)) + { + GL11.glRotatef(270, 1, 0, 0); + } + if(direction.equals(ForgeDirection.SOUTH)) + { + GL11.glRotatef(90, 1, 0, 0); + } + if(direction.equals(ForgeDirection.EAST)) + { + GL11.glRotatef(270, 0, 0, 1); + } + if(direction.equals(ForgeDirection.WEST)) + { + GL11.glRotatef(90, 0, 0, 1); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 5 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 0 * textureP); + tesseract.addVertexWithUV(1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 0 * textureP); + + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 1 - 11 * pixel / 2, 5 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1, 1 - 11 * pixel / 2, 10 * textureP, 5 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1, 11 * pixel / 2, 10 * textureP, 0 * textureP); + tesseract.addVertexWithUV(11 * pixel / 2, 1 - 11 * pixel / 2, 11 * pixel / 2, 5 * textureP, 0 * textureP); + tesseract.draw(); + + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + if(direction.equals(ForgeDirection.UP)) + { + + } + if(direction.equals(ForgeDirection.DOWN)) + { + GL11.glRotatef(-180, 1, 0, 0); + } + if(direction.equals(ForgeDirection.NORTH)) + { + GL11.glRotatef(-270, 1, 0, 0); + } + if(direction.equals(ForgeDirection.SOUTH)) + { + GL11.glRotatef(-90, 1, 0, 0); + } + if(direction.equals(ForgeDirection.EAST)) + { + GL11.glRotatef(-270, 0, 0, 1); + } + if(direction.equals(ForgeDirection.WEST)) + { + GL11.glRotatef(-90, 0, 0, 1); + } + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + } +} diff --git a/com/hbm/tileentity/bomb/TileEntityNukeN45.java b/com/hbm/tileentity/bomb/TileEntityNukeN45.java index 861dc9d02..cf90c8dea 100644 --- a/com/hbm/tileentity/bomb/TileEntityNukeN45.java +++ b/com/hbm/tileentity/bomb/TileEntityNukeN45.java @@ -3,13 +3,18 @@ package com.hbm.tileentity.bomb; import java.util.List; import com.hbm.blocks.ModBlocks; +import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; +import com.hbm.main.MainRegistry; import com.hbm.packet.AuxGaugePacket; import com.hbm.packet.PacketDispatcher; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; @@ -18,6 +23,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraft.potion.Potion; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; @@ -189,8 +195,6 @@ public class TileEntityNukeN45 extends TileEntity implements ISidedInventory { if(!worldObj.isRemote) { - primed = true; - PacketDispatcher.wrapper.sendToAll(new AuxGaugePacket(xCoord, yCoord, zCoord, primed ? 1 : 0, 0)); if(primed) { @@ -211,14 +215,21 @@ public class TileEntityNukeN45 extends TileEntity implements ISidedInventory { rad = 15; } + if(rad == 0) { + primed = false; + return; + } + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(xCoord + 0.5 - rad, yCoord + 0.5 - rad, zCoord + 0.5 - rad, xCoord + 0.5 + rad, yCoord + 0.5 + rad, zCoord + 0.5 + rad)); for(Object o : list) { Entity e = (Entity)o; - if(e.width * e.width * e.height >= 1.5) { - explode(worldObj, xCoord, yCoord, zCoord, getType()); + if(e instanceof EntityLivingBase && e.width * e.width * e.height >= 0.5 && !((EntityLivingBase)e).isPotionActive(Potion.invisibility.id)) { + int t = getType(); + this.clearSlots(); + explode(worldObj, xCoord, yCoord, zCoord, t); break; } } @@ -229,10 +240,44 @@ public class TileEntityNukeN45 extends TileEntity implements ISidedInventory { public static void explode(World world, int x, int y, int z, int type) { + if(!world.isRemote) { + world.setBlockToAir(x, y, z); + + System.out.println(type); + + switch(type) { + case 1: + world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 1.5F, true); + break; + case 2: + world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 4.0F, true); + break; + case 3: + ExplosionLarge.explode(world, x, y, z, 15, true, false, false); + break; + case 4: + world.spawnEntityInWorld(EntityNukeExplosionMK4.statFac(world, (int)(MainRegistry.missileRadius * 0.75F), x + 0.5, y + 0.5, z + 0.5)); + + EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(world, 1000, MainRegistry.missileRadius * 0.005F * 0.75F); + entity2.posX = x; + entity2.posY = y; + entity2.posZ = z; + world.spawnEntityInWorld(entity2); + break; + } + } } public int getType() { + if(!primed && slots[1] != null) { + + if(slots[1].getItem() == ModItems.upgrade_effect_1 || + slots[1].getItem() == ModItems.upgrade_effect_2 || + slots[1].getItem() == ModItems.upgrade_effect_3) + return 100; + } + if(slots[0] != null) { if(slots[0].getItem() == Item.getItemFromBlock(ModBlocks.det_cord)) @@ -245,14 +290,6 @@ public class TileEntityNukeN45 extends TileEntity implements ISidedInventory { return 4; } - if(!primed && slots[1] != null) { - - if(slots[1].getItem() == ModItems.upgrade_effect_1 || - slots[1].getItem() == ModItems.upgrade_effect_2 || - slots[1].getItem() == ModItems.upgrade_effect_3) - return 100; - } - return 0; } diff --git a/com/hbm/tileentity/conductor/TileEntityRFDuct.java b/com/hbm/tileentity/conductor/TileEntityRFDuct.java new file mode 100644 index 000000000..1054a5b41 --- /dev/null +++ b/com/hbm/tileentity/conductor/TileEntityRFDuct.java @@ -0,0 +1,144 @@ +package com.hbm.tileentity.conductor; + +import cofh.api.energy.EnergyStorage; +import cofh.api.energy.IEnergyConnection; +import cofh.api.energy.IEnergyHandler; +import cofh.api.energy.IEnergyReceiver; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityRFDuct extends TileEntity implements IEnergyHandler { + + public ForgeDirection[] connections = new ForgeDirection[6]; + protected EnergyStorage storage; + public int output; + + public TileEntityRFDuct(int output) { + this.output = output; + this.storage = new EnergyStorage(200); + + storage.setMaxReceive(output); + storage.setMaxExtract(output); + storage.setMaxTransfer(output); + } + + public void updateEntity() { + this.updateConnections(); + + if (storage.getEnergyStored() > 0) { + for (int i = 0; i < 6; i++) { + + int targetX = xCoord + ForgeDirection.getOrientation(i).offsetX; + int targetY = yCoord + ForgeDirection.getOrientation(i).offsetY; + int targetZ = zCoord + ForgeDirection.getOrientation(i).offsetZ; + + TileEntity tile = worldObj.getTileEntity(targetX, targetY, targetZ); + if (tile instanceof IEnergyReceiver) { + int maxExtract = storage.getMaxExtract(); + int maxAvailable = storage.extractEnergy(maxExtract, true); + int energyTransferred = ((IEnergyReceiver) tile) + .receiveEnergy(ForgeDirection.getOrientation(i).getOpposite(), maxAvailable, false); + + storage.extractEnergy(energyTransferred, false); + } + } + } + + } + + public void updateConnections() { + if (this.worldObj.getTileEntity(xCoord, yCoord + 1, zCoord) instanceof IEnergyConnection) + connections[0] = ForgeDirection.UP; + else + connections[0] = null; + + if (this.worldObj.getTileEntity(xCoord, yCoord - 1, zCoord) instanceof IEnergyConnection) + connections[1] = ForgeDirection.DOWN; + else + connections[1] = null; + + if (this.worldObj.getTileEntity(xCoord, yCoord, zCoord - 1) instanceof IEnergyConnection) + connections[2] = ForgeDirection.NORTH; + else + connections[2] = null; + + if (this.worldObj.getTileEntity(xCoord, yCoord, zCoord + 1) instanceof IEnergyConnection) + connections[3] = ForgeDirection.SOUTH; + else + connections[3] = null; + + if (this.worldObj.getTileEntity(xCoord + 1, yCoord, zCoord) instanceof IEnergyConnection) + connections[4] = ForgeDirection.EAST; + else + connections[4] = null; + + if (this.worldObj.getTileEntity(xCoord - 1, yCoord, zCoord) instanceof IEnergyConnection) + connections[5] = ForgeDirection.WEST; + else + connections[5] = null; + } + + public boolean onlyOneOpposite(ForgeDirection[] directions) { + ForgeDirection mainDirection = null; + boolean isOpposite = false; + + for (int i = 0; i < directions.length; i++) { + + if (mainDirection == null && directions[i] != null) + mainDirection = directions[i]; + + if (directions[i] != null && mainDirection != directions[i]) { + if (!isOpposite(mainDirection, directions[i])) + return false; + else + isOpposite = true; + } + } + + return isOpposite; + } + + public boolean isOpposite(ForgeDirection firstDirection, ForgeDirection secondDirection) { + + if ((firstDirection.equals(ForgeDirection.NORTH) && secondDirection.equals(ForgeDirection.SOUTH)) + || firstDirection.equals(ForgeDirection.SOUTH) && secondDirection.equals(ForgeDirection.NORTH)) + return true; + + if ((firstDirection.equals(ForgeDirection.EAST) && secondDirection.equals(ForgeDirection.WEST)) + || firstDirection.equals(ForgeDirection.WEST) && secondDirection.equals(ForgeDirection.EAST)) + return true; + + if ((firstDirection.equals(ForgeDirection.UP) && secondDirection.equals(ForgeDirection.DOWN)) + || firstDirection.equals(ForgeDirection.DOWN) && secondDirection.equals(ForgeDirection.UP)) + return true; + + return false; + } + + @Override + public boolean canConnectEnergy(ForgeDirection from) { + return true; + } + + @Override + public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) { + return this.storage.receiveEnergy(Math.min(output, maxReceive), simulate); + } + + @Override + public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) { + + return storage.extractEnergy(storage.getMaxExtract(), simulate); + } + + @Override + public int getEnergyStored(ForgeDirection from) { + return storage.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored(ForgeDirection from) { + return storage.getMaxEnergyStored(); + } + +} diff --git a/com/hbm/tileentity/machine/TileEntityConverterRfHe.java b/com/hbm/tileentity/machine/TileEntityConverterRfHe.java index ff203393a..3ac24fcae 100644 --- a/com/hbm/tileentity/machine/TileEntityConverterRfHe.java +++ b/com/hbm/tileentity/machine/TileEntityConverterRfHe.java @@ -8,6 +8,7 @@ import com.hbm.interfaces.ISource; import com.hbm.lib.Library; import cofh.api.energy.EnergyStorage; +import cofh.api.energy.IEnergyHandler; import cofh.api.energy.IEnergyReceiver; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection;