diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 55e122157..7c32ccbe2 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -1655,6 +1655,7 @@ item.mp_c_2.name=Stufe 2 Zielsucher-Schaltkreis item.mp_c_3.name=Stufe 3 Zielsucher-Schaltkreis item.mp_c_4.name=Stufe 4 Zielsucher-Schaltkreis item.mp_c_5.name=Stufe 5 Zielsucher-Schaltkreis + item.mp_warhead_10_he.name=Größe 10 HE-Sprengkopf item.mp_warhead_10_incendiary.name=Größe 10 Brandsprengkopf item.mp_warhead_10_buster.name=Größe 10 Bunkerbrechender Sprengkopf @@ -1663,23 +1664,48 @@ item.mp_warhead_10_nuclear_large.name=Größe 10 Atomsprengkopf "Chernobyl Boris item.mp_warhead_15_he.name=Größe 15 HE-Sprengkopf item.mp_warhead_15_incendiary.name=Größe 15 Brandsprengkopf item.mp_warhead_15_nuclear.name=Größe 15 Atomsprengkopf "Tantchen Bertha" + item.mp_fuselage_10_kerosene.name=Größe 10 Kerosintank +item.mp_fuselage_10_kerosene_camo.name=Größe 10 Kerosintank (Camouflage) +item.mp_fuselage_10_kerosene_desert.name=Größe 10 Kerosintank (Wüstencamouflage) +item.mp_fuselage_10_kerosene_flames.name=Größe 10 Kerosintank (Krasse Flammen) +item.mp_fuselage_10_kerosene_sleek.name=Größe 10 Kerosintank (IF-R&D) +item.mp_fuselage_10_kerosene_metal.name=Größe 10 Kerosintank (Metall) item.mp_fuselage_10_solid.name=Größe 10 Festbrennstofftank +item.mp_fuselage_10_solid_flames.name=Größe 10 Festbrennstofftank (Krasse Flammen) +item.mp_fuselage_10_solid_sleek.name=Größe 10 Festbrennstofftank (IF-R&D) item.mp_fuselage_10_xenon.name=Größe 10 Xenontank item.mp_fuselage_10_long_kerosene.name=Größe 10 Langer Kerosintank +item.mp_fuselage_10_long_kerosene_camo.name=Größe 10 Langer Kerosintank (Camouflage) +item.mp_fuselage_10_long_kerosene_desert.name=Größe 10 Langer Kerosintank (Wüstencamouflage) +item.mp_fuselage_10_long_kerosene_flames.name=Größe 10 Langer Kerosintank (Krasse Flammen) +item.mp_fuselage_10_long_kerosene_sleek.name=Größe 10 Langer Kerosintank (IF-R&D) +item.mp_fuselage_10_long_kerosene_metal.name=Größe 10 Langer Kerosintank (Metall) item.mp_fuselage_10_long_solid.name=Größe 10 Langer Festbrennstofftank +item.mp_fuselage_10_long_solid_flames.name=Größe 10 Langer Festbrennstofftank (Krasse Flammen) +item.mp_fuselage_10_long_solid_sleek.name=Größe 10 Langer Festbrennstofftank (IF-R&D) + item.mp_fuselage_10_15_kerosene.name=Größe 10/15 Kerosintank item.mp_fuselage_10_15_solid.name=Größe 10/15 Festbrennstofftank item.mp_fuselage_10_15_hydrogen.name=Größe 10/15 Wasserstofftank item.mp_fuselage_10_15_balefire.name=Größe 10/15 BF-Kraftstofftank + item.mp_fuselage_15_kerosene.name=Größe 15 Kerosintank +item.mp_fuselage_15_kerosene_camo.name=Größe 15 Kerosintank (Camouflage) +item.mp_fuselage_15_kerosene_desert.name=Größe 15 Kerosintank (Wüstencamouflage) +item.mp_fuselage_15_kerosene_metal.name=Größe 15 Kerosintank (Metall) +item.mp_fuselage_15_kerosene_decorated.name=Größe 15 Kerosintank (Dekoriertes Metall) item.mp_fuselage_15_solid.name=Größe 15 Festbrennstofftank +item.mp_fuselage_15_solid_soviet_glory.name=Größe 15 Festbrennstofftank (Sowjetischer Ruhm) +item.mp_fuselage_15_solid_soviet_stank.name=Größe 15 Festbrennstofftank (Sowjetischer Mief) item.mp_fuselage_15_hydrogen.name=Größe 15 Wasserstofftank item.mp_fuselage_15_balefire.name=Größe 15 BF-Kraftstofftank + item.mp_stability_10_flat.name=Größe 10 Flache Flügel item.mp_stability_10_cruise.name=Größe 10 Cruise-Flügel item.mp_stability_15_flat.name=Größe 15 Flache Flügel item.mp_stability_15_thin.name=Größe 15 Dünne Flügel + item.mp_thruster_10_kerosene.name=Größe 10 Flüssigtriebwerk item.mp_thruster_10_solid.name=Größe 10 Festbrennstofftriebwerk item.mp_thruster_10_xenon.name=Größe 10 Ionentriebwerk @@ -1688,17 +1714,23 @@ item.mp_thruster_15_kerosene_dual.name=Größe 15 Flüssigtriebwerk-Zwilling item.mp_thruster_15_kerosene_triple.name=Größe 15 Flüssigtriebwerk-Drilling item.mp_thruster_15_solid.name=Größe 15 Festbrennstofftriebwerk item.mp_thruster_15_solid_hexdecuple.name=Größe 15 Festbrennstofftriebwerk-Sechzehnling +item.mp_thruster_15_hydrogen.name=Größe 15 Wasserstofftriebwerk +item.mp_thruster_15_hydrogen_dual.name=Größe 15 Wasserstofftriebwerk-Zwilling item.mp_thruster_15_balefire_short.name=Größe 15 BF-Triebwerk mit nuklearem Vorwärmer (Verkürzt) item.mp_thruster_15_balefire.name=Größe 15 BF-Triebwerk mit nuklearem Vorwärmer item.mp_thruster_15_balefire_large.name=Größe 15 BF-Triebwerk mit nuklearem Vorwärmer (Schwerlastdüse) -item.missile_skin_camo.name=Missile Skin: Camouflage -item.missile_skin_flames.name=Missile Skin: Krasse Flammen -item.missile_skin_manly_pink.name=Missile Skin: Männliches Pink -item.missile_skin_orange_insulation.name=Missile Skin: Oranger Isolator -item.missile_skin_sleek.name=Missile Skin: IF-R&D -item.missile_skin_soviet_glory.name=Missile Skin: Sowjetischer Ruhm -item.missile_skin_soviet_stank.name=Missile Skin: Sowjetischer Mief +item.missile_skin_camo.name=Raketenskin: Camouflage +item.missile_skin_desert.name=Raketenskin: Wüstencamouflage +item.missile_skin_flames.name=Raketenskin: Krasse Flammen +item.missile_skin_manly_pink.name=Raketenskin: Männliches Pink +item.missile_skin_orange_insulation.name=Raketenskin: Oranger Isolator +item.missile_skin_sleek.name=Raketenskin: IF-R&D +item.missile_skin_soviet_glory.name=Raketenskin: Sowjetischer Ruhm +item.missile_skin_soviet_stank.name=Raketenskin: Sowjetischer Mief +item.missile_skin_metal.name=Raketenskin: Metall + +item.missile_custom.name=Spezialgefertigte Rakete item.missile_carrier.name=HTR-01 Trägerrakete item.sat_mapper.name=Oberflächen-Abtastungssatellit diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 55ffe6e6c..7f34b3887 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -1655,6 +1655,7 @@ item.mp_c_2.name=Tier 2 Missile Targeting Circuit item.mp_c_3.name=Tier 3 Missile Targeting Circuit item.mp_c_4.name=Tier 4 Missile Targeting Circuit item.mp_c_5.name=Tier 5 Missile Targeting Circuit + item.mp_warhead_10_he.name=Size 10 HE Warhead item.mp_warhead_10_incendiary.name=Size 10 Incendiary Warhead item.mp_warhead_10_buster.name=Size 10 Bunker Buster Warhead @@ -1663,23 +1664,48 @@ item.mp_warhead_15_he.name=Size 15 HE Warhead item.mp_warhead_15_incendiary.name=Size 15 Incendiary Warhead item.mp_warhead_10_nuclear_large.name=Size 10 Nuclear Warhead "Chernobyl Boris" item.mp_warhead_15_nuclear.name=Size 15 Nuclear Warhead "Auntie Bertha" + item.mp_fuselage_10_kerosene.name=Size 10 Kerosene Fuselage +item.mp_fuselage_10_kerosene_camo.name=Size 10 Kerosene Fuselage (Camo) +item.mp_fuselage_10_kerosene_desert.name=Size 10 Kerosene Fuselage (Desert Camo) +item.mp_fuselage_10_kerosene_flames.name=Size 10 Kerosene Fuselage (Sick Flames) +item.mp_fuselage_10_kerosene_sleek.name=Size 10 Kerosene Fuselage (IF-R&D) +item.mp_fuselage_10_kerosene_metal.name=Size 10 Kerosene Fuselage (Metal) item.mp_fuselage_10_solid.name=Size 10 Solid Fuel Fuselage +item.mp_fuselage_10_solid_flames.name=Size 10 Solid Fuselage (Sick Flames) +item.mp_fuselage_10_solid_sleek.name=Size 10 Solid Fuselage (IF-R&D) item.mp_fuselage_10_xenon.name=Size 10 Xenon Fuselage item.mp_fuselage_10_long_kerosene.name=Size 10 Long Kerosene Fuselage +item.mp_fuselage_10_long_kerosene_camo.name=Size 10 Long Kerosene Fuselage (Camo) +item.mp_fuselage_10_long_kerosene_desert.name=Size 10 Long Kerosene Fuselage (Desert Camo) +item.mp_fuselage_10_long_kerosene_flames.name=Size 10 Long Kerosene Fuselage (Sick Flames) +item.mp_fuselage_10_long_kerosene_sleek.name=Size 10 Long Kerosene Fuselage (IF-R&D) +item.mp_fuselage_10_long_kerosene_metal.name=Size 10 Long Kerosene Fuselage (Metal) item.mp_fuselage_10_long_solid.name=Size 10 Long Solid Fuel Fuselage +item.mp_fuselage_10_long_solid_flames.name=Size 10 Long Solid Fuel Fuselage (Sick Flames) +item.mp_fuselage_10_long_solid_sleek.name=Size 10 Long Solid Fuel Fuselage (IF-R&D) + item.mp_fuselage_10_15_kerosene.name=Size 10/15 Kerosene Fuselage item.mp_fuselage_10_15_solid.name=Size 10/15 Solid Fuel Fuselage item.mp_fuselage_10_15_hydrogen.name=Size 10/15 Hydrogen Fuselage item.mp_fuselage_10_15_balefire.name=Size 10/15 BF Fuselage + item.mp_fuselage_15_kerosene.name=Size 15 Kerosene Fuselage +item.mp_fuselage_15_kerosene_camo.name=Size 15 Kerosene Fuselage (Camo) +item.mp_fuselage_15_kerosene_desert.name=Size 15 Kerosene Fuselage (Desert Camo) +item.mp_fuselage_15_kerosene_metal.name=Size 15 Kerosene Fuselage (Metal) +item.mp_fuselage_15_kerosene_decorated.name=Size 15 Kerosene Fuselage (Decorated Metal) item.mp_fuselage_15_solid.name=Size 15 Solid Fuel Fuselage +item.mp_fuselage_15_solid_soviet_glory.name=Size 15 Solid Fuel Fuselage (Soviet Glory) +item.mp_fuselage_15_solid_soviet_stank.name=Size 15 Solid Fuel Fuselage (Soviet Stank) item.mp_fuselage_15_hydrogen.name=Size 15 Hydrogen Fuselage item.mp_fuselage_15_balefire.name=Size 15 BF Fuselage + item.mp_stability_10_flat.name=Size 10 Flat Fins item.mp_stability_10_cruise.name=Size 10 Cruise Fins item.mp_stability_15_flat.name=Size 15 Flat Fins item.mp_stability_15_thin.name=Size 15 Thin Fins + item.mp_thruster_10_kerosene.name=Size 10 Liquid Fuel Thruster item.mp_thruster_10_solid.name=Size 10 Solid Fuel Thruster item.mp_thruster_10_xenon.name=Size 10 Ion Thruster @@ -1688,17 +1714,23 @@ item.mp_thruster_15_kerosene_dual.name=Size 15 Liquid Fuel Twin Thrusters item.mp_thruster_15_kerosene_triple.name=Size 15 Liquid Fuel Triple Thrusters item.mp_thruster_15_solid.name=Size 15 Solid Fuel Thruster item.mp_thruster_15_solid_hexdecuple.name=Size 15 Solid Fuel Hexdecuple Thrusters +item.mp_thruster_15_hydrogen.name=Size 15 Hydrogen Thruster +item.mp_thruster_15_hydrogen_dual.name=Size 15 Hydrogen Twin Thrusters item.mp_thruster_15_balefire_short.name=Size 15 BF Thruster with Nuclear Preheater (Shortened) item.mp_thruster_15_balefire.name=Size 15 BF Thruster with Nuclear Preheater item.mp_thruster_15_balefire_large.name=Size 15 BF Thruster with Nuclear Preheater (Heavy Duty Nozzle) item.missile_skin_camo.name=Missile Skin: Camo +item.missile_skin_desert.name=Missile Skin: Desert Camo item.missile_skin_flames.name=Missile Skin: Sick Flames item.missile_skin_manly_pink.name=Missile Skin: Manly Pink item.missile_skin_orange_insulation.name=Missile Skin: Orange Insulation item.missile_skin_sleek.name=Missile Skin: IF-R&D item.missile_skin_soviet_glory.name=Missile Skin: Soviet Glory item.missile_skin_soviet_stank.name=Missile Skin: Soviet Stank +item.missile_skin_metal.name=Missile Skin: Metal + +item.missile_custom.name=Custom Missile item.missile_carrier.name=HTR-01 Carrier Rocket item.sat_mapper.name=Surface Mapping Satellite diff --git a/assets/hbm/models/compact_launcher.obj b/assets/hbm/models/compact_launcher.obj new file mode 100644 index 000000000..228d1a361 --- /dev/null +++ b/assets/hbm/models/compact_launcher.obj @@ -0,0 +1,337 @@ +# Blender v2.76 (sub 0) OBJ File: 'compact_launcher.blend' +# www.blender.org +o Cube_Cube.001 +v 0.500000 0.000000 -0.500000 +v 0.500000 1.000000 -0.500000 +v 0.500000 0.000000 -1.500000 +v 0.500000 1.000000 -1.500000 +v 1.500000 0.000000 -0.500000 +v 1.500000 1.000000 -0.500000 +v 1.500000 0.000000 -1.500000 +v 1.500000 1.000000 -1.500000 +v 0.500000 0.000000 1.500000 +v 0.500000 1.000000 1.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 1.000000 0.500000 +v 1.500000 0.000000 1.500000 +v 1.500000 1.000000 1.500000 +v 1.500000 0.000000 0.500000 +v 1.500000 1.000000 0.500000 +v -1.500000 0.000000 -0.500000 +v -1.500000 1.000000 -0.500000 +v -1.500000 0.000000 -1.500000 +v -1.500000 1.000000 -1.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -0.500000 0.000000 -1.500000 +v -0.500000 1.000000 -1.500000 +v -1.500000 0.000000 1.500000 +v -1.500000 1.000000 1.500000 +v -1.500000 0.000000 0.500000 +v -1.500000 1.000000 0.500000 +v -0.500000 0.000000 1.500000 +v -0.500000 1.000000 1.500000 +v -0.500000 0.000000 0.500000 +v -0.500000 1.000000 0.500000 +v 0.750000 1.000000 1.000000 +v 0.750000 8.000000 1.000000 +v 0.750000 1.000000 0.750000 +v 0.750000 8.000000 0.750000 +v 1.000000 1.000000 1.000000 +v 1.000000 8.000000 1.000000 +v 1.000000 1.000000 0.750000 +v 1.000000 8.000000 0.750000 +v 0.750000 1.000000 -0.750000 +v 0.750000 8.000000 -0.750000 +v 0.750000 1.000000 -1.000000 +v 0.750000 8.000000 -1.000000 +v 1.000000 1.000000 -0.750000 +v 1.000000 8.000000 -0.750000 +v 1.000000 1.000000 -1.000000 +v 1.000000 8.000000 -1.000000 +v -1.000000 1.000000 -0.750000 +v -1.000000 8.000000 -0.750000 +v -1.000000 1.000000 -1.000000 +v -1.000000 8.000000 -1.000000 +v -0.750000 1.000000 -0.750000 +v -0.750000 8.000000 -0.750000 +v -0.750000 1.000000 -1.000000 +v -0.750000 8.000000 -1.000000 +v -1.000000 1.000000 1.000000 +v -1.000000 8.000000 1.000000 +v -1.000000 1.000000 0.750000 +v -1.000000 8.000000 0.750000 +v -0.750000 1.000000 1.000000 +v -0.750000 8.000000 1.000000 +v -0.750000 1.000000 0.750000 +v -0.750000 8.000000 0.750000 +v -0.875000 1.000000 -0.750000 +v -0.875000 8.000000 -0.750000 +v -0.875000 1.000000 0.750000 +v -0.875000 8.000000 0.750000 +v 0.875000 1.000000 -0.750000 +v 0.875000 8.000000 -0.750000 +v 0.875000 1.000000 0.750000 +v 0.875000 8.000000 0.750000 +v -0.750000 1.000000 0.875000 +v -0.750000 8.000000 0.875000 +v 0.750000 1.000000 0.875000 +v 0.750000 8.000000 0.875000 +v -0.750000 1.000000 -0.875000 +v -0.750000 8.000000 -0.875000 +v 0.750000 1.000000 -0.875000 +v 0.750000 8.000000 -0.875000 +v 0.750000 8.000000 -0.875000 +v 0.750000 1.000000 -0.875000 +v -0.750000 8.000000 -0.875000 +v -0.750000 1.000000 -0.875000 +v 0.750000 8.000000 0.875000 +v 0.750000 1.000000 0.875000 +v -0.750000 8.000000 0.875000 +v -0.750000 1.000000 0.875000 +v 0.875000 8.000000 0.750000 +v 0.875000 1.000000 0.750000 +v 0.875000 8.000000 -0.750000 +v 0.875000 1.000000 -0.750000 +v -0.875000 8.000000 0.750000 +v -0.875000 1.000000 0.750000 +v -0.875000 8.000000 -0.750000 +v -0.875000 1.000000 -0.750000 +v 0.500000 1.000000 -0.500000 +v 0.500000 1.000000 -1.500000 +v 1.500000 1.000000 -0.500000 +v 0.500000 1.000000 1.500000 +v 0.500000 1.000000 0.500000 +v 1.500000 1.000000 0.500000 +v -1.500000 1.000000 -0.500000 +v -0.500000 1.000000 -0.500000 +v -0.500000 1.000000 -1.500000 +v -1.500000 1.000000 0.500000 +v -0.500000 1.000000 1.500000 +v -0.500000 1.000000 0.500000 +vt 0.071429 0.214286 +vt 0.071429 0.142857 +vt 0.142857 0.142857 +vt 0.071429 0.071429 +vt 0.142857 0.071429 +vt 0.071429 0.285714 +vt 0.142857 0.214286 +vt 0.071429 -0.000000 +vt 0.142857 -0.000000 +vt 0.142857 0.285714 +vt 0.142857 0.357143 +vt 0.071429 0.357143 +vt 0.142857 0.428571 +vt 0.071429 0.428571 +vt -0.000000 0.214286 +vt -0.000000 0.142857 +vt 0.000000 0.071429 +vt -0.000000 0.285714 +vt 0.000000 0.000000 +vt -0.000000 0.357143 +vt 0.000000 0.428571 +vt 0.214286 0.214286 +vt 0.214286 0.142857 +vt 0.285714 0.142857 +vt 0.214286 0.071429 +vt 0.285714 0.071429 +vt 0.214286 0.285714 +vt 0.285714 0.214286 +vt 0.214286 0.000000 +vt 0.285714 0.285714 +vt 0.285714 0.357143 +vt 0.214286 0.357143 +vt 0.285714 0.428571 +vt 0.214286 0.428571 +vt 0.785714 0.000000 +vt 0.785714 0.071429 +vt 0.714286 0.071429 +vt 0.785714 0.142857 +vt 0.785714 0.214286 +vt 0.714286 0.214286 +vt 0.857143 0.142857 +vt 0.714286 0.142857 +vt 0.642857 0.142857 +vt 0.642857 0.071429 +vt 0.035714 0.928571 +vt 0.035714 0.428571 +vt 0.053571 0.428571 +vt 0.017857 0.928571 +vt 0.017857 0.428571 +vt 0.000000 0.928571 +vt 0.053571 0.928571 +vt 0.107143 0.928571 +vt 0.107143 0.428571 +vt 0.125000 0.428571 +vt 0.017857 0.946429 +vt 0.000000 0.946429 +vt 0.089286 0.928571 +vt 0.089286 0.428571 +vt 0.071429 0.928571 +vt 0.125000 0.928571 +vt 0.089286 0.946429 +vt 0.071429 0.946429 +vt 0.250000 0.928571 +vt 0.250000 0.428571 +vt 0.267857 0.428571 +vt 0.232143 0.928571 +vt 0.232143 0.428571 +vt 0.214286 0.928571 +vt 0.267857 0.928571 +vt 0.232143 0.946429 +vt 0.214286 0.946429 +vt 0.178571 0.928571 +vt 0.178571 0.428571 +vt 0.196429 0.428571 +vt 0.160714 0.928571 +vt 0.160714 0.428571 +vt 0.142857 0.928571 +vt 0.196429 0.928571 +vt 0.160714 0.946429 +vt 0.142857 0.946429 +vt 0.571429 -0.000000 +vt 0.571429 0.500000 +vt 0.464286 0.500000 +vt 0.392857 0.500000 +vt 0.285714 0.500000 +vt 0.285714 -0.000000 +vt 0.571429 1.000000 +vt 0.464286 1.000000 +vt 0.392857 1.000000 +vt 0.285714 1.000000 +vt 0.714286 0.000000 +vt 0.857143 0.071429 +vt 0.285714 0.928571 +vt 0.464286 0.000000 +vt 0.392857 -0.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.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +s off +f 4/1/1 3/2/1 1/3/1 +f 8/2/2 7/4/2 3/5/2 +f 6/6/3 5/1/3 7/7/3 +f 2/4/4 1/8/4 5/9/4 +f 3/10/5 7/11/5 5/12/5 +f 8/11/6 4/13/6 2/14/6 +f 12/15/1 11/16/1 9/2/1 +f 16/16/2 15/17/2 11/4/2 +f 14/18/3 13/15/3 15/1/3 +f 10/17/4 9/19/4 13/8/4 +f 11/6/5 15/12/5 13/20/5 +f 16/12/6 12/14/6 10/21/6 +f 20/22/1 19/23/1 17/24/1 +f 24/23/2 23/25/2 19/26/2 +f 22/27/3 21/22/3 23/28/3 +f 18/5/4 17/9/4 21/29/4 +f 19/30/5 23/31/5 21/32/5 +f 24/31/6 20/33/6 18/34/6 +f 28/7/1 27/3/1 25/23/1 +f 32/3/2 31/5/2 27/25/2 +f 30/10/3 29/7/3 31/22/3 +f 26/5/4 25/9/4 29/29/4 +f 27/27/5 31/32/5 29/11/5 +f 32/32/6 28/34/6 26/13/6 +f 6/35/6 2/36/6 12/37/6 +f 22/38/6 18/39/6 28/40/6 +f 24/41/6 22/38/6 2/36/6 +f 32/42/6 30/43/6 10/44/6 +f 2/36/6 22/38/6 32/42/6 +f 36/45/1 35/46/1 33/47/1 +f 40/48/2 39/49/2 35/46/2 +f 38/50/3 37/21/3 39/49/3 +f 34/51/4 33/47/4 37/14/4 +f 44/52/1 43/53/1 41/54/1 +f 40/48/6 36/55/6 34/56/6 +f 48/57/2 47/58/2 43/53/2 +f 46/59/3 45/14/3 47/58/3 +f 42/60/4 41/54/4 45/13/4 +f 48/57/6 44/61/6 42/62/6 +f 52/63/1 51/64/1 49/65/1 +f 56/66/2 55/67/2 51/64/2 +f 54/68/3 53/34/3 55/67/3 +f 50/69/4 49/65/4 53/33/4 +f 56/66/6 52/70/6 50/71/6 +f 60/72/1 59/73/1 57/74/1 +f 64/75/2 63/76/2 59/73/2 +f 62/77/3 61/13/3 63/76/3 +f 58/78/4 57/74/4 61/34/4 +f 64/75/6 60/79/6 58/80/6 +f 67/81/1 68/82/1 66/83/1 +f 70/84/3 72/85/3 71/86/3 +f 75/82/4 76/87/4 74/88/4 +f 78/89/2 80/90/2 79/85/2 +f 82/85/4 81/90/4 83/89/4 +f 87/88/2 85/87/2 86/82/2 +f 90/86/1 89/85/1 91/84/1 +f 95/83/3 93/82/3 94/81/3 +f 101/37/5 97/36/5 99/35/5 +f 106/40/5 103/39/5 104/38/5 +f 97/36/5 104/38/5 105/41/5 +f 100/44/5 107/43/5 108/42/5 +f 108/42/5 104/38/5 97/36/5 +f 2/7/1 4/1/1 1/3/1 +f 4/3/2 8/2/2 3/5/2 +f 8/10/3 6/6/3 7/7/3 +f 6/5/4 2/4/4 5/9/4 +f 1/6/5 3/10/5 5/12/5 +f 6/12/6 8/11/6 2/14/6 +f 10/1/1 12/15/1 9/2/1 +f 12/2/2 16/16/2 11/4/2 +f 16/6/3 14/18/3 15/1/3 +f 14/4/4 10/17/4 13/8/4 +f 9/18/5 11/6/5 13/20/5 +f 14/20/6 16/12/6 10/21/6 +f 18/28/1 20/22/1 17/24/1 +f 20/24/2 24/23/2 19/26/2 +f 24/30/3 22/27/3 23/28/3 +f 22/25/4 18/5/4 21/29/4 +f 17/27/5 19/30/5 21/32/5 +f 22/32/6 24/31/6 18/34/6 +f 26/22/1 28/7/1 25/23/1 +f 28/23/2 32/3/2 27/25/2 +f 32/27/3 30/10/3 31/22/3 +f 30/25/4 26/5/4 29/29/4 +f 25/10/5 27/27/5 29/11/5 +f 30/11/6 32/32/6 26/13/6 +f 16/91/6 6/35/6 12/37/6 +f 32/42/6 22/38/6 28/40/6 +f 4/92/6 24/41/6 2/36/6 +f 12/37/6 32/42/6 10/44/6 +f 12/37/6 2/36/6 32/42/6 +f 34/51/1 36/45/1 33/47/1 +f 36/45/2 40/48/2 35/46/2 +f 40/48/3 38/50/3 39/49/3 +f 38/59/4 34/51/4 37/14/4 +f 42/60/1 44/52/1 41/54/1 +f 38/50/6 40/48/6 34/56/6 +f 44/52/2 48/57/2 43/53/2 +f 48/57/3 46/59/3 47/58/3 +f 46/77/4 42/60/4 45/13/4 +f 46/59/6 48/57/6 42/62/6 +f 50/69/1 52/63/1 49/65/1 +f 52/63/2 56/66/2 51/64/2 +f 56/66/3 54/68/3 55/67/3 +f 54/93/4 50/69/4 53/33/4 +f 54/68/6 56/66/6 50/71/6 +f 58/78/1 60/72/1 57/74/1 +f 60/72/2 64/75/2 59/73/2 +f 64/75/3 62/77/3 63/76/3 +f 62/68/4 58/78/4 61/34/4 +f 62/77/6 64/75/6 58/80/6 +f 65/94/1 67/81/1 66/83/1 +f 69/95/3 70/84/3 71/86/3 +f 73/83/4 75/82/4 74/88/4 +f 77/84/2 78/89/2 79/85/2 +f 84/84/4 82/85/4 83/89/4 +f 88/83/2 87/88/2 86/82/2 +f 92/95/1 90/86/1 91/84/1 +f 96/94/3 95/83/3 94/81/3 +f 102/91/5 101/37/5 99/35/5 +f 108/42/5 106/40/5 104/38/5 +f 98/92/5 97/36/5 105/41/5 +f 101/37/5 100/44/5 108/42/5 +f 101/37/5 108/42/5 97/36/5 diff --git a/assets/hbm/textures/gui/gui_launch_table_small.png b/assets/hbm/textures/gui/gui_launch_table_small.png index a6e48ade4..f0149f70f 100644 Binary files a/assets/hbm/textures/gui/gui_launch_table_small.png and b/assets/hbm/textures/gui/gui_launch_table_small.png differ diff --git a/assets/hbm/textures/items/missile_skin_desert.png b/assets/hbm/textures/items/missile_skin_desert.png new file mode 100644 index 000000000..1e0c7e19a Binary files /dev/null and b/assets/hbm/textures/items/missile_skin_desert.png differ diff --git a/assets/hbm/textures/items/missile_skin_metal.png b/assets/hbm/textures/items/missile_skin_metal.png new file mode 100644 index 000000000..b83791df5 Binary files /dev/null and b/assets/hbm/textures/items/missile_skin_metal.png differ diff --git a/assets/hbm/textures/models/compact_launcher.png b/assets/hbm/textures/models/compact_launcher.png new file mode 100644 index 000000000..0e6ebc59e Binary files /dev/null and b/assets/hbm/textures/models/compact_launcher.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/base/camo.png b/assets/hbm/textures/models/missile_parts/fuselages/base/camo.png new file mode 100644 index 000000000..c6c942e6f Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/base/camo.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/base/camo_sand.png b/assets/hbm/textures/models/missile_parts/fuselages/base/camo_sand.png new file mode 100644 index 000000000..3b425072c Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/base/camo_sand.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_kerosene.png b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_kerosene.png new file mode 100644 index 000000000..4ad58a4fb Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_kerosene.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_kerosene_metal_green.png b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_kerosene_metal_green.png new file mode 100644 index 000000000..732c57e67 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_kerosene_metal_green.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_long_kerosene.png b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_long_kerosene.png new file mode 100644 index 000000000..6ff6df5f8 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_long_kerosene.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_long_kerosene_metal_green.png b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_long_kerosene_metal_green.png new file mode 100644 index 000000000..3baecea41 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_10_long_kerosene_metal_green.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_15_kerosene.png b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_15_kerosene.png new file mode 100644 index 000000000..604672d34 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_15_kerosene.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_15_kerosene_metal_green.png b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_15_kerosene_metal_green.png new file mode 100644 index 000000000..ff72fe3de Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/base/mp_f_15_kerosene_metal_green.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/overlay_flame.png b/assets/hbm/textures/models/missile_parts/fuselages/base/overlay_flame.png similarity index 100% rename from assets/hbm/textures/models/missile_parts/fuselages/overlay_flame.png rename to assets/hbm/textures/models/missile_parts/fuselages/base/overlay_flame.png diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene.png index 4ad58a4fb..732c57e67 100644 Binary files a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene.png and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_camo.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_camo.png new file mode 100644 index 000000000..4cfb8b6d8 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_camo.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_desert.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_desert.png new file mode 100644 index 000000000..122dc5719 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_desert.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_metal.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_metal.png new file mode 100644 index 000000000..285fa23a3 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_kerosene_metal.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene.png index 6ff6df5f8..3baecea41 100644 Binary files a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene.png and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_camo.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_camo.png new file mode 100644 index 000000000..df67a366b Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_camo.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_desert.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_desert.png new file mode 100644 index 000000000..2bc495fa9 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_desert.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_metal.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_metal.png new file mode 100644 index 000000000..876f88a10 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_metal.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene.png index 604672d34..ff72fe3de 100644 Binary files a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene.png and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_camo.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_camo.png new file mode 100644 index 000000000..910888b62 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_camo.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_decorated.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_decorated.png new file mode 100644 index 000000000..f735da88d Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_decorated.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_desert.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_desert.png new file mode 100644 index 000000000..8dd04eed3 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_kerosene_desert.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_solid_soviet_glory.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_solid_soviet_glory.png new file mode 100644 index 000000000..05e89fd62 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_solid_soviet_glory.png differ diff --git a/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_solid_soviet_stank.png b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_solid_soviet_stank.png new file mode 100644 index 000000000..08bde1d96 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/fuselages/mp_f_15_solid_soviet_stank.png differ diff --git a/assets/hbm/textures/models/missile_parts/thrusters/mp_t_15_hydrogen.png b/assets/hbm/textures/models/missile_parts/thrusters/mp_t_15_hydrogen.png new file mode 100644 index 000000000..2b76173f5 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/thrusters/mp_t_15_hydrogen.png differ diff --git a/assets/hbm/textures/models/missile_parts/thrusters/mp_t_15_hydrogen_dual.png b/assets/hbm/textures/models/missile_parts/thrusters/mp_t_15_hydrogen_dual.png new file mode 100644 index 000000000..da5437ae9 Binary files /dev/null and b/assets/hbm/textures/models/missile_parts/thrusters/mp_t_15_hydrogen_dual.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 0b7c6e49a..dd5ac6c66 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -515,6 +515,9 @@ public class ModBlocks { public static Block machine_missile_assembly; public static final int guiID_missile_assembly = 83; + public static Block compact_launcher; + public static final int guiID_compact_launcher = 85; + public static Block launch_table; public static final int guiID_launch_table = 84; @@ -1017,6 +1020,7 @@ public class ModBlocks { machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_radar"); machine_missile_assembly = new MachineMissileAssembly(Material.iron).setBlockName("machine_missile_assembly").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":machine_missile_assembly"); + compact_launcher = new CompactLauncher(Material.iron).setBlockName("compact_launcher").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":compact_launcher"); launch_table = new MachineLaunchTable(Material.iron).setBlockName("launch_table").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_table"); sat_mapper = new DecoBlock(Material.iron).setBlockName("sat_mapper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_mapper"); @@ -1594,6 +1598,7 @@ public class ModBlocks { //Missile Blocks GameRegistry.registerBlock(machine_missile_assembly, machine_missile_assembly.getUnlocalizedName()); GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); + GameRegistry.registerBlock(compact_launcher, compact_launcher.getUnlocalizedName()); GameRegistry.registerBlock(launch_table, launch_table.getUnlocalizedName()); GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/CompactLauncher.java b/com/hbm/blocks/bomb/CompactLauncher.java new file mode 100644 index 000000000..385c488fb --- /dev/null +++ b/com/hbm/blocks/bomb/CompactLauncher.java @@ -0,0 +1,58 @@ +package com.hbm.blocks.bomb; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.bomb.TileEntityCompactLauncher; + +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class CompactLauncher extends BlockContainer { + + public CompactLauncher(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityCompactLauncher(); + } + + @Override + public int getRenderType() { + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(world.isRemote) + { + return true; + } else if(!player.isSneaking()) + { + TileEntityCompactLauncher entity = (TileEntityCompactLauncher) world.getTileEntity(x, y, z); + if(entity != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_compact_launcher, world, x, y, z); + } + return true; + } else { + return false; + } + } + +} diff --git a/com/hbm/handler/GUIHandler.java b/com/hbm/handler/GUIHandler.java index 6080893f2..03f5c8cae 100644 --- a/com/hbm/handler/GUIHandler.java +++ b/com/hbm/handler/GUIHandler.java @@ -751,6 +751,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_compact_launcher: + { + if(entity instanceof TileEntityCompactLauncher) + { + return new ContainerCompactLauncher(player.inventory, (TileEntityCompactLauncher) entity); + } + return null; + } } } else { //NON-TE CONTAINERS @@ -1500,6 +1509,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_compact_launcher: + { + if(entity instanceof TileEntityCompactLauncher) + { + return new GUIMachineCompactLauncher(player.inventory, (TileEntityCompactLauncher) entity); + } + return null; + } } } else { //CLIENTONLY GUIS diff --git a/com/hbm/inventory/container/ContainerCompactLauncher.java b/com/hbm/inventory/container/ContainerCompactLauncher.java new file mode 100644 index 000000000..0c8f73a0d --- /dev/null +++ b/com/hbm/inventory/container/ContainerCompactLauncher.java @@ -0,0 +1,74 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotMachineOutput; +import com.hbm.tileentity.bomb.TileEntityCompactLauncher; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerCompactLauncher extends Container { + + private TileEntityCompactLauncher nukeBoy; + + public ContainerCompactLauncher(InventoryPlayer invPlayer, TileEntityCompactLauncher tedf) { + + nukeBoy = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 26, 36)); + this.addSlotToContainer(new Slot(tedf, 1, 26, 72)); + + for(int i = 0; i < 3; i++) + { + for(int j = 0; j < 9; j++) + { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); + } + } + + for(int i = 0; i < 9; i++) + { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); + } + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) + { + ItemStack var3 = null; + Slot var4 = (Slot) this.inventorySlots.get(par2); + + if (var4 != null && var4.getHasStack()) + { + ItemStack var5 = var4.getStack(); + var3 = var5.copy(); + + if (par2 <= 1) { + if (!this.mergeItemStack(var5, 2, this.inventorySlots.size(), true)) + { + return null; + } + } + else if (!this.mergeItemStack(var5, 0, 1, false)) + return null; + + if (var5.stackSize == 0) + { + var4.putStack((ItemStack) null); + } + else + { + var4.onSlotChanged(); + } + } + + return var3; + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return nukeBoy.isUseableByPlayer(player); + } +} diff --git a/com/hbm/inventory/gui/GUIMachineCompactLauncher.java b/com/hbm/inventory/gui/GUIMachineCompactLauncher.java new file mode 100644 index 000000000..7db080991 --- /dev/null +++ b/com/hbm/inventory/gui/GUIMachineCompactLauncher.java @@ -0,0 +1,96 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerCompactLauncher; +import com.hbm.inventory.container.ContainerMachineMissileAssembly; +import com.hbm.items.weapon.ItemCustomMissile; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.lib.RefStrings; +import com.hbm.packet.AuxButtonPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.render.misc.MissileMultipart; +import com.hbm.render.misc.MissilePart; +import com.hbm.render.misc.MissilePronter; +import com.hbm.tileentity.bomb.TileEntityCompactLauncher; +import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineCompactLauncher extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_launch_table_small.png"); + private TileEntityCompactLauncher assembler; + + public GUIMachineCompactLauncher(InventoryPlayer invPlayer, TileEntityCompactLauncher tedf) { + super(new ContainerCompactLauncher(invPlayer, tedf)); + assembler = tedf; + + this.xSize = 176; + this.ySize = 222; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 115 <= x && guiLeft + 115 + 18 > x && guiTop + 35 < y && guiTop + 35 + 18 >= y) { + + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + PacketDispatcher.wrapper.sendToServer(new AuxButtonPacket(assembler.xCoord, assembler.yCoord, assembler.zCoord, 0, 0)); + } + } + + @Override + protected void drawGuiContainerForegroundLayer( int i, int j) { + String name = this.assembler.hasCustomInventoryName() ? this.assembler.getInventoryName() : I18n.format(this.assembler.getInventoryName()); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + /// DRAW MISSILE START + GL11.glPushMatrix(); + + MissileMultipart missile; + + if(assembler.getStackInSlot(0) != null && assembler.getStackInSlot(0).getItem() instanceof ItemCustomMissile) { + ItemStack custom = assembler.getStackInSlot(0); + + missile = new MissileMultipart(); + + missile = ItemCustomMissile.getMultipart(custom); + + GL11.glTranslatef(guiLeft + 42, guiTop + 115, 100); + + double size = 5 * 18; + double scale = size / Math.max(missile.getHeight(), 6); + + GL11.glTranslated(missile.getHeight() / 2 * scale, 0, 0); + GL11.glScaled(scale, scale, scale); + + GL11.glRotatef(90, 0, 1, 0); + GL11.glScalef(-1, -1, -1); + + MissilePronter.prontMissile(missile, Minecraft.getMinecraft().getTextureManager()); + } + + GL11.glPopMatrix(); + /// DRAW MISSILE END + } +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index ece2ec081..f874c8729 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -834,6 +834,8 @@ public class ModItems { public static Item mp_thruster_15_kerosene_triple; public static Item mp_thruster_15_solid; public static Item mp_thruster_15_solid_hexdecuple; + public static Item mp_thruster_15_hydrogen; + public static Item mp_thruster_15_hydrogen_dual; public static Item mp_thruster_15_balefire_short; public static Item mp_thruster_15_balefire; public static Item mp_thruster_15_balefire_large; @@ -846,15 +848,21 @@ public class ModItems { public static Item mp_stability_20_flat; public static Item mp_fuselage_10_kerosene; + public static Item mp_fuselage_10_kerosene_camo; + public static Item mp_fuselage_10_kerosene_desert; public static Item mp_fuselage_10_kerosene_flames; public static Item mp_fuselage_10_kerosene_sleek; + public static Item mp_fuselage_10_kerosene_metal; public static Item mp_fuselage_10_solid; public static Item mp_fuselage_10_solid_flames; public static Item mp_fuselage_10_solid_sleek; public static Item mp_fuselage_10_xenon; public static Item mp_fuselage_10_long_kerosene; + public static Item mp_fuselage_10_long_kerosene_camo; + public static Item mp_fuselage_10_long_kerosene_desert; public static Item mp_fuselage_10_long_kerosene_flames; public static Item mp_fuselage_10_long_kerosene_sleek; + public static Item mp_fuselage_10_long_kerosene_metal; public static Item mp_fuselage_10_long_solid; public static Item mp_fuselage_10_long_solid_flames; public static Item mp_fuselage_10_long_solid_sleek; @@ -863,7 +871,13 @@ public class ModItems { public static Item mp_fuselage_10_15_hydrogen; public static Item mp_fuselage_10_15_balefire; public static Item mp_fuselage_15_kerosene; + public static Item mp_fuselage_15_kerosene_camo; + public static Item mp_fuselage_15_kerosene_desert; + public static Item mp_fuselage_15_kerosene_metal; + public static Item mp_fuselage_15_kerosene_decorated; public static Item mp_fuselage_15_solid; + public static Item mp_fuselage_15_solid_soviet_glory; + public static Item mp_fuselage_15_solid_soviet_stank; public static Item mp_fuselage_15_hydrogen; public static Item mp_fuselage_15_balefire; public static Item mp_fuselage_20_kerosene; @@ -885,12 +899,14 @@ public class ModItems { public static Item mp_chip_5; public static Item missile_skin_camo; + public static Item missile_skin_desert; public static Item missile_skin_flames; public static Item missile_skin_manly_pink; public static Item missile_skin_orange_insulation; public static Item missile_skin_sleek; public static Item missile_skin_soviet_glory; public static Item missile_skin_soviet_stank; + public static Item missile_skin_metal; public static Item missile_custom; @@ -2396,6 +2412,8 @@ public class ModItems { mp_thruster_15_kerosene_triple = new ItemMissile().makeThruster(FuelType.KEROSENE, 1F, 1F, PartSize.SIZE_15) .setUnlocalizedName("mp_thruster_15_kerosene_triple").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_thruster"); mp_thruster_15_solid = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 1F, PartSize.SIZE_15) .setUnlocalizedName("mp_thruster_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_thruster"); mp_thruster_15_solid_hexdecuple = new ItemMissile().makeThruster(FuelType.SOLID, 1F, 1F, PartSize.SIZE_15) .setUnlocalizedName("mp_thruster_15_solid_hexdecuple").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_thruster"); + mp_thruster_15_hydrogen = new ItemMissile().makeThruster(FuelType.HYDROGEN, 1F, 1F, PartSize.SIZE_15) .setUnlocalizedName("mp_thruster_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_thruster"); + mp_thruster_15_hydrogen_dual = new ItemMissile().makeThruster(FuelType.HYDROGEN, 1F, 1F, PartSize.SIZE_15) .setUnlocalizedName("mp_thruster_15_hydrogen_dual").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_thruster"); mp_thruster_15_balefire_short = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 1F, PartSize.SIZE_15) .setUnlocalizedName("mp_thruster_15_balefire_short").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_thruster"); mp_thruster_15_balefire = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 1F, PartSize.SIZE_15) .setUnlocalizedName("mp_thruster_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_thruster"); mp_thruster_15_balefire_large = new ItemMissile().makeThruster(FuelType.BALEFIRE, 1F, 1F, PartSize.SIZE_15) .setUnlocalizedName("mp_thruster_15_balefire_large").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_thruster"); @@ -2406,24 +2424,36 @@ public class ModItems { mp_stability_15_thin = new ItemMissile().makeStability(0.25F, PartSize.SIZE_15) .setUnlocalizedName("mp_stability_15_thin").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_stability"); mp_stability_20_flat = new ItemMissile().makeStability(0.5F, PartSize.SIZE_20) .setUnlocalizedName("mp_s_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_stability"); mp_fuselage_10_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_10_kerosene_camo = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_kerosene_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_10_kerosene_desert = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_kerosene_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_kerosene_flames = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_kerosene_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_kerosene_sleek = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_kerosene_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_10_kerosene_metal = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_kerosene_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_solid_flames = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_solid_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_solid_sleek = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_solid_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_xenon = new ItemMissile().makeFuselage(FuelType.XENON, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_xenon").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_long_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_10_long_kerosene_camo = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_kerosene_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_10_long_kerosene_desert = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_kerosene_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_long_kerosene_flames = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_kerosene_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_long_kerosene_sleek = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_kerosene_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_10_long_kerosene_metal = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_kerosene_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_long_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_10_long_solid_flames = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_solid_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); - mp_fuselage_10_long_solid_sleek = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_solid_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_10_long_solid_flames = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_solid_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_10_long_solid_sleek = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_10) .setUnlocalizedName("mp_fuselage_10_long_solid_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_15_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_10, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_10_15_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_15_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_10, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_10_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_15_hydrogen = new ItemMissile().makeFuselage(FuelType.HYDROGEN, 1000F, PartSize.SIZE_10, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_10_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_10_15_balefire = new ItemMissile().makeFuselage(FuelType.BALEFIRE, 1000F, PartSize.SIZE_10, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_10_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_15_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_kerosene").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_kerosene_camo = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_kerosene_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_kerosene_desert = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_kerosene_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_kerosene_metal = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_kerosene_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_kerosene_decorated = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_kerosene_decorated").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_15_solid = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_solid").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_solid_soviet_glory = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_solid_soviet_glory").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); + mp_fuselage_15_solid_soviet_stank = new ItemMissile().makeFuselage(FuelType.SOLID, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_solid_soviet_stank").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_15_hydrogen = new ItemMissile().makeFuselage(FuelType.HYDROGEN, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_hydrogen").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_15_balefire = new ItemMissile().makeFuselage(FuelType.BALEFIRE, 1000F, PartSize.SIZE_15, PartSize.SIZE_15) .setUnlocalizedName("mp_fuselage_15_balefire").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); mp_fuselage_20_kerosene = new ItemMissile().makeFuselage(FuelType.KEROSENE, 1000F, PartSize.SIZE_20, PartSize.SIZE_20) .setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_fuselage"); @@ -2442,13 +2472,15 @@ public class ModItems { mp_chip_4 = new ItemMissile().makeChip(0.005F) .setUnlocalizedName("mp_c_4").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_4"); mp_chip_5 = new ItemMissile().makeChip(0.0F) .setUnlocalizedName("mp_c_5").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_5"); - missile_skin_camo = new Item().setUnlocalizedName("missile_skin_camo").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_camo"); - missile_skin_flames = new Item().setUnlocalizedName("missile_skin_flames").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_flames"); - missile_skin_manly_pink = new Item().setUnlocalizedName("missile_skin_manly_pink").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_manly_pink"); - missile_skin_orange_insulation = new Item().setUnlocalizedName("missile_skin_orange_insulation").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_orange_insulation"); - missile_skin_sleek = new Item().setUnlocalizedName("missile_skin_sleek").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_sleek"); - missile_skin_soviet_glory = new Item().setUnlocalizedName("missile_skin_soviet_glory").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_glory"); - missile_skin_soviet_stank = new Item().setUnlocalizedName("missile_skin_soviet_stank").setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_stank"); + missile_skin_camo = new ItemCustomLore().setUnlocalizedName("missile_skin_camo").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_camo"); + missile_skin_desert = new ItemCustomLore().setUnlocalizedName("missile_skin_desert").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_desert"); + missile_skin_flames = new ItemCustomLore().setUnlocalizedName("missile_skin_flames").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_flames"); + missile_skin_manly_pink = new ItemCustomLore().setUnlocalizedName("missile_skin_manly_pink").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_manly_pink"); + missile_skin_orange_insulation = new ItemCustomLore().setUnlocalizedName("missile_skin_orange_insulation").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_orange_insulation"); + missile_skin_sleek = new ItemCustomLore().setUnlocalizedName("missile_skin_sleek").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_sleek"); + missile_skin_soviet_glory = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_glory").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_glory"); + missile_skin_soviet_stank = new ItemCustomLore().setUnlocalizedName("missile_skin_soviet_stank").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_soviet_stank"); + missile_skin_metal = new ItemCustomLore().setUnlocalizedName("missile_skin_metal").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":missile_skin_metal"); ammo_12gauge = new ItemAmmo().setUnlocalizedName("ammo_12gauge").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_12gauge"); ammo_12gauge_incendiary = new ItemAmmo().setUnlocalizedName("ammo_12gauge_incendiary").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_12gauge_incendiary"); @@ -4132,6 +4164,8 @@ public class ModItems { GameRegistry.registerItem(mp_thruster_15_kerosene_triple, mp_thruster_15_kerosene_triple.getUnlocalizedName()); GameRegistry.registerItem(mp_thruster_15_solid, mp_thruster_15_solid.getUnlocalizedName()); GameRegistry.registerItem(mp_thruster_15_solid_hexdecuple, mp_thruster_15_solid_hexdecuple.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_hydrogen, mp_thruster_15_hydrogen.getUnlocalizedName()); + GameRegistry.registerItem(mp_thruster_15_hydrogen_dual, mp_thruster_15_hydrogen_dual.getUnlocalizedName()); GameRegistry.registerItem(mp_thruster_15_balefire_short, mp_thruster_15_balefire_short.getUnlocalizedName()); GameRegistry.registerItem(mp_thruster_15_balefire, mp_thruster_15_balefire.getUnlocalizedName()); GameRegistry.registerItem(mp_thruster_15_balefire_large, mp_thruster_15_balefire_large.getUnlocalizedName()); @@ -4142,15 +4176,21 @@ public class ModItems { GameRegistry.registerItem(mp_stability_15_thin, mp_stability_15_thin.getUnlocalizedName()); GameRegistry.registerItem(mp_stability_20_flat, mp_stability_20_flat.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_kerosene, mp_fuselage_10_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_camo, mp_fuselage_10_kerosene_camo.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_desert, mp_fuselage_10_kerosene_desert.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_kerosene_flames, mp_fuselage_10_kerosene_flames.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_kerosene_sleek, mp_fuselage_10_kerosene_sleek.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_kerosene_metal, mp_fuselage_10_kerosene_metal.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_solid, mp_fuselage_10_solid.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_solid_flames, mp_fuselage_10_solid_flames.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_solid_sleek, mp_fuselage_10_solid_sleek.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_xenon, mp_fuselage_10_xenon.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_long_kerosene, mp_fuselage_10_long_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_camo, mp_fuselage_10_long_kerosene_camo.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_desert, mp_fuselage_10_long_kerosene_desert.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_long_kerosene_flames, mp_fuselage_10_long_kerosene_flames.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_long_kerosene_sleek, mp_fuselage_10_long_kerosene_sleek.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_10_long_kerosene_metal, mp_fuselage_10_long_kerosene_metal.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_long_solid, mp_fuselage_10_long_solid.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_long_solid_flames, mp_fuselage_10_long_solid_flames.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_long_solid_sleek, mp_fuselage_10_long_solid_sleek.getUnlocalizedName()); @@ -4159,7 +4199,13 @@ public class ModItems { GameRegistry.registerItem(mp_fuselage_10_15_hydrogen, mp_fuselage_10_15_hydrogen.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_10_15_balefire, mp_fuselage_10_15_balefire.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_15_kerosene, mp_fuselage_15_kerosene.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_camo, mp_fuselage_15_kerosene_camo.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_desert, mp_fuselage_15_kerosene_desert.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_metal, mp_fuselage_15_kerosene_metal.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_kerosene_decorated, mp_fuselage_15_kerosene_decorated.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_15_solid, mp_fuselage_15_solid.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_soviet_glory, mp_fuselage_15_solid_soviet_glory.getUnlocalizedName()); + GameRegistry.registerItem(mp_fuselage_15_solid_soviet_stank, mp_fuselage_15_solid_soviet_stank.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_15_hydrogen, mp_fuselage_15_hydrogen.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_15_balefire, mp_fuselage_15_balefire.getUnlocalizedName()); GameRegistry.registerItem(mp_fuselage_20_kerosene, mp_fuselage_20_kerosene.getUnlocalizedName()); @@ -4179,12 +4225,14 @@ public class ModItems { GameRegistry.registerItem(mp_chip_5, mp_chip_5.getUnlocalizedName()); GameRegistry.registerItem(missile_skin_camo, missile_skin_camo.getUnlocalizedName()); + GameRegistry.registerItem(missile_skin_desert, missile_skin_desert.getUnlocalizedName()); GameRegistry.registerItem(missile_skin_flames, missile_skin_flames.getUnlocalizedName()); GameRegistry.registerItem(missile_skin_manly_pink, missile_skin_manly_pink.getUnlocalizedName()); GameRegistry.registerItem(missile_skin_orange_insulation, missile_skin_orange_insulation.getUnlocalizedName()); GameRegistry.registerItem(missile_skin_sleek, missile_skin_sleek.getUnlocalizedName()); GameRegistry.registerItem(missile_skin_soviet_glory, missile_skin_soviet_glory.getUnlocalizedName()); GameRegistry.registerItem(missile_skin_soviet_stank, missile_skin_soviet_stank.getUnlocalizedName()); + GameRegistry.registerItem(missile_skin_metal, missile_skin_metal.getUnlocalizedName()); //Satellites GameRegistry.registerItem(sat_mapper, sat_mapper.getUnlocalizedName()); diff --git a/com/hbm/items/special/ItemCustomLore.java b/com/hbm/items/special/ItemCustomLore.java index cc823a653..f2a272488 100644 --- a/com/hbm/items/special/ItemCustomLore.java +++ b/com/hbm/items/special/ItemCustomLore.java @@ -686,6 +686,52 @@ public class ItemCustomLore extends Item { list.add("Denn wer den Walzer richtig tritt,"); list.add("der ist auch für den Abgang fit."); } + + if(this == ModItems.missile_skin_camo) + { + list.add("I can't find my missile anymore!"); + } + + if(this == ModItems.missile_skin_desert) + { + list.add("Looks like sand, tastes like metal."); + } + + if(this == ModItems.missile_skin_flames) + { + list.add("Radical!"); + } + + if(this == ModItems.missile_skin_manly_pink) + { + list.add("Pink, the manliest color of them all."); + } + + if(this == ModItems.missile_skin_orange_insulation) + { + list.add("Not an orange juice bottle;"); + list.add("do not attempt to drink contents."); + } + + if(this == ModItems.missile_skin_sleek) + { + list.add("Chevrons are cool!"); + } + + if(this == ModItems.missile_skin_soviet_glory) + { + list.add("услуга перевода недоступна"); + } + + if(this == ModItems.missile_skin_soviet_stank) + { + list.add("This one's got the real 60's stank to it."); + } + + if(this == ModItems.missile_skin_metal) + { + list.add("Metal sheets and metal bolts, reinforced with metal."); + } } @Override diff --git a/com/hbm/items/weapon/ItemCustomMissile.java b/com/hbm/items/weapon/ItemCustomMissile.java index ba0b1900b..23d4c16d7 100644 --- a/com/hbm/items/weapon/ItemCustomMissile.java +++ b/com/hbm/items/weapon/ItemCustomMissile.java @@ -5,6 +5,8 @@ import java.util.List; import com.hbm.items.ModItems; import com.hbm.items.weapon.ItemMissile.FuelType; import com.hbm.items.weapon.ItemMissile.WarheadType; +import com.hbm.render.misc.MissileMultipart; +import com.hbm.render.misc.MissilePart; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.EntityPlayer; @@ -19,13 +21,13 @@ public class ItemCustomMissile extends Item { ItemStack missile = new ItemStack(ModItems.missile_custom); - writeToNBT(missile, "chip", chip.getItem().hashCode()); - writeToNBT(missile, "warhead", warhead.getItem().hashCode()); - writeToNBT(missile, "fuselage", fuselage.getItem().hashCode()); - writeToNBT(missile, "thruster", thruster.getItem().hashCode()); + writeToNBT(missile, "chip", Item.getIdFromItem(chip.getItem())); + writeToNBT(missile, "warhead", Item.getIdFromItem(warhead.getItem())); + writeToNBT(missile, "fuselage", Item.getIdFromItem(fuselage.getItem())); + writeToNBT(missile, "thruster", Item.getIdFromItem(thruster.getItem())); if(stability != null) - writeToNBT(missile, "stability", stability.getItem().hashCode()); + writeToNBT(missile, "stability", Item.getIdFromItem(stability.getItem())); return missile; } @@ -44,12 +46,12 @@ public class ItemCustomMissile extends Item { @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { - - ItemMissile chip = ItemMissile.parts.get(readFromNBT(stack, "chip")); - ItemMissile warhead = ItemMissile.parts.get(readFromNBT(stack, "warhead")); - ItemMissile fuselage = ItemMissile.parts.get(readFromNBT(stack, "fuselage")); - ItemMissile stability = ItemMissile.parts.get(readFromNBT(stack, "stability")); - ItemMissile thruster = ItemMissile.parts.get(readFromNBT(stack, "thruster")); + + ItemMissile chip = (ItemMissile) Item.getItemById(readFromNBT(stack, "chip")); + ItemMissile warhead = (ItemMissile) Item.getItemById(readFromNBT(stack, "warhead")); + ItemMissile fuselage = (ItemMissile) Item.getItemById(readFromNBT(stack, "fuselage")); + ItemMissile stability = (ItemMissile) Item.getItemById(readFromNBT(stack, "stability")); + ItemMissile thruster = (ItemMissile) Item.getItemById(readFromNBT(stack, "thruster")); list.add(I18n.format(StatCollector.translateToLocal(chip.getUnlocalizedName() + ".name")).trim()); list.add(I18n.format(StatCollector.translateToLocal(warhead.getUnlocalizedName() + ".name")).trim()); @@ -58,4 +60,24 @@ public class ItemCustomMissile extends Item { list.add(I18n.format(StatCollector.translateToLocal(stability.getUnlocalizedName() + ".name")).trim()); list.add(I18n.format(StatCollector.translateToLocal(thruster.getUnlocalizedName() + ".name")).trim()); } + + public static MissileMultipart getMultipart(ItemStack stack) { + + if(stack == null || !(stack.getItem() instanceof ItemCustomMissile)) + return null; + + ItemMissile warhead = (ItemMissile) Item.getItemById(readFromNBT(stack, "warhead")); + ItemMissile fuselage = (ItemMissile) Item.getItemById(readFromNBT(stack, "fuselage")); + ItemMissile stability = (ItemMissile) Item.getItemById(readFromNBT(stack, "stability")); + ItemMissile thruster = (ItemMissile) Item.getItemById(readFromNBT(stack, "thruster")); + + MissileMultipart missile = new MissileMultipart(); + + missile.warhead = MissilePart.getPart(warhead); + missile.fuselage = MissilePart.getPart(fuselage); + missile.fins = MissilePart.getPart(stability); + missile.thruster = MissilePart.getPart(thruster); + + return missile; + } } diff --git a/com/hbm/items/weapon/ItemMissile.java b/com/hbm/items/weapon/ItemMissile.java index a7bf18054..afe531392 100644 --- a/com/hbm/items/weapon/ItemMissile.java +++ b/com/hbm/items/weapon/ItemMissile.java @@ -39,7 +39,7 @@ public class ItemMissile extends Item { * == Thrusters === * [0]: type * [1]: consumption - * [1]: lift strength + * [2]: lift strength */ public Object[] attributes; diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index a31f3cf17..a8f42cedb 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -314,6 +314,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPadTier1()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMissileAssembly.class, new RenderMissileAssembly()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCompactLauncher.class, new RenderCompactLauncher()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchTable.class, new RenderLaunchTable()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCable.class, new RenderCable()); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index b4ec4c755..5d9f2740c 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -527,6 +527,8 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityMachineAmgen.class, "tileentity_amgen"); GameRegistry.registerTileEntity(TileEntityGeysir.class, "tileentity_geysir"); GameRegistry.registerTileEntity(TileEntityMachineMissileAssembly.class, "tileentity_missile_assembly"); + GameRegistry.registerTileEntity(TileEntityLaunchTable.class, "tileentity_large_launch_table"); + GameRegistry.registerTileEntity(TileEntityCompactLauncher.class, "tileentity_small_launcher"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 070d8f593..d3dddc418 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -318,6 +318,8 @@ public class ResourceManager { //Missile Parts public static final IModelCustom missile_assembly = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_assembly.obj")); public static final IModelCustom strut = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/strut.obj")); + public static final IModelCustom compact_launcher = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/compact_launcher.obj")); + public static final IModelCustom mp_t_10_kerosene = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_10_kerosene.obj")); public static final IModelCustom mp_t_10_solid = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_10_solid.obj")); public static final IModelCustom mp_t_10_xenon = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_10_xenon.obj")); @@ -404,6 +406,7 @@ public class ResourceManager { //Missile Parts public static final ResourceLocation missile_assembly_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_assembly.png"); public static final ResourceLocation strut_tex = new ResourceLocation(RefStrings.MODID, "textures/models/strut.png"); + public static final ResourceLocation compact_launcher_tex = new ResourceLocation(RefStrings.MODID, "textures/models/compact_launcher.png"); public static final ResourceLocation mp_t_10_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_10_kerosene.png"); public static final ResourceLocation mp_t_10_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_10_solid.png"); @@ -412,6 +415,8 @@ public class ResourceManager { public static final ResourceLocation mp_t_15_kerosene_dual_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_kerosene_dual.png"); public static final ResourceLocation mp_t_15_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_solid.png"); public static final ResourceLocation mp_t_15_solid_hexdecuple_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_solid_hexdecuple.png"); + public static final ResourceLocation mp_t_15_hydrogen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_hydrogen.png"); + public static final ResourceLocation mp_t_15_hydrogen_dual_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_hydrogen_dual.png"); public static final ResourceLocation mp_t_15_balefire_short_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_balefire_short.png"); public static final ResourceLocation mp_t_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/thrusters/mp_t_15_balefire.png"); @@ -421,15 +426,21 @@ public class ResourceManager { public static final ResourceLocation mp_s_15_thin_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/stability/mp_s_15_thin.png"); public static final ResourceLocation mp_f_10_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_kerosene.png"); + public static final ResourceLocation mp_f_10_kerosene_camo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_kerosene_camo.png"); + public static final ResourceLocation mp_f_10_kerosene_desert_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_kerosene_desert.png"); public static final ResourceLocation mp_f_10_kerosene_flames_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_kerosene_flames.png"); public static final ResourceLocation mp_f_10_kerosene_sleek_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_kerosene_sleek.png"); + public static final ResourceLocation mp_f_10_kerosene_metal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_kerosene_metal.png"); public static final ResourceLocation mp_f_10_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_solid.png"); public static final ResourceLocation mp_f_10_solid_flames_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_solid_flames.png"); public static final ResourceLocation mp_f_10_solid_sleek_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_solid_sleek.png"); public static final ResourceLocation mp_f_10_xenon_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_xenon.png"); public static final ResourceLocation mp_f_10_long_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene.png"); + public static final ResourceLocation mp_f_10_long_kerosene_camo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_camo.png"); + public static final ResourceLocation mp_f_10_long_kerosene_desert_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_desert.png"); public static final ResourceLocation mp_f_10_long_kerosene_flames_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_flames.png"); public static final ResourceLocation mp_f_10_long_kerosene_sleek_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_sleek.png"); + public static final ResourceLocation mp_f_10_long_kerosene_metal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_kerosene_metal.png"); public static final ResourceLocation mp_f_10_long_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_solid.png"); public static final ResourceLocation mp_f_10_long_solid_flames_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_solid_flames.png"); public static final ResourceLocation mp_f_10_long_solid_sleek_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_long_solid_sleek.png"); @@ -437,8 +448,14 @@ public class ResourceManager { public static final ResourceLocation mp_f_10_15_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_15_solid.png"); public static final ResourceLocation mp_f_10_15_hydrogen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_15_hydrogen.png"); public static final ResourceLocation mp_f_10_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_10_15_balefire.png"); - public static final ResourceLocation mp_f_15_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene_metal.png"); + public static final ResourceLocation mp_f_15_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene.png"); + public static final ResourceLocation mp_f_15_kerosene_camo_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene_camo.png"); + public static final ResourceLocation mp_f_15_kerosene_desert_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene_desert.png"); + public static final ResourceLocation mp_f_15_kerosene_metal_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene_metal.png"); + public static final ResourceLocation mp_f_15_kerosene_decorated_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_kerosene_decorated.png"); public static final ResourceLocation mp_f_15_solid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_solid.png"); + public static final ResourceLocation mp_f_15_solid_soviet_glory_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_solid_soviet_glory.png"); + public static final ResourceLocation mp_f_15_solid_soviet_stank_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_solid_soviet_stank.png"); public static final ResourceLocation mp_f_15_hydrogen_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_hydrogen.png"); public static final ResourceLocation mp_f_15_balefire_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/fuselages/mp_f_15_balefire.png"); diff --git a/com/hbm/render/item/ItemRenderMissile.java b/com/hbm/render/item/ItemRenderMissile.java index 6a7f2ffb5..76830c2c4 100644 --- a/com/hbm/render/item/ItemRenderMissile.java +++ b/com/hbm/render/item/ItemRenderMissile.java @@ -39,11 +39,8 @@ public class ItemRenderMissile implements IItemRenderer { public void renderItem(ItemRenderType type, ItemStack item, Object... data) { MissileMultipart missile = new MissileMultipart(); - missile.warhead = MissilePart.getPart(ItemMissile.parts.get(ItemCustomMissile.readFromNBT(item, "warhead"))); - missile.fuselage = MissilePart.getPart(ItemMissile.parts.get(ItemCustomMissile.readFromNBT(item, "fuselage"))); - if(ItemMissile.parts.get(ItemCustomMissile.readFromNBT(item, "stability")) != null) - missile.fins = MissilePart.getPart(ItemMissile.parts.get(ItemCustomMissile.readFromNBT(item, "stability"))); - missile.thruster = MissilePart.getPart(ItemMissile.parts.get(ItemCustomMissile.readFromNBT(item, "thruster"))); + + missile = ItemCustomMissile.getMultipart(item); GL11.glPushMatrix(); diff --git a/com/hbm/render/misc/MissilePart.java b/com/hbm/render/misc/MissilePart.java index ff42d9026..d8bd90f34 100644 --- a/com/hbm/render/misc/MissilePart.java +++ b/com/hbm/render/misc/MissilePart.java @@ -39,53 +39,82 @@ public class MissilePart { MissilePart.registerPart(ModItems.mp_thruster_10_kerosene, PartType.THRUSTER, 1, 1, ResourceManager.mp_t_10_kerosene, ResourceManager.mp_t_10_kerosene_tex); MissilePart.registerPart(ModItems.mp_thruster_10_solid, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_10_solid, ResourceManager.mp_t_10_solid_tex); MissilePart.registerPart(ModItems.mp_thruster_10_xenon, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_10_xenon, ResourceManager.mp_t_10_xenon_tex); + // MissilePart.registerPart(ModItems.mp_thruster_15_kerosene, PartType.THRUSTER, 1.5, 1.5, ResourceManager.mp_t_15_kerosene, ResourceManager.mp_t_15_kerosene_tex); MissilePart.registerPart(ModItems.mp_thruster_15_kerosene_dual, PartType.THRUSTER, 1, 1.5, ResourceManager.mp_t_15_kerosene_dual, ResourceManager.mp_t_15_kerosene_dual_tex); MissilePart.registerPart(ModItems.mp_thruster_15_kerosene_triple, PartType.THRUSTER, 1, 1.5, ResourceManager.mp_t_15_kerosene_triple, ResourceManager.mp_t_15_kerosene_dual_tex); MissilePart.registerPart(ModItems.mp_thruster_15_solid, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_15_solid, ResourceManager.mp_t_15_solid_tex); MissilePart.registerPart(ModItems.mp_thruster_15_solid_hexdecuple, PartType.THRUSTER, 0.5, 1, ResourceManager.mp_t_15_solid_hexdecuple, ResourceManager.mp_t_15_solid_hexdecuple_tex); + MissilePart.registerPart(ModItems.mp_thruster_15_hydrogen, PartType.THRUSTER, 1.5, 1.5, ResourceManager.mp_t_15_kerosene, ResourceManager.mp_t_15_hydrogen_tex); + MissilePart.registerPart(ModItems.mp_thruster_15_hydrogen_dual, PartType.THRUSTER, 1, 1.5, ResourceManager.mp_t_15_kerosene_dual, ResourceManager.mp_t_15_hydrogen_dual_tex); MissilePart.registerPart(ModItems.mp_thruster_15_balefire_short, PartType.THRUSTER, 2, 2, ResourceManager.mp_t_15_balefire_short, ResourceManager.mp_t_15_balefire_short_tex); MissilePart.registerPart(ModItems.mp_thruster_15_balefire, PartType.THRUSTER, 3, 2.5, ResourceManager.mp_t_15_balefire, ResourceManager.mp_t_15_balefire_tex); MissilePart.registerPart(ModItems.mp_thruster_15_balefire_large, PartType.THRUSTER, 3, 2.5, ResourceManager.mp_t_15_balefire_large, ResourceManager.universal); + // MissilePart.registerPart(ModItems.mp_thruster_20_kerosene, PartType.THRUSTER, 2.25, 2, ResourceManager.mp_t_20, ResourceManager.universal); + ////// + MissilePart.registerPart(ModItems.mp_stability_10_flat, PartType.FINS, 0, 2, ResourceManager.mp_s_10_flat, ResourceManager.mp_s_10_flat_tex); MissilePart.registerPart(ModItems.mp_stability_10_cruise, PartType.FINS, 0, 3, ResourceManager.mp_s_10_cruise, ResourceManager.mp_s_10_cruise_tex); + // MissilePart.registerPart(ModItems.mp_stability_15_flat, PartType.FINS, 0, 3, ResourceManager.mp_s_15_flat, ResourceManager.mp_s_15_flat_tex); MissilePart.registerPart(ModItems.mp_stability_15_thin, PartType.FINS, 0, 3, ResourceManager.mp_s_15_thin, ResourceManager.mp_s_15_thin_tex); + // MissilePart.registerPart(ModItems.mp_stability_20_flat, PartType.FINS, 0, 3, ResourceManager.mp_s_20, ResourceManager.universal); + ////// + MissilePart.registerPart(ModItems.mp_fuselage_10_kerosene, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_kerosene_tex); + MissilePart.registerPart(ModItems.mp_fuselage_10_kerosene_camo, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_kerosene_camo_tex); + MissilePart.registerPart(ModItems.mp_fuselage_10_kerosene_desert, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_kerosene_desert_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_kerosene_flames, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_kerosene_flames_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_kerosene_sleek, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_kerosene_sleek_tex); + MissilePart.registerPart(ModItems.mp_fuselage_10_kerosene_metal, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_kerosene_metal_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_solid, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_solid_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_solid_flames, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_solid_flames_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_solid_sleek, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_solid_sleek_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_xenon, PartType.FUSELAGE, 4, 3, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_xenon_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_long_kerosene, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_kerosene_tex); + MissilePart.registerPart(ModItems.mp_fuselage_10_long_kerosene_camo, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_kerosene_camo_tex); + MissilePart.registerPart(ModItems.mp_fuselage_10_long_kerosene_desert, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_kerosene_desert_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_long_kerosene_flames, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_kerosene_flames_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_long_kerosene_sleek, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_kerosene_sleek_tex); + MissilePart.registerPart(ModItems.mp_fuselage_10_long_kerosene_metal, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_kerosene_metal_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_long_solid, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_solid_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_long_solid_flames, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_solid_flames_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_long_solid_sleek, PartType.FUSELAGE, 7, 5, ResourceManager.mp_f_10_long_kerosene, ResourceManager.mp_f_10_long_solid_sleek_tex); + // MissilePart.registerPart(ModItems.mp_fuselage_10_15_kerosene, PartType.FUSELAGE, 9, 5.5, ResourceManager.mp_f_10_15_kerosene, ResourceManager.mp_f_10_15_kerosene_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_15_solid, PartType.FUSELAGE, 9, 5.5, ResourceManager.mp_f_10_15_kerosene, ResourceManager.mp_f_10_15_solid_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_15_hydrogen, PartType.FUSELAGE, 9, 5.5, ResourceManager.mp_f_10_15_kerosene, ResourceManager.mp_f_10_15_hydrogen_tex); MissilePart.registerPart(ModItems.mp_fuselage_10_15_balefire, PartType.FUSELAGE, 9, 5.5, ResourceManager.mp_f_10_15_kerosene, ResourceManager.mp_f_10_15_balefire_tex); + // MissilePart.registerPart(ModItems.mp_fuselage_15_kerosene, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_kerosene, ResourceManager.mp_f_15_kerosene_tex); + MissilePart.registerPart(ModItems.mp_fuselage_15_kerosene_camo, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_kerosene, ResourceManager.mp_f_15_kerosene_camo_tex); + MissilePart.registerPart(ModItems.mp_fuselage_15_kerosene_desert, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_kerosene, ResourceManager.mp_f_15_kerosene_desert_tex); + MissilePart.registerPart(ModItems.mp_fuselage_15_kerosene_metal, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_kerosene, ResourceManager.mp_f_15_kerosene_metal_tex); + MissilePart.registerPart(ModItems.mp_fuselage_15_kerosene_decorated, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_kerosene, ResourceManager.mp_f_15_kerosene_decorated_tex); MissilePart.registerPart(ModItems.mp_fuselage_15_solid, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_kerosene, ResourceManager.mp_f_15_solid_tex); + MissilePart.registerPart(ModItems.mp_fuselage_15_solid_soviet_glory, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_kerosene, ResourceManager.mp_f_15_solid_soviet_glory_tex); + MissilePart.registerPart(ModItems.mp_fuselage_15_solid_soviet_stank, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_kerosene, ResourceManager.mp_f_15_solid_soviet_stank_tex); MissilePart.registerPart(ModItems.mp_fuselage_15_hydrogen, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_hydrogen, ResourceManager.mp_f_15_hydrogen_tex); MissilePart.registerPart(ModItems.mp_fuselage_15_balefire, PartType.FUSELAGE, 10, 6, ResourceManager.mp_f_15_hydrogen, ResourceManager.mp_f_15_balefire_tex); + // MissilePart.registerPart(ModItems.mp_fuselage_20_kerosene, PartType.FUSELAGE, 10, 8, ResourceManager.mp_f_20, ResourceManager.universal); + ////// + MissilePart.registerPart(ModItems.mp_warhead_10_he, PartType.WARHEAD, 2, 1.5, ResourceManager.mp_w_10_he, ResourceManager.mp_w_10_he_tex); MissilePart.registerPart(ModItems.mp_warhead_10_incendiary, PartType.WARHEAD, 2.5, 2, ResourceManager.mp_w_10_incendiary, ResourceManager.mp_w_10_incendiary_tex); MissilePart.registerPart(ModItems.mp_warhead_10_buster, PartType.WARHEAD, 0.5, 1, ResourceManager.mp_w_10_buster, ResourceManager.mp_w_10_buster_tex); MissilePart.registerPart(ModItems.mp_warhead_10_nuclear, PartType.WARHEAD, 2, 1.5, ResourceManager.mp_w_10_nuclear, ResourceManager.mp_w_10_nuclear_tex); MissilePart.registerPart(ModItems.mp_warhead_10_nuclear_large, PartType.WARHEAD, 2.5, 1.5, ResourceManager.mp_w_10_nuclear_large, ResourceManager.mp_w_10_nuclear_large_tex); + // MissilePart.registerPart(ModItems.mp_warhead_15_he, PartType.WARHEAD, 2, 1.5, ResourceManager.mp_w_15_he, ResourceManager.mp_w_15_he_tex); MissilePart.registerPart(ModItems.mp_warhead_15_incendiary, PartType.WARHEAD, 2, 1.5, ResourceManager.mp_w_15_incendiary, ResourceManager.mp_w_15_incendiary_tex); - MissilePart.registerPart(ModItems.mp_warhead_15_nuclear, PartType.WARHEAD, 3, 2, ResourceManager.mp_w_15_nuclear, ResourceManager.mp_w_15_nuclear_tex); + MissilePart.registerPart(ModItems.mp_warhead_15_nuclear, PartType.WARHEAD, 3.5, 2, ResourceManager.mp_w_15_nuclear, ResourceManager.mp_w_15_nuclear_tex); + // MissilePart.registerPart(ModItems.mp_warhead_20_he, PartType.WARHEAD, 3, 2.25, ResourceManager.mp_w_20, ResourceManager.universal); } diff --git a/com/hbm/render/tileentity/RenderCompactLauncher.java b/com/hbm/render/tileentity/RenderCompactLauncher.java new file mode 100644 index 000000000..9be0dccb4 --- /dev/null +++ b/com/hbm/render/tileentity/RenderCompactLauncher.java @@ -0,0 +1,54 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.weapon.ItemCustomMissile; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.main.ResourceManager; +import com.hbm.render.misc.ErrorPronter; +import com.hbm.render.misc.MissileMultipart; +import com.hbm.render.misc.MissilePart; +import com.hbm.render.misc.MissilePronter; +import com.hbm.tileentity.bomb.TileEntityCompactLauncher; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; + +public class RenderCompactLauncher extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float p_147500_8_) { + + GL11.glPushMatrix(); + + GL11.glTranslatef((float) x + 0.5F, (float) y, (float) z + 0.5F); + + bindTexture(ResourceManager.compact_launcher_tex); + ResourceManager.compact_launcher.renderAll(); + + TileEntityCompactLauncher launcher = (TileEntityCompactLauncher)tileentity; + + GL11.glTranslatef(0F, 1.0625F, 0F); + + /// DRAW MISSILE START + GL11.glPushMatrix(); + + MissileMultipart missile; + + if(launcher.getStackInSlot(0) != null && launcher.getStackInSlot(0).getItem() instanceof ItemCustomMissile) { + ItemStack custom = launcher.getStackInSlot(0); + + missile = ItemCustomMissile.getMultipart(custom); + + MissilePronter.prontMissile(missile, Minecraft.getMinecraft().getTextureManager()); + } + + GL11.glPopMatrix(); + /// DRAW MISSILE END + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java b/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java new file mode 100644 index 000000000..3a68d907c --- /dev/null +++ b/com/hbm/tileentity/bomb/TileEntityCompactLauncher.java @@ -0,0 +1,179 @@ +package com.hbm.tileentity.bomb; + +import com.hbm.items.weapon.ItemCustomMissile; +import com.hbm.items.weapon.ItemMissile; +import com.hbm.items.weapon.ItemMissile.FuelType; +import com.hbm.items.weapon.ItemMissile.PartType; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ISidedInventory; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTTagList; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityCompactLauncher extends TileEntity implements ISidedInventory { + + private ItemStack slots[]; + + private static final int[] access = new int[] { 0 }; + + private String customName; + + public TileEntityCompactLauncher() { + slots = new ItemStack[2]; + } + + @Override + public int getSizeInventory() { + return slots.length; + } + + @Override + public ItemStack getStackInSlot(int i) { + return slots[i]; + } + + @Override + public ItemStack getStackInSlotOnClosing(int i) { + if (slots[i] != null) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } else { + return null; + } + } + + @Override + public void setInventorySlotContents(int i, ItemStack itemStack) { + slots[i] = itemStack; + if (itemStack != null && itemStack.stackSize > getInventoryStackLimit()) { + itemStack.stackSize = getInventoryStackLimit(); + } + } + + @Override + public String getInventoryName() { + return this.hasCustomInventoryName() ? this.customName : "container.compactLauncher"; + } + + @Override + public boolean hasCustomInventoryName() { + return this.customName != null && this.customName.length() > 0; + } + + public void setCustomName(String name) { + this.customName = name; + } + + @Override + public int getInventoryStackLimit() { + return 64; + } + + @Override + public boolean isUseableByPlayer(EntityPlayer player) { + if (worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) { + return false; + } else { + return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <= 64; + } + } + + // You scrubs aren't needed for anything (right now) + @Override + public void openInventory() { + } + + @Override + public void closeInventory() { + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return false; + } + + @Override + public ItemStack decrStackSize(int i, int j) { + if (slots[i] != null) { + if (slots[i].stackSize <= j) { + ItemStack itemStack = slots[i]; + slots[i] = null; + return itemStack; + } + ItemStack itemStack1 = slots[i].splitStack(j); + if (slots[i].stackSize == 0) { + slots[i] = null; + } + + return itemStack1; + } else { + return null; + } + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + NBTTagList list = nbt.getTagList("items", 10); + + slots = new ItemStack[getSizeInventory()]; + + for (int i = 0; i < list.tagCount(); i++) { + NBTTagCompound nbt1 = list.getCompoundTagAt(i); + byte b0 = nbt1.getByte("slot"); + if (b0 >= 0 && b0 < slots.length) { + slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); + } + } + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + NBTTagList list = new NBTTagList(); + + for (int i = 0; i < slots.length; i++) { + if (slots[i] != null) { + NBTTagCompound nbt1 = new NBTTagCompound(); + nbt1.setByte("slot", (byte) i); + slots[i].writeToNBT(nbt1); + list.appendTag(nbt1); + } + } + nbt.setTag("items", list); + } + + @Override + public int[] getAccessibleSlotsFromSide(int p_94128_1_) { + return access; + } + + @Override + public boolean canInsertItem(int i, ItemStack itemStack, int j) { + return this.isItemValidForSlot(i, itemStack); + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return false; + } + + @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/machine/TileEntityMachineMissileAssembly.java b/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java index 97ed2998e..fab6e1507 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java +++ b/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java @@ -203,13 +203,18 @@ public class TileEntityMachineMissileAssembly extends TileEntity implements ISid public int warheadState() { if(slots[1] != null && slots[1].getItem() instanceof ItemMissile && - slots[2] != null && slots[2].getItem() instanceof ItemMissile) { + slots[2] != null && slots[2].getItem() instanceof ItemMissile && + slots[4] != null && slots[4].getItem() instanceof ItemMissile) { ItemMissile part = (ItemMissile)slots[1].getItem(); ItemMissile fuselage = (ItemMissile)slots[2].getItem(); + ItemMissile thruster = (ItemMissile)slots[4].getItem(); + + float weight = (Float)part.attributes[2]; + float thrust = (Float)thruster.attributes[2]; if(part.type == PartType.WARHEAD && fuselage.type == PartType.FUSELAGE && - part.bottom == fuselage.top) + part.bottom == fuselage.top && weight <= thrust) return 1; }