From 3008c373a4614ef42c0d8bc75716ae065e213925 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sun, 18 Feb 2018 23:24:06 +0100 Subject: [PATCH] Radar station --- assets/hbm/models/radar_base.obj | 276 ++++++++++++ assets/hbm/models/radar_head.obj | 404 ++++++++++++++++++ assets/hbm/textures/gui/gui_radar.png | Bin 0 -> 1829 bytes com/hbm/blocks/ModBlocks.java | 7 +- com/hbm/blocks/machine/MachineRadar.java | 77 ++++ .../missile/EntityMissileBaseAdvanced.java | 13 + .../missile/EntityMissileBunkerBuster.java | 5 + .../entity/missile/EntityMissileBurst.java | 5 + .../missile/EntityMissileBusterStrong.java | 5 + .../entity/missile/EntityMissileCluster.java | 5 + .../missile/EntityMissileClusterStrong.java | 5 + .../entity/missile/EntityMissileDoomsday.java | 5 + .../entity/missile/EntityMissileDrill.java | 5 + com/hbm/entity/missile/EntityMissileEndo.java | 5 + com/hbm/entity/missile/EntityMissileExo.java | 5 + .../entity/missile/EntityMissileGeneric.java | 5 + .../missile/EntityMissileIncendiary.java | 5 + .../EntityMissileIncendiaryStrong.java | 5 + .../entity/missile/EntityMissileInferno.java | 5 + com/hbm/entity/missile/EntityMissileMirv.java | 5 + .../entity/missile/EntityMissileNuclear.java | 5 + com/hbm/entity/missile/EntityMissileRain.java | 5 + .../entity/missile/EntityMissileStrong.java | 5 + .../entity/missile/EntityMissileTaint.java | 5 + com/hbm/handler/GUIHandler.java | 19 + .../container/ContainerMachineRadar.java | 30 ++ com/hbm/inventory/gui/GUIMachineRadar.java | 65 +++ com/hbm/main/ClientProxy.java | 1 + com/hbm/main/MainRegistry.java | 2 + com/hbm/main/ResourceManager.java | 4 + com/hbm/packet/PacketDispatcher.java | 2 + com/hbm/packet/TERadarPacket.java | 72 ++++ com/hbm/render/tileentity/RenderRadar.java | 47 ++ .../conductor/TileEntityPylonRedWire.java | 70 --- .../machine/TileEntityMachineRadar.java | 106 +++++ 35 files changed, 1214 insertions(+), 71 deletions(-) create mode 100644 assets/hbm/models/radar_base.obj create mode 100644 assets/hbm/models/radar_head.obj create mode 100644 assets/hbm/textures/gui/gui_radar.png create mode 100644 com/hbm/blocks/machine/MachineRadar.java create mode 100644 com/hbm/inventory/container/ContainerMachineRadar.java create mode 100644 com/hbm/inventory/gui/GUIMachineRadar.java create mode 100644 com/hbm/packet/TERadarPacket.java create mode 100644 com/hbm/render/tileentity/RenderRadar.java create mode 100644 com/hbm/tileentity/machine/TileEntityMachineRadar.java diff --git a/assets/hbm/models/radar_base.obj b/assets/hbm/models/radar_base.obj new file mode 100644 index 000000000..90a521fbc --- /dev/null +++ b/assets/hbm/models/radar_base.obj @@ -0,0 +1,276 @@ +# Blender v2.76 (sub 0) OBJ File: 'radar_base.blend' +# www.blender.org +o Cube_Cube.001 +v -0.500000 0.000000 0.500000 +v -0.500000 0.250000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.250000 -0.500000 +v 0.500000 0.000000 0.500000 +v 0.500000 0.250000 0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.250000 -0.500000 +v -0.500000 0.656250 0.156250 +v -0.500000 0.343750 0.156250 +v 0.000000 0.250000 -0.485000 +v 0.000000 0.850000 -0.485000 +v 0.353553 0.250000 -0.353553 +v 0.353553 0.850000 -0.353553 +v 0.485000 0.250000 0.000000 +v 0.485000 0.850000 0.000000 +v 0.353553 0.250000 0.353553 +v 0.353553 0.850000 0.353553 +v -0.000000 0.250000 0.485000 +v -0.000000 0.850000 0.485000 +v -0.353553 0.250000 0.353553 +v -0.353553 0.850000 0.353553 +v -0.485000 0.250000 -0.000000 +v -0.485000 0.850000 -0.000000 +v -0.353553 0.250000 -0.353553 +v -0.353553 0.850000 -0.353553 +v -0.500000 0.343750 -0.156250 +v -0.500000 0.656250 -0.156250 +v 0.500000 0.343750 0.156250 +v 0.500000 0.656250 0.156250 +v 0.500000 0.343750 -0.156250 +v 0.500000 0.656250 -0.156250 +v 0.156250 0.656250 0.500000 +v 0.156250 0.343750 0.500000 +v -0.156250 0.343750 0.500000 +v -0.156250 0.656250 0.500000 +v 0.156250 0.343750 -0.500000 +v 0.156250 0.656250 -0.500000 +v -0.156250 0.343750 -0.500000 +v -0.156250 0.656250 -0.500000 +v 0.176777 0.912500 -0.176777 +v -0.000000 0.912500 -0.242500 +v 0.242500 0.912500 0.000000 +v 0.176777 0.912500 0.176777 +v -0.000000 0.912500 0.242500 +v -0.176777 0.912500 0.176777 +v -0.242500 0.912500 -0.000000 +v -0.176777 0.912500 -0.176777 +v 0.176777 1.000000 -0.176777 +v -0.000000 1.000000 -0.242500 +v 0.242500 1.000000 0.000000 +v 0.176777 1.000000 0.176777 +v -0.000000 1.000000 0.242500 +v -0.176777 1.000000 0.176777 +v -0.242500 1.000000 -0.000000 +v -0.176777 1.000000 -0.176777 +vt 0.500000 0.677049 +vt 0.500000 0.616899 +vt 0.740598 0.616899 +vt 0.259403 0.677049 +vt 0.259403 0.616899 +vt 0.018805 0.677049 +vt 0.018805 0.616899 +vt 0.740598 0.677049 +vt 0.981195 0.616899 +vt 0.297012 0.714658 +vt 0.537610 0.714658 +vt 0.537610 0.955256 +vt 0.259402 0.955256 +vt 0.018805 0.955256 +vt 0.018805 0.714658 +vt 0.109558 0.163163 +vt 0.089226 0.219881 +vt 0.043849 0.219881 +vt 0.763170 0.428916 +vt 0.522572 0.428916 +vt 0.522572 0.353729 +vt 0.291063 0.163163 +vt 0.200310 0.163163 +vt 0.200311 0.018805 +vt 0.472569 0.163163 +vt 0.452237 0.219881 +vt 0.406861 0.219881 +vt 0.334589 0.504103 +vt 0.093992 0.504103 +vt 0.093992 0.428916 +vt 0.109558 0.018805 +vt 0.447385 0.504103 +vt 0.522572 0.504103 +vt 0.522572 0.579290 +vt 0.093992 0.278543 +vt 0.334589 0.278543 +vt 0.334589 0.353729 +vt 0.018805 0.163163 +vt 0.018805 0.018805 +vt 0.763170 0.504103 +vt 0.093992 0.353729 +vt 0.744828 0.163163 +vt 0.654075 0.163163 +vt 0.654075 0.018805 +vt 0.838357 0.579290 +vt 0.763170 0.579290 +vt 0.409776 0.353729 +vt 0.563322 0.163163 +vt 0.563322 0.018805 +vt 0.522572 0.278543 +vt 0.763170 0.278543 +vt 0.334589 0.579290 +vt 0.093992 0.579290 +vt 0.472569 0.018805 +vt 0.270731 0.219881 +vt 0.225355 0.219881 +vt 0.381816 0.163163 +vt 0.291063 0.018805 +vt 0.381816 0.018805 +vt 0.175266 0.219881 +vt 0.175266 0.240933 +vt 0.129890 0.240933 +vt 0.018805 0.278543 +vt 0.719784 0.219881 +vt 0.356772 0.219881 +vt 0.633743 0.219881 +vt 0.588366 0.219881 +vt 0.538278 0.219881 +vt 0.575219 0.789678 +vt 0.609574 0.714658 +vt 0.684594 0.749014 +vt 0.452237 0.240933 +vt 0.406861 0.240933 +vt 0.633743 0.240933 +vt 0.588366 0.240933 +vt 0.089226 0.240933 +vt 0.043849 0.240933 +vt 0.270731 0.240933 +vt 0.225355 0.240933 +vt 0.356772 0.240933 +vt 0.311395 0.240933 +vt 0.538278 0.240933 +vt 0.492901 0.240933 +vt 0.719784 0.240933 +vt 0.674407 0.240933 +vt 0.981195 0.677049 +vt 0.297012 0.955256 +vt 0.259402 0.714658 +vt 0.763170 0.353729 +vt 0.334589 0.428916 +vt 0.447385 0.579290 +vt 0.744828 0.018805 +vt 0.838356 0.504103 +vt 0.409776 0.278543 +vt 0.129890 0.219881 +vt 0.018805 0.353729 +vt 0.674407 0.219881 +vt 0.311395 0.219881 +vt 0.492901 0.219881 +vt 0.684594 0.794390 +vt 0.650239 0.824033 +vt 0.604862 0.824033 +vt 0.575219 0.744302 +vt 0.654951 0.714658 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.248500 0.964200 0.092400 +vn 0.348500 0.000000 -0.937300 +vn -0.248500 0.964200 -0.092400 +vn 0.937300 0.000000 -0.348500 +vn 0.937300 0.000000 0.348500 +vn 0.348500 0.000000 0.937300 +vn -0.348500 0.000000 0.937300 +vn -0.937300 0.000000 0.348500 +vn 0.092400 0.964200 -0.248500 +vn -0.348500 0.000000 -0.937300 +vn -0.937300 0.000000 -0.348500 +vn 0.092400 0.964200 0.248500 +vn -0.092400 0.964200 -0.248500 +vn -0.092400 0.964200 0.248500 +vn 0.248500 0.964200 -0.092400 +vn -0.248500 0.964200 0.092400 +s off +f 4/1/1 3/2/1 1/3/1 +f 8/4/2 7/5/2 3/2/2 +f 6/6/3 5/7/3 7/5/3 +f 2/8/4 1/3/4 5/9/4 +f 3/10/5 7/11/5 5/12/5 +f 8/13/6 4/14/6 2/15/6 +f 16/16/7 43/17/7 44/18/7 +f 40/19/6 36/20/6 33/21/6 +f 12/22/8 14/23/8 13/24/8 +f 24/25/9 47/26/9 48/27/9 +f 32/28/6 28/29/6 9/30/6 +f 14/23/10 16/16/10 15/31/10 +f 36/32/4 35/33/4 34/34/4 +f 27/35/5 31/36/5 29/37/5 +f 16/16/11 18/38/11 17/39/11 +f 40/19/1 39/40/1 35/33/1 +f 9/30/4 10/41/4 29/37/4 +f 18/42/12 20/43/12 19/44/12 +f 38/45/2 37/46/2 39/40/2 +f 30/47/3 29/37/3 31/36/3 +f 20/43/13 22/48/13 21/49/13 +f 33/21/3 34/50/3 37/51/3 +f 32/28/2 31/52/2 27/53/2 +f 22/48/14 24/25/14 23/54/14 +f 12/22/15 42/55/15 41/56/15 +f 26/57/16 12/22/16 11/58/16 +f 24/25/17 26/57/17 25/59/17 +f 41/60/10 49/61/10 51/62/10 +f 35/33/5 39/40/5 37/46/5 +f 28/63/1 27/35/1 10/41/1 +f 20/43/18 18/42/18 44/64/18 +f 12/22/19 26/57/19 48/65/19 +f 20/43/20 45/66/20 46/67/20 +f 16/16/21 14/23/21 41/60/21 +f 24/25/22 22/48/22 46/68/22 +f 55/69/6 53/70/6 51/71/6 +f 47/26/17 55/72/17 56/73/17 +f 45/66/13 53/74/13 54/75/13 +f 43/17/11 51/76/11 52/77/11 +f 42/55/8 50/78/8 49/79/8 +f 48/65/16 56/80/16 50/81/16 +f 46/68/14 54/82/14 55/83/14 +f 44/64/12 52/84/12 53/85/12 +f 2/8/1 4/1/1 1/3/1 +f 4/1/2 8/4/2 3/2/2 +f 8/4/3 6/6/3 7/5/3 +f 6/86/4 2/8/4 5/9/4 +f 1/87/5 3/10/5 5/12/5 +f 6/88/6 8/13/6 2/15/6 +f 18/38/7 16/16/7 44/18/7 +f 38/89/6 40/19/6 33/21/6 +f 11/58/8 12/22/8 13/24/8 +f 26/57/9 24/25/9 48/27/9 +f 30/90/6 32/28/6 9/30/6 +f 13/24/10 14/23/10 15/31/10 +f 33/91/4 36/32/4 34/34/4 +f 10/41/5 27/35/5 29/37/5 +f 15/31/11 16/16/11 17/39/11 +f 36/20/1 40/19/1 35/33/1 +f 30/90/4 9/30/4 29/37/4 +f 17/92/12 18/42/12 19/44/12 +f 40/93/2 38/45/2 39/40/2 +f 32/94/3 30/47/3 31/36/3 +f 19/44/13 20/43/13 21/49/13 +f 38/89/3 33/21/3 37/51/3 +f 28/29/2 32/28/2 27/53/2 +f 21/49/14 22/48/14 23/54/14 +f 14/23/15 12/22/15 41/56/15 +f 25/59/16 26/57/16 11/58/16 +f 23/54/17 24/25/17 25/59/17 +f 43/95/10 41/60/10 51/62/10 +f 34/34/5 35/33/5 37/46/5 +f 9/96/1 28/63/1 10/41/1 +f 45/97/18 20/43/18 44/64/18 +f 42/98/19 12/22/19 48/65/19 +f 22/48/20 20/43/20 46/67/20 +f 43/95/21 16/16/21 41/60/21 +f 47/99/22 24/25/22 46/68/22 +f 51/71/6 49/100/6 50/101/6 +f 50/101/6 56/102/6 55/69/6 +f 55/69/6 54/103/6 53/70/6 +f 53/70/6 52/104/6 51/71/6 +f 51/71/6 50/101/6 55/69/6 +f 48/27/17 47/26/17 56/73/17 +f 46/67/13 45/66/13 54/75/13 +f 44/18/11 43/17/11 52/77/11 +f 41/56/8 42/55/8 49/79/8 +f 42/98/16 48/65/16 50/81/16 +f 47/99/14 46/68/14 55/83/14 +f 45/97/12 44/64/12 53/85/12 diff --git a/assets/hbm/models/radar_head.obj b/assets/hbm/models/radar_head.obj new file mode 100644 index 000000000..346cfe68a --- /dev/null +++ b/assets/hbm/models/radar_head.obj @@ -0,0 +1,404 @@ +# Blender v2.76 (sub 0) OBJ File: 'radar_head.blend' +# www.blender.org +o Torus +v 0.578906 1.584721 -0.000000 +v 0.601365 1.806898 -0.000000 +v 0.546068 1.962747 -0.000000 +v 0.361454 1.273760 -0.000000 +v 0.487268 1.381080 -0.000000 +v 0.548050 1.592989 -0.242643 +v 0.571688 1.814850 -0.233375 +v 0.519476 1.969872 -0.209110 +v 0.334863 1.280885 -0.209110 +v 0.457591 1.389032 -0.233375 +v 0.457584 1.617229 -0.468750 +v 0.484678 1.838164 -0.450845 +v 0.441513 1.990763 -0.403970 +v 0.256899 1.301775 -0.403970 +v 0.370581 1.412347 -0.450845 +v 0.313675 1.655789 -0.662913 +v 0.346265 1.875252 -0.637592 +v 0.317491 2.023994 -0.571300 +v 0.132877 1.335007 -0.571300 +v 0.232168 1.449434 -0.637592 +v 0.126128 1.706043 -0.811899 +v 0.165882 1.923585 -0.780887 +v 0.155863 2.067302 -0.699697 +v -0.028751 1.378315 -0.699697 +v 0.051785 1.497768 -0.780887 +v 0.126128 1.706043 0.811899 +v 0.165882 1.923585 0.780887 +v 0.155863 2.067302 0.699697 +v -0.028751 1.378315 0.699697 +v 0.051785 1.497768 0.780887 +v 0.313674 1.655790 0.662913 +v 0.346265 1.875252 0.637592 +v 0.317491 2.023994 0.571301 +v 0.132877 1.335007 0.571301 +v 0.232168 1.449434 0.637592 +v 0.457584 1.617229 0.468750 +v 0.484678 1.838164 0.450845 +v 0.441513 1.990763 0.403970 +v 0.256899 1.301775 0.403970 +v 0.370581 1.412347 0.450845 +v 0.548050 1.592989 0.242643 +v 0.571688 1.814850 0.233374 +v 0.519476 1.969872 0.209110 +v 0.334863 1.280885 0.209110 +v 0.457591 1.389032 0.233374 +v -0.100000 1.000000 0.100000 +v -0.100000 1.200000 0.100000 +v -0.100000 1.000000 -0.100000 +v -0.100000 1.200000 -0.100000 +v 0.100000 1.000000 0.100000 +v 0.100000 1.200000 0.100000 +v 0.100000 1.000000 -0.100000 +v 0.100000 1.200000 -0.100000 +v -0.500000 1.550000 0.050000 +v -0.500000 1.700000 0.050000 +v -0.500000 1.700000 -0.050000 +v -0.500000 1.550000 -0.050000 +v -0.450000 1.518750 -0.025000 +v -0.450000 1.881250 -0.025000 +v -0.450000 1.518750 0.025000 +v -0.450000 1.881250 0.025000 +v -0.467678 1.518750 0.017678 +v -0.467678 1.881250 0.017678 +v -0.475000 1.518750 -0.000000 +v -0.475000 1.881250 -0.000000 +v -0.467678 1.518750 -0.017678 +v -0.467678 1.881250 -0.017678 +v -0.400000 1.518750 -0.025000 +v -0.400000 1.881250 -0.025000 +v -0.382322 1.518750 -0.017678 +v -0.382322 1.881250 -0.017678 +v -0.375000 1.518750 0.000000 +v -0.375000 1.881250 0.000000 +v -0.382322 1.518750 0.017678 +v -0.382322 1.881250 0.017678 +v -0.400000 1.518750 0.025000 +v -0.400000 1.881250 0.025000 +vt 0.749477 0.177462 +vt 0.851663 0.177461 +vt 0.849712 0.270681 +vt 0.751428 0.270681 +vt 0.844603 0.339539 +vt 0.844602 0.015383 +vt 0.849712 0.084242 +vt 0.751428 0.084242 +vt 0.718710 0.177464 +vt 0.716756 0.270683 +vt 0.618472 0.270681 +vt 0.711645 0.339542 +vt 0.623580 0.339539 +vt 0.623588 0.015383 +vt 0.711653 0.015385 +vt 0.716761 0.084244 +vt 0.616523 0.177461 +vt 0.271242 0.713845 +vt 0.373429 0.713845 +vt 0.371477 0.807065 +vt 0.366368 0.875923 +vt 0.278303 0.875923 +vt 0.366368 0.551767 +vt 0.371477 0.620625 +vt 0.273194 0.620625 +vt 0.851663 0.532386 +vt 0.849712 0.625606 +vt 0.751428 0.625606 +vt 0.844603 0.694464 +vt 0.756538 0.694464 +vt 0.844603 0.370308 +vt 0.849712 0.439167 +vt 0.751428 0.439167 +vt 0.984617 0.177461 +vt 0.982665 0.270681 +vt 0.884382 0.270681 +vt 0.977556 0.339539 +vt 0.977556 0.015383 +vt 0.982665 0.084242 +vt 0.884382 0.084242 +vt 0.882430 0.177461 +vt 0.117570 0.599110 +vt 0.115619 0.692329 +vt 0.017335 0.692329 +vt 0.110509 0.761188 +vt 0.022444 0.761188 +vt 0.022444 0.437032 +vt 0.110510 0.437032 +vt 0.115619 0.505890 +vt 0.017335 0.505890 +vt 0.718710 0.532386 +vt 0.716759 0.625606 +vt 0.618475 0.625606 +vt 0.711649 0.694464 +vt 0.623584 0.694465 +vt 0.711649 0.370308 +vt 0.716758 0.439167 +vt 0.618475 0.439167 +vt 0.616523 0.532386 +vt 0.506382 0.713845 +vt 0.504430 0.807065 +vt 0.406147 0.807065 +vt 0.499321 0.875923 +vt 0.411256 0.875923 +vt 0.499321 0.551767 +vt 0.504431 0.620625 +vt 0.406147 0.620625 +vt 0.404195 0.713845 +vt 0.041881 0.130470 +vt 0.086176 0.059678 +vt 0.107053 0.343634 +vt 0.213977 0.130470 +vt 0.169683 0.059678 +vt 0.240475 0.015383 +vt 0.502249 0.098891 +vt 0.502249 0.015383 +vt 0.585757 0.015383 +vt 0.015383 0.015383 +vt 0.585757 0.098891 +vt 0.585757 0.182399 +vt 0.502249 0.182399 +vt 0.107052 0.406265 +vt 0.148806 0.343634 +vt 0.182027 0.396728 +vt 0.564880 0.449753 +vt 0.523126 0.449753 +vt 0.469735 0.433464 +vt 0.271242 0.406604 +vt 0.340291 0.359638 +vt 0.471482 0.120906 +vt 0.445258 0.204975 +vt 0.334736 0.180122 +vt 0.292959 0.252428 +vt 0.306677 0.283195 +vt 0.452868 0.347029 +vt 0.179652 0.437032 +vt 0.187033 0.440089 +vt 0.187033 0.454851 +vt 0.685335 0.876611 +vt 0.677346 0.876608 +vt 0.677397 0.725251 +vt 0.669357 0.876605 +vt 0.669408 0.725249 +vt 0.632552 0.725236 +vt 0.653429 0.725243 +vt 0.653378 0.876600 +vt 0.661367 0.876603 +vt 0.661418 0.725246 +vt 0.706212 0.876618 +vt 0.685387 0.725254 +vt 0.632501 0.876593 +vt 0.624512 0.876590 +vt 0.624562 0.725234 +vt 0.616523 0.876588 +vt 0.616573 0.725231 +vt 0.722190 0.876623 +vt 0.714201 0.876621 +vt 0.714253 0.725264 +vt 0.706263 0.725261 +vt 0.300577 0.521000 +vt 0.460098 0.521000 +vt 0.271242 0.125882 +vt 0.312920 0.015383 +vt 0.471482 0.032841 +vt 0.756538 0.339540 +vt 0.756537 0.015383 +vt 0.618477 0.084242 +vt 0.273193 0.807065 +vt 0.278303 0.551767 +vt 0.749477 0.532386 +vt 0.756538 0.370308 +vt 0.889491 0.339539 +vt 0.889491 0.015383 +vt 0.015383 0.599110 +vt 0.623584 0.370308 +vt 0.411256 0.551767 +vt 0.073832 0.396728 +vt 0.148806 0.406265 +vt 0.179652 0.457908 +vt 0.158775 0.457908 +vt 0.151394 0.454851 +vt 0.148337 0.447470 +vt 0.151394 0.440089 +vt 0.158775 0.437032 +vt 0.190091 0.447470 +vt 0.722242 0.725267 +vn 0.986600 -0.099700 -0.128900 +vn 0.936900 0.332400 -0.107800 +vn 0.645200 -0.756400 -0.107800 +vn 0.904300 -0.406900 -0.128900 +vn 0.922200 -0.082500 -0.377800 +vn 0.883000 0.346900 -0.316100 +vn 0.591300 -0.741900 -0.316100 +vn 0.839900 -0.389700 -0.377800 +vn 0.797700 -0.049100 -0.601000 +vn 0.778900 0.374800 -0.502900 +vn 0.487100 -0.714000 -0.502900 +vn 0.715400 -0.356300 -0.601000 +vn 0.621700 -0.002000 -0.783300 +vn 0.631600 0.414300 -0.655300 +vn 0.339900 -0.674600 -0.655300 +vn 0.539400 -0.309200 -0.783300 +vn 0.621700 -0.002000 0.783300 +vn 0.631600 0.414300 0.655300 +vn 0.339900 -0.674600 0.655300 +vn 0.539400 -0.309200 0.783300 +vn 0.797700 -0.049100 0.601000 +vn 0.778900 0.374800 0.502900 +vn 0.487100 -0.714000 0.502900 +vn 0.715400 -0.356300 0.601000 +vn 0.922200 -0.082500 0.377800 +vn 0.883000 0.346900 0.316100 +vn 0.591300 -0.741900 0.316100 +vn 0.839900 -0.389700 0.377800 +vn 0.986600 -0.099700 0.128900 +vn 0.936900 0.332400 0.107800 +vn 0.645200 -0.756400 0.107800 +vn 0.904300 -0.406900 0.128900 +vn -0.124000 0.000000 -0.992300 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn -0.124000 0.000000 0.992300 +vn -0.808700 -0.588200 0.000000 +vn 0.780900 0.624700 0.000000 +vn 0.000000 0.948300 0.317500 +vn -0.236400 0.951600 -0.196600 +vn 0.421300 0.000000 -0.906900 +vn 0.421300 0.000000 0.906900 +vn -0.382700 0.000000 0.923900 +vn -0.923900 0.000000 0.382700 +vn -0.382700 0.000000 -0.923900 +vn -0.923900 0.000000 -0.382700 +vn 0.382700 0.000000 -0.923900 +vn 0.923900 0.000000 -0.382700 +vn 0.923900 0.000000 0.382700 +vn 0.382700 0.000000 0.923900 +vn -0.483500 -0.483500 -0.729600 +vn 0.654900 -0.677600 -0.334700 +vn -0.483500 -0.483500 0.729600 +vn 0.654900 -0.677600 0.334700 +vn -0.236400 0.951600 0.196600 +vn 0.000000 0.948300 -0.317500 +s off +f 1/1/1 6/2/1 7/3/1 +f 2/4/2 7/3/2 8/5/2 +f 9/6/3 10/7/3 5/8/3 +f 5/8/4 10/7/4 6/2/4 +f 11/9/5 12/10/5 7/11/5 +f 12/10/6 13/12/6 8/13/6 +f 9/14/7 14/15/7 15/16/7 +f 15/16/8 11/9/8 6/17/8 +f 11/18/9 16/19/9 17/20/9 +f 17/20/10 18/21/10 13/22/10 +f 19/23/11 20/24/11 15/25/11 +f 20/24/12 16/19/12 11/18/12 +f 21/26/13 22/27/13 17/28/13 +f 22/27/14 23/29/14 18/30/14 +f 24/31/15 25/32/15 20/33/15 +f 20/33/16 25/32/16 21/26/16 +f 31/34/17 32/35/17 27/36/17 +f 27/36/18 32/35/18 33/37/18 +f 34/38/19 35/39/19 30/40/19 +f 35/39/20 31/34/20 26/41/20 +f 36/42/21 37/43/21 32/44/21 +f 37/43/22 38/45/22 33/46/22 +f 34/47/23 39/48/23 40/49/23 +f 35/50/24 40/49/24 36/42/24 +f 41/51/25 42/52/25 37/53/25 +f 42/52/26 43/54/26 38/55/26 +f 44/56/27 45/57/27 40/58/27 +f 45/57/28 41/51/28 36/59/28 +f 1/60/29 2/61/29 42/62/29 +f 2/61/30 3/63/30 43/64/30 +f 4/65/31 5/66/31 45/67/31 +f 5/66/32 1/60/32 41/68/32 +f 49/69/33 48/70/33 57/71/33 +f 47/72/34 46/73/34 50/74/34 +f 51/75/35 50/76/35 52/77/35 +f 48/70/36 49/69/36 52/78/36 +f 53/79/37 49/80/37 47/81/37 +f 56/82/38 57/71/38 54/83/38 +f 47/72/39 55/84/39 54/83/39 +f 46/73/40 54/83/40 57/71/40 +f 49/80/41 56/85/41 55/86/41 +f 14/87/42 49/88/42 53/89/42 +f 39/90/43 44/91/43 51/92/43 +f 50/93/44 51/92/44 44/91/44 +f 52/94/45 9/95/45 53/89/45 +f 77/96/37 75/97/37 71/98/37 +f 61/99/46 63/100/46 62/101/46 +f 63/100/47 65/102/47 64/103/47 +f 68/104/36 58/105/36 59/106/36 +f 67/107/48 59/106/48 58/105/48 +f 65/102/49 67/107/49 66/108/49 +f 77/109/34 61/99/34 60/110/34 +f 69/111/50 71/112/50 70/113/50 +f 71/112/51 73/114/51 72/115/51 +f 73/116/52 75/117/52 74/118/52 +f 75/117/53 77/109/53 76/119/53 +f 49/88/54 14/87/54 52/120/54 +f 9/121/55 52/120/55 14/87/55 +f 47/122/56 50/123/56 39/90/56 +f 39/90/57 50/123/57 44/124/57 +f 2/4/1 1/1/1 7/3/1 +f 3/125/2 2/4/2 8/5/2 +f 4/126/3 9/6/3 5/8/3 +f 1/1/4 5/8/4 6/2/4 +f 6/17/5 11/9/5 7/11/5 +f 7/11/6 12/10/6 8/13/6 +f 10/127/7 9/14/7 15/16/7 +f 10/127/8 15/16/8 6/17/8 +f 12/128/9 11/18/9 17/20/9 +f 12/128/10 17/20/10 13/22/10 +f 14/129/11 19/23/11 15/25/11 +f 15/25/12 20/24/12 11/18/12 +f 16/130/13 21/26/13 17/28/13 +f 17/28/14 22/27/14 18/30/14 +f 19/131/15 24/31/15 20/33/15 +f 16/130/16 20/33/16 21/26/16 +f 26/41/17 31/34/17 27/36/17 +f 28/132/18 27/36/18 33/37/18 +f 29/133/19 34/38/19 30/40/19 +f 30/40/20 35/39/20 26/41/20 +f 31/134/21 36/42/21 32/44/21 +f 32/44/22 37/43/22 33/46/22 +f 35/50/23 34/47/23 40/49/23 +f 31/134/24 35/50/24 36/42/24 +f 36/59/25 41/51/25 37/53/25 +f 37/53/26 42/52/26 38/55/26 +f 39/135/27 44/56/27 40/58/27 +f 40/58/28 45/57/28 36/59/28 +f 41/68/29 1/60/29 42/62/29 +f 42/62/30 2/61/30 43/64/30 +f 44/136/31 4/65/31 45/67/31 +f 45/67/32 5/66/32 41/68/32 +f 56/137/33 49/69/33 57/71/33 +f 53/79/35 51/75/35 52/77/35 +f 51/75/37 53/79/37 47/81/37 +f 55/138/38 56/82/38 54/83/38 +f 46/73/39 47/72/39 54/83/39 +f 48/70/40 46/73/40 57/71/40 +f 47/81/41 49/80/41 55/86/41 +f 9/95/58 14/87/58 53/89/58 +f 47/122/59 39/90/59 51/92/59 +f 71/98/37 69/139/37 77/96/37 +f 59/140/37 67/141/37 65/142/37 +f 65/142/37 63/143/37 61/144/37 +f 61/144/37 77/96/37 69/139/37 +f 75/97/37 73/145/37 71/98/37 +f 69/139/37 59/140/37 61/144/37 +f 65/142/37 61/144/37 59/140/37 +f 60/110/46 61/99/46 62/101/46 +f 62/101/47 63/100/47 64/103/47 +f 69/111/36 68/104/36 59/106/36 +f 66/108/48 67/107/48 58/105/48 +f 64/103/49 65/102/49 66/108/49 +f 76/119/34 77/109/34 60/110/34 +f 68/104/50 69/111/50 70/113/50 +f 70/113/51 71/112/51 72/115/51 +f 72/146/52 73/116/52 74/118/52 +f 74/118/53 75/117/53 76/119/53 diff --git a/assets/hbm/textures/gui/gui_radar.png b/assets/hbm/textures/gui/gui_radar.png new file mode 100644 index 0000000000000000000000000000000000000000..22d33bda2eaf13974bc9f2bd67d9ee2bd406d37f GIT binary patch literal 1829 zcmb_dSx}Q#6uv(sCTwL_z>Xl(5|O~$Ma(F*j z@^cS8Oni%Hru!PEjA^urX9EC!m)rJkptkRM)*$MTUJr|lYC+FwmZY079{ssx$S;jfm{)!L;$W6?2m!MM& zz}(jne)LWyCpkg84#HAgFlnlIEtKe*6T~?I!C)+8Y^FzG-LYOAg#<5Z0TGlQQT(zI zc8--vOGnfz_0(*@+^agRtYf$2v<^e^_3PIwdZ6PcY`4yc#bP!!LgHDZn|cYk+|MY> zGeP0zS5}0Vlm_hM)`B;~q2;bFPb@eW2DVPlR0t!*i_(NQ%vAsG@#j-^rG?pT9>W4< zl^(PWvboSTHDyUJa0*~gbL7t7>q0jz0n?E?e-+@Sr?dF_%lZM<&zd?;Lb%uVU@&o{ zHWb3F*06@SX`Le+g&S-nQPRR8+{_wlp+KEgs@(#N7h2SZ zxbahVuufq(Qni^lQpQOpA4mvPoL*bYhiBH)yD4*fZGZ{fR7C1b&ep627PpLnHnEK- z8AX7!=B|NNWh-#)qjI+21lay|G=HDV0f-FYl@F62D|Ls!V;y8}CvatYuqDnJdC!l*;L1dyDa6daNVVf5MEL9?SgCXe;(7`}!GNL5A zUKkX!QfvtvZ{+(+&$R$Oe-#vfb$oy7F#=rC00={Xw%W`Bzg%fLC#@AmYImpl_u-%4 ziwy;O{BmQs&x_MN7q;p*mfXL%@apV?Zk4C)H#kli(A-dGO*$=c$Dm`Y zsQR|?=AYL`A};9J0rK{rKgD63?J-4(qL4>(L@9f@RK|V9#ooyv4eaMG7&##t3G*6| z)iB|KCj95y#pva#TCh7(3u}%jSK|rlBfxvXHz3O$)Q;xUD~qNcFa^bViM_vNd}>5q z$`5npIoUC(z1nr%9j4?zqJr%mlsn>WVR%9tR`uZ2v^2AKQHK_IJb{Psc)a%BPpV%= zHSVgas*2W~>YnICKMJ?a-Dr1B3+I~b{#!3phLMz1-3Zi0!9;Yd7NE|}&c^b0%73~S z;y1V_Kqi%jvnO*r2k(QD`csU81A4a#RsBB1@3x%5YIcWB<%TFnjY6uNR`jx2=`T~<2!D6{C2_i%t##kcW&HEk-^sYNdyz)0g|KP6x literal 0 HcmV?d00001 diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index e854761a6..1254777ed 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -385,6 +385,9 @@ public class ModBlocks { public static Block launch_pad; public static final int guiID_launch_pad = 19; + public static Block machine_radar; + public static final int guiID_radar = 59; + public static Block machine_pumpjack; public static final int guiID_machine_pumpjack = 51; @@ -738,6 +741,7 @@ public class ModBlocks { marker_structure = new BlockMarker(Material.iron).setBlockName("marker_structure").setHardness(0.0F).setResistance(0.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":marker_structure"); launch_pad = new LaunchPad(Material.iron).setBlockName("launch_pad").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke).setBlockTextureName(RefStrings.MODID + ":launch_pad"); + machine_radar = new MachineRadar(Material.iron).setBlockName("machine_radar").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke).setBlockTextureName(RefStrings.MODID + ":machine_radar"); turret_light = new TurretLight(Material.iron).setBlockName("turret_light").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke).setBlockTextureName(RefStrings.MODID + ":turret_light"); turret_heavy = new TurretHeavy(Material.iron).setBlockName("turret_heavy").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke).setBlockTextureName(RefStrings.MODID + ":turret_heavy"); @@ -1134,8 +1138,9 @@ public class ModBlocks { GameRegistry.registerBlock(ams_emitter, ams_emitter.getUnlocalizedName()); GameRegistry.registerBlock(ams_limiter, ams_limiter.getUnlocalizedName()); - //Launch Pads + //Missile Blocks GameRegistry.registerBlock(launch_pad, launch_pad.getUnlocalizedName()); + GameRegistry.registerBlock(machine_radar, machine_radar.getUnlocalizedName()); //Guide GameRegistry.registerBlock(book_guide, book_guide.getUnlocalizedName()); diff --git a/com/hbm/blocks/machine/MachineRadar.java b/com/hbm/blocks/machine/MachineRadar.java new file mode 100644 index 000000000..e8aeaec47 --- /dev/null +++ b/com/hbm/blocks/machine/MachineRadar.java @@ -0,0 +1,77 @@ +package com.hbm.blocks.machine; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityConverterRfHe; +import com.hbm.tileentity.machine.TileEntityMachineRadar; + +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.IBlockAccess; +import net.minecraft.world.World; + +public class MachineRadar extends BlockContainer { + + public MachineRadar(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityMachineRadar(); + } + + @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()) + { + TileEntityMachineRadar entity = (TileEntityMachineRadar) world.getTileEntity(x, y, z); + if(entity != null) + { + FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_radar, world, x, y, z); + } + return true; + } else { + return false; + } + } + + public boolean canProvidePower() + { + return true; + } + + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int m) + { + TileEntityMachineRadar entity = (TileEntityMachineRadar) world.getTileEntity(x, y, z); + return (!entity.nearbyMissiles.isEmpty()) ? 15 : 0; + } + + public int isProvidingStrongPower(IBlockAccess world, int x, int y, int z, int m) + { + return isProvidingWeakPower(world, x, y, z, m); + } +} diff --git a/com/hbm/entity/missile/EntityMissileBaseAdvanced.java b/com/hbm/entity/missile/EntityMissileBaseAdvanced.java index bc942a9fa..c8e2082aa 100644 --- a/com/hbm/entity/missile/EntityMissileBaseAdvanced.java +++ b/com/hbm/entity/missile/EntityMissileBaseAdvanced.java @@ -7,6 +7,7 @@ import com.hbm.entity.logic.IChunkLoader; import com.hbm.entity.particle.EntitySmokeFX; import com.hbm.explosion.ExplosionLarge; import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineRadar; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -172,6 +173,16 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk { //super.onUpdate(); + if(!worldObj.isRemote && !TileEntityMachineRadar.allMissiles.contains(this)) + TileEntityMachineRadar.allMissiles.add(this); + + //if(!worldObj.loadedEntityList.contains(this)) + // worldObj.loadedEntityList.add(this); + + //System.out.println(this.posX + " " + this.posY + " " + this.posZ); + + + if(velocity < 1) velocity = 1; if(this.ticksExisted > 40) @@ -242,6 +253,8 @@ public abstract class EntityMissileBaseAdvanced extends Entity implements IChunk public abstract void onImpact(); + public abstract int getMissileType(); + public abstract List getDebris(); public abstract ItemStack getDebrisRareDrop(); diff --git a/com/hbm/entity/missile/EntityMissileBunkerBuster.java b/com/hbm/entity/missile/EntityMissileBunkerBuster.java index fa94b9363..1b1ef9316 100644 --- a/com/hbm/entity/missile/EntityMissileBunkerBuster.java +++ b/com/hbm/entity/missile/EntityMissileBunkerBuster.java @@ -49,4 +49,9 @@ public class EntityMissileBunkerBuster extends EntityMissileBaseAdvanced { return new ItemStack(ModItems.warhead_buster_large); } + @Override + public int getMissileType() { + return 0; + } + } diff --git a/com/hbm/entity/missile/EntityMissileBurst.java b/com/hbm/entity/missile/EntityMissileBurst.java index 6ed8909f3..c2311c234 100644 --- a/com/hbm/entity/missile/EntityMissileBurst.java +++ b/com/hbm/entity/missile/EntityMissileBurst.java @@ -43,4 +43,9 @@ public class EntityMissileBurst extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_large); } + + @Override + public int getMissileType() { + return 2; + } } diff --git a/com/hbm/entity/missile/EntityMissileBusterStrong.java b/com/hbm/entity/missile/EntityMissileBusterStrong.java index d9c257324..863436b29 100644 --- a/com/hbm/entity/missile/EntityMissileBusterStrong.java +++ b/com/hbm/entity/missile/EntityMissileBusterStrong.java @@ -47,4 +47,9 @@ public class EntityMissileBusterStrong extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_medium); } + + @Override + public int getMissileType() { + return 1; + } } diff --git a/com/hbm/entity/missile/EntityMissileCluster.java b/com/hbm/entity/missile/EntityMissileCluster.java index 5addbaf95..7b58c5ff5 100644 --- a/com/hbm/entity/missile/EntityMissileCluster.java +++ b/com/hbm/entity/missile/EntityMissileCluster.java @@ -47,4 +47,9 @@ public class EntityMissileCluster extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_small); } + + @Override + public int getMissileType() { + return 0; + } } diff --git a/com/hbm/entity/missile/EntityMissileClusterStrong.java b/com/hbm/entity/missile/EntityMissileClusterStrong.java index b5b20bf11..3be33842c 100644 --- a/com/hbm/entity/missile/EntityMissileClusterStrong.java +++ b/com/hbm/entity/missile/EntityMissileClusterStrong.java @@ -48,4 +48,9 @@ public class EntityMissileClusterStrong extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_medium); } + + @Override + public int getMissileType() { + return 1; + } } diff --git a/com/hbm/entity/missile/EntityMissileDoomsday.java b/com/hbm/entity/missile/EntityMissileDoomsday.java index d1ca3946d..9b405ec6b 100644 --- a/com/hbm/entity/missile/EntityMissileDoomsday.java +++ b/com/hbm/entity/missile/EntityMissileDoomsday.java @@ -108,4 +108,9 @@ public class EntityMissileDoomsday extends EntityMissileBaseAdvanced { return null; } + @Override + public int getMissileType() { + return 3; + } + } diff --git a/com/hbm/entity/missile/EntityMissileDrill.java b/com/hbm/entity/missile/EntityMissileDrill.java index 71f07b63d..b89ad1a4b 100644 --- a/com/hbm/entity/missile/EntityMissileDrill.java +++ b/com/hbm/entity/missile/EntityMissileDrill.java @@ -47,4 +47,9 @@ public class EntityMissileDrill extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_buster_large); } + + @Override + public int getMissileType() { + return 2; + } } diff --git a/com/hbm/entity/missile/EntityMissileEndo.java b/com/hbm/entity/missile/EntityMissileEndo.java index ab734f170..f17ebd7e8 100644 --- a/com/hbm/entity/missile/EntityMissileEndo.java +++ b/com/hbm/entity/missile/EntityMissileEndo.java @@ -44,4 +44,9 @@ public class EntityMissileEndo extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_thermo_exo); } + + @Override + public int getMissileType() { + return 3; + } } diff --git a/com/hbm/entity/missile/EntityMissileExo.java b/com/hbm/entity/missile/EntityMissileExo.java index fbbb58a76..837da79a0 100644 --- a/com/hbm/entity/missile/EntityMissileExo.java +++ b/com/hbm/entity/missile/EntityMissileExo.java @@ -44,4 +44,9 @@ public class EntityMissileExo extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_thermo_exo); } + + @Override + public int getMissileType() { + return 3; + } } diff --git a/com/hbm/entity/missile/EntityMissileGeneric.java b/com/hbm/entity/missile/EntityMissileGeneric.java index c3c6e1330..b1b3388c5 100644 --- a/com/hbm/entity/missile/EntityMissileGeneric.java +++ b/com/hbm/entity/missile/EntityMissileGeneric.java @@ -41,6 +41,11 @@ public class EntityMissileGeneric extends EntityMissileBaseAdvanced { return new ItemStack(ModItems.warhead_generic_small); } + @Override + public int getMissileType() { + return 0; + } + /*public EntityMissileGeneric(World p_i1582_1_) { super(p_i1582_1_); } diff --git a/com/hbm/entity/missile/EntityMissileIncendiary.java b/com/hbm/entity/missile/EntityMissileIncendiary.java index 9d16d13d9..a9007c8d5 100644 --- a/com/hbm/entity/missile/EntityMissileIncendiary.java +++ b/com/hbm/entity/missile/EntityMissileIncendiary.java @@ -43,4 +43,9 @@ public class EntityMissileIncendiary extends EntityMissileBaseAdvanced { return new ItemStack(ModItems.warhead_incendiary_small); } + @Override + public int getMissileType() { + return 0; + } + } diff --git a/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java b/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java index 5790f5271..0f0422620 100644 --- a/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java +++ b/com/hbm/entity/missile/EntityMissileIncendiaryStrong.java @@ -43,4 +43,9 @@ public class EntityMissileIncendiaryStrong extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_medium); } + + @Override + public int getMissileType() { + return 1; + } } diff --git a/com/hbm/entity/missile/EntityMissileInferno.java b/com/hbm/entity/missile/EntityMissileInferno.java index 8a41ea52c..7bf293abe 100644 --- a/com/hbm/entity/missile/EntityMissileInferno.java +++ b/com/hbm/entity/missile/EntityMissileInferno.java @@ -44,4 +44,9 @@ public class EntityMissileInferno extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_incendiary_large); } + + @Override + public int getMissileType() { + return 2; + } } diff --git a/com/hbm/entity/missile/EntityMissileMirv.java b/com/hbm/entity/missile/EntityMissileMirv.java index cbee0c190..c610f313a 100644 --- a/com/hbm/entity/missile/EntityMissileMirv.java +++ b/com/hbm/entity/missile/EntityMissileMirv.java @@ -68,4 +68,9 @@ public class EntityMissileMirv extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_generic_large); } + + @Override + public int getMissileType() { + return 3; + } } diff --git a/com/hbm/entity/missile/EntityMissileNuclear.java b/com/hbm/entity/missile/EntityMissileNuclear.java index deafb6e8e..92039622a 100644 --- a/com/hbm/entity/missile/EntityMissileNuclear.java +++ b/com/hbm/entity/missile/EntityMissileNuclear.java @@ -60,4 +60,9 @@ public class EntityMissileNuclear extends EntityMissileBaseAdvanced { return new ItemStack(ModItems.warhead_nuclear); } + @Override + public int getMissileType() { + return 3; + } + } diff --git a/com/hbm/entity/missile/EntityMissileRain.java b/com/hbm/entity/missile/EntityMissileRain.java index 169fb4d0a..83fbad956 100644 --- a/com/hbm/entity/missile/EntityMissileRain.java +++ b/com/hbm/entity/missile/EntityMissileRain.java @@ -48,4 +48,9 @@ public class EntityMissileRain extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return new ItemStack(ModItems.warhead_cluster_large); } + + @Override + public int getMissileType() { + return 2; + } } diff --git a/com/hbm/entity/missile/EntityMissileStrong.java b/com/hbm/entity/missile/EntityMissileStrong.java index 1065c708a..9b6c3bffe 100644 --- a/com/hbm/entity/missile/EntityMissileStrong.java +++ b/com/hbm/entity/missile/EntityMissileStrong.java @@ -42,4 +42,9 @@ public class EntityMissileStrong extends EntityMissileBaseAdvanced { return new ItemStack(ModItems.warhead_generic_medium); } + @Override + public int getMissileType() { + return 1; + } + } diff --git a/com/hbm/entity/missile/EntityMissileTaint.java b/com/hbm/entity/missile/EntityMissileTaint.java index ce13af531..482f05512 100644 --- a/com/hbm/entity/missile/EntityMissileTaint.java +++ b/com/hbm/entity/missile/EntityMissileTaint.java @@ -41,4 +41,9 @@ public class EntityMissileTaint extends EntityMissileBaseAdvanced { public ItemStack getDebrisRareDrop() { return null; } + + @Override + public int getMissileType() { + return 0; + } } diff --git a/com/hbm/handler/GUIHandler.java b/com/hbm/handler/GUIHandler.java index 2a09c6859..42763bbd4 100644 --- a/com/hbm/handler/GUIHandler.java +++ b/com/hbm/handler/GUIHandler.java @@ -50,6 +50,7 @@ import com.hbm.tileentity.machine.TileEntityMachinePuF6Tank; import com.hbm.tileentity.machine.TileEntityMachinePumpjack; import com.hbm.tileentity.machine.TileEntityMachineRTG; import com.hbm.tileentity.machine.TileEntityMachineRadGen; +import com.hbm.tileentity.machine.TileEntityMachineRadar; import com.hbm.tileentity.machine.TileEntityMachineReactor; import com.hbm.tileentity.machine.TileEntityMachineRefinery; import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; @@ -588,6 +589,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_radar: + { + if(entity instanceof TileEntityMachineRadar) + { + return new ContainerMachineRadar(player.inventory, (TileEntityMachineRadar) entity); + } + return null; + } } return null; } @@ -1111,6 +1121,15 @@ public class GUIHandler implements IGuiHandler { } return null; } + + case ModBlocks.guiID_radar: + { + if(entity instanceof TileEntityMachineRadar) + { + return new GUIMachineRadar(player.inventory, (TileEntityMachineRadar) entity); + } + return null; + } } } else { //CLIENTONLY GUIS diff --git a/com/hbm/inventory/container/ContainerMachineRadar.java b/com/hbm/inventory/container/ContainerMachineRadar.java new file mode 100644 index 000000000..85717bf48 --- /dev/null +++ b/com/hbm/inventory/container/ContainerMachineRadar.java @@ -0,0 +1,30 @@ +package com.hbm.inventory.container; + +import com.hbm.tileentity.machine.TileEntityMachineRadGen; +import com.hbm.tileentity.machine.TileEntityMachineRadar; + +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 ContainerMachineRadar extends Container { + + private TileEntityMachineRadar radar; + + public ContainerMachineRadar(InventoryPlayer invPlayer, TileEntityMachineRadar tedf) { + this.radar = tedf; + } + + @Override + public void addCraftingToCrafters(ICrafting crafting) { + super.addCraftingToCrafters(crafting); + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return true; + } +} diff --git a/com/hbm/inventory/gui/GUIMachineRadar.java b/com/hbm/inventory/gui/GUIMachineRadar.java new file mode 100644 index 000000000..0fdef150d --- /dev/null +++ b/com/hbm/inventory/gui/GUIMachineRadar.java @@ -0,0 +1,65 @@ +package com.hbm.inventory.gui; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.FluidTank; +import com.hbm.inventory.container.ContainerGenerator; +import com.hbm.inventory.container.ContainerMachineRadar; +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineGenerator; +import com.hbm.tileentity.machine.TileEntityMachineRadar; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIMachineRadar extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_radar.png"); + private TileEntityMachineRadar diFurnace; + + public GUIMachineRadar(InventoryPlayer invPlayer, TileEntityMachineRadar tedf) { + super(new ContainerMachineRadar(invPlayer, tedf)); + diFurnace = tedf; + + this.xSize = 216; + this.ySize = 234; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 221, 200, 7, diFurnace.power, diFurnace.maxPower); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = I18n.format("container.radar"); + + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(diFurnace.power > 0) { + int i = (int)diFurnace.getPowerScaled(200); + drawTexturedModalRect(guiLeft + 8, guiTop + 221, 0, 234, i, 16); + } + + if(!diFurnace.nearbyMissiles.isEmpty()) { + for(int[] m : diFurnace.nearbyMissiles) { + int x = (int)((m[0] - diFurnace.xCoord) / ((double)TileEntityMachineRadar.range * 2 + 1) * (200D - 8D)) - 4; + int z = (int)((m[1] - diFurnace.zCoord) / ((double)TileEntityMachineRadar.range * 2 + 1) * (200D - 8D)) - 4; + int t = m[2]; + + drawTexturedModalRect(guiLeft + 108 + x, guiTop + 117 + z, 216, 8 * t, 8, 8); + } + } + } +} diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 9628cf3bf..d2155c38f 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -78,6 +78,7 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineTurbofan.class, new RenderTurbofan()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePress.class, new RenderPress()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadGen.class, new RenderRadGen()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRadar.class, new RenderRadar()); //RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core)); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 5317e8c04..89dd4edb6 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -234,6 +234,7 @@ import com.hbm.tileentity.machine.TileEntityMachinePuF6Tank; import com.hbm.tileentity.machine.TileEntityMachinePumpjack; import com.hbm.tileentity.machine.TileEntityMachineRTG; import com.hbm.tileentity.machine.TileEntityMachineRadGen; +import com.hbm.tileentity.machine.TileEntityMachineRadar; import com.hbm.tileentity.machine.TileEntityMachineReactor; import com.hbm.tileentity.machine.TileEntityMachineRefinery; import com.hbm.tileentity.machine.TileEntityMachineSPP; @@ -571,6 +572,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityMachineRadGen.class, "tileentity_radgen"); GameRegistry.registerTileEntity(TileEntityMachineTransformer.class, "tileentity_transformer"); GameRegistry.registerTileEntity(TileEntityTurretCWIS.class, "tileentity_turret_cwis"); + GameRegistry.registerTileEntity(TileEntityMachineRadar.class, "tileentity_radar"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 5d46570dd..a7e3e5043 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -57,6 +57,10 @@ public class ResourceManager { public static final IModelCustom radgen_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rad_gen_body.obj")); public static final IModelCustom radgen_rotor = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/rad_gen_rotor.obj")); + //Radar + public static final IModelCustom radar_body = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_base.obj")); + public static final IModelCustom radar_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/radar_head.obj")); + ////Textures TEs public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); diff --git a/com/hbm/packet/PacketDispatcher.java b/com/hbm/packet/PacketDispatcher.java index 7a3024900..3c1616d4c 100644 --- a/com/hbm/packet/PacketDispatcher.java +++ b/com/hbm/packet/PacketDispatcher.java @@ -57,6 +57,8 @@ public class PacketDispatcher { wrapper.registerMessage(TESirenPacket.Handler.class, TESirenPacket.class, i++, Side.CLIENT); //Signals server to change ItemStack's wrapper.registerMessage(ItemDesignatorPacket.Handler.class, ItemDesignatorPacket.class, i++, Side.SERVER); + //Siren packet for looped sounds + wrapper.registerMessage(TERadarPacket.Handler.class, TERadarPacket.class, i++, Side.CLIENT); } } diff --git a/com/hbm/packet/TERadarPacket.java b/com/hbm/packet/TERadarPacket.java new file mode 100644 index 000000000..50ec64f96 --- /dev/null +++ b/com/hbm/packet/TERadarPacket.java @@ -0,0 +1,72 @@ +package com.hbm.packet; + +import com.hbm.tileentity.conductor.TileEntityPylonRedWire; +import com.hbm.tileentity.machine.TileEntityMachineRadar; + +import cpw.mods.fml.common.network.simpleimpl.IMessage; +import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; +import cpw.mods.fml.common.network.simpleimpl.MessageContext; +import io.netty.buffer.ByteBuf; +import net.minecraft.client.Minecraft; +import net.minecraft.tileentity.TileEntity; + +public class TERadarPacket implements IMessage { + + int x; + int y; + int z; + int conX; + int conY; + int conZ; + + public TERadarPacket() { + + } + + public TERadarPacket(int x, int y, int z, int conX, int conY, int conZ) { + this.x = x; + this.y = y; + this.z = z; + this.conX = conX; + this.conY = conY; + this.conZ = conZ; + } + + @Override + public void fromBytes(ByteBuf buf) { + x = buf.readInt(); + y = buf.readInt(); + z = buf.readInt(); + conX = buf.readInt(); + conY = buf.readInt(); + conZ = buf.readInt(); + } + + @Override + public void toBytes(ByteBuf buf) { + buf.writeInt(x); + buf.writeInt(y); + buf.writeInt(z); + buf.writeInt(conX); + buf.writeInt(conY); + buf.writeInt(conZ); + } + + public static class Handler implements IMessageHandler { + + @Override + public IMessage onMessage(TERadarPacket m, MessageContext ctx) { + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z); + + try { + if (te != null && te instanceof TileEntityMachineRadar) { + + TileEntityMachineRadar radar = (TileEntityMachineRadar) te; + radar.nearbyMissiles.add(new int[]{m.x, m.y, m.z}); + } + } catch (Exception x) { + } + return null; + } + } +} diff --git a/com/hbm/render/tileentity/RenderRadar.java b/com/hbm/render/tileentity/RenderRadar.java new file mode 100644 index 000000000..80f2ea953 --- /dev/null +++ b/com/hbm/render/tileentity/RenderRadar.java @@ -0,0 +1,47 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.tileentity.machine.TileEntityMachineMiningDrill; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderRadar extends TileEntitySpecialRenderer { + + @Override + public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + bindTexture(ResourceManager.universal); + + ResourceManager.radar_body.renderAll(); + + GL11.glPopMatrix(); + + renderTileEntityAt2(tileEntity, x, y, z, f); + } + + public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f) + { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5D, y, z + 0.5D); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glRotatef(180, 0F, 1F, 0F); + + GL11.glRotatef((System.currentTimeMillis() / 10) % 360, 0F, 1F, 0F); + + bindTexture(ResourceManager.universal); + ResourceManager.radar_head.renderAll(); + + GL11.glPopMatrix(); + } + +} diff --git a/com/hbm/tileentity/conductor/TileEntityPylonRedWire.java b/com/hbm/tileentity/conductor/TileEntityPylonRedWire.java index d7d4ad56f..5dcbfd463 100644 --- a/com/hbm/tileentity/conductor/TileEntityPylonRedWire.java +++ b/com/hbm/tileentity/conductor/TileEntityPylonRedWire.java @@ -138,74 +138,4 @@ public class TileEntityPylonRedWire extends TileEntity implements IConductor { { return 65536.0D; } - - /*Princess cards she sends me with her regards, - Oh, bar-room eyes shine vacancy - To see her you gotta look hard - Wounded deep in battle, I stand stuffed like some soldier undaunted - To her cheshire smile I'll stand on file - She's all I ever wanted - You let your blue walls stand in the way of these facts, honey - Get your carpet baggers off my back - Girl give me time to cover my tracks - You said, "Here's your mirror and your ball and jacks" - But they're not what I came for - Oh I came for so much more - And I know you that too - And I know you know that's true - - I came for you - I came for you - I came for you - For you - I came for you - - Crawl into my ambulance - Your pulse is getting weak - Reveal yourself all to me now - While you've got the strength to speak - 'Cause they're waiting for you at Bellevue - With their oxygen masks - But I could give it all to you now - If only you could ask - Don't call for your surgeon - Even he says it's late - It's not your lungs this time - But your heart holds your fate - Don't give me my money back - Don't want it anymore - It's not that nursery mouth I came back for - It's not the way you're stretched out on the floor - I've broken all your windows - And I've rammed through all your doors - Who am I to ask you to fight my wars - And you should know that's true - You should know that too - - I came for you - I came for you - I came for you - For you - I came for you - - Don't call for your surgeon - Even he says it's late - It's not your lungs this time - But your heart holds your fate - Don't give me my money back - Don't want it anymore - It's not that nursery mouth I came back for - It's not the way you're stretched out on the floor - I've broken all your windows - And I've rammed through all your doors - Who am I to ask you to fight my wars - You should know that's true - You should know that too - - I came for you - I came for you - I came for you - For you - I came for you*/ - } diff --git a/com/hbm/tileentity/machine/TileEntityMachineRadar.java b/com/hbm/tileentity/machine/TileEntityMachineRadar.java new file mode 100644 index 000000000..a93ee5a28 --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityMachineRadar.java @@ -0,0 +1,106 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.entity.missile.EntityMissileBaseAdvanced; +import com.hbm.interfaces.IConsumer; +import com.hbm.lib.ModDamageSource; +import com.hbm.packet.AuxElectricityPacket; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.TERadarPacket; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class TileEntityMachineRadar extends TileEntity implements IConsumer { + + public static List allMissiles = new ArrayList(); + public List nearbyMissiles = new ArrayList(); + + public static int range = 1000; + + public long power = 0; + public static final int maxPower = 100000; + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + power = nbt.getLong("power"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + } + + @Override + public void updateEntity() { + + nearbyMissiles.clear(); + + if(power > 0) { + + allocateMissiles(); + if(!worldObj.isRemote) { + sendMissileData(); + } + + power -= 1000; + if(power < 0) + power = 0; + } + + worldObj.notifyBlocksOfNeighborChange(xCoord, yCoord, zCoord, getBlockType()); + + if(!worldObj.isRemote) + PacketDispatcher.wrapper.sendToAll(new AuxElectricityPacket(xCoord, yCoord, zCoord, power)); + } + + private void allocateMissiles() { + + for(Object e : allMissiles) { + //for(Object e : worldObj.loadedEntityList) { + if(e instanceof EntityMissileBaseAdvanced) { + EntityMissileBaseAdvanced m = (EntityMissileBaseAdvanced)e; + + if(!m.isDead && m.posX < xCoord + range && m.posX > xCoord - range && + m.posZ < zCoord + range && m.posZ > zCoord - range) + this.nearbyMissiles.add(new int[] {(int)m.posX, (int)m.posZ, m.getMissileType()}); + } + } + } + + private void sendMissileData() { + + for(int[] e : this.nearbyMissiles) { + PacketDispatcher.wrapper.sendToAll(new TERadarPacket(xCoord, yCoord, zCoord, e[0], e[1], e[2])); + } + } + + public long getPowerScaled(long i) { + return (power * i) / maxPower; + } + + @Override + public void setPower(long i) { + power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } +}