n45, sliding blast door
@ -663,6 +663,8 @@ tile.deco_steel.name=Stahl-Dekoblock
|
||||
tile.deco_lead.name=Blei-Dekoblock
|
||||
tile.deco_beryllium.name=Beryllium-Dekoblock
|
||||
|
||||
tile.hazmat.name=Strahlenschutzstoff-Block
|
||||
|
||||
tile.reinforced_brick.name=Verstärkter Stein
|
||||
tile.reinforced_glass.name=Verstärktes Glas
|
||||
tile.reinforced_sand.name=Verstärkter Sandstein
|
||||
@ -685,6 +687,7 @@ tile.seal_controller.name=Silolukenöffner
|
||||
tile.seal_hatch.name=Siloluke (Deckel)
|
||||
|
||||
tile.vault_door.name=Vault-Tec Sprengtür
|
||||
tile.blast_door.name=Abschluss-Sprengtür
|
||||
|
||||
item.nugget_uranium.name=Urannugget
|
||||
item.nugget_plutonium.name=Plutoniumnugget
|
||||
|
||||
@ -663,6 +663,8 @@ tile.deco_steel.name=Steel Deco Block
|
||||
tile.deco_lead.name=Lead Deco Block
|
||||
tile.deco_beryllium.name=Beryllium Deco Block
|
||||
|
||||
tile.hazmat.name=Hazmat Cloth Block
|
||||
|
||||
tile.reinforced_brick.name=Reinforced Stone
|
||||
tile.reinforced_glass.name=Reinforced Glass
|
||||
tile.reinforced_sand.name=Reinforced Sandstone
|
||||
@ -685,6 +687,7 @@ tile.seal_controller.name=Silo Hatch Opener
|
||||
tile.seal_hatch.name=Silo Hatch
|
||||
|
||||
tile.vault_door.name=Vault-Tec Blast Door
|
||||
tile.blast_door.name=Sliding Blast Door
|
||||
|
||||
item.nugget_uranium.name=Uranium Nugget
|
||||
item.nugget_plutonium.name=Plutonium Nugget
|
||||
|
||||
140
assets/hbm/models/blast_door_base.obj
Normal file
@ -0,0 +1,140 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'blast_door_base.blend'
|
||||
# www.blender.org
|
||||
o Cube_Cube.001
|
||||
v -0.500000 0.000000 0.500000
|
||||
v -0.500000 1.000000 0.500000
|
||||
v -0.500000 0.000000 -0.500000
|
||||
v -0.500000 1.000000 -0.500000
|
||||
v 0.500000 0.000000 0.500000
|
||||
v 0.500000 1.000000 0.500000
|
||||
v 0.500000 0.000000 -0.500000
|
||||
v 0.500000 1.000000 -0.500000
|
||||
v -0.150000 1.000000 0.250000
|
||||
v -0.150000 1.000000 -0.250000
|
||||
v 0.150000 1.000000 0.250000
|
||||
v 0.150000 1.000000 -0.250000
|
||||
v -0.100000 0.750000 0.150000
|
||||
v -0.100000 0.750000 -0.150000
|
||||
v 0.100000 0.750000 -0.150000
|
||||
v 0.100000 0.750000 0.150000
|
||||
v -0.375000 0.875000 -0.750000
|
||||
v 0.375000 0.875000 -0.750000
|
||||
v 0.375000 0.125000 -0.750000
|
||||
v -0.375000 0.125000 -0.750000
|
||||
v 0.375000 0.875000 0.750000
|
||||
v -0.375000 0.875000 0.750000
|
||||
v -0.375000 0.125000 0.750000
|
||||
v 0.375000 0.125000 0.750000
|
||||
vt 0.500000 0.020384
|
||||
vt 0.739808 0.020384
|
||||
vt 0.739808 0.260192
|
||||
vt 0.260192 0.260192
|
||||
vt 0.020384 0.260192
|
||||
vt 0.020384 0.020384
|
||||
vt 0.979616 0.020384
|
||||
vt 0.979616 0.260192
|
||||
vt 0.156897 0.716781
|
||||
vt 0.156897 0.764742
|
||||
vt 0.084954 0.764742
|
||||
vt 0.260192 0.020384
|
||||
vt 0.344125 0.080336
|
||||
vt 0.344125 0.200240
|
||||
vt 0.180878 0.655642
|
||||
vt 0.084954 0.716781
|
||||
vt 0.060974 0.825882
|
||||
vt 0.020384 0.776733
|
||||
vt 0.221467 0.704791
|
||||
vt 0.416067 0.200240
|
||||
vt 0.500000 0.260192
|
||||
vt 0.416067 0.080336
|
||||
vt 0.267269 0.367989
|
||||
vt 0.267268 0.547845
|
||||
vt 0.087413 0.547845
|
||||
vt 0.087413 0.367989
|
||||
vt 0.057437 0.300961
|
||||
vt 0.334297 0.338013
|
||||
vt 0.297244 0.614873
|
||||
vt 0.020384 0.577821
|
||||
vt 0.442094 0.547845
|
||||
vt 0.442094 0.367989
|
||||
vt 0.621950 0.367989
|
||||
vt 0.621950 0.547845
|
||||
vt 0.651926 0.614873
|
||||
vt 0.375065 0.577821
|
||||
vt 0.412118 0.300961
|
||||
vt 0.688978 0.338013
|
||||
vt 0.060974 0.655642
|
||||
vt 0.180878 0.825882
|
||||
vt 0.020384 0.704791
|
||||
vt 0.221467 0.776733
|
||||
vt 0.297244 0.300961
|
||||
vt 0.334297 0.577821
|
||||
vt 0.057437 0.614873
|
||||
vt 0.020384 0.338013
|
||||
vt 0.412118 0.614873
|
||||
vt 0.375065 0.338013
|
||||
vt 0.651926 0.300961
|
||||
vt 0.688978 0.577821
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn -0.980600 0.196100 0.000000
|
||||
vn 0.980600 0.196100 0.000000
|
||||
vn 0.000000 0.371400 -0.928500
|
||||
vn 0.000000 0.371400 0.928500
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 0.894400 -0.447200
|
||||
vn 0.894400 0.000000 -0.447200
|
||||
vn 0.000000 -0.894400 -0.447200
|
||||
vn -0.894400 0.000000 -0.447200
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 0.894400 0.447200
|
||||
vn -0.894400 0.000000 0.447200
|
||||
vn 0.000000 -0.894400 0.447200
|
||||
vn 0.894400 0.000000 0.447200
|
||||
s off
|
||||
f 4/1/1 3/2/1 1/3/1
|
||||
f 6/4/2 5/5/2 7/6/2
|
||||
f 3/2/3 7/7/3 5/8/3
|
||||
f 15/9/4 14/10/4 13/11/4
|
||||
f 8/12/4 12/13/4 11/14/4
|
||||
f 12/15/5 15/9/5 16/16/5
|
||||
f 9/17/6 13/11/6 14/10/6
|
||||
f 16/16/7 13/11/7 9/18/7
|
||||
f 14/10/8 15/9/8 12/19/8
|
||||
f 6/4/4 11/14/4 9/20/4
|
||||
f 2/21/4 9/20/4 10/22/4
|
||||
f 4/1/4 10/22/4 12/13/4
|
||||
f 18/23/9 19/24/9 20/25/9
|
||||
f 18/23/10 17/26/10 4/27/10
|
||||
f 19/24/11 18/23/11 8/28/11
|
||||
f 20/25/12 19/24/12 7/29/12
|
||||
f 17/26/13 20/25/13 3/30/13
|
||||
f 22/31/14 23/32/14 24/33/14
|
||||
f 22/31/15 21/34/15 6/35/15
|
||||
f 23/32/16 22/31/16 2/36/16
|
||||
f 24/33/17 23/32/17 1/37/17
|
||||
f 21/34/18 24/33/18 5/38/18
|
||||
f 2/21/1 4/1/1 1/3/1
|
||||
f 8/12/2 6/4/2 7/6/2
|
||||
f 1/3/3 3/2/3 5/8/3
|
||||
f 16/16/4 15/9/4 13/11/4
|
||||
f 6/4/4 8/12/4 11/14/4
|
||||
f 11/39/5 12/15/5 16/16/5
|
||||
f 10/40/6 9/17/6 14/10/6
|
||||
f 11/41/7 16/16/7 9/18/7
|
||||
f 10/42/8 14/10/8 12/19/8
|
||||
f 2/21/4 6/4/4 9/20/4
|
||||
f 4/1/4 2/21/4 10/22/4
|
||||
f 8/12/4 4/1/4 12/13/4
|
||||
f 17/26/9 18/23/9 20/25/9
|
||||
f 8/43/10 18/23/10 4/27/10
|
||||
f 7/44/11 19/24/11 8/28/11
|
||||
f 3/45/12 20/25/12 7/29/12
|
||||
f 4/46/13 17/26/13 3/30/13
|
||||
f 21/34/14 22/31/14 24/33/14
|
||||
f 2/47/15 22/31/15 6/35/15
|
||||
f 1/48/16 23/32/16 2/36/16
|
||||
f 5/49/17 24/33/17 1/37/17
|
||||
f 6/50/18 21/34/18 5/38/18
|
||||
114
assets/hbm/models/blast_door_block.obj
Normal file
@ -0,0 +1,114 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'blast_door_block.blend'
|
||||
# www.blender.org
|
||||
o Cube.003_Cube.004
|
||||
v -0.500000 3.000000 0.500000
|
||||
v -0.500000 4.000000 0.500000
|
||||
v -0.500000 3.000000 -0.500000
|
||||
v -0.500000 4.000000 -0.500000
|
||||
v 0.500000 3.000000 0.500000
|
||||
v 0.500000 4.000000 0.500000
|
||||
v 0.500000 3.000000 -0.500000
|
||||
v 0.500000 4.000000 -0.500000
|
||||
v -0.375000 3.875000 -0.750000
|
||||
v 0.375000 3.875000 -0.750000
|
||||
v 0.375000 3.125000 -0.750000
|
||||
v -0.375000 3.125000 -0.750000
|
||||
v 0.375000 3.875000 0.750000
|
||||
v -0.375000 3.875000 0.750000
|
||||
v -0.375000 3.125000 0.750000
|
||||
v 0.375000 3.125000 0.750000
|
||||
v 0.300000 3.000000 0.500000
|
||||
v 0.300000 3.000000 -0.500000
|
||||
v -0.300000 3.000000 0.500000
|
||||
v -0.300000 3.000000 -0.500000
|
||||
vt 0.261012 0.256902
|
||||
vt 0.022204 0.256902
|
||||
vt 0.022204 0.018094
|
||||
vt 0.499820 0.018094
|
||||
vt 0.738628 0.018094
|
||||
vt 0.738628 0.256902
|
||||
vt 0.250367 0.613434
|
||||
vt 0.090555 0.547258
|
||||
vt 0.268124 0.547258
|
||||
vt 0.499820 0.256902
|
||||
vt 0.261012 0.018094
|
||||
vt 0.268124 0.369689
|
||||
vt 0.090555 0.369689
|
||||
vt 0.060961 0.303513
|
||||
vt 0.334300 0.340094
|
||||
vt 0.971758 0.253591
|
||||
vt 0.924331 0.253591
|
||||
vt 0.924331 0.016455
|
||||
vt 0.024379 0.576852
|
||||
vt 0.438442 0.547258
|
||||
vt 0.438442 0.369689
|
||||
vt 0.616011 0.369689
|
||||
vt 0.616011 0.547258
|
||||
vt 0.645606 0.613434
|
||||
vt 0.372266 0.576852
|
||||
vt 0.786389 0.018094
|
||||
vt 0.786389 0.256902
|
||||
vt 0.682187 0.340094
|
||||
vt 0.456199 0.303513
|
||||
vt 0.598254 0.303513
|
||||
vt 0.297719 0.613434
|
||||
vt 0.108312 0.613434
|
||||
vt 0.060960 0.613434
|
||||
vt 0.297719 0.303513
|
||||
vt 0.334300 0.576852
|
||||
vt 0.971758 0.016455
|
||||
vt 0.024379 0.340094
|
||||
vt 0.408848 0.613434
|
||||
vt 0.372266 0.340094
|
||||
vt 0.682187 0.576852
|
||||
vt 0.645606 0.303513
|
||||
vt 0.408848 0.303513
|
||||
vn -1.000000 0.000000 0.000000
|
||||
vn 1.000000 0.000000 0.000000
|
||||
vn 0.000000 -0.894400 -0.447200
|
||||
vn 0.000000 1.000000 0.000000
|
||||
vn 0.000000 0.000000 -1.000000
|
||||
vn 0.000000 0.894400 -0.447200
|
||||
vn 0.894400 0.000000 -0.447200
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn -0.894400 0.000000 -0.447200
|
||||
vn 0.000000 0.000000 1.000000
|
||||
vn 0.000000 0.894400 0.447200
|
||||
vn -0.894400 0.000000 0.447200
|
||||
vn 0.894400 0.000000 0.447200
|
||||
vn 0.000000 -0.894400 0.447200
|
||||
s off
|
||||
f 4/1/1 3/2/1 1/3/1
|
||||
f 6/4/2 5/5/2 7/6/2
|
||||
f 18/7/3 12/8/3 11/9/3
|
||||
f 8/10/4 4/1/4 2/11/4
|
||||
f 10/12/5 11/9/5 12/8/5
|
||||
f 10/12/6 9/13/6 4/14/6
|
||||
f 11/9/7 10/12/7 8/15/7
|
||||
f 3/16/8 20/17/8 19/18/8
|
||||
f 9/13/9 12/8/9 3/19/9
|
||||
f 14/20/10 15/21/10 16/22/10
|
||||
f 14/20/11 13/23/11 6/24/11
|
||||
f 15/21/12 14/20/12 2/25/12
|
||||
f 5/5/8 17/26/8 18/27/8
|
||||
f 13/23/13 16/22/13 5/28/13
|
||||
f 15/21/14 19/29/14 17/30/14
|
||||
f 2/11/1 4/1/1 1/3/1
|
||||
f 8/10/2 6/4/2 7/6/2
|
||||
f 11/9/3 7/31/3 18/7/3
|
||||
f 18/7/3 20/32/3 12/8/3
|
||||
f 3/33/3 12/8/3 20/32/3
|
||||
f 6/4/4 8/10/4 2/11/4
|
||||
f 9/13/5 10/12/5 12/8/5
|
||||
f 8/34/6 10/12/6 4/14/6
|
||||
f 7/35/7 11/9/7 8/15/7
|
||||
f 1/36/8 3/16/8 19/18/8
|
||||
f 4/37/9 9/13/9 3/19/9
|
||||
f 13/23/10 14/20/10 16/22/10
|
||||
f 2/38/11 14/20/11 6/24/11
|
||||
f 1/39/12 15/21/12 2/25/12
|
||||
f 7/6/8 5/5/8 18/27/8
|
||||
f 6/40/13 13/23/13 5/28/13
|
||||
f 17/30/14 5/41/14 16/22/14
|
||||
f 16/22/14 15/21/14 17/30/14
|
||||
f 1/42/14 19/29/14 15/21/14
|
||||
34
assets/hbm/models/blast_door_slider.obj
Normal file
@ -0,0 +1,34 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'blast_door_slider.blend'
|
||||
# www.blender.org
|
||||
o Cube.002_Cube.003
|
||||
v -0.300000 2.000000 0.500000
|
||||
v 0.300000 2.000000 0.500000
|
||||
v -0.300000 2.000000 -0.500000
|
||||
v 0.300000 2.000000 -0.500000
|
||||
v -0.300000 3.000000 -0.500000
|
||||
v -0.300000 3.000000 0.500000
|
||||
v 0.300000 3.000000 0.500000
|
||||
v 0.300000 3.000000 -0.500000
|
||||
vt 0.984190 0.359560
|
||||
vt 0.984190 0.662179
|
||||
vt 0.681571 0.662179
|
||||
vt 0.500000 0.359560
|
||||
vt 0.500000 0.662179
|
||||
vt 0.197381 0.662179
|
||||
vt 0.197381 0.359560
|
||||
vt 0.015810 0.662179
|
||||
vt 0.681571 0.359560
|
||||
vt 0.015810 0.359560
|
||||
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 4/1/1 8/2/1 7/3/1
|
||||
f 1/4/2 6/5/2 5/6/2
|
||||
f 3/7/3 5/6/3 8/8/3
|
||||
f 2/9/4 7/3/4 6/5/4
|
||||
f 2/9/1 4/1/1 7/3/1
|
||||
f 3/7/2 1/4/2 5/6/2
|
||||
f 4/10/3 3/7/3 8/8/3
|
||||
f 1/4/4 2/9/4 6/5/4
|
||||
85
assets/hbm/models/blast_door_tooth.obj
Normal file
@ -0,0 +1,85 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'blast_door_tooth.blend'
|
||||
# www.blender.org
|
||||
o Cube.001_Cube.002
|
||||
v -0.150000 1.000000 0.250000
|
||||
v -0.150000 1.000000 -0.250000
|
||||
v 0.150000 1.000000 0.250000
|
||||
v 0.150000 1.000000 -0.250000
|
||||
v -0.100000 0.750000 0.150000
|
||||
v -0.100000 0.750000 -0.150000
|
||||
v 0.100000 0.750000 -0.150000
|
||||
v 0.100000 0.750000 0.150000
|
||||
v -0.300000 1.000000 0.500000
|
||||
v 0.300000 1.000000 0.500000
|
||||
v -0.300000 1.000000 -0.500000
|
||||
v 0.300000 1.000000 -0.500000
|
||||
v -0.300000 2.000000 -0.500000
|
||||
v -0.300000 2.000000 0.500000
|
||||
v 0.300000 2.000000 0.500000
|
||||
v 0.300000 2.000000 -0.500000
|
||||
vt 0.434968 0.430653
|
||||
vt 0.525462 0.430653
|
||||
vt 0.525462 0.490982
|
||||
vt 0.404804 0.567886
|
||||
vt 0.434968 0.490982
|
||||
vt 0.555627 0.353748
|
||||
vt 0.353748 0.415570
|
||||
vt 0.606682 0.506064
|
||||
vt 0.017368 0.534735
|
||||
vt 0.017367 0.353748
|
||||
vt 0.092779 0.398995
|
||||
vt 0.319013 0.353748
|
||||
vt 0.243601 0.398995
|
||||
vt 0.319013 0.534735
|
||||
vt 0.243602 0.489488
|
||||
vt 0.092779 0.489488
|
||||
vt 0.982633 0.017367
|
||||
vt 0.982633 0.319013
|
||||
vt 0.680987 0.319013
|
||||
vt 0.500000 0.017367
|
||||
vt 0.500000 0.319013
|
||||
vt 0.198355 0.319013
|
||||
vt 0.198355 0.017368
|
||||
vt 0.017367 0.319013
|
||||
vt 0.680987 0.017367
|
||||
vt 0.555626 0.567886
|
||||
vt 0.404804 0.353748
|
||||
vt 0.353748 0.506064
|
||||
vt 0.606682 0.415570
|
||||
vt 0.017367 0.017368
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn 0.980600 -0.196100 0.000000
|
||||
vn -0.980600 -0.196100 0.000000
|
||||
vn 0.000000 -0.371400 0.928500
|
||||
vn 0.000000 -0.371400 -0.928500
|
||||
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 5/1/1 6/2/1 7/3/1
|
||||
f 3/4/2 8/5/2 7/3/2
|
||||
f 2/6/3 6/2/3 5/1/3
|
||||
f 1/7/4 5/1/4 8/5/4
|
||||
f 4/8/5 7/3/5 6/2/5
|
||||
f 10/9/1 9/10/1 1/11/1
|
||||
f 9/10/1 11/12/1 2/13/1
|
||||
f 11/12/1 12/14/1 4/15/1
|
||||
f 12/14/1 10/9/1 3/16/1
|
||||
f 12/17/6 16/18/6 15/19/6
|
||||
f 9/20/7 14/21/7 13/22/7
|
||||
f 11/23/8 13/22/8 16/24/8
|
||||
f 10/25/9 15/19/9 14/21/9
|
||||
f 8/5/1 5/1/1 7/3/1
|
||||
f 4/26/2 3/4/2 7/3/2
|
||||
f 1/27/3 2/6/3 5/1/3
|
||||
f 3/28/4 1/7/4 8/5/4
|
||||
f 2/29/5 4/8/5 6/2/5
|
||||
f 3/16/1 10/9/1 1/11/1
|
||||
f 1/11/1 9/10/1 2/13/1
|
||||
f 2/13/1 11/12/1 4/15/1
|
||||
f 4/15/1 12/14/1 3/16/1
|
||||
f 10/25/6 12/17/6 15/19/6
|
||||
f 11/23/7 9/20/7 13/22/7
|
||||
f 12/30/8 11/23/8 16/24/8
|
||||
f 9/20/9 10/25/9 14/21/9
|
||||
1133
assets/hbm/models/n45_chain.obj
Normal file
1766
assets/hbm/models/n45_globe.obj
Normal file
75
assets/hbm/models/n45_knob.obj
Normal file
@ -0,0 +1,75 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'n45_knob.blend'
|
||||
# www.blender.org
|
||||
o Cylinder
|
||||
v 0.000000 0.475000 -0.062500
|
||||
v 0.000000 0.525000 -0.062500
|
||||
v 0.044194 0.475000 -0.044194
|
||||
v 0.044194 0.525000 -0.044194
|
||||
v 0.062500 0.475000 0.000000
|
||||
v 0.062500 0.525000 0.000000
|
||||
v 0.044194 0.475000 0.044194
|
||||
v 0.044194 0.525000 0.044194
|
||||
v -0.000000 0.475000 0.062500
|
||||
v -0.000000 0.525000 0.062500
|
||||
v -0.044194 0.475000 0.044194
|
||||
v -0.044194 0.525000 0.044194
|
||||
v -0.062500 0.475000 -0.000000
|
||||
v -0.062500 0.525000 -0.000000
|
||||
v -0.044194 0.475000 -0.044194
|
||||
v -0.044194 0.525000 -0.044194
|
||||
vt 0.610389 0.766502
|
||||
vt 0.766501 0.610389
|
||||
vt 0.929679 0.773566
|
||||
vt 0.766501 0.389611
|
||||
vt 0.997269 0.389611
|
||||
vt 0.610388 0.233498
|
||||
vt 0.773565 0.070321
|
||||
vt 0.389611 0.233499
|
||||
vt 0.389611 0.002731
|
||||
vt 0.233498 0.389612
|
||||
vt 0.070321 0.226435
|
||||
vt 0.233498 0.610389
|
||||
vt 0.002731 0.610389
|
||||
vt 0.389611 0.766502
|
||||
vt 0.610388 0.997269
|
||||
vt 0.226434 0.929679
|
||||
vt 0.773566 0.929679
|
||||
vt 0.997269 0.610388
|
||||
vt 0.929678 0.226434
|
||||
vt 0.610388 0.002731
|
||||
vt 0.226434 0.070322
|
||||
vt 0.002731 0.389612
|
||||
vt 0.389611 0.997269
|
||||
vt 0.070321 0.773566
|
||||
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
|
||||
s off
|
||||
f 2/1/1 4/2/1 3/3/1
|
||||
f 4/2/2 6/4/2 5/5/2
|
||||
f 6/4/3 8/6/3 7/7/3
|
||||
f 8/6/4 10/8/4 9/9/4
|
||||
f 10/8/5 12/10/5 11/11/5
|
||||
f 12/10/6 14/12/6 13/13/6
|
||||
f 14/12/7 10/8/7 2/1/7
|
||||
f 16/14/8 2/1/8 1/15/8
|
||||
f 14/12/9 16/14/9 15/16/9
|
||||
f 1/17/1 2/1/1 3/3/1
|
||||
f 3/18/2 4/2/2 5/5/2
|
||||
f 5/19/3 6/4/3 7/7/3
|
||||
f 7/20/4 8/6/4 9/9/4
|
||||
f 9/21/5 10/8/5 11/11/5
|
||||
f 11/22/6 12/10/6 13/13/6
|
||||
f 6/4/7 4/2/7 2/1/7
|
||||
f 2/1/7 16/14/7 14/12/7
|
||||
f 14/12/7 12/10/7 10/8/7
|
||||
f 10/8/7 8/6/7 6/4/7
|
||||
f 6/4/7 2/1/7 10/8/7
|
||||
f 15/23/8 16/14/8 1/15/8
|
||||
f 13/24/9 14/12/9 15/16/9
|
||||
75
assets/hbm/models/n45_rod.obj
Normal file
@ -0,0 +1,75 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'n45_rod.blend'
|
||||
# www.blender.org
|
||||
o Cylinder.001
|
||||
v 0.000000 0.512500 -0.031000
|
||||
v 0.000000 0.887500 -0.031000
|
||||
v 0.021920 0.512500 -0.021920
|
||||
v 0.021920 0.887500 -0.021920
|
||||
v 0.031000 0.512500 0.000000
|
||||
v 0.031000 0.887500 0.000000
|
||||
v 0.021920 0.512500 0.021920
|
||||
v 0.021920 0.887500 0.021920
|
||||
v -0.000000 0.512500 0.031000
|
||||
v -0.000000 0.887500 0.031000
|
||||
v -0.021920 0.512500 0.021920
|
||||
v -0.021920 0.887500 0.021920
|
||||
v -0.031000 0.512500 0.000000
|
||||
v -0.031000 0.887500 0.000000
|
||||
v -0.021920 0.512500 -0.021920
|
||||
v -0.021920 0.887500 -0.021920
|
||||
vt 0.423308 0.866102
|
||||
vt 0.368629 0.866102
|
||||
vt 0.368629 0.001892
|
||||
vt 0.313950 0.866102
|
||||
vt 0.313950 0.001892
|
||||
vt 0.259271 0.866102
|
||||
vt 0.259272 0.001892
|
||||
vt 0.204592 0.866102
|
||||
vt 0.204593 0.001892
|
||||
vt 0.149913 0.866102
|
||||
vt 0.149914 0.001891
|
||||
vt 0.095234 0.866102
|
||||
vt 0.095236 0.001891
|
||||
vt 0.095234 0.998109
|
||||
vt 0.040555 0.998108
|
||||
vt 0.477987 0.866102
|
||||
vt 0.423308 0.001892
|
||||
vt 0.040555 0.866102
|
||||
vt 0.040557 0.001891
|
||||
vt 0.001891 0.959445
|
||||
vt 0.001891 0.904766
|
||||
vt 0.133898 0.904766
|
||||
vt 0.133898 0.959445
|
||||
vt 0.477986 0.001892
|
||||
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
|
||||
s off
|
||||
f 2/1/1 4/2/1 3/3/1
|
||||
f 4/2/2 6/4/2 5/5/2
|
||||
f 6/4/3 8/6/3 7/7/3
|
||||
f 8/6/4 10/8/4 9/9/4
|
||||
f 10/8/5 12/10/5 11/11/5
|
||||
f 12/10/6 14/12/6 13/13/6
|
||||
f 14/12/7 8/14/7 6/15/7
|
||||
f 16/16/8 2/1/8 1/17/8
|
||||
f 14/12/9 16/18/9 15/19/9
|
||||
f 1/17/1 2/1/1 3/3/1
|
||||
f 3/3/2 4/2/2 5/5/2
|
||||
f 5/5/3 6/4/3 7/7/3
|
||||
f 7/7/4 8/6/4 9/9/4
|
||||
f 9/9/5 10/8/5 11/11/5
|
||||
f 11/11/6 12/10/6 13/13/6
|
||||
f 6/15/7 4/20/7 14/12/7
|
||||
f 2/21/7 16/18/7 14/12/7
|
||||
f 14/12/7 12/22/7 10/23/7
|
||||
f 10/23/7 8/14/7 14/12/7
|
||||
f 4/20/7 2/21/7 14/12/7
|
||||
f 15/24/8 16/16/8 1/17/8
|
||||
f 13/13/9 14/12/9 15/19/9
|
||||
166
assets/hbm/models/n45_stand.obj
Normal file
@ -0,0 +1,166 @@
|
||||
# Blender v2.76 (sub 0) OBJ File: 'n45_stand.blend'
|
||||
# www.blender.org
|
||||
o Icosphere.001
|
||||
v 0.000000 0.100000 -0.125000
|
||||
v 0.000000 0.525000 -0.125000
|
||||
v 0.088388 0.100000 -0.088388
|
||||
v 0.088388 0.525000 -0.088388
|
||||
v 0.125000 0.100000 0.000000
|
||||
v 0.125000 0.525000 0.000000
|
||||
v 0.088388 0.100000 0.088388
|
||||
v 0.088388 0.525000 0.088388
|
||||
v -0.000000 0.100000 0.125000
|
||||
v -0.000000 0.525000 0.125000
|
||||
v -0.088388 0.100000 0.088388
|
||||
v -0.088388 0.525000 0.088388
|
||||
v -0.125000 0.100000 -0.000000
|
||||
v -0.125000 0.525000 -0.000000
|
||||
v -0.088388 0.100000 -0.088388
|
||||
v -0.088388 0.525000 -0.088388
|
||||
v 0.000000 0.100000 -0.250000
|
||||
v 0.176777 0.100000 -0.176777
|
||||
v 0.250000 0.100000 0.000000
|
||||
v 0.176777 0.100000 0.176777
|
||||
v -0.000000 0.100000 0.250000
|
||||
v -0.176777 0.100000 0.176777
|
||||
v -0.250000 0.100000 -0.000000
|
||||
v -0.176777 0.100000 -0.176777
|
||||
v -0.000000 0.000000 -0.375000
|
||||
v 0.265165 0.000000 -0.265165
|
||||
v 0.375000 0.000000 0.000000
|
||||
v 0.265165 0.000000 0.265165
|
||||
v -0.000000 0.000000 0.375000
|
||||
v -0.265165 0.000000 0.265165
|
||||
v -0.375000 0.000000 -0.000000
|
||||
v -0.265165 0.000000 -0.265165
|
||||
vt 0.590034 0.983303
|
||||
vt 0.536822 0.983303
|
||||
vt 0.536822 0.746920
|
||||
vt 0.483611 0.983303
|
||||
vt 0.483611 0.746920
|
||||
vt 0.430399 0.983303
|
||||
vt 0.430399 0.746920
|
||||
vt 0.377187 0.983303
|
||||
vt 0.377187 0.746920
|
||||
vt 0.323976 0.983303
|
||||
vt 0.323976 0.746920
|
||||
vt 0.270764 0.983303
|
||||
vt 0.270764 0.746920
|
||||
vt 0.643246 0.983303
|
||||
vt 0.590034 0.746920
|
||||
vt 0.696457 0.983303
|
||||
vt 0.643246 0.746920
|
||||
vt 0.807223 0.505400
|
||||
vt 0.737698 0.505400
|
||||
vt 0.778425 0.407078
|
||||
vt 0.346117 0.113818
|
||||
vt 0.444439 0.073092
|
||||
vt 0.501535 0.141409
|
||||
vt 0.175484 0.456239
|
||||
vt 0.224645 0.407078
|
||||
vt 0.265371 0.505400
|
||||
vt 0.607792 0.676034
|
||||
vt 0.558631 0.626872
|
||||
vt 0.656953 0.586146
|
||||
vt 0.195847 0.194564
|
||||
vt 0.265371 0.194564
|
||||
vt 0.224645 0.292886
|
||||
vt 0.827586 0.243725
|
||||
vt 0.778425 0.292886
|
||||
vt 0.737698 0.194564
|
||||
vt 0.346117 0.655670
|
||||
vt 0.346117 0.586146
|
||||
vt 0.444439 0.626872
|
||||
vt 0.395278 0.023931
|
||||
vt 0.656953 0.044294
|
||||
vt 0.656953 0.113818
|
||||
vt 0.558631 0.073092
|
||||
vt 0.649018 0.497465
|
||||
vt 0.354051 0.497465
|
||||
vt 0.354052 0.202499
|
||||
vt 0.292962 0.349982
|
||||
vt 0.501535 0.558555
|
||||
vt 0.710108 0.349982
|
||||
vt 0.649018 0.202499
|
||||
vt 0.696457 0.746920
|
||||
vt 0.827586 0.456239
|
||||
vt 0.195847 0.505400
|
||||
vt 0.656953 0.655670
|
||||
vt 0.175484 0.243725
|
||||
vt 0.807223 0.194564
|
||||
vt 0.395278 0.676034
|
||||
vt 0.346117 0.044294
|
||||
vt 0.607792 0.023931
|
||||
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.382700 0.000000 -0.923900
|
||||
vn -0.923900 0.000000 -0.382700
|
||||
vn -0.000000 1.000000 -0.000000
|
||||
vn -0.250500 0.756000 -0.604800
|
||||
vn 0.000000 -1.000000 0.000000
|
||||
vn -0.604800 0.756000 0.250500
|
||||
vn 0.250500 0.756000 0.604800
|
||||
vn 0.604800 0.756000 -0.250500
|
||||
vn -0.604800 0.756000 -0.250500
|
||||
vn -0.250500 0.756000 0.604800
|
||||
vn 0.604800 0.756000 0.250500
|
||||
vn 0.250500 0.756000 -0.604800
|
||||
s off
|
||||
f 2/1/1 4/2/1 3/3/1
|
||||
f 4/2/2 6/4/2 5/5/2
|
||||
f 6/4/3 8/6/3 7/7/3
|
||||
f 8/6/4 10/8/4 9/9/4
|
||||
f 10/8/5 12/10/5 11/11/5
|
||||
f 12/10/6 14/12/6 13/13/6
|
||||
f 16/14/7 2/1/7 1/15/7
|
||||
f 14/16/8 16/14/8 15/17/8
|
||||
f 7/18/9 20/19/9 19/20/9
|
||||
f 24/21/10 17/22/10 25/23/10
|
||||
f 13/24/9 23/25/9 22/26/9
|
||||
f 9/27/9 21/28/9 20/29/9
|
||||
f 15/30/9 24/31/9 23/32/9
|
||||
f 5/33/9 19/34/9 18/35/9
|
||||
f 11/36/9 22/37/9 21/38/9
|
||||
f 1/39/9 17/22/9 24/21/9
|
||||
f 3/40/9 18/41/9 17/42/9
|
||||
f 28/43/11 30/44/11 32/45/11
|
||||
f 23/25/12 31/46/12 30/44/12
|
||||
f 21/28/13 29/47/13 28/43/13
|
||||
f 19/34/14 27/48/14 26/49/14
|
||||
f 24/31/15 32/45/15 31/46/15
|
||||
f 22/37/16 30/44/16 29/47/16
|
||||
f 19/20/17 20/19/17 28/43/17
|
||||
f 17/42/18 18/41/18 26/49/18
|
||||
f 1/15/1 2/1/1 3/3/1
|
||||
f 3/3/2 4/2/2 5/5/2
|
||||
f 5/5/3 6/4/3 7/7/3
|
||||
f 7/7/4 8/6/4 9/9/4
|
||||
f 9/9/5 10/8/5 11/11/5
|
||||
f 11/11/6 12/10/6 13/13/6
|
||||
f 15/17/7 16/14/7 1/15/7
|
||||
f 13/50/8 14/16/8 15/17/8
|
||||
f 5/51/9 7/18/9 19/20/9
|
||||
f 32/45/10 24/21/10 25/23/10
|
||||
f 11/52/9 13/24/9 22/26/9
|
||||
f 7/53/9 9/27/9 20/29/9
|
||||
f 13/54/9 15/30/9 23/32/9
|
||||
f 3/55/9 5/33/9 18/35/9
|
||||
f 9/56/9 11/36/9 21/38/9
|
||||
f 15/57/9 1/39/9 24/21/9
|
||||
f 1/58/9 3/40/9 17/42/9
|
||||
f 32/45/11 25/23/11 26/49/11
|
||||
f 26/49/11 27/48/11 28/43/11
|
||||
f 28/43/11 29/47/11 30/44/11
|
||||
f 30/44/11 31/46/11 32/45/11
|
||||
f 32/45/11 26/49/11 28/43/11
|
||||
f 22/26/12 23/25/12 30/44/12
|
||||
f 20/29/13 21/28/13 28/43/13
|
||||
f 18/35/14 19/34/14 26/49/14
|
||||
f 23/32/15 24/31/15 31/46/15
|
||||
f 21/38/16 22/37/16 29/47/16
|
||||
f 27/48/17 19/20/17 28/43/17
|
||||
f 25/23/18 17/42/18 26/49/18
|
||||
BIN
assets/hbm/textures/blocks/blast_door.png
Normal file
|
After Width: | Height: | Size: 216 B |
BIN
assets/hbm/textures/blocks/hazmat.png
Normal file
|
After Width: | Height: | Size: 437 B |
BIN
assets/hbm/textures/blocks/hazmat_alt.png
Normal file
|
After Width: | Height: | Size: 663 B |
BIN
assets/hbm/textures/models/blast_door_base.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
assets/hbm/textures/models/blast_door_block.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
assets/hbm/textures/models/blast_door_slider.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
assets/hbm/textures/models/blast_door_tooth.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
assets/hbm/textures/models/blast_door_tooth_alt.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
assets/hbm/textures/models/blast_door_tooth_alt_alt.png
Normal file
|
After Width: | Height: | Size: 2.8 KiB |
BIN
assets/hbm/textures/models/n45_globe.png
Normal file
|
After Width: | Height: | Size: 351 KiB |
BIN
assets/hbm/textures/models/n45_knob.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
assets/hbm/textures/models/n45_rod.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
@ -118,6 +118,8 @@ public class ModBlocks {
|
||||
public static Block deco_lead;
|
||||
public static Block deco_beryllium;
|
||||
|
||||
public static Block hazmat;
|
||||
|
||||
public static Block gravel_obsidian;
|
||||
public static Block asphalt;
|
||||
|
||||
@ -205,8 +207,9 @@ public class ModBlocks {
|
||||
public static Block seal_frame;
|
||||
public static Block seal_controller;
|
||||
public static Block seal_hatch;
|
||||
|
||||
|
||||
public static Block vault_door;
|
||||
public static Block blast_door;
|
||||
|
||||
public static Block marker_structure;
|
||||
|
||||
@ -252,6 +255,8 @@ public class ModBlocks {
|
||||
|
||||
public static Block nuke_n2;
|
||||
public static final int guiID_nuke_n2 = 61;
|
||||
|
||||
public static Block nuke_n45;
|
||||
|
||||
public static Block bomb_multi;
|
||||
public static final int guiID_bomb_multi = 10;
|
||||
@ -560,6 +565,7 @@ public class ModBlocks {
|
||||
public static Block dummy_block_reactor_small;
|
||||
public static Block dummy_port_reactor_small;
|
||||
public static Block dummy_block_vault;
|
||||
public static Block dummy_block_blast;
|
||||
|
||||
public static Block ntm_dirt;
|
||||
|
||||
@ -653,8 +659,10 @@ public class ModBlocks {
|
||||
deco_lead = new BlockOre(Material.iron).setBlockName("deco_lead").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_lead");
|
||||
deco_beryllium = new BlockOre(Material.iron).setBlockName("deco_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":deco_beryllium");
|
||||
|
||||
hazmat = new BlockGeneric(Material.cloth).setBlockName("hazmat").setStepSound(Block.soundTypeCloth).setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":hazmat");
|
||||
|
||||
gravel_obsidian = new BlockFalling(Material.iron).setBlockName("gravel_obsidian").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeGravel).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":gravel_obsidian");
|
||||
asphalt = new BlockGeneric(Material.rock).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt");
|
||||
asphalt = new BlockGeneric(Material.rock).setBlockName("asphalt").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(100.0F).setBlockTextureName(RefStrings.MODID + ":asphalt");
|
||||
|
||||
reinforced_brick = new BlockGeneric(Material.rock).setBlockName("reinforced_brick").setCreativeTab(MainRegistry.blockTab).setLightOpacity(15).setHardness(15.0F).setResistance(1000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_brick");
|
||||
reinforced_glass = new ReinforcedBlock(Material.glass).setBlockName("reinforced_glass").setCreativeTab(MainRegistry.blockTab).setLightOpacity(0).setHardness(15.0F).setResistance(3000.0F).setBlockTextureName(RefStrings.MODID + ":reinforced_glass");
|
||||
@ -720,6 +728,7 @@ public class ModBlocks {
|
||||
nuke_custom = new NukeCustom(Material.iron).setBlockName("nuke_custom").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":custom");
|
||||
nuke_solinium = new NukeSolinium(Material.iron).setBlockName("nuke_solinium").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_solinium");
|
||||
nuke_n2 = new NukeN2(Material.iron).setBlockName("nuke_n2").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n2");
|
||||
nuke_n45 = new NukeN45(Material.iron).setBlockName("nuke_n45").setCreativeTab(MainRegistry.nukeTab).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":nuke_n45");
|
||||
|
||||
cel_prime = new CelPrime(Material.iron).setBlockName("cel_prime").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime");
|
||||
cel_prime_terminal = new CelPrimePart(Material.iron).setBlockName("cel_prime_terminal").setCreativeTab(null).setHardness(5.0F).setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":cel_prime_terminal");
|
||||
@ -866,6 +875,7 @@ public class ModBlocks {
|
||||
seal_hatch = new BlockHatch(Material.iron).setBlockName("seal_hatch").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":seal_hatch_3");
|
||||
|
||||
vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_door");
|
||||
blast_door = new BlastDoor(Material.iron).setBlockName("blast_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":blast_door");
|
||||
|
||||
marker_structure = new BlockMarker(Material.iron).setBlockName("marker_structure").setHardness(0.0F).setResistance(0.0F).setLightLevel(1.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":marker_structure");
|
||||
|
||||
@ -994,6 +1004,7 @@ public class ModBlocks {
|
||||
dummy_block_reactor_small = new DummyBlockMachine(Material.iron, guiID_reactor_small, machine_reactor_small).setBlockName("dummy_block_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_port_reactor_small = new DummyBlockMachine(Material.iron, guiID_reactor_small, machine_reactor_small).setBlockName("dummy_port_reactor_small").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_vault = new DummyBlockVault(Material.iron).setBlockName("dummy_block_vault").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
dummy_block_blast = new DummyBlockBlast(Material.iron).setBlockName("dummy_block_blast").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
|
||||
ntm_dirt = new BlockNTMDirt().setBlockName("ntm_dirt").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName("dirt");
|
||||
}
|
||||
@ -1087,6 +1098,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(deco_steel, deco_steel.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_lead, deco_lead.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(deco_beryllium, deco_beryllium.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(hazmat, hazmat.getUnlocalizedName());
|
||||
|
||||
//Gravel
|
||||
GameRegistry.registerBlock(gravel_obsidian, gravel_obsidian.getUnlocalizedName());
|
||||
@ -1159,6 +1171,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(nuke_fleija, nuke_fleija.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(nuke_solinium, nuke_solinium.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(nuke_n2, nuke_n2.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(nuke_n45, nuke_n45.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(nuke_custom, nuke_custom.getUnlocalizedName());
|
||||
|
||||
//Generic Bombs
|
||||
@ -1215,6 +1228,7 @@ public class ModBlocks {
|
||||
|
||||
//Vault Door
|
||||
GameRegistry.registerBlock(vault_door, vault_door.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(blast_door, blast_door.getUnlocalizedName());
|
||||
|
||||
//Crates
|
||||
GameRegistry.registerBlock(crate_iron, crate_iron.getUnlocalizedName());
|
||||
@ -1420,6 +1434,7 @@ public class ModBlocks {
|
||||
GameRegistry.registerBlock(dummy_block_reactor_small, dummy_block_reactor_small.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_port_reactor_small, dummy_port_reactor_small.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_vault, dummy_block_vault.getUnlocalizedName());
|
||||
GameRegistry.registerBlock(dummy_block_blast, dummy_block_blast.getUnlocalizedName());
|
||||
|
||||
//Other Technical Blocks
|
||||
GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName());
|
||||
|
||||
65
com/hbm/blocks/bomb/NukeN45.java
Normal file
@ -0,0 +1,65 @@
|
||||
package com.hbm.blocks.bomb;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.entity.effect.EntityNukeCloudSmall;
|
||||
import com.hbm.entity.logic.EntityNukeExplosionMK4;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeN2;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeN45;
|
||||
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.item.EntityItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class NukeN45 extends BlockContainer implements IBomb {
|
||||
|
||||
public NukeN45(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityNukeN45();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_)
|
||||
{
|
||||
return Item.getItemFromBlock(ModBlocks.nuke_n45);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void explode(World world, int x, int y, int z) {
|
||||
|
||||
}
|
||||
}
|
||||
116
com/hbm/blocks/machine/BlastDoor.java
Normal file
@ -0,0 +1,116 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.interfaces.IMultiblock;
|
||||
import com.hbm.items.tool.ItemLock;
|
||||
import com.hbm.tileentity.machine.TileEntityBlastDoor;
|
||||
import com.hbm.tileentity.machine.TileEntityVaultDoor;
|
||||
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class BlastDoor extends BlockContainer implements IBomb, IMultiblock {
|
||||
|
||||
public BlastDoor(Material p_i45386_1_) {
|
||||
super(p_i45386_1_);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) {
|
||||
return new TileEntityBlastDoor();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRenderType(){
|
||||
return -1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean renderAsNormalBlock() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void explode(World world, int x, int y, int z) {
|
||||
TileEntityBlastDoor entity = (TileEntityBlastDoor) world.getTileEntity(x, y, z);
|
||||
if(entity != null)
|
||||
{
|
||||
if(!entity.isLocked()) {
|
||||
entity.tryToggle();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@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.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemLock) {
|
||||
return false;
|
||||
|
||||
} if(!player.isSneaking()) {
|
||||
|
||||
TileEntityBlastDoor entity = (TileEntityBlastDoor) world.getTileEntity(x, y, z);
|
||||
if(entity != null)
|
||||
{
|
||||
if(entity.isLocked()) {
|
||||
if(entity.canAccess(player))
|
||||
entity.tryToggle();
|
||||
} else {
|
||||
entity.tryToggle();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||
|
||||
TileEntityBlastDoor te = (TileEntityBlastDoor) world.getTileEntity(x, y, z);
|
||||
|
||||
int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
|
||||
|
||||
if(i == 0)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
if(i == 1)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
if(i == 2)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 2, 2);
|
||||
}
|
||||
if(i == 3)
|
||||
{
|
||||
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||
}
|
||||
|
||||
//frame
|
||||
if(!(te.placeDummy(x, y + 1, z) &&
|
||||
te.placeDummy(x, y + 2, z) &&
|
||||
te.placeDummy(x, y + 3, z) &&
|
||||
te.placeDummy(x, y + 4, z) &&
|
||||
te.placeDummy(x, y + 5, z) &&
|
||||
te.placeDummy(x, y + 6, z)))
|
||||
world.func_147480_a(x, y, z, true);
|
||||
}
|
||||
|
||||
}
|
||||
127
com/hbm/blocks/machine/DummyBlockBlast.java
Normal file
@ -0,0 +1,127 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IBomb;
|
||||
import com.hbm.interfaces.IDummy;
|
||||
import com.hbm.items.tool.ItemLock;
|
||||
import com.hbm.tileentity.machine.TileEntityBlastDoor;
|
||||
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||
|
||||
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 DummyBlockBlast extends BlockContainer implements IDummy, IBomb {
|
||||
|
||||
public static boolean safeBreak = false;
|
||||
|
||||
public DummyBlockBlast(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;
|
||||
|
||||
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.blast_door);
|
||||
}
|
||||
|
||||
@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.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemLock) {
|
||||
return false;
|
||||
|
||||
} else if(!player.isSneaking())
|
||||
{
|
||||
TileEntity til = world.getTileEntity(x, y, z);
|
||||
if(til != null && til instanceof TileEntityDummy) {
|
||||
int a = ((TileEntityDummy)til).targetX;
|
||||
int b = ((TileEntityDummy)til).targetY;
|
||||
int c = ((TileEntityDummy)til).targetZ;
|
||||
|
||||
TileEntityBlastDoor entity = (TileEntityBlastDoor) world.getTileEntity(a, b, c);
|
||||
if(entity != null)
|
||||
{
|
||||
if(entity.canAccess(player))
|
||||
entity.tryToggle();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void explode(World world, int x, int y, int z) {
|
||||
|
||||
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;
|
||||
|
||||
TileEntityBlastDoor entity = (TileEntityBlastDoor) world.getTileEntity(a, b, c);
|
||||
if(entity != null && !entity.isLocked())
|
||||
{
|
||||
entity.tryToggle();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -14,11 +14,13 @@ import com.hbm.entity.effect.EntityCloudFleijaRainbow;
|
||||
import com.hbm.entity.projectile.EntityMeteor;
|
||||
import com.hbm.explosion.ExplosionNukeRay;
|
||||
import com.hbm.explosion.ExplosionNukeRay.FloatTriplet;
|
||||
import com.hbm.lib.HbmChestContents;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.main.ModEventHandler;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.saveddata.SatelliteSaveStructure;
|
||||
import com.hbm.saveddata.SatelliteSavedData;
|
||||
import com.hbm.tileentity.machine.TileEntityCrateSteel;
|
||||
import com.hbm.world.Barrel;
|
||||
import com.hbm.world.Meteorite;
|
||||
import com.hbm.world.Sellafield;
|
||||
@ -37,6 +39,7 @@ import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.ChatComponentText;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.util.WeightedRandomChestContent;
|
||||
import net.minecraft.village.VillageCollection;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldServer;
|
||||
@ -277,9 +280,17 @@ public class TestEventTester extends Block {
|
||||
worldObj.playSoundEffect(par2, par3, par4, "hbm:fm.sample", 1.0F, 1.0F); break;
|
||||
}*/
|
||||
|
||||
worldObj.setBlockToAir(par2, par3, par4);
|
||||
/*worldObj.setBlockToAir(par2, par3, par4);
|
||||
|
||||
new Barrel().generate(worldObj, worldObj.rand, par2, par3, par4);
|
||||
new Barrel().generate(worldObj, worldObj.rand, par2, par3, par4);*/
|
||||
|
||||
|
||||
worldObj.setBlock(par2, par3, par4, ModBlocks.crate_steel, 0, 3);
|
||||
|
||||
if(worldObj.getBlock(par2, par3, par4) == ModBlocks.crate_steel)
|
||||
{
|
||||
WeightedRandomChestContent.generateChestContents(worldObj.rand, HbmChestContents.getLoot(3), (TileEntityCrateSteel)worldObj.getTileEntity(par2, par3, par4), 32);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -1,11 +1,15 @@
|
||||
package com.hbm.entity.logic;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.entity.particle.EntityGasFlameFX;
|
||||
import com.hbm.entity.projectile.EntityBombletZeta;
|
||||
import com.hbm.explosion.ExplosionChaos;
|
||||
import com.hbm.explosion.ExplosionLarge;
|
||||
import com.hbm.lib.ModDamageSource;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.deco.TileEntityBomber;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineRadar;
|
||||
|
||||
@ -16,9 +20,13 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.ChunkCoordIntPair;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.ForgeChunkManager;
|
||||
import net.minecraftforge.common.ForgeChunkManager.Ticket;
|
||||
import net.minecraftforge.common.ForgeChunkManager.Type;
|
||||
|
||||
public class EntityBomber extends Entity {
|
||||
public class EntityBomber extends Entity implements IChunkLoader {
|
||||
|
||||
int timer = 200;
|
||||
int bombStart = 75;
|
||||
@ -145,9 +153,11 @@ public class EntityBomber extends Entity {
|
||||
vector.xCoord *= 2;
|
||||
vector.zCoord *= 2;
|
||||
|
||||
this.posX = x - vector.xCoord * 100;
|
||||
this.posY = y + 50;
|
||||
this.posZ = z - vector.zCoord * 100;
|
||||
/*this.posX = ;
|
||||
this.posY = ;
|
||||
this.posZ = ;*/
|
||||
|
||||
this.setLocationAndAngles(x - vector.xCoord * 100, y + 50, z - vector.zCoord * 100, 0.0F, 0.0F);
|
||||
|
||||
this.motionX = vector.xCoord;
|
||||
this.motionZ = vector.zCoord;
|
||||
@ -264,6 +274,7 @@ public class EntityBomber extends Entity {
|
||||
|
||||
@Override
|
||||
public void entityInit() {
|
||||
init(ForgeChunkManager.requestTicket(MainRegistry.instance, worldObj, Type.ENTITY));
|
||||
this.dataWatcher.addObject(16, Byte.valueOf((byte)0));
|
||||
}
|
||||
|
||||
@ -318,7 +329,57 @@ public class EntityBomber extends Entity {
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean isInRangeToRenderDist(double distance)
|
||||
{
|
||||
return distance < 25000;
|
||||
return distance < 500000;
|
||||
}
|
||||
|
||||
private Ticket loaderTicket;
|
||||
|
||||
public void init(Ticket ticket) {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(ticket != null) {
|
||||
|
||||
if(loaderTicket == null) {
|
||||
|
||||
loaderTicket = ticket;
|
||||
loaderTicket.bindEntity(this);
|
||||
loaderTicket.getModData();
|
||||
}
|
||||
|
||||
|
||||
ForgeChunkManager.forceChunk(loaderTicket, new ChunkCoordIntPair(chunkCoordX, chunkCoordZ));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<ChunkCoordIntPair> loadedChunks = new ArrayList<ChunkCoordIntPair>();
|
||||
|
||||
public void loadNeighboringChunks(int newChunkX, int newChunkZ)
|
||||
{
|
||||
if(!worldObj.isRemote && loaderTicket != null)
|
||||
{
|
||||
for(ChunkCoordIntPair chunk : loadedChunks)
|
||||
{
|
||||
ForgeChunkManager.unforceChunk(loaderTicket, chunk);
|
||||
}
|
||||
|
||||
loadedChunks.clear();
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ));
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ + 1));
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ - 1));
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ - 1));
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ + 1));
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX + 1, newChunkZ));
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ + 1));
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX - 1, newChunkZ));
|
||||
loadedChunks.add(new ChunkCoordIntPair(newChunkX, newChunkZ - 1));
|
||||
|
||||
for(ChunkCoordIntPair chunk : loadedChunks)
|
||||
{
|
||||
ForgeChunkManager.forceChunk(loaderTicket, chunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -744,7 +744,7 @@ public class ExplosionChaos {
|
||||
|
||||
if(entity instanceof EntityLivingBase && ((EntityLivingBase)entity).isPotionActive(HbmPotion.taint.id)) {
|
||||
((EntityLivingBase)entity).removePotionEffect(HbmPotion.taint.id);
|
||||
((EntityLivingBase)entity).addPotionEffect(new PotionEffect(HbmPotion.mutation.id, 1 * 60 * 60 * 20, 0));
|
||||
((EntityLivingBase)entity).addPotionEffect(new PotionEffect(HbmPotion.mutation.id, 1 * 60 * 60 * 20, 0, false));
|
||||
} else {
|
||||
entity.attackEntityFrom(ModDamageSource.cloud, 3);
|
||||
}
|
||||
|
||||
@ -2444,6 +2444,16 @@ public class MachineRecipes {
|
||||
list.add(new ItemStack(ModItems.bolt_dura_steel, 27));
|
||||
list.add(new ItemStack(ModItems.motor, 5));
|
||||
break;
|
||||
case SLIDING_DOOR:
|
||||
list.add(new ItemStack(ModItems.ingot_steel, 16));
|
||||
list.add(new ItemStack(ModItems.ingot_tungsten, 8));
|
||||
list.add(new ItemStack(ModItems.plate_lead, 12));
|
||||
list.add(new ItemStack(ModItems.plate_advanced_alloy, 3));
|
||||
list.add(new ItemStack(ModItems.plate_polymer, 3));
|
||||
list.add(new ItemStack(ModItems.bolt_tungsten, 3));
|
||||
list.add(new ItemStack(ModItems.bolt_dura_steel, 3));
|
||||
list.add(new ItemStack(ModItems.motor, 1));
|
||||
break;
|
||||
case CENTRIFUGE:
|
||||
list.add(new ItemStack(ModItems.centrifuge_tower, 1));
|
||||
list.add(new ItemStack(ModItems.ingot_steel, 4));
|
||||
@ -3819,6 +3829,9 @@ public class MachineRecipes {
|
||||
case BLAST_DOOR:
|
||||
output = new ItemStack(ModBlocks.vault_door, 1);
|
||||
break;
|
||||
case SLIDING_DOOR:
|
||||
output = new ItemStack(ModBlocks.blast_door, 1);
|
||||
break;
|
||||
case CENTRIFUGE:
|
||||
output = new ItemStack(ModBlocks.machine_centrifuge, 1);
|
||||
break;
|
||||
|
||||
@ -151,6 +151,7 @@ public class ItemAssemblyTemplate extends Item {
|
||||
HATCH_FRAME,
|
||||
HATCH_CONTROLLER,
|
||||
BLAST_DOOR,
|
||||
SLIDING_DOOR,
|
||||
CENTRIFUGE,
|
||||
BREEDING_REACTOR,
|
||||
RTG_FURNACE,
|
||||
@ -600,6 +601,8 @@ public class ItemAssemblyTemplate extends Item {
|
||||
return 100;
|
||||
case BLAST_DOOR:
|
||||
return 300;
|
||||
case SLIDING_DOOR:
|
||||
return 200;
|
||||
case CENTRIFUGE:
|
||||
return 250;
|
||||
case BREEDING_REACTOR:
|
||||
|
||||
@ -48,25 +48,36 @@ public class ItemBombCaller extends Item {
|
||||
int y = pos.blockY;
|
||||
int z = pos.blockZ;
|
||||
|
||||
boolean b = false;
|
||||
|
||||
if(!world.isRemote)
|
||||
{
|
||||
player.addChatMessage(new ChatComponentText("Called in airstrike!"));
|
||||
world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F);
|
||||
|
||||
if(stack.getItemDamage() == 0)
|
||||
world.spawnEntityInWorld(EntityBomber.statFacCarpet(world, x, y, z));
|
||||
if(world.spawnEntityInWorld(EntityBomber.statFacCarpet(world, x, y, z)))
|
||||
b = true;
|
||||
if(stack.getItemDamage() == 1)
|
||||
world.spawnEntityInWorld(EntityBomber.statFacNapalm(world, x, y, z));
|
||||
if(world.spawnEntityInWorld(EntityBomber.statFacNapalm(world, x, y, z)))
|
||||
b = true;
|
||||
if(stack.getItemDamage() == 2)
|
||||
world.spawnEntityInWorld(EntityBomber.statFacChlorine(world, x, y, z));
|
||||
if(world.spawnEntityInWorld(EntityBomber.statFacChlorine(world, x, y, z)))
|
||||
b = true;
|
||||
if(stack.getItemDamage() == 3)
|
||||
world.spawnEntityInWorld(EntityBomber.statFacOrange(world, x, y, z));
|
||||
if(world.spawnEntityInWorld(EntityBomber.statFacOrange(world, x, y, z)))
|
||||
b = true;
|
||||
if(stack.getItemDamage() == 4)
|
||||
world.spawnEntityInWorld(EntityBomber.statFacABomb(world, x, y, z));
|
||||
if(world.spawnEntityInWorld(EntityBomber.statFacABomb(world, x, y, z)))
|
||||
b = true;
|
||||
|
||||
if(b) {
|
||||
player.addChatMessage(new ChatComponentText("Called in airstrike!"));
|
||||
world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F);
|
||||
} else {
|
||||
world.playSoundAtEntity(player, "hbm:item.techBoop", 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
||||
stack.stackSize--;
|
||||
stack.stackSize -= b ? 1 : 0;
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
@ -25,8 +25,8 @@ public class ItemLock extends ItemKeyPin {
|
||||
if(tile.isLocked())
|
||||
return false;
|
||||
|
||||
tile.lock();
|
||||
tile.setPins(this.getPins(stack));
|
||||
tile.lock();
|
||||
|
||||
world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F);
|
||||
stack.stackSize--;
|
||||
@ -45,8 +45,8 @@ public class ItemLock extends ItemKeyPin {
|
||||
if(tile.isLocked())
|
||||
return false;
|
||||
|
||||
tile.lock();
|
||||
tile.setPins(this.getPins(stack));
|
||||
tile.lock();
|
||||
|
||||
world.playSoundAtEntity(player, "hbm:block.lockHang", 1.0F, 1.0F);
|
||||
stack.stackSize--;
|
||||
|
||||
@ -79,6 +79,8 @@ public class HbmChestContents {
|
||||
new WeightedRandomChestContent(ModItems.gun_fatman, 0, 1, 1, 1),
|
||||
new WeightedRandomChestContent(ModItems.gun_fatman_ammo, 0, 1, 2, 2),
|
||||
new WeightedRandomChestContent(ModItems.grenade_nuclear, 0, 1, 1, 2),
|
||||
new WeightedRandomChestContent(ModItems.grenade_smart, 0, 1, 3, 3),
|
||||
new WeightedRandomChestContent(ModItems.grenade_mirv, 0, 1, 1, 2),
|
||||
new WeightedRandomChestContent(ModItems.stealth_boy, 0, 1, 1, 2),
|
||||
new WeightedRandomChestContent(ModItems.battery_advanced, 0, 1, 1, 3),
|
||||
new WeightedRandomChestContent(ModItems.battery_advanced_cell, 0, 1, 1, 2),
|
||||
@ -92,10 +94,10 @@ public class HbmChestContents {
|
||||
new WeightedRandomChestContent(ModItems.canister_fuel, 0, 1, 2, 2),
|
||||
new WeightedRandomChestContent(ModItems.canister_biofuel, 0, 1, 2, 3),
|
||||
new WeightedRandomChestContent(ModItems.gas_mask_m65, 60, 1, 1, 5),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 2, 3),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 1, 1, 2, 2),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 2, 1, 2, 2),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 3, 1, 2, 3),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 0, 1, 2, 2),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 1, 1, 2, 1),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 2, 1, 2, 1),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 3, 1, 2, 2),
|
||||
new WeightedRandomChestContent(ModItems.bomb_caller, 4, 1, 2, 1) };
|
||||
|
||||
private static WeightedRandomChestContent[] nukeTrash = new WeightedRandomChestContent[] {
|
||||
|
||||
@ -3,7 +3,7 @@ package com.hbm.lib;
|
||||
public class RefStrings {
|
||||
public static final String MODID = "hbm";
|
||||
public static final String NAME = "Hbm's Nuclear Tech Mod";
|
||||
public static final String VERSION = "1.0.27 BETA (2893)";
|
||||
public static final String VERSION = "1.0.27 BETA (red edition)";
|
||||
//HBM's Beta Naming Convention:
|
||||
//V T (X-Y-Z)
|
||||
//V -> next release version
|
||||
|
||||
@ -63,6 +63,7 @@ public class ClientProxy extends ServerProxy
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeSolinium.class, new RenderNukeSolinium());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN2.class, new RenderNukeN2());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeMan.class, new RenderNukeMan());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukeN45.class, new RenderNukeN45());
|
||||
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretHeavy.class, new RenderHeavyTurret());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTurretRocket.class, new RenderRocketTurret());
|
||||
@ -102,6 +103,7 @@ public class ClientProxy extends ServerProxy
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorSmall.class, new RenderSmallReactor());
|
||||
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityVaultDoor.class, new RenderVaultDoor());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlastDoor.class, new RenderBlastDoor());
|
||||
|
||||
//RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderRocket());
|
||||
RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core));
|
||||
|
||||
@ -205,6 +205,7 @@ import com.hbm.tileentity.bomb.TileEntityNukeGadget;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeMan;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeMike;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeN2;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeN45;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukePrototype;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeSolinium;
|
||||
import com.hbm.tileentity.bomb.TileEntityNukeTsar;
|
||||
@ -244,6 +245,7 @@ import com.hbm.tileentity.deco.TileEntityYellowBarrel;
|
||||
import com.hbm.tileentity.machine.TileEntityAMSBase;
|
||||
import com.hbm.tileentity.machine.TileEntityAMSEmitter;
|
||||
import com.hbm.tileentity.machine.TileEntityAMSLimiter;
|
||||
import com.hbm.tileentity.machine.TileEntityBlastDoor;
|
||||
import com.hbm.tileentity.machine.TileEntityBroadcaster;
|
||||
import com.hbm.tileentity.machine.TileEntityConverterHeRf;
|
||||
import com.hbm.tileentity.machine.TileEntityConverterRfHe;
|
||||
@ -692,6 +694,8 @@ public class MainRegistry
|
||||
GameRegistry.registerTileEntity(TileEntityMachineTeleLinker.class, "tileentity_telemetry_linker");
|
||||
GameRegistry.registerTileEntity(TileEntityMachineKeyForge.class, "tileentity_key_forge");
|
||||
GameRegistry.registerTileEntity(TileEntitySellafield.class, "tileentity_sellafield_core");
|
||||
GameRegistry.registerTileEntity(TileEntityNukeN45.class, "tileentity_n45");
|
||||
GameRegistry.registerTileEntity(TileEntityBlastDoor.class, "tileentity_blast_door");
|
||||
|
||||
EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true);
|
||||
EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true);
|
||||
|
||||
@ -85,6 +85,11 @@ public class ResourceManager {
|
||||
//Bombs
|
||||
public static final IModelCustom bomb_solinium = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/ufp.obj"));
|
||||
public static final IModelCustom n2 = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/n2.obj"));
|
||||
public static final IModelCustom n45_globe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/n45_globe.obj"));
|
||||
public static final IModelCustom n45_knob = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/n45_knob.obj"));
|
||||
public static final IModelCustom n45_rod = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/n45_rod.obj"));
|
||||
public static final IModelCustom n45_stand = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/n45_stand.obj"));
|
||||
public static final IModelCustom n45_chain = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/n45_chain.obj"));
|
||||
|
||||
//Cel-Prime
|
||||
public static final IModelCustom cp_tower = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/cel_prime_tower.obj"));
|
||||
@ -108,6 +113,12 @@ public class ResourceManager {
|
||||
public static final IModelCustom vault_teeth = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_teeth.obj"));
|
||||
public static final IModelCustom vault_label = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_label.obj"));
|
||||
|
||||
//Blast Door
|
||||
public static final IModelCustom blast_door_base = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_base.obj"));
|
||||
public static final IModelCustom blast_door_tooth = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_tooth.obj"));
|
||||
public static final IModelCustom blast_door_slider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_slider.obj"));
|
||||
public static final IModelCustom blast_door_block = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blast_door_block.obj"));
|
||||
|
||||
////Textures TEs
|
||||
|
||||
public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png");
|
||||
@ -177,6 +188,11 @@ public class ResourceManager {
|
||||
//Bombs
|
||||
public static final ResourceLocation bomb_solinium_tex = new ResourceLocation(RefStrings.MODID, "textures/models/ufp.png");
|
||||
public static final ResourceLocation n2_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n2.png");
|
||||
public static final ResourceLocation n45_globe_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n45_globe.png");
|
||||
public static final ResourceLocation n45_knob_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n45_knob.png");
|
||||
public static final ResourceLocation n45_rod_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n45_rod.png");
|
||||
public static final ResourceLocation n45_stand_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n45_stand.png");
|
||||
public static final ResourceLocation n45_chain_tex = new ResourceLocation(RefStrings.MODID, "textures/models/n45_chain.png");
|
||||
|
||||
//Satellites
|
||||
public static final ResourceLocation sat_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/sat_base.png");
|
||||
@ -198,6 +214,12 @@ public class ResourceManager {
|
||||
public static final ResourceLocation vault4_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault4_cog.png");
|
||||
public static final ResourceLocation vault4_label_111_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault4_label_111.png");
|
||||
public static final ResourceLocation vault4_label_81_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault4_label_81.png");
|
||||
|
||||
//Blast Door
|
||||
public static final ResourceLocation blast_door_base_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_base.png");
|
||||
public static final ResourceLocation blast_door_tooth_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_tooth.png");
|
||||
public static final ResourceLocation blast_door_slider_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_slider.png");
|
||||
public static final ResourceLocation blast_door_block_tex = new ResourceLocation(RefStrings.MODID, "textures/models/blast_door_block.png");
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.hbm.packet;
|
||||
|
||||
import com.hbm.tileentity.machine.TileEntityBlastDoor;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineRadar;
|
||||
import com.hbm.tileentity.machine.TileEntityVaultDoor;
|
||||
|
||||
@ -75,6 +76,15 @@ public class TEVaultPacket implements IMessage {
|
||||
vault.sysTime = System.currentTimeMillis();
|
||||
vault.type = m.type;
|
||||
}
|
||||
|
||||
if (te != null && te instanceof TileEntityBlastDoor) {
|
||||
|
||||
TileEntityBlastDoor vault = (TileEntityBlastDoor) te;
|
||||
vault.isOpening = m.isOpening;
|
||||
vault.state = m.state;
|
||||
if(m.sysTime == 1)
|
||||
vault.sysTime = System.currentTimeMillis();
|
||||
}
|
||||
} catch (Exception x) {
|
||||
}
|
||||
return null;
|
||||
|
||||
85
com/hbm/render/tileentity/RenderBlastDoor.java
Normal file
@ -0,0 +1,85 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.tileentity.machine.TileEntityBlastDoor;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderBlastDoor extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
|
||||
{
|
||||
renderDoor((TileEntityBlastDoor)tileEntity, x, y, z, f);
|
||||
}
|
||||
|
||||
public void renderDoor(TileEntityBlastDoor 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);
|
||||
|
||||
double timer;
|
||||
|
||||
if(tileEntity.getBlockMetadata() == 2)
|
||||
GL11.glRotatef(90, 0F, 1F, 0F);
|
||||
|
||||
if(tileEntity.state == 0)
|
||||
timer = getAnimationFromSysTime(5000);
|
||||
else if(tileEntity.state == 2)
|
||||
timer = 0;
|
||||
else if(tileEntity.isOpening)
|
||||
timer = getAnimationFromSysTime(tileEntity.sysTime + 5000 - System.currentTimeMillis());
|
||||
else
|
||||
timer = getAnimationFromSysTime(System.currentTimeMillis() - tileEntity.sysTime);
|
||||
|
||||
bindTexture(ResourceManager.blast_door_base_tex);
|
||||
ResourceManager.blast_door_base.renderAll();
|
||||
|
||||
GL11.glTranslated(0, 3, 0);
|
||||
bindTexture(ResourceManager.blast_door_block_tex);
|
||||
ResourceManager.blast_door_block.renderAll();
|
||||
|
||||
GL11.glTranslated(0, -timer, 0);
|
||||
|
||||
GL11.glTranslated(0, 2, 0);
|
||||
bindTexture(ResourceManager.blast_door_tooth_tex);
|
||||
ResourceManager.blast_door_tooth.renderAll();
|
||||
|
||||
if(timer > 1D) {
|
||||
bindTexture(ResourceManager.blast_door_slider_tex);
|
||||
ResourceManager.blast_door_slider.renderAll();
|
||||
}
|
||||
if(timer > 2D) {
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
bindTexture(ResourceManager.blast_door_slider_tex);
|
||||
ResourceManager.blast_door_slider.renderAll();
|
||||
}
|
||||
if(timer > 3D) {
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
bindTexture(ResourceManager.blast_door_slider_tex);
|
||||
ResourceManager.blast_door_slider.renderAll();
|
||||
}
|
||||
if(timer > 4D) {
|
||||
GL11.glTranslated(0, 1, 0);
|
||||
bindTexture(ResourceManager.blast_door_slider_tex);
|
||||
ResourceManager.blast_door_slider.renderAll();
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
private static double getAnimationFromSysTime(long time) {
|
||||
|
||||
double duration = 5000D;
|
||||
double extend = 5.0D;
|
||||
|
||||
return Math.max(Math.min(time, duration) / duration * extend, 0.0D);
|
||||
}
|
||||
}
|
||||
109
com/hbm/render/tileentity/RenderNukeN45.java
Normal file
@ -0,0 +1,109 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderNukeN45 extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
|
||||
{
|
||||
boolean standing = tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord - 1, tileEntity.zCoord).isNormalCube();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||
bindTexture(ResourceManager.universal);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
//GL11.glScaled(2.0D, 2.0D, 2.0D);
|
||||
|
||||
if(standing) {
|
||||
ResourceManager.n45_stand.renderAll();
|
||||
}
|
||||
|
||||
double d = /*0;*/ Math.sin((System.currentTimeMillis() % (1000* Math.PI)) / 500D) * 0.175 + 0.175;
|
||||
|
||||
GL11.glTranslated(0, standing ? 1D : 0.5D, 0);
|
||||
|
||||
ResourceManager.n45_globe.renderAll();
|
||||
|
||||
GL11.glRotated(90, 1, 0, 0);
|
||||
|
||||
for(int i = 0; i < 8; i++) {
|
||||
ResourceManager.n45_knob.renderAll();
|
||||
GL11.glTranslated(0, -d, 0);
|
||||
ResourceManager.n45_rod.renderAll();
|
||||
GL11.glTranslated(0, d, 0);
|
||||
GL11.glRotated(45, 0, 0, 1);
|
||||
}
|
||||
|
||||
GL11.glRotated(45, 0, 0, 1);
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
GL11.glRotated(-45, 1, 0, 0);
|
||||
ResourceManager.n45_knob.renderAll();
|
||||
GL11.glTranslated(0, -d, 0);
|
||||
ResourceManager.n45_rod.renderAll();
|
||||
GL11.glTranslated(0, d, 0);
|
||||
GL11.glRotated(45, 1, 0, 0);
|
||||
GL11.glRotated(90, 0, 0, 1);
|
||||
}
|
||||
|
||||
GL11.glRotated(-90, 0, 0, 1);
|
||||
|
||||
for(int i = 0; i < 4; i++) {
|
||||
GL11.glRotated(45, 1, 0, 0);
|
||||
ResourceManager.n45_knob.renderAll();
|
||||
GL11.glTranslated(0, -d, 0);
|
||||
ResourceManager.n45_rod.renderAll();
|
||||
GL11.glTranslated(0, d, 0);
|
||||
GL11.glRotated(-45, 1, 0, 0);
|
||||
GL11.glRotated(90, 0, 0, 1);
|
||||
}
|
||||
|
||||
GL11.glRotated(45, 0, 0, 1);
|
||||
GL11.glRotated(-90, 1, 0, 0);
|
||||
|
||||
ResourceManager.n45_knob.renderAll();
|
||||
GL11.glTranslated(0, -d, 0);
|
||||
ResourceManager.n45_rod.renderAll();
|
||||
GL11.glTranslated(0, d, 0);
|
||||
|
||||
if(!standing) {
|
||||
int depth = 0;
|
||||
|
||||
for(int i = 0; i < 51; i++) {
|
||||
|
||||
if(!tileEntity.getWorldObj().getBlock(tileEntity.xCoord, tileEntity.yCoord - i - 1, tileEntity.zCoord).isNormalCube()) {
|
||||
depth++;
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(depth != 0 && depth < 51) {
|
||||
|
||||
GL11.glTranslated(0, -1D, 0);
|
||||
|
||||
for(int i = 0; i < depth + 1; i++) {
|
||||
|
||||
ResourceManager.n45_chain.renderAll();
|
||||
GL11.glTranslated(0, -1, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
22
com/hbm/tileentity/bomb/TileEntityNukeN45.java
Normal file
@ -0,0 +1,22 @@
|
||||
package com.hbm.tileentity.bomb;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
public class TileEntityNukeN45 extends TileEntity {
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
return TileEntity.INFINITE_EXTENT_AABB;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared()
|
||||
{
|
||||
return 65536.0D;
|
||||
}
|
||||
|
||||
}
|
||||
319
com/hbm/tileentity/machine/TileEntityBlastDoor.java
Normal file
@ -0,0 +1,319 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.blocks.machine.DummyBlockBlast;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.TEVaultPacket;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
|
||||
public class TileEntityBlastDoor extends TileEntityLockableBase {
|
||||
|
||||
public boolean isOpening = false;
|
||||
//0: closed, 1: opening/closing, 2:open
|
||||
public int state = 0;
|
||||
public long sysTime;
|
||||
private int timer = 0;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
return TileEntity.INFINITE_EXTENT_AABB;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared()
|
||||
{
|
||||
return 65536.0D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
if(state != 1) {
|
||||
timer = 0;
|
||||
} else {
|
||||
timer++;
|
||||
|
||||
if(isOpening) {
|
||||
if(timer >= 0) {
|
||||
removeDummy(xCoord, yCoord + 1, zCoord);
|
||||
}
|
||||
if(timer >= 20) {
|
||||
removeDummy(xCoord, yCoord + 2, zCoord);
|
||||
}
|
||||
if(timer >= 40) {
|
||||
removeDummy(xCoord, yCoord + 3, zCoord);
|
||||
}
|
||||
if(timer >= 60) {
|
||||
removeDummy(xCoord, yCoord + 4, zCoord);
|
||||
}
|
||||
if(timer >= 80) {
|
||||
removeDummy(xCoord, yCoord + 5, zCoord);
|
||||
}
|
||||
} else {
|
||||
if(timer >= 20) {
|
||||
placeDummy(xCoord, yCoord + 5, zCoord);
|
||||
}
|
||||
if(timer >= 40) {
|
||||
placeDummy(xCoord, yCoord + 4, zCoord);
|
||||
}
|
||||
if(timer >= 60) {
|
||||
placeDummy(xCoord, yCoord + 3, zCoord);
|
||||
}
|
||||
if(timer >= 80) {
|
||||
placeDummy(xCoord, yCoord + 2, zCoord);
|
||||
}
|
||||
if(timer >= 100) {
|
||||
placeDummy(xCoord, yCoord + 1, zCoord);
|
||||
}
|
||||
}
|
||||
|
||||
if(timer >= 100) {
|
||||
|
||||
if(isOpening)
|
||||
finishOpen();
|
||||
else
|
||||
finishClose();
|
||||
}
|
||||
}
|
||||
|
||||
PacketDispatcher.wrapper.sendToAll(new TEVaultPacket(xCoord, yCoord, zCoord, isOpening, state, 0, 0));
|
||||
}
|
||||
}
|
||||
|
||||
public void open() {
|
||||
if(state == 0) {
|
||||
PacketDispatcher.wrapper.sendToAll(new TEVaultPacket(xCoord, yCoord, zCoord, isOpening, state, 1, 0));
|
||||
isOpening = true;
|
||||
state = 1;
|
||||
|
||||
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStart", 0.5F,
|
||||
0.75F);
|
||||
}
|
||||
}
|
||||
|
||||
public void finishOpen() {
|
||||
state = 2;
|
||||
|
||||
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStop", 0.5F,
|
||||
1.0F);
|
||||
}
|
||||
|
||||
public void close() {
|
||||
if(state == 2) {
|
||||
PacketDispatcher.wrapper.sendToAll(new TEVaultPacket(xCoord, yCoord, zCoord, isOpening, state, 1, 0));
|
||||
isOpening = false;
|
||||
state = 1;
|
||||
|
||||
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStart", 0.5F,
|
||||
0.75F);
|
||||
}
|
||||
}
|
||||
|
||||
public void finishClose() {
|
||||
state = 0;
|
||||
|
||||
this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "hbm:block.reactorStop", 0.5F,
|
||||
1.0F);
|
||||
}
|
||||
|
||||
public void openNeigh() {
|
||||
|
||||
TileEntity te0 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord);
|
||||
TileEntity te1 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord);
|
||||
TileEntity te2 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 1);
|
||||
TileEntity te3 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 1);
|
||||
|
||||
if(te0 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(((TileEntityBlastDoor)te0).canOpen() && (!((TileEntityBlastDoor)te0).isLocked() || ((TileEntityBlastDoor)te0).lock == lock)) {
|
||||
((TileEntityBlastDoor)te0).open();
|
||||
((TileEntityBlastDoor)te0).openNeigh();
|
||||
}
|
||||
}
|
||||
|
||||
if(te1 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(((TileEntityBlastDoor)te1).canOpen() && (!((TileEntityBlastDoor)te1).isLocked() || ((TileEntityBlastDoor)te1).lock == lock)) {
|
||||
((TileEntityBlastDoor)te1).open();
|
||||
((TileEntityBlastDoor)te1).openNeigh();
|
||||
}
|
||||
}
|
||||
|
||||
if(te2 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(((TileEntityBlastDoor)te2).canOpen() && (!((TileEntityBlastDoor)te2).isLocked() || ((TileEntityBlastDoor)te2).lock == lock)) {
|
||||
((TileEntityBlastDoor)te2).open();
|
||||
((TileEntityBlastDoor)te2).openNeigh();
|
||||
}
|
||||
}
|
||||
|
||||
if(te3 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(((TileEntityBlastDoor)te3).canOpen() && (!((TileEntityBlastDoor)te3).isLocked() || ((TileEntityBlastDoor)te3).lock == lock)) {
|
||||
((TileEntityBlastDoor)te3).open();
|
||||
((TileEntityBlastDoor)te3).openNeigh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void lock() {
|
||||
super.lock();
|
||||
lockNeigh();
|
||||
}
|
||||
|
||||
public void closeNeigh() {
|
||||
|
||||
TileEntity te0 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord);
|
||||
TileEntity te1 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord);
|
||||
TileEntity te2 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 1);
|
||||
TileEntity te3 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 1);
|
||||
|
||||
if(te0 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(((TileEntityBlastDoor)te0).canClose() && (!((TileEntityBlastDoor)te0).isLocked() || ((TileEntityBlastDoor)te0).lock == lock)) {
|
||||
((TileEntityBlastDoor)te0).close();
|
||||
((TileEntityBlastDoor)te0).closeNeigh();
|
||||
}
|
||||
}
|
||||
|
||||
if(te1 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(((TileEntityBlastDoor)te1).canClose() && (!((TileEntityBlastDoor)te1).isLocked() || ((TileEntityBlastDoor)te1).lock == lock)) {
|
||||
((TileEntityBlastDoor)te1).close();
|
||||
((TileEntityBlastDoor)te1).closeNeigh();
|
||||
}
|
||||
}
|
||||
|
||||
if(te2 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(((TileEntityBlastDoor)te2).canClose() && (!((TileEntityBlastDoor)te2).isLocked() || ((TileEntityBlastDoor)te2).lock == lock)) {
|
||||
((TileEntityBlastDoor)te2).close();
|
||||
((TileEntityBlastDoor)te2).closeNeigh();
|
||||
}
|
||||
}
|
||||
|
||||
if(te3 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(((TileEntityBlastDoor)te3).canClose() && (!((TileEntityBlastDoor)te3).isLocked() || ((TileEntityBlastDoor)te3).lock == lock)) {
|
||||
((TileEntityBlastDoor)te3).close();
|
||||
((TileEntityBlastDoor)te3).closeNeigh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void lockNeigh() {
|
||||
|
||||
TileEntity te0 = worldObj.getTileEntity(xCoord + 1, yCoord, zCoord);
|
||||
TileEntity te1 = worldObj.getTileEntity(xCoord - 1, yCoord, zCoord);
|
||||
TileEntity te2 = worldObj.getTileEntity(xCoord, yCoord, zCoord + 1);
|
||||
TileEntity te3 = worldObj.getTileEntity(xCoord, yCoord, zCoord - 1);
|
||||
|
||||
if(te0 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(!((TileEntityBlastDoor)te0).isLocked()) {
|
||||
((TileEntityBlastDoor)te0).setPins(this.lock);
|
||||
((TileEntityBlastDoor)te0).lock();
|
||||
}
|
||||
}
|
||||
|
||||
if(te1 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(!((TileEntityBlastDoor)te1).isLocked()) {
|
||||
((TileEntityBlastDoor)te1).setPins(this.lock);
|
||||
((TileEntityBlastDoor)te1).lock();
|
||||
}
|
||||
}
|
||||
|
||||
if(te2 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(!((TileEntityBlastDoor)te2).isLocked()) {
|
||||
((TileEntityBlastDoor)te2).setPins(this.lock);
|
||||
((TileEntityBlastDoor)te2).lock();
|
||||
}
|
||||
}
|
||||
|
||||
if(te3 instanceof TileEntityBlastDoor) {
|
||||
|
||||
if(!((TileEntityBlastDoor)te3).isLocked()) {
|
||||
((TileEntityBlastDoor)te3).setPins(this.lock);
|
||||
((TileEntityBlastDoor)te3).lock();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canOpen() {
|
||||
return state == 0;
|
||||
}
|
||||
|
||||
public boolean canClose() {
|
||||
return state == 2;
|
||||
}
|
||||
|
||||
public void tryToggle() {
|
||||
|
||||
if(canOpen()) {
|
||||
open();
|
||||
openNeigh();
|
||||
} else if(canClose()) {
|
||||
close();
|
||||
closeNeigh();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean placeDummy(int x, int y, int z) {
|
||||
|
||||
if(!worldObj.getBlock(x, y, z).isReplaceable(worldObj, x, y, z))
|
||||
return false;
|
||||
|
||||
worldObj.setBlock(x, y, z, ModBlocks.dummy_block_blast);
|
||||
|
||||
TileEntity te = worldObj.getTileEntity(x, y, z);
|
||||
|
||||
if(te instanceof TileEntityDummy) {
|
||||
TileEntityDummy dummy = (TileEntityDummy)te;
|
||||
dummy.targetX = xCoord;
|
||||
dummy.targetY = yCoord;
|
||||
dummy.targetZ = zCoord;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void removeDummy(int x, int y, int z) {
|
||||
|
||||
if(worldObj.getBlock(x, y, z) == ModBlocks.dummy_block_blast) {
|
||||
DummyBlockBlast.safeBreak = true;
|
||||
worldObj.setBlock(x, y, z, Blocks.air);
|
||||
DummyBlockBlast.safeBreak = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
isOpening = nbt.getBoolean("isOpening");
|
||||
state = nbt.getInteger("state");
|
||||
sysTime = nbt.getLong("sysTime");
|
||||
timer = nbt.getInteger("timer");
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setBoolean("isOpening", isOpening);
|
||||
nbt.setInteger("state", state);
|
||||
nbt.setLong("sysTime", sysTime);
|
||||
nbt.setInteger("timer", timer);
|
||||
}
|
||||
|
||||
}
|
||||
@ -2,6 +2,7 @@ package com.hbm.tileentity.machine;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.tool.ItemKey;
|
||||
import com.hbm.main.MainRegistry;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
@ -11,7 +12,7 @@ import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public abstract class TileEntityLockableBase extends TileEntity {
|
||||
|
||||
private int lock;
|
||||
protected int lock;
|
||||
private boolean isLocked = false;
|
||||
|
||||
public boolean isLocked() {
|
||||
@ -19,6 +20,11 @@ public abstract class TileEntityLockableBase extends TileEntity {
|
||||
}
|
||||
|
||||
public void lock() {
|
||||
|
||||
if(lock == 0) {
|
||||
MainRegistry.logger.error("A block has been set to locked state before setting pins, this should not happen and may cause errors! " + this.toString());
|
||||
}
|
||||
|
||||
isLocked = true;
|
||||
}
|
||||
|
||||
|
||||
@ -113,7 +113,6 @@ public class TileEntityVaultDoor extends TileEntityLockableBase {
|
||||
|
||||
public void finishOpen() {
|
||||
state = 2;
|
||||
//play sound
|
||||
}
|
||||
|
||||
public void close() {
|
||||
@ -128,7 +127,6 @@ public class TileEntityVaultDoor extends TileEntityLockableBase {
|
||||
|
||||
public void finishClose() {
|
||||
state = 0;
|
||||
//play sound
|
||||
}
|
||||
|
||||
public boolean canOpen() {
|
||||
|
||||
@ -158,7 +158,7 @@ public class Barrel extends WorldGenerator {
|
||||
|
||||
if(world.getBlock(x + 2, y + 1, z + 2) == ModBlocks.crate_steel)
|
||||
{
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityCrateSteel)world.getTileEntity(x + 2, y + 1, z + 2), 32);
|
||||
WeightedRandomChestContent.generateChestContents(rand, HbmChestContents.getLoot(3), (TileEntityCrateSteel)world.getTileEntity(x + 2, y + 1, z + 2), 16);
|
||||
}
|
||||
|
||||
world.setBlock(x + 3, y + 1, z + 2, Block4, 0, 3);
|
||||
|
||||