More vault textures, functionality, multi detonator
@ -647,6 +647,8 @@ tile.seal_frame.name=Siloluke (Rahmen)
|
|||||||
tile.seal_controller.name=Silolukenöffner
|
tile.seal_controller.name=Silolukenöffner
|
||||||
tile.seal_hatch.name=Siloluke (Deckel)
|
tile.seal_hatch.name=Siloluke (Deckel)
|
||||||
|
|
||||||
|
tile.vault_door.name=Vault-Tec Sprengtür
|
||||||
|
|
||||||
item.nugget_uranium.name=Urannugget
|
item.nugget_uranium.name=Urannugget
|
||||||
item.nugget_plutonium.name=Plutoniumnugget
|
item.nugget_plutonium.name=Plutoniumnugget
|
||||||
item.nugget_neptunium.name=Neptuniumnugget
|
item.nugget_neptunium.name=Neptuniumnugget
|
||||||
@ -1473,6 +1475,7 @@ item.shimmer_handle.name=Verstärketer Polymergriff
|
|||||||
|
|
||||||
item.redcoil_capacitor.name=Rotspulenkondensator
|
item.redcoil_capacitor.name=Rotspulenkondensator
|
||||||
item.detonator.name=Fernzünder
|
item.detonator.name=Fernzünder
|
||||||
|
item.detonator_multi.name=Mehrfach-Fernzünder
|
||||||
item.crate_caller.name=Nachschub-Requester
|
item.crate_caller.name=Nachschub-Requester
|
||||||
item.meteor_remote.name=Meteoritenkontroller
|
item.meteor_remote.name=Meteoritenkontroller
|
||||||
|
|
||||||
|
|||||||
@ -647,6 +647,8 @@ tile.seal_frame.name=Silo Hatch Frame
|
|||||||
tile.seal_controller.name=Silo Hatch Opener
|
tile.seal_controller.name=Silo Hatch Opener
|
||||||
tile.seal_hatch.name=Silo Hatch
|
tile.seal_hatch.name=Silo Hatch
|
||||||
|
|
||||||
|
tile.vault_door.name=Vault-Tec Blast Door
|
||||||
|
|
||||||
item.nugget_uranium.name=Uranium Nugget
|
item.nugget_uranium.name=Uranium Nugget
|
||||||
item.nugget_plutonium.name=Plutonium Nugget
|
item.nugget_plutonium.name=Plutonium Nugget
|
||||||
item.nugget_neptunium.name=Neptunium Nugget
|
item.nugget_neptunium.name=Neptunium Nugget
|
||||||
@ -1473,6 +1475,7 @@ item.shimmer_handle.name=Reinforced Polymer Handle
|
|||||||
|
|
||||||
item.redcoil_capacitor.name=Redcoil Capacitor
|
item.redcoil_capacitor.name=Redcoil Capacitor
|
||||||
item.detonator.name=Detonator
|
item.detonator.name=Detonator
|
||||||
|
item.detonator_multi.name=Multi-Detonator
|
||||||
item.crate_caller.name=Supply Drop Requester
|
item.crate_caller.name=Supply Drop Requester
|
||||||
item.meteor_remote.name=Meteorite Remote
|
item.meteor_remote.name=Meteorite Remote
|
||||||
|
|
||||||
|
|||||||
@ -714,8 +714,9 @@ vt 0.547184 0.376963
|
|||||||
vt 0.525794 0.364585
|
vt 0.525794 0.364585
|
||||||
vt 0.519555 0.353779
|
vt 0.519555 0.353779
|
||||||
vt 0.587454 0.329066
|
vt 0.587454 0.329066
|
||||||
vt 0.497115 0.828869
|
vt 0.394877 0.551666
|
||||||
vt 0.567181 0.841294
|
vt 0.430535 0.531125
|
||||||
|
vt 0.456956 0.562674
|
||||||
vt 0.561925 0.866367
|
vt 0.561925 0.866367
|
||||||
vt 0.558706 0.864509
|
vt 0.558706 0.864509
|
||||||
vt 0.565014 0.853582
|
vt 0.565014 0.853582
|
||||||
@ -724,8 +725,10 @@ vt 0.513019 0.809953
|
|||||||
vt 0.510630 0.807106
|
vt 0.510630 0.807106
|
||||||
vt 0.503354 0.818063
|
vt 0.503354 0.818063
|
||||||
vt 0.570842 0.840648
|
vt 0.570842 0.840648
|
||||||
|
vt 0.567181 0.841294
|
||||||
vt 0.564990 0.828869
|
vt 0.564990 0.828869
|
||||||
vt 0.493454 0.828224
|
vt 0.493454 0.828224
|
||||||
|
vt 0.497115 0.828869
|
||||||
vt 0.494924 0.841294
|
vt 0.494924 0.841294
|
||||||
vt 0.493872 0.855441
|
vt 0.493872 0.855441
|
||||||
vt 0.497091 0.853582
|
vt 0.497091 0.853582
|
||||||
@ -937,6 +940,21 @@ vt 0.609756 0.323022
|
|||||||
vt 0.541268 0.399299
|
vt 0.541268 0.399299
|
||||||
vt 0.522280 0.391673
|
vt 0.522280 0.391673
|
||||||
vt 0.524744 0.801968
|
vt 0.524744 0.801968
|
||||||
|
vt 0.449448 0.583243
|
||||||
|
vt 0.440978 0.590349
|
||||||
|
vt 0.430474 0.594173
|
||||||
|
vt 0.419418 0.594173
|
||||||
|
vt 0.408914 0.590349
|
||||||
|
vt 0.400445 0.583243
|
||||||
|
vt 0.394856 0.573562
|
||||||
|
vt 0.392936 0.562674
|
||||||
|
vt 0.400405 0.542091
|
||||||
|
vt 0.408968 0.534906
|
||||||
|
vt 0.419357 0.531125
|
||||||
|
vt 0.440924 0.534906
|
||||||
|
vt 0.449487 0.542091
|
||||||
|
vt 0.455015 0.551666
|
||||||
|
vt 0.455037 0.573562
|
||||||
vt 0.568233 0.855441
|
vt 0.568233 0.855441
|
||||||
vt 0.511748 0.806460
|
vt 0.511748 0.806460
|
||||||
vt 0.500965 0.815215
|
vt 0.500965 0.815215
|
||||||
@ -1267,70 +1285,70 @@ f 208/361/1 226/388/1 228/387/1
|
|||||||
f 209/311/1 227/389/1 220/374/1
|
f 209/311/1 227/389/1 220/374/1
|
||||||
f 200/335/1 199/334/1 217/386/1
|
f 200/335/1 199/334/1 217/386/1
|
||||||
f 216/337/1 234/382/1 225/383/1
|
f 216/337/1 234/382/1 225/383/1
|
||||||
f 251/390/1 237/372/1 241/391/1
|
f 251/390/1 237/391/1 241/392/1
|
||||||
f 221/392/15 239/393/15 240/394/15
|
f 221/393/15 239/394/15 240/395/15
|
||||||
f 230/395/10 248/373/10 249/396/10
|
f 230/396/10 248/373/10 249/397/10
|
||||||
f 231/397/27 249/396/27 250/398/27
|
f 231/398/27 249/397/27 250/399/27
|
||||||
f 223/399/18 241/391/18 242/400/18
|
f 223/400/18 241/401/18 242/402/18
|
||||||
f 233/401/30 251/390/30 252/402/30
|
f 233/403/30 251/404/30 252/405/30
|
||||||
f 225/403/33 243/404/33 244/405/33
|
f 225/406/33 243/407/33 244/408/33
|
||||||
f 218/406/3 236/407/3 239/393/3
|
f 218/409/3 236/410/3 239/394/3
|
||||||
f 224/408/7 242/400/7 245/409/7
|
f 224/411/7 242/402/7 245/412/7
|
||||||
f 229/410/4 247/411/4 235/412/4
|
f 229/413/4 247/414/4 235/415/4
|
||||||
f 229/413/36 228/414/36 246/415/36
|
f 229/416/36 228/417/36 246/418/36
|
||||||
f 226/416/5 244/405/5 246/415/5
|
f 226/419/5 244/408/5 246/418/5
|
||||||
f 220/417/21 227/418/21 245/409/21
|
f 220/420/21 227/421/21 245/412/21
|
||||||
f 217/419/11 235/412/11 236/407/11
|
f 217/422/11 235/415/11 236/410/11
|
||||||
f 234/420/8 252/402/8 243/404/8
|
f 234/423/8 252/405/8 243/407/8
|
||||||
f 222/421/2 240/394/2 241/391/2
|
f 222/424/2 240/395/2 241/401/2
|
||||||
f 220/422/6 238/423/6 237/372/6
|
f 220/425/6 238/426/6 237/372/6
|
||||||
f 233/424/9 232/425/9 250/398/9
|
f 233/427/9 232/428/9 250/399/9
|
||||||
f 262/426/57 272/427/57 271/428/57
|
f 262/429/57 272/430/57 271/431/57
|
||||||
f 274/429/58 273/430/58 254/431/58
|
f 274/432/58 273/433/58 254/434/58
|
||||||
f 276/432/59 275/433/59 256/434/59
|
f 276/435/59 275/436/59 256/437/59
|
||||||
f 257/435/60 278/436/60 277/437/60
|
f 257/438/60 278/439/60 277/440/60
|
||||||
f 280/438/61 279/439/61 260/440/61
|
f 280/441/61 279/442/61 260/443/61
|
||||||
f 264/441/62 282/442/62 281/443/62
|
f 264/444/62 282/445/62 281/446/62
|
||||||
f 284/444/63 283/445/63 265/446/63
|
f 284/447/63 283/448/63 265/449/63
|
||||||
f 286/447/64 285/448/64 267/449/64
|
f 286/450/64 285/451/64 267/452/64
|
||||||
f 270/450/65 288/451/65 287/452/65
|
f 270/453/65 288/454/65 287/455/65
|
||||||
f 290/453/66 257/435/66 258/454/66
|
f 290/456/66 257/438/66 258/457/66
|
||||||
f 293/455/67 294/456/67 262/426/67
|
f 293/458/67 294/459/67 262/429/67
|
||||||
f 292/457/68 253/458/68 254/431/68
|
f 292/460/68 253/461/68 254/434/68
|
||||||
f 297/459/69 298/460/69 266/461/69
|
f 297/462/69 298/463/69 266/464/69
|
||||||
f 263/462/70 295/463/70 296/464/70
|
f 263/465/70 295/466/70 296/467/70
|
||||||
f 300/465/71 255/466/71 256/434/71
|
f 300/468/71 255/469/71 256/437/71
|
||||||
f 302/467/72 259/468/72 260/440/72
|
f 302/470/72 259/471/72 260/443/72
|
||||||
f 303/469/73 304/470/73 270/450/73
|
f 303/472/73 304/473/73 270/453/73
|
||||||
f 305/471/74 306/472/74 268/473/74
|
f 305/474/74 306/475/74 268/476/74
|
||||||
f 286/447/18 322/474/18 321/475/18
|
f 286/450/18 322/477/18 321/478/18
|
||||||
f 288/451/15 324/476/15 323/477/15
|
f 288/454/15 324/479/15 323/480/15
|
||||||
f 280/438/11 316/478/11 315/479/11
|
f 280/441/11 316/481/11 315/482/11
|
||||||
f 275/433/36 276/432/36 312/480/36
|
f 275/436/36 276/435/36 312/483/36
|
||||||
f 284/444/33 320/481/33 319/482/33
|
f 284/447/33 320/484/33 319/485/33
|
||||||
f 317/483/75 295/484/75 263/462/75
|
f 317/486/75 295/487/75 263/465/75
|
||||||
f 264/441/76 296/485/76 318/486/76
|
f 264/444/76 296/488/76 318/489/76
|
||||||
f 281/443/30 282/442/30 318/487/30
|
f 281/446/30 282/445/30 318/490/30
|
||||||
f 278/436/21 314/488/21 313/489/21
|
f 278/439/21 314/491/21 313/492/21
|
||||||
f 274/429/24 310/490/24 309/491/24
|
f 274/432/24 310/493/24 309/494/24
|
||||||
f 272/427/27 308/492/27 307/493/27
|
f 272/430/27 308/495/27 307/496/27
|
||||||
f 262/426/77 294/494/77 308/495/77
|
f 262/429/77 294/497/77 308/498/77
|
||||||
f 307/496/78 293/497/78 261/498/78
|
f 307/499/78 293/500/78 261/501/78
|
||||||
f 309/499/79 291/500/79 254/431/79
|
f 309/502/79 291/503/79 254/434/79
|
||||||
f 253/458/80 292/501/80 310/502/80
|
f 253/461/80 292/504/80 310/505/80
|
||||||
f 266/461/81 298/503/81 320/504/81
|
f 266/464/81 298/506/81 320/507/81
|
||||||
f 319/505/82 297/506/82 265/446/82
|
f 319/508/82 297/509/82 265/449/82
|
||||||
f 255/466/83 300/507/83 312/508/83
|
f 255/469/83 300/510/83 312/511/83
|
||||||
f 311/509/84 299/510/84 256/434/84
|
f 311/512/84 299/513/84 256/437/84
|
||||||
f 259/468/85 302/511/85 316/512/85
|
f 259/471/85 302/514/85 316/515/85
|
||||||
f 315/513/86 301/514/86 260/440/86
|
f 315/516/86 301/517/86 260/443/86
|
||||||
f 270/450/87 304/515/87 324/516/87
|
f 270/453/87 304/518/87 324/519/87
|
||||||
f 323/517/88 303/518/88 269/519/88
|
f 323/520/88 303/521/88 269/522/88
|
||||||
f 268/473/89 306/520/89 322/521/89
|
f 268/476/89 306/523/89 322/524/89
|
||||||
f 321/522/90 305/523/90 267/449/90
|
f 321/525/90 305/526/90 267/452/90
|
||||||
f 313/524/91 289/525/91 258/454/91
|
f 313/527/91 289/528/91 258/457/91
|
||||||
f 257/435/92 290/526/92 314/527/92
|
f 257/438/92 290/529/92 314/530/92
|
||||||
f 33/528/14 41/123/14 47/529/14
|
f 33/531/14 41/123/14 47/532/14
|
||||||
f 52/141/1 48/1/1 2/3/1
|
f 52/141/1 48/1/1 2/3/1
|
||||||
f 7/2/1 48/1/1 8/5/1
|
f 7/2/1 48/1/1 8/5/1
|
||||||
f 46/4/1 42/6/1 8/5/1
|
f 46/4/1 42/6/1 8/5/1
|
||||||
@ -1340,89 +1358,89 @@ f 36/10/1 34/12/1 19/11/1
|
|||||||
f 20/13/1 34/12/1 25/15/1
|
f 20/13/1 34/12/1 25/15/1
|
||||||
f 30/14/1 28/16/1 25/15/1
|
f 30/14/1 28/16/1 25/15/1
|
||||||
f 26/17/1 28/16/1 31/19/1
|
f 26/17/1 28/16/1 31/19/1
|
||||||
f 11/530/2 12/20/2 15/22/2
|
f 11/533/2 12/20/2 15/22/2
|
||||||
f 9/531/3 5/23/3 10/25/3
|
f 9/534/3 5/23/3 10/25/3
|
||||||
f 3/532/4 53/26/4 4/28/4
|
f 3/535/4 53/26/4 4/28/4
|
||||||
f 52/533/5 51/29/5 48/31/5
|
f 52/536/5 51/29/5 48/31/5
|
||||||
f 27/534/6 23/32/6 28/34/6
|
f 27/537/6 23/32/6 28/34/6
|
||||||
f 21/535/7 17/35/7 22/37/7
|
f 21/538/7 17/35/7 22/37/7
|
||||||
f 45/536/8 41/38/8 46/40/8
|
f 45/539/8 41/38/8 46/40/8
|
||||||
f 35/537/9 36/41/9 39/43/9
|
f 35/540/9 36/41/9 39/43/9
|
||||||
f 1/50/1 50/44/1 54/46/1
|
f 1/50/1 50/44/1 54/46/1
|
||||||
f 33/538/10 29/47/10 34/49/10
|
f 33/541/10 29/47/10 34/49/10
|
||||||
f 52/141/1 2/3/1 54/46/1
|
f 52/141/1 2/3/1 54/46/1
|
||||||
f 55/55/11 56/51/11 58/53/11
|
f 55/55/11 56/51/11 58/53/11
|
||||||
f 3/539/12 4/54/12 55/55/12
|
f 3/542/12 4/54/12 55/55/12
|
||||||
f 6/152/1 57/56/1 4/45/1
|
f 6/152/1 57/56/1 4/45/1
|
||||||
f 5/23/13 58/53/13 6/24/13
|
f 5/23/13 58/53/13 6/24/13
|
||||||
f 3/540/14 55/58/14 5/60/14
|
f 3/543/14 55/58/14 5/60/14
|
||||||
f 59/65/15 60/61/15 62/63/15
|
f 59/65/15 60/61/15 62/63/15
|
||||||
f 9/541/16 10/64/16 59/65/16
|
f 9/544/16 10/64/16 59/65/16
|
||||||
f 12/149/1 61/66/1 10/68/1
|
f 12/149/1 61/66/1 10/68/1
|
||||||
f 12/542/17 11/69/17 61/62/17
|
f 12/545/17 11/69/17 61/62/17
|
||||||
f 9/543/14 59/70/14 11/72/14
|
f 9/546/14 59/70/14 11/72/14
|
||||||
f 63/76/18 64/73/18 66/75/18
|
f 63/76/18 64/73/18 66/75/18
|
||||||
f 16/544/19 64/73/19 15/77/19
|
f 16/547/19 64/73/19 15/77/19
|
||||||
f 16/147/1 18/78/1 64/80/1
|
f 16/147/1 18/78/1 64/80/1
|
||||||
f 17/35/20 66/75/20 18/36/20
|
f 17/35/20 66/75/20 18/36/20
|
||||||
f 15/545/14 63/81/14 17/83/14
|
f 15/548/14 63/81/14 17/83/14
|
||||||
f 70/90/21 67/84/21 69/86/21
|
f 70/90/21 67/84/21 69/86/21
|
||||||
f 22/546/22 68/85/22 21/87/22
|
f 22/549/22 68/85/22 21/87/22
|
||||||
f 22/145/1 24/18/1 68/89/1
|
f 22/145/1 24/18/1 68/89/1
|
||||||
f 23/32/23 70/90/23 24/33/23
|
f 23/32/23 70/90/23 24/33/23
|
||||||
f 23/547/14 21/91/14 70/93/14
|
f 23/550/14 21/91/14 70/93/14
|
||||||
f 74/100/24 71/94/24 73/96/24
|
f 74/100/24 71/94/24 73/96/24
|
||||||
f 28/548/25 72/95/25 27/97/25
|
f 28/551/25 72/95/25 27/97/25
|
||||||
f 28/16/1 30/14/1 72/99/1
|
f 28/16/1 30/14/1 72/99/1
|
||||||
f 29/47/26 74/100/26 30/48/26
|
f 29/47/26 74/100/26 30/48/26
|
||||||
f 29/549/14 27/101/14 74/103/14
|
f 29/552/14 27/101/14 74/103/14
|
||||||
f 75/107/27 76/104/27 78/106/27
|
f 75/107/27 76/104/27 78/106/27
|
||||||
f 34/550/28 76/104/28 33/108/28
|
f 34/553/28 76/104/28 33/108/28
|
||||||
f 36/10/1 77/109/1 34/12/1
|
f 36/10/1 77/109/1 34/12/1
|
||||||
f 35/537/29 78/106/29 36/41/29
|
f 35/540/29 78/106/29 36/41/29
|
||||||
f 33/528/14 75/111/14 35/113/14
|
f 33/531/14 75/111/14 35/113/14
|
||||||
f 79/117/30 80/114/30 82/116/30
|
f 79/117/30 80/114/30 82/116/30
|
||||||
f 40/551/31 80/114/31 39/118/31
|
f 40/554/31 80/114/31 39/118/31
|
||||||
f 42/6/1 81/119/1 40/8/1
|
f 42/6/1 81/119/1 40/8/1
|
||||||
f 41/38/32 82/116/32 42/39/32
|
f 41/38/32 82/116/32 42/39/32
|
||||||
f 39/552/14 79/121/14 41/123/14
|
f 39/555/14 79/121/14 41/123/14
|
||||||
f 83/127/33 84/124/33 86/126/33
|
f 83/127/33 84/124/33 86/126/33
|
||||||
f 46/553/34 84/124/34 45/128/34
|
f 46/556/34 84/124/34 45/128/34
|
||||||
f 48/1/1 85/129/1 46/4/1
|
f 48/1/1 85/129/1 46/4/1
|
||||||
f 47/30/35 86/126/35 48/31/35
|
f 47/30/35 86/126/35 48/31/35
|
||||||
f 47/529/14 45/131/14 86/133/14
|
f 47/532/14 45/131/14 86/133/14
|
||||||
f 87/138/36 88/134/36 90/136/36
|
f 87/138/36 88/134/36 90/136/36
|
||||||
f 51/554/37 52/137/37 87/138/37
|
f 51/557/37 52/137/37 87/138/37
|
||||||
f 54/46/1 89/139/1 52/141/1
|
f 54/46/1 89/139/1 52/141/1
|
||||||
f 54/27/38 53/26/38 89/135/38
|
f 54/27/38 53/26/38 89/135/38
|
||||||
f 51/555/14 87/142/14 53/144/14
|
f 51/558/14 87/142/14 53/144/14
|
||||||
f 32/556/1 31/19/1 22/145/1
|
f 32/559/1 31/19/1 22/145/1
|
||||||
f 32/556/1 22/145/1 37/146/1
|
f 32/559/1 22/145/1 37/146/1
|
||||||
f 18/78/1 16/147/1 37/146/1
|
f 18/78/1 16/147/1 37/146/1
|
||||||
f 38/148/1 16/147/1 43/150/1
|
f 38/148/1 16/147/1 43/150/1
|
||||||
f 10/68/1 44/151/1 12/149/1
|
f 10/68/1 44/151/1 12/149/1
|
||||||
f 49/153/1 44/151/1 6/152/1
|
f 49/153/1 44/151/1 6/152/1
|
||||||
f 6/152/1 4/45/1 49/153/1
|
f 6/152/1 4/45/1 49/153/1
|
||||||
f 25/557/39 26/154/39 91/156/39
|
f 25/560/39 26/154/39 91/156/39
|
||||||
f 96/191/1 95/157/1 114/159/1
|
f 96/191/1 95/157/1 114/159/1
|
||||||
f 49/558/40 50/160/40 105/162/40
|
f 49/561/40 50/160/40 105/162/40
|
||||||
f 92/195/41 20/163/41 91/156/41
|
f 92/195/41 20/163/41 91/156/41
|
||||||
f 100/186/42 32/165/42 99/167/42
|
f 100/186/42 32/165/42 99/167/42
|
||||||
f 1/559/43 2/168/43 93/170/43
|
f 1/562/43 2/168/43 93/170/43
|
||||||
f 7/560/44 8/171/44 101/173/44
|
f 7/563/44 8/171/44 101/173/44
|
||||||
f 96/191/45 14/174/45 95/157/45
|
f 96/191/45 14/174/45 95/157/45
|
||||||
f 50/561/46 1/176/46 104/161/46
|
f 50/564/46 1/176/46 104/161/46
|
||||||
f 103/155/47 26/177/47 102/179/47
|
f 103/155/47 26/177/47 102/179/47
|
||||||
f 8/562/48 13/180/48 98/172/48
|
f 8/565/48 13/180/48 98/172/48
|
||||||
f 44/563/49 49/182/49 106/183/49
|
f 44/566/49 49/182/49 106/183/49
|
||||||
f 2/564/50 7/184/50 94/169/50
|
f 2/567/50 7/184/50 94/169/50
|
||||||
f 31/565/51 32/185/51 102/179/51
|
f 31/568/51 32/185/51 102/179/51
|
||||||
f 108/193/52 38/187/52 107/189/52
|
f 108/193/52 38/187/52 107/189/52
|
||||||
f 13/566/53 14/190/53 97/181/53
|
f 13/569/53 14/190/53 97/181/53
|
||||||
f 37/567/54 38/192/54 99/167/54
|
f 37/570/54 38/192/54 99/167/54
|
||||||
f 19/568/55 20/194/55 95/157/55
|
f 19/571/55 20/194/55 95/157/55
|
||||||
f 107/189/56 43/196/56 106/183/56
|
f 107/189/56 43/196/56 106/183/56
|
||||||
f 116/569/18 115/198/18 134/200/18
|
f 116/572/18 115/198/18 134/200/18
|
||||||
f 123/202/1 105/162/1 122/201/1
|
f 123/202/1 105/162/1 122/201/1
|
||||||
f 106/183/1 105/162/1 124/203/1
|
f 106/183/1 105/162/1 124/203/1
|
||||||
f 98/172/1 97/181/1 116/205/1
|
f 98/172/1 97/181/1 116/205/1
|
||||||
@ -1441,24 +1459,24 @@ f 111/216/1 93/170/1 112/215/1
|
|||||||
f 125/206/1 107/189/1 124/203/1
|
f 125/206/1 107/189/1 124/203/1
|
||||||
f 104/161/1 93/170/1 122/201/1
|
f 104/161/1 93/170/1 122/201/1
|
||||||
f 154/263/1 136/217/1 153/219/1
|
f 154/263/1 136/217/1 153/219/1
|
||||||
f 126/570/30 125/220/30 144/222/30
|
f 126/573/30 125/220/30 144/222/30
|
||||||
f 118/571/33 117/223/33 136/217/33
|
f 118/574/33 117/223/33 136/217/33
|
||||||
f 113/572/3 110/224/3 131/226/3
|
f 113/575/3 110/224/3 131/226/3
|
||||||
f 119/573/7 116/227/7 137/228/7
|
f 119/576/7 116/227/7 137/228/7
|
||||||
f 109/574/4 121/229/4 127/231/4
|
f 109/577/4 121/229/4 127/231/4
|
||||||
f 121/575/36 120/232/36 139/230/36
|
f 121/578/36 120/232/36 139/230/36
|
||||||
f 120/576/5 118/234/5 138/233/5
|
f 120/579/5 118/234/5 138/233/5
|
||||||
f 112/577/21 119/235/21 130/236/21
|
f 112/580/21 119/235/21 130/236/21
|
||||||
f 110/578/11 109/237/11 128/225/11
|
f 110/581/11 109/237/11 128/225/11
|
||||||
f 117/579/8 126/238/8 135/218/8
|
f 117/582/8 126/238/8 135/218/8
|
||||||
f 115/580/2 114/239/2 133/199/2
|
f 115/583/2 114/239/2 133/199/2
|
||||||
f 111/581/6 112/241/6 129/242/6
|
f 111/584/6 112/241/6 129/242/6
|
||||||
f 125/582/9 124/243/9 143/221/9
|
f 125/585/9 124/243/9 143/221/9
|
||||||
f 122/583/24 111/245/24 140/246/24
|
f 122/586/24 111/245/24 140/246/24
|
||||||
f 132/240/15 114/247/15 131/226/15
|
f 132/240/15 114/247/15 131/226/15
|
||||||
f 141/252/10 123/249/10 140/246/10
|
f 141/252/10 123/249/10 140/246/10
|
||||||
f 124/584/27 123/251/27 142/244/27
|
f 124/587/27 123/251/27 142/244/27
|
||||||
f 155/585/33 152/253/33 173/255/33
|
f 155/588/33 152/253/33 173/255/33
|
||||||
f 131/226/1 128/225/1 149/257/1
|
f 131/226/1 128/225/1 149/257/1
|
||||||
f 137/228/1 134/200/1 155/259/1
|
f 137/228/1 134/200/1 155/259/1
|
||||||
f 127/231/1 139/230/1 145/261/1
|
f 127/231/1 139/230/1 145/261/1
|
||||||
@ -1477,24 +1495,24 @@ f 142/244/1 141/252/1 160/269/1
|
|||||||
f 134/200/1 133/199/1 152/258/1
|
f 134/200/1 133/199/1 152/258/1
|
||||||
f 162/265/1 144/222/1 161/272/1
|
f 162/265/1 144/222/1 161/272/1
|
||||||
f 193/329/1 175/273/1 192/275/1
|
f 193/329/1 175/273/1 192/275/1
|
||||||
f 145/586/24 157/276/24 163/277/24
|
f 145/589/24 157/276/24 163/277/24
|
||||||
f 157/587/6 156/278/6 175/273/6
|
f 157/590/6 156/278/6 175/273/6
|
||||||
f 156/588/21 154/279/21 174/274/21
|
f 156/591/21 154/279/21 174/274/21
|
||||||
f 148/589/5 155/281/5 166/282/5
|
f 148/592/5 155/281/5 166/282/5
|
||||||
f 146/590/10 145/283/10 164/284/10
|
f 146/593/10 145/283/10 164/284/10
|
||||||
f 153/591/18 162/285/18 171/287/18
|
f 153/594/18 162/285/18 171/287/18
|
||||||
f 151/592/30 150/288/30 169/290/30
|
f 151/595/30 150/288/30 169/290/30
|
||||||
f 165/297/36 147/291/36 166/282/36
|
f 165/297/36 147/291/36 166/282/36
|
||||||
f 179/306/15 161/293/15 178/295/15
|
f 179/306/15 161/293/15 178/295/15
|
||||||
f 158/593/4 147/296/4 176/298/4
|
f 158/596/4 147/296/4 176/298/4
|
||||||
f 150/594/9 149/299/9 168/289/9
|
f 150/597/9 149/299/9 168/289/9
|
||||||
f 159/595/11 158/301/11 177/302/11
|
f 159/598/11 158/301/11 177/302/11
|
||||||
f 160/596/3 159/303/3 178/295/3
|
f 160/599/3 159/303/3 178/295/3
|
||||||
f 152/597/8 151/304/8 170/254/8
|
f 152/600/8 151/304/8 170/254/8
|
||||||
f 162/598/2 161/305/2 180/286/2
|
f 162/601/2 161/305/2 180/286/2
|
||||||
f 172/280/7 154/307/7 171/287/7
|
f 172/280/7 154/307/7 171/287/7
|
||||||
f 149/599/27 146/309/27 167/300/27
|
f 149/602/27 146/309/27 167/300/27
|
||||||
f 184/600/5 191/310/5 202/312/5
|
f 184/603/5 191/310/5 202/312/5
|
||||||
f 192/275/1 174/274/1 190/313/1
|
f 192/275/1 174/274/1 190/313/1
|
||||||
f 166/282/1 173/255/1 184/315/1
|
f 166/282/1 173/255/1 184/315/1
|
||||||
f 182/328/1 164/284/1 181/316/1
|
f 182/328/1 164/284/1 181/316/1
|
||||||
@ -1513,24 +1531,24 @@ f 167/300/1 164/284/1 185/323/1
|
|||||||
f 191/314/1 173/255/1 188/326/1
|
f 191/314/1 173/255/1 188/326/1
|
||||||
f 163/277/1 175/273/1 181/316/1
|
f 163/277/1 175/273/1 181/316/1
|
||||||
f 205/358/1 204/330/1 223/332/1
|
f 205/358/1 204/330/1 223/332/1
|
||||||
f 182/601/10 181/333/10 200/335/10
|
f 182/604/10 181/333/10 200/335/10
|
||||||
f 189/602/18 198/336/18 207/338/18
|
f 189/605/18 198/336/18 207/338/18
|
||||||
f 205/358/30 187/339/30 204/330/30
|
f 205/358/30 187/339/30 204/330/30
|
||||||
f 201/347/36 183/341/36 202/312/36
|
f 201/347/36 183/341/36 202/312/36
|
||||||
f 197/603/15 196/343/15 215/345/15
|
f 197/606/15 196/343/15 215/345/15
|
||||||
f 194/604/4 183/346/4 212/348/4
|
f 194/607/4 183/346/4 212/348/4
|
||||||
f 186/605/9 185/349/9 204/330/9
|
f 186/608/9 185/349/9 204/330/9
|
||||||
f 213/355/11 195/351/11 212/348/11
|
f 213/355/11 195/351/11 212/348/11
|
||||||
f 214/344/3 196/353/3 213/355/3
|
f 214/344/3 196/353/3 213/355/3
|
||||||
f 206/364/8 188/356/8 205/358/8
|
f 206/364/8 188/356/8 205/358/8
|
||||||
f 198/606/2 197/359/2 216/337/2
|
f 198/609/2 197/359/2 216/337/2
|
||||||
f 190/607/7 189/360/7 208/361/7
|
f 190/610/7 189/360/7 208/361/7
|
||||||
f 185/608/27 182/362/27 203/350/27
|
f 185/611/27 182/362/27 203/350/27
|
||||||
f 191/609/33 188/363/33 209/311/33
|
f 191/612/33 188/363/33 209/311/33
|
||||||
f 181/610/24 193/365/24 199/334/24
|
f 181/613/24 193/365/24 199/334/24
|
||||||
f 193/611/6 192/367/6 211/366/6
|
f 193/614/6 192/367/6 211/366/6
|
||||||
f 210/368/21 192/369/21 208/361/21
|
f 210/368/21 192/369/21 208/361/21
|
||||||
f 230/612/24 219/371/24 248/373/24
|
f 230/615/24 219/371/24 248/373/24
|
||||||
f 201/347/1 202/312/1 219/375/1
|
f 201/347/1 202/312/1 219/375/1
|
||||||
f 233/381/1 215/345/1 232/376/1
|
f 233/381/1 215/345/1 232/376/1
|
||||||
f 212/348/1 201/347/1 230/377/1
|
f 212/348/1 201/347/1 230/377/1
|
||||||
@ -1548,95 +1566,95 @@ f 210/368/1 208/361/1 228/387/1
|
|||||||
f 202/312/1 209/311/1 220/374/1
|
f 202/312/1 209/311/1 220/374/1
|
||||||
f 218/384/1 200/335/1 217/386/1
|
f 218/384/1 200/335/1 217/386/1
|
||||||
f 207/338/1 216/337/1 225/383/1
|
f 207/338/1 216/337/1 225/383/1
|
||||||
f 239/393/1 236/407/1 235/412/1
|
f 239/616/1 236/617/1 235/618/1
|
||||||
f 235/412/1 247/411/1 239/393/1
|
f 235/618/1 247/619/1 239/616/1
|
||||||
f 246/415/1 244/405/1 251/390/1
|
f 246/620/1 244/621/1 251/390/1
|
||||||
f 243/404/1 252/402/1 251/390/1
|
f 243/622/1 252/623/1 251/390/1
|
||||||
f 251/390/1 250/398/1 249/396/1
|
f 251/390/1 250/624/1 249/625/1
|
||||||
f 249/396/1 248/373/1 237/372/1
|
f 249/625/1 248/626/1 237/391/1
|
||||||
f 237/372/1 238/423/1 245/409/1
|
f 237/391/1 238/627/1 245/628/1
|
||||||
f 245/409/1 242/400/1 241/391/1
|
f 245/628/1 242/629/1 241/392/1
|
||||||
f 241/391/1 240/394/1 246/415/1
|
f 241/392/1 240/630/1 246/620/1
|
||||||
f 239/393/1 247/411/1 246/415/1
|
f 239/616/1 247/619/1 246/620/1
|
||||||
f 244/405/1 243/404/1 251/390/1
|
f 244/621/1 243/622/1 251/390/1
|
||||||
f 251/390/1 249/396/1 237/372/1
|
f 251/390/1 249/625/1 237/391/1
|
||||||
f 237/372/1 245/409/1 241/391/1
|
f 237/391/1 245/628/1 241/392/1
|
||||||
f 240/394/1 239/393/1 246/415/1
|
f 240/630/1 239/616/1 246/620/1
|
||||||
f 246/415/1 251/390/1 241/391/1
|
f 246/620/1 251/390/1 241/392/1
|
||||||
f 222/613/15 221/392/15 240/394/15
|
f 222/631/15 221/393/15 240/395/15
|
||||||
f 231/614/10 230/395/10 249/396/10
|
f 231/632/10 230/396/10 249/397/10
|
||||||
f 232/615/27 231/397/27 250/398/27
|
f 232/633/27 231/398/27 250/399/27
|
||||||
f 224/616/18 223/399/18 242/400/18
|
f 224/634/18 223/400/18 242/402/18
|
||||||
f 234/617/30 233/401/30 252/402/30
|
f 234/635/30 233/403/30 252/405/30
|
||||||
f 226/618/33 225/403/33 244/405/33
|
f 226/636/33 225/406/33 244/408/33
|
||||||
f 221/619/3 218/406/3 239/393/3
|
f 221/637/3 218/409/3 239/394/3
|
||||||
f 227/620/7 224/408/7 245/409/7
|
f 227/638/7 224/411/7 245/412/7
|
||||||
f 217/621/4 229/410/4 235/412/4
|
f 217/639/4 229/413/4 235/415/4
|
||||||
f 247/411/36 229/413/36 246/415/36
|
f 247/414/36 229/416/36 246/418/36
|
||||||
f 228/622/5 226/416/5 246/415/5
|
f 228/640/5 226/419/5 246/418/5
|
||||||
f 238/423/21 220/417/21 245/409/21
|
f 238/426/21 220/420/21 245/412/21
|
||||||
f 218/623/11 217/419/11 236/407/11
|
f 218/641/11 217/422/11 236/410/11
|
||||||
f 225/624/8 234/420/8 243/404/8
|
f 225/642/8 234/423/8 243/407/8
|
||||||
f 223/625/2 222/421/2 241/391/2
|
f 223/643/2 222/424/2 241/401/2
|
||||||
f 219/626/6 220/422/6 237/372/6
|
f 219/644/6 220/425/6 237/372/6
|
||||||
f 251/390/9 233/424/9 250/398/9
|
f 251/404/9 233/427/9 250/399/9
|
||||||
f 261/498/57 262/426/57 271/428/57
|
f 261/501/57 262/429/57 271/431/57
|
||||||
f 253/458/58 274/429/58 254/431/58
|
f 253/461/58 274/432/58 254/434/58
|
||||||
f 255/466/59 276/432/59 256/434/59
|
f 255/469/59 276/435/59 256/437/59
|
||||||
f 258/454/60 257/435/60 277/437/60
|
f 258/457/60 257/438/60 277/440/60
|
||||||
f 259/468/61 280/438/61 260/440/61
|
f 259/471/61 280/441/61 260/443/61
|
||||||
f 263/462/62 264/441/62 281/443/62
|
f 263/465/62 264/444/62 281/446/62
|
||||||
f 266/461/63 284/444/63 265/446/63
|
f 266/464/63 284/447/63 265/449/63
|
||||||
f 268/473/64 286/447/64 267/449/64
|
f 268/476/64 286/450/64 267/452/64
|
||||||
f 269/519/65 270/450/65 287/452/65
|
f 269/522/65 270/453/65 287/455/65
|
||||||
f 289/627/66 290/453/66 258/454/66
|
f 289/645/66 290/456/66 258/457/66
|
||||||
f 261/498/67 293/455/67 262/426/67
|
f 261/501/67 293/458/67 262/429/67
|
||||||
f 291/628/68 292/457/68 254/431/68
|
f 291/646/68 292/460/68 254/434/68
|
||||||
f 265/446/69 297/459/69 266/461/69
|
f 265/449/69 297/462/69 266/464/69
|
||||||
f 264/441/70 263/462/70 296/464/70
|
f 264/444/70 263/465/70 296/467/70
|
||||||
f 299/629/71 300/465/71 256/434/71
|
f 299/647/71 300/468/71 256/437/71
|
||||||
f 301/630/72 302/467/72 260/440/72
|
f 301/648/72 302/470/72 260/443/72
|
||||||
f 269/519/73 303/469/73 270/450/73
|
f 269/522/73 303/472/73 270/453/73
|
||||||
f 267/449/74 305/471/74 268/473/74
|
f 267/452/74 305/474/74 268/476/74
|
||||||
f 285/448/18 286/447/18 321/475/18
|
f 285/451/18 286/450/18 321/478/18
|
||||||
f 287/452/15 288/451/15 323/477/15
|
f 287/455/15 288/454/15 323/480/15
|
||||||
f 279/439/11 280/438/11 315/479/11
|
f 279/442/11 280/441/11 315/482/11
|
||||||
f 311/631/36 275/433/36 312/480/36
|
f 311/649/36 275/436/36 312/483/36
|
||||||
f 283/445/33 284/444/33 319/482/33
|
f 283/448/33 284/447/33 319/485/33
|
||||||
f 281/443/75 317/483/75 263/462/75
|
f 281/446/75 317/486/75 263/465/75
|
||||||
f 282/442/76 264/441/76 318/486/76
|
f 282/445/76 264/444/76 318/489/76
|
||||||
f 317/632/30 281/443/30 318/487/30
|
f 317/650/30 281/446/30 318/490/30
|
||||||
f 277/437/21 278/436/21 313/489/21
|
f 277/440/21 278/439/21 313/492/21
|
||||||
f 273/430/24 274/429/24 309/491/24
|
f 273/433/24 274/432/24 309/494/24
|
||||||
f 271/428/27 272/427/27 307/493/27
|
f 271/431/27 272/430/27 307/496/27
|
||||||
f 272/427/77 262/426/77 308/495/77
|
f 272/430/77 262/429/77 308/498/77
|
||||||
f 271/428/78 307/496/78 261/498/78
|
f 271/431/78 307/499/78 261/501/78
|
||||||
f 273/430/79 309/499/79 254/431/79
|
f 273/433/79 309/502/79 254/434/79
|
||||||
f 274/429/80 253/458/80 310/502/80
|
f 274/432/80 253/461/80 310/505/80
|
||||||
f 284/444/81 266/461/81 320/504/81
|
f 284/447/81 266/464/81 320/507/81
|
||||||
f 283/445/82 319/505/82 265/446/82
|
f 283/448/82 319/508/82 265/449/82
|
||||||
f 276/432/83 255/466/83 312/508/83
|
f 276/435/83 255/469/83 312/511/83
|
||||||
f 275/433/84 311/509/84 256/434/84
|
f 275/436/84 311/512/84 256/437/84
|
||||||
f 280/438/85 259/468/85 316/512/85
|
f 280/441/85 259/471/85 316/515/85
|
||||||
f 279/439/86 315/513/86 260/440/86
|
f 279/442/86 315/516/86 260/443/86
|
||||||
f 288/451/87 270/450/87 324/516/87
|
f 288/454/87 270/453/87 324/519/87
|
||||||
f 287/452/88 323/517/88 269/519/88
|
f 287/455/88 323/520/88 269/522/88
|
||||||
f 286/447/89 268/473/89 322/521/89
|
f 286/450/89 268/476/89 322/524/89
|
||||||
f 285/448/90 321/522/90 267/449/90
|
f 285/451/90 321/525/90 267/452/90
|
||||||
f 277/437/91 313/524/91 258/454/91
|
f 277/440/91 313/527/91 258/457/91
|
||||||
f 278/436/92 257/435/92 314/527/92
|
f 278/439/92 257/438/92 314/530/92
|
||||||
f 53/144/14 3/540/14 11/72/14
|
f 53/144/14 3/543/14 11/72/14
|
||||||
f 5/60/14 9/543/14 11/72/14
|
f 5/60/14 9/546/14 11/72/14
|
||||||
f 11/72/14 15/545/14 47/529/14
|
f 11/72/14 15/548/14 47/532/14
|
||||||
f 17/83/14 21/91/14 15/545/14
|
f 17/83/14 21/91/14 15/548/14
|
||||||
f 23/547/14 27/101/14 29/549/14
|
f 23/550/14 27/101/14 29/552/14
|
||||||
f 29/549/14 33/528/14 23/547/14
|
f 29/552/14 33/531/14 23/550/14
|
||||||
f 35/113/14 39/552/14 33/528/14
|
f 35/113/14 39/555/14 33/531/14
|
||||||
f 41/123/14 45/131/14 47/529/14
|
f 41/123/14 45/131/14 47/532/14
|
||||||
f 47/529/14 51/555/14 53/144/14
|
f 47/532/14 51/558/14 53/144/14
|
||||||
f 3/540/14 5/60/14 11/72/14
|
f 3/543/14 5/60/14 11/72/14
|
||||||
f 15/545/14 21/91/14 23/547/14
|
f 15/548/14 21/91/14 23/550/14
|
||||||
f 23/547/14 33/528/14 15/545/14
|
f 23/550/14 33/531/14 15/548/14
|
||||||
f 39/552/14 41/123/14 33/528/14
|
f 39/555/14 41/123/14 33/531/14
|
||||||
f 47/529/14 53/144/14 11/72/14
|
f 47/532/14 53/144/14 11/72/14
|
||||||
f 15/545/14 33/528/14 47/529/14
|
f 15/548/14 33/531/14 47/532/14
|
||||||
|
|||||||
57
assets/hbm/models/vault_label.obj
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# Blender v2.76 (sub 0) OBJ File: 'vault_label.blend'
|
||||||
|
# www.blender.org
|
||||||
|
o Cylinder
|
||||||
|
v 0.450000 2.978691 -0.083927
|
||||||
|
v 0.450000 2.920645 -0.243406
|
||||||
|
v 0.450000 2.021473 -0.084857
|
||||||
|
v 0.450000 2.078882 -0.242588
|
||||||
|
v 0.450000 2.812752 -0.371988
|
||||||
|
v 0.450000 2.665775 -0.456845
|
||||||
|
v 0.450000 2.500473 -0.485992
|
||||||
|
v 0.450000 2.333337 -0.456522
|
||||||
|
v 0.450000 2.665775 0.456845
|
||||||
|
v 0.450000 2.812752 0.371988
|
||||||
|
v 0.450000 2.187972 -0.372596
|
||||||
|
v 0.450000 2.920646 0.243405
|
||||||
|
v 0.450000 2.978691 0.083926
|
||||||
|
v 0.450000 2.021473 0.084857
|
||||||
|
v 0.450000 2.078882 0.242587
|
||||||
|
v 0.450000 2.187972 0.372596
|
||||||
|
v 0.450000 2.333337 0.456522
|
||||||
|
v 0.450000 2.500473 0.485992
|
||||||
|
vt 0.037266 0.323502
|
||||||
|
vt 0.586012 0.007394
|
||||||
|
vt 0.992606 0.492912
|
||||||
|
vt 0.877051 0.809440
|
||||||
|
vt 0.746718 0.918803
|
||||||
|
vt 0.585069 0.977638
|
||||||
|
vt 0.414932 0.977638
|
||||||
|
vt 0.253283 0.918803
|
||||||
|
vt 0.122950 0.809441
|
||||||
|
vt 0.036938 0.660464
|
||||||
|
vt 0.007394 0.492912
|
||||||
|
vt 0.122334 0.176159
|
||||||
|
vt 0.254112 0.065584
|
||||||
|
vt 0.413988 0.007394
|
||||||
|
vt 0.745889 0.065585
|
||||||
|
vt 0.877666 0.176159
|
||||||
|
vt 0.962735 0.323502
|
||||||
|
vt 0.963062 0.660464
|
||||||
|
vn 1.000000 -0.000000 -0.000000
|
||||||
|
s off
|
||||||
|
f 17/1/1 3/2/1 7/3/1
|
||||||
|
f 5/4/1 2/5/1 1/6/1
|
||||||
|
f 1/6/1 13/7/1 5/4/1
|
||||||
|
f 12/8/1 10/9/1 17/1/1
|
||||||
|
f 9/10/1 18/11/1 17/1/1
|
||||||
|
f 17/1/1 16/12/1 15/13/1
|
||||||
|
f 15/13/1 14/14/1 3/2/1
|
||||||
|
f 3/2/1 4/15/1 11/16/1
|
||||||
|
f 11/16/1 8/17/1 7/3/1
|
||||||
|
f 7/3/1 6/18/1 12/8/1
|
||||||
|
f 5/4/1 13/7/1 12/8/1
|
||||||
|
f 10/9/1 9/10/1 17/1/1
|
||||||
|
f 17/1/1 15/13/1 3/2/1
|
||||||
|
f 3/2/1 11/16/1 7/3/1
|
||||||
|
f 6/18/1 5/4/1 12/8/1
|
||||||
|
f 12/8/1 17/1/1 7/3/1
|
||||||
BIN
assets/hbm/textures/blocks/vault_door.png
Normal file
|
After Width: | Height: | Size: 428 B |
BIN
assets/hbm/textures/models/stable_cog.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
assets/hbm/textures/models/stable_label.png
Normal file
|
After Width: | Height: | Size: 750 B |
BIN
assets/hbm/textures/models/vault4_cog.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
assets/hbm/textures/models/vault4_label_111.png
Normal file
|
After Width: | Height: | Size: 776 B |
BIN
assets/hbm/textures/models/vault4_label_81.png
Normal file
|
After Width: | Height: | Size: 808 B |
|
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 27 KiB |
BIN
assets/hbm/textures/models/vault_label_101.png
Normal file
|
After Width: | Height: | Size: 909 B |
BIN
assets/hbm/textures/models/vault_label_106.png
Normal file
|
After Width: | Height: | Size: 954 B |
BIN
assets/hbm/textures/models/vault_label_87.png
Normal file
|
After Width: | Height: | Size: 892 B |
@ -519,6 +519,7 @@ public class ModBlocks {
|
|||||||
public static Block dummy_port_radgen;
|
public static Block dummy_port_radgen;
|
||||||
public static Block dummy_block_reactor_small;
|
public static Block dummy_block_reactor_small;
|
||||||
public static Block dummy_port_reactor_small;
|
public static Block dummy_port_reactor_small;
|
||||||
|
public static Block dummy_block_vault;
|
||||||
|
|
||||||
public static Block ntm_dirt;
|
public static Block ntm_dirt;
|
||||||
|
|
||||||
@ -801,7 +802,7 @@ public class ModBlocks {
|
|||||||
seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab);
|
seal_controller = new BlockSeal(Material.iron).setBlockName("seal_controller").setHardness(10.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab);
|
||||||
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");
|
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(100.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":vault_door");
|
vault_door = new VaultDoor(Material.iron).setBlockName("vault_door").setHardness(10.0F).setResistance(10000.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":vault_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");
|
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");
|
||||||
|
|
||||||
@ -920,6 +921,7 @@ public class ModBlocks {
|
|||||||
dummy_port_radgen = new DummyBlockRadGen(Material.iron).setBlockName("dummy_port_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
dummy_port_radgen = new DummyBlockRadGen(Material.iron).setBlockName("dummy_port_radgen").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||||
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_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_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");
|
||||||
|
|
||||||
ntm_dirt = new BlockNTMDirt().setBlockName("ntm_dirt").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName("dirt");
|
ntm_dirt = new BlockNTMDirt().setBlockName("ntm_dirt").setHardness(0.5F).setStepSound(Block.soundTypeGravel).setCreativeTab(null).setBlockTextureName("dirt");
|
||||||
}
|
}
|
||||||
@ -1315,6 +1317,7 @@ public class ModBlocks {
|
|||||||
GameRegistry.registerBlock(dummy_port_radgen, dummy_port_radgen.getUnlocalizedName());
|
GameRegistry.registerBlock(dummy_port_radgen, dummy_port_radgen.getUnlocalizedName());
|
||||||
GameRegistry.registerBlock(dummy_block_reactor_small, dummy_block_reactor_small.getUnlocalizedName());
|
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_port_reactor_small, dummy_port_reactor_small.getUnlocalizedName());
|
||||||
|
GameRegistry.registerBlock(dummy_block_vault, dummy_block_vault.getUnlocalizedName());
|
||||||
|
|
||||||
//Other Technical Blocks
|
//Other Technical Blocks
|
||||||
GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName());
|
GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName());
|
||||||
|
|||||||
129
com/hbm/blocks/machine/DummyBlockVault.java
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
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.main.MainRegistry;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityDummy;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityMachineRadGen;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityVaultDoor;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.BlockContainer;
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class DummyBlockVault extends BlockContainer implements IDummy, IBomb {
|
||||||
|
|
||||||
|
public static boolean safeBreak = false;
|
||||||
|
|
||||||
|
public DummyBlockVault(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.vault_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.isSneaking())
|
||||||
|
{
|
||||||
|
explode(world, x, y, z);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
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;
|
||||||
|
|
||||||
|
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(a, b, c);
|
||||||
|
if(entity != null)
|
||||||
|
{
|
||||||
|
entity.type++;
|
||||||
|
if(entity.type >= entity.maxTypes)
|
||||||
|
entity.type = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(a, b, c);
|
||||||
|
if(entity != null)
|
||||||
|
{
|
||||||
|
entity.tryToggle();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,13 +1,19 @@
|
|||||||
package com.hbm.blocks.machine;
|
package com.hbm.blocks.machine;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.IBomb;
|
||||||
|
import com.hbm.interfaces.IMultiblock;
|
||||||
import com.hbm.tileentity.machine.TileEntityVaultDoor;
|
import com.hbm.tileentity.machine.TileEntityVaultDoor;
|
||||||
|
|
||||||
import net.minecraft.block.BlockContainer;
|
import net.minecraft.block.BlockContainer;
|
||||||
import net.minecraft.block.material.Material;
|
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.tileentity.TileEntity;
|
||||||
|
import net.minecraft.util.MathHelper;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class VaultDoor extends BlockContainer {
|
public class VaultDoor extends BlockContainer implements IBomb, IMultiblock {
|
||||||
|
|
||||||
public VaultDoor(Material p_i45386_1_) {
|
public VaultDoor(Material p_i45386_1_) {
|
||||||
super(p_i45386_1_);
|
super(p_i45386_1_);
|
||||||
@ -33,4 +39,209 @@ public class VaultDoor extends BlockContainer {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void explode(World world, int x, int y, int z) {
|
||||||
|
TileEntityVaultDoor te = (TileEntityVaultDoor) world.getTileEntity(x, y, z);
|
||||||
|
|
||||||
|
te.tryToggle();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) {
|
||||||
|
|
||||||
|
TileEntityVaultDoor te = (TileEntityVaultDoor) 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);
|
||||||
|
|
||||||
|
//frame
|
||||||
|
if(!(te.placeDummy(x + 1, y, z) &&
|
||||||
|
te.placeDummy(x + 2, y, z) &&
|
||||||
|
te.placeDummy(x + 2, y + 1, z) &&
|
||||||
|
te.placeDummy(x + 2, y + 2, z) &&
|
||||||
|
te.placeDummy(x + 2, y + 3, z) &&
|
||||||
|
te.placeDummy(x + 2, y + 4, z) &&
|
||||||
|
te.placeDummy(x + 1, y + 4, z) &&
|
||||||
|
te.placeDummy(x, y + 4, z) &&
|
||||||
|
te.placeDummy(x - 1, y + 4, z) &&
|
||||||
|
te.placeDummy(x - 2, y + 4, z) &&
|
||||||
|
te.placeDummy(x - 2, y + 3, z) &&
|
||||||
|
te.placeDummy(x - 2, y + 2, z) &&
|
||||||
|
te.placeDummy(x - 2, y + 1, z) &&
|
||||||
|
te.placeDummy(x - 2, y, z) &&
|
||||||
|
te.placeDummy(x - 1, y, z) &&
|
||||||
|
//cog
|
||||||
|
te.placeDummy(x - 1, y + 1, z) &&
|
||||||
|
te.placeDummy(x - 1, y + 2, z) &&
|
||||||
|
te.placeDummy(x - 1, y + 3, z) &&
|
||||||
|
te.placeDummy(x, y + 1, z) &&
|
||||||
|
te.placeDummy(x, y + 2, z) &&
|
||||||
|
te.placeDummy(x, y + 3, z) &&
|
||||||
|
te.placeDummy(x + 1, y + 1, z) &&
|
||||||
|
te.placeDummy(x + 1, y + 2, z) &&
|
||||||
|
te.placeDummy(x + 1, y + 3, z) &&
|
||||||
|
//teeth
|
||||||
|
te.placeDummy(x + 2, y, z + 1) &&
|
||||||
|
te.placeDummy(x + 1, y, z + 1) &&
|
||||||
|
te.placeDummy(x, y, z + 1) &&
|
||||||
|
te.placeDummy(x - 1, y, z + 1) &&
|
||||||
|
te.placeDummy(x - 2, y, z + 1))) {
|
||||||
|
|
||||||
|
world.func_147480_a(x, y, z, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(i == 1)
|
||||||
|
{
|
||||||
|
world.setBlockMetadataWithNotify(x, y, z, 5, 2);
|
||||||
|
|
||||||
|
//frame
|
||||||
|
if(!(te.placeDummy(x, y, z + 1) &&
|
||||||
|
te.placeDummy(x, y, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 1, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 2, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 3, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 4, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 4, z + 1) &&
|
||||||
|
te.placeDummy(x, y + 4, z) &&
|
||||||
|
te.placeDummy(x, y + 4, z - 1) &&
|
||||||
|
te.placeDummy(x, y + 4, z - 2) &&
|
||||||
|
te.placeDummy(x, y + 3, z - 2) &&
|
||||||
|
te.placeDummy(x, y + 2, z - 2) &&
|
||||||
|
te.placeDummy(x, y + 1, z - 2) &&
|
||||||
|
te.placeDummy(x, y, z - 2) &&
|
||||||
|
te.placeDummy(x, y, z - 1) &&
|
||||||
|
//cog
|
||||||
|
te.placeDummy(x, y + 1, z - 1) &&
|
||||||
|
te.placeDummy(x, y + 2, z - 1) &&
|
||||||
|
te.placeDummy(x, y + 3, z - 1) &&
|
||||||
|
te.placeDummy(x, y + 1, z) &&
|
||||||
|
te.placeDummy(x, y + 2, z) &&
|
||||||
|
te.placeDummy(x, y + 3, z) &&
|
||||||
|
te.placeDummy(x, y + 1, z + 1) &&
|
||||||
|
te.placeDummy(x, y + 2, z + 1) &&
|
||||||
|
te.placeDummy(x, y + 3, z + 1) &&
|
||||||
|
//teeth
|
||||||
|
te.placeDummy(x - 1, y, z + 2) &&
|
||||||
|
te.placeDummy(x - 1, y, z + 1) &&
|
||||||
|
te.placeDummy(x - 1, y, z) &&
|
||||||
|
te.placeDummy(x - 1, y, z - 1) &&
|
||||||
|
te.placeDummy(x - 1, y, z - 2))) {
|
||||||
|
|
||||||
|
world.func_147480_a(x, y, z, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(i == 2)
|
||||||
|
{
|
||||||
|
world.setBlockMetadataWithNotify(x, y, z, 3, 2);
|
||||||
|
|
||||||
|
//frame
|
||||||
|
if(!(te.placeDummy(x + 1, y, z) &&
|
||||||
|
te.placeDummy(x + 2, y, z) &&
|
||||||
|
te.placeDummy(x + 2, y + 1, z) &&
|
||||||
|
te.placeDummy(x + 2, y + 2, z) &&
|
||||||
|
te.placeDummy(x + 2, y + 3, z) &&
|
||||||
|
te.placeDummy(x + 2, y + 4, z) &&
|
||||||
|
te.placeDummy(x + 1, y + 4, z) &&
|
||||||
|
te.placeDummy(x, y + 4, z) &&
|
||||||
|
te.placeDummy(x - 1, y + 4, z) &&
|
||||||
|
te.placeDummy(x - 2, y + 4, z) &&
|
||||||
|
te.placeDummy(x - 2, y + 3, z) &&
|
||||||
|
te.placeDummy(x - 2, y + 2, z) &&
|
||||||
|
te.placeDummy(x - 2, y + 1, z) &&
|
||||||
|
te.placeDummy(x - 2, y, z) &&
|
||||||
|
te.placeDummy(x - 1, y, z) &&
|
||||||
|
//cog
|
||||||
|
te.placeDummy(x - 1, y + 1, z) &&
|
||||||
|
te.placeDummy(x - 1, y + 2, z) &&
|
||||||
|
te.placeDummy(x - 1, y + 3, z) &&
|
||||||
|
te.placeDummy(x, y + 1, z) &&
|
||||||
|
te.placeDummy(x, y + 2, z) &&
|
||||||
|
te.placeDummy(x, y + 3, z) &&
|
||||||
|
te.placeDummy(x + 1, y + 1, z) &&
|
||||||
|
te.placeDummy(x + 1, y + 2, z) &&
|
||||||
|
te.placeDummy(x + 1, y + 3, z) &&
|
||||||
|
//teeth
|
||||||
|
te.placeDummy(x + 2, y, z - 1) &&
|
||||||
|
te.placeDummy(x + 1, y, z - 1) &&
|
||||||
|
te.placeDummy(x, y, z - 1) &&
|
||||||
|
te.placeDummy(x - 1, y, z - 1) &&
|
||||||
|
te.placeDummy(x - 2, y, z - 1))) {
|
||||||
|
|
||||||
|
world.func_147480_a(x, y, z, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(i == 3)
|
||||||
|
{
|
||||||
|
world.setBlockMetadataWithNotify(x, y, z, 4, 2);
|
||||||
|
|
||||||
|
//frame
|
||||||
|
if(!(te.placeDummy(x, y, z + 1) &&
|
||||||
|
te.placeDummy(x, y, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 1, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 2, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 3, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 4, z + 2) &&
|
||||||
|
te.placeDummy(x, y + 4, z + 1) &&
|
||||||
|
te.placeDummy(x, y + 4, z) &&
|
||||||
|
te.placeDummy(x, y + 4, z - 1) &&
|
||||||
|
te.placeDummy(x, y + 4, z - 2) &&
|
||||||
|
te.placeDummy(x, y + 3, z - 2) &&
|
||||||
|
te.placeDummy(x, y + 2, z - 2) &&
|
||||||
|
te.placeDummy(x, y + 1, z - 2) &&
|
||||||
|
te.placeDummy(x, y, z - 2) &&
|
||||||
|
te.placeDummy(x, y, z - 1) &&
|
||||||
|
//cog
|
||||||
|
te.placeDummy(x, y + 1, z - 1) &&
|
||||||
|
te.placeDummy(x, y + 2, z - 1) &&
|
||||||
|
te.placeDummy(x, y + 3, z - 1) &&
|
||||||
|
te.placeDummy(x, y + 1, z) &&
|
||||||
|
te.placeDummy(x, y + 2, z) &&
|
||||||
|
te.placeDummy(x, y + 3, z) &&
|
||||||
|
te.placeDummy(x, y + 1, z + 1) &&
|
||||||
|
te.placeDummy(x, y + 2, z + 1) &&
|
||||||
|
te.placeDummy(x, y + 3, z + 1) &&
|
||||||
|
//teeth
|
||||||
|
te.placeDummy(x + 1, y, z + 2) &&
|
||||||
|
te.placeDummy(x + 1, y, z + 1) &&
|
||||||
|
te.placeDummy(x + 1, y, z) &&
|
||||||
|
te.placeDummy(x + 1, y, z - 1) &&
|
||||||
|
te.placeDummy(x + 1, y, z - 2))) {
|
||||||
|
|
||||||
|
world.func_147480_a(x, y, z, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||||
|
if(world.isRemote)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
} else if(!player.isSneaking())
|
||||||
|
{
|
||||||
|
|
||||||
|
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(x, y, z);
|
||||||
|
if(entity != null)
|
||||||
|
{
|
||||||
|
entity.tryToggle();
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
|
||||||
|
TileEntityVaultDoor entity = (TileEntityVaultDoor) world.getTileEntity(x, y, z);
|
||||||
|
if(entity != null)
|
||||||
|
{
|
||||||
|
entity.type++;
|
||||||
|
if(entity.type >= entity.maxTypes)
|
||||||
|
entity.type = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2377,6 +2377,16 @@ public class MachineRecipes {
|
|||||||
list.add(new ItemStack(Items.redstone, 4));
|
list.add(new ItemStack(Items.redstone, 4));
|
||||||
list.add(new ItemStack(ModBlocks.steel_roof, 5));
|
list.add(new ItemStack(ModBlocks.steel_roof, 5));
|
||||||
break;
|
break;
|
||||||
|
case BLAST_DOOR:
|
||||||
|
list.add(new ItemStack(ModItems.ingot_steel, 128));
|
||||||
|
list.add(new ItemStack(ModItems.ingot_tungsten, 32));
|
||||||
|
list.add(new ItemStack(ModItems.plate_lead, 48));
|
||||||
|
list.add(new ItemStack(ModItems.plate_advanced_alloy, 8));
|
||||||
|
list.add(new ItemStack(ModItems.plate_polymer, 16));
|
||||||
|
list.add(new ItemStack(ModItems.bolt_tungsten, 18));
|
||||||
|
list.add(new ItemStack(ModItems.bolt_dura_steel, 27));
|
||||||
|
list.add(new ItemStack(ModItems.motor, 5));
|
||||||
|
break;
|
||||||
case CENTRIFUGE:
|
case CENTRIFUGE:
|
||||||
list.add(new ItemStack(ModItems.centrifuge_tower, 1));
|
list.add(new ItemStack(ModItems.centrifuge_tower, 1));
|
||||||
list.add(new ItemStack(ModItems.ingot_steel, 4));
|
list.add(new ItemStack(ModItems.ingot_steel, 4));
|
||||||
@ -3746,6 +3756,9 @@ public class MachineRecipes {
|
|||||||
case HATCH_CONTROLLER:
|
case HATCH_CONTROLLER:
|
||||||
output = new ItemStack(ModBlocks.seal_controller, 1);
|
output = new ItemStack(ModBlocks.seal_controller, 1);
|
||||||
break;
|
break;
|
||||||
|
case BLAST_DOOR:
|
||||||
|
output = new ItemStack(ModBlocks.vault_door, 1);
|
||||||
|
break;
|
||||||
case CENTRIFUGE:
|
case CENTRIFUGE:
|
||||||
output = new ItemStack(ModBlocks.machine_centrifuge, 1);
|
output = new ItemStack(ModBlocks.machine_centrifuge, 1);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@ -1142,6 +1142,7 @@ public class ModItems {
|
|||||||
|
|
||||||
public static Item igniter;
|
public static Item igniter;
|
||||||
public static Item detonator;
|
public static Item detonator;
|
||||||
|
public static Item detonator_multi;
|
||||||
public static Item crate_caller;
|
public static Item crate_caller;
|
||||||
public static Item meteor_remote;
|
public static Item meteor_remote;
|
||||||
public static Item remote;
|
public static Item remote;
|
||||||
@ -2188,6 +2189,7 @@ public class ModItems {
|
|||||||
|
|
||||||
igniter = new ItemCustomLore().setUnlocalizedName("igniter").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":trigger");
|
igniter = new ItemCustomLore().setUnlocalizedName("igniter").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":trigger");
|
||||||
detonator = new ItemDetonator().setUnlocalizedName("detonator").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator");
|
detonator = new ItemDetonator().setUnlocalizedName("detonator").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator");
|
||||||
|
detonator_multi = new ItemMultiDetonator().setUnlocalizedName("detonator_multi").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":detonator_multi");
|
||||||
crate_caller = new ItemCrateCaller().setUnlocalizedName("crate_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crate_caller");
|
crate_caller = new ItemCrateCaller().setUnlocalizedName("crate_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":crate_caller");
|
||||||
meteor_remote = new ItemMeteorRemote().setUnlocalizedName("meteor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":meteor_remote");
|
meteor_remote = new ItemMeteorRemote().setUnlocalizedName("meteor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":meteor_remote");
|
||||||
remote = new ItemRamManipulator().setUnlocalizedName("remote").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":remote");
|
remote = new ItemRamManipulator().setUnlocalizedName("remote").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":remote");
|
||||||
@ -3596,6 +3598,7 @@ public class ModItems {
|
|||||||
GameRegistry.registerItem(chainsaw, chainsaw.getUnlocalizedName());
|
GameRegistry.registerItem(chainsaw, chainsaw.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(igniter, igniter.getUnlocalizedName());
|
GameRegistry.registerItem(igniter, igniter.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(detonator, detonator.getUnlocalizedName());
|
GameRegistry.registerItem(detonator, detonator.getUnlocalizedName());
|
||||||
|
GameRegistry.registerItem(detonator_multi, detonator_multi.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(crate_caller, crate_caller.getUnlocalizedName());
|
GameRegistry.registerItem(crate_caller, crate_caller.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName());
|
GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName());
|
||||||
GameRegistry.registerItem(hazmat_helmet, hazmat_helmet.getUnlocalizedName());
|
GameRegistry.registerItem(hazmat_helmet, hazmat_helmet.getUnlocalizedName());
|
||||||
|
|||||||
@ -140,6 +140,7 @@ public class ItemAssemblyTemplate extends Item {
|
|||||||
CMB_BRICKS,
|
CMB_BRICKS,
|
||||||
HATCH_FRAME,
|
HATCH_FRAME,
|
||||||
HATCH_CONTROLLER,
|
HATCH_CONTROLLER,
|
||||||
|
BLAST_DOOR,
|
||||||
CENTRIFUGE,
|
CENTRIFUGE,
|
||||||
BREEDING_REACTOR,
|
BREEDING_REACTOR,
|
||||||
RTG_FURNACE,
|
RTG_FURNACE,
|
||||||
@ -585,6 +586,8 @@ public class ItemAssemblyTemplate extends Item {
|
|||||||
return 50;
|
return 50;
|
||||||
case HATCH_CONTROLLER:
|
case HATCH_CONTROLLER:
|
||||||
return 100;
|
return 100;
|
||||||
|
case BLAST_DOOR:
|
||||||
|
return 300;
|
||||||
case CENTRIFUGE:
|
case CENTRIFUGE:
|
||||||
return 250;
|
return 250;
|
||||||
case BREEDING_REACTOR:
|
case BREEDING_REACTOR:
|
||||||
|
|||||||
145
com/hbm/items/tool/ItemMultiDetonator.java
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
package com.hbm.items.tool;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
|
import com.hbm.interfaces.IBomb;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
|
import net.minecraft.util.ChatComponentText;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
|
public class ItemMultiDetonator extends Item {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool)
|
||||||
|
{
|
||||||
|
list.add("Shift right-click block to add position,");
|
||||||
|
list.add("right-click to detonate!");
|
||||||
|
list.add("Shift right-click in the air to clear postitions.");
|
||||||
|
|
||||||
|
if(itemstack.getTagCompound() == null || getLocations(itemstack) == null)
|
||||||
|
{
|
||||||
|
list.add("No position set!");
|
||||||
|
} else {
|
||||||
|
|
||||||
|
int[][] locs = getLocations(itemstack);
|
||||||
|
|
||||||
|
for(int i = 0; i < locs[0].length; i++) {
|
||||||
|
|
||||||
|
list.add(locs[0][i] + " / " + locs[1][i] + " / " + locs[2][i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onItemUse(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_)
|
||||||
|
{
|
||||||
|
if(stack.stackTagCompound == null)
|
||||||
|
{
|
||||||
|
stack.stackTagCompound = new NBTTagCompound();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(player.isSneaking())
|
||||||
|
{
|
||||||
|
addLocation(stack, x, y, z);
|
||||||
|
|
||||||
|
if(world.isRemote)
|
||||||
|
{
|
||||||
|
player.addChatMessage(new ChatComponentText("Position added!"));
|
||||||
|
}
|
||||||
|
|
||||||
|
world.playSoundAtEntity(player, "hbm:item.techBoop", 2.0F, 1.0F);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||||
|
|
||||||
|
if(stack.stackTagCompound == null || getLocations(stack) == null)
|
||||||
|
{
|
||||||
|
if(world.isRemote)
|
||||||
|
player.addChatMessage(new ChatComponentText("Error: Position not set."));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
if(!player.isSneaking()) {
|
||||||
|
int[][] locs = getLocations(stack);
|
||||||
|
|
||||||
|
int succ = 0;
|
||||||
|
|
||||||
|
for (int i = 0; i < locs[0].length; i++) {
|
||||||
|
|
||||||
|
int x = locs[0][i];
|
||||||
|
int y = locs[1][i];
|
||||||
|
int z = locs[2][i];
|
||||||
|
|
||||||
|
if (world.getBlock(x, y, z) instanceof IBomb) {
|
||||||
|
world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F);
|
||||||
|
if (!world.isRemote) {
|
||||||
|
((IBomb) world.getBlock(x, y, z)).explode(world, x, y, z);
|
||||||
|
}
|
||||||
|
|
||||||
|
succ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (world.isRemote) {
|
||||||
|
player.addChatMessage(new ChatComponentText("Detonated! (" + succ + "/" + locs[0].length + ")"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
|
||||||
|
stack.stackTagCompound.setIntArray("xValues", new int[0]);
|
||||||
|
stack.stackTagCompound.setIntArray("yValues", new int[0]);
|
||||||
|
stack.stackTagCompound.setIntArray("zValues", new int[0]);
|
||||||
|
|
||||||
|
world.playSoundAtEntity(player, "hbm:item.techBoop", 2.0F, 1.0F);
|
||||||
|
|
||||||
|
if(world.isRemote)
|
||||||
|
{
|
||||||
|
player.addChatMessage(new ChatComponentText("All positions removed."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return stack;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addLocation(ItemStack stack, int x, int y, int z) {
|
||||||
|
|
||||||
|
if(stack.stackTagCompound == null)
|
||||||
|
{
|
||||||
|
stack.stackTagCompound = new NBTTagCompound();
|
||||||
|
}
|
||||||
|
|
||||||
|
int[] xs = stack.stackTagCompound.getIntArray("xValues");
|
||||||
|
int[] ys = stack.stackTagCompound.getIntArray("yValues");
|
||||||
|
int[] zs = stack.stackTagCompound.getIntArray("zValues");
|
||||||
|
|
||||||
|
stack.stackTagCompound.setIntArray("xValues", ArrayUtils.add(xs, x));
|
||||||
|
stack.stackTagCompound.setIntArray("yValues", ArrayUtils.add(ys, y));
|
||||||
|
stack.stackTagCompound.setIntArray("zValues", ArrayUtils.add(zs, z));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int[][] getLocations(ItemStack stack) {
|
||||||
|
|
||||||
|
int[] xs = stack.stackTagCompound.getIntArray("xValues");
|
||||||
|
int[] ys = stack.stackTagCompound.getIntArray("yValues");
|
||||||
|
int[] zs = stack.stackTagCompound.getIntArray("zValues");
|
||||||
|
|
||||||
|
if(xs == null || ys == null || zs == null || xs.length == 0 || ys.length == 0 || zs.length == 0) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new int[][] { xs, ys, zs };
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -571,6 +571,7 @@ public class CraftingManager {
|
|||||||
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.redcoil_capacitor, 1), new Object[] { "PFP", "CBC", "CBC", 'P', "plateGold", 'B', Item.getItemFromBlock(Blocks.redstone_block), 'C', ModItems.coil_advanced_alloy, 'F', ModItems.fuse }));
|
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.redcoil_capacitor, 1), new Object[] { "PFP", "CBC", "CBC", 'P', "plateGold", 'B', Item.getItemFromBlock(Blocks.redstone_block), 'C', ModItems.coil_advanced_alloy, 'F', ModItems.fuse }));
|
||||||
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.titanium_filter, 1), new Object[] { "PFP", "CBC", "CBC", 'P', "plateLead", 'B', "U238", 'C', "plateTitanium", 'F', ModItems.fuse }));
|
//GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.titanium_filter, 1), new Object[] { "PFP", "CBC", "CBC", 'P', "plateLead", 'B', "U238", 'C', "plateTitanium", 'F', ModItems.fuse }));
|
||||||
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', "plateSteel", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'E', "ingotSteel" }));
|
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.detonator, 1), new Object[] { " W", "SC", "CE", 'S', "plateSteel", 'W', ModItems.wire_red_copper, 'C', ModItems.circuit_red_copper, 'E', "ingotSteel" }));
|
||||||
|
GameRegistry.addShapelessRecipe(new ItemStack(ModItems.detonator_multi, 1), new Object[] { ModItems.detonator, ModItems.circuit_targeting_tier3 });
|
||||||
|
|
||||||
GameRegistry.addRecipe(new ItemStack(ModItems.singularity, 1), new Object[] { "ESE", "SBS", "ESE", 'E', ModItems.nugget_euphemium, 'S', ModItems.cell_anti_schrabidium, 'B', Item.getItemFromBlock(ModBlocks.block_schrabidium) });
|
GameRegistry.addRecipe(new ItemStack(ModItems.singularity, 1), new Object[] { "ESE", "SBS", "ESE", 'E', ModItems.nugget_euphemium, 'S', ModItems.cell_anti_schrabidium, 'B', Item.getItemFromBlock(ModBlocks.block_schrabidium) });
|
||||||
GameRegistry.addRecipe(new ItemStack(ModItems.singularity_counter_resonant, 1), new Object[] { "CTC", "TST", "CTC", 'C', ModItems.plate_combine_steel, 'T', ModItems.ingot_magnetized_tungsten, 'S', ModItems.singularity });
|
GameRegistry.addRecipe(new ItemStack(ModItems.singularity_counter_resonant, 1), new Object[] { "CTC", "TST", "CTC", 'C', ModItems.plate_combine_steel, 'T', ModItems.ingot_magnetized_tungsten, 'S', ModItems.singularity });
|
||||||
|
|||||||
@ -101,6 +101,7 @@ public class ResourceManager {
|
|||||||
public static final IModelCustom vault_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_cog.obj"));
|
public static final IModelCustom vault_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_cog.obj"));
|
||||||
public static final IModelCustom vault_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_frame.obj"));
|
public static final IModelCustom vault_frame = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_frame.obj"));
|
||||||
public static final IModelCustom vault_teeth = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_teeth.obj"));
|
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"));
|
||||||
|
|
||||||
////Textures TEs
|
////Textures TEs
|
||||||
|
|
||||||
@ -178,6 +179,14 @@ public class ResourceManager {
|
|||||||
//Vault Door
|
//Vault Door
|
||||||
public static final ResourceLocation vault_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog.png");
|
public static final ResourceLocation vault_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_cog.png");
|
||||||
public static final ResourceLocation vault_frame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_frame.png");
|
public static final ResourceLocation vault_frame_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_frame.png");
|
||||||
|
public static final ResourceLocation vault_label_101_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_101.png");
|
||||||
|
public static final ResourceLocation vault_label_87_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_87.png");
|
||||||
|
public static final ResourceLocation vault_label_106_tex = new ResourceLocation(RefStrings.MODID, "textures/models/vault_label_106.png");
|
||||||
|
public static final ResourceLocation stable_cog_tex = new ResourceLocation(RefStrings.MODID, "textures/models/stable_cog.png");
|
||||||
|
public static final ResourceLocation stable_label_tex = new ResourceLocation(RefStrings.MODID, "textures/models/stable_label.png");
|
||||||
|
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");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,8 @@ public class PacketDispatcher {
|
|||||||
wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER);
|
wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER);
|
||||||
//Universal package for sending small info packs back to server
|
//Universal package for sending small info packs back to server
|
||||||
wrapper.registerMessage(AuxButtonPacket.Handler.class, AuxButtonPacket.class, i++, Side.SERVER);
|
wrapper.registerMessage(AuxButtonPacket.Handler.class, AuxButtonPacket.class, i++, Side.SERVER);
|
||||||
|
//Siren packet for looped sounds
|
||||||
|
wrapper.registerMessage(TEVaultPacket.Handler.class, TEVaultPacket.class, i++, Side.CLIENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
82
com/hbm/packet/TEVaultPacket.java
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
package com.hbm.packet;
|
||||||
|
|
||||||
|
import com.hbm.tileentity.machine.TileEntityMachineRadar;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityVaultDoor;
|
||||||
|
|
||||||
|
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||||
|
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||||
|
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
|
||||||
|
public class TEVaultPacket implements IMessage {
|
||||||
|
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
int z;
|
||||||
|
boolean isOpening;
|
||||||
|
int state;
|
||||||
|
long sysTime;
|
||||||
|
int type;
|
||||||
|
|
||||||
|
public TEVaultPacket() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public TEVaultPacket(int x, int y, int z, boolean isOpening, int state, long sysTime, int type) {
|
||||||
|
this.x = x;
|
||||||
|
this.y = y;
|
||||||
|
this.z = z;
|
||||||
|
this.isOpening = isOpening;
|
||||||
|
this.state = state;
|
||||||
|
this.sysTime = sysTime;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fromBytes(ByteBuf buf) {
|
||||||
|
x = buf.readInt();
|
||||||
|
y = buf.readInt();
|
||||||
|
z = buf.readInt();
|
||||||
|
isOpening = buf.readBoolean();
|
||||||
|
state = buf.readInt();
|
||||||
|
sysTime = buf.readLong();
|
||||||
|
type = buf.readInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toBytes(ByteBuf buf) {
|
||||||
|
buf.writeInt(x);
|
||||||
|
buf.writeInt(y);
|
||||||
|
buf.writeInt(z);
|
||||||
|
buf.writeBoolean(isOpening);
|
||||||
|
buf.writeInt(state);
|
||||||
|
buf.writeLong(sysTime);
|
||||||
|
buf.writeInt(type);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Handler implements IMessageHandler<TEVaultPacket, IMessage> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@SideOnly(Side.CLIENT)
|
||||||
|
public IMessage onMessage(TEVaultPacket m, MessageContext ctx) {
|
||||||
|
TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(m.x, m.y, m.z);
|
||||||
|
|
||||||
|
try {
|
||||||
|
if (te != null && te instanceof TileEntityVaultDoor) {
|
||||||
|
|
||||||
|
TileEntityVaultDoor vault = (TileEntityVaultDoor) te;
|
||||||
|
vault.isOpening = m.isOpening;
|
||||||
|
vault.state = m.state;
|
||||||
|
vault.sysTime = m.sysTime;
|
||||||
|
vault.type = m.type;
|
||||||
|
}
|
||||||
|
} catch (Exception x) {
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11;
|
|||||||
import com.hbm.main.MainRegistry;
|
import com.hbm.main.MainRegistry;
|
||||||
import com.hbm.main.ResourceManager;
|
import com.hbm.main.ResourceManager;
|
||||||
import com.hbm.tileentity.machine.TileEntityMachineReactorSmall;
|
import com.hbm.tileentity.machine.TileEntityMachineReactorSmall;
|
||||||
|
import com.hbm.tileentity.machine.TileEntityVaultDoor;
|
||||||
|
|
||||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
@ -13,6 +14,11 @@ public class RenderVaultDoor extends TileEntitySpecialRenderer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
|
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float f)
|
||||||
|
{
|
||||||
|
renderDoor((TileEntityVaultDoor)tileEntity, x, y, z, f);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void renderDoor(TileEntityVaultDoor tileEntity, double x, double y, double z, float f)
|
||||||
{
|
{
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
GL11.glTranslated(x + 0.5D, y, z + 0.5D);
|
||||||
@ -20,6 +26,18 @@ public class RenderVaultDoor extends TileEntitySpecialRenderer {
|
|||||||
GL11.glDisable(GL11.GL_CULL_FACE);
|
GL11.glDisable(GL11.GL_CULL_FACE);
|
||||||
GL11.glRotatef(180, 0F, 1F, 0F);
|
GL11.glRotatef(180, 0F, 1F, 0F);
|
||||||
|
|
||||||
|
switch(tileEntity.getBlockMetadata())
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||||
|
case 4:
|
||||||
|
GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||||
|
case 3:
|
||||||
|
GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||||
|
case 5:
|
||||||
|
GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||||
|
}
|
||||||
|
|
||||||
bindTexture(ResourceManager.vault_frame_tex);
|
bindTexture(ResourceManager.vault_frame_tex);
|
||||||
ResourceManager.vault_frame.renderAll();
|
ResourceManager.vault_frame.renderAll();
|
||||||
GL11.glTranslated(-1.0D, 0.0D, 0.0D);
|
GL11.glTranslated(-1.0D, 0.0D, 0.0D);
|
||||||
@ -30,8 +48,16 @@ public class RenderVaultDoor extends TileEntitySpecialRenderer {
|
|||||||
|
|
||||||
GL11.glTranslated(0.0D, -2.5D, 0.0D);
|
GL11.glTranslated(0.0D, -2.5D, 0.0D);
|
||||||
|
|
||||||
double[] timer = getAnimationFromSysTime(System.currentTimeMillis() - MainRegistry.time);
|
double[] timer;
|
||||||
//double[] timer = getAnimationFromSysTime(MainRegistry.time + 12500 - System.currentTimeMillis());
|
|
||||||
|
if(tileEntity.state == 0)
|
||||||
|
timer = new double[] { 0, 0, 0, 0, 0 };
|
||||||
|
else if(tileEntity.state == 2)
|
||||||
|
timer = getAnimationFromSysTime(12500);
|
||||||
|
else if(tileEntity.isOpening)
|
||||||
|
timer = getAnimationFromSysTime(System.currentTimeMillis() - tileEntity.sysTime);
|
||||||
|
else
|
||||||
|
timer = getAnimationFromSysTime(tileEntity.sysTime + 12500 - System.currentTimeMillis());
|
||||||
|
|
||||||
GL11.glTranslated(-timer[0], 0, timer[1]);
|
GL11.glTranslated(-timer[0], 0, timer[1]);
|
||||||
|
|
||||||
@ -39,9 +65,27 @@ public class RenderVaultDoor extends TileEntitySpecialRenderer {
|
|||||||
GL11.glRotated(timer[2], 1, 0, 0);
|
GL11.glRotated(timer[2], 1, 0, 0);
|
||||||
GL11.glTranslated(0.0D, -2.5D, 0.0D);
|
GL11.glTranslated(0.0D, -2.5D, 0.0D);
|
||||||
|
|
||||||
bindTexture(ResourceManager.vault_cog_tex);
|
|
||||||
|
switch(tileEntity.type) {
|
||||||
|
case 1:
|
||||||
|
case 2: bindTexture(ResourceManager.vault_cog_tex); break;
|
||||||
|
case 3: bindTexture(ResourceManager.stable_cog_tex); break;
|
||||||
|
case 4:
|
||||||
|
case 5: bindTexture(ResourceManager.vault4_cog_tex); break;
|
||||||
|
default: bindTexture(ResourceManager.vault_cog_tex); break;
|
||||||
|
}
|
||||||
ResourceManager.vault_cog.renderAll();
|
ResourceManager.vault_cog.renderAll();
|
||||||
|
|
||||||
|
switch(tileEntity.type) {
|
||||||
|
case 1: bindTexture(ResourceManager.vault_label_87_tex); break;
|
||||||
|
case 2: bindTexture(ResourceManager.vault_label_106_tex); break;
|
||||||
|
case 3: bindTexture(ResourceManager.stable_label_tex); break;
|
||||||
|
case 4: bindTexture(ResourceManager.vault4_label_111_tex); break;
|
||||||
|
case 5: bindTexture(ResourceManager.vault4_label_81_tex); break;
|
||||||
|
default: bindTexture(ResourceManager.vault_label_101_tex); break;
|
||||||
|
}
|
||||||
|
ResourceManager.vault_label.renderAll();
|
||||||
|
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,28 @@
|
|||||||
package com.hbm.tileentity.machine;
|
package com.hbm.tileentity.machine;
|
||||||
|
|
||||||
|
import com.hbm.blocks.ModBlocks;
|
||||||
|
import com.hbm.blocks.machine.DummyBlockVault;
|
||||||
|
import com.hbm.packet.AuxGaugePacket;
|
||||||
|
import com.hbm.packet.PacketDispatcher;
|
||||||
|
import com.hbm.packet.TEVaultPacket;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import net.minecraft.init.Blocks;
|
||||||
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
|
||||||
public class TileEntityVaultDoor extends TileEntity {
|
public class TileEntityVaultDoor extends TileEntity {
|
||||||
|
|
||||||
|
public boolean isOpening = false;
|
||||||
|
//0: closed, 1: opening/closing, 2:open
|
||||||
|
public int state = 0;
|
||||||
|
public long sysTime;
|
||||||
|
private int timer = 0;
|
||||||
|
public int type;
|
||||||
|
public static final int maxTypes = 6;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AxisAlignedBB getRenderBoundingBox() {
|
public AxisAlignedBB getRenderBoundingBox() {
|
||||||
return TileEntity.INFINITE_EXTENT_AABB;
|
return TileEntity.INFINITE_EXTENT_AABB;
|
||||||
@ -19,4 +35,221 @@ public class TileEntityVaultDoor extends TileEntity {
|
|||||||
return 65536.0D;
|
return 65536.0D;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEntity() {
|
||||||
|
|
||||||
|
if(!worldObj.isRemote) {
|
||||||
|
if(state != 1) {
|
||||||
|
timer = 0;
|
||||||
|
} else {
|
||||||
|
timer++;
|
||||||
|
|
||||||
|
if(timer >= 250) {
|
||||||
|
|
||||||
|
if(isOpening)
|
||||||
|
finishOpen();
|
||||||
|
else
|
||||||
|
finishClose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
PacketDispatcher.wrapper.sendToAll(new TEVaultPacket(xCoord, yCoord, zCoord, isOpening, state, sysTime, type));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void open() {
|
||||||
|
if(state == 0) {
|
||||||
|
sysTime = System.currentTimeMillis();
|
||||||
|
isOpening = true;
|
||||||
|
state = 1;
|
||||||
|
|
||||||
|
openHatch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void finishOpen() {
|
||||||
|
state = 2;
|
||||||
|
//play sound
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close() {
|
||||||
|
if(state == 2) {
|
||||||
|
sysTime = System.currentTimeMillis();
|
||||||
|
isOpening = false;
|
||||||
|
state = 1;
|
||||||
|
|
||||||
|
closeHatch();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void finishClose() {
|
||||||
|
state = 0;
|
||||||
|
//play sound
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canOpen() {
|
||||||
|
return state == 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean canClose() {
|
||||||
|
return state == 2 && isHatchFree();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void tryToggle() {
|
||||||
|
|
||||||
|
if(canOpen())
|
||||||
|
open();
|
||||||
|
else if(canClose())
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
|
||||||
|
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_vault);
|
||||||
|
|
||||||
|
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_vault) {
|
||||||
|
DummyBlockVault.safeBreak = true;
|
||||||
|
worldObj.setBlock(x, y, z, Blocks.air);
|
||||||
|
DummyBlockVault.safeBreak = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isHatchFree() {
|
||||||
|
|
||||||
|
if(this.getBlockMetadata() == 2 || this.getBlockMetadata() == 3)
|
||||||
|
return checkNS();
|
||||||
|
else if(this.getBlockMetadata() == 4 || this.getBlockMetadata() == 5)
|
||||||
|
return checkEW();
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void closeHatch() {
|
||||||
|
|
||||||
|
if(this.getBlockMetadata() == 2 || this.getBlockMetadata() == 3)
|
||||||
|
fillNS();
|
||||||
|
else if(this.getBlockMetadata() == 4 || this.getBlockMetadata() == 5)
|
||||||
|
fillEW();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void openHatch() {
|
||||||
|
|
||||||
|
if(this.getBlockMetadata() == 2 || this.getBlockMetadata() == 3)
|
||||||
|
removeNS();
|
||||||
|
else if(this.getBlockMetadata() == 4 || this.getBlockMetadata() == 5)
|
||||||
|
removeEW();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkNS() {
|
||||||
|
return worldObj.getBlock(xCoord - 1, yCoord + 1, zCoord).isReplaceable(worldObj, xCoord - 1, yCoord + 1, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 1, zCoord).isReplaceable(worldObj, xCoord, yCoord + 1, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord + 1, yCoord + 1, zCoord).isReplaceable(worldObj, xCoord + 1, yCoord + 1, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord - 1, yCoord + 2, zCoord).isReplaceable(worldObj, xCoord - 1, yCoord + 2, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 2, zCoord).isReplaceable(worldObj, xCoord, yCoord + 2, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord + 1, yCoord + 2, zCoord).isReplaceable(worldObj, xCoord + 1, yCoord + 2, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord - 1, yCoord + 3, zCoord).isReplaceable(worldObj, xCoord - 1, yCoord + 3, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 3, zCoord).isReplaceable(worldObj, xCoord, yCoord + 3, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord + 1, yCoord + 3, zCoord).isReplaceable(worldObj, xCoord + 1, yCoord + 3, zCoord);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkEW() {
|
||||||
|
return worldObj.getBlock(xCoord, yCoord + 1, zCoord - 1).isReplaceable(worldObj, xCoord, yCoord + 1, zCoord -1) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 1, zCoord).isReplaceable(worldObj, xCoord, yCoord, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 1, zCoord + 1).isReplaceable(worldObj, xCoord, yCoord + 1, zCoord + 1) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 2, zCoord - 1).isReplaceable(worldObj, xCoord, yCoord + 2, zCoord - 1) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 2, zCoord).isReplaceable(worldObj, xCoord, yCoord + 2, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 2, zCoord + 1).isReplaceable(worldObj, xCoord, yCoord + 2, zCoord + 1) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 3, zCoord - 1).isReplaceable(worldObj, xCoord, yCoord + 3, zCoord - 1) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 3, zCoord).isReplaceable(worldObj, xCoord, yCoord + 3, zCoord) &&
|
||||||
|
worldObj.getBlock(xCoord, yCoord + 3, zCoord + 1).isReplaceable(worldObj, xCoord, yCoord + 3, zCoord + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillNS() {
|
||||||
|
|
||||||
|
placeDummy(xCoord - 1, yCoord + 1, zCoord);
|
||||||
|
placeDummy(xCoord - 1, yCoord + 2, zCoord);
|
||||||
|
placeDummy(xCoord - 1, yCoord + 3, zCoord);
|
||||||
|
placeDummy(xCoord, yCoord + 1, zCoord);
|
||||||
|
placeDummy(xCoord, yCoord + 2, zCoord);
|
||||||
|
placeDummy(xCoord, yCoord + 3, zCoord);
|
||||||
|
placeDummy(xCoord + 1, yCoord + 1, zCoord);
|
||||||
|
placeDummy(xCoord + 1, yCoord + 2, zCoord);
|
||||||
|
placeDummy(xCoord + 1, yCoord + 3, zCoord);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillEW() {
|
||||||
|
|
||||||
|
placeDummy(xCoord, yCoord + 1, zCoord - 1);
|
||||||
|
placeDummy(xCoord, yCoord + 2, zCoord - 1);
|
||||||
|
placeDummy(xCoord, yCoord + 3, zCoord - 1);
|
||||||
|
placeDummy(xCoord, yCoord + 1, zCoord);
|
||||||
|
placeDummy(xCoord, yCoord + 2, zCoord);
|
||||||
|
placeDummy(xCoord, yCoord + 3, zCoord);
|
||||||
|
placeDummy(xCoord, yCoord + 1, zCoord + 1);
|
||||||
|
placeDummy(xCoord, yCoord + 2, zCoord + 1);
|
||||||
|
placeDummy(xCoord, yCoord + 3, zCoord + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeNS() {
|
||||||
|
|
||||||
|
removeDummy(xCoord - 1, yCoord + 1, zCoord);
|
||||||
|
removeDummy(xCoord - 1, yCoord + 2, zCoord);
|
||||||
|
removeDummy(xCoord - 1, yCoord + 3, zCoord);
|
||||||
|
removeDummy(xCoord, yCoord + 1, zCoord);
|
||||||
|
removeDummy(xCoord, yCoord + 2, zCoord);
|
||||||
|
removeDummy(xCoord, yCoord + 3, zCoord);
|
||||||
|
removeDummy(xCoord + 1, yCoord + 1, zCoord);
|
||||||
|
removeDummy(xCoord + 1, yCoord + 2, zCoord);
|
||||||
|
removeDummy(xCoord + 1, yCoord + 3, zCoord);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeEW() {
|
||||||
|
|
||||||
|
removeDummy(xCoord, yCoord + 1, zCoord - 1);
|
||||||
|
removeDummy(xCoord, yCoord + 2, zCoord - 1);
|
||||||
|
removeDummy(xCoord, yCoord + 3, zCoord - 1);
|
||||||
|
removeDummy(xCoord, yCoord + 1, zCoord);
|
||||||
|
removeDummy(xCoord, yCoord + 2, zCoord);
|
||||||
|
removeDummy(xCoord, yCoord + 3, zCoord);
|
||||||
|
removeDummy(xCoord, yCoord + 1, zCoord + 1);
|
||||||
|
removeDummy(xCoord, yCoord + 2, zCoord + 1);
|
||||||
|
removeDummy(xCoord, yCoord + 3, zCoord + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void readFromNBT(NBTTagCompound nbt) {
|
||||||
|
super.readFromNBT(nbt);
|
||||||
|
|
||||||
|
isOpening = nbt.getBoolean("isOpening");
|
||||||
|
state = nbt.getInteger("state");
|
||||||
|
sysTime = nbt.getLong("sysTime");
|
||||||
|
timer = nbt.getInteger("timer");
|
||||||
|
type = nbt.getInteger("type");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeToNBT(NBTTagCompound nbt) {
|
||||||
|
super.writeToNBT(nbt);
|
||||||
|
|
||||||
|
nbt.setBoolean("isOpening", isOpening);
|
||||||
|
nbt.setInteger("state", state);
|
||||||
|
nbt.setLong("sysTime", sysTime);
|
||||||
|
nbt.setInteger("timer", timer);
|
||||||
|
nbt.setInteger("type", type);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||