From 59db5b8b0272383c3ecd413c217c5a1150571439 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Fri, 11 Aug 2017 15:02:39 +0200 Subject: [PATCH] Added rare element fragments, first turret tests --- assets/hbm/lang/de_DE.lang | 36 ++ assets/hbm/lang/en_US.lang | 36 ++ assets/hbm/models/turret_heavy_base.obj | 138 +++++++ assets/hbm/models/turret_heavy_gun.obj | 307 +++++++++++++++ assets/hbm/models/turret_heavy_rotor.obj | 175 +++++++++ assets/hbm/models/turret_light_gun.obj | 371 ++++++++++++++++++ assets/hbm/models/turret_rocket_gun.obj | 347 ++++++++++++++++ assets/hbm/textures/blocks/ore_rare.png | Bin 0 -> 526 bytes assets/hbm/textures/gui/gui_crate_iron.png | Bin 0 -> 1143 bytes assets/hbm/textures/gui/gui_crate_steel.png | Bin 0 -> 1256 bytes assets/hbm/textures/gui/gui_planner.png | Bin 0 -> 1688 bytes com/hbm/blocks/ModBlocks.java | 29 +- com/hbm/blocks/bomb/TurretBase.java | 35 ++ com/hbm/blocks/bomb/TurretHeavy.java | 70 ++++ com/hbm/blocks/bomb/TurretLight.java | 62 +++ com/hbm/blocks/bomb/TurretRocket.java | 67 ++++ .../missile/EntityMissileBaseAdvanced.java | 24 ++ com/hbm/entity/projectile/EntityRocket.java | 6 +- com/hbm/handler/FluidTypeHandler.java | 5 +- com/hbm/handler/nei/ModInfoHandler.java | 19 +- com/hbm/inventory/MachineRecipes.java | 217 +++++++++- com/hbm/items/ModItems.java | 41 +- com/hbm/items/tool/ItemChemistryTemplate.java | 20 +- com/hbm/items/tool/ItemTurretControl.java | 158 ++++++++ com/hbm/lib/HbmWorldGen.java | 12 +- com/hbm/main/ClientProxy.java | 9 + com/hbm/main/CraftingManager.java | 10 + com/hbm/main/MainRegistry.java | 14 +- com/hbm/main/ResourceManager.java | 21 + com/hbm/packet/PacketDispatcher.java | 2 + com/hbm/packet/TETurretPacket.java | 68 ++++ .../render/tileentity/RenderHeavyTurret.java | 80 ++++ .../render/tileentity/RenderLightTurret.java | 77 ++++ .../render/tileentity/RenderRocketTurret.java | 77 ++++ com/hbm/tileentity/TileEntityTurretBase.java | 35 ++ com/hbm/tileentity/TileEntityTurretHeavy.java | 7 + com/hbm/tileentity/TileEntityTurretLight.java | 7 + .../tileentity/TileEntityTurretRocket.java | 7 + 38 files changed, 2539 insertions(+), 50 deletions(-) create mode 100644 assets/hbm/models/turret_heavy_base.obj create mode 100644 assets/hbm/models/turret_heavy_gun.obj create mode 100644 assets/hbm/models/turret_heavy_rotor.obj create mode 100644 assets/hbm/models/turret_light_gun.obj create mode 100644 assets/hbm/models/turret_rocket_gun.obj create mode 100644 assets/hbm/textures/blocks/ore_rare.png create mode 100644 assets/hbm/textures/gui/gui_crate_iron.png create mode 100644 assets/hbm/textures/gui/gui_crate_steel.png create mode 100644 assets/hbm/textures/gui/gui_planner.png create mode 100644 com/hbm/blocks/bomb/TurretBase.java create mode 100644 com/hbm/blocks/bomb/TurretHeavy.java create mode 100644 com/hbm/blocks/bomb/TurretLight.java create mode 100644 com/hbm/blocks/bomb/TurretRocket.java create mode 100644 com/hbm/items/tool/ItemTurretControl.java create mode 100644 com/hbm/main/ResourceManager.java create mode 100644 com/hbm/packet/TETurretPacket.java create mode 100644 com/hbm/render/tileentity/RenderHeavyTurret.java create mode 100644 com/hbm/render/tileentity/RenderLightTurret.java create mode 100644 com/hbm/render/tileentity/RenderRocketTurret.java create mode 100644 com/hbm/tileentity/TileEntityTurretBase.java create mode 100644 com/hbm/tileentity/TileEntityTurretHeavy.java create mode 100644 com/hbm/tileentity/TileEntityTurretLight.java create mode 100644 com/hbm/tileentity/TileEntityTurretRocket.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 4e40bebab..89357f6ad 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -6,12 +6,14 @@ itemGroup.tabMachine=NTM Vorlagen hbmfluid.none=Nichts hbmfluid.water=Wasser +hbmfluid.steam=Dampf hbmfluid.lava=Lava hbmfluid.uf6=Uranhexafluorid hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.deuterium=Deuterium hbmfluid.tritium=Tritium hbmfluid.oil=Rohöl +hbmfluid.hotoil=Heißes Rohöl hbmfluid.smear=Industrieöl hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl hbmfluid.petroil=Gemisch @@ -29,6 +31,22 @@ hbmfluid.naphtha=Mitteldestillat hbmfluid.lightoil=Leichtöl hbmfluid.petroleum=Petroleumgas +chem.TEST=Test +chem.FP_HEAVYOIL=Schwerölverarbeitung +chem.FP_SMEAR=Industrieölverarbeitung +chem.FP_NAPHTHA=Mitteldestillatsverarbeitung +chem.FP_LIGHTOIL=Leichtölverarbeitung +chem.FR_REOIL=Öl-Wiederaufbereitung +chem.FR_PETROIL=Gemischherstellung +chem.FC_I_NAPHTHA=Industriöl-Cracking +chem.FC_GAS_PETROLEUM=Erdgas-Cracking +chem.FC_DIESEL_KEROSENE=Diesel-Cracking +chem.FC_KEROSENE_PETROLEUM=Kerosin-Cracking +chem.CC_I=Erweitertes Kohle-Cracking +chem.CC_HEATING=Fortgeschrittenes Kohle-Cracking +chem.CC_HEAVY=Einfaches Kohle-Cracking +chem.CC_NAPHTHA=Naphtha-Kohle-Cracking + item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.ss.desc=Valve - Sector Sweep item.record.vc.desc=Valve - Vortal Combat @@ -270,6 +288,7 @@ tile.machine_rtg_purple.name=Paarvernichtungsgenerator item.fluid_identifier.name=Flüssigkeits-Kennzeichnung item.assembly_template.name=Fertigungsvorlage: +item.chemistry_template.name=Chemievorlage: item.fuse.name=Sicherung @@ -491,6 +510,18 @@ item.powder_lanthanium.name=Lanthanstaub item.powder_actinium.name=Actiniumstaub item.powder_lithium_tiny.name=Kleiner Haufen Lithiumstaub item.powder_cobalt_tiny.name=Kleiner Haufen Cobaltstaub +item.powder_neodymium_tiny.name=Kleiner Haufen Neodymstaub +item.powder_niobium_tiny.name=Kleiner Haufen Niobstaub +item.powder_cerium_tiny.name=Kleiner Haufen Cerstaub +item.powder_lanthanium_tiny.name=Kleiner Haufen Lanthanstaub +item.powder_actinium_tiny.name=Kleiner Haufen Actiniumstaub + +item.fragment_neodymium.name=Neodymfragment +item.fragment_cobalt.name=Cobaltfragment +item.fragment_niobium.name=Niobium Ffragment +item.fragment_cerium.name=Cerium Ffragment +item.fragment_lanthanium.name=Lanthanfragment +item.fragment_actinium.name=Actiniumfragment item.battery_generic.name=Batterie item.battery_advanced.name=Fortgeschrittene Batterie @@ -568,6 +599,7 @@ item.singularity_counter_resonant.name=Eingefasste nicht-resonante Singularität item.singularity_super_heated.name=Supererhitzte resonante Singularität item.black_hole.name=Miniatur Schwarzes Loch item.crystal_xen.name=Künstlicher Xen-Kristall +item.pellet_antimatter.name=Antimateriencluster item.inf_water.name=Unendlicher Wassertank item.inf_deuterium.name=Unendlicher Deuteriumtank @@ -600,6 +632,9 @@ item.gas_full.name=Gastank item.gas_petroleum.name=Petroleumgastank item.fluid_tank_empty.name=Leere universelle Flüssigkeitszelle item.fluid_tank_full.name=Universelle Flüssigkeitszelle: +item.fluid_barrel_empty.name=Leeres Fass +item.fluid_barrel_full.name=Flüssigkeitsfass: +item.fluid_barrel_infinite.name=Unendliches Fass item.rod_empty.name=Leerer Brennstab item.rod_uranium.name=Uranbrennstab @@ -974,6 +1009,7 @@ item.missile_nuclear.name=Atomrakete item.missile_nuclear_cluster.name=Atomare MIRV-Rakete item.missile_endo.name=Endothermische Rakete item.missile_exo.name=Exothermische Rakete +item.missile_doomsday.name=Doomsday Rakete item.hazmat_helmet.name=Strahlenschutzhelm item.hazmat_plate.name=Strahlenschutzbrustplatte diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index bab95bb48..1d999e998 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -6,12 +6,14 @@ itemGroup.tabMachine=NTM Templates hbmfluid.none=None hbmfluid.water=Water +hbmfluid.steam=Steam hbmfluid.lava=Lava hbmfluid.uf6=Uranium Hexafluoride hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.deuterium=Deuterium hbmfluid.tritium=Tritium hbmfluid.oil=Crude Oil +hbmfluid.hotoil=Hot Crude Oil hbmfluid.smear=Industrial Oil hbmfluid.reclaimed=Reclaimed Industrial Oil hbmfluid.petroil=Petroil @@ -29,6 +31,22 @@ hbmfluid.naphtha=Naphtha hbmfluid.lightoil=Light Oil hbmfluid.petroleum=Petroleum Gas +chem.TEST=Test +chem.FP_HEAVYOIL=Heavy Oil Processing +chem.FP_SMEAR=Industrial Oil Processing +chem.FP_NAPHTHA=Naphtha Processing +chem.FP_LIGHTOIL=Light Oil Processing +chem.FR_REOIL=Oil Reprocessing +chem.FR_PETROIL=Petroil Mixing +chem.FC_I_NAPHTHA=Industrial Oil Cracking +chem.FC_GAS_PETROLEUM=Gas Cracking +chem.FC_DIESEL_KEROSENE=Diesel Cracking +chem.FC_KEROSENE_PETROLEUM=Kerosene Cracking +chem.CC_I=Enhanced Coal Cracking +chem.CC_HEATING=Advanced Coal Cracking +chem.CC_HEAVY=Basic Coal Cracking +chem.CC_NAPHTHA=Naphtha Coal Cracking + item.record.lc.desc=Valve - Diabolic Adrenaline Guitar/Lambda Core item.record.ss.desc=Valve - Sector Sweep item.record.vc.desc=Valve - Vortal Combat @@ -270,6 +288,7 @@ tile.machine_rtg_purple.name=Antimatter Annihilation Generator item.fluid_identifier.name=Fluid Identifier item.assembly_template.name=Assembly Template: +item.chemistry_template.name=Chemistry Template: item.fuse.name=Fuse @@ -491,6 +510,18 @@ item.powder_lanthanium.name=Lanthanium Powder item.powder_actinium.name=Actinium Powder item.powder_lithium_tiny.name=Tiny Pile of Lithium Powder item.powder_cobalt_tiny.name=Tiny Pile of Cobalt Powder +item.powder_neodymium_tiny.name=Tiny Pile of Neodymium Powder +item.powder_niobium_tiny.name=Tiny Pile of Niobium Powder +item.powder_cerium_tiny.name=Tiny Pile of Cerium Powder +item.powder_lanthanium_tiny.name=Tiny Pile of Lanthanium Powder +item.powder_actinium_tiny.name=Tiny Pile of Actinium Powder + +item.fragment_neodymium.name=Neodymium Fragment +item.fragment_cobalt.name=Cobalt Fragment +item.fragment_niobium.name=Niobium Fragment +item.fragment_cerium.name=Cerium Fragment +item.fragment_lanthanium.name=Lanthanium Fragment +item.fragment_actinium.name=Actinium Fragment item.battery_generic.name=Battery item.battery_advanced.name=Advanced Battery @@ -568,6 +599,7 @@ item.singularity_counter_resonant.name=Contained Counter-Resonant Singularity item.singularity_super_heated.name=Superheated Resonating Singularity item.black_hole.name=Miniature Black Hole item.crystal_xen.name=Artificial Xen Crystal +item.pellet_antimatter.name=Antimatter Cluster item.inf_water.name=Infinite Water Tank item.inf_deuterium.name=Infinite Deuterium Tank @@ -600,6 +632,9 @@ item.gas_full.name=Gas Tank item.gas_petroleum.name=Petroleum Gas Tank item.fluid_tank_empty.name=Empty Universal Fluid Tank item.fluid_tank_full.name=Universal Fluid Tank: +item.fluid_barrel_empty.name=Empty Fluid Barrel +item.fluid_barrel_full.name=Fluid Barrel: +item.fluid_barrel_infinite.name=Infinite Fluid Barrel item.rod_empty.name=Emty Rod item.rod_uranium.name=Uranium Rod @@ -974,6 +1009,7 @@ item.missile_nuclear.name=Nuclear Missile item.missile_nuclear_cluster.name=Nuclear MIRV Missile item.missile_endo.name=Endothermic Missile item.missile_exo.name=Exothermic Missile +item.missile_doomsday.name=Doomsday Missile item.hazmat_helmet.name=Hazmat Helmet item.hazmat_plate.name=Hazmat Chestplate diff --git a/assets/hbm/models/turret_heavy_base.obj b/assets/hbm/models/turret_heavy_base.obj new file mode 100644 index 000000000..06f612958 --- /dev/null +++ b/assets/hbm/models/turret_heavy_base.obj @@ -0,0 +1,138 @@ +# Blender v2.76 (sub 0) OBJ File: 'turret_heavy_base.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.250000 +v 0.250000 0.000000 -0.500000 +v -0.500000 0.000000 -0.250000 +v 0.250000 0.000000 0.500000 +v 0.500000 0.000000 0.250000 +v -0.250000 0.000000 -0.500000 +v 0.500000 0.000000 -0.250000 +v -0.250000 0.000000 0.500000 +v -0.500000 0.125000 -0.250000 +v -0.500000 0.125000 0.250000 +v -0.250000 0.125000 0.500000 +v 0.250000 0.125000 0.500000 +v 0.250000 0.125000 -0.500000 +v -0.250000 0.125000 -0.500000 +v 0.500000 0.125000 0.250000 +v 0.500000 0.125000 -0.250000 +v -0.000000 0.125000 -0.425000 +v -0.000000 0.250000 -0.425000 +v 0.212500 0.125000 -0.368061 +v 0.212500 0.250000 -0.368061 +v 0.368061 0.125000 -0.212500 +v 0.368061 0.250000 -0.212500 +v 0.425000 0.125000 0.000000 +v 0.425000 0.250000 0.000000 +v 0.368061 0.125000 0.212500 +v 0.368061 0.250000 0.212500 +v 0.212500 0.125000 0.368061 +v 0.212500 0.250000 0.368061 +v 0.000000 0.125000 0.425000 +v 0.000000 0.250000 0.425000 +v -0.212500 0.125000 0.368061 +v -0.212500 0.250000 0.368061 +v -0.368061 0.125000 0.212500 +v -0.368061 0.250000 0.212500 +v -0.425000 0.125000 0.000000 +v -0.425000 0.250000 0.000000 +v -0.368061 0.125000 -0.212500 +v -0.368061 0.250000 -0.212500 +v -0.212500 0.125000 -0.368061 +v -0.212500 0.250000 -0.368061 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.707100 0.000000 0.707100 +vn -0.707100 0.000000 -0.707100 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.707100 0.000000 -0.707100 +vn -0.707100 0.000000 0.707100 +vn 0.258800 0.000000 -0.965900 +vn 0.965900 0.000000 -0.258800 +vn 0.965900 0.000000 0.258800 +vn 0.258800 0.000000 0.965900 +vn -0.258800 0.000000 0.965900 +vn -0.965900 0.000000 0.258800 +vn -0.965900 0.000000 -0.258800 +vn 0.000000 1.000000 0.000000 +vn -0.258800 0.000000 -0.965900 +s off +f 2//1 5//1 8//1 +f 6//2 14//2 13//2 +f 1//3 10//3 9//3 +f 5//4 15//4 12//4 +f 3//5 9//5 14//5 +f 7//6 16//6 15//6 +f 4//7 12//7 11//7 +f 2//8 13//8 16//8 +f 8//9 11//9 10//9 +f 18//10 20//10 19//10 +f 20//8 22//8 21//8 +f 22//11 24//11 23//11 +f 24//12 26//12 25//12 +f 26//4 28//4 27//4 +f 28//13 30//13 29//13 +f 30//14 32//14 31//14 +f 32//9 34//9 33//9 +f 34//15 36//15 35//15 +f 36//16 38//16 37//16 +f 38//17 30//17 22//17 +f 40//18 18//18 17//18 +f 38//5 40//5 39//5 +f 16//17 13//17 19//17 +f 19//17 13//17 17//17 +f 13//17 14//17 17//17 +f 17//17 14//17 39//17 +f 9//17 37//17 39//17 +f 37//17 9//17 35//17 +f 9//17 10//17 35//17 +f 35//17 10//17 33//17 +f 11//17 31//17 33//17 +f 21//17 23//17 16//17 +f 15//17 25//17 27//17 +f 25//17 15//17 23//17 +f 15//17 16//17 23//17 +f 27//17 29//17 12//17 +f 31//17 11//17 29//17 +f 11//17 12//17 29//17 +f 8//1 1//1 3//1 +f 3//1 6//1 2//1 +f 2//1 7//1 5//1 +f 5//1 4//1 8//1 +f 8//1 3//1 2//1 +f 2//2 6//2 13//2 +f 3//3 1//3 9//3 +f 4//4 5//4 12//4 +f 6//5 3//5 14//5 +f 5//6 7//6 15//6 +f 8//7 4//7 11//7 +f 7//8 2//8 16//8 +f 1//9 8//9 10//9 +f 17//10 18//10 19//10 +f 19//8 20//8 21//8 +f 21//11 22//11 23//11 +f 23//12 24//12 25//12 +f 25//4 26//4 27//4 +f 27//13 28//13 29//13 +f 29//14 30//14 31//14 +f 31//9 32//9 33//9 +f 33//15 34//15 35//15 +f 35//16 36//16 37//16 +f 22//17 20//17 18//17 +f 18//17 40//17 22//17 +f 38//17 36//17 30//17 +f 34//17 32//17 30//17 +f 30//17 28//17 22//17 +f 26//17 24//17 22//17 +f 22//17 40//17 38//17 +f 36//17 34//17 30//17 +f 28//17 26//17 22//17 +f 39//18 40//18 17//18 +f 37//5 38//5 39//5 +f 21//17 16//17 19//17 +f 14//17 9//17 39//17 +f 10//17 11//17 33//17 +f 12//17 15//17 27//17 diff --git a/assets/hbm/models/turret_heavy_gun.obj b/assets/hbm/models/turret_heavy_gun.obj new file mode 100644 index 000000000..bcfcbbed3 --- /dev/null +++ b/assets/hbm/models/turret_heavy_gun.obj @@ -0,0 +1,307 @@ +# Blender v2.76 (sub 0) OBJ File: 'turret_heavy_gun.blend' +# www.blender.org +o Cylinder.001 +v 0.000000 0.100000 0.500000 +v 0.000000 0.100000 1.750000 +v 0.070711 0.070711 0.500000 +v 0.070711 0.070711 1.750000 +v 0.100000 -0.000000 0.500000 +v 0.100000 0.000000 1.750000 +v 0.070711 -0.070711 0.500000 +v 0.070711 -0.070711 1.750000 +v -0.000000 -0.100000 0.500000 +v -0.000000 -0.100000 1.750000 +v -0.070711 -0.070711 0.500000 +v -0.070711 -0.070711 1.750000 +v -0.100000 -0.000000 0.500000 +v -0.100000 0.000000 1.750000 +v -0.070711 0.070711 0.500000 +v -0.070711 0.070711 1.750000 +v -0.200000 -0.250000 0.250000 +v -0.200000 0.250000 0.250000 +v -0.200000 -0.100000 -0.750000 +v -0.200000 0.200000 -0.750000 +v 0.200000 -0.250000 0.250000 +v 0.200000 0.250000 0.250000 +v 0.200000 -0.100000 -0.750000 +v 0.200000 0.200000 -0.750000 +v -0.200000 0.250000 -0.250000 +v -0.200000 -0.250000 -0.250000 +v 0.200000 0.250000 -0.250000 +v 0.200000 -0.250000 -0.250000 +v 0.000000 0.150000 0.500000 +v 0.106066 0.106066 0.500000 +v 0.150000 -0.000000 0.500000 +v 0.106066 -0.106066 0.500000 +v -0.000000 -0.150000 0.500000 +v -0.106066 -0.106066 0.500000 +v -0.150000 -0.000000 0.500000 +v -0.106066 0.106066 0.500000 +v 0.106066 0.106066 0.250000 +v 0.150000 -0.000000 0.250000 +v 0.000000 0.150000 0.250000 +v 0.106066 -0.106066 0.250000 +v -0.000000 -0.150000 0.250000 +v -0.106066 -0.106066 0.250000 +v -0.150000 -0.000000 0.250000 +v -0.106066 0.106066 0.250000 +v -0.074375 -0.131250 2.250000 +v -0.148750 0.131250 2.250000 +v -0.074375 -0.131250 1.750000 +v -0.148750 0.131250 1.750000 +v 0.074375 -0.131250 2.250000 +v 0.148750 0.131250 2.250000 +v 0.074375 -0.131250 1.750000 +v 0.148750 0.131250 1.750000 +v 0.000000 0.075000 1.750000 +v 0.000000 0.075000 2.250000 +v 0.053033 0.053033 1.750000 +v 0.053033 0.053033 2.250000 +v 0.075000 -0.000000 1.750000 +v 0.075000 0.000000 2.250000 +v 0.053033 -0.053033 1.750000 +v 0.053033 -0.053033 2.250000 +v -0.000000 -0.075000 1.750000 +v -0.000000 -0.075000 2.250000 +v -0.053033 -0.053033 1.750000 +v -0.053033 -0.053033 2.250000 +v -0.075000 -0.000000 1.750000 +v -0.075000 0.000000 2.250000 +v -0.053033 0.053033 1.750000 +v -0.053033 0.053033 2.250000 +v -0.375000 0.000000 -0.100000 +v 0.375000 0.000000 -0.100000 +v -0.375000 -0.070711 -0.070711 +v 0.375000 -0.070711 -0.070711 +v -0.375000 -0.100000 0.000000 +v 0.375000 -0.100000 0.000000 +v -0.375000 -0.070711 0.070711 +v 0.375000 -0.070711 0.070711 +v -0.375000 0.000000 0.100000 +v 0.375000 0.000000 0.100000 +v -0.375000 0.070711 0.070711 +v 0.375000 0.070711 0.070711 +v -0.375000 0.100000 -0.000000 +v 0.375000 0.100000 -0.000000 +v -0.375000 0.070711 -0.070711 +v 0.375000 0.070711 -0.070711 +v -0.250000 -0.250000 -0.400000 +v -0.250000 0.150000 -0.400000 +v -0.250000 -0.250000 -0.500000 +v -0.250000 0.150000 -0.500000 +v 0.250000 -0.250000 -0.400000 +v 0.250000 0.150000 -0.400000 +v 0.250000 -0.250000 -0.500000 +v 0.250000 0.150000 -0.500000 +v -0.075000 0.200000 0.100000 +v -0.075000 0.319533 0.098137 +v -0.075000 0.200000 -0.400000 +v -0.075000 0.380467 -0.398137 +v 0.075000 0.200000 0.100000 +v 0.075000 0.319533 0.098137 +v 0.075000 0.200000 -0.400000 +v 0.075000 0.380467 -0.398137 +v -0.075000 0.438402 0.110854 +v -0.075000 0.559362 -0.374294 +v 0.075000 0.559362 -0.374294 +v 0.075000 0.438402 0.110854 +v -0.075000 0.554834 0.137964 +v -0.075000 0.734018 -0.328826 +v 0.075000 0.734018 -0.328826 +v 0.075000 0.554834 0.137964 +vn 0.382700 0.923900 -0.000000 +vn 0.923900 0.382700 -0.000000 +vn 0.923900 -0.382700 0.000000 +vn 0.382700 -0.923900 0.000000 +vn -0.382700 -0.923900 0.000000 +vn -0.923900 -0.382700 0.000000 +vn -0.382700 0.923900 -0.000000 +vn -0.923900 0.382700 -0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -0.957800 -0.287300 +vn 0.000000 0.995000 -0.099500 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.962100 -0.272600 0.000000 +vn 0.962100 -0.272600 0.000000 +vn 0.000000 -0.382700 -0.923900 +vn 0.000000 -0.923900 -0.382700 +vn 0.000000 -0.923900 0.382700 +vn 0.000000 -0.382700 0.923900 +vn -0.000000 0.382700 0.923900 +vn -0.000000 0.923900 0.382700 +vn 0.000000 0.382700 -0.923900 +vn -0.000000 0.923900 -0.382700 +vn 0.000000 0.010300 -0.999900 +vn 0.000000 0.015600 0.999900 +vn 0.000000 0.132100 -0.991200 +vn 0.000000 -0.226800 0.973900 +vn 0.000000 -0.106400 0.994300 +vn 0.000000 0.933600 0.358400 +vn 0.000000 0.251900 -0.967700 +s off +f 2//1 4//1 3//1 +f 4//2 6//2 5//2 +f 6//3 8//3 7//3 +f 8//4 10//4 9//4 +f 10//5 12//5 11//5 +f 12//6 14//6 13//6 +f 16//7 2//7 1//7 +f 14//8 16//8 15//8 +f 9//9 33//9 32//9 +f 13//9 15//9 36//9 +f 24//10 23//10 19//10 +f 30//1 37//1 39//1 +f 18//9 17//9 21//9 +f 19//11 23//11 28//11 +f 24//12 20//12 25//12 +f 27//13 25//13 18//13 +f 26//14 28//14 21//14 +f 27//15 22//15 28//15 +f 25//16 19//16 26//16 +f 3//9 5//9 31//9 +f 11//9 34//9 33//9 +f 15//9 1//9 29//9 +f 3//9 30//9 29//9 +f 7//9 32//9 31//9 +f 13//9 35//9 34//9 +f 35//8 36//8 44//8 +f 34//5 42//5 41//5 +f 32//3 40//3 38//3 +f 31//2 38//2 37//2 +f 29//7 39//7 44//7 +f 34//6 35//6 43//6 +f 33//4 41//4 40//4 +f 48//17 47//17 45//17 +f 52//10 51//10 47//10 +f 50//18 49//18 51//18 +f 47//14 51//14 49//14 +f 52//13 48//13 46//13 +f 58//9 50//9 56//9 +f 55//5 56//5 54//5 +f 54//9 46//9 68//9 +f 57//6 58//6 56//6 +f 68//9 46//9 66//9 +f 59//8 60//8 58//8 +f 58//9 60//9 49//9 +f 61//7 62//7 60//7 +f 60//9 62//9 49//9 +f 63//1 64//1 62//1 +f 50//9 46//9 54//9 +f 45//9 49//9 62//9 +f 65//2 66//2 64//2 +f 62//9 64//9 45//9 +f 67//4 53//4 54//4 +f 67//3 68//3 66//3 +f 56//9 50//9 54//9 +f 45//9 64//9 66//9 +f 70//19 72//19 71//19 +f 72//20 74//20 73//20 +f 74//21 76//21 75//21 +f 76//22 78//22 77//22 +f 78//23 80//23 79//23 +f 80//24 82//24 81//24 +f 84//25 70//25 69//25 +f 82//26 84//26 83//26 +f 88//16 87//16 85//16 +f 92//10 91//10 87//10 +f 90//15 89//15 91//15 +f 86//9 85//9 89//9 +f 87//14 91//14 89//14 +f 92//13 88//13 86//13 +f 94//16 96//16 95//16 +f 100//27 99//27 95//27 +f 98//15 97//15 99//15 +f 94//28 93//28 97//28 +f 95//14 99//14 97//14 +f 96//29 102//29 103//29 +f 104//30 108//30 105//30 +f 100//15 103//15 104//15 +f 96//16 94//16 101//16 +f 98//31 104//31 101//31 +f 107//32 106//32 105//32 +f 102//33 106//33 107//33 +f 103//15 107//15 108//15 +f 102//16 101//16 105//16 +f 1//1 2//1 3//1 +f 3//2 4//2 5//2 +f 5//3 6//3 7//3 +f 7//4 8//4 9//4 +f 9//5 10//5 11//5 +f 11//6 12//6 13//6 +f 15//7 16//7 1//7 +f 13//8 14//8 15//8 +f 7//9 9//9 32//9 +f 35//9 13//9 36//9 +f 20//10 24//10 19//10 +f 29//1 30//1 39//1 +f 22//9 18//9 21//9 +f 26//11 19//11 28//11 +f 27//12 24//12 25//12 +f 22//13 27//13 18//13 +f 17//14 26//14 21//14 +f 28//15 23//15 27//15 +f 24//15 27//15 23//15 +f 22//15 21//15 28//15 +f 26//16 17//16 18//16 +f 18//16 25//16 26//16 +f 20//16 19//16 25//16 +f 30//9 3//9 31//9 +f 9//9 11//9 33//9 +f 36//9 15//9 29//9 +f 1//9 3//9 29//9 +f 5//9 7//9 31//9 +f 11//9 13//9 34//9 +f 43//8 35//8 44//8 +f 33//5 34//5 41//5 +f 31//3 32//3 38//3 +f 30//2 31//2 37//2 +f 36//7 29//7 44//7 +f 42//6 34//6 43//6 +f 32//4 33//4 40//4 +f 46//17 48//17 45//17 +f 48//10 52//10 47//10 +f 52//18 50//18 51//18 +f 45//14 47//14 49//14 +f 50//13 52//13 46//13 +f 53//5 55//5 54//5 +f 55//6 57//6 56//6 +f 57//8 59//8 58//8 +f 50//9 58//9 49//9 +f 59//7 61//7 60//7 +f 61//1 63//1 62//1 +f 63//2 65//2 64//2 +f 68//4 67//4 54//4 +f 65//3 67//3 66//3 +f 46//9 45//9 66//9 +f 69//19 70//19 71//19 +f 71//20 72//20 73//20 +f 73//21 74//21 75//21 +f 75//22 76//22 77//22 +f 77//23 78//23 79//23 +f 79//24 80//24 81//24 +f 83//25 84//25 69//25 +f 81//26 82//26 83//26 +f 86//16 88//16 85//16 +f 88//10 92//10 87//10 +f 92//15 90//15 91//15 +f 90//9 86//9 89//9 +f 85//14 87//14 89//14 +f 90//13 92//13 86//13 +f 93//16 94//16 95//16 +f 96//27 100//27 95//27 +f 100//15 98//15 99//15 +f 98//28 94//28 97//28 +f 93//14 95//14 97//14 +f 100//29 96//29 103//29 +f 101//30 104//30 105//30 +f 98//15 100//15 104//15 +f 102//16 96//16 101//16 +f 94//31 98//31 101//31 +f 108//32 107//32 105//32 +f 103//33 102//33 107//33 +f 104//15 103//15 108//15 +f 106//16 102//16 105//16 diff --git a/assets/hbm/models/turret_heavy_rotor.obj b/assets/hbm/models/turret_heavy_rotor.obj new file mode 100644 index 000000000..183be7c1e --- /dev/null +++ b/assets/hbm/models/turret_heavy_rotor.obj @@ -0,0 +1,175 @@ +# Blender v2.76 (sub 0) OBJ File: 'turret_heavy_rotor.blend' +# www.blender.org +o Cylinder +v -0.282588 1.117500 -0.222228 +v -0.282588 0.250000 -0.222229 +v 0.332588 0.250000 -0.222228 +v 0.332588 1.117500 -0.222228 +v 0.369552 0.250000 -0.153073 +v 0.369552 1.192500 -0.153073 +v 0.392314 0.250000 -0.078036 +v 0.392314 1.237500 -0.078036 +v 0.400000 0.250000 -0.000000 +v 0.400000 1.250000 -0.000000 +v 0.392314 0.250000 0.078036 +v 0.392314 1.237500 0.078036 +v 0.369552 0.250000 0.153073 +v 0.369552 1.192500 0.153073 +v 0.332588 0.250000 0.222228 +v 0.332588 1.117500 0.222228 +v -0.319552 1.192500 0.153073 +v -0.319552 0.250000 0.153073 +v -0.282588 1.117500 0.222228 +v -0.282588 0.250000 0.222228 +v 0.282588 1.117500 0.222228 +v 0.282588 0.250000 0.222228 +v 0.319552 1.192500 0.153073 +v 0.319552 0.250000 0.153073 +v 0.342314 1.237500 0.078036 +v 0.342314 0.250000 0.078036 +v 0.350000 1.250000 -0.000000 +v 0.350000 0.250000 -0.000000 +v 0.342314 1.237500 -0.078036 +v 0.342314 0.250000 -0.078036 +v 0.319552 1.192500 -0.153073 +v 0.319552 0.250000 -0.153073 +v 0.282588 1.117500 -0.222228 +v 0.282588 0.250000 -0.222228 +v -0.332588 0.250000 0.222228 +v -0.332588 1.117500 0.222228 +v -0.369552 0.250000 0.153073 +v -0.369552 1.192500 0.153073 +v -0.392314 0.250000 0.078036 +v -0.392314 1.237500 0.078036 +v -0.400000 0.250000 -0.000000 +v -0.400000 1.250000 -0.000000 +v -0.392314 0.250000 -0.078037 +v -0.392314 1.237500 -0.078037 +v -0.369552 0.250000 -0.153074 +v -0.369552 1.192500 -0.153074 +v -0.332588 0.250000 -0.222229 +v -0.332588 1.117500 -0.222228 +v -0.319552 1.192500 -0.153074 +v -0.319552 0.250000 -0.153074 +v -0.342314 1.237500 -0.078037 +v -0.342314 0.250000 -0.078037 +v -0.350000 1.250000 -0.000000 +v -0.350000 0.250000 -0.000000 +v -0.342314 1.237500 0.078036 +v -0.342314 0.250000 0.078036 +v -0.700000 0.507596 0.386824 +v -0.200000 0.507596 0.386824 +v -0.700000 1.342404 0.213176 +v -0.200000 1.492404 0.213176 +v 0.200000 0.507596 0.386824 +v 0.700000 0.507596 0.386824 +v 0.200000 1.492404 0.213176 +v 0.700000 1.342404 0.213176 +vn 0.000000 0.987400 0.158200 +vn 0.000000 0.987400 -0.158200 +vn 0.881900 -0.000000 -0.471400 +vn 0.956900 0.000000 -0.290300 +vn 0.995200 0.000000 -0.098000 +vn 0.995200 0.000000 0.098000 +vn 0.956900 0.000000 0.290300 +vn 0.881900 -0.000000 0.471400 +vn -0.881900 -0.000000 -0.471400 +vn -0.956900 0.000000 -0.290300 +vn -0.995200 0.000000 -0.098000 +vn -0.995200 0.000000 0.098000 +vn -0.956900 0.000000 0.290300 +vn -0.881900 -0.000000 0.471400 +vn 0.000000 0.857600 -0.514300 +vn 0.000000 0.677900 -0.735200 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 0.857600 0.514300 +vn 0.000000 0.677900 0.735200 +vn 0.000000 -0.000000 1.000000 +vn -0.052000 0.173400 0.983500 +vn 0.000000 0.203700 0.979000 +vn 0.052000 0.173400 0.983500 +s off +f 12//1 10//1 27//1 +f 8//2 29//2 27//2 +f 4//3 6//3 5//3 +f 6//4 8//4 7//4 +f 8//5 10//5 9//5 +f 9//6 10//6 12//6 +f 11//7 12//7 14//7 +f 13//8 14//8 16//8 +f 54//6 52//6 51//6 +f 54//5 53//5 55//5 +f 56//4 55//4 17//4 +f 18//3 17//3 19//3 +f 24//9 22//9 21//9 +f 26//10 24//10 23//10 +f 28//11 26//11 25//11 +f 28//12 27//12 29//12 +f 30//13 29//13 31//13 +f 32//14 31//14 33//14 +f 36//14 38//14 37//14 +f 38//13 40//13 39//13 +f 40//12 42//12 41//12 +f 41//11 42//11 44//11 +f 43//10 44//10 46//10 +f 45//9 46//9 48//9 +f 6//15 31//15 29//15 +f 4//16 33//16 31//16 +f 34//17 33//17 4//17 +f 50//8 2//8 1//8 +f 52//7 50//7 49//7 +f 25//18 23//18 14//18 +f 23//19 21//19 16//19 +f 16//20 21//20 22//20 +f 19//20 36//20 35//20 +f 17//19 38//19 36//19 +f 55//18 40//18 38//18 +f 53//1 42//1 40//1 +f 53//2 51//2 44//2 +f 51//15 49//15 46//15 +f 49//16 1//16 48//16 +f 48//17 1//17 2//17 +f 58//21 60//21 59//21 +f 61//22 62//22 64//22 +f 25//1 12//1 27//1 +f 10//2 8//2 27//2 +f 3//3 4//3 5//3 +f 5//4 6//4 7//4 +f 7//5 8//5 9//5 +f 11//6 9//6 12//6 +f 13//7 11//7 14//7 +f 15//8 13//8 16//8 +f 53//6 54//6 51//6 +f 56//5 54//5 55//5 +f 18//4 56//4 17//4 +f 20//3 18//3 19//3 +f 23//9 24//9 21//9 +f 25//10 26//10 23//10 +f 27//11 28//11 25//11 +f 30//12 28//12 29//12 +f 32//13 30//13 31//13 +f 34//14 32//14 33//14 +f 35//14 36//14 37//14 +f 37//13 38//13 39//13 +f 39//12 40//12 41//12 +f 43//11 41//11 44//11 +f 45//10 43//10 46//10 +f 47//9 45//9 48//9 +f 8//15 6//15 29//15 +f 6//16 4//16 31//16 +f 3//17 34//17 4//17 +f 49//8 50//8 1//8 +f 51//7 52//7 49//7 +f 12//18 25//18 14//18 +f 14//19 23//19 16//19 +f 15//20 16//20 22//20 +f 20//20 19//20 35//20 +f 19//19 17//19 36//19 +f 17//18 55//18 38//18 +f 55//1 53//1 40//1 +f 42//2 53//2 44//2 +f 44//15 51//15 46//15 +f 46//16 49//16 48//16 +f 47//17 48//17 2//17 +f 57//22 58//22 59//22 +f 63//23 61//23 64//23 diff --git a/assets/hbm/models/turret_light_gun.obj b/assets/hbm/models/turret_light_gun.obj new file mode 100644 index 000000000..358d6828c --- /dev/null +++ b/assets/hbm/models/turret_light_gun.obj @@ -0,0 +1,371 @@ +# Blender v2.76 (sub 0) OBJ File: 'turret_light_gun.blend' +# www.blender.org +o Cylinder.001 +v 0.150000 0.200000 -0.650000 +v 0.150000 -0.100000 -0.650000 +v 0.150000 0.200000 0.150000 +v 0.150000 -0.200000 0.150000 +v -0.150000 0.200000 -0.650000 +v -0.150000 -0.100000 -0.650000 +v -0.150000 0.200000 0.150000 +v -0.150000 -0.200000 0.150000 +v -0.090000 -0.120000 0.150000 +v 0.090000 -0.120000 0.150000 +v 0.090000 0.170000 0.150000 +v -0.090000 0.170000 0.150000 +v -0.090000 -0.070000 0.650000 +v 0.090000 -0.070000 0.650000 +v 0.090000 0.170000 0.650000 +v -0.090000 0.170000 0.650000 +v 0.000000 0.125000 0.650000 +v 0.000000 0.125000 1.650000 +v 0.017678 0.117678 0.650000 +v 0.017678 0.117678 1.650000 +v 0.025000 0.100000 0.650000 +v 0.025000 0.100000 1.650000 +v 0.017678 0.082322 0.650000 +v 0.017678 0.082322 1.650000 +v -0.000000 0.075000 0.650000 +v -0.000000 0.075000 1.650000 +v -0.017678 0.082322 0.650000 +v -0.017678 0.082322 1.650000 +v -0.025000 0.100000 0.650000 +v -0.025000 0.100000 1.650000 +v -0.017678 0.117678 0.650000 +v -0.017678 0.117678 1.650000 +v 0.000000 0.065000 0.650000 +v 0.000000 0.065000 1.200000 +v 0.010607 0.060607 0.650000 +v 0.010607 0.060607 1.200000 +v 0.015000 0.050000 0.650000 +v 0.015000 0.050000 1.200000 +v 0.010607 0.039393 0.650000 +v 0.010607 0.039393 1.200000 +v -0.000000 0.035000 0.650000 +v -0.000000 0.035000 1.200000 +v -0.010607 0.039393 0.650000 +v -0.010607 0.039393 1.200000 +v -0.015000 0.050000 0.650000 +v -0.015000 0.050000 1.200000 +v -0.010607 0.060607 0.650000 +v -0.010607 0.060607 1.200000 +v -0.200000 -0.150000 0.500000 +v -0.200000 0.050000 0.500000 +v -0.200000 -0.150000 0.200000 +v -0.200000 0.050000 0.200000 +v -0.100000 -0.150000 0.500000 +v -0.100000 0.050000 0.500000 +v -0.100000 -0.150000 0.200000 +v -0.100000 0.050000 0.200000 +v -0.145000 0.050000 0.360000 +v -0.145000 0.050000 0.240000 +v -0.105000 0.050000 0.240000 +v -0.105000 0.050000 0.360000 +v -0.144754 0.083129 0.360000 +v -0.144754 0.083129 0.240000 +v -0.105246 0.076871 0.240000 +v -0.105246 0.076871 0.360000 +v -0.139328 0.115811 0.360000 +v -0.139328 0.115811 0.240000 +v -0.101286 0.103450 0.240000 +v -0.101286 0.103450 0.360000 +v -0.128857 0.147242 0.360000 +v -0.128857 0.147242 0.240000 +v -0.093216 0.129083 0.240000 +v -0.093216 0.129083 0.360000 +v -0.113597 0.176648 0.360000 +v -0.113597 0.176648 0.240000 +v -0.081236 0.153137 0.240000 +v -0.081236 0.153137 0.360000 +v -0.087918 0.207434 0.360000 +v -0.087918 0.207434 0.240000 +v -0.071648 0.170892 0.240000 +v -0.071648 0.170892 0.360000 +v -0.052028 0.221362 0.360000 +v -0.052028 0.221362 0.240000 +v -0.052726 0.181368 0.240000 +v -0.052726 0.181368 0.360000 +v -0.012081 0.217985 0.360000 +v -0.012081 0.217985 0.240000 +v -0.032682 0.183698 0.240000 +v -0.032682 0.183698 0.360000 +v 0.019914 0.196574 0.360000 +v 0.019914 0.196574 0.240000 +v -0.013247 0.174207 0.240000 +v -0.013247 0.174207 0.360000 +v 0.039863 0.163648 0.360000 +v 0.039863 0.163648 0.240000 +v 0.000356 0.157391 0.240000 +v 0.000356 0.157391 0.360000 +v -0.200000 -0.150000 -0.475000 +v -0.200000 0.150000 -0.475000 +v -0.200000 -0.150000 -0.525000 +v -0.200000 0.150000 -0.525000 +v 0.200000 -0.150000 -0.475000 +v 0.200000 0.150000 -0.475000 +v 0.200000 -0.150000 -0.525000 +v 0.200000 0.150000 -0.525000 +v -0.050000 -0.025000 -0.200000 +v -0.050000 0.225000 -0.200000 +v -0.050000 -0.025000 -0.700000 +v -0.050000 0.225000 -0.700000 +v 0.050000 -0.025000 -0.200000 +v 0.050000 0.225000 -0.200000 +v 0.050000 -0.025000 -0.700000 +v 0.050000 0.225000 -0.700000 +v -0.375000 0.000000 -0.100000 +v 0.375000 0.000000 -0.100000 +v -0.375000 -0.070711 -0.070711 +v 0.375000 -0.070711 -0.070711 +v -0.375000 -0.100000 0.000000 +v 0.375000 -0.100000 0.000000 +v -0.375000 -0.070711 0.070711 +v 0.375000 -0.070711 0.070711 +v -0.375000 0.000000 0.100000 +v 0.375000 0.000000 0.100000 +v -0.375000 0.070711 0.070711 +v 0.375000 0.070711 0.070711 +v -0.375000 0.100000 -0.000000 +v 0.375000 0.100000 -0.000000 +v -0.375000 0.070711 -0.070711 +v 0.375000 0.070711 -0.070711 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.992300 -0.124000 +vn -0.000000 0.000000 1.000000 +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.995000 0.099500 +vn 0.382700 0.923900 -0.000000 +vn 0.923900 0.382700 -0.000000 +vn 0.923900 -0.382700 0.000000 +vn 0.382700 -0.923900 0.000000 +vn -0.382700 -0.923900 0.000000 +vn -0.923900 -0.382700 0.000000 +vn -0.382700 0.923900 -0.000000 +vn -0.923900 0.382700 -0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.989100 -0.147400 0.000000 +vn 1.000000 0.009200 0.000000 +vn -1.000000 0.007400 0.000000 +vn -0.948700 0.316100 0.000000 +vn -0.986500 0.163800 0.000000 +vn 0.953800 -0.300300 0.000000 +vn 0.879900 -0.475200 0.000000 +vn 0.895100 -0.445800 0.000000 +vn -0.887600 0.460600 0.000000 +vn -0.767900 0.640500 0.000000 +vn 0.484400 -0.874900 0.000000 +vn -0.361800 0.932300 0.000000 +vn -0.438800 -0.898600 0.000000 +vn 0.115500 -0.993300 0.000000 +vn 0.084200 0.996400 0.000000 +vn 0.556200 0.831100 0.000000 +vn -0.777500 -0.628900 0.000000 +vn 0.855300 0.518200 0.000000 +vn 0.000000 -0.382700 -0.923900 +vn 0.000000 -0.923900 -0.382700 +vn 0.000000 -0.923900 0.382700 +vn 0.000000 -0.382700 0.923900 +vn -0.000000 0.382700 0.923900 +vn -0.000000 0.923900 0.382700 +vn -0.000000 0.382700 -0.923900 +vn -0.000000 0.923900 -0.382700 +vn 0.556100 0.831100 0.000000 +s off +f 1//1 5//1 7//1 +f 6//2 2//2 4//2 +f 3//3 11//3 10//3 +f 3//4 4//4 2//4 +f 1//5 2//5 6//5 +f 7//6 5//6 6//6 +f 11//4 15//4 14//4 +f 7//3 12//3 11//3 +f 4//3 10//3 9//3 +f 7//3 8//3 9//3 +f 16//3 13//3 14//3 +f 10//7 14//7 13//7 +f 12//6 9//6 13//6 +f 12//1 16//1 15//1 +f 18//8 20//8 19//8 +f 20//9 22//9 21//9 +f 22//10 24//10 23//10 +f 24//11 26//11 25//11 +f 26//12 28//12 27//12 +f 28//13 30//13 29//13 +f 34//8 36//8 35//8 +f 32//14 18//14 17//14 +f 30//15 32//15 31//15 +f 36//9 38//9 37//9 +f 38//10 40//10 39//10 +f 40//11 42//11 41//11 +f 42//12 44//12 43//12 +f 43//13 44//13 46//13 +f 48//14 34//14 33//14 +f 46//15 48//15 47//15 +f 44//3 42//3 38//3 +f 52//6 51//6 49//6 +f 56//5 55//5 51//5 +f 54//4 53//4 55//4 +f 50//3 49//3 53//3 +f 51//16 55//16 53//16 +f 56//1 52//1 58//1 +f 57//3 60//3 64//3 +f 56//1 59//1 60//1 +f 52//1 50//1 57//1 +f 54//1 60//1 57//1 +f 63//17 67//17 68//17 +f 58//5 62//5 63//5 +f 59//18 63//18 64//18 +f 57//19 61//19 62//19 +f 65//20 69//20 70//20 +f 61//21 65//21 66//21 +f 61//3 64//3 68//3 +f 62//5 66//5 67//5 +f 69//3 72//3 76//3 +f 65//3 68//3 72//3 +f 66//5 70//5 71//5 +f 67//22 71//22 72//22 +f 75//23 79//23 80//23 +f 70//5 74//5 75//5 +f 71//24 75//24 76//24 +f 69//25 73//25 74//25 +f 77//3 80//3 84//3 +f 73//26 77//26 78//26 +f 73//3 76//3 80//3 +f 74//5 78//5 79//5 +f 82//5 86//5 87//5 +f 78//5 82//5 83//5 +f 79//27 83//27 84//27 +f 77//28 81//28 82//28 +f 87//29 91//29 92//29 +f 83//30 87//30 88//30 +f 81//31 85//31 86//31 +f 81//3 84//3 88//3 +f 89//3 92//3 96//3 +f 85//32 89//32 90//32 +f 85//3 88//3 92//3 +f 86//5 90//5 91//5 +f 100//6 99//6 97//6 +f 90//5 94//5 95//5 +f 91//33 95//33 96//33 +f 89//34 93//34 94//34 +f 104//5 103//5 99//5 +f 102//4 101//4 103//4 +f 98//3 97//3 101//3 +f 99//16 103//16 101//16 +f 104//1 100//1 98//1 +f 108//6 107//6 105//6 +f 112//5 111//5 107//5 +f 110//4 109//4 111//4 +f 106//3 105//3 109//3 +f 107//16 111//16 109//16 +f 112//1 108//1 106//1 +f 114//35 116//35 115//35 +f 116//36 118//36 117//36 +f 118//37 120//37 119//37 +f 120//38 122//38 121//38 +f 122//39 124//39 123//39 +f 124//40 126//40 125//40 +f 128//41 114//41 113//41 +f 126//42 128//42 127//42 +f 3//1 1//1 7//1 +f 8//2 6//2 4//2 +f 4//3 3//3 10//3 +f 1//4 3//4 2//4 +f 5//5 1//5 6//5 +f 8//6 7//6 6//6 +f 10//4 11//4 14//4 +f 3//3 7//3 11//3 +f 8//3 4//3 9//3 +f 12//3 7//3 9//3 +f 15//3 16//3 14//3 +f 9//7 10//7 13//7 +f 16//6 12//6 13//6 +f 11//1 12//1 15//1 +f 17//8 18//8 19//8 +f 19//9 20//9 21//9 +f 21//10 22//10 23//10 +f 23//11 24//11 25//11 +f 25//12 26//12 27//12 +f 27//13 28//13 29//13 +f 33//8 34//8 35//8 +f 31//14 32//14 17//14 +f 29//15 30//15 31//15 +f 35//9 36//9 37//9 +f 37//10 38//10 39//10 +f 39//11 40//11 41//11 +f 41//12 42//12 43//12 +f 45//13 43//13 46//13 +f 47//14 48//14 33//14 +f 45//15 46//15 47//15 +f 38//3 36//3 34//3 +f 34//3 48//3 38//3 +f 46//3 44//3 38//3 +f 42//3 40//3 38//3 +f 38//3 48//3 46//3 +f 50//6 52//6 49//6 +f 52//5 56//5 51//5 +f 56//4 54//4 55//4 +f 54//3 50//3 53//3 +f 49//16 51//16 53//16 +f 59//1 56//1 58//1 +f 61//3 57//3 64//3 +f 54//1 56//1 60//1 +f 58//1 52//1 57//1 +f 50//1 54//1 57//1 +f 64//17 63//17 68//17 +f 59//5 58//5 63//5 +f 60//18 59//18 64//18 +f 58//19 57//19 62//19 +f 66//20 65//20 70//20 +f 62//21 61//21 66//21 +f 65//3 61//3 68//3 +f 63//5 62//5 67//5 +f 73//3 69//3 76//3 +f 69//3 65//3 72//3 +f 67//5 66//5 71//5 +f 68//22 67//22 72//22 +f 76//23 75//23 80//23 +f 71//5 70//5 75//5 +f 72//24 71//24 76//24 +f 70//25 69//25 74//25 +f 81//3 77//3 84//3 +f 74//26 73//26 78//26 +f 77//3 73//3 80//3 +f 75//5 74//5 79//5 +f 83//5 82//5 87//5 +f 79//5 78//5 83//5 +f 80//27 79//27 84//27 +f 78//28 77//28 82//28 +f 88//29 87//29 92//29 +f 84//30 83//30 88//30 +f 82//31 81//31 86//31 +f 85//3 81//3 88//3 +f 93//3 89//3 96//3 +f 86//43 85//43 90//43 +f 89//3 85//3 92//3 +f 87//5 86//5 91//5 +f 98//6 100//6 97//6 +f 91//5 90//5 95//5 +f 92//33 91//33 96//33 +f 90//34 89//34 94//34 +f 100//5 104//5 99//5 +f 104//4 102//4 103//4 +f 102//3 98//3 101//3 +f 97//16 99//16 101//16 +f 102//1 104//1 98//1 +f 106//6 108//6 105//6 +f 108//5 112//5 107//5 +f 112//4 110//4 111//4 +f 110//3 106//3 109//3 +f 105//16 107//16 109//16 +f 110//1 112//1 106//1 +f 113//35 114//35 115//35 +f 115//36 116//36 117//36 +f 117//37 118//37 119//37 +f 119//38 120//38 121//38 +f 121//39 122//39 123//39 +f 123//40 124//40 125//40 +f 127//41 128//41 113//41 +f 125//42 126//42 127//42 diff --git a/assets/hbm/models/turret_rocket_gun.obj b/assets/hbm/models/turret_rocket_gun.obj new file mode 100644 index 000000000..7a2849f3b --- /dev/null +++ b/assets/hbm/models/turret_rocket_gun.obj @@ -0,0 +1,347 @@ +# Blender v2.76 (sub 0) OBJ File: 'turret_rocket_gun.blend' +# www.blender.org +o Cylinder.001 +v 0.130000 0.200000 -0.500000 +v 0.130000 -0.200000 -0.500000 +v 0.130000 0.200000 1.250000 +v 0.130000 -0.200000 1.250000 +v -0.130000 0.200000 -0.500000 +v -0.130000 -0.200000 -0.500000 +v -0.130000 0.200000 1.250000 +v -0.130000 -0.200000 1.250000 +v 0.200000 0.130000 -0.500000 +v 0.200000 -0.130000 -0.500000 +v 0.200000 0.130000 1.250000 +v 0.200000 -0.130000 1.250000 +v -0.200000 0.130000 -0.500000 +v -0.200000 -0.130000 -0.500000 +v -0.200000 0.130000 1.250000 +v -0.200000 -0.130000 1.250000 +v -0.075000 -0.012500 0.250000 +v -0.075000 -0.012500 1.250000 +v -0.030806 -0.030806 0.250000 +v -0.030806 -0.030806 1.250000 +v -0.012500 -0.075000 0.250000 +v -0.012500 -0.075000 1.250000 +v -0.030806 -0.119194 0.250000 +v -0.030806 -0.119194 1.250000 +v -0.075000 -0.137500 0.250000 +v -0.075000 -0.137500 1.250000 +v -0.119194 -0.119194 0.250000 +v -0.119194 -0.119194 1.250000 +v -0.137500 -0.075000 0.250000 +v -0.137500 -0.075000 1.250000 +v -0.119194 -0.030806 0.250000 +v -0.119194 -0.030806 1.250000 +v 0.075000 -0.012500 0.250000 +v 0.075000 -0.012500 1.250000 +v 0.119194 -0.030806 0.250000 +v 0.119194 -0.030806 1.250000 +v 0.137500 -0.075000 0.250000 +v 0.137500 -0.075000 1.250000 +v 0.119194 -0.119194 0.250000 +v 0.119194 -0.119194 1.250000 +v 0.075000 -0.137500 0.250000 +v 0.075000 -0.137500 1.250000 +v 0.030806 -0.119194 0.250000 +v 0.030806 -0.119194 1.250000 +v 0.012500 -0.075000 0.250000 +v 0.012500 -0.075000 1.250000 +v 0.030806 -0.030806 0.250000 +v 0.030806 -0.030806 1.250000 +v -0.075000 0.137500 0.250000 +v -0.075000 0.137500 1.250000 +v -0.030806 0.119194 0.250000 +v -0.030806 0.119194 1.250000 +v -0.012500 0.075000 0.250000 +v -0.012500 0.075000 1.250000 +v -0.030806 0.030806 0.250000 +v -0.030806 0.030806 1.250000 +v -0.075000 0.012500 0.250000 +v -0.075000 0.012500 1.250000 +v -0.119194 0.030806 0.250000 +v -0.119194 0.030806 1.250000 +v -0.137500 0.075000 0.250000 +v -0.137500 0.075000 1.250000 +v -0.119194 0.119194 0.250000 +v -0.119194 0.119194 1.250000 +v 0.075000 0.137500 0.250000 +v 0.075000 0.137500 1.250000 +v 0.119194 0.119194 0.250000 +v 0.119194 0.119194 1.250000 +v 0.137500 0.075000 0.250000 +v 0.137500 0.075000 1.250000 +v 0.119194 0.030806 0.250000 +v 0.119194 0.030806 1.250000 +v 0.075000 0.012500 0.250000 +v 0.075000 0.012500 1.250000 +v 0.030806 0.030806 0.250000 +v 0.030806 0.030806 1.250000 +v 0.012500 0.075000 0.250000 +v 0.012500 0.075000 1.250000 +v 0.030806 0.119194 0.250000 +v 0.030806 0.119194 1.250000 +v -0.100000 -0.200000 -0.500000 +v -0.100000 0.125000 -0.500000 +v -0.060000 0.050000 -0.800000 +v 0.100000 -0.200000 -0.500000 +v 0.100000 0.125000 -0.500000 +v 0.060000 0.050000 -0.800000 +v -0.100000 -0.250000 -0.500000 +v 0.100000 -0.250000 -0.500000 +v -0.060000 -0.250000 -0.800000 +v 0.060000 -0.250000 -0.800000 +v 0.180000 0.400000 0.131250 +v 0.180000 0.400000 -0.131250 +v -0.375000 0.000000 -0.100000 +v 0.375000 0.000000 -0.100000 +v -0.375000 -0.070711 -0.070711 +v 0.375000 -0.070711 -0.070711 +v -0.375000 -0.100000 0.000000 +v 0.375000 -0.100000 0.000000 +v -0.375000 -0.070711 0.070711 +v 0.375000 -0.070711 0.070711 +v -0.375000 0.000000 0.100000 +v 0.375000 0.000000 0.100000 +v -0.375000 0.070711 0.070711 +v 0.375000 0.070711 0.070711 +v -0.375000 0.100000 -0.000000 +v 0.375000 0.100000 -0.000000 +v -0.375000 0.070711 -0.070711 +v 0.375000 0.070711 -0.070711 +v -0.005000 0.400000 -0.131250 +v -0.005000 0.400000 0.131250 +v 0.250000 0.330000 -0.131250 +v 0.250000 -0.080000 -0.131250 +v 0.250000 0.330000 0.131250 +v 0.250000 -0.080000 0.131250 +vn 0.000000 1.000000 0.000000 +vn 0.707100 -0.707100 0.000000 +vn 0.707100 0.707100 0.000000 +vn -0.707100 0.707100 0.000000 +vn 1.000000 0.000000 0.000000 +vn -0.707100 -0.707100 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.382700 -0.923900 0.000000 +vn -0.923900 -0.382700 0.000000 +vn -0.923900 0.382700 -0.000000 +vn -0.382700 0.923900 -0.000000 +vn 0.382700 0.923900 -0.000000 +vn 0.923900 0.382700 -0.000000 +vn 0.382700 -0.923900 0.000000 +vn 0.923900 -0.382700 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 0.970100 -0.242500 +vn 0.991200 0.000000 -0.132200 +vn -0.991200 0.000000 -0.132200 +vn 0.000000 -0.382700 -0.923900 +vn 0.000000 -0.923900 -0.382700 +vn 0.000000 -0.923900 0.382700 +vn 0.000000 -0.382700 0.923900 +vn -0.000000 0.382700 0.923900 +vn -0.000000 0.923900 0.382700 +vn -0.000000 0.382700 -0.923900 +vn -0.000000 0.923900 -0.382700 +s off +f 1//1 5//1 7//1 +f 10//2 12//2 4//2 +f 11//3 9//3 1//3 +f 13//4 15//4 7//4 +f 11//5 12//5 10//5 +f 16//6 14//6 6//6 +f 13//7 14//7 16//7 +f 19//8 20//8 18//8 +f 21//9 22//9 20//9 +f 23//10 24//10 22//10 +f 25//11 26//11 24//11 +f 27//12 28//12 26//12 +f 29//13 30//13 28//13 +f 17//14 18//14 32//14 +f 31//15 32//15 30//15 +f 27//16 21//16 19//16 +f 35//8 36//8 34//8 +f 37//9 38//9 36//9 +f 39//10 40//10 38//10 +f 41//11 42//11 40//11 +f 43//12 44//12 42//12 +f 45//13 46//13 44//13 +f 33//14 34//14 48//14 +f 47//15 48//15 46//15 +f 43//16 37//16 35//16 +f 51//8 52//8 50//8 +f 53//9 54//9 52//9 +f 55//10 56//10 54//10 +f 57//11 58//11 56//11 +f 59//12 60//12 58//12 +f 61//13 62//13 60//13 +f 49//14 50//14 64//14 +f 63//15 64//15 62//15 +f 59//16 53//16 51//16 +f 67//8 68//8 66//8 +f 69//9 70//9 68//9 +f 71//10 72//10 70//10 +f 73//11 74//11 72//11 +f 75//12 76//12 74//12 +f 77//13 78//13 76//13 +f 65//14 66//14 80//14 +f 79//15 80//15 78//15 +f 75//16 69//16 67//16 +f 56//16 58//16 18//16 +f 74//16 76//16 48//16 +f 76//16 78//16 54//16 +f 56//16 20//16 48//16 +f 22//16 46//16 48//16 +f 44//16 46//16 22//16 +f 72//16 74//16 34//16 +f 54//16 78//16 80//16 +f 52//16 80//16 66//16 +f 7//16 50//16 66//16 +f 66//16 68//16 3//16 +f 3//16 68//16 11//16 +f 68//16 70//16 11//16 +f 70//16 72//16 36//16 +f 11//16 70//16 38//16 +f 38//16 40//16 12//16 +f 12//16 40//16 4//16 +f 40//16 42//16 4//16 +f 58//16 60//16 32//16 +f 32//16 60//16 62//16 +f 50//16 7//16 64//16 +f 7//16 15//16 64//16 +f 64//16 15//16 62//16 +f 15//16 16//16 30//16 +f 30//16 16//16 28//16 +f 16//16 8//16 28//16 +f 28//16 8//16 26//16 +f 42//16 44//16 24//16 +f 42//16 26//16 8//16 +f 86//17 90//17 89//17 +f 6//18 81//18 8//18 +f 81//17 14//17 82//17 +f 86//19 83//19 82//19 +f 84//17 85//17 10//17 +f 1//17 85//17 82//17 +f 89//18 90//18 88//18 +f 81//16 87//16 88//16 +f 84//20 88//20 90//20 +f 83//21 89//21 81//21 +f 94//22 96//22 95//22 +f 96//23 98//23 97//23 +f 98//24 100//24 99//24 +f 100//25 102//25 101//25 +f 102//26 104//26 103//26 +f 113//5 114//5 112//5 +f 104//27 106//27 105//27 +f 113//3 111//3 92//3 +f 108//28 94//28 93//28 +f 106//29 108//29 107//29 +f 92//1 109//1 110//1 +f 3//1 1//1 7//1 +f 2//2 10//2 4//2 +f 3//3 11//3 1//3 +f 5//4 13//4 7//4 +f 9//5 11//5 10//5 +f 8//6 16//6 6//6 +f 15//7 13//7 16//7 +f 17//8 19//8 18//8 +f 19//9 21//9 20//9 +f 21//10 23//10 22//10 +f 23//11 25//11 24//11 +f 25//12 27//12 26//12 +f 27//13 29//13 28//13 +f 31//14 17//14 32//14 +f 29//15 31//15 30//15 +f 19//16 17//16 27//16 +f 31//16 29//16 27//16 +f 27//16 25//16 23//16 +f 23//16 21//16 27//16 +f 17//16 31//16 27//16 +f 33//8 35//8 34//8 +f 35//9 37//9 36//9 +f 37//10 39//10 38//10 +f 39//11 41//11 40//11 +f 41//12 43//12 42//12 +f 43//13 45//13 44//13 +f 47//14 33//14 48//14 +f 45//15 47//15 46//15 +f 35//16 33//16 43//16 +f 47//16 45//16 43//16 +f 43//16 41//16 39//16 +f 39//16 37//16 43//16 +f 33//16 47//16 43//16 +f 49//8 51//8 50//8 +f 51//9 53//9 52//9 +f 53//10 55//10 54//10 +f 55//11 57//11 56//11 +f 57//12 59//12 58//12 +f 59//13 61//13 60//13 +f 63//14 49//14 64//14 +f 61//15 63//15 62//15 +f 51//16 49//16 59//16 +f 63//16 61//16 59//16 +f 59//16 57//16 55//16 +f 55//16 53//16 59//16 +f 49//16 63//16 59//16 +f 65//8 67//8 66//8 +f 67//9 69//9 68//9 +f 69//10 71//10 70//10 +f 71//11 73//11 72//11 +f 73//12 75//12 74//12 +f 75//13 77//13 76//13 +f 79//14 65//14 80//14 +f 77//15 79//15 78//15 +f 67//16 65//16 75//16 +f 79//16 77//16 75//16 +f 75//16 73//16 71//16 +f 71//16 69//16 75//16 +f 65//16 79//16 75//16 +f 20//16 56//16 18//16 +f 34//16 74//16 48//16 +f 56//16 76//16 54//16 +f 76//16 56//16 48//16 +f 20//16 22//16 48//16 +f 24//16 44//16 22//16 +f 36//16 72//16 34//16 +f 52//16 54//16 80//16 +f 50//16 52//16 66//16 +f 3//16 7//16 66//16 +f 38//16 70//16 36//16 +f 12//16 11//16 38//16 +f 18//16 58//16 32//16 +f 30//16 32//16 62//16 +f 62//16 15//16 30//16 +f 26//16 42//16 24//16 +f 4//16 42//16 8//16 +f 83//17 86//17 89//17 +f 4//18 8//18 81//18 +f 6//16 84//16 81//16 +f 81//18 2//18 4//18 +f 81//16 84//16 6//16 +f 5//17 82//17 13//17 +f 14//17 13//17 82//17 +f 81//17 6//17 14//17 +f 85//19 86//19 82//19 +f 2//16 81//16 84//16 +f 9//17 10//17 85//17 +f 85//17 1//17 9//17 +f 2//17 84//17 10//17 +f 5//17 1//17 82//17 +f 87//18 89//18 88//18 +f 84//16 81//16 88//16 +f 90//20 86//20 84//20 +f 85//20 84//20 86//20 +f 87//21 81//21 89//21 +f 82//21 83//21 81//21 +f 93//22 94//22 95//22 +f 95//23 96//23 97//23 +f 97//24 98//24 99//24 +f 99//25 100//25 101//25 +f 101//26 102//26 103//26 +f 111//5 113//5 112//5 +f 103//27 104//27 105//27 +f 91//3 113//3 92//3 +f 107//28 108//28 93//28 +f 105//29 106//29 107//29 +f 91//1 92//1 110//1 diff --git a/assets/hbm/textures/blocks/ore_rare.png b/assets/hbm/textures/blocks/ore_rare.png new file mode 100644 index 0000000000000000000000000000000000000000..768e3bc87823bef2524e8d7921b25e3a8243c003 GIT binary patch literal 526 zcmV+p0`dKcP)yC!O0YJO6z1&+b)KRWHst&O<~{N&(O`4P{wkjN!d|(PhD9 zBuN5*QVOLMP1B&Y2EaLY6zIAxs82>C_QMbavMgh>*&rgvd@|u@UGsUdKt%We@O`^Q zL=X`Uag4PV5h0&Wu@4W32+ld2bL@wKX`Y9Mk?(Y0*WBiLz;@2D@-sU}mSu0oYnq10 zImd0D2Sk96<1u~TvmXXTgs$uO_54iRw#?HM0BbE;Ya*{~j0uIyx(1*q3J!qQn)~Gv zrPM2urfImUs_MlbT&~H7wKi}^E3_khd2&G^EBn_av3}j z5qNw=oya19FE=-E!ar380ukYEu?U~d|4QfF(Ys50Yb|A2hRf&1xeH-{ze)q`h!6NJ Qy#N3J07*qoM6N<$f?$^I_W%F@ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/gui_crate_iron.png b/assets/hbm/textures/gui/gui_crate_iron.png new file mode 100644 index 0000000000000000000000000000000000000000..3dd1f2de095c6ab8145dbbf9ad04c010b08876b6 GIT binary patch literal 1143 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGwro~Mgr zNX4ADcLTkmxkcJ8%D${HVm|2kV^ZQ%)#ej2O%pUN=6`WKrMvCPHZ}JCzt^g?_x@qa z|7*a0C-0g4^v3mxpKt0vi2wLlxYBa|`T4(`9{AhZ*`4b+5Np$;U$<|@;fDr~t*`CA zab`Eeo_+i3?yYXLFR+@MmiDZ|=G+gz2WtHG{|}1WZ?XCFzn3i9 z)qiHMsH&PZeY&`Hncbevck}Y^J^a3oE#cYQ`UARUyYKGVv**Uf&ktqom+q3uXH@WE zAQruOW!tcP`SP1@%gpNqtji*npFI&C z_WHv$6S^JB!uCH_x=>`p++e^+G!k!ov!<^7=?;#R^sm->OuENi6|7g^FBHtMoX6-e zgMnxSw*GKY4A61EWW^h&Jyx19_v-r{99v}06YXnY_?!V-pJ*Ab&vZ~~Cr63>Jtm@@ zaO0{x`@Q$y&FdRX|Lv=^j?YftefQp;!|!8x51d)^>idz~neToWetlZO&5+1MGzx#u zxaKWb?}jge!hd31_T7FK!Ra`IG~lSJwa4zCIJrTMsH%7(8A5T-G@y GGywp+cA6Fd literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/gui_crate_steel.png b/assets/hbm/textures/gui/gui_crate_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..1572eb4c299671365d5b1275f8b2cb3e26adfac0 GIT binary patch literal 1256 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|G$6%N?Bp530R%N1DIGxWd`}n0 zkcv5P?_Tts9Vy{@k$aZaiw2>Xw(J6akq2pid{oypu-$2T&bZJ~pi=0Kw%*O`y{b~O zI%+u&;~zcF`}5r9LHds0@5DcBulVgU@B8n++xH3li1qjPPwqJ2dxt;%&mV)`ck_7e zZ@hQJUjF~1r%#_+$Fcv}cKM~rw%czlWcZ#xv~FB|XaE0Z{kn{u|NsAI`4P>@(1IV; z{>nV?ect@}>;EzI_xC@pu(`GI^V7NQ?d_|}e{Ah$lz9BL{(!03?6Vef{bg@zDv$fG zJoi|akfF#{#_nPN@Z*OC(1@$@NBU&1m6#v1c>n#k;j!oO{O^<|%oQ!Oi(|2x>zCYP z$k%>YV*UTNpGxA5Z*=xQR=Qv_kI`WU1JS74p={dyL^-%_J*JzHb;n&7RN62%7%&oz z!1@o{z;(y4Y})*%uiN2s1sg*m6VV8)zr7N!dk05K`cGN$#%CXS7!I)zjllZ(KErhv z3Z6Lk$y$%;>|;q%qG2c4_GddQ1UbTq-hWT-`S|if z6EFh9Zv3ned{JW6Yj_NpqLcUhlYZ6>55j?rfS5fTEZRkaFUt0?LQ~R)ZhppC)@_>) zojbnzz@5I;2Y{*XV?mW%KBIyU1F`5#XoB_W_Xho|5B#xM$8^7MJA;542>sE>zyGgT zI{*FrbGz@JQ=cw>)VSgG-v3YLZomC@`(A+`!ux*YKYpzK;g9Zmrhjwv>wu*ZevmM! Yp7HRvh=RuEh+`m?p00i_>zopr03Rp8v;Y7A literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/gui/gui_planner.png b/assets/hbm/textures/gui/gui_planner.png new file mode 100644 index 0000000000000000000000000000000000000000..a30985cfae8fa3c47fc241a4e15f16ab108fd255 GIT binary patch literal 1688 zcmb7Fe^3&36#qh`;ElqxQp!qKI8)QkacOF3XDaz4uGGk1Q5rdat~8yBqSd*|)LmIR z6P13ew8Fqi1b~?UIOe0`wl)F@Pi93j1%%=4nwboD z!GyXxw3s#n!jbK3-Q3)Y_wG)oQ0%bXEF!b#NJD7wZ?wk7#s~dWd4@BTq+r0mtpKQD zg+fsx=6R0@s_%-ey{}=Dpnu$*dlM%axi`3fZXIqu(-Nfkzyhs73LX~tHAtBtz!H;^M9Y4s!zt<~ zJ}6jDt;-7MKrsINNzKxOZ&k;tm{1c>*fJA9?mXx57!KH+&|4Vhn4D!rDCkem&aOyV zQ-T4)ij}!-CV+cbQYlxN=F}cQjyprD{B~$@1)%FvCpr21naZu=dDr@PdyYZJn3qb$}>TqtrKX;KFdq4n=wlbn#Y zj4Xy9PFl|FXaKV}D&JK-wiaESa8kSHpnpt{mJNKDv=^kV_rSggY80(Bj)_YF%L3*l z$8BIuu}ZZiwC7L|Xp-$a1+Py_1^(HwD{?sxjdJ*+sSVIc6=nm>)fVjToEmCp(bz@6 zE2qqVp5sk}o&nfW&16CL@*x5&?+^+W*)XedR5R~i-v+TjIOg%G?ii}k5G2}8L{r=h zM~>%?npRl%yodp@3C2$+bV+lClhd=$(C2&WutfJ}1bl(b)wd$J*+_HQB{A*@LvVgq z*lL7_jl93RgUETid&u-3tNumrKEDBa#p(mgNrnBP=7P(Sht|@jx<%(kj&qE{ zTI6%$kz~f$`$hb8Q2sT_hZCg7MF8)reb}k3t{j6J-g}fU 30) + pitch = 30; + + if(i != 0 && i % 20 == 0) { + Vec3 vector = Vec3.createVectorHelper( + -Math.sin(yaw / 180.0F * (float) Math.PI) * Math.cos(pitch / 180.0F * (float) Math.PI), + -Math.sin(pitch / 180.0F * (float) Math.PI), + Math.cos(yaw / 180.0F * (float) Math.PI) * Math.cos(pitch / 180.0F * (float) Math.PI)); + + vector.normalize(); + + if(!world.isRemote) { + EntityBullet bullet = new EntityBullet(world); + bullet.posX = x + vector.xCoord * 2 + 0.5; + bullet.posY = y + vector.yCoord * 2 + 1; + bullet.posZ = z + vector.zCoord * 2 + 0.5; + + bullet.motionX = vector.xCoord * 3; + bullet.motionY = vector.yCoord * 3; + bullet.motionZ = vector.zCoord * 3; + + bullet.damage = rand.nextInt(21) + 60; + + world.spawnEntityInWorld(bullet); + + EntityGasFlameFX fx = new EntityGasFlameFX(world); + fx.posX = x + vector.xCoord * 2 + 0.5; + fx.posY = y + vector.yCoord * 2 + 1; + fx.posZ = z + vector.zCoord * 2 + 0.5; + world.spawnEntityInWorld(fx); + } + + world.playSoundEffect(x, y, z, "hbm:weapon.defabShoot", 1.0F, 0.75F); + } + } + + @Override + public void executeReleaseAction(World world, int i, double yaw, double pitch, int x, int y, int z) { } + +} diff --git a/com/hbm/blocks/bomb/TurretLight.java b/com/hbm/blocks/bomb/TurretLight.java new file mode 100644 index 000000000..53cf8c6bc --- /dev/null +++ b/com/hbm/blocks/bomb/TurretLight.java @@ -0,0 +1,62 @@ +package com.hbm.blocks.bomb; + +import com.hbm.entity.particle.EntityGasFlameFX; +import com.hbm.entity.projectile.EntityBullet; +import com.hbm.tileentity.TileEntityTurretHeavy; +import com.hbm.tileentity.TileEntityTurretLight; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TurretLight extends TurretBase { + + public TurretLight(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityTurretLight(); + } + + @Override + public void executeHoldAction(World world, int i, double yaw, double pitch, int x, int y, int z) { + + if(pitch < -60) + pitch = -60; + if(pitch > 30) + pitch = 30; + + if(i != 0 && i % 2 == 0) { + Vec3 vector = Vec3.createVectorHelper( + -Math.sin(yaw / 180.0F * (float) Math.PI) * Math.cos(pitch / 180.0F * (float) Math.PI), + -Math.sin(pitch / 180.0F * (float) Math.PI), + Math.cos(yaw / 180.0F * (float) Math.PI) * Math.cos(pitch / 180.0F * (float) Math.PI)); + + vector.normalize(); + + if(!world.isRemote) { + EntityBullet bullet = new EntityBullet(world); + bullet.posX = x + vector.xCoord * 1.5 + 0.5; + bullet.posY = y + vector.yCoord * 1.5 + 1.1; + bullet.posZ = z + vector.zCoord * 1.5 + 0.5; + + bullet.motionX = vector.xCoord * 3; + bullet.motionY = vector.yCoord * 3; + bullet.motionZ = vector.zCoord * 3; + + bullet.damage = rand.nextInt(21) + 10; + + world.spawnEntityInWorld(bullet); + } + + world.playSoundEffect(x, y, z, "hbm:weapon.rifleShoot", 1.0F, 0.5F + rand.nextFloat() * 0.25F); + } + } + + @Override + public void executeReleaseAction(World world, int i, double yaw, double pitch, int x, int y, int z) { } + +} diff --git a/com/hbm/blocks/bomb/TurretRocket.java b/com/hbm/blocks/bomb/TurretRocket.java new file mode 100644 index 000000000..661309466 --- /dev/null +++ b/com/hbm/blocks/bomb/TurretRocket.java @@ -0,0 +1,67 @@ +package com.hbm.blocks.bomb; + +import com.hbm.entity.particle.EntityGasFlameFX; +import com.hbm.entity.projectile.EntityBullet; +import com.hbm.entity.projectile.EntityRocket; +import com.hbm.tileentity.TileEntityTurretHeavy; +import com.hbm.tileentity.TileEntityTurretRocket; + +import net.minecraft.block.material.Material; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class TurretRocket extends TurretBase { + + public TurretRocket(Material mat) { + super(mat); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityTurretRocket(); + } + + @Override + public void executeHoldAction(World world, int i, double yaw, double pitch, int x, int y, int z) { + + if(pitch < -60) + pitch = -60; + if(pitch > 30) + pitch = 30; + + if(i != 0 && (i % 100 == 60 || i % 100 == 70 || i % 100 == 80 || i % 100 == 90)) { + Vec3 vector = Vec3.createVectorHelper( + -Math.sin(yaw / 180.0F * (float) Math.PI) * Math.cos(pitch / 180.0F * (float) Math.PI), + -Math.sin(pitch / 180.0F * (float) Math.PI), + Math.cos(yaw / 180.0F * (float) Math.PI) * Math.cos(pitch / 180.0F * (float) Math.PI)); + + vector.normalize(); + + if(!world.isRemote) { + EntityRocket bullet = new EntityRocket(world); + bullet.posX = x + vector.xCoord * 1 + 0.5; + bullet.posY = y + vector.yCoord * 1 + 1; + bullet.posZ = z + vector.zCoord * 1 + 0.5; + + bullet.motionX = vector.xCoord * 3; + bullet.motionY = vector.yCoord * 3; + bullet.motionZ = vector.zCoord * 3; + + world.spawnEntityInWorld(bullet); + + EntityGasFlameFX fx = new EntityGasFlameFX(world); + fx.posX = x + vector.xCoord * 1 + 0.5; + fx.posY = y + vector.yCoord * 1 + 1; + fx.posZ = z + vector.zCoord * 1 + 0.5; + world.spawnEntityInWorld(fx); + } + + world.playSoundEffect(x, y, z, "hbm:weapon.rpgShoot", 1.0F, 0.75F); + } + } + + @Override + public void executeReleaseAction(World world, int i, double yaw, double pitch, int x, int y, int z) { } + +} diff --git a/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/com/hbm/entity/missile/EntityMissileBaseAdvanced.java index 6c0632eed..dbf01031c 100644 --- a/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ b/com/hbm/entity/missile/EntityMissileBaseAdvanced.java @@ -7,6 +7,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.Entity; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; import net.minecraft.world.World; @@ -20,11 +21,34 @@ public abstract class EntityMissileBaseAdvanced extends Entity { double decelY; double accelXZ; boolean isCluster = false; + float health = 50; public EntityMissileBaseAdvanced(World p_i1582_1_) { super(p_i1582_1_); this.ignoreFrustumCheck = true; } + + public boolean attackEntityFrom(DamageSource p_70097_1_, float f) + { + if (this.isEntityInvulnerable()) + { + return false; + } + else + { + this.setBeenAttacked(); + health -= f; + + if(health <= 0) { + if(!worldObj.isRemote) + worldObj.createExplosion(this, posX, posY, posZ, 15, true); + + this.setDead(); + } + + return true; + } + } public EntityMissileBaseAdvanced(World world, float x, float y, float z, int a, int b) { super(world); diff --git a/com/hbm/entity/projectile/EntityRocket.java b/com/hbm/entity/projectile/EntityRocket.java index 54d2102b8..b9a5cbf75 100644 --- a/com/hbm/entity/projectile/EntityRocket.java +++ b/com/hbm/entity/projectile/EntityRocket.java @@ -5,6 +5,9 @@ import cpw.mods.fml.relauncher.SideOnly; import java.util.List; +import com.hbm.entity.particle.EntityGasFX; +import com.hbm.entity.particle.EntityOilSpillFX; +import com.hbm.entity.particle.EntitySSmokeFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.items.ModItems; @@ -438,7 +441,8 @@ public class EntityRocket extends Entity implements IProjectile { for (i = 0; i < 4; ++i) { - this.worldObj.spawnParticle("smoke", this.posX, this.posY, this.posZ, /*0, 0, 0 this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D,*/ -this.motionX/4, -this.motionY/4, -this.motionZ/4); + this.worldObj.spawnParticle("smoke", this.posX, this.posY, this.posZ, /*0, 0, 0 this.posX + this.motionX * (double)i / 4.0D, this.posY + this.motionY * (double)i / 4.0D, this.posZ + this.motionZ * (double)i / 4.0D,*/ -this.motionX/4, -this.motionY/4, -this.motionZ/4); + //this.worldObj.spawnEntityInWorld(new EntityGasFX(worldObj, this.posX - motionX/4*i, this.posY - motionY/4*i, this.posZ - motionZ/4*i, 0, 0, 0)); } } diff --git a/com/hbm/handler/FluidTypeHandler.java b/com/hbm/handler/FluidTypeHandler.java index 4d9d2d62e..6034cc983 100644 --- a/com/hbm/handler/FluidTypeHandler.java +++ b/com/hbm/handler/FluidTypeHandler.java @@ -74,7 +74,10 @@ public class FluidTypeHandler { } public static FluidType getEnum(int i) { - return FluidType.values()[i]; + if(i < FluidType.values().length) + return FluidType.values()[i]; + else + return FluidType.NONE; } public String getName() { diff --git a/com/hbm/handler/nei/ModInfoHandler.java b/com/hbm/handler/nei/ModInfoHandler.java index 0a8ed1a9c..01540d25e 100644 --- a/com/hbm/handler/nei/ModInfoHandler.java +++ b/com/hbm/handler/nei/ModInfoHandler.java @@ -20,6 +20,8 @@ import codechicken.nei.recipe.ICraftingHandler; import codechicken.nei.recipe.TemplateRecipeHandler; import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect; import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRectHandler; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -32,7 +34,7 @@ public class ModInfoHandler extends TemplateRecipeHandler { public SmeltingSet(ItemStack item) { item.stackSize = 1; - this.item = new PositionedStack(item, 129, 24); + this.item = new PositionedStack(item, 129 - 54, 24 - 17); } @Override @@ -48,7 +50,7 @@ public class ModInfoHandler extends TemplateRecipeHandler { @Override public String getRecipeName() { - return "Cyclotron"; + return "Mod Info"; } @Override @@ -95,6 +97,19 @@ public class ModInfoHandler extends TemplateRecipeHandler { } } + FontRenderer font = Minecraft.getMinecraft().fontRenderer; + + @Override + public void drawExtras(int recipe) { + ItemStack stack = arecipes.get(recipe).getResult().item; + String[] strings = MachineRecipes.instance().getInfoFromItem(stack); + + font.drawString(stack.getDisplayName() + ":", 5, 24 + 5, 4210752); + + for(int i = 0; i < strings.length; i++) + font.drawString(strings[i], 5 + 3, 34 + 5 + 10 * i, 4210752); + } + @Override public TemplateRecipeHandler newInstance() { return super.newInstance(); diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index b28a8243d..df1412b73 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -1244,7 +1244,7 @@ public class MachineRecipes { setRecipe(theWholeThing.get(i).item, new ItemStack(ModItems.scrap)); } - System.out.println("Added " + recipes.size() + " in total."); + System.out.println("Added " + recipesShredder.size() + " in total."); System.out.println("Added " + dustCount + " ore dust recipes."); } @@ -1271,23 +1271,23 @@ public class MachineRecipes { recipe.input = inp; recipe.output = outp; - recipes.add(recipe); + recipesShredder.add(recipe); } public void overridePreSetRecipe(ItemStack inp, ItemStack outp) { boolean flag = false; - for(int i = 0; i < recipes.size(); i++) + for(int i = 0; i < recipesShredder.size(); i++) { - if(recipes.get(i) != null && - recipes.get(i).input != null && - recipes.get(i).output != null && + if(recipesShredder.get(i) != null && + recipesShredder.get(i).input != null && + recipesShredder.get(i).output != null && inp != null && outp != null && - recipes.get(i).input.getItem() == inp.getItem() && - recipes.get(i).input.getItemDamage() == inp.getItemDamage()) { - recipes.get(i).output = outp; + recipesShredder.get(i).input.getItem() == inp.getItem() && + recipesShredder.get(i).input.getItemDamage() == inp.getItemDamage()) { + recipesShredder.get(i).output = outp; flag = true; } } @@ -1296,14 +1296,14 @@ public class MachineRecipes { ShredderRecipe rec = new ShredderRecipe(); rec.input = inp; rec.output = outp; - recipes.add(rec); + recipesShredder.add(rec); } } public void removeDuplicates() { List newList = new ArrayList(); - for(ShredderRecipe piv : recipes) + for(ShredderRecipe piv : recipesShredder) { boolean flag = false; @@ -1350,7 +1350,7 @@ public class MachineRecipes { System.out.println(recipes.get(j)); }*/ - System.out.println("TWT: " + theWholeThing.size() + ", REC: " + recipes.size()); + System.out.println("TWT: " + theWholeThing.size() + ", REC: " + recipesShredder.size()); } } @@ -1374,12 +1374,12 @@ public class MachineRecipes { } } - public static List recipes = new ArrayList(); + public static List recipesShredder = new ArrayList(); public static List theWholeThing = new ArrayList(); public static int dustCount = 0; public static ItemStack getShredderResult(ItemStack stack) { - for(ShredderRecipe rec : recipes) + for(ShredderRecipe rec : recipesShredder) { if(stack != null && rec.input.getItem() == stack.getItem() && @@ -1393,9 +1393,9 @@ public class MachineRecipes { public Map getShredderRecipes() { Map recipes = new HashMap(); - for(int i = 0; i < MachineRecipes.recipes.size(); i++) { - if(MachineRecipes.recipes.get(i) != null && MachineRecipes.recipes.get(i).output.getItem() != ModItems.scrap) - recipes.put(MachineRecipes.recipes.get(i).input, getShredderResult(MachineRecipes.recipes.get(i).input)); + for(int i = 0; i < MachineRecipes.recipesShredder.size(); i++) { + if(MachineRecipes.recipesShredder.get(i) != null && MachineRecipes.recipesShredder.get(i).output.getItem() != ModItems.scrap) + recipes.put(MachineRecipes.recipesShredder.get(i).input, getShredderResult(MachineRecipes.recipesShredder.get(i).input)); } return recipes; @@ -2686,9 +2686,190 @@ public class MachineRecipes { return input; } + public String[] getInfoFromItem(ItemStack stack) { + stack.stackSize = 1; + + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.asphalt)) + return new String[] { "Explosion resisant block", "Made from bitumen" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_uranium)) + return new String[] { "Block of uranium ore", "Found below Y:25" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_titanium)) + return new String[] { "Block of titanium ore", "Found below Y:35" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_sulfur)) + return new String[] { "Block of sulfur ore", "Found below Y:35", "Drops as sulfur dust" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_niter)) + return new String[] { "Block of niter ore", "Found below Y:35", "Drops as niter dust" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_copper)) + return new String[] { "Block of copper ore", "Found below Y:50" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_tungsten)) + return new String[] { "Block of tungsten ore", "Found below Y:35" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_aluminium)) + return new String[] { "Block of aluminium ore", "Found below Y:45" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_fluorite)) + return new String[] { "Block of fluorite ore", "Found below Y:40" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_beryllium)) + return new String[] { "Block of beryllium ore", "Found below Y:35" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_lead)) + return new String[] { "Block of lead ore", "Found below Y:35" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_oil)) + return new String[] { "Block of oil deposit", "Found below Y:25", "Spawns in large bubbles", "Exctractable via oil derrick" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_schrabidium)) + return new String[] { "Block of schrabidium ore", "Does not spawn naturally", "Created by nukes near uranium" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_australium)) + return new String[] { "Block of australium ore", "Found between Y:15 and Y:30", "Deposit location: X:-400, Z:-400" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_weidanium)) + return new String[] { "Block of weidanium ore", "Found below Y:25", "Deposit location: X:0, Z:300" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_reiium)) + return new String[] { "Block of reiium ore", "Found below Y:35", "Deposit location: X:0, Z:0" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_unobtainium)) + return new String[] { "Block of unobtainium ore", "Found below Y:128", "Deposit location: X:200, Z:200" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_daffergon)) + return new String[] { "Block of daffergon ore", "Found below Y:10", "Deposit location: X:400, Z:-200" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_verticium)) + return new String[] { "Block of verticium ore", "Found between Y:25 and Y:50", "Deposit location: X:-300, Z:200" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_nether_uranium)) + return new String[] { "Block of uranium ore", "Only found in the nether" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_nether_plutonium)) + return new String[] { "Block of plutonium ore", "Only found in the nether", "Disabled in config by default" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_nether_tungsten)) + return new String[] { "Block of tungsten ore", "Only found in the nether" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_nether_sulfur)) + return new String[] { "Block of sulfur ore", "Only found in the nether" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_nether_fire)) + return new String[] { "Block of fire ore", "Only found in the nether", "Drops blaze or fire powder" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.ore_nether_schrabidium)) + return new String[] { "Block of schrabidium ore", "Does not spawn naturally" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.reinforced_brick)) + return new String[] { "Reinforced block", "Withstands nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.reinforced_glass)) + return new String[] { "Reinforced block", "Withstands nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.reinforced_light)) + return new String[] { "Reinforced block", "Withstands nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.reinforced_sand)) + return new String[] { "Reinforced block", "Withstands nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.reinforced_lamp_off)) + return new String[] { "Reinforced block", "Withstands nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.brick_concrete)) + return new String[] { "Reinforced block", "Mostly withstands nukes" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.brick_obsidian)) + return new String[] { "Reinforced block", "Greatly withstands nukes" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.brick_light)) + return new String[] { "Reinforced block", "Barely withstands nukes" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.cmb_brick)) + return new String[] { "Reinforced block", "Withstands nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.cmb_brick_reinforced)) + return new String[] { "Reinforced block", "Withstands nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.cmb_brick_reinforced)) + return new String[] { "Reinforced block", "Withstands nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.block_meteor)) + return new String[] { "Only found on space ships", "Used for late-game reactors", "Sometimes drops angry metal" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.tape_recorder)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.steel_poles)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.pole_top)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.pole_satellite_receiver)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.steel_wall)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.steel_corner)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.steel_roof)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.steel_beam)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.steel_scaffold)) + return new String[] { "Decorative block" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.mush)) + return new String[] { "Only grows on dead grass", "or on glowing mycelium", "Spreads" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.waste_earth)) + return new String[] { "Radioactive grass", "Created by nuclear explosions" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.waste_mycelium)) + return new String[] { "Radioactive mycelium", "Spreads onto dirt blocks", "Spread disabled by default" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.waste_trinitite)) + return new String[] { "Radioactive sand ore", "Created by nuclear explosions", "Drops trinitite" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.waste_trinitite_red)) + return new String[] { "Radioactive sand ore", "Created by nuclear explosions", "Drops trinitite" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.waste_log)) + return new String[] { "Burnt log block", "Created by nuclear explosions", "Drops charcoal" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.waste_planks)) + return new String[] { "Burnt planks block", "Created by nuclear explosions", "Drops charcoal" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.frozen_grass)) + return new String[] { "Frozen grass block", "Drops snowballs" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.frozen_dirt)) + return new String[] { "Frozen dirt block", "Drops snowballs" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.frozen_log)) + return new String[] { "Frozen log block", "Drops snowballs" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.frozen_planks)) + return new String[] { "Frozen planks block", "Drops snowballs" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.seal_frame)) + return new String[] { "Silo hatch frame piece", "Instructions:", "Build square from frame blocks", "Possible sizes: 3x3 - 11x11", "Add controller to any side" }; + if(stack.getItem() == Item.getItemFromBlock(ModBlocks.seal_controller)) + return new String[] { "Silo hatch controller", "Instructions:", "Build square from frame blocks", "Possible sizes: 3x3 - 11x11", "Add controller to any side" }; + + return new String[] { "xxx", "xxx" }; + } + public Map getItemInfo() { Map map = new HashMap(); - map.put(new ItemStack(ModBlocks.asphalt), new String[] {"test", "test"}); + map.put(new ItemStack(ModBlocks.asphalt), getInfoFromItem(new ItemStack(ModBlocks.asphalt))); + map.put(new ItemStack(ModBlocks.ore_uranium), getInfoFromItem(new ItemStack(ModBlocks.ore_uranium))); + map.put(new ItemStack(ModBlocks.ore_titanium), getInfoFromItem(new ItemStack(ModBlocks.ore_titanium))); + map.put(new ItemStack(ModBlocks.ore_sulfur), getInfoFromItem(new ItemStack(ModBlocks.ore_sulfur))); + map.put(new ItemStack(ModBlocks.ore_niter), getInfoFromItem(new ItemStack(ModBlocks.ore_niter))); + map.put(new ItemStack(ModBlocks.ore_copper), getInfoFromItem(new ItemStack(ModBlocks.ore_copper))); + map.put(new ItemStack(ModBlocks.ore_tungsten), getInfoFromItem(new ItemStack(ModBlocks.ore_tungsten))); + map.put(new ItemStack(ModBlocks.ore_aluminium), getInfoFromItem(new ItemStack(ModBlocks.ore_aluminium))); + map.put(new ItemStack(ModBlocks.ore_fluorite), getInfoFromItem(new ItemStack(ModBlocks.ore_fluorite))); + map.put(new ItemStack(ModBlocks.ore_beryllium), getInfoFromItem(new ItemStack(ModBlocks.ore_beryllium))); + map.put(new ItemStack(ModBlocks.ore_lead), getInfoFromItem(new ItemStack(ModBlocks.ore_lead))); + map.put(new ItemStack(ModBlocks.ore_oil), getInfoFromItem(new ItemStack(ModBlocks.ore_oil))); + map.put(new ItemStack(ModBlocks.ore_schrabidium), getInfoFromItem(new ItemStack(ModBlocks.ore_schrabidium))); + map.put(new ItemStack(ModBlocks.ore_australium), getInfoFromItem(new ItemStack(ModBlocks.ore_australium))); + map.put(new ItemStack(ModBlocks.ore_weidanium), getInfoFromItem(new ItemStack(ModBlocks.ore_weidanium))); + map.put(new ItemStack(ModBlocks.ore_reiium), getInfoFromItem(new ItemStack(ModBlocks.ore_reiium))); + map.put(new ItemStack(ModBlocks.ore_unobtainium), getInfoFromItem(new ItemStack(ModBlocks.ore_unobtainium))); + map.put(new ItemStack(ModBlocks.ore_daffergon), getInfoFromItem(new ItemStack(ModBlocks.ore_daffergon))); + map.put(new ItemStack(ModBlocks.ore_verticium), getInfoFromItem(new ItemStack(ModBlocks.ore_verticium))); + map.put(new ItemStack(ModBlocks.ore_nether_uranium), getInfoFromItem(new ItemStack(ModBlocks.ore_nether_uranium))); + map.put(new ItemStack(ModBlocks.ore_nether_plutonium), getInfoFromItem(new ItemStack(ModBlocks.ore_nether_plutonium))); + map.put(new ItemStack(ModBlocks.ore_nether_tungsten), getInfoFromItem(new ItemStack(ModBlocks.ore_nether_tungsten))); + map.put(new ItemStack(ModBlocks.ore_nether_sulfur), getInfoFromItem(new ItemStack(ModBlocks.ore_nether_sulfur))); + map.put(new ItemStack(ModBlocks.ore_nether_fire), getInfoFromItem(new ItemStack(ModBlocks.ore_nether_fire))); + map.put(new ItemStack(ModBlocks.ore_nether_schrabidium), getInfoFromItem(new ItemStack(ModBlocks.ore_nether_schrabidium))); + map.put(new ItemStack(ModBlocks.reinforced_brick), getInfoFromItem(new ItemStack(ModBlocks.reinforced_brick))); + map.put(new ItemStack(ModBlocks.reinforced_glass), getInfoFromItem(new ItemStack(ModBlocks.reinforced_glass))); + map.put(new ItemStack(ModBlocks.reinforced_light), getInfoFromItem(new ItemStack(ModBlocks.reinforced_light))); + map.put(new ItemStack(ModBlocks.reinforced_lamp_off), getInfoFromItem(new ItemStack(ModBlocks.reinforced_lamp_off))); + map.put(new ItemStack(ModBlocks.reinforced_sand), getInfoFromItem(new ItemStack(ModBlocks.reinforced_sand))); + map.put(new ItemStack(ModBlocks.brick_concrete), getInfoFromItem(new ItemStack(ModBlocks.brick_concrete))); + map.put(new ItemStack(ModBlocks.brick_obsidian), getInfoFromItem(new ItemStack(ModBlocks.brick_obsidian))); + map.put(new ItemStack(ModBlocks.brick_light), getInfoFromItem(new ItemStack(ModBlocks.brick_light))); + map.put(new ItemStack(ModBlocks.cmb_brick), getInfoFromItem(new ItemStack(ModBlocks.cmb_brick))); + map.put(new ItemStack(ModBlocks.cmb_brick_reinforced), getInfoFromItem(new ItemStack(ModBlocks.cmb_brick_reinforced))); + map.put(new ItemStack(ModBlocks.block_meteor), getInfoFromItem(new ItemStack(ModBlocks.block_meteor))); + map.put(new ItemStack(ModBlocks.tape_recorder), getInfoFromItem(new ItemStack(ModBlocks.tape_recorder))); + map.put(new ItemStack(ModBlocks.steel_poles), getInfoFromItem(new ItemStack(ModBlocks.steel_poles))); + map.put(new ItemStack(ModBlocks.pole_top), getInfoFromItem(new ItemStack(ModBlocks.pole_top))); + map.put(new ItemStack(ModBlocks.pole_satellite_receiver), getInfoFromItem(new ItemStack(ModBlocks.pole_satellite_receiver))); + map.put(new ItemStack(ModBlocks.steel_wall), getInfoFromItem(new ItemStack(ModBlocks.steel_wall))); + map.put(new ItemStack(ModBlocks.steel_corner), getInfoFromItem(new ItemStack(ModBlocks.steel_corner))); + map.put(new ItemStack(ModBlocks.steel_roof), getInfoFromItem(new ItemStack(ModBlocks.steel_roof))); + map.put(new ItemStack(ModBlocks.steel_beam), getInfoFromItem(new ItemStack(ModBlocks.steel_beam))); + map.put(new ItemStack(ModBlocks.mush), getInfoFromItem(new ItemStack(ModBlocks.mush))); + map.put(new ItemStack(ModBlocks.waste_earth), getInfoFromItem(new ItemStack(ModBlocks.waste_earth))); + map.put(new ItemStack(ModBlocks.waste_mycelium), getInfoFromItem(new ItemStack(ModBlocks.waste_mycelium))); + map.put(new ItemStack(ModBlocks.waste_trinitite), getInfoFromItem(new ItemStack(ModBlocks.waste_trinitite))); + map.put(new ItemStack(ModBlocks.waste_trinitite_red), getInfoFromItem(new ItemStack(ModBlocks.waste_trinitite_red))); + map.put(new ItemStack(ModBlocks.waste_log), getInfoFromItem(new ItemStack(ModBlocks.waste_log))); + map.put(new ItemStack(ModBlocks.waste_planks), getInfoFromItem(new ItemStack(ModBlocks.waste_planks))); + map.put(new ItemStack(ModBlocks.frozen_grass), getInfoFromItem(new ItemStack(ModBlocks.frozen_grass))); + map.put(new ItemStack(ModBlocks.frozen_dirt), getInfoFromItem(new ItemStack(ModBlocks.frozen_dirt))); + map.put(new ItemStack(ModBlocks.frozen_log), getInfoFromItem(new ItemStack(ModBlocks.frozen_log))); + map.put(new ItemStack(ModBlocks.frozen_planks), getInfoFromItem(new ItemStack(ModBlocks.frozen_planks))); + map.put(new ItemStack(ModBlocks.seal_frame), getInfoFromItem(new ItemStack(ModBlocks.seal_frame))); + map.put(new ItemStack(ModBlocks.seal_controller), getInfoFromItem(new ItemStack(ModBlocks.seal_controller))); return map; } diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index d3cfa5c59..5d92e1a9d 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -187,7 +187,6 @@ public class ModItems { public static Item powder_lithium_tiny; public static Item powder_neodymium_tiny; - public static Item powder_caesium_tiny; public static Item powder_cobalt_tiny; public static Item powder_niobium_tiny; public static Item powder_cerium_tiny; @@ -199,7 +198,7 @@ public class ModItems { public static Item powder_desh; public static Item fragment_neodymium; - public static Item fragment_caesium; + public static Item fragment_cobalt; public static Item fragment_niobium; public static Item fragment_cerium; public static Item fragment_lanthanium; @@ -901,6 +900,7 @@ public class ModItems { public static Item detonator; public static Item crate_caller; public static Item remote; + public static Item turret_control; public static Item chopper; public static Item bucket_mud; @@ -1133,7 +1133,7 @@ public class ModItems { powder_power = new ItemCustomLore().setUnlocalizedName("powder_power").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_energy"); powder_iodine = new ItemCustomLore().setUnlocalizedName("powder_iodine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_iodine"); powder_thorium = new ItemCustomLore().setUnlocalizedName("powder_thorium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_thorium"); - powder_neodymium = new ItemCustomLore().setUnlocalizedName("powder_neodymium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_neodymium"); + powder_neodymium = new ItemCustomLore().setUnlocalizedName("powder_neodymium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_neodymium"); powder_astatine = new ItemCustomLore().setUnlocalizedName("powder_astatine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_astatine"); powder_caesium = new ItemCustomLore().setUnlocalizedName("powder_caesium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_caesium"); powder_australium = new ItemCustomLore().setUnlocalizedName("powder_australium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_australium"); @@ -1143,18 +1143,30 @@ public class ModItems { powder_daffergon = new ItemCustomLore().setUnlocalizedName("powder_daffergon").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_daffergon"); powder_verticium = new ItemCustomLore().setUnlocalizedName("powder_verticium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_verticium"); powder_strontium = new ItemCustomLore().setUnlocalizedName("powder_strontium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_strontium"); - powder_cobalt = new ItemCustomLore().setUnlocalizedName("powder_cobalt").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_cobalt"); + powder_cobalt = new ItemCustomLore().setUnlocalizedName("powder_cobalt").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_cobalt"); powder_bromine = new ItemCustomLore().setUnlocalizedName("powder_bromine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_bromine"); - powder_niobium = new ItemCustomLore().setUnlocalizedName("powder_niobium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_niobium"); + powder_niobium = new ItemCustomLore().setUnlocalizedName("powder_niobium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_niobium"); powder_tennessine = new ItemCustomLore().setUnlocalizedName("powder_tennessine").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_tennessine"); - powder_cerium = new ItemCustomLore().setUnlocalizedName("powder_cerium").setCreativeTab(null).setTextureName(RefStrings.MODID + ":powder_cerium"); + powder_cerium = new ItemCustomLore().setUnlocalizedName("powder_cerium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_cerium"); powder_dura_steel = new ItemCustomLore().setUnlocalizedName("powder_dura_steel").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_dura_steel"); powder_polymer = new ItemCustomLore().setUnlocalizedName("powder_polymer").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_polymer"); powder_lanthanium = new ItemCustomLore().setUnlocalizedName("powder_lanthanium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_lanthanium"); powder_actinium = new ItemCustomLore().setUnlocalizedName("powder_actinium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_actinium"); powder_desh = new Item().setUnlocalizedName("powder_desh").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_desh"); powder_lithium_tiny = new Item().setUnlocalizedName("powder_lithium_tiny").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_lithium_tiny"); + powder_neodymium_tiny = new Item().setUnlocalizedName("powder_neodymium_tiny").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_neodymium_tiny"); powder_cobalt_tiny = new Item().setUnlocalizedName("powder_cobalt_tiny").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_cobalt_tiny"); + powder_niobium_tiny = new Item().setUnlocalizedName("powder_niobium_tiny").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_niobium_tiny"); + powder_cerium_tiny = new Item().setUnlocalizedName("powder_cerium_tiny").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_cerium_tiny"); + powder_lanthanium_tiny = new Item().setUnlocalizedName("powder_lanthanium_tiny").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_lanthanium_tiny"); + powder_actinium_tiny = new Item().setUnlocalizedName("powder_actinium_tiny").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":powder_actinium_tiny"); + + fragment_neodymium = new Item().setUnlocalizedName("fragment_neodymium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fragment_neodymium"); + fragment_cobalt = new Item().setUnlocalizedName("fragment_cobalt").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fragment_cobalt"); + fragment_niobium = new Item().setUnlocalizedName("fragment_niobium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fragment_niobium"); + fragment_cerium = new Item().setUnlocalizedName("fragment_cerium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fragment_cerium"); + fragment_lanthanium = new Item().setUnlocalizedName("fragment_lanthanium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fragment_lanthanium"); + fragment_actinium = new Item().setUnlocalizedName("fragment_actinium").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fragment_actinium"); coil_copper = new Item().setUnlocalizedName("coil_copper").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":coil_copper"); coil_copper_torus = new Item().setUnlocalizedName("coil_copper_torus").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":coil_copper_torus"); @@ -1700,6 +1712,7 @@ public class ModItems { chopper = new ItemChopper().setUnlocalizedName("chopper").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":chopper"); linker = new ItemTeleLink().setUnlocalizedName("linker").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":linker"); oil_detector = new ItemOilDetector().setUnlocalizedName("oil_detector").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":oil_detector"); + turret_control = new ItemTurretControl().setUnlocalizedName("turret_control").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":turret_control"); assembly_template = new ItemAssemblyTemplate().setUnlocalizedName("assembly_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":assembly_template"); chemistry_template = new ItemChemistryTemplate().setUnlocalizedName("chemistry_template").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":chemistry_template"); @@ -1708,7 +1721,7 @@ public class ModItems { fluid_tank_empty = new Item().setUnlocalizedName("fluid_tank_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_tank"); fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_barrel"); fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_barrel"); - fluid_barrel_infinite = new Item().setUnlocalizedName("fluid_barrel_infinite").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); + fluid_barrel_infinite = new Item().setUnlocalizedName("fluid_barrel_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); euphemium_helmet = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 0).setUnlocalizedName("astatine_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_helmet"); euphemium_plate = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 1).setUnlocalizedName("astatine_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_plate"); @@ -2044,7 +2057,12 @@ public class ModItems { GameRegistry.registerItem(powder_desh, powder_desh.getUnlocalizedName()); GameRegistry.registerItem(dust, dust.getUnlocalizedName()); GameRegistry.registerItem(powder_lithium_tiny, powder_lithium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_neodymium_tiny, powder_neodymium_tiny.getUnlocalizedName()); GameRegistry.registerItem(powder_cobalt_tiny, powder_cobalt_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_niobium_tiny, powder_niobium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_cerium_tiny, powder_cerium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_lanthanium_tiny, powder_lanthanium_tiny.getUnlocalizedName()); + GameRegistry.registerItem(powder_actinium_tiny, powder_actinium_tiny.getUnlocalizedName()); //Powders GameRegistry.registerItem(powder_fire, powder_fire.getUnlocalizedName()); @@ -2052,6 +2070,14 @@ public class ModItems { GameRegistry.registerItem(powder_poison, powder_poison.getUnlocalizedName()); GameRegistry.registerItem(powder_thermite, powder_thermite.getUnlocalizedName()); GameRegistry.registerItem(powder_power, powder_power.getUnlocalizedName()); + + //Fragments + GameRegistry.registerItem(fragment_neodymium, fragment_neodymium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_cobalt, fragment_cobalt.getUnlocalizedName()); + GameRegistry.registerItem(fragment_niobium, fragment_niobium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_cerium, fragment_cerium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_lanthanium, fragment_lanthanium.getUnlocalizedName()); + GameRegistry.registerItem(fragment_actinium, fragment_actinium.getUnlocalizedName()); //Nuggets GameRegistry.registerItem(nugget_uranium, nugget_uranium.getUnlocalizedName()); @@ -2490,6 +2516,7 @@ public class ModItems { //Computer Tools GameRegistry.registerItem(designator, designator.getUnlocalizedName()); GameRegistry.registerItem(designator_range, designator_range.getUnlocalizedName()); + GameRegistry.registerItem(turret_control, turret_control.getUnlocalizedName()); GameRegistry.registerItem(linker, linker.getUnlocalizedName()); GameRegistry.registerItem(oil_detector, oil_detector.getUnlocalizedName()); diff --git a/com/hbm/items/tool/ItemChemistryTemplate.java b/com/hbm/items/tool/ItemChemistryTemplate.java index 33ecdefc4..9d57ebdc2 100644 --- a/com/hbm/items/tool/ItemChemistryTemplate.java +++ b/com/hbm/items/tool/ItemChemistryTemplate.java @@ -12,6 +12,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.StatCollector; public class ItemChemistryTemplate extends Item { @@ -27,7 +28,10 @@ public class ItemChemistryTemplate extends Item { CC_HEATING, CC_HEAVY, CC_NAPHTHA; public static EnumChemistryTemplate getEnum(int i) { - return EnumChemistryTemplate.values()[i]; + if(i < EnumChemistryTemplate.values().length) + return EnumChemistryTemplate.values()[i]; + else + return FP_HEAVYOIL; } public String getName() { @@ -41,11 +45,17 @@ public class ItemChemistryTemplate extends Item { this.setMaxDamage(0); } - @Override - public String getUnlocalizedName(ItemStack stack) + public String getItemStackDisplayName(ItemStack stack) { - int i = stack.getItemDamage(); - return super.getUnlocalizedName() + "." + EnumChemistryTemplate.getEnum(i).getName(); + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal("chem." + EnumChemistryTemplate.getEnum(stack.getItemDamage()).name())).trim(); + + if (s1 != null) + { + s = s + " " + s1; + } + + return s; } @Override diff --git a/com/hbm/items/tool/ItemTurretControl.java b/com/hbm/items/tool/ItemTurretControl.java new file mode 100644 index 000000000..e22ab4e16 --- /dev/null +++ b/com/hbm/items/tool/ItemTurretControl.java @@ -0,0 +1,158 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.blocks.bomb.LaunchPad; +import com.hbm.blocks.bomb.TurretBase; +import com.hbm.entity.projectile.EntityBullet; +import com.hbm.items.ModItems; +import com.hbm.lib.ModDamageSource; +import com.hbm.tileentity.TileEntityTurretBase; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.entity.player.ArrowLooseEvent; +import net.minecraftforge.event.entity.player.ArrowNockEvent; + +public class ItemTurretControl extends Item { + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { + if(entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)entity; + + if(player.getHeldItem() != null && stack != null && player.getHeldItem().equals(stack)) { + if(stack.hasTagCompound()) { + int x = stack.getTagCompound().getInteger("xCoord"); + int y = stack.getTagCompound().getInteger("yCoord"); + int z = stack.getTagCompound().getInteger("zCoord"); + + TileEntity te = world.getTileEntity(x, y, z); + + if(te != null && te instanceof TileEntityTurretBase) { + TileEntityTurretBase turret = (TileEntityTurretBase)te; + + turret.rotationYaw = player.rotationYaw; + turret.rotationPitch = player.rotationPitch; + if(turret.rotationPitch < -60) + turret.rotationPitch = -60; + if(turret.rotationPitch > 30) + turret.rotationPitch = 30; + } + } + } + } + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) + { + if(itemstack.stackTagCompound != null) + { + list.add("Linked to:"); + list.add("X: " + String.valueOf(itemstack.stackTagCompound.getInteger("xCoord"))); + list.add("Y: " + String.valueOf(itemstack.stackTagCompound.getInteger("yCoord"))); + list.add("Z: " + String.valueOf(itemstack.stackTagCompound.getInteger("zCoord"))); + } else { + list.add("Please select a turret."); + } + } + + @Override + public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) + { + if((p_77648_3_.getBlock(p_77648_4_, p_77648_5_, p_77648_6_) instanceof TurretBase)) + { + if(p_77648_1_.stackTagCompound != null) + { + p_77648_1_.stackTagCompound.setInteger("xCoord", p_77648_4_); + p_77648_1_.stackTagCompound.setInteger("yCoord", p_77648_5_); + p_77648_1_.stackTagCompound.setInteger("zCoord", p_77648_6_); + } else { + p_77648_1_.stackTagCompound = new NBTTagCompound(); + p_77648_1_.stackTagCompound.setInteger("xCoord", p_77648_4_); + p_77648_1_.stackTagCompound.setInteger("yCoord", p_77648_5_); + p_77648_1_.stackTagCompound.setInteger("zCoord", p_77648_6_); + } + if(p_77648_3_.isRemote) + { + p_77648_2_.addChatMessage(new ChatComponentText("Turret Linked!")); + } + + p_77648_3_.playSoundAtEntity(p_77648_2_, "hbm:item.techBleep", 1.0F, 1.0F); + + return true; + } + + return false; + } + + @Override + public EnumAction getItemUseAction(ItemStack par1ItemStack) { + return EnumAction.bow; + } + + @Override + public void onPlayerStoppedUsing(ItemStack stack, World world, EntityPlayer player, int i) { + + int j = this.getMaxItemUseDuration(stack) - i; + ArrowLooseEvent event = new ArrowLooseEvent(player, stack, j); + MinecraftForge.EVENT_BUS.post(event); + + j = event.charge; + + if(stack.hasTagCompound()) { + int x = stack.getTagCompound().getInteger("xCoord"); + int y = stack.getTagCompound().getInteger("yCoord"); + int z = stack.getTagCompound().getInteger("zCoord"); + + if(world.getBlock(x, y, z) instanceof TurretBase) { + + ((TurretBase)world.getBlock(x, y, z)).executeReleaseAction(world, j, player.rotationYaw, player.rotationPitch, x, y, z); + } + } + } + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 72000; + } + + @Override + public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { + ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); + MinecraftForge.EVENT_BUS.post(event); + { + p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); + } + + return p_77659_1_; + } + + @Override + public void onUsingTick(ItemStack stack, EntityPlayer player, int count) + { + World world = player.worldObj; + + if(stack.hasTagCompound()) { + int x = stack.getTagCompound().getInteger("xCoord"); + int y = stack.getTagCompound().getInteger("yCoord"); + int z = stack.getTagCompound().getInteger("zCoord"); + + if(world.getBlock(x, y, z) instanceof TurretBase) { + + ((TurretBase)world.getBlock(x, y, z)).executeHoldAction(world, stack.getMaxItemUseDuration() - count, player.rotationYaw, player.rotationPitch, x, y, z); + } + } + } +} diff --git a/com/hbm/lib/HbmWorldGen.java b/com/hbm/lib/HbmWorldGen.java index 111943bf5..1b8a0f183 100644 --- a/com/hbm/lib/HbmWorldGen.java +++ b/com/hbm/lib/HbmWorldGen.java @@ -318,14 +318,14 @@ public class HbmWorldGen implements IWorldGenerator { new Spaceship().generate(world, rand, x, y, z); } + } - if (rand.nextInt(15) == 0) { - int randPosX = i + rand.nextInt(16); - int randPosY = rand.nextInt(25); - int randPosZ = j + rand.nextInt(16); + if (rand.nextInt(15) == 0) { + int randPosX = i + rand.nextInt(16); + int randPosY = rand.nextInt(25); + int randPosZ = j + rand.nextInt(16); - OilBubble.spawnOil(world, randPosX, randPosY, randPosZ, 7 + rand.nextInt(9)); - } + OilBubble.spawnOil(world, randPosX, randPosY, randPosZ, 7 + rand.nextInt(9)); } if (MainRegistry.enableNITAN) { diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index e7139307e..d8082a6c6 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -183,8 +183,10 @@ import com.hbm.render.tileentity.RenderFluidDuct; import com.hbm.render.tileentity.RenderFluidTank; import com.hbm.render.tileentity.RenderGasDuct; import com.hbm.render.tileentity.RenderGasFlare; +import com.hbm.render.tileentity.RenderHeavyTurret; import com.hbm.render.tileentity.RenderIGenerator; import com.hbm.render.tileentity.RenderLaunchPadTier1; +import com.hbm.render.tileentity.RenderLightTurret; import com.hbm.render.tileentity.RenderMiningDrill; import com.hbm.render.tileentity.RenderNukeBoy; import com.hbm.render.tileentity.RenderNukeCustom; @@ -201,6 +203,7 @@ import com.hbm.render.tileentity.RenderPuF6Tank; import com.hbm.render.tileentity.RenderPylon; import com.hbm.render.tileentity.RenderRedBarrel; import com.hbm.render.tileentity.RenderRefinery; +import com.hbm.render.tileentity.RenderRocketTurret; import com.hbm.render.tileentity.RenderRotationTester; import com.hbm.render.tileentity.RenderSteelPoles; import com.hbm.render.tileentity.RenderStructureMaker; @@ -256,6 +259,9 @@ import com.hbm.tileentity.TileEntityStructureMarker; import com.hbm.tileentity.TileEntityTestBombAdvanced; import com.hbm.tileentity.TileEntityTestContainer; import com.hbm.tileentity.TileEntityTestRender; +import com.hbm.tileentity.TileEntityTurretHeavy; +import com.hbm.tileentity.TileEntityTurretLight; +import com.hbm.tileentity.TileEntityTurretRocket; import com.hbm.tileentity.TileEntityYellowBarrel; import cpw.mods.fml.client.registry.ClientRegistry; @@ -299,6 +305,9 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRefinery.class, new RenderRefinery()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretHeavy.class, new RenderHeavyTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretRocket.class, new RenderRocketTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretLight.class, new RenderLightTurret()); //RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core)); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index e9f566d11..ebaba8b8e 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -196,6 +196,16 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(ModItems.powder_lithium_tiny, 9), new Object[] { "#", '#', ModItems.powder_lithium }); GameRegistry.addRecipe(new ItemStack(ModItems.powder_cobalt, 1), new Object[] { "###", "###", "###", '#', ModItems.powder_cobalt_tiny }); GameRegistry.addRecipe(new ItemStack(ModItems.powder_cobalt_tiny, 9), new Object[] { "#", '#', ModItems.powder_cobalt }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_neodymium, 1), new Object[] { "###", "###", "###", '#', ModItems.powder_neodymium_tiny }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_neodymium_tiny, 9), new Object[] { "#", '#', ModItems.powder_neodymium }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_niobium, 1), new Object[] { "###", "###", "###", '#', ModItems.powder_niobium_tiny }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_niobium_tiny, 9), new Object[] { "#", '#', ModItems.powder_niobium }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_cerium, 1), new Object[] { "###", "###", "###", '#', ModItems.powder_cerium_tiny }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_cerium_tiny, 9), new Object[] { "#", '#', ModItems.powder_cerium }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_lanthanium, 1), new Object[] { "###", "###", "###", '#', ModItems.powder_lanthanium_tiny }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_lanthanium_tiny, 9), new Object[] { "#", '#', ModItems.powder_lanthanium }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_actinium, 1), new Object[] { "###", "###", "###", '#', ModItems.powder_actinium_tiny }); + GameRegistry.addRecipe(new ItemStack(ModItems.powder_actinium_tiny, 9), new Object[] { "#", '#', ModItems.powder_actinium }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.rod_empty, 16), new Object[] { "SSS", "L L", "SSS", 'S', "plateSteel", 'L', "plateLead" })); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.rod_uranium, 1), new Object[] { ModItems.rod_empty, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium, ModItems.nugget_uranium }); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 607254d16..86b9b3d0a 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -195,6 +195,9 @@ import com.hbm.tileentity.TileEntityTestBombAdvanced; import com.hbm.tileentity.TileEntityTestContainer; import com.hbm.tileentity.TileEntityTestNuke; import com.hbm.tileentity.TileEntityTestRender; +import com.hbm.tileentity.TileEntityTurretHeavy; +import com.hbm.tileentity.TileEntityTurretLight; +import com.hbm.tileentity.TileEntityTurretRocket; import com.hbm.tileentity.TileEntityWatzCore; import com.hbm.tileentity.TileEntityWireCoated; import com.hbm.tileentity.TileEntityYellowBarrel; @@ -473,6 +476,9 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityFluidDuct.class, "tileentity_universal_duct"); GameRegistry.registerTileEntity(TileEntityMachineChemplant.class, "tileentity_chemical_plant"); GameRegistry.registerTileEntity(TileEntityMachineFluidTank.class, "tileentity_fluid_tank"); + GameRegistry.registerTileEntity(TileEntityTurretHeavy.class, "tileentity_turret_heavy"); + GameRegistry.registerTileEntity(TileEntityTurretRocket.class, "tileentity_turret_rocket"); + GameRegistry.registerTileEntity(TileEntityTurretLight.class, "tileentity_turret_light"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); @@ -793,10 +799,14 @@ public class MainRegistry recipes.overridePreSetRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, 14), new ItemStack(Items.clay_ball, 4)); recipes.overridePreSetRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, 15), new ItemStack(Items.clay_ball, 4)); recipes.overridePreSetRecipe(new ItemStack(Blocks.tnt), new ItemStack(Items.gunpowder, 5)); - recipes.overridePreSetRecipe(new ItemStack(Items.wheat_seeds), new ItemStack(ModItems.oil_canola, 1)); - recipes.overridePreSetRecipe(new ItemStack(Items.pumpkin_seeds), new ItemStack(ModItems.oil_canola, 2)); recipes.overridePreSetRecipe(new ItemStack(ModItems.powder_quartz), new ItemStack(ModItems.powder_lithium_tiny, 1)); recipes.overridePreSetRecipe(new ItemStack(ModItems.powder_lapis), new ItemStack(ModItems.powder_cobalt_tiny, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_neodymium), new ItemStack(ModItems.powder_neodymium_tiny, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_cobalt), new ItemStack(ModItems.powder_cobalt_tiny, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_niobium), new ItemStack(ModItems.powder_niobium_tiny, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_cerium), new ItemStack(ModItems.powder_cerium_tiny, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_lanthanium), new ItemStack(ModItems.powder_lanthanium_tiny, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_actinium), new ItemStack(ModItems.powder_actinium_tiny, 1)); recipes.PrintRecipes(); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java new file mode 100644 index 000000000..77458b696 --- /dev/null +++ b/com/hbm/main/ResourceManager.java @@ -0,0 +1,21 @@ +package com.hbm.main; + +import com.hbm.lib.RefStrings; + +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class ResourceManager { + + ////Obj TEs + + //Turrets + public static final IModelCustom turret_heavy_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_base.obj")); + public static final IModelCustom turret_heavy_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_rotor.obj")); + public static final IModelCustom turret_heavy_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_heavy_gun.obj")); + + public static final IModelCustom turret_rocket_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_rocket_gun.obj")); + public static final IModelCustom turret_light_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_light_gun.obj")); + +} diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index 5ce6d86a8..005cbc562 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -39,6 +39,8 @@ public class PacketDispatcher { wrapper.registerMessage(LoopedSoundPacket.Handler.class, LoopedSoundPacket.class, i++, Side.CLIENT); //Chemplant piston rotation for rendering wrapper.registerMessage(TEChemplantPacket.Handler.class, TEChemplantPacket.class, i++, Side.CLIENT); + //Turret rotation for rendering + wrapper.registerMessage(TETurretPacket.Handler.class, TETurretPacket.class, i++, Side.CLIENT); } } diff --git a/com/hbm/packet/TETurretPacket.java b/com/hbm/packet/TETurretPacket.java new file mode 100644 index 000000000..734756f62 --- /dev/null +++ b/com/hbm/packet/TETurretPacket.java @@ -0,0 +1,68 @@ +package com.hbm.packet; + +import com.hbm.tileentity.TileEntityStructureMarker; +import com.hbm.tileentity.TileEntityTurretBase; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class TETurretPacket implements IMessage { + + int x; + int y; + int z; + double yaw; + double pitch; + + public TETurretPacket() + { + + } + + public TETurretPacket(int x, int y, int z, double yaw, double pitch) + { + this.x = x; + this.y = y; + this.z = z; + this.yaw = yaw; + this.pitch = pitch; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + yaw = buf.readDouble(); + pitch = buf.readDouble(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeDouble(yaw); + buf.writeDouble(pitch); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(TETurretPacket m, MessageContext ctx) { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + if (te != null && te instanceof TileEntityTurretBase) { + + TileEntityTurretBase turret = (TileEntityTurretBase) te; + turret.rotationYaw = m.yaw; + turret.rotationPitch = m.pitch; + } + return null; + } + } +} diff --git a/com/hbm/render/tileentity/RenderHeavyTurret.java b/com/hbm/render/tileentity/RenderHeavyTurret.java new file mode 100644 index 000000000..695a71131 --- /dev/null +++ b/com/hbm/render/tileentity/RenderHeavyTurret.java @@ -0,0 +1,80 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.TileEntityMachineIGenerator; +import com.hbm.tileentity.TileEntityTurretBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderHeavyTurret extends TileEntitySpecialRenderer { + + public RenderHeavyTurret() { } + private ResourceLocation gadgetTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + double yaw = 0; + double pitch = 0; + + if(tileEntity instanceof TileEntityTurretBase) { + yaw = ((TileEntityTurretBase)tileEntity).rotationYaw; + pitch = ((TileEntityTurretBase)tileEntity).rotationPitch; + } + + this.bindTexture(gadgetTexture); + ResourceManager.turret_heavy_base.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt2(tileEntity, x, y, z, f, yaw, pitch); + } + + public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f, double yaw, double pitch) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glRotated(yaw + 180, 0F, -1F, 0F); + + this.bindTexture(gadgetTexture); + ResourceManager.turret_heavy_rotor.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt3(tileEntity, x, y, z, f, yaw, pitch); + } + + public void renderTileEntityAt3(TileEntity tileEntity, double x, double y, double z, float f, double yaw, double pitch) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y + 1, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glRotated(yaw + 180, 0F, -1F, 0F); + GL11.glRotated(pitch, 1F, 0F, 0F); + + this.bindTexture(gadgetTexture); + ResourceManager.turret_heavy_gun.renderAll(); + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/render/tileentity/RenderLightTurret.java b/com/hbm/render/tileentity/RenderLightTurret.java new file mode 100644 index 000000000..4497a481a --- /dev/null +++ b/com/hbm/render/tileentity/RenderLightTurret.java @@ -0,0 +1,77 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.TileEntityTurretBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; + +public class RenderLightTurret extends TileEntitySpecialRenderer { + + public RenderLightTurret() { } + private ResourceLocation gadgetTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + double yaw = 0; + double pitch = 0; + + if(tileEntity instanceof TileEntityTurretBase) { + yaw = ((TileEntityTurretBase)tileEntity).rotationYaw; + pitch = ((TileEntityTurretBase)tileEntity).rotationPitch; + } + + this.bindTexture(gadgetTexture); + ResourceManager.turret_heavy_base.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt2(tileEntity, x, y, z, f, yaw, pitch); + } + + public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f, double yaw, double pitch) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glRotated(yaw + 180, 0F, -1F, 0F); + + this.bindTexture(gadgetTexture); + ResourceManager.turret_heavy_rotor.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt3(tileEntity, x, y, z, f, yaw, pitch); + } + + public void renderTileEntityAt3(TileEntity tileEntity, double x, double y, double z, float f, double yaw, double pitch) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y + 1, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glRotated(yaw + 180, 0F, -1F, 0F); + GL11.glRotated(pitch, 1F, 0F, 0F); + + this.bindTexture(gadgetTexture); + ResourceManager.turret_light_gun.renderAll(); + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/render/tileentity/RenderRocketTurret.java b/com/hbm/render/tileentity/RenderRocketTurret.java new file mode 100644 index 000000000..dcd339e30 --- /dev/null +++ b/com/hbm/render/tileentity/RenderRocketTurret.java @@ -0,0 +1,77 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.TileEntityTurretBase; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; + +public class RenderRocketTurret extends TileEntitySpecialRenderer { + + public RenderRocketTurret() { } + private ResourceLocation gadgetTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + double yaw = 0; + double pitch = 0; + + if(tileEntity instanceof TileEntityTurretBase) { + yaw = ((TileEntityTurretBase)tileEntity).rotationYaw; + pitch = ((TileEntityTurretBase)tileEntity).rotationPitch; + } + + this.bindTexture(gadgetTexture); + ResourceManager.turret_heavy_base.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt2(tileEntity, x, y, z, f, yaw, pitch); + } + + public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f, double yaw, double pitch) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glRotated(yaw + 180, 0F, -1F, 0F); + + this.bindTexture(gadgetTexture); + ResourceManager.turret_heavy_rotor.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt3(tileEntity, x, y, z, f, yaw, pitch); + } + + public void renderTileEntityAt3(TileEntity tileEntity, double x, double y, double z, float f, double yaw, double pitch) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y + 1, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glRotated(yaw + 180, 0F, -1F, 0F); + GL11.glRotated(pitch, 1F, 0F, 0F); + + this.bindTexture(gadgetTexture); + ResourceManager.turret_rocket_gun.renderAll(); + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/tileentity/TileEntityTurretBase.java b/com/hbm/tileentity/TileEntityTurretBase.java new file mode 100644 index 000000000..06badd76e --- /dev/null +++ b/com/hbm/tileentity/TileEntityTurretBase.java @@ -0,0 +1,35 @@ +package com.hbm.tileentity; + +import com.hbm.packet.LoopedSoundPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.TETurretPacket; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public abstract class TileEntityTurretBase extends TileEntity { + + public double rotationYaw; + public double rotationPitch; + + @Override + public void updateEntity() { + if(!worldObj.isRemote) + PacketDispatcher.wrapper.sendToAll(new TETurretPacket(xCoord, yCoord, zCoord, rotationYaw, rotationPitch)); + } + + @Override + public AxisAlignedBB getRenderBoundingBox() { + return TileEntity.INFINITE_EXTENT_AABB; + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } + +} diff --git a/com/hbm/tileentity/TileEntityTurretHeavy.java b/com/hbm/tileentity/TileEntityTurretHeavy.java new file mode 100644 index 000000000..b84dd1cd7 --- /dev/null +++ b/com/hbm/tileentity/TileEntityTurretHeavy.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityTurretHeavy extends TileEntityTurretBase { + +} diff --git a/com/hbm/tileentity/TileEntityTurretLight.java b/com/hbm/tileentity/TileEntityTurretLight.java new file mode 100644 index 000000000..0911a0789 --- /dev/null +++ b/com/hbm/tileentity/TileEntityTurretLight.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityTurretLight extends TileEntityTurretBase { + +} diff --git a/com/hbm/tileentity/TileEntityTurretRocket.java b/com/hbm/tileentity/TileEntityTurretRocket.java new file mode 100644 index 000000000..2950cc1d3 --- /dev/null +++ b/com/hbm/tileentity/TileEntityTurretRocket.java @@ -0,0 +1,7 @@ +package com.hbm.tileentity; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityTurretRocket extends TileEntityTurretBase { + +}