From 05af7f73af33b2ed39a016daeac40129e8b9a143 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Thu, 18 Apr 2019 22:49:02 +0200 Subject: [PATCH] custom missile system, missile assembly machine base, missile pront util --- .../models/missile_parts/mp_f_10_kerosene.obj | 135 ++++++ assets/hbm/models/missile_parts/mp_f_15.obj | 86 ++++ assets/hbm/models/missile_parts/mp_f_20.obj | 86 ++++ .../hbm/models/missile_parts/mp_s_10_flat.obj | 152 +++++++ assets/hbm/models/missile_parts/mp_s_15.obj | 54 +++ assets/hbm/models/missile_parts/mp_s_20.obj | 82 ++++ .../models/missile_parts/mp_t_10_kerosene.obj | 430 ++++++++++++++++++ assets/hbm/models/missile_parts/mp_t_15.obj | 288 ++++++++++++ assets/hbm/models/missile_parts/mp_t_20.obj | 290 ++++++++++++ .../hbm/models/missile_parts/mp_w_10_he.obj | 157 +++++++ assets/hbm/models/missile_parts/mp_w_15.obj | 148 ++++++ assets/hbm/models/missile_parts/mp_w_20.obj | 100 ++++ .../hbm/textures/gui/gui_missile_assembly.png | Bin 0 -> 2680 bytes assets/hbm/textures/items/mp_c_1.png | Bin 0 -> 140 bytes assets/hbm/textures/items/mp_c_2.png | Bin 0 -> 151 bytes assets/hbm/textures/items/mp_c_3.png | Bin 0 -> 170 bytes assets/hbm/textures/items/mp_f_10.png | Bin 0 -> 118 bytes assets/hbm/textures/items/mp_f_15.png | Bin 0 -> 135 bytes assets/hbm/textures/items/mp_f_20.png | Bin 0 -> 161 bytes assets/hbm/textures/items/mp_s_10.png | Bin 0 -> 131 bytes assets/hbm/textures/items/mp_s_15.png | Bin 0 -> 141 bytes assets/hbm/textures/items/mp_s_20.png | Bin 0 -> 139 bytes assets/hbm/textures/items/mp_t_10.png | Bin 0 -> 121 bytes assets/hbm/textures/items/mp_t_15.png | Bin 0 -> 142 bytes assets/hbm/textures/items/mp_t_20.png | Bin 0 -> 168 bytes assets/hbm/textures/items/mp_w_10.png | Bin 0 -> 126 bytes assets/hbm/textures/items/mp_w_15.png | Bin 0 -> 127 bytes assets/hbm/textures/items/mp_w_20.png | Bin 0 -> 148 bytes .../models/missile_parts/mp_f_10_kerosene.png | Bin 0 -> 846 bytes .../models/missile_parts/mp_s_10_flat.png | Bin 0 -> 308 bytes .../models/missile_parts/mp_t_10_kerosene.png | Bin 0 -> 772 bytes .../models/missile_parts/mp_w_10_he.png | Bin 0 -> 891 bytes com/hbm/blocks/ModBlocks.java | 6 + .../machine/MachineMissileAssembly.java | 59 +++ com/hbm/handler/GUIHandler.java | 18 + .../ContainerMachineMissileAssembly.java | 80 ++++ com/hbm/inventory/gui/GUIMachineDiesel.java | 13 + .../gui/GUIMachineMissileAssembly.java | 88 ++++ com/hbm/items/ModItems.java | 49 ++ com/hbm/main/ClientProxy.java | 10 + com/hbm/main/MainRegistry.java | 21 + com/hbm/main/ResourceManager.java | 20 + com/hbm/main/ServerProxy.java | 6 +- .../render/item/ItemRenderMissilePart.java | 110 +++++ com/hbm/render/misc/MissileMultipart.java | 28 ++ com/hbm/render/misc/MissilePart.java | 52 +++ com/hbm/render/misc/MissilePronter.java | 48 ++ .../tileentity/RenderMissileAssembly.java | 60 +++ com/hbm/render/util/ProntingUtility.java | 13 - .../TileEntityMachineMissileAssembly.java | 169 +++++++ 50 files changed, 2842 insertions(+), 16 deletions(-) create mode 100644 assets/hbm/models/missile_parts/mp_f_10_kerosene.obj create mode 100644 assets/hbm/models/missile_parts/mp_f_15.obj create mode 100644 assets/hbm/models/missile_parts/mp_f_20.obj create mode 100644 assets/hbm/models/missile_parts/mp_s_10_flat.obj create mode 100644 assets/hbm/models/missile_parts/mp_s_15.obj create mode 100644 assets/hbm/models/missile_parts/mp_s_20.obj create mode 100644 assets/hbm/models/missile_parts/mp_t_10_kerosene.obj create mode 100644 assets/hbm/models/missile_parts/mp_t_15.obj create mode 100644 assets/hbm/models/missile_parts/mp_t_20.obj create mode 100644 assets/hbm/models/missile_parts/mp_w_10_he.obj create mode 100644 assets/hbm/models/missile_parts/mp_w_15.obj create mode 100644 assets/hbm/models/missile_parts/mp_w_20.obj create mode 100644 assets/hbm/textures/gui/gui_missile_assembly.png create mode 100644 assets/hbm/textures/items/mp_c_1.png create mode 100644 assets/hbm/textures/items/mp_c_2.png create mode 100644 assets/hbm/textures/items/mp_c_3.png create mode 100644 assets/hbm/textures/items/mp_f_10.png create mode 100644 assets/hbm/textures/items/mp_f_15.png create mode 100644 assets/hbm/textures/items/mp_f_20.png create mode 100644 assets/hbm/textures/items/mp_s_10.png create mode 100644 assets/hbm/textures/items/mp_s_15.png create mode 100644 assets/hbm/textures/items/mp_s_20.png create mode 100644 assets/hbm/textures/items/mp_t_10.png create mode 100644 assets/hbm/textures/items/mp_t_15.png create mode 100644 assets/hbm/textures/items/mp_t_20.png create mode 100644 assets/hbm/textures/items/mp_w_10.png create mode 100644 assets/hbm/textures/items/mp_w_15.png create mode 100644 assets/hbm/textures/items/mp_w_20.png create mode 100644 assets/hbm/textures/models/missile_parts/mp_f_10_kerosene.png create mode 100644 assets/hbm/textures/models/missile_parts/mp_s_10_flat.png create mode 100644 assets/hbm/textures/models/missile_parts/mp_t_10_kerosene.png create mode 100644 assets/hbm/textures/models/missile_parts/mp_w_10_he.png create mode 100644 com/hbm/blocks/machine/MachineMissileAssembly.java create mode 100644 com/hbm/inventory/container/ContainerMachineMissileAssembly.java create mode 100644 com/hbm/inventory/gui/GUIMachineMissileAssembly.java create mode 100644 com/hbm/render/item/ItemRenderMissilePart.java create mode 100644 com/hbm/render/misc/MissileMultipart.java create mode 100644 com/hbm/render/misc/MissilePart.java create mode 100644 com/hbm/render/misc/MissilePronter.java create mode 100644 com/hbm/render/tileentity/RenderMissileAssembly.java delete mode 100644 com/hbm/render/util/ProntingUtility.java create mode 100644 com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java diff --git a/assets/hbm/models/missile_parts/mp_f_10_kerosene.obj b/assets/hbm/models/missile_parts/mp_f_10_kerosene.obj new file mode 100644 index 000000000..9b46b70dc --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_f_10_kerosene.obj @@ -0,0 +1,135 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_f_10.blend' +# www.blender.org +o Cylinder +v 0.000000 0.000000 -0.500000 +v 0.000000 4.000000 -0.500000 +v 0.250000 0.000000 -0.433013 +v 0.250000 4.000000 -0.433013 +v 0.433013 0.000000 -0.250000 +v 0.433013 4.000000 -0.250000 +v 0.500000 0.000000 0.000000 +v 0.500000 4.000000 0.000000 +v 0.433013 0.000000 0.250000 +v 0.433013 4.000000 0.250000 +v 0.250000 0.000000 0.433013 +v 0.250000 4.000000 0.433013 +v 0.000000 0.000000 0.500000 +v 0.000000 4.000000 0.500000 +v -0.250000 0.000000 0.433013 +v -0.250000 4.000000 0.433013 +v -0.433013 0.000000 0.250000 +v -0.433013 4.000000 0.250000 +v -0.500000 0.000000 0.000000 +v -0.500000 4.000000 0.000000 +v -0.433013 0.000000 -0.250000 +v -0.433013 4.000000 -0.250000 +v -0.250000 0.000000 -0.433013 +v -0.250000 4.000000 -0.433013 +vt 0.562500 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.000000 +vt 0.437500 1.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.375000 0.000000 +vt 0.312500 1.000000 +vt 0.312500 0.000000 +vt 0.250000 1.000000 +vt 0.250000 0.000000 +vt 0.187500 1.000000 +vt 0.187500 0.000000 +vt 0.125000 1.000000 +vt 0.125000 0.000000 +vt 0.062500 1.000000 +vt 0.062500 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 0.750000 1.000000 +vt 0.687500 1.000000 +vt 0.687500 0.000000 +vt 0.765625 0.312500 +vt 0.875000 0.500000 +vt 0.984375 0.312500 +vt 0.625000 1.000000 +vt 0.562500 0.000000 +vt 0.625000 0.000000 +vt 0.875000 0.000000 +vt 0.875000 0.250000 +vt 0.984375 0.187500 +vt 0.750000 0.000000 +vt 0.937500 0.265625 +vt 0.812500 0.265625 +vt 0.750000 0.375000 +vt 0.765625 0.437500 +vt 0.812500 0.484375 +vt 0.937500 0.484375 +vt 0.984375 0.437500 +vt 1.000000 0.375000 +vt 1.000000 0.125000 +vt 0.984375 0.062500 +vt 0.937500 0.015625 +vt 0.812500 0.015625 +vt 0.765625 0.062500 +vt 0.750000 0.125000 +vt 0.765625 0.187500 +vt 0.812500 0.234375 +vt 0.937500 0.234375 +vn 0.258800 0.000000 -0.965900 +vn 0.707100 0.000000 -0.707100 +vn 0.965900 0.000000 -0.258800 +vn 0.965900 0.000000 0.258800 +vn 0.707100 0.000000 0.707100 +vn 0.258800 0.000000 0.965900 +vn -0.258800 0.000000 0.965900 +vn -0.707100 0.000000 0.707100 +vn -0.965900 0.000000 0.258800 +vn -0.965900 0.000000 -0.258800 +vn 0.000000 1.000000 0.000000 +vn -0.258800 0.000000 -0.965900 +vn -0.707100 0.000000 -0.707100 +vn 0.000000 -1.000000 0.000000 +s off +f 2/1/1 4/2/1 3/3/1 +f 4/2/2 6/4/2 5/5/2 +f 6/4/3 8/6/3 7/7/3 +f 8/6/4 10/8/4 9/9/4 +f 10/8/5 12/10/5 11/11/5 +f 12/10/6 14/12/6 13/13/6 +f 14/12/7 16/14/7 15/15/7 +f 16/14/8 18/16/8 17/17/8 +f 18/16/9 20/18/9 19/19/9 +f 20/20/10 22/21/10 21/22/10 +f 22/23/11 14/24/11 6/25/11 +f 24/26/12 2/1/12 1/27/12 +f 22/21/13 24/26/13 23/28/13 +f 7/29/14 19/30/14 23/31/14 +f 1/27/1 2/1/1 3/3/1 +f 3/3/2 4/2/2 5/5/2 +f 5/5/3 6/4/3 7/7/3 +f 7/7/4 8/6/4 9/9/4 +f 9/9/5 10/8/5 11/11/5 +f 11/11/6 12/10/6 13/13/6 +f 13/13/7 14/12/7 15/15/7 +f 15/15/8 16/14/8 17/17/8 +f 17/17/9 18/16/9 19/19/9 +f 19/32/10 20/20/10 21/22/10 +f 6/25/11 4/33/11 2/30/11 +f 2/30/11 24/34/11 6/25/11 +f 22/23/11 20/35/11 18/36/11 +f 18/36/11 16/37/11 14/24/11 +f 14/24/11 12/38/11 10/39/11 +f 10/39/11 8/40/11 6/25/11 +f 6/25/11 24/34/11 22/23/11 +f 22/23/11 18/36/11 14/24/11 +f 14/24/11 10/39/11 6/25/11 +f 23/28/12 24/26/12 1/27/12 +f 21/22/13 22/21/13 23/28/13 +f 23/31/14 1/41/14 3/42/14 +f 3/42/14 5/43/14 7/29/14 +f 7/29/14 9/44/14 11/45/14 +f 11/45/14 13/46/14 15/47/14 +f 15/47/14 17/48/14 19/30/14 +f 19/30/14 21/49/14 23/31/14 +f 23/31/14 3/42/14 7/29/14 +f 7/29/14 11/45/14 15/47/14 +f 15/47/14 19/30/14 7/29/14 diff --git a/assets/hbm/models/missile_parts/mp_f_15.obj b/assets/hbm/models/missile_parts/mp_f_15.obj new file mode 100644 index 000000000..fd968cdf4 --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_f_15.obj @@ -0,0 +1,86 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_f_15.blend' +# www.blender.org +o Cylinder +v 0.000000 0.000000 -0.750000 +v 0.000000 6.000000 -0.750000 +v 0.375000 0.000000 -0.649519 +v 0.375000 6.000000 -0.649519 +v 0.649519 0.000000 -0.375000 +v 0.649519 6.000000 -0.375000 +v 0.750000 0.000000 -0.000000 +v 0.750000 6.000000 -0.000000 +v 0.649519 0.000000 0.375000 +v 0.649519 6.000000 0.375000 +v 0.375000 0.000000 0.649519 +v 0.375000 6.000000 0.649519 +v 0.000000 0.000000 0.750000 +v 0.000000 6.000000 0.750000 +v -0.375000 0.000000 0.649519 +v -0.375000 6.000000 0.649519 +v -0.649519 0.000000 0.375000 +v -0.649519 6.000000 0.375000 +v -0.750000 0.000000 0.000000 +v -0.750000 6.000000 0.000000 +v -0.649519 0.000000 -0.375000 +v -0.649519 6.000000 -0.375000 +v -0.375000 0.000000 -0.649519 +v -0.375000 6.000000 -0.649519 +vn 0.258800 0.000000 -0.965900 +vn 0.707100 0.000000 -0.707100 +vn 0.965900 0.000000 -0.258800 +vn 0.965900 0.000000 0.258800 +vn 0.707100 0.000000 0.707100 +vn 0.258800 0.000000 0.965900 +vn -0.258800 0.000000 0.965900 +vn -0.707100 0.000000 0.707100 +vn -0.965900 0.000000 0.258800 +vn -0.965900 0.000000 -0.258800 +vn 0.000000 1.000000 0.000000 +vn -0.258800 0.000000 -0.965900 +vn -0.707100 0.000000 -0.707100 +vn 0.000000 -1.000000 0.000000 +s off +f 2//1 4//1 3//1 +f 4//2 6//2 5//2 +f 6//3 8//3 7//3 +f 8//4 10//4 9//4 +f 10//5 12//5 11//5 +f 12//6 14//6 13//6 +f 14//7 16//7 15//7 +f 16//8 18//8 17//8 +f 18//9 20//9 19//9 +f 20//10 22//10 21//10 +f 22//11 14//11 6//11 +f 24//12 2//12 1//12 +f 22//13 24//13 23//13 +f 7//14 15//14 3//14 +f 1//1 2//1 3//1 +f 3//2 4//2 5//2 +f 5//3 6//3 7//3 +f 7//4 8//4 9//4 +f 9//5 10//5 11//5 +f 11//6 12//6 13//6 +f 13//7 14//7 15//7 +f 15//8 16//8 17//8 +f 17//9 18//9 19//9 +f 19//10 20//10 21//10 +f 6//11 4//11 22//11 +f 2//11 24//11 22//11 +f 22//11 20//11 18//11 +f 18//11 16//11 22//11 +f 14//11 12//11 10//11 +f 10//11 8//11 14//11 +f 4//11 2//11 22//11 +f 22//11 16//11 14//11 +f 14//11 8//11 6//11 +f 23//12 24//12 1//12 +f 21//13 22//13 23//13 +f 23//14 1//14 3//14 +f 3//14 5//14 7//14 +f 7//14 9//14 11//14 +f 11//14 13//14 7//14 +f 15//14 17//14 19//14 +f 19//14 21//14 23//14 +f 23//14 3//14 15//14 +f 7//14 13//14 15//14 +f 15//14 19//14 23//14 diff --git a/assets/hbm/models/missile_parts/mp_f_20.obj b/assets/hbm/models/missile_parts/mp_f_20.obj new file mode 100644 index 000000000..7c0244037 --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_f_20.obj @@ -0,0 +1,86 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_f_20.blend' +# www.blender.org +o Cylinder +v 0.000000 0.000000 -1.000000 +v 0.000000 10.000000 -1.000000 +v 0.500000 0.000000 -0.866025 +v 0.500000 10.000000 -0.866025 +v 0.866025 0.000000 -0.500000 +v 0.866025 10.000000 -0.500000 +v 1.000000 0.000000 -0.000000 +v 1.000000 10.000000 -0.000000 +v 0.866025 0.000000 0.500000 +v 0.866025 10.000000 0.500000 +v 0.500000 0.000000 0.866025 +v 0.500000 10.000000 0.866025 +v 0.000000 0.000000 1.000000 +v 0.000000 10.000000 1.000000 +v -0.500000 0.000000 0.866025 +v -0.500000 10.000000 0.866025 +v -0.866025 0.000000 0.500000 +v -0.866025 10.000000 0.500000 +v -1.000000 0.000000 0.000000 +v -1.000000 10.000000 0.000000 +v -0.866026 0.000000 -0.500000 +v -0.866026 10.000000 -0.500000 +v -0.500001 0.000000 -0.866025 +v -0.500001 10.000000 -0.866025 +vn 0.258800 0.000000 -0.965900 +vn 0.707100 0.000000 -0.707100 +vn 0.965900 0.000000 -0.258800 +vn 0.965900 0.000000 0.258800 +vn 0.707100 0.000000 0.707100 +vn 0.258800 0.000000 0.965900 +vn -0.258800 0.000000 0.965900 +vn -0.707100 0.000000 0.707100 +vn -0.965900 0.000000 0.258800 +vn -0.965900 0.000000 -0.258800 +vn 0.000000 1.000000 0.000000 +vn -0.258800 0.000000 -0.965900 +vn -0.707100 0.000000 -0.707100 +vn 0.000000 -1.000000 0.000000 +s off +f 2//1 4//1 3//1 +f 4//2 6//2 5//2 +f 6//3 8//3 7//3 +f 8//4 10//4 9//4 +f 10//5 12//5 11//5 +f 12//6 14//6 13//6 +f 14//7 16//7 15//7 +f 16//8 18//8 17//8 +f 18//9 20//9 19//9 +f 20//10 22//10 21//10 +f 22//11 10//11 6//11 +f 24//12 2//12 1//12 +f 22//13 24//13 23//13 +f 7//14 19//14 23//14 +f 1//1 2//1 3//1 +f 3//2 4//2 5//2 +f 5//3 6//3 7//3 +f 7//4 8//4 9//4 +f 9//5 10//5 11//5 +f 11//6 12//6 13//6 +f 13//7 14//7 15//7 +f 15//8 16//8 17//8 +f 17//9 18//9 19//9 +f 19//10 20//10 21//10 +f 6//11 4//11 22//11 +f 2//11 24//11 22//11 +f 22//11 20//11 18//11 +f 18//11 16//11 14//11 +f 14//11 12//11 10//11 +f 10//11 8//11 6//11 +f 4//11 2//11 22//11 +f 22//11 18//11 14//11 +f 14//11 10//11 22//11 +f 23//12 24//12 1//12 +f 21//13 22//13 23//13 +f 23//14 1//14 7//14 +f 3//14 5//14 7//14 +f 7//14 9//14 11//14 +f 11//14 13//14 7//14 +f 15//14 17//14 19//14 +f 19//14 21//14 23//14 +f 1//14 3//14 7//14 +f 7//14 13//14 15//14 +f 15//14 19//14 7//14 diff --git a/assets/hbm/models/missile_parts/mp_s_10_flat.obj b/assets/hbm/models/missile_parts/mp_s_10_flat.obj new file mode 100644 index 000000000..46f2236af --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_s_10_flat.obj @@ -0,0 +1,152 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_s_10.blend' +# www.blender.org +o Cube +v 0.062500 0.500000 -0.875000 +v 0.062500 0.500000 0.875000 +v -0.062500 0.500000 0.875000 +v -0.062500 0.500000 -0.875000 +v 0.062500 1.500000 -0.750000 +v 0.062500 1.500000 0.750000 +v -0.062500 1.500000 0.750000 +v -0.062500 1.500000 -0.750000 +v -0.875000 0.500000 -0.062500 +v 0.875000 0.500000 -0.062500 +v 0.875000 0.500000 0.062500 +v -0.875000 0.500000 0.062500 +v -0.750000 1.500000 -0.062500 +v 0.750000 1.500000 -0.062500 +v 0.750000 1.500000 0.062500 +v -0.750000 1.500000 0.062500 +v 0.062500 0.500000 -0.375000 +v 0.062500 0.500000 0.375000 +v -0.062500 0.500000 0.375000 +v -0.062500 0.500000 -0.375000 +v -0.375000 0.500000 -0.062500 +v 0.375000 0.500000 -0.062500 +v 0.375000 0.500000 0.062500 +v -0.375000 0.500000 0.062500 +v 0.062500 1.500000 -0.375000 +v 0.062500 1.500000 0.375000 +v -0.062500 1.500000 0.375000 +v -0.062500 1.500000 -0.375000 +v -0.375000 1.500000 -0.062500 +v 0.375000 1.500000 -0.062500 +v 0.375000 1.500000 0.062500 +v -0.375000 1.500000 0.062500 +vt 0.666667 0.333333 +vt 0.541667 0.333333 +vt 0.583333 -0.000000 +vt 0.166667 0.000000 +vt 0.208333 -0.000000 +vt 0.250000 0.333333 +vt 0.250000 0.833333 +vt 0.125000 0.833333 +vt 0.166667 0.500000 +vt 0.583333 0.500000 +vt 0.625000 0.500000 +vt 0.666667 0.833333 +vt 0.458333 0.833333 +vt 0.500000 0.833333 +vt 0.500000 0.958333 +vt 0.500000 0.458333 +vt 0.458333 0.458333 +vt 0.458333 0.333333 +vt 0.041667 0.833333 +vt 0.083333 0.833333 +vt 0.083333 0.958333 +vt 0.041667 0.333333 +vt 0.083333 0.333333 +vt 0.083333 0.458333 +vt 0.000000 0.500000 +vt 0.000000 0.333333 +vt 0.416667 1.000000 +vt 0.416667 0.833333 +vt -0.000000 1.000000 +vt -0.000000 0.833333 +vt 0.416667 0.500000 +vt 0.416667 0.333333 +vt 0.416667 -0.000000 +vt 0.541667 0.833333 +vt 0.375000 -0.000000 +vt 0.375000 0.333333 +vt 0.125000 0.333333 +vt -0.000000 0.000000 +vt 0.791667 0.500000 +vt 0.791667 0.833333 +vt 0.791667 -0.000000 +vt 0.791667 0.333333 +vt 0.833333 0.500000 +vt 0.833333 0.833333 +vt 0.375000 0.500000 +vt 0.375000 0.833333 +vt 0.833333 0.333333 +vt 0.625000 0.000000 +vt 0.208333 0.500000 +vt 0.458333 0.958333 +vt 0.500000 0.333333 +vt 0.041667 0.958333 +vt 0.041667 0.458333 +vt 0.041667 0.500000 +vt 0.458333 1.000000 +vt 0.041667 1.000000 +vt 0.458333 0.500000 +vt 0.833333 -0.000000 +vn -0.000000 0.124000 0.992300 +vn 0.000000 0.124000 -0.992300 +vn 0.992300 0.124000 0.000000 +vn -0.992300 0.124000 -0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn -0.000000 0.000000 1.000000 +s off +f 6/1/1 7/2/1 3/3/1 +f 1/4/2 4/5/2 8/6/2 +f 14/7/3 15/8/3 11/9/3 +f 9/10/4 12/11/4 16/12/4 +f 32/13/5 29/14/5 13/15/5 +f 7/16/5 6/17/5 26/18/5 +f 15/19/5 14/20/5 30/21/5 +f 28/22/5 25/23/5 5/24/5 +f 1/25/6 17/26/6 20/22/6 +f 9/27/6 21/28/6 24/13/6 +f 11/29/6 23/30/6 22/19/6 +f 3/31/6 19/32/6 18/18/6 +f 7/2/7 27/32/7 19/33/7 +f 13/34/8 29/28/8 21/31/8 +f 20/35/7 28/36/7 8/6/7 +f 5/37/9 25/26/9 17/38/9 +f 24/39/10 32/40/10 16/12/10 +f 18/41/9 26/42/9 6/1/9 +f 15/8/10 31/30/10 23/25/10 +f 21/43/9 29/44/9 32/40/9 +f 17/33/10 25/32/10 28/36/10 +f 22/45/8 30/46/8 14/7/8 +f 31/28/7 30/46/7 22/45/7 +f 27/47/8 26/42/8 18/41/8 +f 2/48/1 6/1/1 3/3/1 +f 5/37/2 1/4/2 8/6/2 +f 10/49/3 14/7/3 11/9/3 +f 13/34/4 9/10/4 16/12/4 +f 16/50/5 32/13/5 13/15/5 +f 27/51/5 7/16/5 26/18/5 +f 31/52/5 15/19/5 30/21/5 +f 8/53/5 28/22/5 5/24/5 +f 4/54/6 1/25/6 20/22/6 +f 12/55/6 9/27/6 24/13/6 +f 10/56/6 11/29/6 22/19/6 +f 2/57/6 3/31/6 18/18/6 +f 3/3/7 7/2/7 19/33/7 +f 9/10/8 13/34/8 21/31/8 +f 4/5/7 20/35/7 8/6/7 +f 1/4/9 5/37/9 17/38/9 +f 12/11/10 24/39/10 16/12/10 +f 2/48/9 18/41/9 6/1/9 +f 11/9/10 15/8/10 23/25/10 +f 24/39/9 21/43/9 32/40/9 +f 20/35/10 17/33/10 28/36/10 +f 10/49/8 22/45/8 14/7/8 +f 23/31/7 31/28/7 22/45/7 +f 19/58/8 27/47/8 18/41/8 diff --git a/assets/hbm/models/missile_parts/mp_s_15.obj b/assets/hbm/models/missile_parts/mp_s_15.obj new file mode 100644 index 000000000..7d6a5f5aa --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_s_15.obj @@ -0,0 +1,54 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_s_15.blend' +# www.blender.org +o Cube +v 0.093750 1.000000 -1.406250 +v 0.093750 1.000000 1.406250 +v -0.093750 1.000000 1.406250 +v -0.093750 1.000000 -1.406250 +v 0.093750 2.500000 -1.125000 +v 0.093750 2.500000 1.125001 +v -0.093750 2.500000 1.125000 +v -0.093750 2.500000 -1.125000 +v -1.406250 1.000000 -0.093750 +v 1.406250 1.000000 -0.093750 +v 1.406250 1.000000 0.093750 +v -1.406250 1.000000 0.093750 +v -1.125000 2.500000 -0.093750 +v 1.125001 2.500000 -0.093750 +v 1.125000 2.500000 0.093750 +v -1.125000 2.500000 0.093750 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn -0.000000 0.184300 0.982900 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 0.184300 -0.982900 +vn 0.000000 0.000000 -1.000000 +vn 0.982900 0.184300 0.000000 +vn -0.000000 -0.000000 1.000000 +vn -0.982900 0.184300 -0.000000 +s off +f 1//1 2//1 3//1 +f 5//2 8//2 7//2 +f 5//3 6//3 2//3 +f 6//4 7//4 3//4 +f 7//5 8//5 4//5 +f 1//6 4//6 8//6 +f 9//1 10//1 11//1 +f 13//2 16//2 15//2 +f 13//7 14//7 10//7 +f 14//8 15//8 11//8 +f 11//9 15//9 16//9 +f 9//10 12//10 16//10 +f 4//1 1//1 3//1 +f 6//2 5//2 7//2 +f 1//3 5//3 2//3 +f 2//4 6//4 3//4 +f 3//5 7//5 4//5 +f 5//6 1//6 8//6 +f 12//1 9//1 11//1 +f 14//2 13//2 15//2 +f 9//7 13//7 10//7 +f 10//8 14//8 11//8 +f 12//9 11//9 16//9 +f 13//10 9//10 16//10 diff --git a/assets/hbm/models/missile_parts/mp_s_20.obj b/assets/hbm/models/missile_parts/mp_s_20.obj new file mode 100644 index 000000000..cc56073da --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_s_20.obj @@ -0,0 +1,82 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_s_20.blend' +# www.blender.org +o Cube +v 0.105469 1.000000 -1.582031 +v 0.105469 1.000000 1.582031 +v -0.105469 1.000000 1.582031 +v -0.105469 1.000000 -1.582032 +v 0.105469 2.500000 -1.265625 +v 0.105469 2.500000 1.265626 +v -0.105469 2.500000 1.265625 +v -0.105469 2.500000 -1.265625 +v -1.582031 1.000000 -0.105469 +v 1.582031 1.000000 -0.105469 +v 1.582031 1.000000 0.105469 +v -1.582032 1.000000 0.105469 +v -1.265625 2.500000 -0.105469 +v 1.265626 2.500000 -0.105469 +v 1.265625 2.500000 0.105469 +v -1.265625 2.500000 0.105469 +v 0.105469 3.500000 -0.632812 +v 0.105469 3.500000 0.632813 +v -0.105469 3.500000 -0.632812 +v -0.105469 3.500000 0.632812 +v -0.632812 3.500000 -0.105469 +v 0.632813 3.500000 -0.105469 +v -0.632812 3.500000 0.105469 +v 0.632812 3.500000 0.105469 +vn 0.000000 -1.000000 0.000000 +vn -0.845000 0.534700 -0.000000 +vn 1.000000 -0.000000 0.000000 +vn -0.000000 0.206400 0.978500 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 0.206400 -0.978500 +vn -0.000000 -0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.978500 0.206400 0.000000 +vn -0.978500 0.206400 -0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.000000 0.534700 0.845000 +vn 0.845000 0.534700 0.000000 +vn 0.000000 0.534700 -0.845000 +s off +f 1//1 2//1 3//1 +f 13//2 16//2 23//2 +f 5//3 6//3 2//3 +f 6//4 7//4 3//4 +f 7//5 8//5 4//5 +f 1//6 4//6 8//6 +f 9//1 10//1 11//1 +f 15//7 24//7 23//7 +f 13//8 14//8 10//8 +f 14//9 15//9 11//9 +f 15//7 16//7 12//7 +f 9//10 12//10 16//10 +f 17//11 19//11 20//11 +f 21//11 23//11 24//11 +f 7//12 6//12 18//12 +f 5//3 17//3 18//3 +f 15//13 14//13 22//13 +f 7//5 20//5 19//5 +f 13//8 21//8 22//8 +f 5//14 8//14 19//14 +f 4//1 1//1 3//1 +f 21//2 13//2 23//2 +f 1//3 5//3 2//3 +f 2//4 6//4 3//4 +f 3//5 7//5 4//5 +f 5//6 1//6 8//6 +f 12//1 9//1 11//1 +f 16//7 15//7 23//7 +f 9//8 13//8 10//8 +f 10//9 14//9 11//9 +f 11//7 15//7 12//7 +f 13//10 9//10 16//10 +f 18//11 17//11 20//11 +f 22//11 21//11 24//11 +f 20//12 7//12 18//12 +f 6//3 5//3 18//3 +f 24//13 15//13 22//13 +f 8//5 7//5 19//5 +f 14//8 13//8 22//8 +f 17//14 5//14 19//14 diff --git a/assets/hbm/models/missile_parts/mp_t_10_kerosene.obj b/assets/hbm/models/missile_parts/mp_t_10_kerosene.obj new file mode 100644 index 000000000..78c08370d --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_t_10_kerosene.obj @@ -0,0 +1,430 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_t_10.blend' +# www.blender.org +o Circle +v 0.000000 1.000000 -0.500000 +v -0.250000 1.000000 -0.433013 +v -0.433013 1.000000 -0.250000 +v -0.500000 1.000000 0.000000 +v -0.433013 1.000000 0.250000 +v -0.250000 1.000000 0.433013 +v -0.000000 1.000000 0.500000 +v 0.250000 1.000000 0.433013 +v 0.433013 1.000000 0.250000 +v 0.500000 1.000000 0.000000 +v 0.433013 1.000000 -0.250000 +v 0.250000 1.000000 -0.433013 +v -0.187500 0.875000 -0.324760 +v 0.000000 0.875000 -0.375000 +v -0.324760 0.875000 -0.187500 +v -0.375000 0.875000 0.000000 +v -0.324759 0.875000 0.187500 +v -0.187500 0.875000 0.324760 +v -0.000000 0.875000 0.375000 +v 0.187500 0.875000 0.324760 +v 0.324759 0.875000 0.187500 +v 0.375000 0.875000 0.000000 +v 0.324760 0.875000 -0.187500 +v 0.187500 0.875000 -0.324759 +v 0.000000 0.500000 -0.425000 +v -0.212500 0.500000 -0.368061 +v -0.368061 0.500000 -0.212500 +v -0.425000 0.500000 0.000000 +v -0.368061 0.500000 0.212500 +v -0.212500 0.500000 0.368061 +v -0.000000 0.500000 0.425000 +v 0.212500 0.500000 0.368061 +v 0.368061 0.500000 0.212500 +v 0.425000 0.500000 0.000000 +v 0.368061 0.500000 -0.212500 +v 0.212500 0.500000 -0.368061 +v 0.000000 0.875000 -0.250000 +v -0.125000 0.875000 -0.216506 +v -0.216506 0.875000 -0.125000 +v -0.250000 0.875000 0.000000 +v -0.216506 0.875000 0.125000 +v -0.125000 0.875000 0.216506 +v -0.000000 0.875000 0.250000 +v 0.125000 0.875000 0.216506 +v 0.216506 0.875000 0.125000 +v 0.250000 0.875000 0.000000 +v 0.216506 0.875000 -0.125000 +v 0.125000 0.875000 -0.216506 +v 0.250000 0.000000 -0.433013 +v 0.433013 0.000000 -0.250000 +v 0.500000 0.000000 0.000000 +v 0.433013 0.000000 0.250000 +v 0.250000 0.000000 0.433013 +v -0.000000 0.000000 0.500000 +v -0.250000 0.000000 0.433013 +v -0.433013 0.000000 0.250000 +v -0.500000 0.000000 0.000000 +v -0.433013 0.000000 -0.250000 +v -0.250000 0.000000 -0.433013 +v 0.000000 0.000000 -0.500000 +v 0.000000 0.000000 -0.375000 +v 0.187500 0.000000 -0.324759 +v 0.324760 0.000000 -0.187500 +v 0.375000 0.000000 0.000000 +v 0.324759 0.000000 0.187500 +v 0.187500 0.000000 0.324760 +v -0.000000 0.000000 0.375000 +v -0.187500 0.000000 0.324760 +v -0.324760 0.000000 0.187500 +v -0.375000 0.000000 0.000000 +v -0.324760 0.000000 -0.187500 +v -0.187500 0.000000 -0.324760 +v 0.000000 0.750000 -0.187500 +v 0.093750 0.750000 -0.162380 +v 0.162380 0.750000 -0.093750 +v 0.187500 0.750000 0.000000 +v 0.162380 0.750000 0.093750 +v 0.093750 0.750000 0.162380 +v -0.000000 0.750000 0.187500 +v -0.093750 0.750000 0.162380 +v -0.162380 0.750000 0.093750 +v -0.187500 0.750000 0.000000 +v -0.162380 0.750000 -0.093750 +v -0.093750 0.750000 -0.162380 +vt 0.500000 0.645833 +vt 0.645833 0.562500 +vt 0.500000 0.312500 +vt 1.000000 0.833333 +vt 0.812500 0.729167 +vt 0.812500 0.937500 +vt 0.666667 0.645833 +vt 0.666667 0.708333 +vt 0.583333 0.708333 +vt 0.833333 0.645833 +vt 0.916667 0.645833 +vt 0.916667 0.708333 +vt 0.333333 0.645833 +vt 0.333333 0.708333 +vt 0.250000 0.708333 +vt 0.166667 0.645833 +vt 0.166667 0.708333 +vt 0.083333 0.708333 +vt 0.583333 0.645833 +vt 0.500000 0.708333 +vt 0.833333 0.708333 +vt 0.750000 0.708333 +vt 0.083333 0.645833 +vt 0.000000 0.708333 +vt 0.416667 0.708333 +vt 0.750000 0.645833 +vt 1.000000 0.645833 +vt 1.000000 0.708333 +vt 0.416667 0.645833 +vt 0.250000 0.645833 +vt 0.000000 0.166667 +vt 0.083333 0.166667 +vt 0.083333 0.312500 +vt 1.000000 0.000000 +vt 1.000000 0.166667 +vt 0.916667 0.166667 +vt 0.916667 -0.000000 +vt 0.833333 0.166667 +vt 0.750000 0.166667 +vt 0.750000 0.000000 +vt 0.666667 0.166667 +vt 0.666667 -0.000000 +vt 0.583333 0.166667 +vt 0.583333 0.000000 +vt 0.500000 0.166667 +vt 0.083333 0.000000 +vt 0.166667 -0.000000 +vt 0.166667 0.166667 +vt 0.250000 0.000000 +vt 0.250000 0.166667 +vt 0.333333 0.000000 +vt 0.333333 0.166667 +vt 0.416667 0.000000 +vt 0.416667 0.166667 +vt 0.500000 0.000000 +vt 0.166667 0.312500 +vt 0.916667 0.312500 +vt 0.833333 0.312500 +vt 0.750000 0.312500 +vt 0.666667 0.312500 +vt 0.583333 0.312500 +vt 0.416667 0.312500 +vt 0.333333 0.312500 +vt 0.250000 0.312500 +vt 0.333333 0.479167 +vt 0.291667 0.479167 +vt 0.270833 0.416667 +vt 0.562500 0.708333 +vt 0.562500 0.895833 +vt 0.500000 0.895833 +vt 0.020833 0.395833 +vt 0.062500 0.416667 +vt 0.041667 0.479167 +vt 0.166667 0.354167 +vt 0.104167 0.375000 +vt 0.083333 0.625000 +vt 0.104167 0.583333 +vt 0.312500 0.562500 +vt 0.270833 0.541667 +vt 0.083333 0.333333 +vt 0.250000 0.333333 +vt 0.229167 0.375000 +vt 0.020833 0.562500 +vt 0.062500 0.541667 +vt 0.250000 0.625000 +vt 0.229167 0.583333 +vt 0.312500 0.395833 +vt -0.000000 0.479167 +vt 0.166667 0.604167 +vt 0.791667 0.375000 +vt 0.708333 0.312500 +vt 0.708333 0.437500 +vt 0.312500 0.708333 +vt 0.375000 0.708333 +vt 0.375000 0.895833 +vt 0.062500 0.708333 +vt 0.062500 0.895833 +vt 0.625000 0.708333 +vt 0.625000 0.895833 +vt 0.437500 0.708333 +vt 0.437500 0.895833 +vt 0.125000 0.708333 +vt 0.125000 0.895833 +vt 0.250000 0.895833 +vt 0.187500 0.895833 +vt 0.687500 0.708333 +vt 0.687500 0.895833 +vt 0.187500 0.708333 +vt 0.312500 0.895833 +vt 0.750000 0.895833 +vt 0.416667 0.333333 +vt 0.354167 0.395833 +vt 0.354167 0.562500 +vt 0.416667 0.625000 +vt 0.583333 0.625000 +vt 0.666667 0.479167 +vt 0.645833 0.395833 +vt 0.583333 0.333333 +vt 0.875000 0.958333 +vt 0.937500 0.937500 +vt 0.979167 0.895833 +vt 0.979167 0.770833 +vt 0.937500 0.729167 +vt 0.875000 0.708333 +vt 0.770833 0.770833 +vt 0.750000 0.833333 +vt 0.770833 0.895833 +vt 0.000000 0.645833 +vt -0.000000 0.312500 +vt 0.833333 -0.000000 +vt -0.000000 0.000000 +vt 1.000000 0.312500 +vt 0.729167 0.437500 +vt 0.750000 0.437500 +vt 0.791667 0.395833 +vt 0.791667 0.354167 +vt 0.729167 0.312500 +vt 0.666667 0.354167 +vt 0.666667 0.375000 +vt 0.666667 0.395833 +vt 0.000000 0.895833 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 -0.000000 +vn 0.508600 -0.694700 0.508600 +vn -0.508600 -0.694700 0.508600 +vn 0.186200 -0.694700 -0.694700 +vn -0.508600 -0.694700 -0.508600 +vn 0.694700 -0.694700 0.186200 +vn -0.186200 -0.694700 0.694700 +vn -0.694700 -0.694700 -0.186200 +vn 0.694700 -0.694700 -0.186200 +vn 0.186200 -0.694700 0.694700 +vn -0.694700 -0.694700 0.186200 +vn 0.508600 -0.694700 -0.508600 +vn -0.186200 -0.694700 -0.694700 +vn -0.880600 0.410900 0.236000 +vn -0.955900 0.143400 -0.256100 +vn -0.699800 0.143400 -0.699800 +vn -0.256100 0.143400 -0.955900 +vn 0.256100 0.143400 -0.955900 +vn 0.699800 0.143400 -0.699800 +vn 0.955900 0.143400 -0.256100 +vn -0.955900 0.143400 0.256100 +vn -0.699800 0.143400 0.699800 +vn -0.256100 0.143400 0.955900 +vn 0.256100 0.143400 0.955900 +vn 0.699800 0.143400 0.699800 +vn 0.955900 0.143400 0.256100 +vn -0.644600 0.410900 0.644600 +vn -0.880600 0.410900 -0.236000 +vn -0.644600 0.410900 -0.644600 +vn -0.236000 0.410900 -0.880600 +vn 0.236000 0.410900 -0.880600 +vn 0.644600 0.410900 -0.644600 +vn 0.880600 0.410900 -0.236000 +vn 0.880600 0.410900 0.236000 +vn 0.644600 0.410900 0.644600 +vn 0.236000 0.410900 0.880600 +vn -0.236000 0.410900 0.880600 +vn -0.251600 -0.234700 -0.938900 +vn -0.938900 -0.234700 0.251600 +vn 0.938900 -0.234700 0.251600 +vn 0.251600 -0.234700 -0.938900 +vn -0.938900 -0.234700 -0.251600 +vn 0.687300 -0.234700 0.687300 +vn -0.251600 -0.234700 0.938900 +vn 0.687300 -0.234700 -0.687300 +vn -0.687300 -0.234700 -0.687300 +vn 0.251600 -0.234700 0.938900 +vn -0.687400 -0.234700 0.687300 +vn 0.938900 -0.234700 -0.251600 +vn -0.687300 -0.234700 -0.687400 +s off +f 7/1/1 9/2/1 1/3/1 +f 23/4/2 19/5/2 15/6/2 +f 8/7/3 20/8/3 21/9/3 +f 6/10/4 5/11/4 17/12/4 +f 12/13/5 24/14/5 14/15/5 +f 2/16/6 13/17/6 15/18/6 +f 9/19/7 21/9/7 22/20/7 +f 6/10/8 18/21/8 19/22/8 +f 3/23/9 15/18/9 16/24/9 +f 10/1/10 22/20/10 23/25/10 +f 8/7/11 7/26/11 19/22/11 +f 4/27/12 16/28/12 17/12/12 +f 11/29/13 23/25/13 24/14/13 +f 1/30/14 14/15/14 13/17/14 +f 28/31/15 29/32/15 41/33/15 +f 57/34/16 28/35/16 27/36/16 +f 58/37/17 27/36/17 26/38/17 +f 26/38/18 25/39/18 60/40/18 +f 25/39/19 36/41/19 49/42/19 +f 36/41/20 35/43/20 50/44/20 +f 50/44/21 35/43/21 34/45/21 +f 56/46/22 29/32/22 28/31/22 +f 55/47/23 30/48/23 29/32/23 +f 54/49/24 31/50/24 30/48/24 +f 54/49/25 53/51/25 32/52/25 +f 52/53/26 33/54/26 32/52/26 +f 51/55/27 34/45/27 33/54/27 +f 29/32/28 30/48/28 42/56/28 +f 39/57/29 27/36/29 28/35/29 +f 26/38/30 27/36/30 39/57/30 +f 26/38/31 38/58/31 37/59/31 +f 36/41/32 25/39/32 37/59/32 +f 35/43/33 36/41/33 48/60/33 +f 35/43/34 47/61/34 46/3/34 +f 34/45/35 46/3/35 45/62/35 +f 33/54/36 45/62/36 44/63/36 +f 32/52/37 44/63/37 43/64/37 +f 31/50/38 43/64/38 42/56/38 +f 52/65/2 65/66/2 64/67/2 +f 67/68/39 79/69/39 78/70/39 +f 59/71/2 72/72/2 71/73/2 +f 49/56/2 62/74/2 61/75/2 +f 55/16/2 56/76/2 69/77/2 +f 53/78/2 66/79/2 65/66/2 +f 60/80/2 61/75/2 72/72/2 +f 50/81/2 63/82/2 62/74/2 +f 57/83/2 70/84/2 69/77/2 +f 54/85/2 67/86/2 66/79/2 +f 51/87/2 64/67/2 63/82/2 +f 57/83/2 58/88/2 71/73/2 +f 54/85/2 55/16/2 68/89/2 +f 76/90/2 80/91/2 84/92/2 +f 63/93/40 64/94/40 76/95/40 +f 70/24/41 71/96/41 83/97/41 +f 68/98/42 80/99/42 79/69/42 +f 65/100/43 77/101/43 76/95/43 +f 72/102/44 84/103/44 83/97/44 +f 62/15/45 74/104/45 73/105/45 +f 69/106/46 81/107/46 80/99/46 +f 66/20/47 78/70/47 77/101/47 +f 61/108/48 73/105/48 84/103/48 +f 63/93/49 75/109/49 74/104/49 +f 70/22/50 82/110/50 81/107/50 +f 1/3/1 2/111/1 3/112/1 +f 3/112/1 4/65/1 5/113/1 +f 5/113/1 6/114/1 7/1/1 +f 7/1/1 8/115/1 9/2/1 +f 9/2/1 10/116/1 11/117/1 +f 11/117/1 12/118/1 1/3/1 +f 1/3/1 3/112/1 5/113/1 +f 5/113/1 7/1/1 1/3/1 +f 9/2/1 11/117/1 1/3/1 +f 15/6/2 13/119/2 23/4/2 +f 14/120/2 24/121/2 23/4/2 +f 23/4/2 22/122/2 21/123/2 +f 21/123/2 20/124/2 23/4/2 +f 19/5/2 18/125/2 17/126/2 +f 17/126/2 16/127/2 15/6/2 +f 13/119/2 14/120/2 23/4/2 +f 23/4/2 20/124/2 19/5/2 +f 19/5/2 17/126/2 15/6/2 +f 9/19/3 8/7/3 21/9/3 +f 18/21/4 6/10/4 17/12/4 +f 1/30/5 12/13/5 14/15/5 +f 3/23/6 2/16/6 15/18/6 +f 10/1/7 9/19/7 22/20/7 +f 7/26/8 6/10/8 19/22/8 +f 4/128/9 3/23/9 16/24/9 +f 11/29/10 10/1/10 23/25/10 +f 20/8/11 8/7/11 19/22/11 +f 5/11/12 4/27/12 17/12/12 +f 12/13/13 11/29/13 24/14/13 +f 2/16/14 1/30/14 13/17/14 +f 40/129/15 28/31/15 41/33/15 +f 58/37/16 57/34/16 27/36/16 +f 59/130/17 58/37/17 26/38/17 +f 59/130/18 26/38/18 60/40/18 +f 60/40/19 25/39/19 49/42/19 +f 49/42/20 36/41/20 50/44/20 +f 51/55/21 50/44/21 34/45/21 +f 57/131/22 56/46/22 28/31/22 +f 56/46/23 55/47/23 29/32/23 +f 55/47/24 54/49/24 30/48/24 +f 31/50/25 54/49/25 32/52/25 +f 53/51/26 52/53/26 32/52/26 +f 52/53/27 51/55/27 33/54/27 +f 41/33/28 29/32/28 42/56/28 +f 40/132/29 39/57/29 28/35/29 +f 38/58/30 26/38/30 39/57/30 +f 25/39/31 26/38/31 37/59/31 +f 48/60/32 36/41/32 37/59/32 +f 47/61/33 35/43/33 48/60/33 +f 34/45/34 35/43/34 46/3/34 +f 33/54/35 34/45/35 45/62/35 +f 32/52/36 33/54/36 44/63/36 +f 31/50/37 32/52/37 43/64/37 +f 30/48/38 31/50/38 42/56/38 +f 51/87/2 52/65/2 64/67/2 +f 66/20/39 67/68/39 78/70/39 +f 58/88/2 59/71/2 71/73/2 +f 60/80/2 49/56/2 61/75/2 +f 68/89/2 55/16/2 69/77/2 +f 52/65/2 53/78/2 65/66/2 +f 59/71/2 60/80/2 72/72/2 +f 49/56/2 50/81/2 62/74/2 +f 56/76/2 57/83/2 69/77/2 +f 53/78/2 54/85/2 66/79/2 +f 50/81/2 51/87/2 63/82/2 +f 70/84/2 57/83/2 71/73/2 +f 67/86/2 54/85/2 68/89/2 +f 84/92/2 73/133/2 74/134/2 +f 74/134/2 75/135/2 84/92/2 +f 76/90/2 77/136/2 80/91/2 +f 78/59/2 79/137/2 80/91/2 +f 80/91/2 81/138/2 82/139/2 +f 82/139/2 83/140/2 84/92/2 +f 84/92/2 75/135/2 76/90/2 +f 77/136/2 78/59/2 80/91/2 +f 80/91/2 82/139/2 84/92/2 +f 75/109/40 63/93/40 76/95/40 +f 82/141/41 70/24/41 83/97/41 +f 67/68/42 68/98/42 79/69/42 +f 64/94/43 65/100/43 76/95/43 +f 71/96/44 72/102/44 83/97/44 +f 61/108/45 62/15/45 73/105/45 +f 68/98/46 69/106/46 80/99/46 +f 65/100/51 66/20/51 77/101/51 +f 72/102/48 61/108/48 84/103/48 +f 62/15/49 63/93/49 74/104/49 +f 69/106/50 70/22/50 81/107/50 diff --git a/assets/hbm/models/missile_parts/mp_t_15.obj b/assets/hbm/models/missile_parts/mp_t_15.obj new file mode 100644 index 000000000..7cd7a6b50 --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_t_15.obj @@ -0,0 +1,288 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_t_15.blend' +# www.blender.org +o Circle +v -0.000000 1.625000 -0.750000 +v -0.375000 1.625000 -0.649519 +v -0.649519 1.625000 -0.375000 +v -0.750000 1.625000 -0.000000 +v -0.649519 1.625000 0.375000 +v -0.375000 1.625000 0.649519 +v -0.000000 1.625000 0.750000 +v 0.375000 1.625000 0.649519 +v 0.649519 1.625000 0.375000 +v 0.750000 1.625000 0.000000 +v 0.649519 1.625000 -0.375000 +v 0.375000 1.625000 -0.649519 +v -0.281250 1.375000 -0.487139 +v 0.000000 1.375000 -0.562500 +v -0.487139 1.375000 -0.281250 +v -0.562500 1.375000 0.000000 +v -0.487139 1.375000 0.281250 +v -0.281250 1.375000 0.487139 +v -0.000000 1.375000 0.562500 +v 0.281250 1.375000 0.487139 +v 0.487139 1.375000 0.281250 +v 0.562500 1.375000 0.000000 +v 0.487139 1.375000 -0.281250 +v 0.281250 1.375000 -0.487139 +v -0.000000 1.375000 -0.375000 +v -0.187500 1.375000 -0.324760 +v -0.324760 1.375000 -0.187500 +v -0.375000 1.375000 0.000000 +v -0.324760 1.375000 0.187500 +v -0.187500 1.375000 0.324760 +v -0.000000 1.375000 0.375000 +v 0.187500 1.375000 0.324760 +v 0.324759 1.375000 0.187500 +v 0.375000 1.375000 0.000000 +v 0.324760 1.375000 -0.187500 +v 0.187500 1.375000 -0.324759 +v -0.281250 0.875000 -0.487139 +v -0.000000 0.875000 -0.562500 +v -0.487139 0.875000 -0.281250 +v -0.562500 0.875000 0.000000 +v -0.487139 0.875000 0.281250 +v -0.281250 0.875000 0.487139 +v -0.000000 0.875000 0.562500 +v 0.281250 0.875000 0.487139 +v 0.487139 0.875000 0.281250 +v 0.562500 0.875000 0.000000 +v 0.487139 0.875000 -0.281250 +v 0.281250 0.875000 -0.487139 +v -0.000000 0.000000 -0.750000 +v -0.375000 0.000000 -0.649519 +v -0.649519 0.000000 -0.375000 +v -0.750000 0.000000 -0.000000 +v -0.649519 0.000000 0.375000 +v -0.375000 0.000000 0.649519 +v -0.000000 0.000000 0.750000 +v 0.375000 0.000000 0.649519 +v 0.649519 0.000000 0.375000 +v 0.750000 0.000000 0.000000 +v 0.649519 0.000000 -0.375000 +v 0.375000 0.000000 -0.649519 +v -0.281250 0.000000 -0.487139 +v -0.000000 0.000000 -0.562500 +v -0.487139 0.000000 -0.281250 +v -0.562500 0.000000 0.000000 +v -0.487139 0.000000 0.281250 +v -0.281250 0.000000 0.487139 +v -0.000000 0.000000 0.562500 +v 0.281250 0.000000 0.487139 +v 0.487139 0.000000 0.281250 +v 0.562500 0.000000 0.000000 +v 0.487139 0.000000 -0.281250 +v 0.281250 0.000000 -0.487139 +v -0.140625 1.000000 -0.243570 +v 0.000000 1.000000 -0.281250 +v -0.243570 1.000000 -0.140625 +v -0.281250 1.000000 0.000000 +v -0.243570 1.000000 0.140625 +v -0.140625 1.000000 0.243570 +v -0.000000 1.000000 0.281250 +v 0.140625 1.000000 0.243570 +v 0.243570 1.000000 0.140625 +v 0.281250 1.000000 0.000000 +v 0.243570 1.000000 -0.140625 +v 0.140625 1.000000 -0.243570 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.572600 -0.586700 0.572600 +vn -0.572600 -0.586700 0.572600 +vn 0.209600 -0.586700 -0.782200 +vn -0.572600 -0.586700 -0.572600 +vn 0.782200 -0.586700 0.209600 +vn -0.209600 -0.586700 0.782200 +vn -0.782200 -0.586700 -0.209600 +vn 0.782200 -0.586700 -0.209600 +vn 0.209600 -0.586700 0.782200 +vn -0.782200 -0.586700 0.209600 +vn 0.572600 -0.586700 -0.572600 +vn -0.209600 -0.586700 -0.782200 +vn -0.945900 0.202700 0.253400 +vn -0.945900 0.202700 -0.253400 +vn 0.243300 0.340600 -0.908200 +vn -0.664800 0.340600 -0.664800 +vn 0.908200 0.340600 0.243300 +vn -0.243300 0.340600 0.908200 +vn -0.908200 0.340600 -0.243300 +vn 0.908200 0.340600 -0.243300 +vn 0.243300 0.340600 0.908200 +vn -0.908200 0.340600 0.243300 +vn 0.664800 0.340600 -0.664800 +vn -0.243300 0.340600 -0.908200 +vn 0.664800 0.340600 0.664800 +vn -0.664800 0.340600 0.664800 +vn -0.692400 0.202700 -0.692400 +vn -0.253400 0.202700 -0.945900 +vn -0.692400 0.202700 0.692400 +vn -0.253400 0.202700 0.945900 +vn 0.253400 0.202700 0.945900 +vn 0.692400 0.202700 0.692400 +vn 0.945900 0.202700 0.253400 +vn 0.945900 0.202700 -0.253400 +vn 0.692400 0.202700 -0.692400 +vn 0.253400 0.202700 -0.945900 +vn 0.932100 -0.262200 0.249800 +vn -0.932100 -0.262200 0.249800 +vn -0.249800 -0.262200 -0.932100 +vn 0.932100 -0.262200 -0.249800 +vn -0.682400 -0.262200 0.682400 +vn 0.249800 -0.262200 0.932100 +vn -0.682400 -0.262200 -0.682400 +vn 0.682400 -0.262200 -0.682400 +vn -0.249800 -0.262200 0.932100 +vn 0.682400 -0.262200 0.682400 +vn -0.932100 -0.262200 -0.249800 +vn 0.249800 -0.262200 -0.932100 +s off +f 5//1 9//1 1//1 +f 23//2 19//2 14//2 +f 8//3 20//3 21//3 +f 6//4 5//4 17//4 +f 12//5 24//5 14//5 +f 2//6 13//6 15//6 +f 9//7 21//7 22//7 +f 6//8 18//8 19//8 +f 4//9 3//9 15//9 +f 10//10 22//10 23//10 +f 7//11 19//11 20//11 +f 4//12 16//12 17//12 +f 11//13 23//13 24//13 +f 1//14 14//14 13//14 +f 52//15 53//15 41//15 +f 51//16 52//16 40//16 +f 36//17 48//17 38//17 +f 27//18 26//18 37//18 +f 34//19 33//19 45//19 +f 30//20 42//20 43//20 +f 27//21 39//21 40//21 +f 34//22 46//22 47//22 +f 31//23 43//23 44//23 +f 28//24 40//24 41//24 +f 35//25 47//25 48//25 +f 25//26 38//26 37//26 +f 33//27 32//27 44//27 +f 30//28 29//28 41//28 +f 50//29 51//29 39//29 +f 38//30 49//30 50//30 +f 53//31 54//31 42//31 +f 42//32 54//32 55//32 +f 43//33 55//33 56//33 +f 56//34 57//34 45//34 +f 57//35 58//35 46//35 +f 58//36 59//36 47//36 +f 59//37 60//37 48//37 +f 60//38 49//38 38//38 +f 58//2 70//2 71//2 +f 64//39 63//39 75//39 +f 55//2 67//2 68//2 +f 53//2 52//2 64//2 +f 59//2 71//2 72//2 +f 49//2 62//2 61//2 +f 56//2 68//2 69//2 +f 53//2 65//2 66//2 +f 60//2 72//2 62//2 +f 50//2 61//2 63//2 +f 57//2 69//2 70//2 +f 55//2 54//2 66//2 +f 51//2 63//2 64//2 +f 83//2 79//2 75//2 +f 70//40 82//40 83//40 +f 68//41 67//41 79//41 +f 64//42 76//42 77//42 +f 71//43 83//43 84//43 +f 62//44 74//44 73//44 +f 69//45 68//45 80//45 +f 65//46 77//46 78//46 +f 72//47 84//47 74//47 +f 61//48 73//48 75//48 +f 69//49 81//49 82//49 +f 66//50 78//50 79//50 +f 1//1 2//1 3//1 +f 3//1 4//1 1//1 +f 5//1 6//1 7//1 +f 7//1 8//1 9//1 +f 9//1 10//1 11//1 +f 11//1 12//1 1//1 +f 1//1 4//1 5//1 +f 5//1 7//1 9//1 +f 9//1 11//1 1//1 +f 15//2 13//2 14//2 +f 14//2 24//2 23//2 +f 23//2 22//2 21//2 +f 21//2 20//2 19//2 +f 19//2 18//2 17//2 +f 17//2 16//2 15//2 +f 15//2 14//2 19//2 +f 23//2 21//2 19//2 +f 19//2 17//2 15//2 +f 9//3 8//3 21//3 +f 18//4 6//4 17//4 +f 1//5 12//5 14//5 +f 3//6 2//6 15//6 +f 10//7 9//7 22//7 +f 7//8 6//8 19//8 +f 16//9 4//9 15//9 +f 11//10 10//10 23//10 +f 8//11 7//11 20//11 +f 5//12 4//12 17//12 +f 12//13 11//13 24//13 +f 2//14 1//14 13//14 +f 40//15 52//15 41//15 +f 39//16 51//16 40//16 +f 25//17 36//17 38//17 +f 39//18 27//18 37//18 +f 46//19 34//19 45//19 +f 31//20 30//20 43//20 +f 28//21 27//21 40//21 +f 35//22 34//22 47//22 +f 32//23 31//23 44//23 +f 29//24 28//24 41//24 +f 36//25 35//25 48//25 +f 26//26 25//26 37//26 +f 45//27 33//27 44//27 +f 42//28 30//28 41//28 +f 37//29 50//29 39//29 +f 37//30 38//30 50//30 +f 41//31 53//31 42//31 +f 43//32 42//32 55//32 +f 44//33 43//33 56//33 +f 44//34 56//34 45//34 +f 45//35 57//35 46//35 +f 46//36 58//36 47//36 +f 47//37 59//37 48//37 +f 48//38 60//38 38//38 +f 59//2 58//2 71//2 +f 76//39 64//39 75//39 +f 56//2 55//2 68//2 +f 65//2 53//2 64//2 +f 60//2 59//2 72//2 +f 50//2 49//2 61//2 +f 57//2 56//2 69//2 +f 54//2 53//2 66//2 +f 49//2 60//2 62//2 +f 51//2 50//2 63//2 +f 58//2 57//2 70//2 +f 67//2 55//2 66//2 +f 52//2 51//2 64//2 +f 75//2 73//2 74//2 +f 74//2 84//2 83//2 +f 83//2 82//2 81//2 +f 81//2 80//2 79//2 +f 79//2 78//2 77//2 +f 77//2 76//2 79//2 +f 75//2 74//2 83//2 +f 83//2 81//2 79//2 +f 79//2 76//2 75//2 +f 71//40 70//40 83//40 +f 80//41 68//41 79//41 +f 65//42 64//42 77//42 +f 72//43 71//43 84//43 +f 61//44 62//44 73//44 +f 81//45 69//45 80//45 +f 66//46 65//46 78//46 +f 62//47 72//47 74//47 +f 63//48 61//48 75//48 +f 70//49 69//49 82//49 +f 67//50 66//50 79//50 diff --git a/assets/hbm/models/missile_parts/mp_t_20.obj b/assets/hbm/models/missile_parts/mp_t_20.obj new file mode 100644 index 000000000..773569ffe --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_t_20.obj @@ -0,0 +1,290 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_t_20.blend' +# www.blender.org +o Circle +v -0.000000 2.250000 -1.000000 +v -0.500000 2.250000 -0.866025 +v -0.866026 2.250000 -0.500000 +v -1.000000 2.250000 -0.000000 +v -0.866025 2.250000 0.500000 +v -0.500000 2.250000 0.866025 +v -0.000000 2.250000 1.000000 +v 0.500000 2.250000 0.866025 +v 0.866025 2.250000 0.500000 +v 1.000000 2.250000 0.000000 +v 0.866026 2.250000 -0.500000 +v 0.500001 2.250000 -0.866025 +v -0.375000 1.875000 -0.649519 +v 0.000000 1.875000 -0.750000 +v -0.649519 1.875000 -0.375000 +v -0.750000 1.875000 -0.000000 +v -0.649519 1.875000 0.375000 +v -0.375000 1.875000 0.649519 +v -0.000000 1.875000 0.750000 +v 0.375000 1.875000 0.649519 +v 0.649519 1.875000 0.375000 +v 0.750000 1.875000 0.000000 +v 0.649519 1.875000 -0.375000 +v 0.375001 1.875000 -0.649519 +v -0.000000 1.875000 -0.500000 +v -0.250000 1.875000 -0.433013 +v -0.433013 1.875000 -0.250000 +v -0.500000 1.875000 0.000000 +v -0.433013 1.875000 0.250000 +v -0.250000 1.875000 0.433013 +v -0.000000 1.875000 0.500000 +v 0.250000 1.875000 0.433013 +v 0.433013 1.875000 0.250000 +v 0.500000 1.875000 0.000000 +v 0.433013 1.875000 -0.250000 +v 0.250000 1.875000 -0.433013 +v -0.375000 1.275000 -0.649519 +v -0.000000 1.275000 -0.750000 +v -0.649519 1.275000 -0.375000 +v -0.750000 1.275000 -0.000000 +v -0.649519 1.275000 0.375000 +v -0.375000 1.275000 0.649519 +v -0.000000 1.275000 0.750000 +v 0.375000 1.275000 0.649519 +v 0.649519 1.275000 0.375000 +v 0.750000 1.275000 0.000000 +v 0.649519 1.275000 -0.375000 +v 0.375000 1.275000 -0.649519 +v -0.000000 0.000000 -1.000000 +v -0.500000 0.000000 -0.866025 +v -0.866026 0.000000 -0.500000 +v -1.000000 0.000000 -0.000000 +v -0.866025 0.000000 0.500000 +v -0.500000 0.000000 0.866025 +v -0.000000 0.000000 1.000000 +v 0.500000 0.000000 0.866025 +v 0.866025 0.000000 0.500000 +v 1.000000 0.000000 0.000000 +v 0.866026 0.000000 -0.500000 +v 0.500001 0.000000 -0.866025 +v -0.375000 0.000000 -0.649519 +v -0.000000 0.000000 -0.750000 +v -0.649519 0.000000 -0.375000 +v -0.750000 0.000000 -0.000000 +v -0.649519 0.000000 0.375000 +v -0.375000 0.000000 0.649519 +v -0.000000 0.000000 0.750000 +v 0.375000 0.000000 0.649519 +v 0.649519 0.000000 0.375000 +v 0.750000 0.000000 0.000000 +v 0.649519 0.000000 -0.375000 +v 0.375000 0.000000 -0.649519 +v -0.187500 1.500000 -0.324760 +v -0.000000 1.500000 -0.375000 +v -0.324760 1.500000 -0.187500 +v -0.375000 1.500000 0.000000 +v -0.324759 1.500000 0.187500 +v -0.187500 1.500000 0.324760 +v -0.000000 1.500000 0.375000 +v 0.187500 1.500000 0.324760 +v 0.324759 1.500000 0.187500 +v 0.375000 1.500000 0.000000 +v 0.324760 1.500000 -0.187500 +v 0.187500 1.500000 -0.324759 +vn 0.000000 1.000000 -0.000000 +vn 0.000000 -1.000000 -0.000000 +vn 0.594500 -0.541400 0.594500 +vn -0.594500 -0.541400 0.594500 +vn 0.217600 -0.541400 -0.812100 +vn -0.594500 -0.541400 -0.594500 +vn 0.812100 -0.541400 0.217600 +vn -0.217600 -0.541400 0.812100 +vn -0.812100 -0.541400 -0.217600 +vn 0.812100 -0.541400 -0.217600 +vn 0.217600 -0.541400 0.812100 +vn -0.812100 -0.541400 0.217600 +vn 0.594500 -0.541400 -0.594500 +vn -0.217600 -0.541400 -0.812100 +vn -0.949100 0.186100 0.254300 +vn -0.949100 0.186100 -0.254300 +vn 0.240100 0.373400 -0.896100 +vn -0.656000 0.373400 -0.656000 +vn 0.896100 0.373400 0.240100 +vn -0.240100 0.373400 0.896100 +vn -0.896100 0.373400 -0.240100 +vn 0.896100 0.373400 -0.240100 +vn 0.240100 0.373400 0.896100 +vn -0.896100 0.373400 0.240100 +vn 0.656000 0.373400 -0.656000 +vn -0.240100 0.373400 -0.896100 +vn 0.656000 0.373400 0.656000 +vn -0.656000 0.373400 0.656000 +vn -0.694800 0.186100 -0.694800 +vn -0.254300 0.186100 -0.949100 +vn -0.694800 0.186100 0.694800 +vn -0.254300 0.186100 0.949100 +vn 0.254300 0.186100 0.949100 +vn 0.694800 0.186100 0.694800 +vn 0.949100 0.186100 0.254300 +vn 0.949100 0.186100 -0.254300 +vn 0.694800 0.186100 -0.694800 +vn 0.254300 0.186100 -0.949100 +vn 0.938900 -0.234700 0.251600 +vn -0.938900 -0.234700 0.251600 +vn -0.251600 -0.234700 -0.938900 +vn 0.938900 -0.234700 -0.251600 +vn -0.687400 -0.234700 0.687300 +vn 0.251600 -0.234700 0.938900 +vn -0.687300 -0.234700 -0.687300 +vn 0.687300 -0.234700 -0.687300 +vn -0.251600 -0.234700 0.938900 +vn 0.687300 -0.234700 0.687400 +vn -0.938900 -0.234700 -0.251600 +vn 0.251600 -0.234700 -0.938900 +vn -0.687300 -0.234700 -0.687400 +vn 0.687400 -0.234700 0.687300 +s off +f 5//1 9//1 1//1 +f 23//2 19//2 15//2 +f 8//3 20//3 21//3 +f 5//4 17//4 18//4 +f 12//5 24//5 14//5 +f 2//6 13//6 15//6 +f 9//7 21//7 22//7 +f 7//8 6//8 18//8 +f 4//9 3//9 15//9 +f 10//10 22//10 23//10 +f 7//11 19//11 20//11 +f 4//12 16//12 17//12 +f 11//13 23//13 24//13 +f 1//14 14//14 13//14 +f 52//15 53//15 41//15 +f 51//16 52//16 40//16 +f 36//17 48//17 38//17 +f 26//18 37//18 39//18 +f 33//19 45//19 46//19 +f 30//20 42//20 43//20 +f 27//21 39//21 40//21 +f 34//22 46//22 47//22 +f 32//23 31//23 43//23 +f 28//24 40//24 41//24 +f 36//25 35//25 47//25 +f 25//26 38//26 37//26 +f 32//27 44//27 45//27 +f 29//28 41//28 42//28 +f 50//29 51//29 39//29 +f 49//30 50//30 37//30 +f 41//31 53//31 54//31 +f 54//32 55//32 43//32 +f 55//33 56//33 44//33 +f 56//34 57//34 45//34 +f 57//35 58//35 46//35 +f 58//36 59//36 47//36 +f 59//37 60//37 48//37 +f 48//38 60//38 49//38 +f 58//2 70//2 71//2 +f 64//39 63//39 75//39 +f 55//2 67//2 68//2 +f 53//2 52//2 64//2 +f 59//2 71//2 72//2 +f 49//2 62//2 61//2 +f 56//2 68//2 69//2 +f 53//2 65//2 66//2 +f 60//2 72//2 62//2 +f 50//2 61//2 63//2 +f 57//2 69//2 70//2 +f 54//2 66//2 67//2 +f 52//2 51//2 63//2 +f 83//2 79//2 75//2 +f 70//40 82//40 83//40 +f 67//41 79//41 80//41 +f 64//42 76//42 77//42 +f 71//43 83//43 84//43 +f 62//44 74//44 73//44 +f 69//45 68//45 80//45 +f 65//46 77//46 78//46 +f 62//47 72//47 84//47 +f 63//48 61//48 73//48 +f 69//49 81//49 82//49 +f 66//50 78//50 79//50 +f 1//1 2//1 3//1 +f 3//1 4//1 1//1 +f 5//1 6//1 9//1 +f 7//1 8//1 9//1 +f 9//1 10//1 11//1 +f 11//1 12//1 1//1 +f 1//1 4//1 5//1 +f 6//1 7//1 9//1 +f 9//1 11//1 1//1 +f 15//2 13//2 23//2 +f 14//2 24//2 23//2 +f 23//2 22//2 21//2 +f 21//2 20//2 19//2 +f 19//2 18//2 17//2 +f 17//2 16//2 19//2 +f 13//2 14//2 23//2 +f 23//2 21//2 19//2 +f 19//2 16//2 15//2 +f 9//3 8//3 21//3 +f 6//4 5//4 18//4 +f 1//5 12//5 14//5 +f 3//6 2//6 15//6 +f 10//7 9//7 22//7 +f 19//8 7//8 18//8 +f 16//9 4//9 15//9 +f 11//10 10//10 23//10 +f 8//11 7//11 20//11 +f 5//12 4//12 17//12 +f 12//13 11//13 24//13 +f 2//14 1//14 13//14 +f 40//15 52//15 41//15 +f 39//16 51//16 40//16 +f 25//17 36//17 38//17 +f 27//18 26//18 39//18 +f 34//19 33//19 46//19 +f 31//20 30//20 43//20 +f 28//21 27//21 40//21 +f 35//22 34//22 47//22 +f 44//23 32//23 43//23 +f 29//24 28//24 41//24 +f 48//25 36//25 47//25 +f 26//26 25//26 37//26 +f 33//27 32//27 45//27 +f 30//28 29//28 42//28 +f 37//29 50//29 39//29 +f 38//30 49//30 37//30 +f 42//31 41//31 54//31 +f 42//32 54//32 43//32 +f 43//33 55//33 44//33 +f 44//34 56//34 45//34 +f 45//35 57//35 46//35 +f 46//36 58//36 47//36 +f 47//37 59//37 48//37 +f 38//38 48//38 49//38 +f 59//2 58//2 71//2 +f 76//39 64//39 75//39 +f 56//2 55//2 68//2 +f 65//2 53//2 64//2 +f 60//2 59//2 72//2 +f 50//2 49//2 61//2 +f 57//2 56//2 69//2 +f 54//2 53//2 66//2 +f 49//2 60//2 62//2 +f 51//2 50//2 63//2 +f 58//2 57//2 70//2 +f 55//2 54//2 67//2 +f 64//2 52//2 63//2 +f 75//2 73//2 74//2 +f 74//2 84//2 83//2 +f 83//2 82//2 81//2 +f 81//2 80//2 83//2 +f 79//2 78//2 77//2 +f 77//2 76//2 79//2 +f 75//2 74//2 83//2 +f 83//2 80//2 79//2 +f 79//2 76//2 75//2 +f 71//40 70//40 83//40 +f 68//41 67//41 80//41 +f 65//42 64//42 77//42 +f 72//43 71//43 84//43 +f 61//44 62//44 73//44 +f 81//51 69//51 80//51 +f 66//46 65//46 78//46 +f 74//47 62//47 84//47 +f 75//52 63//52 73//52 +f 70//49 69//49 82//49 +f 67//50 66//50 79//50 diff --git a/assets/hbm/models/missile_parts/mp_w_10_he.obj b/assets/hbm/models/missile_parts/mp_w_10_he.obj new file mode 100644 index 000000000..0c08e079b --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_w_10_he.obj @@ -0,0 +1,157 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_w_10.blend' +# www.blender.org +o Circle +v -0.000000 1.000000 -0.375000 +v 0.000000 2.000000 0.000000 +v 0.187500 1.000000 -0.324760 +v 0.324760 1.000000 -0.187500 +v 0.375000 1.000000 0.000000 +v 0.324760 1.000000 0.187500 +v 0.187500 1.000000 0.324760 +v 0.000000 1.000000 0.375000 +v -0.187500 1.000000 0.324760 +v -0.324759 1.000000 0.187500 +v -0.375000 1.000000 0.000000 +v -0.324760 1.000000 -0.187500 +v -0.187500 1.000000 -0.324759 +v 0.000000 0.000000 -0.500000 +v 0.250000 0.000000 -0.433013 +v 0.433013 0.000000 -0.250000 +v 0.500000 0.000000 0.000000 +v 0.433013 0.000000 0.250000 +v 0.250000 0.000000 0.433013 +v 0.000000 0.000000 0.500000 +v -0.250000 0.000000 0.433013 +v -0.433013 0.000000 0.250000 +v -0.500000 0.000000 0.000000 +v -0.433013 0.000000 -0.250000 +v -0.250000 0.000000 -0.433013 +vt 0.515625 0.250000 +vt 0.484375 0.515625 +vt 0.468750 0.250000 +vt 0.421875 0.250000 +vt 0.390625 0.515625 +vt 0.375000 0.250000 +vt 0.562500 0.250000 +vt 0.531250 0.515625 +vt 0.062500 0.250000 +vt 0.015625 0.515625 +vt 0.000000 0.250000 +vt 0.093750 0.250000 +vt 0.062500 0.515625 +vt 0.140625 0.250000 +vt 0.109375 0.515625 +vt 0.187500 0.250000 +vt 0.156250 0.515625 +vt 0.234375 0.250000 +vt 0.203125 0.515625 +vt 0.281250 0.250000 +vt 0.250000 0.515625 +vt 0.328125 0.250000 +vt 0.296875 0.515625 +vt 0.437500 0.515625 +vt 0.343750 0.515625 +vt 0.500000 0.250000 +vt 0.500000 0.000000 +vt 0.687500 0.250000 +vt 0.687500 0.500000 +vt 0.796875 0.437500 +vt 0.125000 0.250000 +vt 0.125000 -0.000000 +vt 0.187500 0.000000 +vt 0.437500 0.250000 +vt 0.437500 -0.000000 +vt 0.000000 -0.000000 +vt 0.312500 0.250000 +vt 0.312500 0.000000 +vt 0.375000 -0.000000 +vt 0.625000 0.250000 +vt 0.625000 -0.000000 +vt 0.687500 -0.000000 +vt 0.250000 -0.000000 +vt 0.062500 -0.000000 +vt 0.562500 -0.000000 +vt 0.750000 0.000000 +vt 0.250000 0.250000 +vt 0.812500 0.375000 +vt 0.796875 0.312500 +vt 0.750000 0.265625 +vt 0.625000 0.265625 +vt 0.578125 0.312500 +vt 0.562500 0.375000 +vt 0.578125 0.437500 +vt 0.625000 0.484375 +vt 0.750000 0.484375 +vt 0.750000 0.250000 +vn -0.664800 0.340600 -0.664800 +vn 0.243300 0.340600 -0.908200 +vn -0.908200 0.340600 -0.243300 +vn -0.908200 0.340600 0.243300 +vn -0.664800 0.340600 0.664800 +vn -0.243300 0.340600 0.908200 +vn 0.243300 0.340600 0.908200 +vn 0.664800 0.340600 0.664800 +vn 0.908200 0.340600 0.243300 +vn 0.908200 0.340600 -0.243300 +vn -0.243300 0.340600 -0.908200 +vn 0.664800 0.340600 -0.664800 +vn 0.257000 0.119900 -0.959000 +vn 0.000000 -1.000000 0.000000 +vn -0.257000 0.119900 0.959000 +vn 0.702000 0.119900 -0.702000 +vn -0.959000 0.119900 0.257000 +vn 0.959000 0.119900 0.257000 +vn -0.702000 0.119900 -0.702000 +vn 0.257000 0.119900 0.959000 +vn -0.702000 0.119900 0.702000 +vn -0.257000 0.119900 -0.959000 +vn 0.959000 0.119900 -0.257000 +vn -0.959000 0.119900 -0.257000 +vn 0.702000 0.119900 0.702000 +s off +f 12/1/1 2/2/1 13/3/1 +f 1/4/2 2/5/2 3/6/2 +f 11/7/3 2/8/3 12/1/3 +f 10/9/4 2/10/4 11/11/4 +f 9/12/5 2/13/5 10/9/5 +f 8/14/6 2/15/6 9/12/6 +f 7/16/7 2/17/7 8/14/7 +f 6/18/8 2/19/8 7/16/8 +f 5/20/9 2/21/9 6/18/9 +f 4/22/10 2/23/10 5/20/10 +f 13/3/11 2/24/11 1/4/11 +f 3/6/12 2/25/12 4/22/12 +f 1/7/13 3/26/13 15/27/13 +f 17/28/14 23/29/14 25/30/14 +f 9/31/15 21/32/15 20/33/15 +f 4/34/16 16/35/16 15/27/16 +f 10/9/17 11/11/17 23/36/17 +f 6/37/18 18/38/18 17/39/18 +f 13/40/19 25/41/19 24/42/19 +f 8/16/20 20/33/20 19/43/20 +f 10/9/21 22/44/21 21/32/21 +f 1/7/22 14/45/22 25/41/22 +f 4/34/23 5/6/23 17/39/23 +f 12/28/24 24/42/24 23/46/24 +f 7/47/25 19/43/25 18/38/25 +f 14/45/13 1/7/13 15/27/13 +f 25/30/14 14/48/14 15/49/14 +f 15/49/14 16/50/14 17/28/14 +f 17/28/14 18/51/14 19/52/14 +f 19/52/14 20/53/14 21/54/14 +f 21/54/14 22/55/14 23/29/14 +f 23/29/14 24/56/14 25/30/14 +f 25/30/14 15/49/14 17/28/14 +f 17/28/14 19/52/14 21/54/14 +f 21/54/14 23/29/14 17/28/14 +f 8/16/15 9/31/15 20/33/15 +f 3/26/16 4/34/16 15/27/16 +f 22/44/17 10/9/17 23/36/17 +f 5/6/18 6/37/18 17/39/18 +f 12/28/19 13/40/19 24/42/19 +f 7/47/20 8/16/20 19/43/20 +f 9/31/21 10/9/21 21/32/21 +f 13/40/22 1/7/22 25/41/22 +f 16/35/23 4/34/23 17/39/23 +f 11/57/24 12/28/24 23/46/24 +f 6/37/25 7/47/25 18/38/25 diff --git a/assets/hbm/models/missile_parts/mp_w_15.obj b/assets/hbm/models/missile_parts/mp_w_15.obj new file mode 100644 index 000000000..5e4012046 --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_w_15.obj @@ -0,0 +1,148 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_w_15.blend' +# www.blender.org +o Circle +v -0.375000 0.000000 -0.649519 +v -0.000000 0.250000 -0.562500 +v 0.000000 3.000000 0.000000 +v 0.281250 0.250000 -0.487139 +v -0.649519 0.000000 -0.375000 +v 0.487139 0.250000 -0.281250 +v -0.750000 0.000000 0.000000 +v 0.562500 0.250000 0.000000 +v -0.649519 0.000000 0.375000 +v 0.487139 0.250000 0.281250 +v -0.375000 0.000000 0.649519 +v 0.281250 0.250000 0.487139 +v 0.000000 0.000000 0.750000 +v 0.000000 0.250000 0.562500 +v 0.375000 0.000000 0.649519 +v -0.281250 0.250000 0.487139 +v 0.649519 0.000000 0.375000 +v -0.487139 0.250000 0.281250 +v 0.750000 0.000000 0.000000 +v -0.562500 0.250000 0.000000 +v 0.649519 0.000000 -0.375000 +v -0.487139 0.250000 -0.281250 +v 0.375000 0.000000 -0.649519 +v -0.281250 0.250000 -0.487139 +v 0.000000 0.000000 -0.750000 +v -0.337500 0.125000 -0.584567 +v -0.000000 0.125000 -0.675000 +v -0.584567 0.125000 -0.337500 +v -0.675000 0.125000 0.000000 +v -0.584567 0.125000 0.337500 +v -0.337500 0.125000 0.584567 +v 0.000000 0.125000 0.675000 +v 0.337500 0.125000 0.584567 +v 0.584567 0.125000 0.337500 +v 0.675000 0.125000 0.000000 +v 0.584567 0.125000 -0.337500 +v 0.337500 0.125000 -0.584567 +vn -0.693700 0.193800 -0.693700 +vn 0.253900 0.193800 -0.947600 +vn -0.947600 0.193800 -0.253900 +vn -0.947600 0.193800 0.253900 +vn -0.693700 0.193800 0.693700 +vn -0.253900 0.193800 0.947600 +vn 0.253900 0.193800 0.947600 +vn 0.693700 0.193800 0.693700 +vn 0.947600 0.193800 0.253900 +vn 0.947600 0.193800 -0.253900 +vn 0.000000 -1.000000 0.000000 +vn -0.253900 0.193800 -0.947600 +vn 0.693700 0.193800 -0.693700 +vn 0.729000 0.656100 0.195300 +vn -0.223900 0.501400 -0.835700 +vn 0.835700 0.501400 0.223900 +vn -0.835700 0.501400 -0.223900 +vn 0.611800 0.501400 0.611800 +vn 0.223900 0.501400 -0.835700 +vn -0.611800 0.501400 -0.611800 +vn 0.835700 0.501400 -0.223900 +vn -0.835700 0.501400 0.223900 +vn -0.223900 0.501400 0.835700 +vn 0.611800 0.501400 -0.611800 +vn -0.611800 0.501400 0.611800 +vn 0.223900 0.501400 0.835700 +vn 0.729000 0.656100 -0.195300 +vn 0.533600 0.656100 -0.533600 +vn 0.195300 0.656100 -0.729000 +vn -0.195300 0.656100 -0.729000 +vn -0.533600 0.656100 -0.533600 +vn -0.729000 0.656100 -0.195300 +vn -0.729000 0.656100 0.195300 +vn -0.533600 0.656100 0.533600 +vn -0.195300 0.656100 0.729000 +vn 0.533600 0.656100 0.533600 +vn 0.195300 0.656100 0.729000 +s off +f 22//1 3//1 24//1 +f 2//2 3//2 4//2 +f 20//3 3//3 22//3 +f 18//4 3//4 20//4 +f 16//5 3//5 18//5 +f 14//6 3//6 16//6 +f 12//7 3//7 14//7 +f 10//8 3//8 12//8 +f 8//9 3//9 10//9 +f 6//10 3//10 8//10 +f 19//11 11//11 1//11 +f 24//12 3//12 2//12 +f 4//13 3//13 6//13 +f 34//14 35//14 8//14 +f 1//15 26//15 27//15 +f 19//16 35//16 34//16 +f 7//17 29//17 28//17 +f 17//18 34//18 33//18 +f 23//19 25//19 27//19 +f 5//20 28//20 26//20 +f 21//21 36//21 35//21 +f 9//22 30//22 29//22 +f 13//23 32//23 31//23 +f 21//24 23//24 37//24 +f 11//25 31//25 30//25 +f 13//26 15//26 33//26 +f 35//27 36//27 6//27 +f 6//28 36//28 37//28 +f 37//29 27//29 2//29 +f 27//30 26//30 24//30 +f 26//31 28//31 22//31 +f 22//32 28//32 29//32 +f 20//33 29//33 30//33 +f 18//34 30//34 31//34 +f 31//35 32//35 14//35 +f 33//36 34//36 10//36 +f 14//37 32//37 33//37 +f 1//11 25//11 19//11 +f 23//11 21//11 19//11 +f 19//11 17//11 15//11 +f 15//11 13//11 19//11 +f 11//11 9//11 7//11 +f 7//11 5//11 11//11 +f 25//11 23//11 19//11 +f 19//11 13//11 11//11 +f 11//11 5//11 1//11 +f 10//14 34//14 8//14 +f 25//15 1//15 27//15 +f 17//16 19//16 34//16 +f 5//17 7//17 28//17 +f 15//18 17//18 33//18 +f 37//19 23//19 27//19 +f 1//20 5//20 26//20 +f 19//21 21//21 35//21 +f 7//22 9//22 29//22 +f 11//23 13//23 31//23 +f 36//24 21//24 37//24 +f 9//25 11//25 30//25 +f 32//26 13//26 33//26 +f 8//27 35//27 6//27 +f 4//28 6//28 37//28 +f 4//29 37//29 2//29 +f 2//30 27//30 24//30 +f 24//31 26//31 22//31 +f 20//32 22//32 29//32 +f 18//33 20//33 30//33 +f 16//34 18//34 31//34 +f 16//35 31//35 14//35 +f 12//36 33//36 10//36 +f 12//37 14//37 33//37 diff --git a/assets/hbm/models/missile_parts/mp_w_20.obj b/assets/hbm/models/missile_parts/mp_w_20.obj new file mode 100644 index 000000000..f02aedb17 --- /dev/null +++ b/assets/hbm/models/missile_parts/mp_w_20.obj @@ -0,0 +1,100 @@ +# Blender v2.76 (sub 0) OBJ File: 'mp_w_20.blend' +# www.blender.org +o Circle +v -0.000000 1.500000 -0.800000 +v 0.000000 3.000000 0.000000 +v 0.400000 1.500000 -0.692820 +v 0.692820 1.500000 -0.400000 +v 0.800000 1.500000 0.000000 +v 0.692820 1.500000 0.400000 +v 0.400000 1.500000 0.692820 +v 0.000000 1.500000 0.800000 +v -0.400000 1.500000 0.692820 +v -0.692820 1.500000 0.400000 +v -0.800000 1.500000 0.000000 +v -0.692821 1.500000 -0.400000 +v -0.400000 1.500000 -0.692820 +v -0.000000 0.000000 -1.000000 +v 0.500000 0.000000 -0.866025 +v 0.866025 0.000000 -0.500000 +v 1.000000 0.000000 0.000000 +v 0.866025 0.000000 0.500000 +v 0.500000 0.000000 0.866025 +v 0.000000 0.000000 1.000000 +v -0.500000 0.000000 0.866026 +v -0.866025 0.000000 0.500000 +v -1.000000 0.000000 0.000000 +v -0.866026 0.000000 -0.499999 +v -0.500001 0.000000 -0.866025 +vn -0.628600 0.458000 -0.628600 +vn 0.230100 0.458000 -0.858700 +vn -0.858700 0.458000 -0.230100 +vn -0.858700 0.458000 0.230100 +vn -0.628600 0.458000 0.628600 +vn -0.230100 0.458000 0.858700 +vn 0.230100 0.458000 0.858700 +vn 0.628600 0.458000 0.628600 +vn 0.858700 0.458000 0.230100 +vn 0.858700 0.458000 -0.230100 +vn -0.230100 0.458000 -0.858700 +vn 0.628600 0.458000 -0.628600 +vn 0.256700 0.127700 -0.958000 +vn 0.000000 -1.000000 0.000000 +vn -0.256700 0.127700 0.958000 +vn 0.701300 0.127700 -0.701300 +vn -0.958000 0.127700 0.256700 +vn 0.958000 0.127700 0.256700 +vn -0.701300 0.127700 -0.701300 +vn 0.256700 0.127700 0.958000 +vn -0.701300 0.127700 0.701300 +vn -0.256700 0.127700 -0.958000 +vn 0.958000 0.127700 -0.256700 +vn -0.958000 0.127700 -0.256700 +vn 0.701300 0.127700 0.701300 +s off +f 12//1 2//1 13//1 +f 1//2 2//2 3//2 +f 11//3 2//3 12//3 +f 10//4 2//4 11//4 +f 9//5 2//5 10//5 +f 8//6 2//6 9//6 +f 7//7 2//7 8//7 +f 6//8 2//8 7//8 +f 5//9 2//9 6//9 +f 4//10 2//10 5//10 +f 13//11 2//11 1//11 +f 3//12 2//12 4//12 +f 1//13 3//13 15//13 +f 17//14 23//14 25//14 +f 9//15 21//15 20//15 +f 4//16 16//16 15//16 +f 11//17 23//17 22//17 +f 6//18 18//18 17//18 +f 13//19 25//19 24//19 +f 8//20 20//20 19//20 +f 10//21 22//21 21//21 +f 1//22 14//22 25//22 +f 5//23 17//23 16//23 +f 11//24 12//24 24//24 +f 7//25 19//25 18//25 +f 14//13 1//13 15//13 +f 25//14 14//14 15//14 +f 15//14 16//14 17//14 +f 17//14 18//14 19//14 +f 19//14 20//14 21//14 +f 21//14 22//14 23//14 +f 23//14 24//14 25//14 +f 25//14 15//14 17//14 +f 17//14 19//14 21//14 +f 21//14 23//14 17//14 +f 8//15 9//15 20//15 +f 3//16 4//16 15//16 +f 10//17 11//17 22//17 +f 5//18 6//18 17//18 +f 12//19 13//19 24//19 +f 7//20 8//20 19//20 +f 9//21 10//21 21//21 +f 13//22 1//22 25//22 +f 4//23 5//23 16//23 +f 23//24 11//24 24//24 +f 6//25 7//25 18//25 diff --git a/assets/hbm/textures/gui/gui_missile_assembly.png b/assets/hbm/textures/gui/gui_missile_assembly.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a3b851c65d1c59cf0cbeb882f6b7412e99578c GIT binary patch literal 2680 zcmd5;cU03^7XAUjM4F7CR6#7vpe~?PLxw~_5u^zcKp>!?7)XeeM8p6=MzCN73(e@z zloCn=gwWK1SSSio0tQ?oQW6M(04AhNJUg?_o|!*p&;GObpLfrF=Y6l-@4N3_^mKPp zRnk=g06^9GfTI@x$jMwe0J2Ip1jal(Asaxkdz}wMWJZL9T>tH9uof8*kaOX zOY*XjSWsfvYt||rJkM$s(s5ocCd{+EkI#6S;5EJCmE~|WI8ZF5kHHS z@zPm`$^>|;ATNnwhm#~HK_v+yI#+U2A{4Ee2qsF!gDkTcvIp~4p&ypHyZPMdoPsi0Tbcw0CoE z#ZtIrf?Gr<#~CnegN}fHGT9b6O=OM9P~+S-(z>{e+m zZZ7P?rp@IG zWToj*BTrK=`9f`~&m~n<7To$56$Hf9yG#ec)UZu1cUHJ%)o!iIxGpe%5rJb(Y`-Tc zi?Yx(GXF840rZ3N^^XkdET?6f&|W#xsrl-0_R+9wJ~nAJye6WcW@%^6lQRpS&sSdV zB3qqhj3ZFwYDfwiz3AS?xfrx`M#3u9Wy3bt<)gykbaj>qsv8rDj3p3|3{iVeS=1O^ z{bDs8kUxa9gzmc@vL zi@j7LW5TDN`+RF#TpS9-DR_do-H#bY2-F`P@p!==&T!*;>w8H2cq=|EouAQ{aEhj9 z1(grWc_UZ1!p8?ieZAX&SEy}l;XK0+DYbCxcx$XaZ&=^3{>>+AhkUV>ly9j() zlUSF55B{MOdM)v;3v{beK>IS*gPGo2SS>a{VC3(2P@3PDFic8SNdn?MH8r&a_yuTg zbV3633wL38XI-+PDVtBq-DKTXvJoSWft zaS{5S5%%N}eEbz;l#)=m$ac$6aA{6he1*hEep>r)f&OXvH|_qPOi>0BW9`W$zLh9! z#E!PK{#9)<0Yi81X1wzwsm8AUJ5TbjJNeDv6lS^H<)p9Azy9)h=yV)~T3sZlNSdLnQh0#D;ATU|4S4Mme;0H^psBaZ zRBwke0pt~~g1=-ZzrnzuILiwPg}O|McDp)#jq~vw$Yc9~znkT6Y2rW%yC>OI_TNCh zdH(}kt)2W+ZN_&eZB6BVCtf+>yEl}!>5K>N(Y_&Rp}ryb{lWB)eBl$&U(oQ|0so3e z)a_N!g39N@p>=m(R&Sp>6)68({dRS+7Kdy5db?0%|1Zqme(9R>(=ZDXL-sq@L)A|{ zm;YdXNlJQMks&|aCsMe}Y=|v6-FJ<5%{il@n?=9&<58V_M!wzY+YTaL8tpV!ZQf}k zp|%@itpQ|o7orsXcC1g$yOF-Dj)w@?F17U2^7rQd7>n#@&wpQ%_Qk@-;VQTz1ZzR! z2phOMyCNyXRD6SV&)D~RzIUostqinNl`Tl7Za#QeGLi$`?B`Q3lWha15Vb8gjHtsk zGF}!PBsHS3{tA{m537I5tz+|P(-`Jf$R#6rZ|c%P(#PuJJFD6|C=vYPKCTEmozql` z%;foLhDDevA|%d%BAB$g(mE0(h@7qIh}4rWJE2+@v5uYzw|+Ma#yl$mUchgxpvG=n zooEqEPit{=t$cVp0+;=c&-X2tMq6g1Kjk*{bb{)pdUX-~hZ}}0gWjFrlTFmdf7_Y2IHK9Sz9`t0_ z%yy0t)_dwZNJ0&d-}%9upmhRZC(Pe&mW(b{zv`ZMXwj%Vc%_u=q;9@WPaH(5IsLZw zZP?K&=PRX^v~JM+9$8a#vsPq^$bOLXGdE{%%l=%&HvCm^-SJR4^FkxtikAnIgCd`X q!4idWyFvJA?26Pv)-V2t_07T8HV+t_p4XfyOa-y85}Sb4q9e0O3k0egFUf literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_c_2.png b/assets/hbm/textures/items/mp_c_2.png new file mode 100644 index 0000000000000000000000000000000000000000..e3990147e29132e6313a59b039ac5303d3f5099e GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfFgyD<{M3GTb8VTpLWmMk>S7@ zr`qKAZSN)>owR~Mn=|am^1^!yd<}Z}&+^XWyEf}?`SER~+b0}7CjYuw=Cq04uX?|; R9ze?&JYD@<);T3K0RXY~KeYe= literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_f_10.png b/assets/hbm/textures/items/mp_f_10.png new file mode 100644 index 0000000000000000000000000000000000000000..28ca9cd4382ab449f916d368108fea40add887c7 GIT binary patch literal 118 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf^=Dpo+E>I(b Mr>mdKI;Vst01T)k=l}o! literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_f_15.png b/assets/hbm/textures/items/mp_f_15.png new file mode 100644 index 0000000000000000000000000000000000000000..c7ec9a4c09580c2c093391bcce1d6e768d3e7e0e GIT binary patch literal 135 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfJv}`US09@&v|F@QiOFzD7VKbPHh5^%5MhvYAi<#F e(Gr^v3=E2UxWtndO)mkO#Ng@b=d#Wzp$PysUns}` literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_f_20.png b/assets/hbm/textures/items/mp_f_20.png new file mode 100644 index 0000000000000000000000000000000000000000..ceaaf586c4ccba6c7fc5af25a16d40032451293d GIT binary patch literal 161 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf5Nd4aTu|AVaiAlQldm%7(c%Uv a28NW~qTe<@dkZv#fx*+&&t;ucLK6UE*C*lt literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_s_15.png b/assets/hbm/textures/items/mp_s_15.png new file mode 100644 index 0000000000000000000000000000000000000000..86f5980dfab7a86103c636cd2d6a049b45b421ca GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf3{(GBwg=n;|*>{w(7a*H=HS^!Rp2cpvkV m6_5W4{hA#&OVXTS1H;|~@o#EzIj4c5BhybY@fnn#SPi>gTe~DWM4fEAA@J literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_t_10.png b/assets/hbm/textures/items/mp_t_10.png new file mode 100644 index 0000000000000000000000000000000000000000..29c07e98d31bb05a3e8df001df2b531ad2b6836b GIT binary patch literal 121 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf=#&lo>+8Ch(9PYi+pIn#lgUkAH>VFgT=iJ PsF%Uh)z4*}Q$iB}by*)+ literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_t_15.png b/assets/hbm/textures/items/mp_t_15.png new file mode 100644 index 0000000000000000000000000000000000000000..60462a6a6d718304833b97b8efeba00966b72eea GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfiKXIZX)b^;J0?WT-!;T8^1A7`z|KtGzpC=aG65;}~ k9VW$$%*<1h5;+(cPCgdol-{y+8PGrmPgg&ebxsLQ0C=G)!~g&Q literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_t_20.png b/assets/hbm/textures/items/mp_t_20.png new file mode 100644 index 0000000000000000000000000000000000000000..ad5a1ffb3b32f68ea20ec703f13cfdb0ae31123c GIT binary patch literal 168 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf${5gUSyJybVu!>t$)>hCzYu)X+GEzvi$r1FTJmyGo0ko5<1O1=MK;+ N22WQ%mvv4FO#u7;IsyOy literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/mp_w_10.png b/assets/hbm/textures/items/mp_w_10.png new file mode 100644 index 0000000000000000000000000000000000000000..4b678bb047331bce125ba59d7de2e393d911ca27 GIT binary patch literal 126 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf9*e6%Z{r}HjXsfKO?6L%IEGmC zCMQU|d0;Q{n8jzxEr*SaJrz&>{r}HjXsfKO?6=jVnDI{84kwv)3p^DT-Qe3glToWp saOswQw=WwU*hSct?v*$+-C|^62#%2AO#V=33N)6%)78&qol`;+0FPTOo&W#< literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/missile_parts/mp_f_10_kerosene.png b/assets/hbm/textures/models/missile_parts/mp_f_10_kerosene.png new file mode 100644 index 0000000000000000000000000000000000000000..4ad58a4fb533d629348aaa2a2a5b62129f876991 GIT binary patch literal 846 zcmV-U1F`&xP)m597=2VxNC2HqYGFhSh`nRGF)|%eJLU(l=9jSY16Yx` z2{9lBq#||cUNKmaSOQ(D0>MJ+4amNv4ZTYU=Zo=^B9st6`Fni+Vn2sW^}70w6l3-@ z%N*1GBB_p~6l&qUDH4(ExCrA4!>ReBAdms;*Y(kaUvZq8KMn!{B%$zE z9H-`wgR`#zN&wLv5Dg`O=nja65--CTEvhqf2ublo<)1yxj^gD*z;)cf7il|>i_Gnh+f=*44?iD{a)q^|luRo^UEy`ZbW3$-+08GW6?orCWC`6pKZaN+n!fUGdM$%S%)$6_m?m zwC-Agwy75Y08eexG?CBev0AOrXf$9L1`NYMv)ROIwL(6hhiRIDHc|)x>{EX<8lm6s za}ncHk-wGJVvcn!+bu+d_KowvA}dXg<%-b zb)6SSKq3JEK-YDi_8;MS9z4$jr8IC|8Uakx1f>+7=i%n&2G7sWAcTMrf?~0VdcBVA zb_+@=uLFQ2k3j%vciXTn8)1lme51ZGdO z44VzI0K=xj47;}-q?!r?zeND{lN^7*3@q*aS(Ex9;0FtA_qGc?{P!?OB|scVC4lk+ zlpmn{0ObcLKS22b$`4R}fbs*B9}v?INaOBsqJBVHcZZMh12QuGd)&Vm3WM?k@YxUe Y1tENzV2UimMgRZ+07*qoM6N<$f`Bq}Hvj+t literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/missile_parts/mp_s_10_flat.png b/assets/hbm/textures/models/missile_parts/mp_s_10_flat.png new file mode 100644 index 0000000000000000000000000000000000000000..59929c3a322f51f7d144ae037e9688dfe5444b8b GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmSQK*5Dp-y;YjHK@?U$pIEG|2 zzMZj=x7k3z^}OIB@7I!t#FiAEth%SH+C4#1XQG-c@5*%yCoPZ5Y}EN1uJmz2SH5|M#4m`v*S#v>wt8SKqs{`8W&6L+j$OQW zo2U7^{a@c*6BNAoWsceP{$G2($CqzZJ2}sR!_oWeWdB^oYf(x{v*I_e@@Ha|5ION> zAwx5h;CvP?1C0qUof+9!mFzlyaet_c&8|8S+_`zVpwHj>lo{NjY{d&NB`_{M7}Ieu zQsdEN2cSx$T8#q>9FC|rGVySw{0eArZ0zt~^ovQJljG#k3lk=s2YQ>q)78&qol`;+ E0NyWn#Q*>R literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/missile_parts/mp_t_10_kerosene.png b/assets/hbm/textures/models/missile_parts/mp_t_10_kerosene.png new file mode 100644 index 0000000000000000000000000000000000000000..1e0d970144b58d6ecd63edbad5c0a5f79d68b7bc GIT binary patch literal 772 zcmV+f1N;1mP)+7Y)`x_e@|4GX4;Fn6JyfyrY z;;+EkK+br3dwVN&3cbF*dP^OnhlhtNW#IYw*@Gn#S-D(ZDFaay+2p!VDN(Q22bY(Z z0Nmf-15l)PDF^~~cXt5@f`Fp6y+)%k`1tq$U~6j&fFiXgin)`MlbJE`^z<~d0Ib*R zGoQb?xp7)Rj!ZUB{E%rT=7}HT(uAF8QSn2@O^l1zT9c+J07@x3ozBSfu1t6^DSp~N zJZ;=p@mgy(H#fPvyF&Ct~7XarQNnrYS-Qf*|1G;em3wOt06Y*X!~2 z_QvDmBT`C)5H`47;Pi7$2w}I)I9ZmFWf{g8m#=hZKq-YWhAhiCJv}9gBH}nEj$?Lq zb~ryjr{C{mjBy$V&SId`>7cdd;NZXpY`5D*N@@G5)hcluPwfBkn~@|*7CxCqR$!52 zHfv0prdIsz?XBH5tyasPPUHLkyK9|gu6mp&vPz|bQi^uFjS#{nv$M0aZxh)xv5T%k z?xln?1CUQK=hOh?Q%?URh`rm1yWnhL79&ak00001BCpEP)U9o5eP_ovHpv9dDg~3a*a}Ko7&5v@3REL zdwK8u?!9;K1tdw5BuSDaNs=Tremj0lj%g-&#?EA$?k15)_@D83oKz}BZ*MPWPMu!0?s|nT09aY` zhGAfuCe><{p`jskT}Rh-hKGl#R;!q%iD4MO)Y+)e?g9C1j+vPm;_R5&*qr8f2XB(LOBBfT-Qa@G@{Wc#bS|kI!(D;rd%$wu&}`F>@2#jqiLGI zIkqCS0RU*4=1=?Id7g*oc?cmk)kbIoFbo4B1fJ)S$z-rB3){A_ZJT5=$-uw>wOS1! zguf58B6P1oSlQ6>*&L}<%HQyc#Ui?{lgVWK?`+%l*MBRo!cfkD#tF}LU4NicQ&ax5 zFBA&?+o7@k8+A4+bOAI!!3UEMDV0jtwoRo{!Eqes=jU-82ivwOl}i3W==Zwo6}lzR z7{q#x!VRsS0wKf!Krok~P~QgOKfDeHEp$sDXrX%x1Wg9e?hdrue;>e>{2y@W$Y*x? zzpSvh&_PUBnSHL}D&IMHxXQkm!pGW5nRhQto_-AUA8}xd0yutRk)u5xdv`>z<}_Z; zEphS~+_e>PeK=~Hs_C15l*$?z>3#!$%1s6c1 z&ZnmdZdJZ=aC>+TpTPy7E~74~JeugjUJk0&waL3cyF1Wsk)Fh^cK4yJegN*UQ%QkU R+ROj|002ovPDHLkV1h$~tiu2R literal 0 HcmV?d00001 diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index c6afd8646..ed7ef936d 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -512,6 +512,9 @@ public class ModBlocks { public static Block launch_pad; public static final int guiID_launch_pad = 19; + public static Block machine_missile_assembly; + public static final int guiID_missile_assembly = 83; + public static Block machine_radar; public static final int guiID_radar = 59; @@ -1010,6 +1013,8 @@ public class ModBlocks { launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.missileTab).setBlockTextureName(RefStrings.MODID + ":launch_pad"); 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"); + sat_mapper = new DecoBlock(Material.iron).setBlockName("sat_mapper").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_mapper"); sat_radar = new DecoBlock(Material.iron).setBlockName("sat_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_radar"); sat_scanner = new DecoBlock(Material.iron).setBlockName("sat_scanner").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":sat_scanner"); @@ -1583,6 +1588,7 @@ public class ModBlocks { GameRegistry.registerBlock(dfc_receiver, dfc_receiver.getUnlocalizedName()); //Missile Blocks + GameRegistry.registerBlock(machine_missile_assembly, machine_missile_assembly.getUnlocalizedName()); GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); GameRegistry.registerBlock(sat_dock, sat_dock.getUnlocalizedName()); GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); diff --git a/com/hbm/blocks/machine/MachineMissileAssembly.java b/com/hbm/blocks/machine/MachineMissileAssembly.java new file mode 100644 index 000000000..c2e322007 --- /dev/null +++ b/com/hbm/blocks/machine/MachineMissileAssembly.java @@ -0,0 +1,59 @@ +package com.hbm.blocks.machine; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.bomb.TileEntityLaunchPad; +import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; + +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 MachineMissileAssembly extends BlockContainer { + + public MachineMissileAssembly(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityMachineMissileAssembly(); + } + + @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()) + { + TileEntityMachineMissileAssembly entity = (TileEntityMachineMissileAssembly) world.getTileEntity(x, y, z); + if(entity != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_missile_assembly, world, x, y, z); + } + return true; + } else { + return false; + } + } + +} diff --git a/com/hbm/handler/GUIHandler.java b/com/hbm/handler/GUIHandler.java index 1bca7df3f..6080893f2 100644 --- a/com/hbm/handler/GUIHandler.java +++ b/com/hbm/handler/GUIHandler.java @@ -742,6 +742,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_missile_assembly: + { + if(entity instanceof TileEntityMachineMissileAssembly) + { + return new ContainerMachineMissileAssembly(player.inventory, (TileEntityMachineMissileAssembly) entity); + } + return null; + } } } else { //NON-TE CONTAINERS @@ -1482,6 +1491,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_missile_assembly: + { + if(entity instanceof TileEntityMachineMissileAssembly) + { + return new GUIMachineMissileAssembly(player.inventory, (TileEntityMachineMissileAssembly) entity); + } + return null; + } } } else { //CLIENTONLY GUIS diff --git a/com/hbm/inventory/container/ContainerMachineMissileAssembly.java b/com/hbm/inventory/container/ContainerMachineMissileAssembly.java new file mode 100644 index 000000000..e6214f20a --- /dev/null +++ b/com/hbm/inventory/container/ContainerMachineMissileAssembly.java @@ -0,0 +1,80 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotMachineOutput; +import com.hbm.tileentity.machine.TileEntityMachineAssembler; +import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.ICrafting; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerMachineMissileAssembly extends Container { + + private TileEntityMachineMissileAssembly nukeBoy; + + public ContainerMachineMissileAssembly(InventoryPlayer invPlayer, TileEntityMachineMissileAssembly tedf) { + + nukeBoy = tedf; + + this.addSlotToContainer(new Slot(tedf, 0, 8, 36)); + this.addSlotToContainer(new Slot(tedf, 1, 26, 36)); + this.addSlotToContainer(new Slot(tedf, 2, 44, 36)); + this.addSlotToContainer(new Slot(tedf, 3, 62, 36)); + this.addSlotToContainer(new Slot(tedf, 4, 80, 36)); + this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 5, 152, 36)); + + 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 <= 5) { + if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) + { + return null; + } + } + else if (!this.mergeItemStack(var5, 0, 5, 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/GUIMachineDiesel.java b/com/hbm/inventory/gui/GUIMachineDiesel.java index 17aa325d7..52639ad36 100644 --- a/com/hbm/inventory/gui/GUIMachineDiesel.java +++ b/com/hbm/inventory/gui/GUIMachineDiesel.java @@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineDiesel; import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; import com.hbm.tileentity.machine.TileEntityMachineDiesel; import net.minecraft.client.Minecraft; @@ -86,5 +87,17 @@ public class GUIMachineDiesel extends GuiInfoContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(diFurnace.tank.getSheet()); diFurnace.tank.renderTank(this, guiLeft + 80, guiTop + 69, diFurnace.tank.getTankType().textureX() * FluidTank.x, diFurnace.tank.getTankType().textureY() * FluidTank.y, 16, 52); + + /*Minecraft.getMinecraft().getTextureManager().bindTexture(ResourceManager.missileNuclear_tex); + GL11.glPushMatrix(); + GL11.glTranslatef(guiLeft + 88, guiTop + 110, 50); + GL11.glRotatef(System.currentTimeMillis() / 10 % 360, 0, -1, 0); + GL11.glTranslatef(60, 0, 0); + GL11.glScalef(16, 16, 16); + GL11.glRotatef(90, 1, 0, 0); + GL11.glRotatef(-90, 0, 0, 1); + GL11.glScalef(-1, -1, -1); + ResourceManager.missileNuclear.renderAll(); + GL11.glPopMatrix();*/ } } diff --git a/com/hbm/inventory/gui/GUIMachineMissileAssembly.java b/com/hbm/inventory/gui/GUIMachineMissileAssembly.java new file mode 100644 index 000000000..a6623fdbd --- /dev/null +++ b/com/hbm/inventory/gui/GUIMachineMissileAssembly.java @@ -0,0 +1,88 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerMachineAssembler; +import com.hbm.inventory.container.ContainerMachineMissileAssembly; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.misc.MissileMultipart; +import com.hbm.render.misc.MissilePart; +import com.hbm.render.misc.MissilePronter; +import com.hbm.tileentity.machine.TileEntityMachineAssembler; +import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineMissileAssembly extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_missile_assembly.png"); + private TileEntityMachineMissileAssembly assembler; + + public GUIMachineMissileAssembly(InventoryPlayer invPlayer, TileEntityMachineMissileAssembly tedf) { + super(new ContainerMachineMissileAssembly(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); + } + + @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 = new MissileMultipart(); + + if(assembler.getStackInSlot(1) != null) + missile.warhead = MissilePart.getPart(assembler.getStackInSlot(1).getItem()); + + if(assembler.getStackInSlot(2) != null) + missile.fuselage = MissilePart.getPart(assembler.getStackInSlot(2).getItem()); + + if(assembler.getStackInSlot(3) != null) + missile.fins = MissilePart.getPart(assembler.getStackInSlot(3).getItem()); + + if(assembler.getStackInSlot(4) != null) + missile.thruster = MissilePart.getPart(assembler.getStackInSlot(4).getItem()); + + GL11.glTranslatef(guiLeft + 88, guiTop + 98, 100); + GL11.glRotatef(System.currentTimeMillis() / 10 % 360, 0, -1, 0); + + double size = 8 * 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, 1, 0, 0); + GL11.glRotatef(-90, 0, 0, 1); + 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 8b3f846e8..191adf613 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -822,6 +822,22 @@ public class ModItems { public static Item missile_schrabidium; public static Item missile_emp; + public static Item mp_t_10; + public static Item mp_t_15; + public static Item mp_t_20; + public static Item mp_s_10; + public static Item mp_s_15; + public static Item mp_s_20; + public static Item mp_f_10; + public static Item mp_f_15; + public static Item mp_f_20; + public static Item mp_w_10; + public static Item mp_w_15; + public static Item mp_w_20; + public static Item mp_c_1; + public static Item mp_c_2; + public static Item mp_c_3; + public static Item missile_carrier; public static Item sat_mapper; public static Item sat_scanner; @@ -2313,6 +2329,22 @@ public class ModItems { sat_miner = new ItemSatChip().setUnlocalizedName("sat_miner").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_miner"); sat_chip = new ItemSatChip().setUnlocalizedName("sat_chip").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_chip"); sat_interface = new ItemSatInterface().setUnlocalizedName("sat_interface").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":sat_interface"); + + mp_t_10 = new Item().setUnlocalizedName("mp_t_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_t_10"); + mp_t_15 = new Item().setUnlocalizedName("mp_t_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_t_15"); + mp_t_20 = new Item().setUnlocalizedName("mp_t_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_t_20"); + mp_s_10 = new Item().setUnlocalizedName("mp_s_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_s_10"); + mp_s_15 = new Item().setUnlocalizedName("mp_s_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_s_15"); + mp_s_20 = new Item().setUnlocalizedName("mp_s_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_s_20"); + mp_f_10 = new Item().setUnlocalizedName("mp_f_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_f_10"); + mp_f_15 = new Item().setUnlocalizedName("mp_f_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_f_15"); + mp_f_20 = new Item().setUnlocalizedName("mp_f_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_f_20"); + mp_w_10 = new Item().setUnlocalizedName("mp_w_10").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_w_10"); + mp_w_15 = new Item().setUnlocalizedName("mp_w_15").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_w_15"); + mp_w_20 = new Item().setUnlocalizedName("mp_w_20").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_w_20"); + mp_c_1 = new Item().setUnlocalizedName("mp_c_1").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_1"); + mp_c_2 = new Item().setUnlocalizedName("mp_c_2").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_2"); + mp_c_3 = new Item().setUnlocalizedName("mp_c_3").setMaxStackSize(1).setCreativeTab(MainRegistry.missileTab).setTextureName(RefStrings.MODID + ":mp_c_3"); 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"); @@ -3985,6 +4017,23 @@ public class ModItems { GameRegistry.registerItem(missile_emp, missile_emp.getUnlocalizedName()); GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); + //Missile Parts + GameRegistry.registerItem(mp_t_10, mp_t_10.getUnlocalizedName()); + GameRegistry.registerItem(mp_t_15, mp_t_15.getUnlocalizedName()); + GameRegistry.registerItem(mp_t_20, mp_t_20.getUnlocalizedName()); + GameRegistry.registerItem(mp_s_10, mp_s_10.getUnlocalizedName()); + GameRegistry.registerItem(mp_s_15, mp_s_15.getUnlocalizedName()); + GameRegistry.registerItem(mp_s_20, mp_s_20.getUnlocalizedName()); + GameRegistry.registerItem(mp_f_10, mp_f_10.getUnlocalizedName()); + GameRegistry.registerItem(mp_f_15, mp_f_15.getUnlocalizedName()); + GameRegistry.registerItem(mp_f_20, mp_f_20.getUnlocalizedName()); + GameRegistry.registerItem(mp_w_10, mp_w_10.getUnlocalizedName()); + GameRegistry.registerItem(mp_w_15, mp_w_15.getUnlocalizedName()); + GameRegistry.registerItem(mp_w_20, mp_w_20.getUnlocalizedName()); + GameRegistry.registerItem(mp_c_1, mp_c_1.getUnlocalizedName()); + GameRegistry.registerItem(mp_c_2, mp_c_2.getUnlocalizedName()); + GameRegistry.registerItem(mp_c_3, mp_c_3.getUnlocalizedName()); + //Satellites GameRegistry.registerItem(sat_mapper, sat_mapper.getUnlocalizedName()); GameRegistry.registerItem(sat_scanner, sat_scanner.getUnlocalizedName()); diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 54f7e46c0..9a12f1d89 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -24,6 +24,7 @@ import com.hbm.items.ModItems; import com.hbm.render.block.*; import com.hbm.render.entity.*; import com.hbm.render.item.*; +import com.hbm.render.misc.MissilePart; import com.hbm.render.tileentity.*; import com.hbm.render.util.HmfModelLoader; import com.hbm.tileentity.bomb.*; @@ -309,6 +310,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityYellowBarrel.class, new RenderYellowBarrel()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPadTier1()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineMissileAssembly.class, new RenderMissileAssembly()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCable.class, new RenderCable()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityOilDuct.class, new RenderOilDuct()); @@ -428,6 +430,14 @@ public class ClientProxy extends ServerProxy RenderingRegistry.addNewArmourRendererPrefix("9"); } + @Override + public void registerMissileItems() { + + for(MissilePart part : MissilePart.parts) { + MinecraftForgeClient.registerItemRenderer(part.part, new ItemRenderMissilePart(part)); + } + } + @Override public void registerTileEntitySpecialRenderer() { diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 1d8d9d245..586a4e4d7 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -64,6 +64,8 @@ import com.hbm.lib.Library; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; import com.hbm.potion.HbmPotion; +import com.hbm.render.misc.MissilePart; +import com.hbm.render.misc.MissilePart.PartType; import com.hbm.render.util.HmfModelLoader; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.conductor.*; @@ -525,6 +527,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityMachineArcFurnace.class, "tileentity_arc_furnace"); GameRegistry.registerTileEntity(TileEntityMachineAmgen.class, "tileentity_amgen"); GameRegistry.registerTileEntity(TileEntityGeysir.class, "tileentity_geysir"); + GameRegistry.registerTileEntity(TileEntityMachineMissileAssembly.class, "tileentity_missile_assembly"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); @@ -1466,6 +1469,24 @@ public class MainRegistry TileEntityMachineReactorLarge.registerWasteEntry(6, ReactorFuelType.THORIUM, ModItems.rod_empty, ModItems.rod_thorium_fuel_depleted); TileEntityMachineReactorLarge.registerWasteEntry(12, ReactorFuelType.THORIUM, ModItems.rod_dual_empty, ModItems.rod_dual_thorium_fuel_depleted); TileEntityMachineReactorLarge.registerWasteEntry(24, ReactorFuelType.THORIUM, ModItems.rod_quad_empty, ModItems.rod_quad_thorium_fuel_depleted); + + MissilePart.registerPart(ModItems.mp_t_10, PartType.THRUSTER, 1, ResourceManager.mp_t_10_kerosene, ResourceManager.mp_t_10_kerosene_tex); + MissilePart.registerPart(ModItems.mp_t_15, PartType.THRUSTER, 1.625, ResourceManager.mp_t_15, ResourceManager.universal); + MissilePart.registerPart(ModItems.mp_t_20, PartType.THRUSTER, 2.25, ResourceManager.mp_t_20, ResourceManager.universal); + + MissilePart.registerPart(ModItems.mp_s_10, PartType.FINS, 0, ResourceManager.mp_s_10_flat, ResourceManager.mp_s_10_flat_tex); + MissilePart.registerPart(ModItems.mp_s_15, PartType.FINS, 0, ResourceManager.mp_s_15, ResourceManager.universal); + MissilePart.registerPart(ModItems.mp_s_20, PartType.FINS, 0, ResourceManager.mp_s_20, ResourceManager.universal); + + MissilePart.registerPart(ModItems.mp_f_10, PartType.FUSELAGE, 4, ResourceManager.mp_f_10_kerosene, ResourceManager.mp_f_10_kerosene_tex); + MissilePart.registerPart(ModItems.mp_f_15, PartType.FUSELAGE, 6, ResourceManager.mp_f_15, ResourceManager.universal); + MissilePart.registerPart(ModItems.mp_f_20, PartType.FUSELAGE, 10, ResourceManager.mp_f_20, ResourceManager.universal); + + MissilePart.registerPart(ModItems.mp_w_10, PartType.WARHEAD, 2, ResourceManager.mp_w_10_he, ResourceManager.mp_w_10_he_tex); + MissilePart.registerPart(ModItems.mp_w_15, PartType.WARHEAD, 3, ResourceManager.mp_w_15, ResourceManager.universal); + MissilePart.registerPart(ModItems.mp_w_20, PartType.WARHEAD, 3, ResourceManager.mp_w_20, ResourceManager.universal); + + proxy.registerMissileItems(); } @EventHandler diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 27aa75b08..42cbf77e8 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -312,6 +312,20 @@ public class ResourceManager { public static final IModelCustom missileBooster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileBooster.obj")); public static final IModelCustom minerRocket = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/minerRocket.obj")); + //Missile Parts + 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_15 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_15.obj")); + public static final IModelCustom mp_t_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_t_20.obj")); + public static final IModelCustom mp_s_10_flat = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_s_10_flat.obj")); + public static final IModelCustom mp_s_15 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_s_15.obj")); + public static final IModelCustom mp_s_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_s_20.obj")); + public static final IModelCustom mp_f_10_kerosene = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_10_kerosene.obj")); + public static final IModelCustom mp_f_15 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_15.obj")); + public static final IModelCustom mp_f_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_f_20.obj")); + public static final IModelCustom mp_w_10_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_10_he.obj")); + public static final IModelCustom mp_w_15 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_15.obj")); + public static final IModelCustom mp_w_20 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missile_parts/mp_w_20.obj")); + ////Texture Entities //Boxcar @@ -358,4 +372,10 @@ public class ResourceManager { public static final ResourceLocation missileMicroBHole_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroBHole.png"); public static final ResourceLocation missileMicroSchrab_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroSchrab.png"); public static final ResourceLocation missileMicroEMP_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicroEMP.png"); + + //Missile Parts + public static final ResourceLocation mp_t_10_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/mp_t_10_kerosene.png"); + public static final ResourceLocation mp_s_10_flat_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/mp_s_10_flat.png"); + public static final ResourceLocation mp_f_10_kerosene_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/mp_f_10_kerosene.png"); + public static final ResourceLocation mp_w_10_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missile_parts/mp_w_10_he.png"); } diff --git a/com/hbm/main/ServerProxy.java b/com/hbm/main/ServerProxy.java index e284a6273..d59d9a20e 100644 --- a/com/hbm/main/ServerProxy.java +++ b/com/hbm/main/ServerProxy.java @@ -7,11 +7,11 @@ public class ServerProxy } - public void registerTileEntitySpecialRenderer() { - - } + public void registerTileEntitySpecialRenderer() { } public void particleControl(double x, double y, double z, int type) { } + + public void registerMissileItems() { } } \ No newline at end of file diff --git a/com/hbm/render/item/ItemRenderMissilePart.java b/com/hbm/render/item/ItemRenderMissilePart.java new file mode 100644 index 000000000..075273e0b --- /dev/null +++ b/com/hbm/render/item/ItemRenderMissilePart.java @@ -0,0 +1,110 @@ +package com.hbm.render.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; +import com.hbm.render.misc.MissilePart; +import com.hbm.render.misc.MissilePart.PartType; +import com.hbm.render.model.ModelSteelBeam; +import com.hbm.render.model.ModelSteelCorner; +import com.hbm.render.model.ModelSteelRoof; +import com.hbm.render.model.ModelSteelScaffold; +import com.hbm.render.model.ModelSteelWall; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; + +public class ItemRenderMissilePart implements IItemRenderer { + + MissilePart part; + + public ItemRenderMissilePart() { } + + public ItemRenderMissilePart(MissilePart part) { + this.part = part; + } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + case INVENTORY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return false; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + if(part == null) + return; + + GL11.glPushMatrix(); + + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + GL11.glTranslated(0.5, 0, 0); + + case ENTITY: + double s = 0.4; + GL11.glScaled(s, s, s); + + /*if(part.type.name().equals(PartType.FINS.name())) { + GL11.glTranslated(0, 0, 0); + //GL11.glRotated(-45, 1, 0, 0); + }*/ + + Minecraft.getMinecraft().renderEngine.bindTexture(part.texture); + part.model.renderAll(); + + break; + + case INVENTORY: + + double height = part.height; + if(height == 0D) + height = 4D; + + double size = 10; + double scale = size / height; + + GL11.glTranslated(height / 2 * scale, 0, 0); + + GL11.glRotated(135, 0, 0, 1); + GL11.glRotated(145, 1, 0, 0); + + GL11.glTranslated(3.5, 14, 0); + + GL11.glScaled(-scale, -scale, -scale); + + /*if(part.type.name().equals(PartType.FINS.name())) { + GL11.glTranslated(0, 0, 0); + //GL11.glRotated(-45, 1, 0, 0); + }*/ + + Minecraft.getMinecraft().renderEngine.bindTexture(part.texture); + part.model.renderAll(); + + break; + default: break; + } + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/render/misc/MissileMultipart.java b/com/hbm/render/misc/MissileMultipart.java new file mode 100644 index 000000000..4865ff297 --- /dev/null +++ b/com/hbm/render/misc/MissileMultipart.java @@ -0,0 +1,28 @@ +package com.hbm.render.misc; + +public class MissileMultipart { + + public MissilePart warhead; + public MissilePart fuselage; + public MissilePart fins; + public MissilePart thruster; + + public double getHeight() { + + double height = 0; + + if(warhead != null) + height += warhead.height; + if(fuselage != null) + height += fuselage.height; + if(thruster != null) + height += thruster.height; + + return height; + } + + /*public boolean hadFuselage() { + return fuselage != null; + }*/ + +} diff --git a/com/hbm/render/misc/MissilePart.java b/com/hbm/render/misc/MissilePart.java new file mode 100644 index 000000000..26fe653e3 --- /dev/null +++ b/com/hbm/render/misc/MissilePart.java @@ -0,0 +1,52 @@ +package com.hbm.render.misc; + +import java.util.ArrayList; +import java.util.List; + +import net.minecraft.item.Item; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.IModelCustom; + +public class MissilePart { + + public static List parts = new ArrayList(); + + public Item part; + public PartType type; + public double height; + public IModelCustom model; + public ResourceLocation texture; + + private MissilePart(Item item, PartType type, double height, IModelCustom model, ResourceLocation texture) { + this.part = item; + this.type = type; + this.height = height; + this.model = model; + this.texture = texture; + } + + public enum PartType { + WARHEAD, + FUSELAGE, + FINS, + THRUSTER + } + + public static void registerPart(Item item, PartType type, double height, IModelCustom model, ResourceLocation texture) { + + MissilePart part = new MissilePart(item, type, height, model, texture); + parts.add(part); + } + + public static MissilePart getPart(Item item) { + + for(MissilePart part : parts) { + + if(part.part == item) + return part; + } + + return null; + } + +} diff --git a/com/hbm/render/misc/MissilePronter.java b/com/hbm/render/misc/MissilePronter.java new file mode 100644 index 000000000..213dd3ed5 --- /dev/null +++ b/com/hbm/render/misc/MissilePronter.java @@ -0,0 +1,48 @@ +package com.hbm.render.misc; + +import org.lwjgl.opengl.GL11; + +import com.hbm.render.misc.MissilePart.PartType; + +import net.minecraft.client.renderer.texture.TextureManager; + +public class MissilePronter { + + public static void prontMissile(MissileMultipart missile, TextureManager tex) { + + //if(!missile.hadFuselage()) + // return; + + GL11.glPushMatrix(); + + double height = 0; + + if(missile.thruster != null && missile.thruster.type.name().equals(PartType.THRUSTER.name())) { + + tex.bindTexture(missile.thruster.texture); + missile.thruster.model.renderAll(); + GL11.glTranslated(0, missile.thruster.height, 0); + } + + if(missile.fuselage != null && missile.fuselage.type.name().equals(PartType.FUSELAGE.name())) { + + if(missile.fins != null && missile.fins.type.name().equals(PartType.FINS.name())) { + + tex.bindTexture(missile.fins.texture); + missile.fins.model.renderAll(); + } + + tex.bindTexture(missile.fuselage.texture); + missile.fuselage.model.renderAll(); + GL11.glTranslated(0, missile.fuselage.height, 0); + } + + if(missile.warhead != null && missile.warhead.type.name().equals(PartType.WARHEAD.name())) { + + tex.bindTexture(missile.warhead.texture); + missile.warhead.model.renderAll(); + } + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/render/tileentity/RenderMissileAssembly.java b/com/hbm/render/tileentity/RenderMissileAssembly.java new file mode 100644 index 000000000..df861c4ec --- /dev/null +++ b/com/hbm/render/tileentity/RenderMissileAssembly.java @@ -0,0 +1,60 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.render.misc.MissileMultipart; +import com.hbm.render.misc.MissilePart; +import com.hbm.render.misc.MissilePronter; +import com.hbm.render.model.ModelTestRender; +import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ResourceLocation; + +public class RenderMissileAssembly extends TileEntitySpecialRenderer { + + public RenderMissileAssembly() { } + + @Override + public void renderTileEntityAt(TileEntity tileentity, double x, double y, double z, float f) { + + if(!(tileentity instanceof TileEntityMachineMissileAssembly)) + return; + + TileEntityMachineMissileAssembly te = (TileEntityMachineMissileAssembly)tileentity; + + GL11.glPushMatrix(); + + GL11.glTranslatef((float) x + 0.5F, (float) y + 1.5F, (float) z + 0.5F); + GL11.glRotatef(180, 0F, 0F, 1F); + + + MissileMultipart missile = new MissileMultipart(); + + if(te.getStackInSlot(1) != null) + missile.warhead = MissilePart.getPart(te.getStackInSlot(1).getItem()); + + if(te.getStackInSlot(2) != null) + missile.fuselage = MissilePart.getPart(te.getStackInSlot(2).getItem()); + + if(te.getStackInSlot(3) != null) + missile.fins = MissilePart.getPart(te.getStackInSlot(3).getItem()); + + if(te.getStackInSlot(4) != null) + missile.thruster = MissilePart.getPart(te.getStackInSlot(4).getItem()); + + GL11.glTranslated(-missile.getHeight() / 2, 0, 0); + //GL11.glScaled(scale, scale, scale); + + GL11.glRotatef(-90, 1, 0, 0); + GL11.glRotatef(-90, 0, 0, 1); + GL11.glScalef(1, 1, 1); + + MissilePronter.prontMissile(missile, Minecraft.getMinecraft().getTextureManager()); + + GL11.glPopMatrix(); + } +} diff --git a/com/hbm/render/util/ProntingUtility.java b/com/hbm/render/util/ProntingUtility.java deleted file mode 100644 index f34f9e365..000000000 --- a/com/hbm/render/util/ProntingUtility.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.hbm.render.util; - -import java.util.List; - -import net.minecraft.client.model.ModelRenderer; - -public class ProntingUtility { - - public static void convertModelRenderersToTessellatorStatements(List models) { - - } - -} diff --git a/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java b/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java new file mode 100644 index 000000000..76565b0de --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityMachineMissileAssembly.java @@ -0,0 +1,169 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.interfaces.IConsumer; +import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.FluidTank; +import com.hbm.items.ModItems; +import com.hbm.items.special.ItemBattery; + +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; + +public class TileEntityMachineMissileAssembly extends TileEntity implements ISidedInventory { + + private ItemStack slots[]; + + private static final int[] access = new int[] { 0 }; + + private String customName; + + public TileEntityMachineMissileAssembly() { + slots = new ItemStack[6]; + } + + @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.missileAssembly"; + } + + @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; + } +}