Up-down-thingie, large refinery, more fluid support, chemplant recipes

This commit is contained in:
HbmMods 2017-08-02 22:55:58 +02:00
parent 990cfc3ae2
commit fcad4fd888
95 changed files with 7391 additions and 3888 deletions

View File

@ -590,8 +590,14 @@ item.canister_reoil.name=Kanister voll aufbereitetem Industrieöl
item.canister_petroil.name=Gemischkanister
item.canister_napalm.name=Napalm B
item.canister_NITAN.name=NITAN© 100 Oktan Supertreibstoff
item.canister_heavyoil.name=Schwerölkanister
item.canister_bitumen.name=Bitumenkanister
item.canister_heatingoil.name=Heizölkanister
item.canister_naphtha.name=Mitteldestillatkanister
item.canister_lightoil.name=Leichtölkanister
item.gas_empty.name=Leerer Gastank
item.gas_full.name=Gastank
item.gas_petroleum.name=Petroleumgastank
item.rod_empty.name=Leerer Brennstab
item.rod_uranium.name=Uranbrennstab

View File

@ -590,8 +590,14 @@ item.canister_reoil.name=Canister of Reclaimed Industrial Oil
item.canister_petroil.name=Petroil Canister
item.canister_napalm.name=Napalm B
item.canister_NITAN.name=NITAN© 100 Octane Super Fuel
item.canister_heavyoil.name=Heavy Oil Canister
item.canister_bitumen.name=Bitumen Canister
item.canister_heatingoil.name=Heating Oil Canister
item.canister_naphtha.name=Naphtha Canister
item.canister_lightoil.name=Light Oil Canister
item.gas_empty.name=Empty Gas Tank
item.gas_full.name=Gas Tank
item.gas_petroleum.name=Petroleum Gas Tank
item.rod_empty.name=Emty Rod
item.rod_uranium.name=Uranium Rod

View File

@ -1,177 +1,302 @@
# Blender v2.70 (sub 0) OBJ File: 'LaunchPad.blend'
# Blender v2.76 (sub 0) OBJ File: 'launchpad.blend'
# www.blender.org
o Cylinder
v 0.000000 0.000000 -1.000000
v 1.060660 0.250000 -1.060660
v 0.000000 0.500000 -1.000000
v 1.500000 0.250000 0.000000
v 0.707107 0.500000 -0.707107
v 1.060660 0.250000 1.060660
v 1.000000 0.500000 0.000000
v -0.000000 0.250000 1.500000
v 0.707107 0.500000 0.707107
v -1.060660 0.250000 1.060660
v -0.000000 0.500000 1.000000
v 0.000000 0.250000 -1.500000
v -0.707107 0.500000 0.707107
v -1.060660 0.250000 -1.060660
v -1.000000 0.500000 -0.000000
v -1.500000 0.250000 -0.000000
v -0.707107 0.500000 -0.707107
v 0.000000 0.250000 -1.000000
v 0.707107 0.000000 -0.707107
v 0.707107 0.250000 -0.707107
v 1.000000 0.000000 0.000000
v 1.000000 0.250000 0.000000
v 0.707107 0.000000 0.707107
v 0.707107 0.250000 0.707107
v -0.000000 0.000000 1.000000
v -0.000000 0.250000 1.000000
v -0.707107 0.000000 0.707107
v -0.707107 0.250000 0.707107
v -1.000000 0.000000 -0.000000
v -1.000000 0.250000 -0.000000
v -0.707107 0.000000 -0.707107
v -0.707107 0.250000 -0.707107
v 0.000000 0.500000 -0.750000
v 0.530330 0.500000 -0.530330
v 0.750000 0.500000 0.000000
v 0.530330 0.500000 0.530330
v -0.000000 0.500000 0.750000
v -0.530330 0.500000 0.530330
v -0.750000 0.500000 -0.000000
v -0.530330 0.500000 -0.530330
vt 0.202877 0.776488
vt 0.202877 0.991569
vt 0.128330 0.991569
vt 0.983572 0.646674
vt 0.983572 0.861756
vt 0.909025 0.861756
vt 0.816586 0.629813
vt 0.816586 0.414732
vt 0.891133 0.414732
vt 0.008946 0.991569
vt 0.008946 0.776488
vt 0.083493 0.776488
vt 0.816586 0.861756
vt 0.816586 0.646674
vt 0.891133 0.646674
vt 0.339051 0.991569
vt 0.339051 0.776488
vt 0.413598 0.776488
vt 0.559927 0.759627
vt 0.458434 0.732741
vt 0.458434 0.571430
vt 0.909025 0.629813
vt 0.909025 0.414732
vt 0.983572 0.414732
vt 0.532982 0.776488
vt 0.532982 0.991569
vt 0.458434 0.991569
vt 0.008946 0.375598
vt 0.559927 0.160516
vt 0.170324 0.527684
vt 0.577818 0.283806
vt 0.577818 0.122495
vt 0.698852 0.008431
vt 0.697202 0.646674
vt 0.798695 0.673560
vt 0.798695 0.834871
vt 0.577818 0.646675
vt 0.679311 0.673560
vt 0.679311 0.834871
vt 0.697202 0.414732
vt 0.798695 0.441617
vt 0.798695 0.602928
vt 0.128330 0.544545
vt 0.229822 0.571430
vt 0.229822 0.732741
vt 0.008946 0.544545
vt 0.110438 0.571430
vt 0.110438 0.732741
vt 0.577818 0.414732
vt 0.679311 0.441617
vt 0.679311 0.602928
vt 0.440543 0.759627
vt 0.339051 0.732741
vt 0.339051 0.571430
vt 0.128330 0.776488
vt 0.909025 0.646674
vt 0.891133 0.629813
vt 0.083493 0.991569
vt 0.891133 0.861756
vt 0.413598 0.991569
vt 0.559927 0.544545
vt 0.983572 0.629813
vt 0.458434 0.776488
vt 0.008946 0.160516
vt 0.170324 0.008431
vt 0.398548 0.008431
vt 0.559927 0.375598
vt 0.398548 0.527684
vt 0.870020 0.008431
vt 0.991054 0.122495
vt 0.870020 0.397870
vt 0.991054 0.283806
vt 0.698852 0.397871
vt 0.697202 0.861756
vt 0.577818 0.861756
vt 0.697202 0.629813
vt 0.128330 0.759627
vt 0.008946 0.759627
vt 0.577818 0.629813
vt 0.440543 0.544545
vn 0.382684 0.000000 -0.923880
vn 0.923880 0.000000 -0.382683
vn 0.923880 0.000000 0.382683
vn 0.382683 0.000000 0.923880
vn -0.382684 0.000000 0.923880
vn -0.923880 0.000000 0.382683
vn -0.281085 0.678598 -0.678598
vn -0.382684 0.000000 -0.923879
vn -0.923880 0.000000 -0.382683
v 0.000000 0.000000 -1.500000
v 1.060660 0.000000 -1.060660
v 1.500000 0.000000 0.000000
v 1.060660 0.000000 1.060660
v -0.000000 0.000000 1.500000
v -1.060660 0.000000 1.060660
v -1.500000 0.000000 -0.000000
v -1.060660 0.000000 -1.060660
v -0.500000 0.000000 2.000000
v 0.500000 0.000000 2.000000
v -0.500000 0.000000 -2.000000
v 0.500000 0.000000 -2.000000
v -0.500000 0.125000 -2.000000
v 0.500000 0.125000 -2.000000
v -0.500000 0.475000 -0.750000
v 0.500000 0.475000 -0.750000
v -0.500000 0.475000 0.750000
v 0.500000 0.475000 0.750000
v 0.500000 0.125000 2.000000
v -0.500000 0.125000 2.000000
v -0.500000 0.100000 0.750000
v 0.500000 0.100000 0.750000
v -0.500000 0.100000 -0.750000
v 0.500000 0.100000 -0.750000
v 2.000000 0.000000 0.500000
v 2.000000 0.000000 -0.500000
v -2.000000 0.000000 0.500000
v -2.000000 0.000000 -0.500000
v -2.000000 0.125000 0.500000
v -2.000000 0.125000 -0.500000
v -0.750000 0.475000 0.500000
v -0.750000 0.475000 -0.500000
v 0.750000 0.475000 0.500000
v 0.750000 0.475000 -0.500000
v 2.000000 0.125000 -0.500000
v 2.000000 0.125000 0.500000
v 0.750000 0.100000 0.500000
v 0.750000 0.100000 -0.500000
v -0.750000 0.100000 0.500000
v -0.750000 0.100000 -0.500000
vt 0.679427 0.603288
vt 0.736986 0.545729
vt 0.755787 0.564530
vt 0.736986 0.464329
vt 0.763575 0.464329
vt 0.679428 0.406770
vt 0.698229 0.387969
vt 0.598027 0.406770
vt 0.598027 0.380181
vt 0.540468 0.464329
vt 0.521667 0.445528
vt 0.540468 0.545729
vt 0.513879 0.545729
vt 0.598027 0.603288
vt 0.679427 0.629877
vt 0.579226 0.622089
vt 0.371403 0.064091
vt 0.370621 0.122777
vt 0.246818 0.069553
vt 0.028468 0.292851
vt 0.071192 0.251063
vt 0.122297 0.378412
vt 0.289175 0.473320
vt 0.246967 0.432446
vt 0.370760 0.378824
vt 0.456943 0.213084
vt 0.412191 0.251217
vt 0.204262 0.028468
vt 0.122271 0.123726
vt 0.028468 0.209288
vt 0.062521 0.124396
vt 0.121333 0.437581
vt 0.143605 0.355918
vt 0.245661 0.401664
vt 0.429011 0.374227
vt 0.552285 0.820181
vt 0.552285 0.686813
vt 0.658640 0.686813
vt 0.346906 0.359230
vt 0.145516 0.144219
vt 0.102263 0.249691
vt 0.382068 0.252292
vt 0.248398 0.100332
vt 0.348830 0.144590
vt 0.898743 0.686813
vt 0.898743 0.820181
vt 0.792388 0.820181
vt 0.658640 0.971532
vt 0.552285 0.971532
vt 0.552285 0.833475
vt 0.898743 0.833475
vt 0.792388 0.833475
vt 0.898743 0.971532
vt 0.658640 0.833475
vt 0.792388 0.971532
vt 0.753982 0.960778
vt 0.937149 0.960778
vt 0.513879 0.960778
vt 0.539483 0.829891
vt 0.671442 0.829891
vt 0.697046 0.960778
vt 0.413332 0.663908
vt 0.306977 0.663908
vt 0.306977 0.530539
vt 0.066874 0.530539
vt 0.173229 0.530539
vt 0.173229 0.663908
vt 0.413332 0.815259
vt 0.306977 0.815259
vt 0.306977 0.677202
vt 0.066874 0.663908
vt 0.173229 0.677202
vt 0.066874 0.815259
vt 0.066874 0.677202
vt 0.413332 0.677202
vt 0.028468 0.804505
vt 0.211635 0.804505
vt 0.173229 0.815259
vt 0.268571 0.804505
vt 0.294175 0.673617
vt 0.426134 0.673617
vt 0.451738 0.804505
vt 0.722318 0.323245
vt 0.513879 0.236907
vt 0.600218 0.028468
vt 0.698228 0.622089
vt 0.763575 0.545729
vt 0.755787 0.445528
vt 0.679428 0.380181
vt 0.579226 0.387969
vt 0.513880 0.464329
vt 0.598027 0.629877
vt 0.521667 0.564530
vt 0.288867 0.028609
vt 0.062538 0.377750
vt 0.371704 0.437572
vt 0.429230 0.127457
vt 0.121231 0.064583
vt 0.204447 0.473603
vt 0.456631 0.289155
vt 0.658640 0.820181
vt 0.792388 0.686813
vt 0.779586 0.829891
vt 0.911545 0.829891
vt 0.413332 0.530539
vt 0.054072 0.673618
vt 0.186031 0.673618
vt 0.722318 0.028468
vt 0.808657 0.114806
vt 0.808657 0.236907
vt 0.600218 0.323245
vt 0.513879 0.114806
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.382700 0.000000 0.923900
vn -0.923900 0.000000 0.382700
vn 0.000000 1.000000 -0.000000
vn -0.382700 0.000000 -0.923900
vn -0.923900 0.000000 -0.382700
vn 0.000000 -0.996800 0.079700
vn 0.000000 -0.996800 -0.079700
vn 0.000000 0.963000 -0.269600
vn 0.000000 0.000000 1.000000
vn 0.000000 0.963000 0.269600
vn 0.000000 0.000000 -1.000000
vn -1.000000 0.000000 0.000000
vn 1.000000 0.000000 0.000000
vn 0.079700 -0.996800 0.000000
vn -0.079700 -0.996800 -0.000000
vn -0.269600 0.963000 -0.000000
vn 0.269600 0.963000 0.000000
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
vn -0.678598 0.678598 -0.281085
vn -0.678599 0.678598 0.281085
vn -0.281085 0.678598 0.678598
vn 0.281085 0.678598 0.678598
vn 0.678599 0.678598 0.281085
vn 0.678598 0.678599 -0.281085
vn 0.281085 0.678598 -0.678598
vn 0.382683 0.000000 -0.923880
vn 0.382684 0.000000 0.923880
vn -0.382684 0.000000 0.923879
vn -0.382683 0.000000 -0.923880
vn -0.678598 0.678598 0.281085
vn 0.678598 0.678598 0.281085
vn 0.678598 0.678598 -0.281085
s off
f 2/1/1 4/2/1 3/3/1
f 4/4/2 6/5/2 5/6/2
f 6/7/3 8/8/3 7/9/3
f 8/10/4 10/11/4 9/12/4
f 10/13/5 12/14/5 11/15/5
f 12/16/6 14/17/6 13/18/6
f 16/19/7 24/20/7 17/21/7
f 16/22/8 2/23/8 1/24/8
f 14/25/9 16/26/9 15/27/9
f 15/28/10 7/29/10 13/30/10
f 21/31/11 20/32/11 19/33/11
f 14/34/12 23/35/12 24/36/12
f 12/37/13 22/38/13 23/39/13
f 10/40/14 21/41/14 22/42/14
f 8/43/15 20/44/15 21/45/15
f 6/46/16 19/47/16 20/48/16
f 4/49/17 18/50/17 19/51/17
f 2/52/18 17/53/18 18/54/18
f 1/55/19 2/1/19 3/3/19
f 3/56/2 4/4/2 5/6/2
f 5/57/3 6/7/3 7/9/3
f 7/58/20 8/10/20 9/12/20
f 9/59/21 10/13/21 11/15/21
f 11/60/6 12/16/6 13/18/6
f 2/61/7 16/19/7 17/21/7
f 15/62/22 16/22/22 1/24/22
f 13/63/9 14/25/9 15/27/9
f 15/28/10 1/64/10 3/65/10
f 3/65/10 5/66/10 7/29/10
f 7/29/10 9/67/10 11/68/10
f 19/33/11 18/69/11 17/70/11
f 15/28/10 3/65/10 7/29/10
f 23/71/11 19/33/11 24/72/11
f 7/29/10 11/68/10 13/30/10
f 21/31/11 19/33/11 22/73/11
f 16/74/12 14/34/12 24/36/12
f 19/33/11 23/71/11 22/73/11
f 14/75/23 12/37/23 23/39/23
f 19/33/11 17/70/11 24/72/11
f 12/76/14 10/40/14 22/42/14
f 10/77/15 8/43/15 21/45/15
f 8/78/24 6/46/24 20/48/24
f 6/79/25 4/49/25 19/51/25
f 4/80/18 2/52/18 18/54/18
f 2/1/1 4/2/1 18/3/1
f 4/2/2 6/4/2 19/5/2
f 6/4/3 8/6/3 20/7/3
f 8/6/4 10/8/4 21/9/4
f 10/8/5 12/10/5 22/11/5
f 12/10/6 14/12/6 23/13/6
f 14/12/7 8/6/7 6/4/7
f 16/14/8 2/1/8 17/15/8
f 14/12/9 16/14/9 24/16/9
f 17/17/7 11/18/7 13/19/7
f 22/20/7 9/21/7 7/22/7
f 20/23/7 5/24/7 3/25/7
f 18/26/7 1/27/7 11/18/7
f 24/28/7 13/19/7 15/29/7
f 22/30/7 23/31/7 15/29/7
f 21/32/7 7/22/7 5/24/7
f 7/22/4 29/33/4 28/34/4
f 19/35/7 3/25/7 1/27/7
f 36/36/10 48/37/10 47/38/10
f 5/24/3 28/34/3 27/39/3
f 15/29/6 31/40/6 30/41/6
f 9/21/5 30/41/5 29/33/5
f 3/25/2 27/39/2 26/42/2
f 13/19/9 32/43/9 31/40/9
f 1/27/1 26/42/1 25/44/1
f 11/18/8 25/44/8 32/43/8
f 46/45/11 34/46/11 33/47/11
f 39/48/12 40/49/12 38/50/12
f 33/47/13 34/46/13 43/51/13
f 44/52/14 43/51/14 42/53/14
f 37/54/15 38/50/15 36/36/15
f 44/52/16 41/55/16 45/56/16
f 46/57/17 42/53/17 43/51/17
f 48/58/17 36/59/17 38/50/17
f 37/54/16 35/60/16 47/61/16
f 51/62/18 52/63/18 64/64/18
f 61/65/19 62/66/19 50/67/19
f 55/68/20 56/69/20 54/70/20
f 49/71/17 50/67/17 59/72/17
f 57/73/21 60/74/21 59/72/21
f 53/75/16 54/70/16 52/63/16
f 60/74/13 57/73/13 61/76/13
f 62/77/15 58/78/15 59/72/15
f 64/79/15 52/80/15 54/70/15
f 53/75/13 51/81/13 63/82/13
f 28/83/22 30/84/22 32/85/22
f 17/86/1 2/1/1 18/3/1
f 18/87/2 4/2/2 19/5/2
f 19/88/3 6/4/3 20/7/3
f 20/89/4 8/6/4 21/9/4
f 21/90/5 10/8/5 22/11/5
f 22/91/6 12/10/6 23/13/6
f 6/4/7 4/2/7 2/1/7
f 2/1/7 16/14/7 6/4/7
f 14/12/7 12/10/7 10/8/7
f 10/8/7 8/6/7 14/12/7
f 6/4/7 16/14/7 14/12/7
f 24/92/8 16/14/8 17/15/8
f 23/93/9 14/12/9 24/16/9
f 24/94/7 17/17/7 13/19/7
f 21/95/7 22/20/7 7/22/7
f 19/96/7 20/23/7 3/25/7
f 17/97/7 18/26/7 11/18/7
f 23/98/7 24/28/7 15/29/7
f 9/21/7 22/30/7 15/29/7
f 20/99/7 21/32/7 5/24/7
f 5/24/4 7/22/4 28/34/4
f 18/100/7 19/35/7 1/27/7
f 35/101/10 36/36/10 47/38/10
f 3/25/3 5/24/3 27/39/3
f 9/21/6 15/29/6 30/41/6
f 7/22/5 9/21/5 29/33/5
f 1/27/2 3/25/2 26/42/2
f 15/29/9 13/19/9 31/40/9
f 11/18/1 1/27/1 25/44/1
f 13/19/8 11/18/8 32/43/8
f 45/102/11 46/45/11 33/47/11
f 37/54/12 39/48/12 38/50/12
f 44/52/13 33/47/13 43/51/13
f 41/55/14 44/52/14 42/53/14
f 35/101/15 37/54/15 36/36/15
f 33/103/16 44/52/16 45/56/16
f 34/104/17 46/57/17 43/51/17
f 40/49/17 48/58/17 38/50/17
f 39/48/16 37/54/16 47/61/16
f 63/105/18 51/62/18 64/64/18
f 49/71/19 61/65/19 50/67/19
f 53/75/20 55/68/20 54/70/20
f 60/74/17 49/71/17 59/72/17
f 58/78/21 57/73/21 59/72/21
f 51/62/16 53/75/16 52/63/16
f 49/106/13 60/74/13 61/76/13
f 50/107/15 62/77/15 59/72/15
f 56/69/15 64/79/15 54/70/15
f 55/68/13 53/75/13 63/82/13
f 32/85/22 25/108/22 26/109/22
f 26/109/22 27/110/22 28/83/22
f 28/83/22 29/111/22 30/84/22
f 30/84/22 31/112/22 32/85/22
f 32/85/22 26/109/22 28/83/22

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,150 @@
# Blender v2.76 (sub 0) OBJ File: 'chemplant_piston.blend'
# www.blender.org
o Cube.001_Cube.002
v 0.427500 2.000000 -0.427500
v 0.427500 2.000000 -0.822500
v 0.822500 2.000000 -0.427500
v 0.822500 2.000000 -0.822500
v 0.427500 2.150000 -0.427500
v 0.427500 2.150000 -0.822500
v 0.822500 2.150000 -0.822500
v 0.822500 2.150000 -0.427500
v 0.476875 2.000000 -0.476875
v 0.476875 2.000000 -0.773125
v 0.773125 2.000000 -0.773125
v 0.773125 2.000000 -0.476875
v 0.476875 1.500000 -0.476875
v 0.476875 1.500000 -0.773125
v 0.773125 1.500000 -0.773125
v 0.773125 1.500000 -0.476875
v -0.822500 2.000000 -0.427500
v -0.822500 2.000000 -0.822500
v -0.427500 2.000000 -0.427500
v -0.427500 2.000000 -0.822500
v -0.822500 2.150000 -0.427500
v -0.822500 2.150000 -0.822500
v -0.427500 2.150000 -0.822500
v -0.427500 2.150000 -0.427500
v -0.773125 2.000000 -0.476875
v -0.773125 2.000000 -0.773125
v -0.476875 2.000000 -0.773125
v -0.476875 2.000000 -0.476875
v -0.773125 1.500000 -0.476875
v -0.773125 1.500000 -0.773125
v -0.476875 1.500000 -0.773125
v -0.476875 1.500000 -0.476875
vt 0.263926 0.442748
vt 0.248840 0.427662
vt 0.248840 0.337146
vt 0.309756 0.322060
vt 0.430444 0.322060
vt 0.430444 0.442748
vt 0.263926 0.322060
vt 0.309756 0.442748
vt 0.476275 0.442748
vt 0.309756 0.488579
vt 0.430444 0.276229
vt 0.415358 0.503665
vt 0.415358 0.656434
vt 0.324842 0.656434
vt 0.476275 0.322060
vt 0.491361 0.337146
vt 0.491361 0.427662
vt 0.430444 0.488579
vt 0.324842 0.503664
vt 0.309756 0.276230
vt 0.324842 0.261143
vt 0.415358 0.261144
vt 0.324842 0.108374
vt 0.415358 0.108374
vt 0.096070 0.427662
vt 0.096071 0.337146
vt 0.644130 0.337146
vt 0.644130 0.427662
vt 0.847582 0.752895
vt 0.847582 0.774230
vt 0.783577 0.838234
vt 0.729835 0.805827
vt 0.644497 0.720488
vt 0.729836 0.635149
vt 0.762243 0.838234
vt 0.815175 0.720488
vt 0.697428 0.602742
vt 0.847582 0.688081
vt 0.612089 0.752895
vt 0.783578 0.602742
vt 0.891602 0.494718
vt 0.955606 0.558722
vt 0.612089 0.688081
vt 0.612089 0.666746
vt 0.676094 0.602742
vt 0.762243 0.602742
vt 0.847582 0.666746
vt 0.697428 0.838234
vt 0.676093 0.838234
vt 0.612089 0.774230
vt 0.568069 0.946258
vt 0.504065 0.882254
vt 0.955606 0.882254
vt 0.891601 0.946258
vt 0.504065 0.558721
vt 0.568070 0.494717
vn 0.000000 -1.000000 0.000000
vn 0.000000 1.000000 0.000000
vn 1.000000 0.000000 0.000000
vn -1.000000 0.000000 0.000000
vn 0.000000 0.000000 1.000000
vn 0.000000 0.000000 -1.000000
s off
f 3/1/1 12/2/1 11/3/1
f 7/4/2 6/5/2 5/6/2
f 4/7/3 7/4/3 8/8/3
f 1/9/4 5/6/4 6/5/4
f 3/10/5 8/8/5 5/6/5
f 2/11/6 6/5/6 7/4/6
f 9/12/5 13/13/5 16/14/5
f 2/15/1 10/16/1 9/17/1
f 1/18/1 9/12/1 12/19/1
f 4/20/1 11/21/1 10/22/1
f 11/21/6 15/23/6 14/24/6
f 12/2/3 16/25/3 15/26/3
f 10/16/4 14/27/4 13/28/4
f 19/29/1 28/30/1 27/31/1
f 23/32/2 22/33/2 21/34/2
f 20/35/3 23/32/3 24/36/3
f 17/37/4 21/34/4 22/33/4
f 19/38/5 24/36/5 21/34/5
f 18/39/6 22/33/6 23/32/6
f 25/40/5 29/41/5 32/42/5
f 18/43/1 26/44/1 25/45/1
f 17/46/1 25/40/1 28/47/1
f 20/48/1 27/49/1 26/50/1
f 27/49/6 31/51/6 30/52/6
f 28/30/3 32/53/3 31/54/3
f 26/44/4 30/55/4 29/56/4
f 4/7/1 3/1/1 11/3/1
f 8/8/2 7/4/2 5/6/2
f 3/1/3 4/7/3 8/8/3
f 2/15/4 1/9/4 6/5/4
f 1/18/5 3/10/5 5/6/5
f 4/20/6 2/11/6 7/4/6
f 12/19/5 9/12/5 16/14/5
f 1/9/1 2/15/1 9/17/1
f 3/10/1 1/18/1 12/19/1
f 2/11/1 4/20/1 10/22/1
f 10/22/6 11/21/6 14/24/6
f 11/3/3 12/2/3 15/26/3
f 9/17/4 10/16/4 13/28/4
f 20/35/1 19/29/1 27/31/1
f 24/36/2 23/32/2 21/34/2
f 19/29/3 20/35/3 24/36/3
f 18/43/4 17/37/4 22/33/4
f 17/46/5 19/38/5 21/34/5
f 20/48/6 18/39/6 23/32/6
f 28/47/5 25/40/5 32/42/5
f 17/37/1 18/43/1 25/45/1
f 19/38/1 17/46/1 28/47/1
f 18/39/1 20/48/1 26/50/1
f 26/50/6 27/49/6 30/52/6
f 27/31/3 28/30/3 31/54/3
f 25/45/4 26/44/4 29/56/4

