n45, sliding blast door

This commit is contained in:
HbmMods 2018-09-18 19:20:51 +02:00
parent 998f5ea833
commit 77dd8cdd31
47 changed files with 4624 additions and 29 deletions

View File

@ -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

View File

@ -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

View 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

View 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

View 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

View 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

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,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

View 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

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 437 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 663 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -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;
@ -207,6 +209,7 @@ public class ModBlocks {
public static Block seal_hatch;
public static Block vault_door;
public static Block blast_door;
public static Block marker_structure;
@ -253,6 +256,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());

View 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) {
}
}

View 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);
}
}

View 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();
}
}
}
}

View File

@ -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;
}

View File

@ -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);
}
}
}
}

View File

@ -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);
}

View File

@ -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;

View File

@ -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:

View File

@ -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;
}

View File

@ -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--;

View File

@ -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[] {

View File

@ -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

View File

@ -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));

View File

@ -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);

View File

@ -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");
@ -199,6 +215,12 @@ public class ResourceManager {
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");
////Obj Items

View File

@ -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;

View 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);
}
}

View 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();
}
}

View 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;
}
}

View 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);
}
}

View File

@ -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;
}

View File

@ -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() {

View File

@ -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);