From 2da280076f907bdea026a067c04b7cd9aa2ae7d1 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Tue, 1 May 2018 22:06:08 +0200 Subject: [PATCH] carrier rocket, rocket booster, world saving test --- assets/hbm/lang/de_DE.lang | 2 + assets/hbm/lang/en_US.lang | 2 + assets/hbm/models/missileBooster.obj | 416 ++++++ assets/hbm/models/missileCarrier.obj | 1148 +++++++++++++++++ assets/hbm/textures/models/missileBooster.png | Bin 0 -> 4435 bytes assets/hbm/textures/models/missileCarrier.png | Bin 0 -> 15609 bytes com/hbm/blocks/bomb/LaunchPad.java | 15 + com/hbm/blocks/test/TestEventTester.java | 29 +- com/hbm/entity/missile/EntityBooster.java | 107 ++ com/hbm/entity/missile/EntityCarrier.java | 161 +++ com/hbm/entity/missile/EntityMIRV.java | 2 +- .../missile/EntityMissileBaseAdvanced.java | 2 +- com/hbm/items/ModItems.java | 4 + com/hbm/lib/RefStrings.java | 2 +- com/hbm/main/ClientProxy.java | 2 + com/hbm/main/MainRegistry.java | 4 + com/hbm/main/ResourceManager.java | 4 + com/hbm/packet/TEMissilePacket.java | 2 + .../render/entity/RenderBoosterMissile.java | 42 + .../render/entity/RenderCarrierMissile.java | 53 + .../tileentity/RenderLaunchPadTier1.java | 22 +- com/hbm/saveddata/SatelliteSaveStructure.java | 39 + com/hbm/saveddata/SatelliteSavedData.java | 33 + 23 files changed, 2082 insertions(+), 9 deletions(-) create mode 100644 assets/hbm/models/missileBooster.obj create mode 100644 assets/hbm/models/missileCarrier.obj create mode 100644 assets/hbm/textures/models/missileBooster.png create mode 100644 assets/hbm/textures/models/missileCarrier.png create mode 100644 com/hbm/entity/missile/EntityBooster.java create mode 100644 com/hbm/entity/missile/EntityCarrier.java create mode 100644 com/hbm/render/entity/RenderBoosterMissile.java create mode 100644 com/hbm/render/entity/RenderCarrierMissile.java create mode 100644 com/hbm/saveddata/SatelliteSaveStructure.java create mode 100644 com/hbm/saveddata/SatelliteSavedData.java diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 5cd2a086a..867d8cd21 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -1276,6 +1276,8 @@ item.missile_doomsday.name=Doomsday Rakete item.missile_taint.name=Verdorbene Rakete item.missile_micro.name=Mikro-Atomrakete +item.missile_carrier.name=HTR-01 Trägerrakete + item.hazmat_helmet.name=Strahlenschutzhelm item.hazmat_plate.name=Strahlenschutzbrustplatte item.hazmat_legs.name=Strahlenschutzhose diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 8e4462912..282d8f12e 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -1275,6 +1275,8 @@ item.missile_doomsday.name=Doomsday Missile item.missile_taint.name=Taint-Tipped Missile item.missile_micro.name=Micro-Nuclear Missile +item.missile_carrier.name=HTR-01 Carrier Rocket + item.hazmat_helmet.name=Hazmat Helmet item.hazmat_plate.name=Hazmat Chestplate item.hazmat_legs.name=Hazmat Leggings diff --git a/assets/hbm/models/missileBooster.obj b/assets/hbm/models/missileBooster.obj new file mode 100644 index 000000000..1b2478e83 --- /dev/null +++ b/assets/hbm/models/missileBooster.obj @@ -0,0 +1,416 @@ +# Blender v2.76 (sub 0) OBJ File: 'carrier_booster.blend' +# www.blender.org +o Cylinder +v 0.000000 1.000000 -0.500000 +v 0.000000 8.000000 -0.500000 +v 0.250000 1.000000 -0.433013 +v 0.250000 8.000000 -0.433013 +v 0.433013 1.000000 -0.250000 +v 0.433013 8.000000 -0.250000 +v 0.500000 1.000000 0.000000 +v 0.500000 8.000000 0.000000 +v 0.433013 1.000000 0.250000 +v 0.433013 8.000000 0.250000 +v 0.250000 1.000000 0.433013 +v 0.250000 8.000000 0.433013 +v 0.000000 1.000000 0.500000 +v 0.000000 8.000000 0.500000 +v -0.250000 1.000000 0.433013 +v -0.250000 8.000000 0.433013 +v -0.433013 1.000000 0.250000 +v -0.433013 8.000000 0.250000 +v -0.500000 1.000000 0.000000 +v -0.500000 8.000000 0.000000 +v -0.433013 1.000000 -0.250000 +v -0.433013 8.000000 -0.250000 +v -0.250000 1.000000 -0.433013 +v -0.250000 8.000000 -0.433013 +v 0.200001 8.500000 -0.346410 +v 0.000001 8.500000 -0.400000 +v 0.346411 8.500000 -0.200000 +v 0.400001 8.500000 0.000000 +v 0.346411 8.500000 0.200000 +v 0.200001 8.500000 0.346410 +v 0.000001 8.500000 0.400000 +v -0.199999 8.500000 0.346410 +v -0.346409 8.500000 0.200000 +v -0.399999 8.500000 0.000000 +v -0.346409 8.500000 -0.200000 +v -0.199999 8.500000 -0.346410 +v 0.037502 9.000000 -0.064952 +v 0.000002 9.000000 -0.075000 +v 0.064954 9.000000 -0.037500 +v 0.075002 9.000000 0.000000 +v 0.064953 9.000000 0.037500 +v 0.037502 9.000000 0.064952 +v 0.000002 9.000000 0.075000 +v -0.037498 9.000000 0.064952 +v -0.064950 9.000000 0.037500 +v -0.074998 9.000000 0.000000 +v -0.064950 9.000000 -0.037500 +v -0.037498 9.000000 -0.064952 +v -0.000000 1.000000 -0.375000 +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.433012 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.291673 0.852188 +vt 0.261395 0.852188 +vt 0.261395 0.033298 +vt 0.231118 0.852188 +vt 0.231118 0.033298 +vt 0.200840 0.852188 +vt 0.200840 0.033298 +vt 0.170562 0.852188 +vt 0.170563 0.033298 +vt 0.140284 0.852188 +vt 0.140285 0.033298 +vt 0.110006 0.852188 +vt 0.110008 0.033298 +vt 0.079728 0.852188 +vt 0.079730 0.033298 +vt 0.049451 0.852188 +vt 0.049453 0.033298 +vt 0.019173 0.852188 +vt 0.019175 0.033297 +vt 0.382507 0.852188 +vt 0.352229 0.852188 +vt 0.352228 0.033298 +vt 0.321951 0.852188 +vt 0.349201 0.911762 +vt 0.291673 0.033298 +vt 0.321950 0.033298 +vt 0.053237 0.019173 +vt 0.197812 0.911762 +vt 0.187972 0.980827 +vt 0.183430 0.980827 +vt 0.258368 0.911762 +vt 0.379479 0.911762 +vt 0.046423 0.911762 +vt 0.022201 0.911762 +vt 0.076701 0.911762 +vt 0.052478 0.911762 +vt 0.106979 0.911762 +vt 0.082756 0.911762 +vt 0.137256 0.911762 +vt 0.113034 0.911762 +vt 0.167534 0.911762 +vt 0.143312 0.911762 +vt 0.173590 0.911762 +vt 0.318923 0.911762 +vt 0.288645 0.911762 +vt 0.228090 0.911762 +vt 0.726241 0.560416 +vt 0.740920 0.556483 +vt 0.736987 0.571161 +vt 0.339361 0.980827 +vt 0.334819 0.980827 +vt 0.264423 0.911762 +vt 0.278805 0.980827 +vt 0.066861 0.980827 +vt 0.157694 0.980827 +vt 0.153152 0.980827 +vt 0.309083 0.980827 +vt 0.304541 0.980827 +vt 0.248527 0.980827 +vt 0.243986 0.980827 +vt 0.036583 0.980827 +vt 0.032041 0.980827 +vt 0.127416 0.980827 +vt 0.218250 0.980827 +vt 0.213708 0.980827 +vt 0.369639 0.980827 +vt 0.365097 0.980827 +vt 0.097138 0.980827 +vt 0.092596 0.980827 +vt 0.643102 0.894316 +vt 0.613151 0.780289 +vt 0.642667 0.773541 +vt 0.083515 0.019173 +vt 0.106223 0.019173 +vt 0.113792 0.019173 +vt 0.136500 0.019173 +vt 0.144070 0.019173 +vt 0.166778 0.019173 +vt 0.174347 0.019173 +vt 0.197055 0.019173 +vt 0.295457 0.019173 +vt 0.265180 0.019173 +vt 0.287888 0.019173 +vt 0.204625 0.019173 +vt 0.227333 0.019173 +vt 0.325735 0.019173 +vt 0.348443 0.019173 +vt 0.234902 0.019173 +vt 0.257610 0.019173 +vt 0.382505 0.033297 +vt 0.356012 0.019173 +vt 0.022960 0.019173 +vt 0.797384 0.255928 +vt 0.684386 0.225651 +vt 0.725746 0.184290 +vt 0.710258 0.883441 +vt 0.702692 0.765789 +vt 0.732955 0.764817 +vt 0.822808 0.894316 +vt 0.852759 0.780289 +vt 0.881781 0.788917 +vt 0.778254 0.885625 +vt 0.793354 0.768701 +vt 0.823243 0.773541 +vt 0.621335 0.900787 +vt 0.584128 0.788917 +vt 0.687655 0.885625 +vt 0.672555 0.768701 +vt 0.800671 0.889255 +vt 0.755651 0.883441 +vt 0.763217 0.765789 +vt 0.600028 0.908641 +vt 0.555719 0.799390 +vt 0.665239 0.889255 +vt 0.732955 0.882712 +vt 0.844574 0.900787 +vt 0.910190 0.799390 +vt 0.324979 0.911762 +vt 0.075946 0.019173 +vt 0.234145 0.911762 +vt 0.355257 0.911762 +vt 0.294701 0.911762 +vt 0.203868 0.911762 +vt 0.732445 0.571161 +vt 0.728512 0.568891 +vt 0.726241 0.564957 +vt 0.728512 0.556483 +vt 0.732445 0.554212 +vt 0.736987 0.554212 +vt 0.743191 0.560416 +vt 0.743191 0.564957 +vt 0.740920 0.568891 +vt 0.274263 0.980827 +vt 0.062319 0.980827 +vt 0.122875 0.980827 +vt 0.318165 0.019173 +vt 0.378720 0.019173 +vt 0.045668 0.019173 +vt 0.756024 0.184290 +vt 0.782245 0.199429 +vt 0.797384 0.225651 +vt 0.782245 0.282150 +vt 0.756024 0.297288 +vt 0.725746 0.297288 +vt 0.699525 0.282150 +vt 0.684386 0.255928 +vt 0.699525 0.199429 +vt 0.865881 0.908641 +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.694300 0.189700 -0.694300 +vn -0.258800 0.000000 -0.965900 +vn -0.707100 0.000000 -0.707100 +vn 0.000000 -1.000000 0.000000 +vn 0.818100 0.531700 0.219200 +vn 0.694300 0.189700 -0.694300 +vn -0.948400 0.189700 -0.254100 +vn -0.948400 0.189700 0.254100 +vn -0.694300 0.189700 0.694300 +vn -0.254100 0.189700 0.948400 +vn 0.254100 0.189700 0.948400 +vn 0.694300 0.189700 0.694300 +vn 0.948400 0.189700 0.254100 +vn -0.254100 0.189700 -0.948400 +vn 0.254100 0.189700 -0.948400 +vn 0.948400 0.189700 -0.254100 +vn 0.000000 1.000000 -0.000000 +vn -0.598900 0.531700 -0.598900 +vn 0.219200 0.531700 -0.818100 +vn -0.598900 0.531700 0.598900 +vn 0.598900 0.531700 0.598900 +vn -0.219200 0.531700 -0.818100 +vn 0.598900 0.531700 -0.598900 +vn -0.818100 0.531700 0.219200 +vn 0.219200 0.531700 0.818100 +vn 0.818100 0.531700 -0.219200 +vn -0.818100 0.531700 -0.219200 +vn -0.219200 0.531700 0.818100 +vn -0.257000 0.119900 0.959000 +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.702000 0.119900 0.702000 +vn -0.257000 0.119900 -0.959000 +vn 0.702000 0.119900 -0.702000 +vn -0.959000 0.119900 0.257000 +vn 0.257000 0.119900 0.959000 +vn 0.959000 0.119900 -0.257000 +vn -0.959000 0.119900 -0.257000 +vn 0.000000 1.000000 0.000100 +vn 0.000000 1.000000 -0.000100 +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 24/23/11 22/21/11 35/24/11 +f 24/23/12 2/1/12 1/25/12 +f 22/21/13 24/23/13 23/26/13 +f 15/15/14 17/17/14 57/27/14 +f 28/28/15 40/29/15 41/30/15 +f 6/4/16 4/2/16 25/31/16 +f 22/21/17 20/20/17 34/32/17 +f 18/16/18 33/33/18 34/34/18 +f 16/14/19 32/35/19 33/36/19 +f 14/12/20 31/37/20 32/38/20 +f 12/10/21 30/39/21 31/40/21 +f 10/8/22 29/41/22 30/42/22 +f 8/6/23 28/28/23 29/43/23 +f 2/1/24 24/23/24 36/44/24 +f 4/2/25 2/1/25 26/45/25 +f 8/6/26 6/4/26 27/46/26 +f 47/47/27 43/48/27 39/49/27 +f 35/24/28 47/50/28 48/51/28 +f 25/52/29 26/45/29 38/53/29 +f 33/36/30 32/35/30 44/54/30 +f 29/41/31 41/55/31 42/56/31 +f 36/44/32 48/57/32 38/58/32 +f 25/31/33 37/59/33 39/60/33 +f 33/33/34 45/61/34 46/62/34 +f 31/40/35 30/39/35 42/63/35 +f 27/46/36 39/64/36 40/65/36 +f 34/32/37 46/66/37 47/67/37 +f 31/37/38 43/68/38 44/69/38 +f 56/70/39 68/71/39 67/72/39 +f 15/15/14 56/73/14 55/74/14 +f 13/13/14 55/75/14 54/76/14 +f 11/11/14 54/77/14 53/78/14 +f 9/9/14 53/79/14 52/80/14 +f 23/26/14 1/25/14 49/81/14 +f 3/3/14 50/82/14 49/83/14 +f 7/7/14 52/84/14 51/85/14 +f 23/26/14 60/86/14 59/87/14 +f 5/5/14 51/88/14 50/89/14 +f 19/90/14 21/22/14 59/91/14 +f 17/17/14 19/19/14 58/92/14 +f 64/93/14 70/94/14 72/95/14 +f 53/96/40 65/97/40 64/98/40 +f 60/99/41 72/100/41 71/101/41 +f 50/102/42 62/103/42 61/104/42 +f 57/105/43 69/106/43 68/71/43 +f 54/107/44 66/108/44 65/97/44 +f 60/99/45 49/109/45 61/104/45 +f 50/102/46 51/110/46 63/111/46 +f 57/105/47 58/112/47 70/113/47 +f 54/107/48 55/114/48 67/72/48 +f 52/115/49 64/98/49 63/111/49 +f 59/116/50 71/101/50 70/117/50 +f 1/25/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/90/10 20/20/10 21/22/10 +f 36/118/11 24/23/11 35/24/11 +f 23/26/12 24/23/12 1/25/12 +f 21/22/13 22/21/13 23/26/13 +f 56/119/14 15/15/14 57/27/14 +f 29/43/15 28/28/15 41/30/15 +f 27/120/16 6/4/16 25/31/16 +f 35/121/17 22/21/17 34/32/17 +f 20/18/18 18/16/18 34/34/18 +f 18/16/19 16/14/19 33/36/19 +f 16/14/20 14/12/20 32/38/20 +f 14/12/21 12/10/21 31/40/21 +f 12/10/22 10/8/22 30/42/22 +f 10/8/23 8/6/23 29/43/23 +f 26/122/24 2/1/24 36/44/24 +f 25/52/25 4/2/25 26/45/25 +f 28/123/26 8/6/26 27/46/26 +f 39/49/51 37/124/51 38/125/51 +f 38/125/51 48/126/51 47/47/51 +f 47/47/27 46/127/27 43/48/27 +f 45/128/52 44/129/52 43/48/52 +f 43/48/51 42/130/51 41/131/51 +f 41/131/27 40/132/27 43/48/27 +f 39/49/27 38/125/27 47/47/27 +f 46/127/27 45/128/27 43/48/27 +f 43/48/27 40/132/27 39/49/27 +f 36/118/28 35/24/28 48/51/28 +f 37/133/29 25/52/29 38/53/29 +f 45/134/30 33/36/30 44/54/30 +f 30/42/31 29/41/31 42/56/31 +f 26/122/32 36/44/32 38/58/32 +f 27/120/33 25/31/33 39/60/33 +f 34/34/34 33/33/34 46/62/34 +f 43/135/35 31/40/35 42/63/35 +f 28/123/36 27/46/36 40/65/36 +f 35/121/37 34/32/37 47/67/37 +f 32/38/38 31/37/38 44/69/38 +f 55/114/39 56/70/39 67/72/39 +f 13/13/14 15/15/14 55/74/14 +f 11/11/14 13/13/14 54/76/14 +f 9/9/14 11/11/14 53/78/14 +f 7/7/14 9/9/14 52/80/14 +f 60/136/14 23/26/14 49/81/14 +f 1/25/14 3/3/14 49/83/14 +f 5/5/14 7/7/14 51/85/14 +f 21/22/14 23/26/14 59/87/14 +f 3/3/14 5/5/14 50/89/14 +f 58/137/14 19/90/14 59/91/14 +f 57/138/14 17/17/14 58/92/14 +f 72/95/14 61/139/14 62/140/14 +f 62/140/14 63/141/14 64/93/14 +f 64/93/14 65/142/14 66/143/14 +f 66/143/14 67/144/14 68/145/14 +f 68/145/14 69/146/14 70/94/14 +f 70/94/14 71/147/14 72/95/14 +f 72/95/14 62/140/14 64/93/14 +f 64/93/14 66/143/14 68/145/14 +f 68/145/14 70/94/14 64/93/14 +f 52/115/40 53/96/40 64/98/40 +f 59/116/41 60/99/41 71/101/41 +f 49/109/42 50/102/42 61/104/42 +f 56/70/43 57/105/43 68/71/43 +f 53/96/44 54/107/44 65/97/44 +f 72/100/45 60/99/45 61/104/45 +f 62/103/46 50/102/46 63/111/46 +f 69/106/47 57/105/47 70/113/47 +f 66/108/48 54/107/48 67/72/48 +f 51/110/49 52/115/49 63/111/49 +f 58/148/50 59/116/50 70/117/50 diff --git a/assets/hbm/models/missileCarrier.obj b/assets/hbm/models/missileCarrier.obj new file mode 100644 index 000000000..5f3734ea0 --- /dev/null +++ b/assets/hbm/models/missileCarrier.obj @@ -0,0 +1,1148 @@ +# Blender v2.76 (sub 0) OBJ File: 'carrier_main.blend' +# www.blender.org +o Cylinder +v 0.000000 1.500000 -0.750000 +v 0.000000 5.000000 -0.750000 +v 0.375000 1.500000 -0.649519 +v 0.375000 5.000000 -0.649519 +v 0.649519 1.500000 -0.375000 +v 0.649519 5.000000 -0.375000 +v 0.750000 1.500000 0.000000 +v 0.750000 5.000000 0.000000 +v 0.649519 1.500000 0.375000 +v 0.649519 5.000000 0.375000 +v 0.375000 1.500000 0.649519 +v 0.375000 5.000000 0.649519 +v 0.000000 1.500000 0.750000 +v 0.000000 5.000000 0.750000 +v -0.375000 1.500000 0.649519 +v -0.375000 5.000000 0.649519 +v -0.649519 1.500000 0.375000 +v -0.649519 5.000000 0.375000 +v -0.750000 1.500000 0.000000 +v -0.750000 5.000000 0.000000 +v -0.649519 1.500000 -0.375000 +v -0.649519 5.000000 -0.375000 +v -0.375000 1.500000 -0.649519 +v -0.375000 5.000000 -0.649519 +v -0.000000 1.250000 -0.562500 +v 0.281250 1.250000 -0.487139 +v 0.487139 1.250000 -0.281250 +v 0.562500 1.250000 0.000000 +v 0.487139 1.250000 0.281250 +v 0.281250 1.250000 0.487139 +v 0.000000 1.250000 0.562500 +v -0.281250 1.250000 0.487139 +v -0.487139 1.250000 0.281250 +v -0.562500 1.250000 0.000000 +v -0.487140 1.250000 -0.281250 +v -0.281250 1.250000 -0.487139 +v -0.000000 1.000000 -0.562500 +v 0.281250 1.000000 -0.487139 +v 0.487139 1.000000 -0.281250 +v 0.562500 1.000000 0.000000 +v 0.487139 1.000000 0.281250 +v 0.281250 1.000000 0.487139 +v -0.000000 1.000000 0.562500 +v -0.281250 1.000000 0.487139 +v -0.487139 1.000000 0.281250 +v -0.562500 1.000000 0.000000 +v -0.487140 1.000000 -0.281250 +v -0.281250 1.000000 -0.487139 +v -0.000000 0.750000 -0.262500 +v 0.131250 0.750000 -0.227332 +v 0.227332 0.750000 -0.131250 +v 0.262500 0.750000 0.000000 +v 0.227332 0.750000 0.131250 +v 0.131250 0.750000 0.227332 +v -0.000000 0.750000 0.262500 +v -0.131250 0.750000 0.227332 +v -0.227332 0.750000 0.131250 +v -0.262500 0.750000 0.000000 +v -0.227332 0.750000 -0.131250 +v -0.131250 0.750000 -0.227332 +v 0.000000 0.500000 -0.450000 +v 0.225000 0.500000 -0.389711 +v 0.389711 0.500000 -0.225000 +v 0.450000 0.500000 0.000000 +v 0.389711 0.500000 0.225000 +v 0.225000 0.500000 0.389711 +v 0.000000 0.500000 0.450000 +v -0.225000 0.500000 0.389712 +v -0.389711 0.500000 0.225000 +v -0.450000 0.500000 0.000000 +v -0.389712 0.500000 -0.225000 +v -0.225000 0.500000 -0.389711 +v -0.318750 0.000000 -0.552091 +v -0.552091 0.000000 -0.318750 +v -0.637500 0.000000 0.000000 +v -0.552091 0.000000 0.318750 +v -0.318750 0.000000 0.552091 +v 0.000000 0.000000 0.637500 +v 0.318750 0.000000 0.552091 +v 0.552091 0.000000 0.318750 +v 0.637500 0.000000 0.000000 +v 0.552091 0.000000 -0.318750 +v 0.318750 0.000000 -0.552091 +v 0.000000 0.000000 -0.637500 +v -0.270938 0.000000 -0.469277 +v 0.000000 0.000000 -0.541875 +v -0.469278 0.000000 -0.270937 +v -0.541875 0.000000 0.000000 +v -0.469277 0.000000 0.270938 +v -0.270937 0.000000 0.469278 +v 0.000000 0.000000 0.541875 +v 0.270938 0.000000 0.469278 +v 0.469278 0.000000 0.270938 +v 0.541875 0.000000 0.000000 +v 0.469278 0.000000 -0.270938 +v 0.270938 0.000000 -0.469278 +v -0.054187 0.750000 -0.093855 +v 0.000000 0.750000 -0.108375 +v -0.093855 0.750000 -0.054187 +v -0.108375 0.750000 0.000000 +v -0.093855 0.750000 0.054188 +v -0.054187 0.750000 0.093856 +v 0.000000 0.750000 0.108375 +v 0.054188 0.750000 0.093856 +v 0.093856 0.750000 0.054188 +v 0.108375 0.750000 0.000000 +v 0.093856 0.750000 -0.054187 +v 0.054188 0.750000 -0.093855 +v 0.375000 7.000000 -0.649519 +v 0.000000 7.000000 -0.750000 +v 0.649519 7.000000 -0.375000 +v 0.750000 7.000000 0.000000 +v 0.649519 7.000000 0.375000 +v 0.375000 7.000000 0.649519 +v 0.000000 7.000000 0.750000 +v -0.375000 7.000000 0.649519 +v -0.649519 7.000000 0.375000 +v -0.750000 7.000000 0.000000 +v -0.649519 7.000000 -0.375000 +v -0.375000 7.000000 -0.649519 +v 0.375000 10.500000 -0.649519 +v 0.000000 10.500000 -0.750000 +v 0.649519 10.500000 -0.375000 +v 0.750000 10.500000 0.000000 +v 0.649519 10.500000 0.375000 +v 0.375000 10.500000 0.649519 +v 0.000000 10.500000 0.750000 +v -0.374999 10.500000 0.649519 +v -0.649519 10.500000 0.375000 +v -0.750000 10.500000 0.000000 +v -0.649519 10.500000 -0.375000 +v -0.375000 10.500000 -0.649519 +v -0.000000 5.000000 -0.787500 +v 0.393750 5.000000 -0.681995 +v 0.681995 5.000000 -0.393750 +v 0.787500 5.000000 0.000000 +v 0.681995 5.000000 0.393750 +v 0.393750 5.000000 0.681995 +v 0.000000 5.000000 0.787500 +v -0.393750 5.000000 0.681995 +v -0.681995 5.000000 0.393750 +v -0.787500 5.000000 0.000000 +v -0.681995 5.000000 -0.393750 +v -0.393750 5.000000 -0.681995 +v 0.393750 7.000000 -0.681995 +v 0.000000 7.000000 -0.787500 +v 0.681995 7.000000 -0.393750 +v 0.787500 7.000000 0.000000 +v 0.681995 7.000000 0.393750 +v 0.393750 7.000000 0.681995 +v 0.000000 7.000000 0.787500 +v -0.393750 7.000000 0.681995 +v -0.681995 7.000000 0.393750 +v -0.787500 7.000000 0.000000 +v -0.681995 7.000000 -0.393750 +v -0.393750 7.000000 -0.681995 +v 0.562501 12.000000 -0.974279 +v 0.000001 12.000000 -1.125000 +v 0.974279 12.000000 -0.562500 +v 1.125000 12.000000 -0.000000 +v 0.974279 12.000000 0.562500 +v 0.562501 12.000000 0.974278 +v 0.000001 12.000000 1.125000 +v -0.562499 12.000000 0.974279 +v -0.974278 12.000000 0.562500 +v -1.125000 12.000000 0.000000 +v -0.974278 12.000000 -0.562499 +v -0.562500 12.000000 -0.974278 +v 0.562500 13.500000 -0.974279 +v 0.000000 13.500000 -1.125000 +v 0.974279 13.500000 -0.562500 +v 1.125000 13.500000 -0.000000 +v 0.974279 13.500000 0.562500 +v 0.562500 13.500000 0.974278 +v 0.000000 13.500000 1.125000 +v -0.562499 13.500000 0.974279 +v -0.974278 13.500000 0.562500 +v -1.125000 13.500000 0.000000 +v -0.974279 13.500000 -0.562499 +v -0.562500 13.500000 -0.974278 +v 0.140625 15.500000 -0.243570 +v 0.000000 15.500000 -0.281250 +v 0.243570 15.500000 -0.140625 +v 0.281250 15.500000 0.000000 +v 0.243570 15.500000 0.140625 +v 0.140625 15.500000 0.243570 +v 0.000000 15.500000 0.281250 +v -0.140625 15.500000 0.243570 +v -0.243569 15.500000 0.140625 +v -0.281250 15.500000 0.000000 +v -0.243569 15.500000 -0.140625 +v -0.140625 15.500000 -0.243569 +v 0.021094 15.750000 -0.036535 +v 0.000000 15.750000 -0.042187 +v 0.036536 15.750000 -0.021094 +v 0.042188 15.750000 0.000000 +v 0.036536 15.750000 0.021094 +v 0.021094 15.750000 0.036536 +v 0.000001 15.750000 0.042188 +v -0.021093 15.750000 0.036536 +v -0.036535 15.750000 0.021094 +v -0.042187 15.750000 0.000000 +v -0.036535 15.750000 -0.021094 +v -0.021093 15.750000 -0.036535 +vt 0.301507 0.312696 +vt 0.272488 0.312697 +vt 0.272481 0.051083 +vt 0.271037 0.312697 +vt 0.242019 0.312697 +vt 0.242011 0.051084 +vt 0.240568 0.312697 +vt 0.211549 0.312698 +vt 0.211542 0.051085 +vt 0.210098 0.312698 +vt 0.181079 0.312699 +vt 0.181072 0.051086 +vt 0.179628 0.312699 +vt 0.150609 0.312700 +vt 0.150602 0.051086 +vt 0.149158 0.312700 +vt 0.120140 0.312701 +vt 0.120133 0.051087 +vt 0.118689 0.312701 +vt 0.089670 0.312702 +vt 0.089662 0.051088 +vt 0.088219 0.312702 +vt 0.059200 0.312702 +vt 0.059193 0.051089 +vt 0.057749 0.312702 +vt 0.028730 0.312703 +vt 0.028723 0.051090 +vt 0.392917 0.312693 +vt 0.363898 0.312694 +vt 0.363890 0.051081 +vt 0.331977 0.312695 +vt 0.302958 0.312696 +vt 0.302951 0.051082 +vt 0.362447 0.312694 +vt 0.333428 0.312695 +vt 0.333420 0.051081 +vt 0.240560 0.051084 +vt 0.215168 0.028010 +vt 0.614773 0.847825 +vt 0.614773 0.866512 +vt 0.593009 0.866512 +vt 0.362439 0.051081 +vt 0.337047 0.028006 +vt 0.245638 0.028009 +vt 0.267402 0.028008 +vt 0.367517 0.028006 +vt 0.389281 0.028005 +vt 0.032349 0.028015 +vt 0.054113 0.028014 +vt 0.062820 0.028014 +vt 0.084584 0.028013 +vt 0.093289 0.028013 +vt 0.115053 0.028012 +vt 0.123759 0.028012 +vt 0.145523 0.028012 +vt 0.154229 0.028011 +vt 0.175993 0.028011 +vt 0.210091 0.051085 +vt 0.184699 0.028010 +vt 0.306577 0.028007 +vt 0.328341 0.028006 +vt 0.301500 0.051082 +vt 0.276108 0.028008 +vt 0.608970 0.895119 +vt 0.549481 0.847825 +vt 0.549481 0.866512 +vt 0.527717 0.866512 +vt 0.440661 0.847825 +vt 0.440661 0.866512 +vt 0.418896 0.866512 +vt 0.636537 0.847825 +vt 0.636537 0.866512 +vt 0.571245 0.847825 +vt 0.571245 0.866512 +vt 0.462425 0.847825 +vt 0.462425 0.866512 +vt 0.505953 0.847825 +vt 0.505953 0.866512 +vt 0.484189 0.866512 +vt 0.658302 0.847825 +vt 0.658302 0.866512 +vt 0.593009 0.847825 +vt 0.484189 0.847825 +vt 0.527717 0.847825 +vt 0.680066 0.847825 +vt 0.680066 0.866512 +vt 0.253796 0.824518 +vt 0.275183 0.833911 +vt 0.265791 0.848572 +vt 0.543677 0.895119 +vt 0.533521 0.895119 +vt 0.434857 0.895119 +vt 0.630734 0.895119 +vt 0.620577 0.895119 +vt 0.565441 0.895119 +vt 0.555285 0.895119 +vt 0.456621 0.895119 +vt 0.446464 0.895119 +vt 0.500149 0.895119 +vt 0.652498 0.895119 +vt 0.642341 0.895119 +vt 0.587206 0.895119 +vt 0.577049 0.895119 +vt 0.478385 0.895119 +vt 0.468228 0.895119 +vt 0.521913 0.895119 +vt 0.674262 0.895119 +vt 0.664105 0.895119 +vt 0.224264 0.879299 +vt 0.238474 0.916598 +vt 0.214722 0.923249 +vt 0.217381 0.856977 +vt 0.226504 0.852514 +vt 0.239903 0.871647 +vt 0.178528 0.861344 +vt 0.188643 0.862267 +vt 0.190158 0.885576 +vt 0.131998 0.833070 +vt 0.114525 0.848572 +vt 0.105133 0.833911 +vt 0.229094 0.850940 +vt 0.237259 0.844899 +vt 0.253900 0.861291 +vt 0.201788 0.861344 +vt 0.207497 0.883993 +vt 0.140795 0.842882 +vt 0.126416 0.861291 +vt 0.162935 0.856977 +vt 0.156052 0.879299 +vt 0.140413 0.871647 +vt 0.239521 0.842882 +vt 0.246458 0.835463 +vt 0.214549 0.858057 +vt 0.151222 0.850940 +vt 0.175547 0.860795 +vt 0.172819 0.883993 +vt 0.119685 0.905758 +vt 0.099857 0.891087 +vt 0.297304 0.873069 +vt 0.280459 0.891087 +vt 0.141842 0.916598 +vt 0.083012 0.873069 +vt 0.190158 0.925490 +vt 0.165594 0.923249 +vt 0.260631 0.905758 +vt 0.310610 0.852299 +vt 0.262003 0.912773 +vt 0.243170 0.921987 +vt 0.792469 0.894307 +vt 0.854840 0.876912 +vt 0.856480 0.880772 +vt 0.315425 0.857581 +vt 0.161951 0.929398 +vt 0.141761 0.923745 +vt 0.114092 0.910208 +vt 0.097238 0.897737 +vt 0.238554 0.923745 +vt 0.218365 0.929398 +vt 0.301084 0.879135 +vt 0.137146 0.921987 +vt 0.118313 0.912773 +vt 0.093550 0.894450 +vt 0.079232 0.879135 +vt 0.213507 0.930293 +vt 0.192628 0.932198 +vt 0.283078 0.897737 +vt 0.266224 0.910208 +vt 0.076200 0.875235 +vt 0.064891 0.857581 +vt 0.187688 0.932198 +vt 0.166809 0.930293 +vt 0.828610 0.623227 +vt 0.832242 0.609674 +vt 0.842163 0.619596 +vt 0.910617 0.942823 +vt 0.878470 0.886616 +vt 0.881809 0.884080 +vt 0.940197 0.913601 +vt 0.884386 0.880772 +vt 0.886026 0.876912 +vt 0.849644 0.950787 +vt 0.866275 0.888209 +vt 0.870433 0.888752 +vt 0.800670 0.913603 +vt 0.859056 0.884080 +vt 0.951365 0.873551 +vt 0.948397 0.894305 +vt 0.870433 0.953503 +vt 0.874591 0.888209 +vt 0.813551 0.930145 +vt 0.862396 0.886616 +vt 0.789500 0.873552 +vt 0.854246 0.872761 +vt 0.891223 0.950787 +vt 0.927315 0.930144 +vt 0.830249 0.942823 +vt 0.088223 0.467610 +vt 0.088231 0.729223 +vt 0.059212 0.729224 +vt 0.059205 0.467611 +vt 0.058479 0.464903 +vt 0.088949 0.464902 +vt 0.028735 0.467612 +vt 0.028009 0.464904 +vt 0.363902 0.467602 +vt 0.363177 0.464895 +vt 0.393646 0.464894 +vt 0.529458 0.028005 +vt 0.536713 0.143348 +vt 0.493184 0.143348 +vt 0.179632 0.467607 +vt 0.179640 0.729221 +vt 0.150621 0.729221 +vt 0.331981 0.467603 +vt 0.331988 0.729216 +vt 0.302969 0.729217 +vt 0.271042 0.467605 +vt 0.271049 0.729219 +vt 0.242030 0.729220 +vt 0.057754 0.467611 +vt 0.057762 0.729224 +vt 0.028743 0.729225 +vt 0.149163 0.467608 +vt 0.149170 0.729221 +vt 0.120151 0.729222 +vt 0.240572 0.467606 +vt 0.240579 0.729219 +vt 0.211560 0.729220 +vt 0.392921 0.467601 +vt 0.392928 0.729214 +vt 0.363909 0.729215 +vt 0.118693 0.467609 +vt 0.118700 0.729222 +vt 0.089681 0.729223 +vt 0.210102 0.467607 +vt 0.210109 0.729219 +vt 0.181090 0.729220 +vt 0.362451 0.467602 +vt 0.362459 0.729216 +vt 0.333440 0.729217 +vt 0.301511 0.467604 +vt 0.301519 0.729218 +vt 0.272500 0.729219 +vt 0.180354 0.315407 +vt 0.180358 0.464900 +vt 0.149888 0.464901 +vt 0.210823 0.315406 +vt 0.210828 0.464899 +vt 0.332703 0.315402 +vt 0.332707 0.464896 +vt 0.302237 0.464897 +vt 0.302233 0.315403 +vt 0.271767 0.464897 +vt 0.241293 0.315405 +vt 0.241297 0.464898 +vt 0.363172 0.315401 +vt 0.271763 0.315404 +vt 0.393642 0.315401 +vt 0.058475 0.315410 +vt 0.088944 0.315409 +vt 0.119414 0.315408 +vt 0.119418 0.464902 +vt 0.149884 0.315407 +vt 0.089674 0.467610 +vt 0.120144 0.467609 +vt 0.150614 0.467608 +vt 0.181083 0.467607 +vt 0.211553 0.467607 +vt 0.242023 0.467606 +vt 0.272493 0.467605 +vt 0.302962 0.467604 +vt 0.333432 0.467603 +vt 0.028005 0.315411 +vt 0.754354 0.143348 +vt 0.754354 0.255468 +vt 0.710826 0.255468 +vt 0.660042 0.028005 +vt 0.667297 0.143348 +vt 0.623769 0.143348 +vt 0.877684 0.028005 +vt 0.884939 0.143348 +vt 0.841410 0.143348 +vt 0.790627 0.028005 +vt 0.797882 0.143348 +vt 0.485930 0.028006 +vt 0.449656 0.143348 +vt 0.587495 0.028005 +vt 0.616514 0.028005 +vt 0.747099 0.028005 +vt 0.710826 0.143348 +vt 0.935722 0.028005 +vt 0.964740 0.028005 +vt 0.971995 0.143348 +vt 0.572986 0.028005 +vt 0.580241 0.143348 +vt 0.703571 0.028005 +vt 0.892193 0.028005 +vt 0.921212 0.028005 +vt 0.928467 0.143348 +vt 0.834155 0.028005 +vt 0.580241 0.255468 +vt 0.623769 0.255468 +vt 0.607446 0.416897 +vt 0.971995 0.255468 +vt 0.928467 0.255468 +vt 0.536713 0.255468 +vt 0.667297 0.255468 +vt 0.884939 0.255468 +vt 0.841410 0.255468 +vt 0.797882 0.255468 +vt 0.493185 0.255468 +vt 0.449656 0.255468 +vt 0.602821 0.442335 +vt 0.601189 0.442335 +vt 0.738030 0.416897 +vt 0.727149 0.416897 +vt 0.955672 0.416897 +vt 0.563918 0.416897 +vt 0.553036 0.416897 +vt 0.694502 0.416897 +vt 0.683621 0.416897 +vt 0.912144 0.416897 +vt 0.825087 0.416897 +vt 0.814205 0.416897 +vt 0.520390 0.416897 +vt 0.509508 0.416897 +vt 0.650974 0.416897 +vt 0.640092 0.416897 +vt 0.868616 0.416897 +vt 0.781559 0.416897 +vt 0.476861 0.416897 +vt 0.465980 0.416897 +vt 0.919680 0.621180 +vt 0.914404 0.619766 +vt 0.918266 0.615904 +vt 0.733406 0.442335 +vt 0.731774 0.442335 +vt 0.951047 0.442335 +vt 0.949415 0.442335 +vt 0.559293 0.442335 +vt 0.557661 0.442335 +vt 0.689878 0.442335 +vt 0.901262 0.416897 +vt 0.907519 0.442335 +vt 0.820462 0.442336 +vt 0.515765 0.442335 +vt 0.514133 0.442335 +vt 0.646349 0.442335 +vt 0.857733 0.416897 +vt 0.863991 0.442336 +vt 0.776934 0.442335 +vt 0.775302 0.442335 +vt 0.472237 0.442335 +vt 0.271030 0.051083 +vt 0.179621 0.051086 +vt 0.149151 0.051087 +vt 0.118681 0.051087 +vt 0.088212 0.051088 +vt 0.057741 0.051089 +vt 0.392909 0.051080 +vt 0.331969 0.051081 +vt 0.236932 0.028009 +vt 0.358811 0.028006 +vt 0.206463 0.028010 +vt 0.297872 0.028007 +vt 0.598813 0.895119 +vt 0.418896 0.847825 +vt 0.248318 0.833070 +vt 0.424700 0.895119 +vt 0.489993 0.895119 +vt 0.511757 0.895119 +vt 0.126520 0.824518 +vt 0.191673 0.862267 +vt 0.133858 0.835463 +vt 0.153812 0.852514 +vt 0.204769 0.860795 +vt 0.143057 0.844899 +vt 0.165767 0.858056 +vt 0.069706 0.852299 +vt 0.304116 0.875235 +vt 0.286766 0.894450 +vt 0.840066 0.623227 +vt 0.836435 0.625324 +vt 0.832242 0.625324 +vt 0.826513 0.619596 +vt 0.826513 0.615403 +vt 0.828610 0.611771 +vt 0.836435 0.609674 +vt 0.840066 0.611771 +vt 0.842163 0.615403 +vt 0.886619 0.872761 +vt 0.500439 0.028005 +vt 0.631024 0.028005 +vt 0.848665 0.028005 +vt 0.761608 0.028005 +vt 0.456911 0.028006 +vt 0.718080 0.028005 +vt 0.543967 0.028005 +vt 0.674552 0.028005 +vt 0.805137 0.028005 +vt 0.596564 0.416897 +vt 0.944790 0.416897 +vt 0.770677 0.416897 +vt 0.919680 0.616720 +vt 0.920496 0.618134 +vt 0.920496 0.619766 +vt 0.918266 0.621996 +vt 0.916634 0.621996 +vt 0.915220 0.621180 +vt 0.914404 0.618134 +vt 0.915220 0.616720 +vt 0.916634 0.615904 +vt 0.688245 0.442335 +vt 0.905886 0.442335 +vt 0.818830 0.442336 +vt 0.644717 0.442335 +vt 0.862359 0.442336 +vt 0.470604 0.442335 +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.258800 0.000000 -0.965900 +vn -0.707100 0.000000 -0.707100 +vn 0.782200 -0.586700 -0.209600 +vn -0.572600 -0.586700 -0.572600 +vn 0.572600 -0.586700 -0.572600 +vn -0.782200 -0.586700 -0.209600 +vn -0.782200 -0.586700 0.209600 +vn -0.572600 -0.586700 0.572600 +vn -0.209600 -0.586700 0.782200 +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.209600 -0.586700 -0.782200 +vn 0.169100 -0.757200 0.631000 +vn -0.782200 0.586700 0.209600 +vn 0.631000 -0.757200 -0.169100 +vn -0.631000 -0.757200 -0.169100 +vn -0.169100 -0.757200 0.631000 +vn 0.631000 -0.757200 0.169100 +vn -0.461900 -0.757200 -0.461900 +vn 0.169100 -0.757200 -0.631000 +vn -0.461900 -0.757200 0.461900 +vn 0.461900 -0.757200 0.461900 +vn -0.169100 -0.757200 -0.631000 +vn 0.461900 -0.757200 -0.461900 +vn -0.631000 -0.757200 0.169100 +vn 0.664800 0.340600 0.664800 +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.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.243300 0.340600 -0.908200 +vn -0.664800 0.340600 0.664800 +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.000000 -1.000000 0.000000 +vn 0.664800 0.340600 -0.664800 +vn 0.617400 -0.487500 -0.617400 +vn -0.226000 -0.487500 0.843400 +vn 0.617400 -0.487500 0.617400 +vn -0.843400 -0.487500 -0.226000 +vn 0.226000 -0.487500 -0.843400 +vn 0.843400 -0.487500 0.226000 +vn -0.843400 -0.487500 0.226000 +vn -0.226000 -0.487500 -0.843400 +vn 0.843400 -0.487500 -0.226000 +vn -0.617400 -0.487500 0.617400 +vn 0.226000 -0.487500 0.843400 +vn -0.617400 -0.487500 -0.617400 +vn 0.000000 1.000000 0.000000 +vn -0.687300 -0.234700 0.687400 +vn 0.687400 -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.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.687400 +vn 0.251600 -0.234700 -0.938900 +vn 0.239700 0.377400 0.894500 +vn 0.190100 0.678500 0.709600 +vn 0.894500 0.377400 -0.239700 +vn -0.894500 0.377400 -0.239700 +vn -0.239700 0.377400 0.894500 +vn 0.894500 0.377400 0.239700 +vn -0.654800 0.377400 -0.654800 +vn 0.239700 0.377400 -0.894500 +vn -0.654800 0.377400 0.654800 +vn 0.654800 0.377400 0.654800 +vn -0.239700 0.377400 -0.894500 +vn 0.654800 0.377400 -0.654800 +vn -0.894500 0.377400 0.239700 +vn 0.709600 0.678500 -0.190100 +vn -0.709600 0.678500 -0.190100 +vn -0.190100 0.678500 0.709600 +vn 0.709600 0.678500 0.190100 +vn -0.519400 0.678500 -0.519400 +vn 0.190100 0.678500 -0.709600 +vn -0.519400 0.678500 0.519400 +vn 0.519400 0.678500 0.519400 +vn -0.190100 0.678500 -0.709600 +vn 0.519400 0.678500 -0.519400 +vn -0.709600 0.678500 0.190100 +vn -0.687400 -0.234700 0.687300 +vn 0.687300 -0.234700 0.687300 +vn 0.687300 -0.234700 -0.687400 +vn -0.687400 -0.234700 -0.687300 +vn 0.000000 1.000000 0.000100 +vn 0.000000 1.000000 0.000200 +vn 0.000000 1.000000 -0.000200 +vn 0.000000 1.000000 -0.000100 +s off +f 2/1/1 4/2/1 3/3/1 +f 4/4/2 6/5/2 5/6/2 +f 6/7/3 8/8/3 7/9/3 +f 8/10/4 10/11/4 9/12/4 +f 10/13/5 12/14/5 11/15/5 +f 12/16/6 14/17/6 13/18/6 +f 14/19/7 16/20/7 15/21/7 +f 16/22/8 18/23/8 17/24/8 +f 18/25/9 20/26/9 19/27/9 +f 20/28/10 22/29/10 21/30/10 +f 24/31/11 2/32/11 1/33/11 +f 22/34/12 24/35/12 23/36/12 +f 5/37/13 7/9/13 28/38/13 +f 31/39/6 43/40/6 42/41/6 +f 21/42/14 23/36/14 36/43/14 +f 5/6/15 27/44/15 26/45/15 +f 21/30/16 35/46/16 34/47/16 +f 19/27/17 34/48/17 33/49/17 +f 17/24/18 33/50/18 32/51/18 +f 15/21/19 32/52/19 31/53/19 +f 13/18/20 31/54/20 30/55/20 +f 11/15/21 30/56/21 29/57/21 +f 7/58/22 9/12/22 29/59/22 +f 1/33/23 25/60/23 36/61/23 +f 1/62/24 3/3/24 26/63/24 +f 42/41/25 43/40/25 55/64/25 +f 28/65/3 40/66/3 39/67/3 +f 35/68/10 47/69/10 46/70/10 +f 32/71/7 44/72/7 43/40/7 +f 29/73/4 41/74/4 40/66/4 +f 35/68/12 36/75/12 48/76/12 +f 26/77/1 38/78/1 37/79/1 +f 33/80/8 45/81/8 44/72/8 +f 30/82/5 42/41/5 41/74/5 +f 36/75/11 25/83/11 37/79/11 +f 26/77/2 27/84/2 39/67/2 +f 34/85/9 46/86/9 45/81/9 +f 58/87/26 70/88/26 69/89/26 +f 40/66/27 52/90/27 51/91/27 +f 46/70/28 47/69/28 59/92/28 +f 44/72/29 56/93/29 55/94/29 +f 41/74/30 53/95/30 52/96/30 +f 48/76/31 60/97/31 59/98/31 +f 37/79/32 38/78/32 50/99/32 +f 45/81/33 57/100/33 56/101/33 +f 42/41/34 54/102/34 53/103/34 +f 37/79/35 49/104/35 60/105/35 +f 38/78/36 39/67/36 51/106/36 +f 46/86/37 58/107/37 57/108/37 +f 66/109/38 79/110/38 80/111/38 +f 54/112/39 55/113/39 67/114/39 +f 51/115/40 52/116/40 64/117/40 +f 59/118/41 71/119/41 70/120/41 +f 55/121/42 56/122/42 68/123/42 +f 53/124/43 65/125/43 64/117/43 +f 60/126/44 72/127/44 71/119/44 +f 50/128/45 62/129/45 61/130/45 +f 56/131/46 57/132/46 69/89/46 +f 54/133/47 66/109/47 65/125/47 +f 49/134/48 61/130/48 72/127/48 +f 51/135/49 63/136/49 62/129/49 +f 61/130/50 84/137/50 73/138/50 +f 69/89/51 76/139/51 77/140/51 +f 62/129/52 83/141/52 84/137/52 +f 72/127/53 73/138/53 74/142/53 +f 64/117/54 65/125/54 80/111/54 +f 67/114/55 68/123/55 77/140/55 +f 70/120/56 71/119/56 74/142/56 +f 64/117/57 81/143/57 82/144/57 +f 66/109/58 67/114/58 78/145/58 +f 69/89/59 70/88/59 75/146/59 +f 78/145/60 91/147/60 92/148/60 +f 63/136/61 82/144/61 83/141/61 +f 89/149/62 101/150/62 102/151/62 +f 76/139/60 75/146/60 88/152/60 +f 82/144/60 95/153/60 96/154/60 +f 84/137/60 86/155/60 85/156/60 +f 79/110/60 92/157/60 93/158/60 +f 77/140/60 76/139/60 89/159/60 +f 83/141/60 96/160/60 86/161/60 +f 73/138/60 85/162/60 87/163/60 +f 80/111/60 93/164/60 94/165/60 +f 77/140/60 90/166/60 91/167/60 +f 74/142/60 87/168/60 88/169/60 +f 81/143/60 94/170/60 95/171/60 +f 106/172/60 102/173/60 97/174/60 +f 96/175/63 108/176/63 98/177/63 +f 85/178/64 97/179/64 99/180/64 +f 93/181/65 105/182/65 106/183/65 +f 90/184/66 102/151/66 103/185/66 +f 88/186/67 87/187/67 99/180/67 +f 94/188/68 106/183/68 107/189/68 +f 91/190/69 103/185/69 104/191/69 +f 89/149/70 88/192/70 100/193/70 +f 95/194/71 107/189/71 108/176/71 +f 86/195/72 98/177/72 97/179/72 +f 92/196/73 104/191/73 105/182/73 +f 116/197/8 128/198/8 129/199/8 +f 117/200/74 153/201/74 152/202/74 +f 118/203/74 154/204/74 153/201/74 +f 119/205/74 155/206/74 154/207/74 +f 128/208/75 164/209/75 165/210/75 +f 113/211/5 125/212/5 126/213/5 +f 120/214/11 132/215/11 122/216/11 +f 109/217/2 121/218/2 123/219/2 +f 117/220/9 129/221/9 130/222/9 +f 114/223/6 126/224/6 127/225/6 +f 111/226/3 123/227/3 124/228/3 +f 118/229/10 130/230/10 131/231/10 +f 115/232/7 127/233/7 128/234/7 +f 112/235/4 124/236/4 125/237/4 +f 119/238/12 131/239/12 132/240/12 +f 110/241/1 122/242/1 121/243/1 +f 137/244/5 149/245/5 150/246/5 +f 136/247/4 148/248/4 149/245/4 +f 144/249/11 156/250/11 146/251/11 +f 133/252/1 146/251/1 145/253/1 +f 135/254/3 147/255/3 148/248/3 +f 143/256/12 155/206/12 156/250/12 +f 134/257/2 145/253/2 147/255/2 +f 142/258/10 154/207/10 155/206/10 +f 141/259/9 153/201/9 154/204/9 +f 140/260/8 152/202/8 153/201/8 +f 139/261/7 151/262/7 152/202/7 +f 138/263/6 150/246/6 151/262/6 +f 116/264/74 152/202/74 151/262/74 +f 115/265/74 151/262/74 150/246/74 +f 114/266/74 150/246/74 149/245/74 +f 112/235/74 113/267/74 149/245/74 +f 112/268/74 148/248/74 147/255/74 +f 111/269/74 147/255/74 145/253/74 +f 109/270/74 145/253/74 146/251/74 +f 120/214/74 110/271/74 146/251/74 +f 120/272/74 156/250/74 155/206/74 +f 143/256/60 144/249/60 24/35/60 +f 144/249/60 133/252/60 2/32/60 +f 133/252/60 134/257/60 4/2/60 +f 134/257/60 135/254/60 6/5/60 +f 135/254/60 136/247/60 8/8/60 +f 136/247/60 137/244/60 10/11/60 +f 137/244/60 138/263/60 12/14/60 +f 138/263/60 139/261/60 14/17/60 +f 139/261/60 140/260/60 16/20/60 +f 140/260/60 141/259/60 18/23/60 +f 141/259/60 142/273/60 20/26/60 +f 142/258/60 143/256/60 22/29/60 +f 159/274/3 171/275/3 172/276/3 +f 125/277/76 161/278/76 162/279/76 +f 132/280/77 168/281/77 158/282/77 +f 121/283/78 157/284/78 159/274/78 +f 129/285/79 165/210/79 166/286/79 +f 127/287/80 126/288/80 162/279/80 +f 123/289/81 159/274/81 160/290/81 +f 131/291/82 130/292/82 166/293/82 +f 127/294/83 163/295/83 164/209/83 +f 124/296/84 160/290/84 161/278/84 +f 132/297/85 131/298/85 167/299/85 +f 122/300/86 158/282/86 157/284/86 +f 175/301/87 174/302/87 186/303/87 +f 166/293/10 178/304/10 179/305/10 +f 163/295/7 175/301/7 176/306/7 +f 160/290/4 172/276/4 173/307/4 +f 167/299/12 179/305/12 180/308/12 +f 158/282/1 170/309/1 169/310/1 +f 164/209/8 176/306/8 177/311/8 +f 161/278/5 173/307/5 174/302/5 +f 168/281/11 180/308/11 170/309/11 +f 157/284/2 169/310/2 171/275/2 +f 165/210/9 177/311/9 178/312/9 +f 162/279/6 174/302/6 175/301/6 +f 186/303/88 198/313/88 199/314/88 +f 171/275/89 183/315/89 184/316/89 +f 179/305/90 178/304/90 190/317/90 +f 175/301/91 187/318/91 188/319/91 +f 172/276/92 184/320/92 185/321/92 +f 180/308/93 179/305/93 191/322/93 +f 170/309/94 182/323/94 181/324/94 +f 176/306/95 188/325/95 189/326/95 +f 173/307/96 185/327/96 186/328/96 +f 170/309/97 180/308/97 192/329/97 +f 171/275/98 169/310/98 181/330/98 +f 177/311/99 189/331/99 190/332/99 +f 203/333/74 199/334/74 195/335/74 +f 183/315/100 195/336/100 196/337/100 +f 190/317/101 202/338/101 203/339/101 +f 187/318/102 199/340/102 200/341/102 +f 185/321/103 184/320/103 196/342/103 +f 192/343/104 191/322/104 203/344/104 +f 181/324/105 182/323/105 194/345/105 +f 188/325/106 200/346/106 201/347/106 +f 186/328/107 185/327/107 197/348/107 +f 182/349/108 192/329/108 204/350/108 +f 181/330/109 193/351/109 195/352/109 +f 190/332/110 189/331/110 201/353/110 +f 1/62/1 2/1/1 3/3/1 +f 3/354/2 4/4/2 5/6/2 +f 5/37/3 6/7/3 7/9/3 +f 7/58/4 8/10/4 9/12/4 +f 9/355/5 10/13/5 11/15/5 +f 11/356/6 12/16/6 13/18/6 +f 13/357/7 14/19/7 15/21/7 +f 15/358/8 16/22/8 17/24/8 +f 17/359/9 18/25/9 19/27/9 +f 19/360/10 20/28/10 21/30/10 +f 23/361/11 24/31/11 1/33/11 +f 21/42/12 22/34/12 23/36/12 +f 27/362/13 5/37/13 28/38/13 +f 30/82/6 31/39/6 42/41/6 +f 35/363/14 21/42/14 36/43/14 +f 3/354/15 5/6/15 26/45/15 +f 19/360/16 21/30/16 34/47/16 +f 17/359/17 19/27/17 33/49/17 +f 15/358/18 17/24/18 32/51/18 +f 13/357/19 15/21/19 31/53/19 +f 11/356/20 13/18/20 30/55/20 +f 9/355/21 11/15/21 29/57/21 +f 28/364/22 7/58/22 29/59/22 +f 23/361/23 1/33/23 36/61/23 +f 25/365/24 1/62/24 26/63/24 +f 54/366/25 42/41/25 55/64/25 +f 27/84/3 28/65/3 39/67/3 +f 34/367/10 35/68/10 46/70/10 +f 31/39/7 32/71/7 43/40/7 +f 28/65/4 29/73/4 40/66/4 +f 47/69/12 35/68/12 48/76/12 +f 25/83/1 26/77/1 37/79/1 +f 32/71/8 33/80/8 44/72/8 +f 29/73/5 30/82/5 41/74/5 +f 48/76/11 36/75/11 37/79/11 +f 38/78/2 26/77/2 39/67/2 +f 33/80/9 34/85/9 45/81/9 +f 57/368/26 58/87/26 69/89/26 +f 39/67/27 40/66/27 51/91/27 +f 58/369/28 46/70/28 59/92/28 +f 43/40/29 44/72/29 55/94/29 +f 40/66/30 41/74/30 52/96/30 +f 47/69/31 48/76/31 59/98/31 +f 49/370/32 37/79/32 50/99/32 +f 44/72/33 45/81/33 56/101/33 +f 41/74/34 42/41/34 53/103/34 +f 48/76/35 37/79/35 60/105/35 +f 50/371/36 38/78/36 51/106/36 +f 45/81/37 46/86/37 57/108/37 +f 65/125/38 66/109/38 80/111/38 +f 66/109/39 54/112/39 67/114/39 +f 63/136/40 51/115/40 64/117/40 +f 58/372/41 59/118/41 70/120/41 +f 67/114/42 55/121/42 68/123/42 +f 52/373/43 53/124/43 64/117/43 +f 59/374/44 60/126/44 71/119/44 +f 49/375/45 50/128/45 61/130/45 +f 68/123/46 56/131/46 69/89/46 +f 53/376/47 54/133/47 65/125/47 +f 60/377/48 49/134/48 72/127/48 +f 50/378/49 51/135/49 62/129/49 +f 72/127/50 61/130/50 73/138/50 +f 68/123/51 69/89/51 77/140/51 +f 61/130/52 62/129/52 84/137/52 +f 71/119/53 72/127/53 74/142/53 +f 81/143/54 64/117/54 80/111/54 +f 78/145/55 67/114/55 77/140/55 +f 75/379/56 70/120/56 74/142/56 +f 63/136/57 64/117/57 82/144/57 +f 79/110/58 66/109/58 78/145/58 +f 76/139/59 69/89/59 75/146/59 +f 79/110/60 78/145/60 92/148/60 +f 62/129/61 63/136/61 83/141/61 +f 90/184/62 89/149/62 102/151/62 +f 89/380/60 76/139/60 88/152/60 +f 83/141/60 82/144/60 96/154/60 +f 73/138/60 84/137/60 85/156/60 +f 80/111/60 79/110/60 93/158/60 +f 90/381/60 77/140/60 89/159/60 +f 84/137/60 83/141/60 86/161/60 +f 74/142/60 73/138/60 87/163/60 +f 81/143/60 80/111/60 94/165/60 +f 78/145/60 77/140/60 91/167/60 +f 75/379/60 74/142/60 88/169/60 +f 82/144/60 81/143/60 95/171/60 +f 97/174/60 98/382/60 108/383/60 +f 108/383/60 107/384/60 106/172/60 +f 106/172/60 105/385/60 104/386/60 +f 104/386/60 103/387/60 102/173/60 +f 102/173/60 101/388/60 97/174/60 +f 100/389/60 99/390/60 97/174/60 +f 97/174/60 108/383/60 106/172/60 +f 106/172/60 104/386/60 102/173/60 +f 101/388/60 100/389/60 97/174/60 +f 86/195/63 96/175/63 98/177/63 +f 87/187/64 85/178/64 99/180/64 +f 94/188/65 93/181/65 106/183/65 +f 91/190/66 90/184/66 103/185/66 +f 100/391/67 88/186/67 99/180/67 +f 95/194/68 94/188/68 107/189/68 +f 92/196/69 91/190/69 104/191/69 +f 101/150/70 89/149/70 100/193/70 +f 96/175/71 95/194/71 108/176/71 +f 85/178/72 86/195/72 97/179/72 +f 93/181/73 92/196/73 105/182/73 +f 117/200/8 116/197/8 129/199/8 +f 116/197/74 117/200/74 152/202/74 +f 117/220/74 118/203/74 153/201/74 +f 118/229/74 119/205/74 154/207/74 +f 129/392/111 128/208/111 165/210/111 +f 114/266/5 113/211/5 126/213/5 +f 110/271/11 120/214/11 122/216/11 +f 111/269/2 109/217/2 123/219/2 +f 118/203/9 117/220/9 130/222/9 +f 115/265/6 114/223/6 127/225/6 +f 112/268/3 111/226/3 124/228/3 +f 119/205/10 118/229/10 131/231/10 +f 116/264/7 115/232/7 128/234/7 +f 113/267/4 112/235/4 125/237/4 +f 120/272/12 119/238/12 132/240/12 +f 109/270/1 110/241/1 121/243/1 +f 138/263/5 137/244/5 150/246/5 +f 137/244/4 136/247/4 149/245/4 +f 133/252/11 144/249/11 146/251/11 +f 134/257/1 133/252/1 145/253/1 +f 136/247/3 135/254/3 148/248/3 +f 144/249/12 143/256/12 156/250/12 +f 135/254/2 134/257/2 147/255/2 +f 143/256/10 142/258/10 155/206/10 +f 142/273/9 141/259/9 154/204/9 +f 141/259/8 140/260/8 153/201/8 +f 140/260/7 139/261/7 152/202/7 +f 139/261/6 138/263/6 151/262/6 +f 115/232/74 116/264/74 151/262/74 +f 114/223/74 115/265/74 150/246/74 +f 113/211/74 114/266/74 149/245/74 +f 148/248/74 112/235/74 149/245/74 +f 111/226/74 112/268/74 147/255/74 +f 109/217/74 111/269/74 145/253/74 +f 110/241/74 109/270/74 146/251/74 +f 156/250/74 120/214/74 146/251/74 +f 119/238/74 120/272/74 155/206/74 +f 22/34/60 143/256/60 24/35/60 +f 24/31/60 144/249/60 2/32/60 +f 2/1/60 133/252/60 4/2/60 +f 4/4/60 134/257/60 6/5/60 +f 6/7/60 135/254/60 8/8/60 +f 8/10/60 136/247/60 10/11/60 +f 10/13/60 137/244/60 12/14/60 +f 12/16/60 138/263/60 14/17/60 +f 14/19/60 139/261/60 16/20/60 +f 16/22/60 140/260/60 18/23/60 +f 18/25/60 141/259/60 20/26/60 +f 20/28/60 142/258/60 22/29/60 +f 160/290/3 159/274/3 172/276/3 +f 126/393/112 125/277/112 162/279/112 +f 122/394/77 132/280/77 158/282/77 +f 123/395/113 121/283/113 159/274/113 +f 130/396/79 129/285/79 166/286/79 +f 163/295/80 127/287/80 162/279/80 +f 124/397/81 123/289/81 160/290/81 +f 167/299/82 131/291/82 166/293/82 +f 128/398/83 127/294/83 164/209/83 +f 125/399/84 124/296/84 161/278/84 +f 168/281/114 132/297/114 167/299/114 +f 121/400/86 122/300/86 157/284/86 +f 187/401/87 175/301/87 186/303/87 +f 167/299/10 166/293/10 179/305/10 +f 164/209/7 163/295/7 176/306/7 +f 161/278/4 160/290/4 173/307/4 +f 168/281/12 167/299/12 180/308/12 +f 157/284/1 158/282/1 169/310/1 +f 165/210/8 164/209/8 177/311/8 +f 162/279/5 161/278/5 174/302/5 +f 158/282/11 168/281/11 170/309/11 +f 159/274/2 157/284/2 171/275/2 +f 166/286/9 165/210/9 178/312/9 +f 163/295/6 162/279/6 175/301/6 +f 187/401/88 186/303/88 199/314/88 +f 172/276/89 171/275/89 184/316/89 +f 191/402/90 179/305/90 190/317/90 +f 176/306/91 175/301/91 188/319/91 +f 173/307/92 172/276/92 185/321/92 +f 192/343/93 180/308/93 191/322/93 +f 169/310/94 170/309/94 181/324/94 +f 177/311/95 176/306/95 189/326/95 +f 174/302/96 173/307/96 186/328/96 +f 182/349/97 170/309/97 192/329/97 +f 183/403/98 171/275/98 181/330/98 +f 178/312/99 177/311/99 190/332/99 +f 195/335/115 193/404/115 203/333/115 +f 194/405/116 204/406/116 203/333/116 +f 203/333/74 202/407/74 201/408/74 +f 201/408/117 200/409/117 199/334/117 +f 199/334/118 198/410/118 197/411/118 +f 197/411/74 196/412/74 199/334/74 +f 193/404/117 194/405/117 203/333/117 +f 203/333/74 201/408/74 199/334/74 +f 199/334/74 196/412/74 195/335/74 +f 184/316/100 183/315/100 196/337/100 +f 191/402/101 190/317/101 203/339/101 +f 188/319/102 187/318/102 200/341/102 +f 197/413/103 185/321/103 196/342/103 +f 204/414/104 192/343/104 203/344/104 +f 193/415/105 181/324/105 194/345/105 +f 189/326/106 188/325/106 201/347/106 +f 198/416/107 186/328/107 197/348/107 +f 194/417/108 182/349/108 204/350/108 +f 183/403/109 181/330/109 195/352/109 +f 202/418/110 190/332/110 201/353/110 diff --git a/assets/hbm/textures/models/missileBooster.png b/assets/hbm/textures/models/missileBooster.png new file mode 100644 index 0000000000000000000000000000000000000000..5d49b3bbf12cf2fe734fd70bfc97208304e9fd80 GIT binary patch literal 4435 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 literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/models/missileCarrier.png b/assets/hbm/textures/models/missileCarrier.png new file mode 100644 index 0000000000000000000000000000000000000000..f6692d88856ad4eed7954febb03998f4db2d4cda GIT binary patch literal 15609 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 literal 0 HcmV?d00001 diff --git a/com/hbm/blocks/bomb/LaunchPad.java b/com/hbm/blocks/bomb/LaunchPad.java index 0d25baabc..f4f8c1685 100644 --- a/com/hbm/blocks/bomb/LaunchPad.java +++ b/com/hbm/blocks/bomb/LaunchPad.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.logic.EntityMissileTest; +import com.hbm.entity.missile.EntityCarrier; import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBunkerBuster; import com.hbm.entity.missile.EntityMissileBurst; @@ -434,6 +435,20 @@ public class LaunchPad extends BlockContainer implements IBomb { p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); } } + + if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_carrier && entity.power >= 75000) + { + EntityCarrier missile = new EntityCarrier(p_149695_1_); + missile.posX = x + 0.5F; + missile.posY = y + 0.5F; + missile.posZ = z + 0.5F; + if (!p_149695_1_.isRemote) + p_149695_1_.spawnEntityInWorld(missile); + entity.power -= 75000; + + entity.slots[0] = null; + p_149695_1_.playSoundEffect(x, y, z, "hbm:weapon.missileTakeOff", 2.0F, 1.0F); + } } } diff --git a/com/hbm/blocks/test/TestEventTester.java b/com/hbm/blocks/test/TestEventTester.java index 89ab53aa1..cb7b3ae8c 100644 --- a/com/hbm/blocks/test/TestEventTester.java +++ b/com/hbm/blocks/test/TestEventTester.java @@ -15,6 +15,7 @@ import com.hbm.entity.projectile.EntityMeteor; import com.hbm.main.MainRegistry; import com.hbm.main.ModEventHandler; import com.hbm.potion.PotionEffectTaint; +import com.hbm.saveddata.SatelliteSavedData; import com.hbm.world.Meteorite; import net.minecraft.block.Block; @@ -26,8 +27,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.MathHelper; import net.minecraft.util.Vec3; +import net.minecraft.village.VillageCollection; import net.minecraft.world.World; import net.minecraft.world.WorldServer; import net.minecraft.world.chunk.Chunk; @@ -166,13 +169,13 @@ public class TestEventTester extends Block { ModEventHandler.meteorShower = 6000; }*/ - EntityCloudFleija rainbow = new EntityCloudFleija(worldObj); + /*EntityCloudFleija rainbow = new EntityCloudFleija(worldObj); rainbow.posX = x1; rainbow.posY = y1; rainbow.posZ = z1; rainbow.maxAge = 100; if(!worldObj.isRemote) - worldObj.spawnEntityInWorld(rainbow); + worldObj.spawnEntityInWorld(rainbow);*/ @@ -198,6 +201,8 @@ public class TestEventTester extends Block { @Override public boolean onBlockActivated(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer, int par6, float par7, float par8, float par9) { + this.worldObj = par1World; + /*double d = (float)par2 + 0.5F; double d1 = (float)par3 + 0.7F; double d2 = (float)par4 + 0.5F; @@ -226,11 +231,27 @@ public class TestEventTester extends Block { //return true; //System.out.println(par5EntityPlayer.getCommandSenderName()); //System.out.println(par5EntityPlayer.getUniqueID()); - List list = new ArrayList(); + /*List list = new ArrayList(); PotionEffect effect = new PotionEffect(PotionEffectTaint.instance.id, 300, 0); effect.setCurativeItems(list); par5EntityPlayer.addPotionEffect(effect); - return true; + return true;*/ + + + + if(!worldObj.isRemote) { + SatelliteSavedData data = (SatelliteSavedData)worldObj.perWorldStorage.loadData(SatelliteSavedData.class, "satellites"); + if(data == null) { + worldObj.perWorldStorage.setData("satellites", new SatelliteSavedData(worldObj)); + return true; + } + par5EntityPlayer.addChatComponentMessage(new ChatComponentText(String.valueOf(data.globalAccessThingy))); + data.globalAccessThingy = itemRand.nextInt(10000); + par5EntityPlayer.addChatComponentMessage(new ChatComponentText(String.valueOf(data.globalAccessThingy))); + data.markDirty(); + } + + return true; } /*public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float a, float b, float c) diff --git a/com/hbm/entity/missile/EntityBooster.java b/com/hbm/entity/missile/EntityBooster.java new file mode 100644 index 000000000..7768ffdcf --- /dev/null +++ b/com/hbm/entity/missile/EntityBooster.java @@ -0,0 +1,107 @@ +package com.hbm.entity.missile; + +import com.hbm.entity.effect.EntityNukeCloudSmall; +import com.hbm.entity.logic.EntityNukeExplosionAdvanced; +import com.hbm.entity.logic.EntityNukeExplosionMK3; +import com.hbm.entity.logic.EntityNukeExplosionMK4; +import com.hbm.entity.particle.EntityGasFlameFX; +import com.hbm.entity.particle.EntitySmokeFX; +import com.hbm.entity.particle.EntityTSmokeFX; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.init.Blocks; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; + +public class EntityBooster extends EntityThrowable { + + public EntityBooster(World p_i1582_1_) { + super(p_i1582_1_); + this.ignoreFrustumCheck = true; + } + + @Override + public void onUpdate() { + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + + this.posX += this.motionX; + this.posY += this.motionY; + this.posZ += this.motionZ; + + this.motionY -= 0.015; + + if(motionY < -1.5F) + motionY = -1.5F; + + this.rotation(); + + if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air) + { + if(!this.worldObj.isRemote) + { + ExplosionLarge.explodeFire(worldObj, posX, posY, posZ, 10F, true, false, true); + } + this.setDead(); + } + + if(!worldObj.isRemote) { + for(int i = 0; i < 2; i++) { + EntityTSmokeFX fx1 = new EntityTSmokeFX(worldObj); + fx1.posY = posY - 0.25D; + fx1.posX = posX + rand.nextGaussian() * 0.25D; + fx1.posZ = posZ + rand.nextGaussian() * 0.25D; + fx1.motionY = -0.2D; + + worldObj.spawnEntityInWorld(fx1); + } + } + + this.motionX *= 0.995; + this.motionZ *= 0.995; + } + + protected void rotation() { + float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); + this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); + + for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) + { + ; + } + + while (this.rotationPitch - this.prevRotationPitch >= 180.0F) + { + this.prevRotationPitch += 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw < -180.0F) + { + this.prevRotationYaw -= 360.0F; + } + + while (this.rotationYaw - this.prevRotationYaw >= 180.0F) + { + this.prevRotationYaw += 360.0F; + } + } + + @Override + protected void onImpact(MovingObjectPosition p_70184_1_) { + + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) + { + return distance < 500000; + } + +} diff --git a/com/hbm/entity/missile/EntityCarrier.java b/com/hbm/entity/missile/EntityCarrier.java new file mode 100644 index 000000000..505ff243c --- /dev/null +++ b/com/hbm/entity/missile/EntityCarrier.java @@ -0,0 +1,161 @@ +package com.hbm.entity.missile; + +import com.hbm.entity.particle.EntityDSmokeFX; +import com.hbm.entity.particle.EntityGasFlameFX; +import com.hbm.entity.particle.EntitySmokeFX; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.main.MainRegistry; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.projectile.EntityThrowable; +import net.minecraft.init.Blocks; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeChunkManager; +import net.minecraftforge.common.ForgeChunkManager.Type; + +public class EntityCarrier extends EntityThrowable { + + double acceleration = 0.00D; + + public EntityCarrier(World p_i1582_1_) { + super(p_i1582_1_); + this.ignoreFrustumCheck = true; + this.setSize(3.0F, 26.0F); + } + + @Override + public void onUpdate() { + + //this.setDead(); + + if(motionY < 3.0D) { + acceleration += 0.0005D; + motionY += acceleration; + } + + this.setLocationAndAngles(posX + this.motionX, posY + this.motionY, posZ + this.motionZ, 0, 0); + + if(!worldObj.isRemote) { + for(int i = 0; i < 10; i++) { + EntityGasFlameFX fx = new EntityGasFlameFX(worldObj); + fx.posY = posY - 0.25D; + fx.posX = posX + rand.nextGaussian() * 0.75D; + fx.posZ = posZ + rand.nextGaussian() * 0.75D; + fx.motionY = -0.2D; + + worldObj.spawnEntityInWorld(fx); + } + + if(this.dataWatcher.getWatchableObjectInt(8) == 1) + for(int i = 0; i < 2; i++) { + EntityGasFlameFX fx1 = new EntityGasFlameFX(worldObj); + fx1.posY = posY - 0.25D; + fx1.posX = posX + rand.nextGaussian() * 0.15D + 2.5D; + fx1.posZ = posZ + rand.nextGaussian() * 0.15D; + fx1.motionY = -0.2D; + + worldObj.spawnEntityInWorld(fx1); + + EntityGasFlameFX fx2 = new EntityGasFlameFX(worldObj); + fx2.posY = posY - 0.25D; + fx2.posX = posX + rand.nextGaussian() * 0.15D - 2.5D; + fx2.posZ = posZ + rand.nextGaussian() * 0.15D; + fx2.motionY = -0.2D; + + worldObj.spawnEntityInWorld(fx2); + + EntityGasFlameFX fx3 = new EntityGasFlameFX(worldObj); + fx3.posY = posY - 0.25D; + fx3.posX = posX + rand.nextGaussian() * 0.15D; + fx3.posZ = posZ + rand.nextGaussian() * 0.15D + 2.5D; + fx3.motionY = -0.2D; + + worldObj.spawnEntityInWorld(fx3); + + EntityGasFlameFX fx4 = new EntityGasFlameFX(worldObj); + fx4.posY = posY - 0.25D; + fx4.posX = posX + rand.nextGaussian() * 0.15D; + fx4.posZ = posZ + rand.nextGaussian() * 0.15D - 2.5D; + fx4.motionY = -0.2D; + + worldObj.spawnEntityInWorld(fx4); + } + + + if(this.ticksExisted < 20) { + ExplosionLarge.spawnShock(worldObj, posX, posY, posZ, 13 + rand.nextInt(3), 4 + rand.nextGaussian() * 2); + } + } + + if(this.posY > 300 && this.dataWatcher.getWatchableObjectInt(8) == 1) + this.disengageBoosters(); + //this.setDead(); + + if(this.posY > 600) { + this.setDead(); + } + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(8, 1); + } + + private void disengageBoosters() { + this.dataWatcher.updateObject(8, 0); + + if(!worldObj.isRemote) { + EntityBooster boost1 = new EntityBooster(worldObj); + boost1.posX = posX + 1.5D; + boost1.posY = posY; + boost1.posZ = posZ; + boost1.motionX = 0.45D + rand.nextDouble() * 0.2D; + boost1.motionY = motionY; + boost1.motionZ = rand.nextGaussian() * 0.1D; + worldObj.spawnEntityInWorld(boost1); + + EntityBooster boost2 = new EntityBooster(worldObj); + boost2.posX = posX - 1.5D; + boost2.posY = posY; + boost2.posZ = posZ; + boost2.motionX = -0.45D - rand.nextDouble() * 0.2D; + boost2.motionY = motionY; + boost2.motionZ = rand.nextGaussian() * 0.1D; + worldObj.spawnEntityInWorld(boost2); + + EntityBooster boost3 = new EntityBooster(worldObj); + boost3.posX = posX; + boost3.posY = posY; + boost3.posZ = posZ + 1.5D; + boost3.motionZ = 0.45D + rand.nextDouble() * 0.2D; + boost3.motionY = motionY; + boost3.motionX = rand.nextGaussian() * 0.1D; + worldObj.spawnEntityInWorld(boost3); + + EntityBooster boost4 = new EntityBooster(worldObj); + boost4.posX = posX; + boost4.posY = posY; + boost4.posZ = posZ - 1.5D; + boost4.motionZ = -0.45D - rand.nextDouble() * 0.2D; + boost4.motionY = motionY; + boost4.motionX = rand.nextGaussian() * 0.1D; + worldObj.spawnEntityInWorld(boost4); + } + } + + @Override + protected void onImpact(MovingObjectPosition p_70184_1_) { + } + + @Override + @SideOnly(Side.CLIENT) + public boolean isInRangeToRenderDist(double distance) + { + return distance < 500000; + } +} diff --git a/com/hbm/entity/missile/EntityMIRV.java b/com/hbm/entity/missile/EntityMIRV.java index aee856ac0..4beac4a2b 100644 --- a/com/hbm/entity/missile/EntityMIRV.java +++ b/com/hbm/entity/missile/EntityMIRV.java @@ -88,7 +88,7 @@ public class EntityMIRV extends EntityThrowable { @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { - return distance < 25000; + return distance < 500000; } } diff --git a/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/com/hbm/entity/missile/EntityMissileBaseAdvanced.java index 78da2ddea..7e4d0c1b0 100644 --- a/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ b/com/hbm/entity/missile/EntityMissileBaseAdvanced.java @@ -251,7 +251,7 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk @SideOnly(Side.CLIENT) public boolean isInRangeToRenderDist(double distance) { - return distance < 25000; + return distance < 500000; } public abstract void onImpact(); diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index b04acbdca..f352daffd 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -675,6 +675,8 @@ public class ModItems { public static Item missile_doomsday; public static Item missile_taint; public static Item missile_micro; + + public static Item missile_carrier; public static Item gun_rpg; public static Item gun_rpg_ammo; @@ -1816,6 +1818,7 @@ public class ModItems { missile_doomsday = new Item().setUnlocalizedName("missile_doomsday").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":missile_doomsday"); missile_taint = new Item().setUnlocalizedName("missile_taint").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":missile_taint"); missile_micro = new Item().setUnlocalizedName("missile_micro").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":missile_micro"); + missile_carrier = new Item().setUnlocalizedName("missile_carrier").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":missile_carrier"); gun_rpg = new GunRpg().setUnlocalizedName("gun_rpg").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_rpg_new"); gun_rpg_ammo = new Item().setUnlocalizedName("gun_rpg_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_rpg_ammo_new"); @@ -3131,6 +3134,7 @@ public class ModItems { GameRegistry.registerItem(missile_doomsday, missile_doomsday.getUnlocalizedName()); GameRegistry.registerItem(missile_taint, missile_taint.getUnlocalizedName()); GameRegistry.registerItem(missile_micro, missile_micro.getUnlocalizedName()); + GameRegistry.registerItem(missile_carrier, missile_carrier.getUnlocalizedName()); //Guns GameRegistry.registerItem(gun_revolver_iron, gun_revolver_iron.getUnlocalizedName()); diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index 4cb364759..2156a589d 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (Positron-X06)"; + public static final String VERSION = "1.0.27 BETA (Lanthanium-Y7)"; //HBM's Beta Naming Convention: //V T (X-Y-Z) //V -> next release version diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 49a1a29d3..c88fddf3e 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -283,6 +283,8 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityBoxcar.class, new RenderBoxcar()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileTaint.class, new RenderMissileTaint()); RenderingRegistry.registerEntityRenderingHandler(EntityMissileMicro.class, new RenderMissileTaint()); + RenderingRegistry.registerEntityRenderingHandler(EntityCarrier.class, new RenderCarrierMissile()); + RenderingRegistry.registerEntityRenderingHandler(EntityBooster.class, new RenderBoosterMissile()); RenderingRegistry.registerEntityRenderingHandler(EntityAAShell.class, new RenderMirv()); RenderingRegistry.registerEntityRenderingHandler(EntityRocketHoming.class, new RenderSRocket()); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 01c740fed..3886f55be 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -91,6 +91,8 @@ import com.hbm.entity.logic.EntityNukeExplosionPlus; import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.missile.EntityBombletSelena; import com.hbm.entity.missile.EntityBombletTheta; +import com.hbm.entity.missile.EntityBooster; +import com.hbm.entity.missile.EntityCarrier; import com.hbm.entity.missile.EntityMIRV; import com.hbm.entity.missile.EntityMissileAntiBallistic; import com.hbm.entity.missile.EntityMissileBunkerBuster; @@ -716,6 +718,8 @@ public class MainRegistry EntityRegistry.registerModEntity(EntityMissileMicro.class, "entity_missile_taint", 94, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityCloudSolinium.class, "entity_cloud_rainbow", 95, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityRagingVortex.class, "entity_raging_vortex", 96, this, 250, 1, true); + EntityRegistry.registerModEntity(EntityCarrier.class, "entity_missile_carrier", 97, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntityBooster.class, "entity_missile_booster", 98, this, 1000, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityHunterChopper.class, "entity_mob_hunter_chopper", EntityRegistry.findGlobalUniqueEntityId(), 0x000020, 0x2D2D72); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index e53e2e6e1..ee55aeae6 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -169,6 +169,8 @@ public class ResourceManager { public static final IModelCustom missileThermo = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileThermo.obj")); public static final IModelCustom missileDoomsday = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileDoomsday.obj")); public static final IModelCustom missileTaint = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileTaint.obj")); + public static final IModelCustom missileCarrier = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileCarrier.obj")); + public static final IModelCustom missileBooster = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/missileBooster.obj")); ////Texture Entities @@ -195,4 +197,6 @@ public class ResourceManager { public static final ResourceLocation missileDoomsday_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileDoomsday.png"); public static final ResourceLocation missileTaint_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileTaint.png"); public static final ResourceLocation missileMicro_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileMicro.png"); + public static final ResourceLocation missileCarrier_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileCarrier.png"); + public static final ResourceLocation missileBooster_tex = new ResourceLocation(RefStrings.MODID, "textures/models/missileBooster.png"); } diff --git a/com/hbm/packet/TEMissilePacket.java b/com/hbm/packet/TEMissilePacket.java index f90c4aee4..bdf56a672 100644 --- a/com/hbm/packet/TEMissilePacket.java +++ b/com/hbm/packet/TEMissilePacket.java @@ -68,6 +68,8 @@ public class TEMissilePacket implements IMessage { type = 18; if(stack.getItem() == ModItems.missile_micro) type = 19; + if(stack.getItem() == ModItems.missile_carrier) + type = 20; } } diff --git a/com/hbm/render/entity/RenderBoosterMissile.java b/com/hbm/render/entity/RenderBoosterMissile.java new file mode 100644 index 000000000..234f33f2a --- /dev/null +++ b/com/hbm/render/entity/RenderBoosterMissile.java @@ -0,0 +1,42 @@ +package com.hbm.render.entity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.model.AdvancedModelLoader; +import net.minecraftforge.client.model.IModelCustom; + +public class RenderBoosterMissile extends Render { + + public RenderBoosterMissile() { } + + @Override + public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) { + + GL11.glPushMatrix(); + GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glScalef(2F, 2F, 2F); + + bindTexture(ResourceManager.missileBooster_tex); + ResourceManager.missileBooster.renderAll(); + + GL11.glEnable(GL11.GL_CULL_FACE); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return ResourceManager.missileBooster_tex; + } +} diff --git a/com/hbm/render/entity/RenderCarrierMissile.java b/com/hbm/render/entity/RenderCarrierMissile.java new file mode 100644 index 000000000..9a160489b --- /dev/null +++ b/com/hbm/render/entity/RenderCarrierMissile.java @@ -0,0 +1,53 @@ +package com.hbm.render.entity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.ResourceManager; +import com.hbm.render.model.ModelShrapnel; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderCarrierMissile extends Render { + + public RenderCarrierMissile() { } + + @Override + public void doRender(Entity rocket, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, + float p_76986_9_) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) p_76986_2_, (float) p_76986_4_, (float) p_76986_6_); + GL11.glScalef(1.0F, 1.0F, 1.0F); + + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileCarrier_tex); + ResourceManager.missileCarrier.renderAll(); + + if(rocket.getDataWatcher().getWatchableObjectInt(8) == 1) { + GL11.glTranslated(0.0D, 0.5D, 0.0D); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + bindTexture(ResourceManager.missileBooster_tex); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(-2.5D, 0.0D, 0.0D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, -2.5D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + } + + GL11.glEnable(GL11.GL_CULL_FACE); + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return ResourceManager.missileCarrier_tex; + } +} diff --git a/com/hbm/render/tileentity/RenderLaunchPadTier1.java b/com/hbm/render/tileentity/RenderLaunchPadTier1.java index b5e0fde4b..8c8250802 100644 --- a/com/hbm/render/tileentity/RenderLaunchPadTier1.java +++ b/com/hbm/render/tileentity/RenderLaunchPadTier1.java @@ -30,7 +30,7 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5D, y, z + 0.5D); GL11.glEnable(GL11.GL_LIGHTING); - switch(tileEntity.getBlockMetadata()) + /*switch(tileEntity.getBlockMetadata()) { case 5: GL11.glRotatef(90, 0F, 1F, 0F); break; @@ -40,7 +40,7 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { GL11.glRotatef(270, 0F, 1F, 0F); break; case 3: GL11.glRotatef(0, 0F, 1F, 0F); break; - } + }*/ GL11.glScalef(1.5F, 1.0F, 1.5F); bindTexture(padTexture); @@ -169,6 +169,24 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer { bindTexture(ResourceManager.missileMicro_tex); ResourceManager.missileTaint.renderAll(); } + if(state == 20) + { + GL11.glScalef(2F, 2F, 2F); + bindTexture(ResourceManager.missileCarrier_tex); + ResourceManager.missileCarrier.renderAll(); + GL11.glTranslated(0.0D, 0.5D, 0.0D); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + bindTexture(ResourceManager.missileBooster_tex); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(-2.5D, 0.0D, 0.0D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(1.25D, 0.0D, 0.0D); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, -2.5D); + ResourceManager.missileBooster.renderAll(); + GL11.glTranslated(0.0D, 0.0D, 1.25D); + } GL11.glEnable(GL11.GL_CULL_FACE); diff --git a/com/hbm/saveddata/SatelliteSaveStructure.java b/com/hbm/saveddata/SatelliteSaveStructure.java new file mode 100644 index 000000000..9d2475b36 --- /dev/null +++ b/com/hbm/saveddata/SatelliteSaveStructure.java @@ -0,0 +1,39 @@ +package com.hbm.saveddata; + +import java.util.Arrays; + +import com.hbm.handler.FluidTypeHandler.FluidType; + +import net.minecraft.nbt.NBTTagCompound; + +public class SatelliteSaveStructure { + + public int satelliteID; + public SatelliteType satelliteType; + + enum SatelliteType { + MAPPER, RADAR, SCANNER, RELAY, LASER; + + public static SatelliteType getEnum(int i) { + if(i < SatelliteType.values().length) + return SatelliteType.values()[i]; + else + return SatelliteType.RELAY; + } + + public int getID() { + return Arrays.asList(SatelliteType.values()).indexOf(this); + } + } + + public void readFromNBT(NBTTagCompound nbt, int index) { + satelliteID = nbt.getInteger("sat_" + index + "_id"); + satelliteType = SatelliteType.getEnum(nbt.getInteger("sat_" + index + "_type")); + } + + public void writeToNBT(NBTTagCompound nbt, int index) { + nbt.setInteger("sat_" + index + "_id", satelliteID); + nbt.setInteger("sat_" + index + "_type", satelliteType.getID()); + } + +} diff --git a/com/hbm/saveddata/SatelliteSavedData.java b/com/hbm/saveddata/SatelliteSavedData.java new file mode 100644 index 000000000..8f807b1a6 --- /dev/null +++ b/com/hbm/saveddata/SatelliteSavedData.java @@ -0,0 +1,33 @@ +package com.hbm.saveddata; + +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import net.minecraft.world.WorldSavedData; + +public class SatelliteSavedData extends WorldSavedData { + + public int globalAccessThingy; + private World worldObj; + + public SatelliteSavedData(String p_i2141_1_) { + super(p_i2141_1_); + } + + public SatelliteSavedData(World p_i1678_1_) + { + super("satellites"); + this.worldObj = p_i1678_1_; + this.markDirty(); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + globalAccessThingy = nbt.getInteger("gat"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + nbt.setInteger("gat", globalAccessThingy); + } + +}