diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 54ff205be..ae086d578 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -249,6 +249,11 @@ item.turret_control.name=Geschützsteuerung item.turret_chip.name=Geschütz-KI-Chip item.turret_biometry.name=Geschütz-Telemetriekarte +tile.mine_ap.name=Antipersonenmine +tile.mine_he.name=Antipanzermine +tile.mine_shrap.name=Schrapnellmine +item.defuser.name=High-Tech Bombenentschärfungsgerät + tile.bomb_multi.name=Mehrzweckbombe tile.rejuvinator.name=Regenerationsmaschine diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 4c0c357ee..f90ea8127 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -261,6 +261,11 @@ item.turret_control.name=Turret Controller item.turret_chip.name=Turret AI-Chip item.turret_biometry.name=Turret Telemetry Card +tile.mine_ap.name=Anti-Personell Mine +tile.mine_he.name=Anti-Tank Mine +tile.mine_shrap.name=Shrapnel Mine +item.defuser.name=High-Tech Bomb Defusing Device + tile.crate.name=Supply Crate tile.crate_weapon.name=Weapon Crate tile.crate_lead.name=Hazmat Crate diff --git a/assets/hbm/models/mine_ap.obj b/assets/hbm/models/mine_ap.obj new file mode 100644 index 000000000..00709083c --- /dev/null +++ b/assets/hbm/models/mine_ap.obj @@ -0,0 +1,209 @@ +# Blender v2.76 (sub 0) OBJ File: 'mine_ap.blend' +# www.blender.org +o Sphere +v -0.023918 0.081742 0.000000 +v -0.044194 0.068194 0.000000 +v -0.057743 0.047918 0.000000 +v -0.062500 0.024000 0.000000 +v -0.057743 0.000082 0.000000 +v -0.016913 0.081742 -0.016912 +v -0.031250 0.068194 -0.031250 +v -0.040830 0.047918 -0.040830 +v -0.044194 0.024000 -0.044194 +v -0.040830 0.000082 -0.040830 +v -0.000000 0.081742 -0.023918 +v -0.000000 0.068194 -0.044194 +v -0.000000 0.047918 -0.057742 +v -0.000000 0.024000 -0.062500 +v -0.000000 0.000082 -0.057742 +v -0.000000 0.086500 0.000000 +v 0.016912 0.081742 -0.016912 +v 0.031250 0.068194 -0.031250 +v 0.040830 0.047918 -0.040830 +v 0.044194 0.024000 -0.044194 +v 0.040830 0.000082 -0.040830 +v 0.023918 0.081742 0.000000 +v 0.044194 0.068194 0.000000 +v 0.057742 0.047918 0.000000 +v 0.062500 0.024000 0.000000 +v 0.057742 0.000082 0.000000 +v 0.016912 0.081742 0.016912 +v 0.031250 0.068194 0.031250 +v 0.040830 0.047918 0.040830 +v 0.044194 0.024000 0.044194 +v 0.040830 0.000082 0.040830 +v -0.000000 0.081742 0.023918 +v -0.000000 0.068194 0.044194 +v -0.000000 0.047918 0.057742 +v -0.000000 0.024000 0.062500 +v -0.000000 0.000082 0.057742 +v -0.016913 0.081742 0.016912 +v -0.031250 0.068194 0.031250 +v -0.040830 0.047918 0.040830 +v -0.044194 0.024000 0.044194 +v -0.040830 0.000082 0.040830 +v -0.061524 0.148194 -0.061523 +v 0.061523 0.148194 -0.061523 +v 0.061523 0.148194 0.061523 +v -0.061524 0.148194 0.061523 +v -0.005980 0.081742 0.000000 +v -0.000000 0.081742 -0.005979 +v -0.000000 0.111500 0.000000 +v 0.005979 0.081742 0.000000 +v -0.000000 0.081742 0.005979 +v -0.000000 0.086500 0.000000 +vt 0.713388 0.422365 +vt 0.372492 0.422365 +vt 0.358449 0.234785 +vt 0.613541 0.784500 +vt 0.472338 0.784500 +vt 0.412485 0.606170 +vt 0.727431 0.234785 +vt 0.372492 0.047204 +vt 0.673395 0.606170 +vt 0.713387 0.047204 +vt 0.542940 0.958853 +vt 0.074879 0.038923 +vt 0.262088 0.020580 +vt 0.262088 0.720477 +vt 0.839131 0.569078 +vt 0.877120 0.614143 +vt 0.839131 0.803203 +vt 0.837838 0.803203 +vt 0.799848 0.614143 +vt 0.837838 0.569078 +vt 0.878413 0.569078 +vt 0.916403 0.614143 +vt 0.878413 0.803204 +vt 0.917696 0.614143 +vt 0.955685 0.569078 +vt 0.955685 0.803203 +vn -0.908700 0.180700 -0.376400 +vn -0.541400 0.810300 -0.224300 +vn -0.908700 -0.180700 -0.376400 +vn -0.786200 0.525300 -0.325600 +vn -0.376400 0.180700 -0.908700 +vn -0.224300 0.810300 -0.541400 +vn -0.376400 -0.180700 -0.908700 +vn -0.325600 0.525300 -0.786200 +vn 0.376400 -0.180700 -0.908700 +vn 0.325600 0.525300 -0.786200 +vn 0.376400 0.180700 -0.908700 +vn 0.224300 0.810300 -0.541400 +vn 0.786200 0.525300 -0.325600 +vn 0.908700 0.180700 -0.376400 +vn 0.541400 0.810300 -0.224300 +vn 0.908700 -0.180700 -0.376400 +vn 0.908700 0.180700 0.376400 +vn 0.541400 0.810300 0.224300 +vn 0.908700 -0.180700 0.376400 +vn 0.786200 0.525300 0.325600 +vn 0.224300 0.810300 0.541400 +vn 0.376400 -0.180700 0.908700 +vn 0.325600 0.525300 0.786200 +vn 0.376400 0.180700 0.908700 +vn -0.376400 -0.180700 0.908700 +vn -0.325600 0.525300 0.786200 +vn -0.376400 0.180700 0.908700 +vn -0.224300 0.810300 0.541400 +vn -0.194500 0.977600 -0.080500 +vn -0.080500 0.977600 -0.194500 +vn 0.080500 0.977600 -0.194500 +vn 0.194500 0.977600 -0.080500 +vn 0.194500 0.977600 0.080500 +vn 0.080500 0.977600 0.194500 +vn -0.080500 0.977600 0.194500 +vn -0.194500 0.977600 0.080500 +vn -0.908700 0.180700 0.376400 +vn -0.541400 0.810300 0.224300 +vn -0.908700 -0.180700 0.376400 +vn -0.786200 0.525300 0.325600 +vn -0.707100 0.000000 0.707100 +vn 0.707100 0.000000 0.707100 +vn 0.707100 0.000000 -0.707100 +vn -0.707100 0.000000 -0.707100 +vn -1.000000 0.000000 -0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 -0.000000 +vn 0.000000 0.000000 -1.000000 +s off +f 3/1/1 8/2/1 9/3/1 +f 1/4/2 6/5/2 7/6/2 +f 4/7/3 9/3/3 10/8/3 +f 2/9/4 7/6/4 8/2/4 +f 8/1/5 13/2/5 14/3/5 +f 6/4/6 11/5/6 12/6/6 +f 9/7/7 14/3/7 15/8/7 +f 7/9/8 12/6/8 13/2/8 +f 14/7/9 20/3/9 21/8/9 +f 12/9/10 18/6/10 19/2/10 +f 13/1/11 19/2/11 20/3/11 +f 11/4/12 17/5/12 18/6/12 +f 18/9/13 23/6/13 24/2/13 +f 19/1/14 24/2/14 25/3/14 +f 17/4/15 22/5/15 23/6/15 +f 20/7/16 25/3/16 26/8/16 +f 25/7/17 24/1/17 29/2/17 +f 23/9/18 22/4/18 27/5/18 +f 25/7/19 30/3/19 31/8/19 +f 23/9/20 28/6/20 29/2/20 +f 28/9/21 27/4/21 32/5/21 +f 31/10/22 30/7/22 35/3/22 +f 29/1/23 28/9/23 33/6/23 +f 29/1/24 34/2/24 35/3/24 +f 35/7/25 40/3/25 41/8/25 +f 33/9/26 38/6/26 39/2/26 +f 35/7/27 34/1/27 39/2/27 +f 32/4/28 37/5/28 38/6/28 +f 1/4/29 16/11/29 6/5/29 +f 6/4/30 16/11/30 11/5/30 +f 11/4/31 16/11/31 17/5/31 +f 17/4/32 16/11/32 22/5/32 +f 22/4/33 16/11/33 27/5/33 +f 27/4/34 16/11/34 32/5/34 +f 32/4/35 16/11/35 37/5/35 +f 37/4/36 16/11/36 1/5/36 +f 39/1/37 3/2/37 4/3/37 +f 37/4/38 1/5/38 2/6/38 +f 40/7/39 4/3/39 5/8/39 +f 39/1/40 38/9/40 2/6/40 +f 27/12/41 28/13/41 44/14/41 +f 17/12/42 18/13/42 43/14/42 +f 6/12/43 7/13/43 42/14/43 +f 37/12/44 38/13/44 45/14/44 +f 47/15/45 51/16/45 48/17/45 +f 48/18/46 51/19/46 49/20/46 +f 50/21/47 51/22/47 48/23/47 +f 51/24/48 46/25/48 48/26/48 +f 4/7/1 3/1/1 9/3/1 +f 2/9/2 1/4/2 7/6/2 +f 5/10/3 4/7/3 10/8/3 +f 3/1/4 2/9/4 8/2/4 +f 9/7/5 8/1/5 14/3/5 +f 7/9/6 6/4/6 12/6/6 +f 10/10/7 9/7/7 15/8/7 +f 8/1/8 7/9/8 13/2/8 +f 15/10/9 14/7/9 21/8/9 +f 13/1/10 12/9/10 19/2/10 +f 14/7/11 13/1/11 20/3/11 +f 12/9/12 11/4/12 18/6/12 +f 19/1/13 18/9/13 24/2/13 +f 20/7/14 19/1/14 25/3/14 +f 18/9/15 17/4/15 23/6/15 +f 21/10/16 20/7/16 26/8/16 +f 30/3/17 25/7/17 29/2/17 +f 28/6/18 23/9/18 27/5/18 +f 26/10/19 25/7/19 31/8/19 +f 24/1/20 23/9/20 29/2/20 +f 33/6/21 28/9/21 32/5/21 +f 36/8/22 31/10/22 35/3/22 +f 34/2/23 29/1/23 33/6/23 +f 30/7/24 29/1/24 35/3/24 +f 36/10/25 35/7/25 41/8/25 +f 34/1/26 33/9/26 39/2/26 +f 40/3/27 35/7/27 39/2/27 +f 33/9/28 32/4/28 38/6/28 +f 40/7/37 39/1/37 4/3/37 +f 38/9/38 37/4/38 2/6/38 +f 41/10/39 40/7/39 5/8/39 +f 3/2/40 39/1/40 2/6/40 diff --git a/assets/hbm/models/mine_he.obj b/assets/hbm/models/mine_he.obj new file mode 100644 index 000000000..d26f0d488 --- /dev/null +++ b/assets/hbm/models/mine_he.obj @@ -0,0 +1,376 @@ +# Blender v2.76 (sub 0) OBJ File: 'mine_he.blend' +# www.blender.org +o Cylinder +v 0.000000 0.000000 -0.250000 +v 0.000000 0.125000 -0.250000 +v 0.125000 0.000000 -0.216506 +v 0.125000 0.125000 -0.216506 +v 0.216506 0.000000 -0.125000 +v 0.216506 0.125000 -0.125000 +v 0.250000 0.000000 0.000000 +v 0.250000 0.125000 0.000000 +v 0.216506 0.000000 0.125000 +v 0.216506 0.125000 0.125000 +v 0.125000 0.000000 0.216506 +v 0.125000 0.125000 0.216506 +v 0.000000 0.000000 0.250000 +v 0.000000 0.125000 0.250000 +v -0.125000 0.000000 0.216506 +v -0.125000 0.125000 0.216506 +v -0.216506 0.000000 0.125000 +v -0.216506 0.125000 0.125000 +v -0.250000 0.000000 0.000000 +v -0.250000 0.125000 0.000000 +v -0.216506 0.000000 -0.125000 +v -0.216506 0.125000 -0.125000 +v -0.125000 0.000000 -0.216506 +v -0.125000 0.125000 -0.216506 +v 0.100000 0.125000 -0.173205 +v -0.000000 0.125000 -0.200000 +v 0.173205 0.125000 -0.100000 +v 0.200000 0.125000 0.000000 +v 0.173205 0.125000 0.100000 +v 0.100000 0.125000 0.173205 +v 0.000000 0.125000 0.200000 +v -0.100000 0.125000 0.173205 +v -0.173205 0.125000 0.100000 +v -0.200000 0.125000 0.000000 +v -0.173205 0.125000 -0.100000 +v -0.100000 0.125000 -0.173205 +v 0.100000 0.110000 -0.173205 +v -0.000000 0.110000 -0.200000 +v 0.173205 0.110000 -0.100000 +v 0.200000 0.110000 0.000000 +v 0.173205 0.110000 0.100000 +v 0.100000 0.110000 0.173205 +v 0.000000 0.110000 0.200000 +v -0.100000 0.110000 0.173205 +v -0.173205 0.110000 0.100000 +v -0.200000 0.110000 0.000000 +v -0.173205 0.110000 -0.100000 +v -0.100000 0.110000 -0.173205 +v 0.070000 0.110000 -0.121244 +v -0.000000 0.110000 -0.140000 +v 0.121244 0.110000 -0.070000 +v 0.140000 0.110000 0.000000 +v 0.121244 0.110000 0.070000 +v 0.070000 0.110000 0.121244 +v 0.000000 0.110000 0.140000 +v -0.070000 0.110000 0.121244 +v -0.121244 0.110000 0.070000 +v -0.140000 0.110000 0.000000 +v -0.121244 0.110000 -0.070000 +v -0.070000 0.110000 -0.121244 +v 0.070000 0.125000 -0.121244 +v -0.000000 0.125000 -0.140000 +v 0.121244 0.125000 -0.070000 +v 0.140000 0.125000 0.000000 +v 0.121244 0.125000 0.070000 +v 0.070000 0.125000 0.121244 +v 0.000000 0.125000 0.140000 +v -0.070000 0.125000 0.121244 +v -0.121244 0.125000 0.070000 +v -0.140000 0.125000 0.000000 +v -0.121244 0.125000 -0.070000 +v -0.070000 0.125000 -0.121244 +v 0.035000 0.125000 -0.060622 +v -0.000000 0.125000 -0.070000 +v 0.060622 0.125000 -0.035000 +v 0.070000 0.125000 0.000000 +v 0.060622 0.125000 0.035000 +v 0.035000 0.125000 0.060622 +v 0.000000 0.125000 0.070000 +v -0.035000 0.125000 0.060622 +v -0.060622 0.125000 0.035000 +v -0.070000 0.125000 0.000000 +v -0.060622 0.125000 -0.035000 +v -0.035000 0.125000 -0.060622 +v 0.021000 0.150000 -0.036373 +v -0.000000 0.150000 -0.042000 +v 0.036373 0.150000 -0.021000 +v 0.042000 0.150000 0.000000 +v 0.036373 0.150000 0.021000 +v 0.021000 0.150000 0.036373 +v 0.000000 0.150000 0.042000 +v -0.021000 0.150000 0.036373 +v -0.036373 0.150000 0.021000 +v -0.042000 0.150000 0.000000 +v -0.036373 0.150000 -0.021000 +v -0.021000 0.150000 -0.036373 +vt 0.960752 0.210383 +vt 0.779713 0.210383 +vt 0.779713 0.035513 +vt 0.942646 0.277949 +vt 0.694075 0.517821 +vt 0.018428 0.336781 +vt 0.265732 0.089478 +vt 0.942648 0.298932 +vt 0.797817 0.298932 +vt 0.797814 0.277947 +vt 0.920923 0.380009 +vt 0.819542 0.380009 +vt 0.920923 0.400994 +vt 0.819542 0.400994 +vt 0.895578 0.495584 +vt 0.844887 0.495584 +vt 0.762072 0.729031 +vt 0.791336 0.772633 +vt 0.769830 0.794139 +vt 0.761958 0.823517 +vt 0.879471 0.823517 +vt 0.850093 0.874402 +vt 0.915201 0.764875 +vt 0.871599 0.794139 +vt 0.850093 0.772633 +vt 0.879357 0.918004 +vt 0.871599 0.852895 +vt 0.709566 0.819974 +vt 0.722685 0.771011 +vt 0.873221 0.725488 +vt 0.820715 0.764761 +vt 0.931864 0.827060 +vt 0.918744 0.876024 +vt 0.709566 0.827060 +vt 0.769830 0.852895 +vt 0.768208 0.921547 +vt 0.791336 0.874402 +vt 0.820715 0.882274 +vt 0.817172 0.712368 +vt 0.918744 0.771011 +vt 0.931864 0.819974 +vt 0.762072 0.918004 +vt 0.726228 0.882160 +vt 0.824257 0.934666 +vt 0.960752 0.035512 +vt 0.446771 0.089478 +vt 0.603555 0.179997 +vt 0.694075 0.336782 +vt 0.603555 0.674605 +vt 0.446771 0.765124 +vt 0.265732 0.765124 +vt 0.108948 0.674605 +vt 0.018428 0.517820 +vt 0.108948 0.179997 +vt 0.726228 0.764875 +vt 0.879357 0.729031 +vt 0.915201 0.882160 +vt 0.824257 0.712368 +vt 0.722685 0.876024 +vt 0.817172 0.934666 +vt 0.768208 0.725488 +vt 0.873221 0.921547 +vn 0.258800 0.000000 -0.965900 +vn 0.707100 0.000000 -0.707100 +vn 0.965900 0.000000 -0.258800 +vn 0.965900 0.000000 0.258800 +vn 0.707100 0.000000 0.707100 +vn 0.258800 0.000000 0.965900 +vn -0.258800 0.000000 0.965900 +vn -0.707100 0.000000 0.707100 +vn -0.965900 0.000000 0.258800 +vn -0.965900 0.000000 -0.258800 +vn 0.000000 1.000000 0.000000 +vn -0.258800 0.000000 -0.965900 +vn -0.707100 0.000000 -0.707100 +vn 0.000000 -1.000000 0.000000 +vn -0.655700 0.734300 0.175700 +vn 0.175700 0.734300 0.655700 +vn 0.655700 0.734300 -0.175700 +vn -0.655700 0.734300 -0.175700 +vn -0.175700 0.734300 0.655700 +vn 0.655700 0.734300 0.175700 +vn -0.480000 0.734300 -0.480000 +vn 0.175700 0.734300 -0.655700 +vn -0.480000 0.734300 0.480000 +vn 0.480000 0.734300 0.480000 +vn -0.175700 0.734300 -0.655700 +vn 0.480000 0.734300 -0.480000 +s off +f 2/1/1 4/2/1 3/3/1 +f 4/1/2 6/2/2 5/3/2 +f 6/1/3 8/2/3 7/3/3 +f 8/1/4 10/2/4 9/3/4 +f 10/1/5 12/2/5 11/3/5 +f 12/1/6 14/2/6 13/3/6 +f 14/1/7 16/2/7 15/3/7 +f 16/1/8 18/2/8 17/3/8 +f 18/1/9 20/2/9 19/3/9 +f 20/1/10 22/2/10 21/3/10 +f 10/2/11 8/1/11 28/4/11 +f 24/1/12 2/2/12 1/3/12 +f 22/1/13 24/2/13 23/3/13 +f 7/5/14 19/6/14 23/7/14 +f 27/4/9 39/8/9 40/9/9 +f 24/1/11 36/4/11 26/10/11 +f 2/1/11 26/4/11 25/10/11 +f 8/2/11 6/1/11 27/4/11 +f 22/1/11 35/4/11 36/10/11 +f 4/1/11 25/4/11 27/10/11 +f 20/1/11 34/4/11 35/10/11 +f 18/1/11 33/4/11 34/10/11 +f 16/1/11 32/4/11 33/10/11 +f 14/1/11 31/4/11 32/10/11 +f 14/2/11 12/1/11 30/4/11 +f 12/2/11 10/1/11 29/4/11 +f 39/8/11 51/11/11 52/12/11 +f 34/4/4 46/8/4 47/9/4 +f 31/4/1 43/8/1 44/9/1 +f 28/4/10 40/8/10 41/9/10 +f 35/4/5 47/8/5 48/9/5 +f 26/4/7 38/8/7 37/9/7 +f 32/4/2 44/8/2 45/9/2 +f 29/4/13 41/8/13 42/9/13 +f 36/4/6 48/8/6 38/9/6 +f 25/4/8 37/8/8 39/9/8 +f 33/4/3 45/8/3 46/9/3 +f 30/4/12 42/8/12 43/9/12 +f 54/11/6 66/13/6 67/14/6 +f 46/8/11 58/11/11 59/12/11 +f 43/8/11 55/11/11 56/12/11 +f 40/8/11 52/11/11 53/12/11 +f 47/8/11 59/11/11 60/12/11 +f 37/9/11 38/8/11 50/11/11 +f 44/8/11 56/11/11 57/12/11 +f 42/9/11 41/8/11 53/11/11 +f 38/9/11 48/8/11 60/11/11 +f 37/8/11 49/11/11 51/12/11 +f 45/8/11 57/11/11 58/12/11 +f 42/8/11 54/11/11 55/12/11 +f 66/13/11 78/15/11 79/16/11 +f 51/11/3 63/13/3 64/14/3 +f 58/11/10 70/13/10 71/14/10 +f 55/11/7 67/13/7 68/14/7 +f 52/11/4 64/13/4 65/14/4 +f 59/11/13 71/13/13 72/14/13 +f 50/11/1 62/13/1 61/14/1 +f 56/11/8 68/13/8 69/14/8 +f 53/11/5 65/13/5 66/14/5 +f 60/11/12 72/13/12 62/14/12 +f 49/11/2 61/13/2 63/14/2 +f 57/11/9 69/13/9 70/14/9 +f 81/17/15 93/18/15 94/19/15 +f 63/13/11 75/15/11 76/16/11 +f 70/13/11 82/15/11 83/16/11 +f 67/13/11 79/15/11 80/16/11 +f 64/13/11 76/15/11 77/16/11 +f 71/13/11 83/15/11 84/16/11 +f 62/13/11 74/15/11 73/16/11 +f 68/13/11 80/15/11 81/16/11 +f 66/14/11 65/13/11 77/15/11 +f 62/14/11 72/13/11 84/15/11 +f 61/13/11 73/15/11 75/16/11 +f 69/13/11 81/15/11 82/16/11 +f 95/20/11 89/21/11 87/22/11 +f 78/23/16 90/24/16 91/25/16 +f 75/26/17 87/22/17 88/27/17 +f 83/28/18 82/29/18 94/19/18 +f 79/30/19 91/25/19 92/31/19 +f 77/32/20 76/33/20 88/27/20 +f 83/34/21 95/20/21 96/35/21 +f 74/36/22 86/37/22 85/38/22 +f 80/39/23 92/31/23 93/18/23 +f 78/40/24 77/41/24 89/21/24 +f 74/42/25 84/43/25 96/35/25 +f 73/44/26 85/38/26 87/22/26 +f 1/45/1 2/1/1 3/3/1 +f 3/45/2 4/1/2 5/3/2 +f 5/45/3 6/1/3 7/3/3 +f 7/45/4 8/1/4 9/3/4 +f 9/45/5 10/1/5 11/3/5 +f 11/45/6 12/1/6 13/3/6 +f 13/45/7 14/1/7 15/3/7 +f 15/45/8 16/1/8 17/3/8 +f 17/45/9 18/1/9 19/3/9 +f 19/45/10 20/1/10 21/3/10 +f 29/10/11 10/2/11 28/4/11 +f 23/45/12 24/1/12 1/3/12 +f 21/45/13 22/1/13 23/3/13 +f 23/7/14 1/46/14 3/47/14 +f 3/47/14 5/48/14 7/5/14 +f 7/5/14 9/49/14 11/50/14 +f 11/50/14 13/51/14 15/52/14 +f 15/52/14 17/53/14 19/6/14 +f 19/6/14 21/54/14 23/7/14 +f 23/7/14 3/47/14 7/5/14 +f 7/5/14 11/50/14 15/52/14 +f 15/52/14 19/6/14 7/5/14 +f 28/10/9 27/4/9 40/9/9 +f 2/2/11 24/1/11 26/10/11 +f 4/2/11 2/1/11 25/10/11 +f 28/10/11 8/2/11 27/4/11 +f 24/2/11 22/1/11 36/10/11 +f 6/2/11 4/1/11 27/10/11 +f 22/2/11 20/1/11 35/10/11 +f 20/2/11 18/1/11 34/10/11 +f 18/2/11 16/1/11 33/10/11 +f 16/2/11 14/1/11 32/10/11 +f 31/10/11 14/2/11 30/4/11 +f 30/10/11 12/2/11 29/4/11 +f 40/9/11 39/8/11 52/12/11 +f 35/10/4 34/4/4 47/9/4 +f 32/10/1 31/4/1 44/9/1 +f 29/10/10 28/4/10 41/9/10 +f 36/10/5 35/4/5 48/9/5 +f 25/10/7 26/4/7 37/9/7 +f 33/10/2 32/4/2 45/9/2 +f 30/10/13 29/4/13 42/9/13 +f 26/10/6 36/4/6 38/9/6 +f 27/10/8 25/4/8 39/9/8 +f 34/10/3 33/4/3 46/9/3 +f 31/10/12 30/4/12 43/9/12 +f 55/12/6 54/11/6 67/14/6 +f 47/9/11 46/8/11 59/12/11 +f 44/9/11 43/8/11 56/12/11 +f 41/9/11 40/8/11 53/12/11 +f 48/9/11 47/8/11 60/12/11 +f 49/12/11 37/9/11 50/11/11 +f 45/9/11 44/8/11 57/12/11 +f 54/12/11 42/9/11 53/11/11 +f 50/12/11 38/9/11 60/11/11 +f 39/9/11 37/8/11 51/12/11 +f 46/9/11 45/8/11 58/12/11 +f 43/9/11 42/8/11 55/12/11 +f 67/14/11 66/13/11 79/16/11 +f 52/12/3 51/11/3 64/14/3 +f 59/12/10 58/11/10 71/14/10 +f 56/12/7 55/11/7 68/14/7 +f 53/12/4 52/11/4 65/14/4 +f 60/12/13 59/11/13 72/14/13 +f 49/12/1 50/11/1 61/14/1 +f 57/12/8 56/11/8 69/14/8 +f 54/12/5 53/11/5 66/14/5 +f 50/12/12 60/11/12 62/14/12 +f 51/12/2 49/11/2 63/14/2 +f 58/12/9 57/11/9 70/14/9 +f 82/55/15 81/17/15 94/19/15 +f 64/14/11 63/13/11 76/16/11 +f 71/14/11 70/13/11 83/16/11 +f 68/14/11 67/13/11 80/16/11 +f 65/14/11 64/13/11 77/16/11 +f 72/14/11 71/13/11 84/16/11 +f 61/14/11 62/13/11 73/16/11 +f 69/14/11 68/13/11 81/16/11 +f 78/16/11 66/14/11 77/15/11 +f 74/16/11 62/14/11 84/15/11 +f 63/14/11 61/13/11 75/16/11 +f 70/14/11 69/13/11 82/16/11 +f 87/22/11 85/38/11 95/20/11 +f 86/37/11 96/35/11 95/20/11 +f 95/20/11 94/19/11 93/18/11 +f 93/18/11 92/31/11 95/20/11 +f 91/25/11 90/24/11 89/21/11 +f 89/21/11 88/27/11 87/22/11 +f 85/38/11 86/37/11 95/20/11 +f 95/20/11 92/31/11 91/25/11 +f 91/25/11 89/21/11 95/20/11 +f 79/56/16 78/23/16 91/25/16 +f 76/57/17 75/26/17 88/27/17 +f 95/20/18 83/28/18 94/19/18 +f 80/58/19 79/30/19 92/31/19 +f 89/21/20 77/32/20 88/27/20 +f 84/59/21 83/34/21 96/35/21 +f 73/60/22 74/36/22 85/38/22 +f 81/61/23 80/39/23 93/18/23 +f 90/24/24 78/40/24 89/21/24 +f 86/37/25 74/42/25 96/35/25 +f 75/62/26 73/44/26 87/22/26 diff --git a/assets/hbm/textures/blocks/mine_ap.png b/assets/hbm/textures/blocks/mine_ap.png new file mode 100644 index 000000000..a9950caf9 Binary files /dev/null and b/assets/hbm/textures/blocks/mine_ap.png differ diff --git a/assets/hbm/textures/blocks/mine_ap_alt.png b/assets/hbm/textures/blocks/mine_ap_alt.png new file mode 100644 index 000000000..1d43ad6f0 Binary files /dev/null and b/assets/hbm/textures/blocks/mine_ap_alt.png differ diff --git a/assets/hbm/textures/blocks/mine_he.png b/assets/hbm/textures/blocks/mine_he.png new file mode 100644 index 000000000..9a133ad4b Binary files /dev/null and b/assets/hbm/textures/blocks/mine_he.png differ diff --git a/assets/hbm/textures/blocks/mine_shrap.png b/assets/hbm/textures/blocks/mine_shrap.png new file mode 100644 index 000000000..5b2c8b530 Binary files /dev/null and b/assets/hbm/textures/blocks/mine_shrap.png differ diff --git a/assets/hbm/textures/items/defuser.png b/assets/hbm/textures/items/defuser.png new file mode 100644 index 000000000..f4b1fdd5e Binary files /dev/null and b/assets/hbm/textures/items/defuser.png differ diff --git a/assets/hbm/textures/models/mine_ap.png b/assets/hbm/textures/models/mine_ap.png new file mode 100644 index 000000000..073f2a657 Binary files /dev/null and b/assets/hbm/textures/models/mine_ap.png differ diff --git a/assets/hbm/textures/models/mine_he.png b/assets/hbm/textures/models/mine_he.png new file mode 100644 index 000000000..d0305e489 Binary files /dev/null and b/assets/hbm/textures/models/mine_he.png differ diff --git a/assets/hbm/textures/models/mine_shrap.png b/assets/hbm/textures/models/mine_shrap.png new file mode 100644 index 000000000..6e89e8bc8 Binary files /dev/null and b/assets/hbm/textures/models/mine_shrap.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index b39afd0b8..494995df4 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -180,7 +180,10 @@ public class ModBlocks { public static Block yellow_barrel; public static Block crashed_balefire; public static Block rejuvinator; - + public static Block mine_ap; + public static Block mine_he; + public static Block mine_shrap; + public static Block crate; public static Block crate_weapon; public static Block crate_lead; @@ -712,7 +715,10 @@ public class ModBlocks { red_barrel = new RedBarrel(Material.iron).setBlockName("red_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F); yellow_barrel = new YellowBarrel(Material.iron).setBlockName("yellow_barrel").setCreativeTab(MainRegistry.nukeTab).setHardness(0.5F).setResistance(2.5F); crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":crashed_balefire"); - rejuvinator = new BombRejuvinator(Material.iron).setBlockName("rejuvinator").setCreativeTab(MainRegistry.nukeTab).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":inserter_side"); + rejuvinator = new BombRejuvinator(Material.iron).setBlockName("rejuvinator").setCreativeTab(MainRegistry.nukeTab).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":inserter_side"); + mine_ap = new Landmine(Material.iron).setBlockName("mine_ap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_ap"); + mine_he = new Landmine(Material.iron).setBlockName("mine_he").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_he"); + mine_shrap = new Landmine(Material.iron).setBlockName("mine_shrap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_shrap"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -1130,6 +1136,11 @@ public class ModBlocks { GameRegistry.registerBlock(turret_cwis, turret_cwis.getUnlocalizedName()); GameRegistry.registerBlock(turret_cheapo, turret_cheapo.getUnlocalizedName()); + //Mines + GameRegistry.registerBlock(mine_ap, mine_ap.getUnlocalizedName()); + GameRegistry.registerBlock(mine_he, mine_he.getUnlocalizedName()); + GameRegistry.registerBlock(mine_shrap, mine_shrap.getUnlocalizedName()); + //Wot GameRegistry.registerBlock(cel_prime, cel_prime.getUnlocalizedName()); GameRegistry.registerBlock(cel_prime_terminal, cel_prime_terminal.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/Landmine.java b/com/hbm/blocks/bomb/Landmine.java new file mode 100644 index 000000000..6e85f8ae4 --- /dev/null +++ b/com/hbm/blocks/bomb/Landmine.java @@ -0,0 +1,173 @@ +package com.hbm.blocks.bomb; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.interfaces.IBomb; +import com.hbm.items.ModItems; +import com.hbm.tileentity.bomb.TileEntityLandmine; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.BlockFence; +import net.minecraft.block.material.Material; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.tileentity.TileEntityDispenser; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class Landmine extends BlockContainer implements IBomb { + + public static boolean safeMode = false; + + public Landmine(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World world, int i) { + return new TileEntityLandmine(); + } + + @Override + public int getRenderType() { + return -1; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, + int p_149719_4_) { + float f = 0.0625F; + if (this == ModBlocks.mine_ap) + this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 4 * f, 10 * f); + if (this == ModBlocks.mine_he) + this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); + if (this == ModBlocks.mine_shrap) + this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + float f = 0.0625F; + if (this == ModBlocks.mine_ap) + this.setBlockBounds(6 * f, 0.0F, 6 * f, 10 * f, 4 * f, 10 * f); + if (this == ModBlocks.mine_he) + this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); + if (this == ModBlocks.mine_shrap) + this.setBlockBounds(4 * f, 0.0F, 4 * f, 12 * f, 2 * f, 12 * f); + return AxisAlignedBB.getBoundingBox(x + this.minX, y + this.minY, z + this.minZ, x + this.maxX, y + this.maxY, + z + this.maxZ); + } + + public boolean canPlaceBlockAt(World world, int x, int y, int z) { + return World.doesBlockHaveSolidTopSurface(world, x, y - 1, z) + || BlockFence.func_149825_a(world.getBlock(x, y - 1, z)); + } + + public void onNeighborBlockChange(World world, int x, int y, int z, + Block block) { + + if (world.isBlockIndirectlyGettingPowered(x, y, z)) + { + explode(world, x, y, z); + } + + boolean flag = false; + + if (!World.doesBlockHaveSolidTopSurface(world, x, y - 1, z) + && !BlockFence.func_149825_a(world.getBlock(x, y - 1, z))) { + flag = true; + } + + if (flag) { + this.dropBlockAsItem(world, x, y, z, + world.getBlockMetadata(x, y, z), 0); + world.setBlockToAir(x, y, z); + } + } + + public void breakBlock(World world, int x, int y, int z, Block block, int i) { + + if (!safeMode) { + explode(world, x, y, z); + } + + super.breakBlock(world, x, y, z, block, i); + } + + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int i, float fx, float fy, + float fz) { + if (player.getHeldItem() != null && player.getHeldItem().getItem() == ModItems.defuser) { + + safeMode = true; + world.setBlockToAir(x, y, z); + + ItemStack itemstack = new ItemStack(this, 1); + float f = world.rand.nextFloat() * 0.6F + 0.2F; + float f1 = world.rand.nextFloat() * 0.2F; + float f2 = world.rand.nextFloat() * 0.6F + 0.2F; + + EntityItem entityitem = new EntityItem(world, x + f, y + f1 + 1, z + f2, itemstack); + + float f3 = 0.05F; + entityitem.motionX = (float) world.rand.nextGaussian() * f3; + entityitem.motionY = (float) world.rand.nextGaussian() * f3 + 0.2F; + entityitem.motionZ = (float) world.rand.nextGaussian() * f3; + + if(!world.isRemote) + world.spawnEntityInWorld(entityitem); + + safeMode = false; + return true; + } + + return false; + } + + @Override + public void explode(World world, int x, int y, int z) { + + if(!world.isRemote) { + + Landmine.safeMode = true; + world.func_147480_a(x, y, z, false); + Landmine.safeMode = false; + + if (this == ModBlocks.mine_ap) { + world.newExplosion(null, x + 0.5, y + 0.5, z + 0.5, 2.5F, false, false); + } + if (this == ModBlocks.mine_he) { + ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 10F, true, false, false); + } + if (this == ModBlocks.mine_shrap) { + ExplosionLarge.explode(world, x + 0.5, y + 0.5, z + 0.5, 1, true, false, false); + ExplosionLarge.spawnShrapnelShower(world, x + 0.5, y + 0.5, z + 0.5, 0, 1D, 0, 45, 0.2D); + ExplosionLarge.spawnShrapnels(world, x + 0.5, y + 0.5, z + 0.5, 5); + } + } + } + +} diff --git a/com/hbm/blocks/generic/BlockVent.java b/com/hbm/blocks/generic/BlockVent.java index fd6aa584a..032787229 100644 --- a/com/hbm/blocks/generic/BlockVent.java +++ b/com/hbm/blocks/generic/BlockVent.java @@ -1,5 +1,7 @@ package com.hbm.blocks.generic; +import java.util.Random; + import com.hbm.lib.RefStrings; import com.hbm.tileentity.deco.TileEntityVent; @@ -8,6 +10,7 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.item.Item; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; @@ -39,4 +42,10 @@ public class BlockVent extends BlockContainer { return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); } + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) + { + return null; + } + } diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 7f781b67a..7b86c4b98 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -832,6 +832,8 @@ public class ModItems { public static Item med_ipecac; public static Item med_ptsd; public static Item med_schizophrenia; + + public static Item defuser; public static Item flame_pony; public static Item flame_conspiracy; @@ -2048,6 +2050,8 @@ public class ModItems { med_ptsd = new ItemLemon(0, 0, false).setUnlocalizedName("med_ptsd").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_ptsd_new"); med_schizophrenia = new ItemLemon(0, 0, false).setUnlocalizedName("med_schizophrenia").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_schizophrenia_new"); + defuser = new Item().setUnlocalizedName("defuser").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":defuser"); + flame_pony = new ItemCustomLore().setUnlocalizedName("flame_pony").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_pony"); flame_conspiracy = new ItemCustomLore().setUnlocalizedName("flame_conspiracy").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_conspiracy"); flame_politics = new ItemCustomLore().setUnlocalizedName("flame_politics").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":flame_politics"); @@ -3676,6 +3680,7 @@ public class ModItems { GameRegistry.registerItem(detonator_multi, detonator_multi.getUnlocalizedName()); GameRegistry.registerItem(crate_caller, crate_caller.getUnlocalizedName()); GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName()); + GameRegistry.registerItem(defuser, defuser.getUnlocalizedName()); GameRegistry.registerItem(hazmat_helmet, hazmat_helmet.getUnlocalizedName()); GameRegistry.registerItem(hazmat_plate, hazmat_plate.getUnlocalizedName()); GameRegistry.registerItem(hazmat_legs, hazmat_legs.getUnlocalizedName()); diff --git a/com/hbm/lib/HbmWorldGen.java b/com/hbm/lib/HbmWorldGen.java index f48e59c12..33fa66a07 100644 --- a/com/hbm/lib/HbmWorldGen.java +++ b/com/hbm/lib/HbmWorldGen.java @@ -349,12 +349,24 @@ public class HbmWorldGen implements IWorldGenerator { int z = j + rand.nextInt(16); int y = world.getHeightValue(x, z); - if(world.getBlock(x, y, z).canPlaceTorchOnTop(world, x, y - 1, z)) - world.setBlock(x, y + 1, z, ModBlocks.broadcaster_pc, rand.nextInt(4) + 2, 2); + if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) + world.setBlock(x, y, z, ModBlocks.broadcaster_pc, rand.nextInt(4) + 2, 2); if(MainRegistry.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned corrupted broadcaster at " + x + " " + y +" " + z); } + + if (MainRegistry.enableMines && rand.nextInt(MainRegistry.minefreq) == 0) { + int x = i + rand.nextInt(16); + int z = j + rand.nextInt(16); + int y = world.getHeightValue(x, z); + + if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) + world.setBlock(x, y, z, ModBlocks.mine_ap); + + if(MainRegistry.enableDebugMode) + MainRegistry.logger.info("[Debug] Successfully spawned landmine at " + x + " " + y +" " + z); + } } if (rand.nextInt(25) == 0) { diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 9554043b7..52551f71b 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -71,6 +71,8 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretCIWS.class, new RenderCIWSTurret()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretCheapo.class, new RenderCheapoTurret()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLandmine.class, new RenderLandmine()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCelPrime.class, new RenderCelPrimeTower()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCelPrimeTerminal.class, new RenderCelPrimePart()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityCelPrimeBattery.class, new RenderCelPrimePart()); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 73b4266bc..94b2476b8 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -1237,6 +1237,10 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.vent_chlorine), new Object[] { "IGI", "ICI", "IDI", 'I', "plateIron", 'G', Blocks.iron_bars, 'C', ModItems.pellet_gas, 'D', Blocks.dispenser })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.vent_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', "plateIron", 'G', Blocks.iron_bars, 'C', ModItems.grenade_cloud, 'D', Blocks.dispenser })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.vent_pink_cloud), new Object[] { "IGI", "ICI", "IDI", 'I', "plateIron", 'G', Blocks.iron_bars, 'C', ModItems.grenade_pink_cloud, 'D', Blocks.dispenser })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.mine_ap, 4), new Object[] { "C", "P", "T", 'C', ModItems.circuit_targeting_tier2, 'P', "plateIron", 'T', Blocks.tnt })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.mine_he, 1), new Object[] { " C ", "PTP", 'C', ModItems.circuit_targeting_tier2, 'P', "plateSteel", 'T', Blocks.tnt })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.mine_shrap, 2), new Object[] { "LLL", " C ", "PTP", 'C', ModItems.circuit_targeting_tier2, 'P', "plateSteel", 'T', ModBlocks.det_cord, 'L', ModItems.pellet_buckshot })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.defuser, 1), new Object[] { " PS", "P P", " P ", 'P', "ingotPolymer", 'S', "plateSteel" })); GameRegistry.addShapelessRecipe(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.assembly_template, 1, OreDictionary.WILDCARD_VALUE) }); GameRegistry.addShapelessRecipe(new ItemStack(Items.paper, 1), new Object[] { new ItemStack(ModItems.chemistry_template, 1, OreDictionary.WILDCARD_VALUE) }); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index f28c007aa..5cb1a8560 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -187,6 +187,7 @@ import com.hbm.tileentity.bomb.TileEntityCelPrimePort; import com.hbm.tileentity.bomb.TileEntityCelPrimeTanks; import com.hbm.tileentity.bomb.TileEntityCelPrimeTerminal; import com.hbm.tileentity.bomb.TileEntityCrashedBomb; +import com.hbm.tileentity.bomb.TileEntityLandmine; import com.hbm.tileentity.bomb.TileEntityLaunchPad; import com.hbm.tileentity.bomb.TileEntityNukeBoy; import com.hbm.tileentity.bomb.TileEntityNukeCustom; @@ -227,6 +228,7 @@ import com.hbm.tileentity.deco.TileEntityRotationTester; import com.hbm.tileentity.deco.TileEntityTaint; import com.hbm.tileentity.deco.TileEntityTestContainer; import com.hbm.tileentity.deco.TileEntityTestRender; +import com.hbm.tileentity.deco.TileEntityVent; import com.hbm.tileentity.deco.TileEntityYellowBarrel; import com.hbm.tileentity.machine.TileEntityAMSBase; import com.hbm.tileentity.machine.TileEntityAMSEmitter; @@ -336,7 +338,7 @@ public class MainRegistry //Armor Materials public static ArmorMaterial enumArmorMaterialEmerald = EnumHelper.addArmorMaterial("TEST", 2500, new int[] {3, 8, 6, 3}, 30); public static ArmorMaterial enumArmorMaterialSchrabidium = EnumHelper.addArmorMaterial("SCHRABIDIUM", 100, new int[] {3, 8, 6, 3}, 50); - public static ArmorMaterial enumArmorMaterialEuphemium = EnumHelper.addArmorMaterial("EUPHEMIUM", 2147483647, new int[] {3, 8, 6, 3}, 100); + public static ArmorMaterial enumArmorMaterialEuphemium = EnumHelper.addArmorMaterial("EUPHEMIUM", 2100000000, new int[] {3, 8, 6, 3}, 100); public static ArmorMaterial enumArmorMaterialHazmat = EnumHelper.addArmorMaterial("HAZMAT", 60, new int[] {2, 5, 4, 1}, 5); public static ArmorMaterial enumArmorMaterialT45 = EnumHelper.addArmorMaterial("T45", 1000, new int[] {2, 5, 4, 1}, 0); public static ArmorMaterial enumArmorMaterialSteel = EnumHelper.addArmorMaterial("STEEL", 20, new int[] {2, 6, 5, 2}, 5); @@ -431,7 +433,7 @@ public class MainRegistry public static boolean enablePlutoniumOre = false; public static boolean enableDungeons = true; public static boolean enableMDOres = true; - public static boolean enableBarrels = false; + public static boolean enableMines = true; public static boolean enableNITAN = true; public static boolean enableNukeClouds = true; public static boolean enableAutoCleanup = false; @@ -481,6 +483,7 @@ public class MainRegistry public static int dudStructure = 500; public static int spaceshipStructure = 1000; public static int broadcaster = 5000; + public static int minefreq = 64; public static int meteorStrikeChance = 20 * 60 * 90; public static int meteorShowerChance = 20 * 60 * 3; public static int meteorShowerDuration = 6000; @@ -666,6 +669,8 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityVaultDoor.class, "tileentity_vault_door"); GameRegistry.registerTileEntity(TileEntityRadiobox.class, "tileentity_radio_broadcaster"); GameRegistry.registerTileEntity(TileEntityRadioRec.class, "tileentity_radio_receiver"); + GameRegistry.registerTileEntity(TileEntityVent.class, "tileentity_vent"); + GameRegistry.registerTileEntity(TileEntityLandmine.class, "tileentity_landmine"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); @@ -1339,7 +1344,7 @@ public class MainRegistry enablePlutoniumOre = config.get(Configuration.CATEGORY_GENERAL, "1.02_enablePlutoniumNetherOre", false).getBoolean(false); enableDungeons = config.get(Configuration.CATEGORY_GENERAL, "1.03_enableDungeonSpawn", true).getBoolean(true); enableMDOres = config.get(Configuration.CATEGORY_GENERAL, "1.04_enableOresInModdedDimensions", true).getBoolean(true); - enableBarrels = config.get(Configuration.CATEGORY_GENERAL, "1.05_enableNuclearBarrelSpawn", false).getBoolean(false); + enableMines = config.get(Configuration.CATEGORY_GENERAL, "1.05_enableLandmineSpawn", true).getBoolean(true); enableNITAN = config.get(Configuration.CATEGORY_GENERAL, "1.06_enableNITANChestSpawn", true).getBoolean(true); enableNukeClouds = config.get(Configuration.CATEGORY_GENERAL, "1.07_enableMushroomClouds", true).getBoolean(true); enableAutoCleanup = config.get(Configuration.CATEGORY_GENERAL, "1.08_enableAutomaticRadCleanup", false).getBoolean(false); @@ -1459,8 +1464,11 @@ public class MainRegistry propSpaceship.comment = "Spawn spaceship on every nTH chunk"; spaceshipStructure = propSpaceship.getInt(); Property propBroadcaster = config.get(Configuration.CATEGORY_GENERAL, "4.12_broadcasterSpawn", 5000); - propBroadcaster.comment = "Spawn spaceship on every nTH chunk"; + propBroadcaster.comment = "Spawn corrupt broadcaster on every nTH chunk"; broadcaster = propBroadcaster.getInt(); + Property propMines = config.get(Configuration.CATEGORY_GENERAL, "4.13_landmineSpawn", 64); + propMines.comment = "Spawn AP landmine on every nTH chunk"; + minefreq = propMines.getInt(); Property propMeteorStrikeChance = config.get(Configuration.CATEGORY_GENERAL, "5.00_meteorStrikeChance", 50000); propMeteorStrikeChance.comment = "The probability of a meteor spawning (an average of once every nTH ticks)"; diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 5cf056b22..2c51b306b 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -34,6 +34,10 @@ public class ResourceManager { public static final IModelCustom turret_cheapo_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_head.obj")); public static final IModelCustom turret_cheapo_gun = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/turret_cheapo_gun.obj")); + //Landmines + public static final IModelCustom mine_ap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_ap.obj")); + public static final IModelCustom mine_he = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mine_he.obj")); + //Pumpjack public static final IModelCustom pumpjack_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/pumpjack_base.obj")); public static final IModelCustom pumpjack_head = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/pumpjack_head.obj")); @@ -127,6 +131,11 @@ public class ResourceManager { public static final ResourceLocation turret_cheapo_rotor_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_rotor.png"); public static final ResourceLocation turret_cheapo_head_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_head.png"); public static final ResourceLocation turret_cheapo_gun_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turret_cheapo_gun.png"); + + //Landmines + public static final ResourceLocation mine_ap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_ap.png"); + public static final ResourceLocation mine_he_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_he.png"); + public static final ResourceLocation mine_shrap_tex = new ResourceLocation(RefStrings.MODID, "textures/models/mine_shrap.png"); //Pumpjack public static final ResourceLocation pumpjack_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/pumpjack_base.png"); diff --git a/com/hbm/render/tileentity/RenderLandmine.java b/com/hbm/render/tileentity/RenderLandmine.java new file mode 100644 index 000000000..dc6a8e032 --- /dev/null +++ b/com/hbm/render/tileentity/RenderLandmine.java @@ -0,0 +1,42 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.main.ResourceManager; + +import net.minecraft.block.Block; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; + +public class RenderLandmine 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); + + Block block = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); + + if(block == ModBlocks.mine_ap) { + GL11.glScaled(1.5F, 1.5F, 1.5F); + bindTexture(ResourceManager.mine_ap_tex); + ResourceManager.mine_ap.renderAll(); + } + if(block == ModBlocks.mine_he) { + bindTexture(ResourceManager.mine_he_tex); + ResourceManager.mine_he.renderAll(); + } + if(block == ModBlocks.mine_shrap) { + bindTexture(ResourceManager.mine_shrap_tex); + ResourceManager.mine_he.renderAll(); + } + + GL11.glPopMatrix(); + } + +} diff --git a/com/hbm/tileentity/bomb/TileEntityLandmine.java b/com/hbm/tileentity/bomb/TileEntityLandmine.java new file mode 100644 index 000000000..9e8863b0e --- /dev/null +++ b/com/hbm/tileentity/bomb/TileEntityLandmine.java @@ -0,0 +1,83 @@ +package com.hbm.tileentity.bomb; + +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.blocks.bomb.Landmine; +import com.hbm.explosion.ExplosionLarge; +import com.hbm.main.ResourceManager; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; + +public class TileEntityLandmine extends TileEntity { + + private boolean isPrimed = false; + + public void updateEntity() { + + if(!worldObj.isRemote) { + Block block = worldObj.getBlock(xCoord, yCoord, zCoord); + double range = 1; + + if (block == ModBlocks.mine_ap) { + range = 1.5D; + } + if (block == ModBlocks.mine_he) { + range = 2; + } + if (block == ModBlocks.mine_shrap) { + range = 1.5D; + } + + List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, + AxisAlignedBB.getBoundingBox(xCoord - range, yCoord - 1, zCoord - range, xCoord + range, yCoord + 1, zCoord + range)); + + boolean flag = false; + for (Object o : list) { + + if (o instanceof EntityLivingBase) { + + flag = true; + + if(isPrimed) { + + ((Landmine)block).explode(worldObj, xCoord, yCoord, zCoord); + } + + return; + } + } + + if(!isPrimed && !flag) { + + this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:item.techBoop", 2.0F, 1.0F); + isPrimed = true; + } + } + } + + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + isPrimed = nbt.getBoolean("primed"); + } + + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setBoolean("primed", isPrimed); + } + + @Override + @SideOnly(Side.CLIENT) + public double getMaxRenderDistanceSquared() + { + return 65536.0D; + } +} diff --git a/com/hbm/tileentity/deco/TileEntityVent.java b/com/hbm/tileentity/deco/TileEntityVent.java index 13caf2be6..15670d805 100644 --- a/com/hbm/tileentity/deco/TileEntityVent.java +++ b/com/hbm/tileentity/deco/TileEntityVent.java @@ -16,7 +16,7 @@ public class TileEntityVent extends TileEntity { public void updateEntity() { - if(!worldObj.isRemote) { + if(!worldObj.isRemote && worldObj.isBlockIndirectlyGettingPowered(xCoord, yCoord, zCoord)) { Block b = worldObj.getBlock(xCoord, yCoord, zCoord); if(b == ModBlocks.vent_chlorine) {