File diff suppressed because it is too large Load Diff

View File

@ -7,6 +7,10 @@
"block.crateBreak": {"category": "block", "sounds": ["block/crateBreak1", "block/crateBreak2", "block/crateBreak3", "block/crateBreak4", "block/crateBreak5"]},
"block.shutdown": {"category": "block", "sounds": [{"name": "block/shutdown", "stream": false}]},
"block.minerOperate": {"category": "block", "sounds": [{"name": "block/minerOperate", "stream": false}]},
"block.assemblerOperate": {"category": "block", "sounds": [{"name": "block/assemblerOperate", "stream": false}]},
"block.chemplantOperate": {"category": "block", "sounds": [{"name": "block/chemplantOperate", "stream": false}]},
"block.dieselOperate": {"category": "block", "sounds": [{"name": "block/dieselOperate", "stream": false}]},
"block.igeneratorOperate": {"category": "block", "sounds": [{"name": "block/igeneratorOperate", "stream": false}]},
"item.techBleep": {"category": "player", "sounds": [{"name": "tool/techBleep", "stream": false}]},
"item.techBoop": {"category": "player", "sounds": [{"name": "tool/techBoop", "stream": false}]},

BIN
assets/hbm/textures/gui/fluids2.png Normal file → Executable file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 874 B

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@ -408,6 +408,8 @@ public class ModBlocks {
public static Block dummy_port_chemplant;
public static Block dummy_block_fluidtank;
public static Block dummy_port_fluidtank;
public static Block dummy_block_refinery;
public static Block dummy_port_refinery;
private static void initializeBlock() {
@ -672,7 +674,7 @@ public class ModBlocks {
machine_well = new MachineOilWell(Material.iron).setBlockName("machine_well").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_well");
oil_pipe = new BlockNoDrop(Material.iron).setBlockName("oil_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":oil_pipe");
machine_flare = new MachineGasFlare(Material.iron).setBlockName("machine_flare").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_flare");
machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_refinery_side");
machine_refinery = new MachineRefinery(Material.iron).setBlockName("machine_refinery").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_refinery");
machine_drill = new MachineMiningDrill(Material.iron).setBlockName("machine_drill").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_drill");
drill_pipe = new BlockNoDrop(Material.iron).setBlockName("drill_pipe").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":drill_pipe");
machine_assembler = new MachineAssembler(Material.iron).setBlockName("machine_assembler").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_assembler");
@ -723,6 +725,8 @@ public class ModBlocks {
dummy_port_chemplant = new DummyBlockChemplant(Material.iron).setBlockName("dummy_port_chemplant").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
dummy_block_fluidtank = new DummyBlockFluidTank(Material.iron).setBlockName("dummy_block_fluidtank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
dummy_port_fluidtank = new DummyBlockFluidTank(Material.iron).setBlockName("dummy_port_fluidtank").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
dummy_block_refinery = new DummyBlockRefinery(Material.iron).setBlockName("dummy_block_refinery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
dummy_port_refinery = new DummyBlockRefinery(Material.iron).setBlockName("dummy_port_refinery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
}
private static void registerBlock() {
@ -1023,6 +1027,8 @@ public class ModBlocks {
GameRegistry.registerBlock(dummy_port_chemplant, dummy_port_chemplant.getUnlocalizedName());
GameRegistry.registerBlock(dummy_block_fluidtank, dummy_block_fluidtank.getUnlocalizedName());
GameRegistry.registerBlock(dummy_port_fluidtank, dummy_port_fluidtank.getUnlocalizedName());
GameRegistry.registerBlock(dummy_block_refinery, dummy_block_refinery.getUnlocalizedName());
GameRegistry.registerBlock(dummy_port_refinery, dummy_port_refinery.getUnlocalizedName());
//Other Technical Blocks
GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName());

View File

@ -239,7 +239,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_incendiary && entity.power >= 75000)
{
EntityMissileIncendiary missile = new EntityMissileIncendiary(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileIncendiary missile = new EntityMissileIncendiary(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -257,7 +257,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_buster && entity.power >= 75000)
{
EntityMissileBunkerBuster missile = new EntityMissileBunkerBuster(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileBunkerBuster missile = new EntityMissileBunkerBuster(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -266,7 +266,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_strong && entity.power >= 75000)
{
EntityMissileStrong missile = new EntityMissileStrong(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileStrong missile = new EntityMissileStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -275,7 +275,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_incendiary_strong && entity.power >= 75000)
{
EntityMissileIncendiaryStrong missile = new EntityMissileIncendiaryStrong(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileIncendiaryStrong missile = new EntityMissileIncendiaryStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -284,7 +284,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_cluster_strong && entity.power >= 75000)
{
EntityMissileClusterStrong missile = new EntityMissileClusterStrong(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileClusterStrong missile = new EntityMissileClusterStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -293,7 +293,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_buster_strong && entity.power >= 75000)
{
EntityMissileBusterStrong missile = new EntityMissileBusterStrong(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileBusterStrong missile = new EntityMissileBusterStrong(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -302,7 +302,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_burst && entity.power >= 75000)
{
EntityMissileBurst missile = new EntityMissileBurst(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileBurst missile = new EntityMissileBurst(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -311,7 +311,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_inferno && entity.power >= 75000)
{
EntityMissileInferno missile = new EntityMissileInferno(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileInferno missile = new EntityMissileInferno(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -320,7 +320,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_rain && entity.power >= 75000)
{
EntityMissileRain missile = new EntityMissileRain(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileRain missile = new EntityMissileRain(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -329,7 +329,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_drill && entity.power >= 75000)
{
EntityMissileDrill missile = new EntityMissileDrill(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileDrill missile = new EntityMissileDrill(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -338,7 +338,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_nuclear && entity.power >= 75000)
{
EntityMissileNuclear missile = new EntityMissileNuclear(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileNuclear missile = new EntityMissileNuclear(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -347,7 +347,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_endo && entity.power >= 75000)
{
EntityMissileEndo missile = new EntityMissileEndo(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileEndo missile = new EntityMissileEndo(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -356,7 +356,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_exo && entity.power >= 75000)
{
EntityMissileExo missile = new EntityMissileExo(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileExo missile = new EntityMissileExo(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;
@ -365,7 +365,7 @@ public class LaunchPad extends BlockContainer implements IBomb {
}
if(entity.slots[0] != null && entity.slots[0].getItem() == ModItems.missile_nuclear_cluster && entity.power >= 75000)
{
EntityMissileMirv missile = new EntityMissileMirv(p_149695_1_, xCoord, zCoord, x + 0.5F, y + 2F, z + 0.5F);
EntityMissileMirv missile = new EntityMissileMirv(p_149695_1_, x + 0.5F, y + 2F, z + 0.5F, xCoord, zCoord);
p_149695_1_.spawnEntityInWorld(missile);
entity.power -= 75000;

View File

@ -0,0 +1,106 @@
package com.hbm.blocks.machine;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.interfaces.IDummy;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityDummy;
import com.hbm.tileentity.TileEntityMachineCyclotron;
import com.hbm.tileentity.TileEntityMachineRefinery;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
public class DummyBlockRefinery extends BlockContainer implements IDummy {
public static boolean safeBreak = false;
public DummyBlockRefinery(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
return new TileEntityDummy();
}
@Override
public void breakBlock(World world, int x, int y, int z, Block block, int i)
{
if(!safeBreak) {
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityDummy) {
int a = ((TileEntityDummy)te).targetX;
int b = ((TileEntityDummy)te).targetY;
int c = ((TileEntityDummy)te).targetZ;
//world.getBlock(a, b, c).breakBlock(world, a, b, c, block, i);
if(!world.isRemote)
world.func_147480_a(a, b, c, true);
}
}
world.removeTileEntity(x, y, z);
}
@Override
public int getRenderType() {
return -1;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
{
return null;
}
@Override
@SideOnly(Side.CLIENT)
public Item getItem(World world, int x, int y, int z)
{
return Item.getItemFromBlock(ModBlocks.machine_refinery);
}
@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())
{
TileEntity te = world.getTileEntity(x, y, z);
if(te != null && te instanceof TileEntityDummy) {
int a = ((TileEntityDummy)te).targetX;
int b = ((TileEntityDummy)te).targetY;
int c = ((TileEntityDummy)te).targetZ;
TileEntityMachineRefinery entity = (TileEntityMachineRefinery) world.getTileEntity(a, b, c);
if(entity != null)
{
FMLNetworkHandler.openGui(player, MainRegistry.instance, ModBlocks.guiID_machine_refinery, world, a, b, c);
}
}
return true;
} else {
return false;
}
}
}

View File

@ -99,7 +99,7 @@ public class MachineMiningDrill extends BlockContainer implements IMultiblock {
}
world.setBlock(x, y, z - 1, ModBlocks.dummy_port_drill);
TileEntity te2 = world.getTileEntity(x, y, z - 1);
if(te instanceof TileEntityDummy) {
if(te2 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te2;
dummy.targetX = x;
dummy.targetY = y;

View File

@ -3,8 +3,11 @@ package com.hbm.blocks.machine;
import java.util.Random;
import com.hbm.blocks.ModBlocks;
import com.hbm.handler.MultiblockHandler;
import com.hbm.interfaces.IMultiblock;
import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityDummy;
import com.hbm.tileentity.TileEntityMachineRefinery;
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
@ -14,6 +17,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
@ -21,28 +25,17 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class MachineRefinery extends BlockContainer {
public class MachineRefinery extends BlockContainer implements IMultiblock {
private final Random field_149933_a = new Random();
private Random rand;
private static boolean keepInventory;
@SideOnly(Side.CLIENT)
private IIcon iconTop;
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister iconRegister) {
this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_refinery_top");
this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_refinery_side");
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon);
public MachineRefinery(Material p_i45386_1_) {
super(p_i45386_1_);
}
@Override
@ -51,8 +44,19 @@ public class MachineRefinery extends BlockContainer {
return Item.getItemFromBlock(ModBlocks.machine_refinery);
}
public MachineRefinery(Material p_i45386_1_) {
super(p_i45386_1_);
@Override
public int getRenderType() {
return -1;
}
@Override
public boolean isOpaqueCube() {
return false;
}
@Override
public boolean renderAsNormalBlock() {
return false;
}
@Override
@ -129,4 +133,51 @@ public class MachineRefinery extends BlockContainer {
super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_);
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
if(MultiblockHandler.checkSpace(world, x, y, z, MultiblockHandler.refineryDimensions)) {
MultiblockHandler.fillUp(world, x, y, z, MultiblockHandler.refineryDimensions, ModBlocks.dummy_block_refinery);
//
DummyBlockRefinery.safeBreak = true;
world.setBlock(x + 1, y, z + 1, ModBlocks.dummy_port_refinery);
TileEntity te = world.getTileEntity(x + 1, y, z + 1);
if(te instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x + 1, y, z - 1, ModBlocks.dummy_port_refinery);
TileEntity te2 = world.getTileEntity(x + 1, y, z - 1);
if(te2 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te2;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x - 1, y, z - 1, ModBlocks.dummy_port_refinery);
TileEntity te3 = world.getTileEntity(x - 1, y, z - 1);
if(te3 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te3;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
world.setBlock(x - 1, y, z + 1, ModBlocks.dummy_port_refinery);
TileEntity te4 = world.getTileEntity(x - 1, y, z + 1);
if(te4 instanceof TileEntityDummy) {
TileEntityDummy dummy = (TileEntityDummy)te4;
dummy.targetX = x;
dummy.targetY = y;
dummy.targetZ = z;
}
DummyBlockRefinery.safeBreak = false;
//
} else
world.func_147480_a(x, y, z, true);
}
}

View File

@ -0,0 +1,101 @@
package com.hbm.entity.missile;
import com.hbm.entity.effect.EntityNukeCloudSmall;
import com.hbm.entity.logic.EntityNukeExplosionAdvanced;
import com.hbm.entity.particle.EntityOilSpillFX;
import com.hbm.entity.particle.EntitySSmokeFX;
import com.hbm.entity.particle.EntitySmokeFX;
import com.hbm.explosion.ExplosionChaos;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.main.MainRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.projectile.EntityThrowable;
import net.minecraft.init.Blocks;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import net.minecraft.world.World;
public class EntityBombletSelena extends EntityThrowable {
double decelY = 0.1D;
double accelXZ = 0.1D;
public EntityBombletSelena(World p_i1582_1_) {
super(p_i1582_1_);
this.ignoreFrustumCheck = true;
}
@Override
public void onUpdate() {
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
Vec3 vector = Vec3.createVectorHelper(motionX, 0, motionZ);
vector = vector.normalize();
vector.xCoord *= accelXZ;
vector.zCoord *= accelXZ;
this.motionY -= decelY;
this.motionX -= vector.xCoord;
this.motionZ -= vector.zCoord;
this.rotation();
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air)
{
if(!this.worldObj.isRemote)
{
ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 20.0F, true, true, true);
ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25);
}
this.setDead();
}
//if(!this.worldObj.isRemote)
// this.worldObj.spawnEntityInWorld(new EntityOilSpillFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
}
protected void rotation() {
float f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ);
this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI);
for (this.rotationPitch = (float)(Math.atan2(this.motionY, f2) * 180.0D / Math.PI) - 90; this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F)
{
;
}
while (this.rotationPitch - this.prevRotationPitch >= 180.0F)
{
this.prevRotationPitch += 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw < -180.0F)
{
this.prevRotationYaw -= 360.0F;
}
while (this.rotationYaw - this.prevRotationYaw >= 180.0F)
{
this.prevRotationYaw += 360.0F;
}
}
@Override
protected void onImpact(MovingObjectPosition p_70184_1_) {
}
@Override
@SideOnly(Side.CLIENT)
public boolean isInRangeToRenderDist(double distance)
{
return distance < 25000;
}
}

View File

@ -4,6 +4,7 @@ import com.hbm.entity.effect.EntityNukeCloudSmall;
import com.hbm.entity.logic.EntityNukeExplosionAdvanced;
import com.hbm.entity.particle.EntitySSmokeFX;
import com.hbm.entity.particle.EntitySmokeFX;
import com.hbm.explosion.ExplosionLarge;
import com.hbm.main.MainRegistry;
import cpw.mods.fml.relauncher.Side;
@ -43,27 +44,26 @@ public class EntityBombletTheta extends EntityThrowable {
this.motionX -= vector.xCoord;
this.motionZ -= vector.zCoord;
if(motionY < -0.75D && !worldObj.isRemote && rand.nextInt(10) == 0) {
EntityBombletSelena selena = new EntityBombletSelena(worldObj);
selena.posX = this.posX;
selena.posY = this.posY;
selena.posZ = this.posZ;
selena.motionX = rand.nextGaussian();
selena.motionY = rand.nextGaussian();
selena.motionZ = rand.nextGaussian();
selena.decelY = this.decelY;
selena.accelXZ = this.accelXZ;
worldObj.spawnEntityInWorld(selena);
}
this.rotation();
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air)
{
if(!this.worldObj.isRemote)
{
/*EntityNukeExplosionAdvanced entity = new EntityNukeExplosionAdvanced(this.worldObj);
entity.posX = this.posX;
entity.posY = this.posY;
entity.posZ = this.posZ;
entity.destructionRange = MainRegistry.mirvRadius;
entity.speed = 25;
entity.coefficient = 10.0F;
this.worldObj.spawnEntityInWorld(entity);
EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000);
entity2.posX = this.posX;
entity2.posY = this.posY - 9;
entity2.posZ = this.posZ;
this.worldObj.spawnEntityInWorld(entity2);*/
ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 50.0F, true, true, true);
}
this.setDead();
}
@ -99,7 +99,6 @@ public class EntityBombletTheta extends EntityThrowable {
@Override
protected void onImpact(MovingObjectPosition p_70184_1_) {
}
@Override

View File

@ -6,144 +6,18 @@ import com.hbm.explosion.ExplosionLarge;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileBunkerBuster extends EntityMissileBase {
public class EntityMissileBunkerBuster extends EntityMissileBaseAdvanced {
public EntityMissileBunkerBuster(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileBunkerBuster(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
public EntityMissileBunkerBuster(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
for(int i = 0; i < 15; i++)
{
this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 5F, true);
@ -153,8 +27,5 @@ public class EntityMissileBunkerBuster extends EntityMissileBase {
ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 5);
ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 5);
}
this.setDead();
}
}
}

View File

@ -6,150 +6,20 @@ import com.hbm.explosion.ExplosionLarge;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileBurst extends EntityMissileBase {
public class EntityMissileBurst extends EntityMissileBaseAdvanced {
public EntityMissileBurst(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileBurst(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 100;
public EntityMissileBurst(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
for(int i = 0; i < 4; i++)
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 50.0F, true);
ExplosionLarge.explode(worldObj, posX, posY, posZ, 50.0F, true, true, true);
}
this.setDead();
}
}
}

View File

@ -6,145 +6,18 @@ import com.hbm.explosion.ExplosionLarge;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileBusterStrong extends EntityMissileBase {
public class EntityMissileBusterStrong extends EntityMissileBaseAdvanced {
public EntityMissileBusterStrong(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileBusterStrong(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 75;
public EntityMissileBusterStrong(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
for(int i = 0; i < 20; i++)
{
this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 7.5F, true);
@ -153,7 +26,4 @@ public class EntityMissileBusterStrong extends EntityMissileBase {
ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 8);
ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 8);
}
this.setDead();
}
}
}

View File

@ -6,145 +6,25 @@ import com.hbm.explosion.ExplosionChaos;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileClusterStrong extends EntityMissileBase {
public class EntityMissileClusterStrong extends EntityMissileBaseAdvanced {
public EntityMissileClusterStrong(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileClusterStrong(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 75;
public EntityMissileClusterStrong(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
this.isCluster = true;
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true);
ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100);
this.setDead();
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15F, true);
ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 50, 100);
}
this.setDead();
}
@Override
public void cluster() {
this.onImpact();
}
}

View File

@ -87,150 +87,10 @@ public class EntityMissileDoomsday extends EntityMissileBaseAdvanced {
worldObj.spawnEntityInWorld(bomblet4);
worldObj.spawnEntityInWorld(bomblet5);
worldObj.spawnEntityInWorld(bomblet6);
ExplosionLarge.spawnParticles(worldObj, posX, posY, posZ, ExplosionLarge.cloudFunction(25));
ExplosionLarge.spawnTracers(worldObj, posX, posY, posZ, 10);
}
}
}
/*public EntityMissileGeneric(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileGeneric(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
ExplosionLarge.explode(worldObj, posX, posY, posZ, 10.0F, true, true, true);
}
this.setDead();
}
}*/
}

View File

@ -6,145 +6,18 @@ import com.hbm.explosion.ExplosionLarge;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileDrill extends EntityMissileBase {
public class EntityMissileDrill extends EntityMissileBaseAdvanced {
public EntityMissileDrill(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileDrill(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 100;
public EntityMissileDrill(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
for(int i = 0; i < 30; i++)
{
this.worldObj.createExplosion(this, this.posX, this.posY - i, this.posZ, 10F, true);
@ -153,7 +26,4 @@ public class EntityMissileDrill extends EntityMissileBase {
ExplosionLarge.spawnShrapnels(worldObj, this.posX, this.posY, this.posZ, 12);
ExplosionLarge.spawnRubble(worldObj, this.posX, this.posY, this.posZ, 12);
}
this.setDead();
}
}
}

View File

@ -6,150 +6,20 @@ import com.hbm.explosion.ExplosionThermo;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileEndo extends EntityMissileBase {
public class EntityMissileEndo extends EntityMissileBaseAdvanced {
public EntityMissileEndo(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileEndo(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 100;
public EntityMissileEndo(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true);
ExplosionThermo.freeze(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30);
ExplosionThermo.freezer(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40);
}
this.setDead();
}
}
}

View File

@ -6,150 +6,20 @@ import com.hbm.explosion.ExplosionThermo;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileExo extends EntityMissileBase {
public class EntityMissileExo extends EntityMissileBaseAdvanced {
public EntityMissileExo(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileExo(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 100;
public EntityMissileExo(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 10.0F, true);
ExplosionThermo.scorch(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 30);
ExplosionThermo.setEntitiesOnFire(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 40);
}
this.setDead();
}
}
}

View File

@ -8,155 +8,19 @@ import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileIncendiary extends EntityMissileBase {
public class EntityMissileIncendiary extends EntityMissileBaseAdvanced {
public EntityMissileIncendiary(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileIncendiary(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
public EntityMissileIncendiary(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 10.0F, true, true, true);
}
this.setDead();
}
}
@Override
@SideOnly(Side.CLIENT)
public boolean isInRangeToRenderDist(double distance)
{
return distance < 25000;
}
}

View File

@ -7,149 +7,19 @@ import com.hbm.explosion.ExplosionLarge;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileIncendiaryStrong extends EntityMissileBase {
public class EntityMissileIncendiaryStrong extends EntityMissileBaseAdvanced {
public EntityMissileIncendiaryStrong(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileIncendiaryStrong(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 75;
public EntityMissileIncendiaryStrong(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 25.0F, true, true, true);
ExplosionChaos.flameDeath(this.worldObj, (int)((float)this.posX + 0.5F), (int)((float)this.posY + 0.5F), (int)((float)this.posZ + 0.5F), 25);
}
this.setDead();
}
}
}

View File

@ -7,150 +7,20 @@ import com.hbm.explosion.ExplosionLarge;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileInferno extends EntityMissileBase {
public class EntityMissileInferno extends EntityMissileBaseAdvanced {
public EntityMissileInferno(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileInferno(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 100;
public EntityMissileInferno(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
ExplosionLarge.explodeFire(worldObj, this.posX + 0.5F, this.posY + 0.5F, this.posZ + 0.5F, 35.0F, true, true, true);
ExplosionChaos.burn(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 10);
ExplosionChaos.flameDeath(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 25);
}
this.setDead();
}
}
}

View File

@ -1,153 +1,47 @@
package com.hbm.entity.missile;
import com.hbm.entity.effect.EntityNukeCloudSmall;
import com.hbm.entity.logic.EntityNukeExplosionAdvanced;
import com.hbm.entity.particle.EntitySmokeFX;
import com.hbm.explosion.ExplosionChaos;
import com.hbm.main.MainRegistry;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileMirv extends EntityMissileBase {
public class EntityMissileMirv extends EntityMissileBaseAdvanced {
public EntityMissileMirv(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileMirv(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 150;
public EntityMissileMirv(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
this.isCluster = true;
}
@Override
public void onUpdate()
{
public void onImpact() {
EntityNukeExplosionAdvanced entity = new EntityNukeExplosionAdvanced(this.worldObj);
entity.posX = this.posX;
entity.posY = this.posY;
entity.posZ = this.posZ;
entity.destructionRange = MainRegistry.missileRadius;
entity.speed = 25;
entity.coefficient = 10.0F;
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.worldObj.spawnEntityInWorld(entity);
this.rotation();
EntityNukeCloudSmall entity2 = new EntityNukeCloudSmall(this.worldObj, 1000);
entity2.posX = this.posX;
entity2.posY = this.posY - 9;
entity2.posZ = this.posZ;
this.worldObj.spawnEntityInWorld(entity2);
}
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
if(!this.worldObj.isRemote)
{
@Override
public void cluster() {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15.0F, true);
ExplosionChaos.mirv(this.worldObj,this.posX, this.posY, this.posZ);
this.setDead();
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 15.0F, true);
ExplosionChaos.mirv(this.worldObj,this.posX, this.posY, this.posZ);
}
this.setDead();
}
}
}

View File

@ -8,145 +8,18 @@ import com.hbm.main.MainRegistry;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileNuclear extends EntityMissileBase {
public class EntityMissileNuclear extends EntityMissileBaseAdvanced {
public EntityMissileNuclear(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileNuclear(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 100;
public EntityMissileNuclear(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
EntityNukeExplosionAdvanced entity = new EntityNukeExplosionAdvanced(this.worldObj);
entity.posX = this.posX;
entity.posY = this.posY;
@ -163,8 +36,5 @@ public class EntityMissileNuclear extends EntityMissileBase {
entity2.posZ = this.posZ;
this.worldObj.spawnEntityInWorld(entity2);
}
this.setDead();
}
}
}

View File

@ -6,145 +6,25 @@ import com.hbm.explosion.ExplosionChaos;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileRain extends EntityMissileBase {
public class EntityMissileRain extends EntityMissileBaseAdvanced {
public EntityMissileRain(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileRain(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 100;
public EntityMissileRain(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
this.isCluster = true;
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 5F, true);
ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100);
this.setDead();
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
this.worldObj.createExplosion(this, this.posX, this.posY, this.posZ, 25F, true);
ExplosionChaos.cluster(this.worldObj, (int)this.posX, (int)this.posY, (int)this.posZ, 100, 100);
}
this.setDead();
}
@Override
public void cluster() {
this.onImpact();
}
}

View File

@ -6,149 +6,19 @@ import com.hbm.explosion.ExplosionLarge;
import net.minecraft.init.Blocks;
import net.minecraft.world.World;
public class EntityMissileStrong extends EntityMissileBase {
public class EntityMissileStrong extends EntityMissileBaseAdvanced {
public EntityMissileStrong(World p_i1582_1_) {
super(p_i1582_1_);
}
public EntityMissileStrong(World p_i1582_1_, int x, int z, double a, double b, double c) {
super(p_i1582_1_, x, z, a, b, c);
this.baseHeight = 75;
public EntityMissileStrong(World world, float x, float y, float z, int a, int b) {
super(world, x, y, z, a, b);
}
@Override
public void onUpdate()
{
this.posX += this.motionX;
this.posY += this.motionY;
this.posZ += this.motionZ;
this.rotation();
switch(phase)
{
case 0:
if(loc0 != null)
{
freePizzaGoddammit(loc0);
if(loc0.posX + 2 > this.posX && loc0.posX - 2 < this.posX &&
loc0.posY + 2 > this.posY && loc0.posY - 2 < this.posY &&
loc0.posZ + 2 > this.posZ && loc0.posZ - 2 < this.posZ)
{
this.phase = 1;
}
}
break;
case 1:
if(loc1 != null)
{
freePizzaGoddammit(loc1);
if(loc1.posX + 2 > this.posX && loc1.posX - 2 < this.posX &&
loc1.posY + 2 > this.posY && loc1.posY - 2 < this.posY &&
loc1.posZ + 2 > this.posZ && loc1.posZ - 2 < this.posZ)
{
this.phase = 2;
}
}
break;
case 2:
if(loc2 != null)
{
freePizzaGoddammit(loc2);
if(loc2.posX + 2 > this.posX && loc2.posX - 2 < this.posX &&
loc2.posY + 2 > this.posY && loc2.posY - 2 < this.posY &&
loc2.posZ + 2 > this.posZ && loc2.posZ - 2 < this.posZ)
{
this.phase = 3;
}
}
break;
case 3:
if(loc3 != null)
{
freePizzaGoddammit(loc3);
if(loc3.posX + 2 > this.posX && loc3.posX - 2 < this.posX &&
loc3.posY + 2 > this.posY && loc3.posY - 2 < this.posY &&
loc3.posZ + 2 > this.posZ && loc3.posZ - 2 < this.posZ)
{
this.phase = 4;
}
}
break;
case 4:
if(loc4 != null)
{
freePizzaGoddammit(loc4);
if(loc4.posX + 2 > this.posX && loc4.posX - 2 < this.posX &&
loc4.posY + 2 > this.posY && loc4.posY - 2 < this.posY &&
loc4.posZ + 2 > this.posZ && loc4.posZ - 2 < this.posZ)
{
this.phase = 5;
}
}
break;
case 5:
if(loc5 != null)
{
freePizzaGoddammit(loc5);
if(loc5.posX + 2 > this.posX && loc5.posX - 2 < this.posX &&
loc5.posY + 2 > this.posY && loc5.posY - 2 < this.posY &&
loc5.posZ + 2 > this.posZ && loc5.posZ - 2 < this.posZ)
{
this.phase = 6;
}
}
break;
case 6:
if(loc6 != null)
{
freePizzaGoddammit(loc6);
if(loc6.posX + 2 > this.posX && loc6.posX - 2 < this.posX &&
loc6.posY + 2 > this.posY && loc6.posY - 2 < this.posY &&
loc6.posZ + 2 > this.posZ && loc6.posZ - 2 < this.posZ)
{
this.phase = 7;
}
}
break;
case 7:
if(loc7 != null)
{
freePizzaGoddammit(loc7);
if(loc7.posX + 2 > this.posX && loc7.posX - 2 < this.posX &&
loc7.posY + 2 > this.posY && loc7.posY - 2 < this.posY &&
loc7.posZ + 2 > this.posZ && loc7.posZ - 2 < this.posZ)
{
this.phase = 8;
}
}
break;
case 8:
if(target != null)
{
freePizzaGoddammit(target);
if(target.posX + 2 > this.posX && target.posX - 2 < this.posX &&
target.posY + 2 > this.posY && target.posY - 2 < this.posY &&
target.posZ + 2 > this.posZ && target.posZ - 2 < this.posZ)
{
this.phase = -1;
}
}
break;
}
this.worldObj.spawnEntityInWorld(new EntitySmokeFX(this.worldObj, this.posX, this.posY, this.posZ, 0.0, 0.0, 0.0));
if(this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.air && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.water && this.worldObj.getBlock((int)this.posX, (int)this.posY, (int)this.posZ) != Blocks.flowing_water)
{
if(!this.worldObj.isRemote)
{
public void onImpact() {
ExplosionLarge.explode(worldObj, posX, posY, posZ, 25.0F, true, true, true);
}
this.setDead();
}
}
}

View File

@ -6,6 +6,7 @@ public class FluidTypeHandler {
NONE (0x888888, 8947848, 0, 1, "hbmfluid.none"),
WATER (0x3333FF, 3355647, 1, 1, "hbmfluid.water"),
STEAM (0x3333FF, 3355647, 1, 1, "hbmfluid.steam"),
COOLANT (0xd8fcff, 14220543, 2, 1, "hbmfluid.coolant"),
LAVA (0xFF3300, 16724736, 3, 1, "hbmfluid.lava"),
@ -14,6 +15,7 @@ public class FluidTypeHandler {
TRITIUM (0x000099, 153, 5, 1, "hbmfluid.tritium"),
OIL (0x020202, 131586, 6, 1, "hbmfluid.oil"),
HOTOIL (0x020202, 131586, 6, 1, "hbmfluid.hotoil"),
HEAVYOIL (0x141312, 1315602, 2, 2, "hbmfluid.heavyoil"),
BITUMEN (0x1f2426, 2040870, 3, 2, "hbmfluid.bitumen"),

View File

@ -58,6 +58,7 @@ public class MultiblockHandler {
public static final int[] chemplantDimensionWest = new int[] { 1, 2, 2, 0, 1, 2 };
public static final int[] fluidTankDimensionNS = new int[] { 1, 1, 2, 0, 2, 2 };
public static final int[] fluidTankDimensionEW = new int[] { 2, 2, 2, 0, 1, 1 };
public static final int[] refineryDimensions = new int[] { 1, 1, 9, 0, 1, 1 };
//Approved!
public static boolean checkSpace(World world, int x, int y, int z, int[] i) {

View File

@ -1638,7 +1638,7 @@ public class MachineRecipes {
break;
case WT3_CLUSTER:
list.add(new ItemStack(ModItems.warhead_generic_large, 1));
list.add(new ItemStack(ModItems.powder_fire, 16));
list.add(new ItemStack(ModItems.pellet_cluster, 16));
break;
case WT1_BUSTER:
list.add(new ItemStack(ModItems.warhead_generic_small, 1));
@ -2511,6 +2511,20 @@ public class MachineRecipes {
list.add(new ItemStack(Items.gold_ingot, 2));
list.add(new ItemStack(Items.coal, 8));
break;
case CC_I:
list.add(new ItemStack(Items.coal, 8));
break;
case CC_HEATING:
list.add(new ItemStack(Items.coal, 8));
break;
case CC_HEAVY:
list.add(new ItemStack(Items.coal, 10));
break;
case CC_NAPHTHA:
list.add(new ItemStack(Items.coal, 10));
break;
default:
break;
}
if(list.isEmpty())
@ -2531,6 +2545,59 @@ public class MachineRecipes {
input[0] = new FluidStack(400, FluidType.LAVA);
input[1] = new FluidStack(200, FluidType.KEROSENE);
break;
case FP_HEAVYOIL:
input[0] = new FluidStack(1000, FluidType.HEAVYOIL);
break;
case FP_SMEAR:
input[0] = new FluidStack(1000, FluidType.SMEAR);
break;
case FP_NAPHTHA:
input[0] = new FluidStack(1000, FluidType.NAPHTHA);
break;
case FP_LIGHTOIL:
input[0] = new FluidStack(1000, FluidType.LIGHTOIL);
break;
case FR_REOIL:
input[0] = new FluidStack(1000, FluidType.SMEAR);
break;
case FR_PETROIL:
input[0] = new FluidStack(800, FluidType.RECLAIMED);
input[1] = new FluidStack(200, FluidType.LUBRICANT);
break;
case FC_I_NAPHTHA:
input[0] = new FluidStack(1400, FluidType.SMEAR);
input[1] = new FluidStack(800, FluidType.WATER);
break;
case FC_GAS_PETROLEUM:
input[0] = new FluidStack(1800, FluidType.GAS);
input[1] = new FluidStack(1200, FluidType.WATER);
break;
case FC_DIESEL_KEROSENE:
input[0] = new FluidStack(1200, FluidType.DIESEL);
input[1] = new FluidStack(2000, FluidType.STEAM);
break;
case FC_KEROSENE_PETROLEUM:
input[0] = new FluidStack(1400, FluidType.KEROSENE);
input[1] = new FluidStack(2000, FluidType.STEAM);
break;
case CC_I:
input[0] = new FluidStack(800, FluidType.HEAVYOIL);
input[1] = new FluidStack(1800, FluidType.WATER);
break;
case CC_HEATING:
input[0] = new FluidStack(800, FluidType.SMEAR);
input[1] = new FluidStack(2000, FluidType.STEAM);
break;
case CC_HEAVY:
input[0] = new FluidStack(600, FluidType.SMEAR);
input[1] = new FluidStack(1400, FluidType.WATER);
break;
case CC_NAPHTHA:
input[0] = new FluidStack(1200, FluidType.HEAVYOIL);
input[1] = new FluidStack(2400, FluidType.STEAM);
break;
default:
break;
}
return input;
@ -2548,6 +2615,8 @@ public class MachineRecipes {
output[0] = new ItemStack(ModItems.ingot_steel);
output[1] = new ItemStack(ModItems.ingot_desh, 2);
break;
default:
break;
}
return output;
@ -2564,6 +2633,54 @@ public class MachineRecipes {
case TEST:
input[0] = new FluidStack(200, FluidType.WATER);
break;
case FP_HEAVYOIL:
input[0] = new FluidStack(300, FluidType.BITUMEN);
input[1] = new FluidStack(700, FluidType.SMEAR);
break;
case FP_SMEAR:
input[0] = new FluidStack(600, FluidType.HEATINGOIL);
input[1] = new FluidStack(400, FluidType.LUBRICANT);
break;
case FP_NAPHTHA:
input[0] = new FluidStack(400, FluidType.HEATINGOIL);
input[1] = new FluidStack(600, FluidType.DIESEL);
break;
case FP_LIGHTOIL:
input[0] = new FluidStack(400, FluidType.DIESEL);
input[1] = new FluidStack(600, FluidType.KEROSENE);
break;
case FR_REOIL:
input[0] = new FluidStack(800, FluidType.RECLAIMED);
break;
case FR_PETROIL:
input[0] = new FluidStack(1000, FluidType.PETROIL);
break;
case FC_I_NAPHTHA:
input[0] = new FluidStack(800, FluidType.NAPHTHA);
break;
case FC_GAS_PETROLEUM:
input[0] = new FluidStack(800, FluidType.PETROLEUM);
break;
case FC_DIESEL_KEROSENE:
input[0] = new FluidStack(400, FluidType.KEROSENE);
break;
case FC_KEROSENE_PETROLEUM:
input[0] = new FluidStack(800, FluidType.PETROLEUM);
break;
case CC_I:
input[0] = new FluidStack(800, FluidType.SMEAR);
break;
case CC_HEATING:
input[0] = new FluidStack(800, FluidType.HEATINGOIL);
break;
case CC_HEAVY:
input[0] = new FluidStack(1800, FluidType.HEAVYOIL);
break;
case CC_NAPHTHA:
input[0] = new FluidStack(2000, FluidType.NAPHTHA);
break;
default:
break;
}
return input;

View File

@ -14,46 +14,36 @@ public class ContainerMachineRefinery extends Container {
private TileEntityMachineRefinery testNuke;
private int power;
private float oil;
private int fuel;
private int lubricant;
private int diesel;
private int kerosene;
public ContainerMachineRefinery(InventoryPlayer invPlayer, TileEntityMachineRefinery tedf) {
power = 0;
oil = 0;
fuel = 0;
lubricant = 0;
diesel = 0;
kerosene = 0;
testNuke = tedf;
//Battery
this.addSlotToContainer(new Slot(tedf, 0, 44, 54));
this.addSlotToContainer(new Slot(tedf, 0, 8, 90));
//Canister Input
this.addSlotToContainer(new Slot(tedf, 1, 134, 18));
this.addSlotToContainer(new Slot(tedf, 1, 35, 90));
//Canister Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 2, 134, 54));
//Fuel Input
this.addSlotToContainer(new Slot(tedf, 3, 26, 72));
//Fuel Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 4, 26, 108));
//Lubricant Input
this.addSlotToContainer(new Slot(tedf, 5, 62, 72));
//Lubricant Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 6, 62, 108));
//Diesel Input
this.addSlotToContainer(new Slot(tedf, 7, 98, 72));
//Diesel Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 8, 98, 108));
//Kerosene Input
this.addSlotToContainer(new Slot(tedf, 9, 134, 72));
//Kerosene Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 2, 35, 108));
//Heavy Oil Input
this.addSlotToContainer(new Slot(tedf, 3, 80, 90));
//Heavy Oil Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 4, 80, 108));
//Nahptha Input
this.addSlotToContainer(new Slot(tedf, 5, 98, 90));
//Nahptha Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 6, 98, 108));
//Light Oil Input
this.addSlotToContainer(new Slot(tedf, 7, 116, 90));
//Light Oil Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 8, 116, 108));
//Petroleum Input
this.addSlotToContainer(new Slot(tedf, 9, 134, 90));
//Petroleum Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 10, 134, 108));
//Sulfur Output
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 11, 152, 108));
this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 11, 152, 36));
for(int i = 0; i < 3; i++)
{
@ -73,11 +63,6 @@ public class ContainerMachineRefinery extends Container {
public void addCraftingToCrafters(ICrafting crafting) {
super.addCraftingToCrafters(crafting);
crafting.sendProgressBarUpdate(this, 0, this.testNuke.power);
crafting.sendProgressBarUpdate(this, 1, this.testNuke.oil);
crafting.sendProgressBarUpdate(this, 2, this.testNuke.fuel);
crafting.sendProgressBarUpdate(this, 3, this.testNuke.lubricant);
crafting.sendProgressBarUpdate(this, 4, this.testNuke.diesel);
crafting.sendProgressBarUpdate(this, 5, this.testNuke.kerosene);
}
@Override
@ -136,34 +121,9 @@ public class ContainerMachineRefinery extends Container {
{
par1.sendProgressBarUpdate(this, 0, this.testNuke.power);
}
if(this.oil != this.testNuke.oil)
{
par1.sendProgressBarUpdate(this, 1, this.testNuke.oil);
}
if(this.fuel != this.testNuke.fuel)
{
par1.sendProgressBarUpdate(this, 2, this.testNuke.fuel);
}
if(this.lubricant != this.testNuke.lubricant)
{
par1.sendProgressBarUpdate(this, 3, this.testNuke.lubricant);
}
if(this.diesel != this.testNuke.diesel)
{
par1.sendProgressBarUpdate(this, 4, this.testNuke.diesel);
}
if(this.kerosene != this.testNuke.kerosene)
{
par1.sendProgressBarUpdate(this, 5, this.testNuke.kerosene);
}
}
this.power = this.testNuke.power;
this.oil = this.testNuke.oil;
this.oil = this.testNuke.fuel;
this.oil = this.testNuke.lubricant;
this.oil = this.testNuke.diesel;
this.oil = this.testNuke.kerosene;
}
@Override
@ -172,25 +132,5 @@ public class ContainerMachineRefinery extends Container {
{
testNuke.power = j;
}
if(i == 1)
{
testNuke.oil = j;
}
if(i == 2)
{
testNuke.fuel = j;
}
if(i == 3)
{
testNuke.lubricant = j;
}
if(i == 4)
{
testNuke.diesel = j;
}
if(i == 5)
{
testNuke.kerosene = j;
}
}
}

View File

@ -52,6 +52,12 @@ public class GUIMachineChemplant extends GuiFluidContainer {
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
int i = chemplant.getPowerScaled(52);
drawTexturedModalRect(guiLeft + 44, guiTop + 70 - i, 176, 52 - i, 16, i);
int j = chemplant.getProgressScaled(90);
drawTexturedModalRect(guiLeft + 43, guiTop + 89, 0, 222, j, 18);
Minecraft.getMinecraft().getTextureManager().bindTexture(FluidTank.fluidTextures);
chemplant.tanks[0].renderTank(this, guiLeft + 8, guiTop + 52, chemplant.tanks[0].getTankType().textureX() * FluidTank.x, chemplant.tanks[0].getTankType().textureY() * FluidTank.y, 16, 34);

View File

@ -2,6 +2,7 @@ package com.hbm.inventory.gui;
import org.lwjgl.opengl.GL11;
import com.hbm.inventory.FluidTank;
import com.hbm.inventory.container.ContainerMachineRefinery;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.TileEntityMachineRefinery;
@ -12,22 +13,33 @@ import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.util.ResourceLocation;
public class GUIMachineRefinery extends GuiContainer {
public class GUIMachineRefinery extends GuiFluidContainer {
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_refinery.png");
private TileEntityMachineRefinery diFurnace;
private TileEntityMachineRefinery refinery;
public GUIMachineRefinery(InventoryPlayer invPlayer, TileEntityMachineRefinery tedf) {
super(new ContainerMachineRefinery(invPlayer, tedf));
diFurnace = tedf;
refinery = tedf;
this.xSize = 176;
this.ySize = 222;
}
@Override
public void drawScreen(int mouseX, int mouseY, float f) {
super.drawScreen(mouseX, mouseY, f);
refinery.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 70 - 52, 34, 52);
refinery.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 70 - 52, 16, 52);
refinery.tanks[2].renderTankInfo(this, mouseX, mouseY, guiLeft + 98, guiTop + 70 - 52, 16, 52);
refinery.tanks[3].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 70 - 52, 16, 52);
refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 70 - 52, 16, 52);
}
@Override
protected void drawGuiContainerForegroundLayer(int i, int j) {
String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName());
String name = this.refinery.hasCustomInventoryName() ? this.refinery.getInventoryName() : I18n.format(this.refinery.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
@ -39,17 +51,16 @@ public class GUIMachineRefinery extends GuiContainer {
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
int i = diFurnace.getOilScaled(52);
drawTexturedModalRect(guiLeft + 80, guiTop + 70 - i, 192, 52 - i, 34, i);
int j = diFurnace.getPowerScaled(52);
int j = refinery.getPowerScaled(52);
drawTexturedModalRect(guiLeft + 8, guiTop + 70 - j, 176, 52 - j, 16, j);
int k = diFurnace.getSmearScaled(52);
drawTexturedModalRect(guiLeft + 8, guiTop + 124 - k, 176, 104 - k, 7, k);
int l = diFurnace.getLubricantScaled(52);
drawTexturedModalRect(guiLeft + 44, guiTop + 124 - l, 183, 104 - l, 7, l);
int m = diFurnace.getDieselScaled(52);
drawTexturedModalRect(guiLeft + 80, guiTop + 124 - m, 190, 104 - m, 7, m);
int n = diFurnace.getKeroseneScaled(52);
drawTexturedModalRect(guiLeft + 116, guiTop + 124 - n, 197, 104 - n, 7, n);
Minecraft.getMinecraft().getTextureManager().bindTexture(FluidTank.fluidTextures);
refinery.tanks[0].renderTank(this, guiLeft + 26, guiTop + 70, refinery.tanks[0].getTankType().textureX() * FluidTank.x, refinery.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52);
refinery.tanks[0].renderTank(this, guiLeft + 26 + 16, guiTop + 70, refinery.tanks[0].getTankType().textureX() * FluidTank.x, refinery.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52);
refinery.tanks[0].renderTank(this, guiLeft + 26 + 32, guiTop + 70, refinery.tanks[0].getTankType().textureX() * FluidTank.x, refinery.tanks[0].getTankType().textureY() * FluidTank.y, 2, 52);
refinery.tanks[1].renderTank(this, guiLeft + 80, guiTop + 70, refinery.tanks[1].getTankType().textureX() * FluidTank.x, refinery.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52);
refinery.tanks[2].renderTank(this, guiLeft + 98, guiTop + 70, refinery.tanks[2].getTankType().textureX() * FluidTank.x, refinery.tanks[2].getTankType().textureY() * FluidTank.y, 16, 52);
refinery.tanks[3].renderTank(this, guiLeft + 116, guiTop + 70, refinery.tanks[3].getTankType().textureX() * FluidTank.x, refinery.tanks[3].getTankType().textureY() * FluidTank.y, 16, 52);
refinery.tanks[4].renderTank(this, guiLeft + 134, guiTop + 70, refinery.tanks[4].getTankType().textureX() * FluidTank.x, refinery.tanks[4].getTankType().textureY() * FluidTank.y, 16, 52);
}
}

View File

@ -355,8 +355,15 @@ public class ModItems {
public static Item canister_napalm;
public static Item canister_NITAN;
public static Item canister_heavyoil;
public static Item canister_bitumen;
public static Item canister_heatingoil;
public static Item canister_naphtha;
public static Item canister_lightoil;
public static Item gas_empty;
public static Item gas_full;
public static Item gas_petroleum;
public static Item syringe_empty;
public static Item syringe_antidote;
@ -1279,8 +1286,14 @@ public class ModItems {
canister_petroil = new ItemCustomLore().setUnlocalizedName("canister_petroil").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_petroil");
canister_napalm = new ItemCustomLore().setUnlocalizedName("canister_napalm").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_napalm");
canister_NITAN = new ItemCustomLore().setUnlocalizedName("canister_NITAN").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_superfuel");
canister_heavyoil = new ItemCustomLore().setUnlocalizedName("canister_heavyoil").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heavyoil");
canister_bitumen = new ItemCustomLore().setUnlocalizedName("canister_bitumen").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_bitumen");
canister_heatingoil = new ItemCustomLore().setUnlocalizedName("canister_heatingoil").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_heatingoil");
canister_naphtha = new ItemCustomLore().setUnlocalizedName("canister_naphtha").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_naphtha");
canister_lightoil = new ItemCustomLore().setUnlocalizedName("canister_lightoil").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.canister_empty).setTextureName(RefStrings.MODID + ":canister_lightoil");
gas_empty = new Item().setUnlocalizedName("gas_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":gas_empty");
gas_full = new Item().setUnlocalizedName("gas_full").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_full");
gas_petroleum = new Item().setUnlocalizedName("gas_petroleum").setCreativeTab(MainRegistry.tabParts).setContainerItem(ModItems.gas_empty).setTextureName(RefStrings.MODID + ":gas_petroleum");
tank_waste = new ItemTankWaste().setUnlocalizedName("tank_waste").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts);
@ -2232,10 +2245,15 @@ public class ModItems {
//Canisters
GameRegistry.registerItem(canister_empty, canister_empty.getUnlocalizedName());
GameRegistry.registerItem(canister_oil, canister_oil.getUnlocalizedName());
GameRegistry.registerItem(canister_heavyoil, canister_heavyoil.getUnlocalizedName());
GameRegistry.registerItem(canister_bitumen, canister_bitumen.getUnlocalizedName());
GameRegistry.registerItem(canister_smear, canister_smear.getUnlocalizedName());
GameRegistry.registerItem(canister_heatingoil, canister_heatingoil.getUnlocalizedName());
GameRegistry.registerItem(canister_canola, canister_canola.getUnlocalizedName());
GameRegistry.registerItem(canister_naphtha, canister_naphtha.getUnlocalizedName());
GameRegistry.registerItem(canister_fuel, canister_fuel.getUnlocalizedName());
GameRegistry.registerItem(canister_kerosene, canister_kerosene.getUnlocalizedName());
GameRegistry.registerItem(canister_lightoil, canister_lightoil.getUnlocalizedName());
GameRegistry.registerItem(canister_reoil, canister_reoil.getUnlocalizedName());
GameRegistry.registerItem(canister_petroil, canister_petroil.getUnlocalizedName());
GameRegistry.registerItem(canister_napalm, canister_napalm.getUnlocalizedName());
@ -2244,6 +2262,7 @@ public class ModItems {
//Gastanks
GameRegistry.registerItem(gas_empty, gas_empty.getUnlocalizedName());
GameRegistry.registerItem(gas_full, gas_full.getUnlocalizedName());
GameRegistry.registerItem(gas_petroleum, gas_petroleum.getUnlocalizedName());
//Batteries
GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName());

View File

@ -422,6 +422,14 @@ public class ItemCustomLore extends ItemRadioactive {
list.add("Mining drill speed upgrade");
list.add("Effect: Delay -15 (from 50)");
list.add("Drawback: Power consumption +300 (from 100)");
list.add("");
list.add("Assembly machine speed upgrade");
list.add("Effect: Delay -25 (from 100)");
list.add("Drawback: Power consumption +300 (from 100)");
list.add("");
list.add("Chemical plant speed upgrade");
list.add("Effect: Delay -25 (from 100)");
list.add("Drawback: Power consumption +300 (from 100)");
}
if(this == ModItems.upgrade_speed_2)
@ -429,6 +437,14 @@ public class ItemCustomLore extends ItemRadioactive {
list.add("Mining drill speed upgrade");
list.add("Effect: Delay -30 (from 50)");
list.add("Drawback: Power consumption +600 (from 100)");
list.add("");
list.add("Assembly machine speed upgrade");
list.add("Effect: Delay -50 (from 100)");
list.add("Drawback: Power consumption +600 (from 100)");
list.add("");
list.add("Chemical plant speed upgrade");
list.add("Effect: Delay -50 (from 100)");
list.add("Drawback: Power consumption +600 (from 100)");
}
if(this == ModItems.upgrade_speed_3)
@ -436,6 +452,14 @@ public class ItemCustomLore extends ItemRadioactive {
list.add("Mining drill speed upgrade");
list.add("Effect: Delay -45 (from 50)");
list.add("Drawback: Power consumption +900 (from 100)");
list.add("");
list.add("Assembly machine speed upgrade");
list.add("Effect: Delay -75 (from 100)");
list.add("Drawback: Power consumption +900 (from 100)");
list.add("");
list.add("Chemical plant speed upgrade");
list.add("Effect: Delay -75 (from 100)");
list.add("Drawback: Power consumption +900 (from 100)");
}
if(this == ModItems.upgrade_effect_1)
@ -464,6 +488,14 @@ public class ItemCustomLore extends ItemRadioactive {
list.add("Mining drill power saving upgrade");
list.add("Effect: Power consumption -30 (from 100)");
list.add("Drawback: Delay +5 (from 50)");
list.add("");
list.add("Assembly machine power saving upgrade");
list.add("Effect: Power consumption -30 (from 100)");
list.add("Drawback: Delay +5 (from 50)");
list.add("");
list.add("Chemical plant power saving upgrade");
list.add("Effect: Power consumption -30 (from 100)");
list.add("Drawback: Delay +5 (from 50)");
}
if(this == ModItems.upgrade_power_2)
@ -471,6 +503,14 @@ public class ItemCustomLore extends ItemRadioactive {
list.add("Mining drill power saving upgrade");
list.add("Effect: Power consumption -60 (from 100)");
list.add("Drawback: Delay +10 (from 50)");
list.add("");
list.add("Assembly machine power saving upgrade");
list.add("Effect: Power consumption -60 (from 100)");
list.add("Drawback: Delay +10 (from 50)");
list.add("");
list.add("Chemical plant power saving upgrade");
list.add("Effect: Power consumption -60 (from 100)");
list.add("Drawback: Delay +10 (from 50)");
}
if(this == ModItems.upgrade_power_3)
@ -478,6 +518,14 @@ public class ItemCustomLore extends ItemRadioactive {
list.add("Mining drill power saving upgrade");
list.add("Effect: Power consumption -90 (from 100)");
list.add("Drawback: Delay +15 (from 50)");
list.add("");
list.add("Assembly machine power saving upgrade");
list.add("Effect: Power consumption -90 (from 100)");
list.add("Drawback: Delay +15 (from 50)");
list.add("");
list.add("Chemical plant power saving upgrade");
list.add("Effect: Power consumption -90 (from 100)");
list.add("Drawback: Delay +15 (from 50)");
}
if(this == ModItems.upgrade_fortune_1)

View File

@ -17,7 +17,14 @@ public class ItemChemistryTemplate extends Item {
public enum EnumChemistryTemplate {
TEST;
//FP - Fuel Processing
//FR - Fuel Reprocessing
//FC - Fuel Cracking
//CC - Coal Cracking
TEST, FP_HEAVYOIL, FP_SMEAR, FP_NAPHTHA, FP_LIGHTOIL, FR_REOIL, FR_PETROIL,
FC_I_NAPHTHA, FC_GAS_PETROLEUM, FC_DIESEL_KEROSENE, FC_KEROSENE_PETROLEUM, CC_I,
CC_HEATING, CC_HEAVY, CC_NAPHTHA;
public static EnumChemistryTemplate getEnum(int i) {
return EnumChemistryTemplate.values()[i];
@ -62,6 +69,34 @@ public class ItemChemistryTemplate extends Item {
switch (enum1) {
case TEST:
return 200;
case FP_HEAVYOIL:
return 50;
case FP_SMEAR:
return 50;
case FP_NAPHTHA:
return 50;
case FP_LIGHTOIL:
return 50;
case FR_REOIL:
return 30;
case FR_PETROIL:
return 30;
case FC_I_NAPHTHA:
return 150;
case FC_GAS_PETROLEUM:
return 100;
case FC_DIESEL_KEROSENE:
return 150;
case FC_KEROSENE_PETROLEUM:
return 150;
case CC_I:
return 200;
case CC_HEATING:
return 250;
case CC_HEAVY:
return 200;
case CC_NAPHTHA:
return 300;
default:
return 100;
}
@ -91,6 +126,7 @@ public class ItemChemistryTemplate extends Item {
list.add("Inputs:");
if(stacks != null)
for(int i = 0; i < stacks.size(); i++)
list.add(stacks.get(i).stackSize + "x " + stacks.get(i).getDisplayName());

View File

@ -284,7 +284,8 @@ public class Library {
world.getBlock(x, y, z) == ModBlocks.dummy_port_flare ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_drill ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_assembler ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_chemplant)
world.getBlock(x, y, z) == ModBlocks.dummy_port_chemplant ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_refinery)
{
return true;
}
@ -325,7 +326,8 @@ public class Library {
world.getBlock(x, y, z) == ModBlocks.dummy_port_well ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_flare ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_chemplant ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_fluidtank)
world.getBlock(x, y, z) == ModBlocks.dummy_port_fluidtank ||
world.getBlock(x, y, z) == ModBlocks.dummy_port_refinery)
{
return true;
}
@ -856,6 +858,11 @@ public class Library {
{
tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ);
}
//Refinery
if(block == ModBlocks.dummy_port_refinery)
{
tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ);
}
if(tileentity instanceof IConductor)
{
@ -1168,10 +1175,16 @@ public class Library {
{
tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ);
}
//Fluid Tank
if(block == ModBlocks.dummy_port_fluidtank)
{
tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ);
}
//Refinery
if(block == ModBlocks.dummy_port_refinery)
{
tileentity = worldObj.getTileEntity(((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetX, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetY, ((TileEntityDummy)worldObj.getTileEntity(x, y, z)).targetZ);
}
if(tileentity == that)
tileentity = null;

View File

@ -35,6 +35,7 @@ import com.hbm.entity.grenade.EntityGrenadeStrong;
import com.hbm.entity.grenade.EntityGrenadeTau;
import com.hbm.entity.grenade.EntityGrenadeZOMG;
import com.hbm.entity.item.EntityMinecartTest;
import com.hbm.entity.missile.EntityBombletSelena;
import com.hbm.entity.missile.EntityBombletTheta;
import com.hbm.entity.missile.EntityMIRV;
import com.hbm.entity.missile.EntityMissileAntiBallistic;
@ -100,6 +101,7 @@ import com.hbm.render.entity.RenderBeam3;
import com.hbm.render.entity.RenderBeam4;
import com.hbm.render.entity.RenderBigNuke;
import com.hbm.render.entity.RenderBlackHole;
import com.hbm.render.entity.RenderBombletSelena;
import com.hbm.render.entity.RenderBombletTheta;
import com.hbm.render.entity.RenderChopperMine;
import com.hbm.render.entity.RenderCloudFleija;
@ -198,6 +200,7 @@ import com.hbm.render.tileentity.RenderPoleTop;
import com.hbm.render.tileentity.RenderPuF6Tank;
import com.hbm.render.tileentity.RenderPylon;
import com.hbm.render.tileentity.RenderRedBarrel;
import com.hbm.render.tileentity.RenderRefinery;
import com.hbm.render.tileentity.RenderRotationTester;
import com.hbm.render.tileentity.RenderSteelPoles;
import com.hbm.render.tileentity.RenderStructureMaker;
@ -234,6 +237,7 @@ import com.hbm.tileentity.TileEntityMachineCyclotron;
import com.hbm.tileentity.TileEntityMachineFluidTank;
import com.hbm.tileentity.TileEntityMachineGasFlare;
import com.hbm.tileentity.TileEntityMachinePuF6Tank;
import com.hbm.tileentity.TileEntityMachineRefinery;
import com.hbm.tileentity.TileEntityMachineUF6Tank;
import com.hbm.tileentity.TileEntityNukeBoy;
import com.hbm.tileentity.TileEntityNukeCustom;
@ -294,6 +298,7 @@ public class ClientProxy extends ServerProxy
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineAssembler.class, new RenderAssembler());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemplant.class, new RenderChemplant());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank());
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineRefinery.class, new RenderRefinery());
//RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderRocket());
RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core));
@ -446,6 +451,7 @@ public class ClientProxy extends ServerProxy
RenderingRegistry.registerEntityRenderingHandler(EntityMIRV.class, new RenderMirv());
RenderingRegistry.registerEntityRenderingHandler(EntityMissileDoomsday.class, new RenderMissileDoomsday());
RenderingRegistry.registerEntityRenderingHandler(EntityBombletTheta.class, new RenderBombletTheta());
RenderingRegistry.registerEntityRenderingHandler(EntityBombletSelena.class, new RenderBombletSelena());
RenderingRegistry.registerEntityRenderingHandler(EntityMissileEndo.class, new RenderMissileThermo());
RenderingRegistry.registerEntityRenderingHandler(EntityMissileExo.class, new RenderMissileThermo());

View File

@ -63,6 +63,7 @@ import com.hbm.entity.item.EntityMinecartTest;
import com.hbm.entity.logic.EntityNukeExplosion;
import com.hbm.entity.logic.EntityNukeExplosionAdvanced;
import com.hbm.entity.logic.EntityNukeExplosionPlus;
import com.hbm.entity.missile.EntityBombletSelena;
import com.hbm.entity.missile.EntityBombletTheta;
import com.hbm.entity.missile.EntityMIRV;
import com.hbm.entity.missile.EntityMissileAntiBallistic;
@ -552,6 +553,7 @@ public class MainRegistry
EntityRegistry.registerModEntity(EntitySparkBeam.class, "entity_spark_beam", 77, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityMissileDoomsday.class, "entity_missile_doomsday", 78, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityBombletTheta.class, "entity_theta", 79, this, 1000, 1, true);
EntityRegistry.registerModEntity(EntityBombletSelena.class, "entity_selena", 80, this, 1000, 1, true);
EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00);
EntityRegistry.registerGlobalEntityID(EntityHunterChopper.class, "entity_mob_hunter_chopper", EntityRegistry.findGlobalUniqueEntityId(), 0x000020, 0x2D2D72);
@ -810,11 +812,18 @@ public class MainRegistry
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_oil), new ItemStack(ModItems.canister_empty), FluidType.OIL, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_smear), new ItemStack(ModItems.canister_empty), FluidType.SMEAR, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_heavyoil), new ItemStack(ModItems.canister_empty), FluidType.HEAVYOIL, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_bitumen), new ItemStack(ModItems.canister_empty), FluidType.BITUMEN, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_heatingoil), new ItemStack(ModItems.canister_empty), FluidType.HEATINGOIL, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_reoil), new ItemStack(ModItems.canister_empty), FluidType.RECLAIMED, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_petroil), new ItemStack(ModItems.canister_empty), FluidType.PETROIL, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_canola), new ItemStack(ModItems.canister_empty), FluidType.LUBRICANT, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_naphtha), new ItemStack(ModItems.canister_empty), FluidType.NAPHTHA, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_fuel), new ItemStack(ModItems.canister_empty), FluidType.DIESEL, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_lightoil), new ItemStack(ModItems.canister_empty), FluidType.LIGHTOIL, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.canister_kerosene), new ItemStack(ModItems.canister_empty), FluidType.KEROSENE, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_full), new ItemStack(ModItems.gas_empty), FluidType.GAS, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.gas_petroleum), new ItemStack(ModItems.gas_empty), FluidType.PETROLEUM, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_deuterium), new ItemStack(ModItems.cell_empty), FluidType.DEUTERIUM, 1000));
FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.cell_tritium), new ItemStack(ModItems.cell_empty), FluidType.TRITIUM, 1000));

View File

@ -1,6 +1,10 @@
package com.hbm.packet;
import com.hbm.sound.SoundLoopAssembler;
import com.hbm.sound.SoundLoopChemplant;
import com.hbm.sound.SoundLoopMiner;
import com.hbm.tileentity.TileEntityMachineAssembler;
import com.hbm.tileentity.TileEntityMachineChemplant;
import com.hbm.tileentity.TileEntityMachineMiningDrill;
import cpw.mods.fml.common.network.simpleimpl.IMessage;
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
@ -63,6 +67,30 @@ public class LoopedSoundPacket implements IMessage {
if(flag && te.getWorldObj().isRemote && ((TileEntityMachineMiningDrill)te).torque > 0.2F)
Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopMiner(new ResourceLocation("hbm:block.minerOperate"), te));
}
if (te != null && te instanceof TileEntityMachineChemplant) {
boolean flag = true;
for(int i = 0; i < SoundLoopChemplant.list.size(); i++) {
if(SoundLoopChemplant.list.get(i).getTE() == te && !SoundLoopChemplant.list.get(i).isDonePlaying())
flag = false;
}
if(flag && te.getWorldObj().isRemote && ((TileEntityMachineChemplant)te).isProgressing)
Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopChemplant(new ResourceLocation("hbm:block.chemplantOperate"), te));
}
if (te != null && te instanceof TileEntityMachineAssembler) {
boolean flag = true;
for(int i = 0; i < SoundLoopAssembler.list.size(); i++) {
if(SoundLoopAssembler.list.get(i).getTE() == te && !SoundLoopAssembler.list.get(i).isDonePlaying())
flag = false;
}
if(flag && te.getWorldObj().isRemote && ((TileEntityMachineAssembler)te).isProgressing)
Minecraft.getMinecraft().getSoundHandler().playSound(new SoundLoopAssembler(new ResourceLocation("hbm:block.assemblerOperate"), te));
}
return null;
}
}

View File

@ -37,6 +37,8 @@ public class PacketDispatcher {
wrapper.registerMessage(TEFluidPacket.Handler.class, TEFluidPacket.class, i++, Side.CLIENT);
//Sound packet that keeps client and server separated
wrapper.registerMessage(LoopedSoundPacket.Handler.class, LoopedSoundPacket.class, i++, Side.CLIENT);
//Chemplant piston rotation for rendering
wrapper.registerMessage(TEChemplantPacket.Handler.class, TEChemplantPacket.class, i++, Side.CLIENT);
}
}

View File

@ -14,18 +14,20 @@ public class TEAssemblerPacket implements IMessage {
int y;
int z;
float spin;
boolean progress;
public TEAssemblerPacket()
{
}
public TEAssemblerPacket(int x, int y, int z, float spin)
public TEAssemblerPacket(int x, int y, int z, float spin, boolean bool)
{
this.x = x;
this.y = y;
this.z = z;
this.spin = spin;
this.progress = bool;
}
@Override
@ -34,6 +36,7 @@ public class TEAssemblerPacket implements IMessage {
y = buf.readInt();
z = buf.readInt();
spin = buf.readFloat();
progress = buf.readBoolean();
}
@Override
@ -42,6 +45,7 @@ public class TEAssemblerPacket implements IMessage {
buf.writeInt(y);
buf.writeInt(z);
buf.writeFloat(spin);
buf.writeBoolean(progress);
}
public static class Handler implements IMessageHandler<TEAssemblerPacket, IMessage> {
@ -54,6 +58,7 @@ public class TEAssemblerPacket implements IMessage {
TileEntityMachineAssembler gen = (TileEntityMachineAssembler) te;
gen.rotation = m.spin;
gen.isProgressing = m.progress;
}
return null;
}

View File

@ -0,0 +1,68 @@
package com.hbm.packet;
import com.hbm.tileentity.TileEntityMachineAssembler;
import com.hbm.tileentity.TileEntityMachineChemplant;
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 TEChemplantPacket implements IMessage {
int x;
int y;
int z;
float spin;
boolean isProgressing;
public TEChemplantPacket()
{
}
public TEChemplantPacket(int x, int y, int z, float spin, boolean isProgressing)
{
this.x = x;
this.y = y;
this.z = z;
this.spin = spin;
this.isProgressing = isProgressing;
}
@Override
public void fromBytes(ByteBuf buf) {
x = buf.readInt();
y = buf.readInt();
z = buf.readInt();
spin = buf.readFloat();
isProgressing = buf.readBoolean();
}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(x);
buf.writeInt(y);
buf.writeInt(z);
buf.writeFloat(spin);
buf.writeBoolean(isProgressing);
}
public static class Handler implements IMessageHandler<TEChemplantPacket, IMessage> {
@Override
public IMessage onMessage(TEChemplantPacket m, MessageContext ctx) {
TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z);
if (te != null && te instanceof TileEntityMachineChemplant) {
TileEntityMachineChemplant gen = (TileEntityMachineChemplant) te;
gen.rotation = m.spin;
gen.isProgressing = m.isProgressing;
}
return null;
}
}
}

View File

@ -0,0 +1,42 @@
package com.hbm.render.entity;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.entity.Entity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
public class RenderBombletSelena extends Render {
private static final ResourceLocation objTesterModelRL = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/bombletSelena.obj");
private IModelCustom boyModel;
private ResourceLocation boyTexture;
public RenderBombletSelena() {
boyModel = AdvancedModelLoader.loadModel(objTesterModelRL);
boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
}
@Override
public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
GL11.glPushMatrix();
GL11.glTranslatef((float)p_76986_2_, (float)p_76986_4_, (float)p_76986_6_);
GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
GL11.glScalef(2, 2, 2);
bindTexture(boyTexture);
boyModel.renderAll();
GL11.glPopMatrix();
}
@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
return new ResourceLocation(RefStrings.MODID +":textures/models/TheGadget3_.png");
}
}

View File

@ -18,7 +18,7 @@ public class RenderBombletTheta extends Render {
public RenderBombletTheta() {
boyModel = AdvancedModelLoader.loadModel(objTesterModelRL);
boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/bombletThetaTexture.png");
}
@Override
@ -36,6 +36,6 @@ public class RenderBombletTheta extends Render {
@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
return new ResourceLocation(RefStrings.MODID +":textures/models/TheGadget3_.png");
return new ResourceLocation(RefStrings.MODID +":textures/models/bombletThetaTexture.png");
}
}

View File

@ -18,7 +18,7 @@ public class RenderMissileDoomsday extends Render {
public RenderMissileDoomsday() {
boyModel = AdvancedModelLoader.loadModel(objTesterModelRL);
boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
boyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileDoomsday.png");
}
@Override
@ -30,13 +30,15 @@ public class RenderMissileDoomsday extends Render {
GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F);
GL11.glScalef(2F, 2F, 2F);
GL11.glDisable(GL11.GL_CULL_FACE);
bindTexture(boyTexture);
boyModel.renderAll();
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glPopMatrix();
}
@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
return new ResourceLocation(RefStrings.MODID +":textures/models/TheGadget3_.png");
return new ResourceLocation(RefStrings.MODID +":textures/models/MissileDoomsday.png");
}
}

View File

@ -3,6 +3,8 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.TileEntityMachineChemplant;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
@ -11,20 +13,20 @@ import net.minecraftforge.client.model.IModelCustom;
public class RenderChemplant extends TileEntitySpecialRenderer {
private static final ResourceLocation body = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/chemplant.obj");
//private static final ResourceLocation bolt = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/assembler_wheel.obj");
private static final ResourceLocation body = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/chemplant_main.obj");
private static final ResourceLocation bolt = new ResourceLocation(/*"/assets/" + */RefStrings.MODID, "models/chemplant_piston.obj");
private IModelCustom bodyModel;
private ResourceLocation bodyTexture;
//private IModelCustom boltModel;
//private ResourceLocation boltTexture;
private IModelCustom boltModel;
private ResourceLocation boltTexture;
public RenderChemplant()
{
bodyModel = AdvancedModelLoader.loadModel(body);
bodyTexture = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png");
//boltModel = AdvancedModelLoader.loadModel(bolt);
//boltTexture = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png");
boltModel = AdvancedModelLoader.loadModel(bolt);
boltTexture = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png");
}
@Override
@ -62,32 +64,35 @@ public class RenderChemplant extends TileEntitySpecialRenderer {
public void renderTileEntityAt2(TileEntity tileEntity, double x, double y, double z, float f)
{
/*GL11.glPushMatrix();
GL11.glTranslated(x, y, z);
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);
switch(tileEntity.getBlockMetadata())
{
case 2:
GL11.glTranslated(-1, 0, 0);
GL11.glRotatef(90, 0F, 1F, 0F); break;
GL11.glRotatef(180, 0F, 1F, 0F);
GL11.glTranslated(0.5D, 0.0D, -0.5D); break;
case 4:
GL11.glRotatef(180, 0F, 1F, 0F); break;
GL11.glRotatef(270, 0F, 1F, 0F);
GL11.glTranslated(0.5D, 0.0D, -0.5D); break;
case 3:
GL11.glTranslated(0, 0, -1);
GL11.glRotatef(270, 0F, 1F, 0F); break;
GL11.glRotatef(0, 0F, 1F, 0F);
GL11.glTranslated(0.5D, 0.0D, -0.5D); break;
case 5:
GL11.glTranslated(-1, 0, -1);
GL11.glRotatef(0, 0F, 1F, 0F); break;
GL11.glRotatef(90, 0F, 1F, 0F);
GL11.glTranslated(0.5D, 0.0D, -0.5D); break;
}
float i = ((TileEntityMachineChemplant)tileEntity).rotation;
float t = (float) Math.sin((i / (180 / Math.PI)))/4 + 0.25F;
GL11.glRotatef(((TileEntityMachineAssembler)tileEntity).rotation, 0F, 1F, 0F);
GL11.glTranslatef(0, t, 0);
bindTexture(boltTexture);
boltModel.renderAll();
GL11.glPopMatrix();*/
GL11.glPopMatrix();
}
}

View File

@ -3,6 +3,7 @@ package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import com.hbm.tileentity.TileEntityMachineFluidTank;
import com.hbm.tileentity.TileEntityMachineIGenerator;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
@ -25,8 +26,8 @@ public class RenderFluidTank extends TileEntitySpecialRenderer {
genModel = AdvancedModelLoader.loadModel(body);
rotModel = AdvancedModelLoader.loadModel(rotor);
//gadgetTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
genTexture = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png");
rotTexture = new ResourceLocation(RefStrings.MODID, "textures/models/textureIGenRotor.png");
genTexture = new ResourceLocation(RefStrings.MODID, "textures/models/tank.png");
rotTexture = new ResourceLocation(RefStrings.MODID, "textures/models/tank_none.png");
}
@Override
@ -87,6 +88,10 @@ public class RenderFluidTank extends TileEntitySpecialRenderer {
//GL11.glTranslated(0.5D, 0.0D, 0.0D);
}
String s = "NONE";
if(tileEntity instanceof TileEntityMachineFluidTank)
s = ((TileEntityMachineFluidTank)tileEntity).tank.getTankType().name();
rotTexture = new ResourceLocation(RefStrings.MODID, "textures/models/tank_" + s + ".png");
bindTexture(rotTexture);
rotModel.renderAll();

View File

@ -46,6 +46,7 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer {
private ResourceLocation missileMirvTexture;
private ResourceLocation missileThermoEndoTexture;
private ResourceLocation missileThermoExoTexture;
private ResourceLocation missileDoomTexture;
public RenderLaunchPadTier1()
{
@ -74,6 +75,7 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer {
missileMirvTexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileMirv.png");
missileThermoEndoTexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileThermalEndo.png");
missileThermoExoTexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileThermalExo.png");
missileDoomTexture = new ResourceLocation(RefStrings.MODID, "textures/models/MissileDoomsday.png");
}
@Override
@ -94,9 +96,12 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer {
GL11.glRotatef(0, 0F, 1F, 0F); break;
}
GL11.glScalef(1.5F, 1.0F, 1.5F);
bindTexture(padTexture);
padModel.renderAll();
GL11.glScalef(2/3F, 1.0F, 2/3F);
GL11.glDisable(GL11.GL_CULL_FACE);
int state = 0;
if(tileEntity instanceof TileEntityLaunchPad)
@ -203,10 +208,12 @@ public class RenderLaunchPadTier1 extends TileEntitySpecialRenderer {
if(state == 17)
{
GL11.glScalef(2F, 2F, 2F);
bindTexture(missileStrongTexture);
bindTexture(missileDoomTexture);
missileDoom.renderAll();
}
GL11.glEnable(GL11.GL_CULL_FACE);
GL11.glPopMatrix();
}

View File

@ -0,0 +1,40 @@
package com.hbm.render.tileentity;
import org.lwjgl.opengl.GL11;
import com.hbm.lib.RefStrings;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.client.model.AdvancedModelLoader;
import net.minecraftforge.client.model.IModelCustom;
public class RenderRefinery extends TileEntitySpecialRenderer {
private static final ResourceLocation body = new ResourceLocation(RefStrings.MODID, "models/refinery.obj");
private IModelCustom genModel;
private ResourceLocation genTexture;
public RenderRefinery()
{
genModel = AdvancedModelLoader.loadModel(body);
genTexture = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
}
@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(genTexture);
genModel.renderAll();
GL11.glPopMatrix();
}
}

View File

@ -0,0 +1,40 @@
package com.hbm.sound;
import java.util.ArrayList;
import java.util.List;
import com.hbm.tileentity.TileEntityMachineAssembler;
import com.hbm.tileentity.TileEntityMachineMiningDrill;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
public class SoundLoopAssembler extends SoundLoopMachine {
public static List<SoundLoopAssembler> list = new ArrayList<SoundLoopAssembler>();
public SoundLoopAssembler(ResourceLocation path, TileEntity te) {
super(path, te);
list.add(this);
}
@Override
public void update() {
super.update();
if(te instanceof TileEntityMachineAssembler) {
TileEntityMachineAssembler drill = (TileEntityMachineAssembler)te;
if(this.volume != 3)
volume = 3;
if(!drill.isProgressing)
this.donePlaying = true;
}
}
public TileEntity getTE() {
return te;
}
}

View File

@ -0,0 +1,40 @@
package com.hbm.sound;
import java.util.ArrayList;
import java.util.List;
import com.hbm.tileentity.TileEntityMachineChemplant;
import com.hbm.tileentity.TileEntityMachineMiningDrill;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
public class SoundLoopChemplant extends SoundLoopMachine {
public static List<SoundLoopChemplant> list = new ArrayList<SoundLoopChemplant>();
public SoundLoopChemplant(ResourceLocation path, TileEntity te) {
super(path, te);
list.add(this);
}
@Override
public void update() {
super.update();
if(te instanceof TileEntityMachineChemplant) {
TileEntityMachineChemplant plant = (TileEntityMachineChemplant)te;
if(this.volume != 3)
volume = 3;
if(!plant.isProgressing)
this.donePlaying = true;
}
}
public TileEntity getTE() {
return te;
}
}

View File

@ -9,6 +9,7 @@ import com.hbm.items.ModItems;
import com.hbm.items.special.ItemBattery;
import com.hbm.items.tool.ItemAssemblyTemplate;
import com.hbm.lib.Library;
import com.hbm.packet.LoopedSoundPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.TEAssemblerPacket;
import cpw.mods.fml.relauncher.Side;
@ -34,6 +35,7 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve
public int progress;
public int maxProgress = 100;
public float rotation = 0;
public boolean isProgressing;
int age = 0;
int consumption = 100;
int speed = 100;
@ -252,6 +254,7 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve
if(!worldObj.isRemote) {
isProgressing = false;
power = Library.chargeTEFromItems(slots, 0, power, maxPower);
if(MachineRecipes.getOutputFromTempate(slots[4]) != null && MachineRecipes.getRecipeFromTempate(slots[4]) != null) {
@ -261,7 +264,7 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve
if(slots[5] == null || (slots[5] != null && slots[5].getItem() == MachineRecipes.getOutputFromTempate(slots[4]).copy().getItem()) && slots[5].stackSize + MachineRecipes.getOutputFromTempate(slots[4]).copy().stackSize <= slots[5].getMaxStackSize()) {
progress++;
isProgressing = true;
rotation += 5;
if(rotation >= 360)
@ -342,7 +345,8 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve
break;
}
PacketDispatcher.wrapper.sendToAll(new TEAssemblerPacket(xCoord, yCoord, zCoord, rotation));
PacketDispatcher.wrapper.sendToAll(new TEAssemblerPacket(xCoord, yCoord, zCoord, rotation, isProgressing));
PacketDispatcher.wrapper.sendToAll(new LoopedSoundPacket(xCoord, yCoord, zCoord));
}
}

View File

@ -17,8 +17,10 @@ import com.hbm.items.special.ItemBattery;
import com.hbm.items.tool.ItemAssemblyTemplate;
import com.hbm.items.tool.ItemChemistryTemplate;
import com.hbm.lib.Library;
import com.hbm.packet.LoopedSoundPacket;
import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.TEAssemblerPacket;
import com.hbm.packet.TEChemplantPacket;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@ -44,6 +46,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
public int progress;
public int maxProgress = 100;
public float rotation = 0;
public boolean isProgressing;
int age = 0;
int consumption = 100;
int speed = 100;
@ -284,6 +287,8 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
if(!worldObj.isRemote)
{
isProgressing = false;
age++;
if(age >= 20)
{
@ -292,7 +297,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
if(age == 9 || age == 19) {
fillFluidInit(tanks[2].getTankType());
//fillFluidInit(tanks[3].getTankType());
fillFluidInit(tanks[3].getTankType());
}
setContainers();
@ -319,7 +324,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
if(hasSpaceForItems(MachineRecipes.getChemOutputFromTempate(slots[4])) && hasSpaceForFluids(outputs)) {
progress++;
isProgressing = true;
rotation += 5;
if(rotation >= 360)
@ -400,6 +405,9 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
if(tryFillAssembler(hopper, i))
break;
}
PacketDispatcher.wrapper.sendToAll(new TEChemplantPacket(xCoord, yCoord, zCoord, rotation, isProgressing));
PacketDispatcher.wrapper.sendToAll(new LoopedSoundPacket(xCoord, yCoord, zCoord));
}
}
@ -666,8 +674,8 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
//boolean true: remove items, boolean false: simulation mode
public boolean removeItems(List<ItemStack> stack, ItemStack[] array) {
if(stack == null)
return false;
if(stack == null || stack.isEmpty())
return true;
for(int i = 0; i < stack.size(); i++) {
for(int j = 0; j < stack.get(i).stackSize; j++) {
@ -830,9 +838,9 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve
else if(type.name().equals(tanks[1].getTankType().name()))
return tanks[1].getMaxFill();
else if(type.name().equals(tanks[2].getTankType().name()))
return tanks[1].getMaxFill();
return tanks[2].getMaxFill();
else if(type.name().equals(tanks[3].getTankType().name()))
return tanks[1].getMaxFill();
return tanks[3].getMaxFill();
return 0;
}

View File

@ -1,37 +1,43 @@
package com.hbm.tileentity;
import java.util.ArrayList;
import java.util.List;
import com.hbm.handler.FluidTypeHandler.FluidType;
import com.hbm.interfaces.IConsumer;
import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.interfaces.IFluidContainer;
import com.hbm.interfaces.IFluidSource;
import com.hbm.interfaces.IOilAcceptor;
import com.hbm.inventory.FluidTank;
import com.hbm.items.ModItems;
import com.hbm.items.special.ItemBattery;
import com.hbm.lib.Library;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
public class TileEntityMachineRefinery extends TileEntity implements ISidedInventory, IConsumer, IOilAcceptor {
public class TileEntityMachineRefinery extends TileEntity implements ISidedInventory, IConsumer, IFluidContainer, IFluidAcceptor, IFluidSource {
private ItemStack slots[];
public int power = 0;
public int oil = 0;
public int fuel = 0;
public int lubricant = 0;
public int diesel = 0;
public int kerosene = 0;
public int sulfur = 0;
public static final int maxSulfur = 1000;
public static final int maxPower = 100000;
public static final int maxOil = 640;
public static final int maxFuel = 64 * 100;
public static final int maxLubricant = 64 * 100;
public static final int maxDiesel = 64 * 100;
public static final int maxKerosene = 64 * 100;
public static final int maxSulfur = 100;
public int age = 0;
public FluidTank[] tanks;
public List<IFluidAcceptor> list1 = new ArrayList();
public List<IFluidAcceptor> list2 = new ArrayList();
public List<IFluidAcceptor> list3 = new ArrayList();
public List<IFluidAcceptor> list4 = new ArrayList();
private static final int[] slots_top = new int[] { 1 };
private static final int[] slots_bottom = new int[] { 0, 2, 4, 6, 8, 10, 11};
@ -41,6 +47,17 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
public TileEntityMachineRefinery() {
slots = new ItemStack[12];
tanks = new FluidTank[5];
tanks[0] = new FluidTank(FluidType.OIL, 64000, 0);
tanks[1] = new FluidTank(FluidType.HEAVYOIL, 16000, 0);
tanks[2] = new FluidTank(FluidType.NAPHTHA, 16000, 0);
tanks[3] = new FluidTank(FluidType.LIGHTOIL, 16000, 0);
tanks[4] = new FluidTank(FluidType.PETROLEUM, 16000, 0);
tanks[0].index = 0;
tanks[1].index = 1;
tanks[2].index = 2;
tanks[3].index = 3;
tanks[4].index = 4;
}
@Override
@ -99,7 +116,7 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
{
return false;
}else{
return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=64;
return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128;
}
}
@ -157,11 +174,11 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
NBTTagList list = nbt.getTagList("items", 10);
power = nbt.getInteger("power");
oil = nbt.getInteger("oil");
fuel = nbt.getInteger("fuel");
lubricant = nbt.getInteger("lubricant");
diesel = nbt.getInteger("diesel");
kerosene = nbt.getInteger("kerosene");
tanks[0].readFromNBT(nbt, "input");
tanks[1].readFromNBT(nbt, "heavy");
tanks[2].readFromNBT(nbt, "naphtha");
tanks[3].readFromNBT(nbt, "light");
tanks[4].readFromNBT(nbt, "petroleum");
sulfur = nbt.getInteger("sulfur");
slots = new ItemStack[getSizeInventory()];
@ -180,11 +197,11 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
public void writeToNBT(NBTTagCompound nbt) {
super.writeToNBT(nbt);
nbt.setInteger("power", power);
nbt.setInteger("oil", oil);
nbt.setInteger("fuel", fuel);
nbt.setInteger("lubricant", lubricant);
nbt.setInteger("diesel", diesel);
nbt.setInteger("kerosene", kerosene);
tanks[0].writeToNBT(nbt, "input");
tanks[1].writeToNBT(nbt, "heavy");
tanks[2].writeToNBT(nbt, "naphtha");
tanks[3].writeToNBT(nbt, "light");
tanks[4].writeToNBT(nbt, "petroleum");
nbt.setInteger("sulfur", sulfur);
NBTTagList list = new NBTTagList();
@ -236,108 +253,52 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
@Override
public void updateEntity() {
int timer = 20;
age++;
if(age >= timer)
age -= timer;
if (!worldObj.isRemote) {
power = Library.chargeTEFromItems(slots, 0, power, maxPower);
if(slots[1] != null && slots[1].getItem() == ModItems.canister_oil && oil + 5 <= maxOil) {
if(slots[2] == null) {
oil += 5;
slots[1].stackSize--;
if(slots[1].stackSize <= 0)
slots[1] = null;
slots[2] = new ItemStack(ModItems.canister_empty);
}else if(slots[2] != null && slots[2].getItem() == ModItems.canister_empty && slots[2].stackSize < slots[2].getMaxStackSize()) {
oil += 5;
slots[1].stackSize--;
if(slots[1].stackSize <= 0)
slots[1] = null;
slots[2].stackSize++;
}
age++;
if(age >= 20)
{
age = 0;
}
if(age == 0)
if(power >= 100 && oil - 5 >= 0 && fuel + 45 <= maxFuel &&
lubricant + 30 <= maxLubricant &&
diesel + 20 <= maxDiesel &&
kerosene + 5 <= maxKerosene) {
if(age == 9 || age == 19) {
fillFluidInit(tanks[1].getTankType());
fillFluidInit(tanks[2].getTankType());
fillFluidInit(tanks[3].getTankType());
fillFluidInit(tanks[4].getTankType());
}
oil -= 5;
fuel += 45;
lubricant += 30;
diesel += 20;
kerosene += 5;
tanks[0].loadTank(1, 2, slots);
int ho = 50;
int nt = 25;
int lo = 15;
int pe = 10;
if(power >= 50 && tanks[0].getFill() >= 100 &&
tanks[1].getFill() + ho <= tanks[1].getMaxFill() &&
tanks[2].getFill() + nt <= tanks[2].getMaxFill() &&
tanks[3].getFill() + lo <= tanks[3].getMaxFill() &&
tanks[4].getFill() + pe <= tanks[4].getMaxFill()) {
tanks[0].setFill(tanks[0].getFill() - 100);
tanks[1].setFill(tanks[1].getFill() + ho);
tanks[2].setFill(tanks[2].getFill() + nt);
tanks[3].setFill(tanks[3].getFill() + lo);
tanks[4].setFill(tanks[4].getFill() + pe);
sulfur += 1;
power -= 100;
}
if(slots[3] != null && slots[3].getItem() == ModItems.canister_empty && fuel - 100 >= 0) {
if(slots[4] == null) {
slots[4] = new ItemStack(ModItems.canister_smear);
fuel -= 100;
slots[3].stackSize--;
if(slots[3].stackSize <= 0)
slots[3] = null;
} else if(slots[4] != null && slots[4].getItem() == ModItems.canister_smear && slots[4].stackSize < slots[4].getMaxStackSize()) {
slots[4].stackSize++;
fuel -= 100;
slots[3].stackSize--;
if(slots[3].stackSize <= 0)
slots[3] = null;
}
}
tanks[1].unloadTank(3, 4, slots);
tanks[2].unloadTank(5, 6, slots);
tanks[3].unloadTank(7, 8, slots);
tanks[4].unloadTank(9, 10, slots);
if(slots[5] != null && slots[5].getItem() == ModItems.canister_empty && lubricant - 100 >= 0) {
if(slots[6] == null) {
slots[6] = new ItemStack(ModItems.canister_canola);
lubricant -= 100;
slots[5].stackSize--;
if(slots[5].stackSize <= 0)
slots[5] = null;
} else if(slots[6] != null && slots[6].getItem() == ModItems.canister_canola && slots[6].stackSize < slots[6].getMaxStackSize()) {
slots[6].stackSize++;
lubricant -= 100;
slots[5].stackSize--;
if(slots[5].stackSize <= 0)
slots[5] = null;
}
}
if(slots[7] != null && slots[7].getItem() == ModItems.canister_empty && diesel - 100 >= 0) {
if(slots[8] == null) {
slots[8] = new ItemStack(ModItems.canister_fuel);
diesel -= 100;
slots[7].stackSize--;
if(slots[7].stackSize <= 0)
slots[7] = null;
} else if(slots[8] != null && slots[8].getItem() == ModItems.canister_fuel && slots[8].stackSize < slots[8].getMaxStackSize()) {
slots[8].stackSize++;
diesel -= 100;
slots[7].stackSize--;
if(slots[7].stackSize <= 0)
slots[7] = null;
}
}
if(slots[9] != null && slots[9].getItem() == ModItems.canister_empty && kerosene - 100 >= 0) {
if(slots[10] == null) {
slots[10] = new ItemStack(ModItems.canister_kerosene);
kerosene -= 100;
slots[9].stackSize--;
if(slots[9].stackSize <= 0)
slots[9] = null;
} else if(slots[10] != null && slots[10].getItem() == ModItems.canister_kerosene && slots[10].stackSize < slots[10].getMaxStackSize()) {
slots[10].stackSize++;
kerosene -= 100;
slots[9].stackSize--;
if(slots[9].stackSize <= 0)
slots[9] = null;
}
for(int i = 0; i < 5; i++) {
tanks[i].updateTank(xCoord, yCoord, zCoord);
}
if(sulfur >= maxSulfur) {
@ -347,7 +308,6 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
} else if(slots[11] != null && slots[11].getItem() == ModItems.sulfur && slots[11].stackSize < slots[11].getMaxStackSize()) {
slots[11].stackSize++;
sulfur -= maxSulfur;
}
}
}
@ -357,26 +317,6 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
return (power * i) / maxPower;
}
public int getOilScaled(int i) {
return (oil * i) / maxOil;
}
public int getSmearScaled(int i) {
return (fuel * i) / maxFuel;
}
public int getLubricantScaled(int i) {
return (lubricant * i) / maxLubricant;
}
public int getDieselScaled(int i) {
return (diesel * i) / maxDiesel;
}
public int getKeroseneScaled(int i) {
return (kerosene * i) / maxKerosene;
}
@Override
public void setPower(int i) {
power = i;
@ -395,17 +335,154 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven
}
@Override
public void setFill(int i) {
this.oil = i;
public void fillFluidInit(FluidType type) {
fillFluid(this.xCoord + 1, this.yCoord, this.zCoord - 2, getTact(), type);
fillFluid(this.xCoord + 1, this.yCoord, this.zCoord + 2, getTact(), type);
fillFluid(this.xCoord - 1, this.yCoord, this.zCoord - 2, getTact(), type);
fillFluid(this.xCoord - 1, this.yCoord, this.zCoord + 2, getTact(), type);
fillFluid(this.xCoord - 2, this.yCoord, this.zCoord + 1, getTact(), type);
fillFluid(this.xCoord + 2, this.yCoord, this.zCoord + 1, getTact(), type);
fillFluid(this.xCoord - 2, this.yCoord, this.zCoord - 1, getTact(), type);
fillFluid(this.xCoord + 2, this.yCoord, this.zCoord - 1, getTact(), type);
}
@Override
public int getFill() {
return this.oil;
public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) {
Library.transmitFluid(x, y, z, newTact, this, worldObj, type);
}
@Override
public int getMaxFill() {
return TileEntityMachineRefinery.maxOil;
public boolean getTact() {
if (age >= 0 && age < 10) {
return true;
}
return false;
}
@Override
public int getSFluidFill(FluidType type) {
if(type.name().equals(tanks[0].getTankType().name()))
return tanks[0].getFill();
else if(type.name().equals(tanks[1].getTankType().name()))
return tanks[1].getFill();
else if(type.name().equals(tanks[2].getTankType().name()))
return tanks[2].getFill();
else if(type.name().equals(tanks[3].getTankType().name()))
return tanks[3].getFill();
else if(type.name().equals(tanks[4].getTankType().name()))
return tanks[4].getFill();
return 0;
}
@Override
public void setSFluidFill(int i, FluidType type) {
if(type.name().equals(tanks[0].getTankType().name()))
tanks[0].setFill(i);
else if(type.name().equals(tanks[1].getTankType().name()))
tanks[1].setFill(i);
else if(type.name().equals(tanks[2].getTankType().name()))
tanks[2].setFill(i);
else if(type.name().equals(tanks[3].getTankType().name()))
tanks[3].setFill(i);
else if(type.name().equals(tanks[4].getTankType().name()))
tanks[4].setFill(i);
}
@Override
public List<IFluidAcceptor> getFluidList(FluidType type) {
if(type.name().equals(tanks[1].getTankType().name()))
return list1;
if(type.name().equals(tanks[2].getTankType().name()))
return list2;
if(type.name().equals(tanks[3].getTankType().name()))
return list3;
if(type.name().equals(tanks[4].getTankType().name()))
return list4;
return new ArrayList<IFluidAcceptor>();
}
@Override
public void clearFluidList(FluidType type) {
if(type.name().equals(tanks[1].getTankType().name()))
list1.clear();
if(type.name().equals(tanks[2].getTankType().name()))
list2.clear();
if(type.name().equals(tanks[3].getTankType().name()))
list3.clear();
if(type.name().equals(tanks[4].getTankType().name()))
list4.clear();
}
@Override
public void setAFluidFill(int i, FluidType type) {
if(type.name().equals(tanks[0].getTankType().name()))
tanks[0].setFill(i);
else if(type.name().equals(tanks[1].getTankType().name()))
tanks[1].setFill(i);
else if(type.name().equals(tanks[2].getTankType().name()))
tanks[2].setFill(i);
else if(type.name().equals(tanks[3].getTankType().name()))
tanks[3].setFill(i);
else if(type.name().equals(tanks[4].getTankType().name()))
tanks[4].setFill(i);
}
@Override
public int getAFluidFill(FluidType type) {
if(type.name().equals(tanks[0].getTankType().name()))
return tanks[0].getFill();
else if(type.name().equals(tanks[1].getTankType().name()))
return tanks[1].getFill();
else if(type.name().equals(tanks[2].getTankType().name()))
return tanks[2].getFill();
else if(type.name().equals(tanks[3].getTankType().name()))
return tanks[3].getFill();
else if(type.name().equals(tanks[4].getTankType().name()))
return tanks[4].getFill();
return 0;
}
@Override
public int getMaxAFluidFill(FluidType type) {
if(type.name().equals(tanks[0].getTankType().name()))
return tanks[0].getMaxFill();
else if(type.name().equals(tanks[1].getTankType().name()))
return tanks[1].getMaxFill();
else if(type.name().equals(tanks[2].getTankType().name()))
return tanks[2].getMaxFill();
else if(type.name().equals(tanks[3].getTankType().name()))
return tanks[3].getMaxFill();
else if(type.name().equals(tanks[4].getTankType().name()))
return tanks[4].getMaxFill();
return 0;
}
@Override
public void setFillstate(int fill, int index) {
if(index < 5 && tanks[index] != null)
tanks[index].setFill(fill);
}
@Override
public void setType(FluidType type, int index) {
if(index < 5 && tanks[index] != null)
tanks[index].setTankType(type);
}
@Override
public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
}
@Override
@SideOnly(Side.CLIENT)
public double getMaxRenderDistanceSquared()
{
return 65536.0D;
}
}