More vault textures, functionality, multi detonator

This commit is contained in:
HbmMods 2018-08-03 19:24:26 +02:00
parent 1a58f4e7d2
commit 409419928a
28 changed files with 2649 additions and 576 deletions

View File

@ -647,6 +647,8 @@ tile.seal_frame.name=Siloluke (Rahmen)
tile.seal_controller.name=Silolukenöffner
tile.seal_hatch.name=Siloluke (Deckel)
tile.vault_door.name=Vault-Tec Sprengtür
item.nugget_uranium.name=Urannugget
item.nugget_plutonium.name=Plutoniumnugget
item.nugget_neptunium.name=Neptuniumnugget
@ -1473,6 +1475,7 @@ item.shimmer_handle.name=Verstärketer Polymergriff
item.redcoil_capacitor.name=Rotspulenkondensator
item.detonator.name=Fernzünder
item.detonator_multi.name=Mehrfach-Fernzünder
item.crate_caller.name=Nachschub-Requester
item.meteor_remote.name=Meteoritenkontroller

View File

@ -647,6 +647,8 @@ tile.seal_frame.name=Silo Hatch Frame
tile.seal_controller.name=Silo Hatch Opener
tile.seal_hatch.name=Silo Hatch
tile.vault_door.name=Vault-Tec Blast Door
item.nugget_uranium.name=Uranium Nugget
item.nugget_plutonium.name=Plutonium 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.detonator.name=Detonator
item.detonator_multi.name=Multi-Detonator
item.crate_caller.name=Supply Drop Requester
item.meteor_remote.name=Meteorite Remote

View File

@ -714,8 +714,9 @@ vt 0.547184 0.376963
vt 0.525794 0.364585
vt 0.519555 0.353779
vt 0.587454 0.329066
vt 0.497115 0.828869
vt 0.567181 0.841294
vt 0.394877 0.551666
vt 0.430535 0.531125
vt 0.456956 0.562674
vt 0.561925 0.866367
vt 0.558706 0.864509
vt 0.565014 0.853582
@ -724,8 +725,10 @@ vt 0.513019 0.809953
vt 0.510630 0.807106
vt 0.503354 0.818063
vt 0.570842 0.840648
vt 0.567181 0.841294
vt 0.564990 0.828869
vt 0.493454 0.828224
vt 0.497115 0.828869
vt 0.494924 0.841294
vt 0.493872 0.855441
vt 0.497091 0.853582
@ -937,6 +940,21 @@ vt 0.609756 0.323022
vt 0.541268 0.399299
vt 0.522280 0.391673
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.511748 0.806460
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 200/335/1 199/334/1 217/386/1
f 216/337/1 234/382/1 225/383/1
f 251/390/1 237/372/1 241/391/1
f 221/392/15 239/393/15 240/394/15
f 230/395/10 248/373/10 249/396/10
f 231/397/27 249/396/27 250/398/27
f 223/399/18 241/391/18 242/400/18
f 233/401/30 251/390/30 252/402/30
f 225/403/33 243/404/33 244/405/33
f 218/406/3 236/407/3 239/393/3
f 224/408/7 242/400/7 245/409/7
f 229/410/4 247/411/4 235/412/4
f 229/413/36 228/414/36 246/415/36
f 226/416/5 244/405/5 246/415/5
f 220/417/21 227/418/21 245/409/21
f 217/419/11 235/412/11 236/407/11
f 234/420/8 252/402/8 243/404/8
f 222/421/2 240/394/2 241/391/2
f 220/422/6 238/423/6 237/372/6
f 233/424/9 232/425/9 250/398/9
f 262/426/57 272/427/57 271/428/57
f 274/429/58 273/430/58 254/431/58
f 276/432/59 275/433/59 256/434/59
f 257/435/60 278/436/60 277/437/60
f 280/438/61 279/439/61 260/440/61
f 264/441/62 282/442/62 281/443/62
f 284/444/63 283/445/63 265/446/63
f 286/447/64 285/448/64 267/449/64
f 270/450/65 288/451/65 287/452/65
f 290/453/66 257/435/66 258/454/66
f 293/455/67 294/456/67 262/426/67
f 292/457/68 253/458/68 254/431/68
f 297/459/69 298/460/69 266/461/69
f 263/462/70 295/463/70 296/464/70
f 300/465/71 255/466/71 256/434/71
f 302/467/72 259/468/72 260/440/72
f 303/469/73 304/470/73 270/450/73
f 305/471/74 306/472/74 268/473/74
f 286/447/18 322/474/18 321/475/18
f 288/451/15 324/476/15 323/477/15
f 280/438/11 316/478/11 315/479/11
f 275/433/36 276/432/36 312/480/36
f 284/444/33 320/481/33 319/482/33
f 317/483/75 295/484/75 263/462/75
f 264/441/76 296/485/76 318/486/76
f 281/443/30 282/442/30 318/487/30
f 278/436/21 314/488/21 313/489/21
f 274/429/24 310/490/24 309/491/24
f 272/427/27 308/492/27 307/493/27
f 262/426/77 294/494/77 308/495/77
f 307/496/78 293/497/78 261/498/78
f 309/499/79 291/500/79 254/431/79
f 253/458/80 292/501/80 310/502/80
f 266/461/81 298/503/81 320/504/81
f 319/505/82 297/506/82 265/446/82
f 255/466/83 300/507/83 312/508/83
f 311/509/84 299/510/84 256/434/84
f 259/468/85 302/511/85 316/512/85
f 315/513/86 301/514/86 260/440/86
f 270/450/87 304/515/87 324/516/87
f 323/517/88 303/518/88 269/519/88
f 268/473/89 306/520/89 322/521/89
f 321/522/90 305/523/90 267/449/90
f 313/524/91 289/525/91 258/454/91
f 257/435/92 290/526/92 314/527/92
f 33/528/14 41/123/14 47/529/14
f 251/390/1 237/391/1 241/392/1
f 221/393/15 239/394/15 240/395/15
f 230/396/10 248/373/10 249/397/10
f 231/398/27 249/397/27 250/399/27
f 223/400/18 241/401/18 242/402/18
f 233/403/30 251/404/30 252/405/30
f 225/406/33 243/407/33 244/408/33
f 218/409/3 236/410/3 239/394/3
f 224/411/7 242/402/7 245/412/7
f 229/413/4 247/414/4 235/415/4
f 229/416/36 228/417/36 246/418/36
f 226/419/5 244/408/5 246/418/5
f 220/420/21 227/421/21 245/412/21
f 217/422/11 235/415/11 236/410/11
f 234/423/8 252/405/8 243/407/8
f 222/424/2 240/395/2 241/401/2
f 220/425/6 238/426/6 237/372/6
f 233/427/9 232/428/9 250/399/9
f 262/429/57 272/430/57 271/431/57
f 274/432/58 273/433/58 254/434/58
f 276/435/59 275/436/59 256/437/59
f 257/438/60 278/439/60 277/440/60
f 280/441/61 279/442/61 260/443/61
f 264/444/62 282/445/62 281/446/62
f 284/447/63 283/448/63 265/449/63
f 286/450/64 285/451/64 267/452/64
f 270/453/65 288/454/65 287/455/65
f 290/456/66 257/438/66 258/457/66
f 293/458/67 294/459/67 262/429/67
f 292/460/68 253/461/68 254/434/68
f 297/462/69 298/463/69 266/464/69
f 263/465/70 295/466/70 296/467/70
f 300/468/71 255/469/71 256/437/71
f 302/470/72 259/471/72 260/443/72
f 303/472/73 304/473/73 270/453/73
f 305/474/74 306/475/74 268/476/74
f 286/450/18 322/477/18 321/478/18
f 288/454/15 324/479/15 323/480/15
f 280/441/11 316/481/11 315/482/11
f 275/436/36 276/435/36 312/483/36
f 284/447/33 320/484/33 319/485/33
f 317/486/75 295/487/75 263/465/75
f 264/444/76 296/488/76 318/489/76
f 281/446/30 282/445/30 318/490/30
f 278/439/21 314/491/21 313/492/21
f 274/432/24 310/493/24 309/494/24
f 272/430/27 308/495/27 307/496/27
f 262/429/77 294/497/77 308/498/77
f 307/499/78 293/500/78 261/501/78
f 309/502/79 291/503/79 254/434/79
f 253/461/80 292/504/80 310/505/80
f 266/464/81 298/506/81 320/507/81
f 319/508/82 297/509/82 265/449/82
f 255/469/83 300/510/83 312/511/83
f 311/512/84 299/513/84 256/437/84
f 259/471/85 302/514/85 316/515/85
f 315/516/86 301/517/86 260/443/86
f 270/453/87 304/518/87 324/519/87
f 323/520/88 303/521/88 269/522/88
f 268/476/89 306/523/89 322/524/89
f 321/525/90 305/526/90 267/452/90
f 313/527/91 289/528/91 258/457/91
f 257/438/92 290/529/92 314/530/92
f 33/531/14 41/123/14 47/532/14
f 52/141/1 48/1/1 2/3/1
f 7/2/1 48/1/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 30/14/1 28/16/1 25/15/1
f 26/17/1 28/16/1 31/19/1
f 11/530/2 12/20/2 15/22/2
f 9/531/3 5/23/3 10/25/3
f 3/532/4 53/26/4 4/28/4
f 52/533/5 51/29/5 48/31/5
f 27/534/6 23/32/6 28/34/6
f 21/535/7 17/35/7 22/37/7
f 45/536/8 41/38/8 46/40/8
f 35/537/9 36/41/9 39/43/9
f 11/533/2 12/20/2 15/22/2
f 9/534/3 5/23/3 10/25/3
f 3/535/4 53/26/4 4/28/4
f 52/536/5 51/29/5 48/31/5
f 27/537/6 23/32/6 28/34/6
f 21/538/7 17/35/7 22/37/7
f 45/539/8 41/38/8 46/40/8
f 35/540/9 36/41/9 39/43/9
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 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 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 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/542/17 11/69/17 61/62/17
f 9/543/14 59/70/14 11/72/14
f 12/545/17 11/69/17 61/62/17
f 9/546/14 59/70/14 11/72/14
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 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 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 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 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 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 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 35/537/29 78/106/29 36/41/29
f 33/528/14 75/111/14 35/113/14
f 35/540/29 78/106/29 36/41/29
f 33/531/14 75/111/14 35/113/14
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 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 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 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 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/27/38 53/26/38 89/135/38
f 51/555/14 87/142/14 53/144/14
f 32/556/1 31/19/1 22/145/1
f 32/556/1 22/145/1 37/146/1
f 51/558/14 87/142/14 53/144/14
f 32/559/1 31/19/1 22/145/1
f 32/559/1 22/145/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 10/68/1 44/151/1 12/149/1
f 49/153/1 44/151/1 6/152/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 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 100/186/42 32/165/42 99/167/42
f 1/559/43 2/168/43 93/170/43
f 7/560/44 8/171/44 101/173/44
f 1/562/43 2/168/43 93/170/43
f 7/563/44 8/171/44 101/173/44
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 8/562/48 13/180/48 98/172/48
f 44/563/49 49/182/49 106/183/49
f 2/564/50 7/184/50 94/169/50
f 31/565/51 32/185/51 102/179/51
f 8/565/48 13/180/48 98/172/48
f 44/566/49 49/182/49 106/183/49
f 2/567/50 7/184/50 94/169/50
f 31/568/51 32/185/51 102/179/51
f 108/193/52 38/187/52 107/189/52
f 13/566/53 14/190/53 97/181/53
f 37/567/54 38/192/54 99/167/54
f 19/568/55 20/194/55 95/157/55
f 13/569/53 14/190/53 97/181/53
f 37/570/54 38/192/54 99/167/54
f 19/571/55 20/194/55 95/157/55
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 106/183/1 105/162/1 124/203/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 104/161/1 93/170/1 122/201/1
f 154/263/1 136/217/1 153/219/1
f 126/570/30 125/220/30 144/222/30
f 118/571/33 117/223/33 136/217/33
f 113/572/3 110/224/3 131/226/3
f 119/573/7 116/227/7 137/228/7
f 109/574/4 121/229/4 127/231/4
f 121/575/36 120/232/36 139/230/36
f 120/576/5 118/234/5 138/233/5
f 112/577/21 119/235/21 130/236/21
f 110/578/11 109/237/11 128/225/11
f 117/579/8 126/238/8 135/218/8
f 115/580/2 114/239/2 133/199/2
f 111/581/6 112/241/6 129/242/6
f 125/582/9 124/243/9 143/221/9
f 122/583/24 111/245/24 140/246/24
f 126/573/30 125/220/30 144/222/30
f 118/574/33 117/223/33 136/217/33
f 113/575/3 110/224/3 131/226/3
f 119/576/7 116/227/7 137/228/7
f 109/577/4 121/229/4 127/231/4
f 121/578/36 120/232/36 139/230/36
f 120/579/5 118/234/5 138/233/5
f 112/580/21 119/235/21 130/236/21
f 110/581/11 109/237/11 128/225/11
f 117/582/8 126/238/8 135/218/8
f 115/583/2 114/239/2 133/199/2
f 111/584/6 112/241/6 129/242/6
f 125/585/9 124/243/9 143/221/9
f 122/586/24 111/245/24 140/246/24
f 132/240/15 114/247/15 131/226/15
f 141/252/10 123/249/10 140/246/10
f 124/584/27 123/251/27 142/244/27
f 155/585/33 152/253/33 173/255/33
f 124/587/27 123/251/27 142/244/27
f 155/588/33 152/253/33 173/255/33
f 131/226/1 128/225/1 149/257/1
f 137/228/1 134/200/1 155/259/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 162/265/1 144/222/1 161/272/1
f 193/329/1 175/273/1 192/275/1
f 145/586/24 157/276/24 163/277/24
f 157/587/6 156/278/6 175/273/6
f 156/588/21 154/279/21 174/274/21
f 148/589/5 155/281/5 166/282/5
f 146/590/10 145/283/10 164/284/10
f 153/591/18 162/285/18 171/287/18
f 151/592/30 150/288/30 169/290/30
f 145/589/24 157/276/24 163/277/24
f 157/590/6 156/278/6 175/273/6
f 156/591/21 154/279/21 174/274/21
f 148/592/5 155/281/5 166/282/5
f 146/593/10 145/283/10 164/284/10
f 153/594/18 162/285/18 171/287/18
f 151/595/30 150/288/30 169/290/30
f 165/297/36 147/291/36 166/282/36
f 179/306/15 161/293/15 178/295/15
f 158/593/4 147/296/4 176/298/4
f 150/594/9 149/299/9 168/289/9
f 159/595/11 158/301/11 177/302/11
f 160/596/3 159/303/3 178/295/3
f 152/597/8 151/304/8 170/254/8
f 162/598/2 161/305/2 180/286/2
f 158/596/4 147/296/4 176/298/4
f 150/597/9 149/299/9 168/289/9
f 159/598/11 158/301/11 177/302/11
f 160/599/3 159/303/3 178/295/3
f 152/600/8 151/304/8 170/254/8
f 162/601/2 161/305/2 180/286/2
f 172/280/7 154/307/7 171/287/7
f 149/599/27 146/309/27 167/300/27
f 184/600/5 191/310/5 202/312/5
f 149/602/27 146/309/27 167/300/27
f 184/603/5 191/310/5 202/312/5
f 192/275/1 174/274/1 190/313/1
f 166/282/1 173/255/1 184/315/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 163/277/1 175/273/1 181/316/1
f 205/358/1 204/330/1 223/332/1
f 182/601/10 181/333/10 200/335/10
f 189/602/18 198/336/18 207/338/18
f 182/604/10 181/333/10 200/335/10
f 189/605/18 198/336/18 207/338/18
f 205/358/30 187/339/30 204/330/30
f 201/347/36 183/341/36 202/312/36
f 197/603/15 196/343/15 215/345/15
f 194/604/4 183/346/4 212/348/4
f 186/605/9 185/349/9 204/330/9
f 197/606/15 196/343/15 215/345/15
f 194/607/4 183/346/4 212/348/4
f 186/608/9 185/349/9 204/330/9
f 213/355/11 195/351/11 212/348/11
f 214/344/3 196/353/3 213/355/3
f 206/364/8 188/356/8 205/358/8
f 198/606/2 197/359/2 216/337/2
f 190/607/7 189/360/7 208/361/7
f 185/608/27 182/362/27 203/350/27
f 191/609/33 188/363/33 209/311/33
f 181/610/24 193/365/24 199/334/24
f 193/611/6 192/367/6 211/366/6
f 198/609/2 197/359/2 216/337/2
f 190/610/7 189/360/7 208/361/7
f 185/611/27 182/362/27 203/350/27
f 191/612/33 188/363/33 209/311/33
f 181/613/24 193/365/24 199/334/24
f 193/614/6 192/367/6 211/366/6
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 233/381/1 215/345/1 232/376/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 218/384/1 200/335/1 217/386/1
f 207/338/1 216/337/1 225/383/1
f 239/393/1 236/407/1 235/412/1
f 235/412/1 247/411/1 239/393/1
f 246/415/1 244/405/1 251/390/1
f 243/404/1 252/402/1 251/390/1
f 251/390/1 250/398/1 249/396/1
f 249/396/1 248/373/1 237/372/1
f 237/372/1 238/423/1 245/409/1
f 245/409/1 242/400/1 241/391/1
f 241/391/1 240/394/1 246/415/1
f 239/393/1 247/411/1 246/415/1
f 244/405/1 243/404/1 251/390/1
f 251/390/1 249/396/1 237/372/1
f 237/372/1 245/409/1 241/391/1
f 240/394/1 239/393/1 246/415/1
f 246/415/1 251/390/1 241/391/1
f 222/613/15 221/392/15 240/394/15
f 231/614/10 230/395/10 249/396/10
f 232/615/27 231/397/27 250/398/27
f 224/616/18 223/399/18 242/400/18
f 234/617/30 233/401/30 252/402/30
f 226/618/33 225/403/33 244/405/33
f 221/619/3 218/406/3 239/393/3
f 227/620/7 224/408/7 245/409/7
f 217/621/4 229/410/4 235/412/4
f 247/411/36 229/413/36 246/415/36
f 228/622/5 226/416/5 246/415/5
f 238/423/21 220/417/21 245/409/21
f 218/623/11 217/419/11 236/407/11
f 225/624/8 234/420/8 243/404/8
f 223/625/2 222/421/2 241/391/2
f 219/626/6 220/422/6 237/372/6
f 251/390/9 233/424/9 250/398/9
f 261/498/57 262/426/57 271/428/57
f 253/458/58 274/429/58 254/431/58
f 255/466/59 276/432/59 256/434/59
f 258/454/60 257/435/60 277/437/60
f 259/468/61 280/438/61 260/440/61
f 263/462/62 264/441/62 281/443/62
f 266/461/63 284/444/63 265/446/63
f 268/473/64 286/447/64 267/449/64
f 269/519/65 270/450/65 287/452/65
f 289/627/66 290/453/66 258/454/66
f 261/498/67 293/455/67 262/426/67
f 291/628/68 292/457/68 254/431/68
f 265/446/69 297/459/69 266/461/69
f 264/441/70 263/462/70 296/464/70
f 299/629/71 300/465/71 256/434/71
f 301/630/72 302/467/72 260/440/72
f 269/519/73 303/469/73 270/450/73
f 267/449/74 305/471/74 268/473/74
f 285/448/18 286/447/18 321/475/18
f 287/452/15 288/451/15 323/477/15
f 279/439/11 280/438/11 315/479/11
f 311/631/36 275/433/36 312/480/36
f 283/445/33 284/444/33 319/482/33
f 281/443/75 317/483/75 263/462/75
f 282/442/76 264/441/76 318/486/76
f 317/632/30 281/443/30 318/487/30
f 277/437/21 278/436/21 313/489/21
f 273/430/24 274/429/24 309/491/24
f 271/428/27 272/427/27 307/493/27
f 272/427/77 262/426/77 308/495/77
f 271/428/78 307/496/78 261/498/78
f 273/430/79 309/499/79 254/431/79
f 274/429/80 253/458/80 310/502/80
f 284/444/81 266/461/81 320/504/81
f 283/445/82 319/505/82 265/446/82
f 276/432/83 255/466/83 312/508/83
f 275/433/84 311/509/84 256/434/84
f 280/438/85 259/468/85 316/512/85
f 279/439/86 315/513/86 260/440/86
f 288/451/87 270/450/87 324/516/87
f 287/452/88 323/517/88 269/519/88
f 286/447/89 268/473/89 322/521/89
f 285/448/90 321/522/90 267/449/90
f 277/437/91 313/524/91 258/454/91
f 278/436/92 257/435/92 314/527/92
f 53/144/14 3/540/14 11/72/14
f 5/60/14 9/543/14 11/72/14
f 11/72/14 15/545/14 47/529/14
f 17/83/14 21/91/14 15/545/14
f 23/547/14 27/101/14 29/549/14
f 29/549/14 33/528/14 23/547/14
f 35/113/14 39/552/14 33/528/14
f 41/123/14 45/131/14 47/529/14
f 47/529/14 51/555/14 53/144/14
f 3/540/14 5/60/14 11/72/14
f 15/545/14 21/91/14 23/547/14
f 23/547/14 33/528/14 15/545/14
f 39/552/14 41/123/14 33/528/14
f 47/529/14 53/144/14 11/72/14
f 15/545/14 33/528/14 47/529/14
f 239/616/1 236/617/1 235/618/1
f 235/618/1 247/619/1 239/616/1
f 246/620/1 244/621/1 251/390/1
f 243/622/1 252/623/1 251/390/1
f 251/390/1 250/624/1 249/625/1
f 249/625/1 248/626/1 237/391/1
f 237/391/1 238/627/1 245/628/1
f 245/628/1 242/629/1 241/392/1
f 241/392/1 240/630/1 246/620/1
f 239/616/1 247/619/1 246/620/1
f 244/621/1 243/622/1 251/390/1
f 251/390/1 249/625/1 237/391/1
f 237/391/1 245/628/1 241/392/1
f 240/630/1 239/616/1 246/620/1
f 246/620/1 251/390/1 241/392/1
f 222/631/15 221/393/15 240/395/15
f 231/632/10 230/396/10 249/397/10
f 232/633/27 231/398/27 250/399/27
f 224/634/18 223/400/18 242/402/18
f 234/635/30 233/403/30 252/405/30
f 226/636/33 225/406/33 244/408/33
f 221/637/3 218/409/3 239/394/3
f 227/638/7 224/411/7 245/412/7
f 217/639/4 229/413/4 235/415/4
f 247/414/36 229/416/36 246/418/36
f 228/640/5 226/419/5 246/418/5
f 238/426/21 220/420/21 245/412/21
f 218/641/11 217/422/11 236/410/11
f 225/642/8 234/423/8 243/407/8
f 223/643/2 222/424/2 241/401/2
f 219/644/6 220/425/6 237/372/6
f 251/404/9 233/427/9 250/399/9
f 261/501/57 262/429/57 271/431/57
f 253/461/58 274/432/58 254/434/58
f 255/469/59 276/435/59 256/437/59
f 258/457/60 257/438/60 277/440/60
f 259/471/61 280/441/61 260/443/61
f 263/465/62 264/444/62 281/446/62
f 266/464/63 284/447/63 265/449/63
f 268/476/64 286/450/64 267/452/64
f 269/522/65 270/453/65 287/455/65
f 289/645/66 290/456/66 258/457/66
f 261/501/67 293/458/67 262/429/67
f 291/646/68 292/460/68 254/434/68
f 265/449/69 297/462/69 266/464/69
f 264/444/70 263/465/70 296/467/70
f 299/647/71 300/468/71 256/437/71
f 301/648/72 302/470/72 260/443/72
f 269/522/73 303/472/73 270/453/73
f 267/452/74 305/474/74 268/476/74
f 285/451/18 286/450/18 321/478/18
f 287/455/15 288/454/15 323/480/15
f 279/442/11 280/441/11 315/482/11
f 311/649/36 275/436/36 312/483/36
f 283/448/33 284/447/33 319/485/33
f 281/446/75 317/486/75 263/465/75
f 282/445/76 264/444/76 318/489/76
f 317/650/30 281/446/30 318/490/30
f 277/440/21 278/439/21 313/492/21
f 273/433/24 274/432/24 309/494/24
f 271/431/27 272/430/27 307/496/27
f 272/430/77 262/429/77 308/498/77
f 271/431/78 307/499/78 261/501/78
f 273/433/79 309/502/79 254/434/79
f 274/432/80 253/461/80 310/505/80
f 284/447/81 266/464/81 320/507/81
f 283/448/82 319/508/82 265/449/82
f 276/435/83 255/469/83 312/511/83
f 275/436/84 311/512/84 256/437/84
f 280/441/85 259/471/85 316/515/85
f 279/442/86 315/516/86 260/443/86
f 288/454/87 270/453/87 324/519/87
f 287/455/88 323/520/88 269/522/88
f 286/450/89 268/476/89 322/524/89
f 285/451/90 321/525/90 267/452/90
f 277/440/91 313/527/91 258/457/91
f 278/439/92 257/438/92 314/530/92
f 53/144/14 3/543/14 11/72/14
f 5/60/14 9/546/14 11/72/14
f 11/72/14 15/548/14 47/532/14
f 17/83/14 21/91/14 15/548/14
f 23/550/14 27/101/14 29/552/14
f 29/552/14 33/531/14 23/550/14
f 35/113/14 39/555/14 33/531/14
f 41/123/14 45/131/14 47/532/14
f 47/532/14 51/558/14 53/144/14
f 3/543/14 5/60/14 11/72/14
f 15/548/14 21/91/14 23/550/14
f 23/550/14 33/531/14 15/548/14
f 39/555/14 41/123/14 33/531/14
f 47/532/14 53/144/14 11/72/14
f 15/548/14 33/531/14 47/532/14

File diff suppressed because it is too large Load Diff

View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 954 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 892 B

View File

@ -519,6 +519,7 @@ public class ModBlocks {
public static Block dummy_port_radgen;
public static Block dummy_block_reactor_small;
public static Block dummy_port_reactor_small;
public static Block dummy_block_vault;
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_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");
@ -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_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");
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_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());
//Other Technical Blocks
GameRegistry.registerBlock(oil_pipe, oil_pipe.getUnlocalizedName());

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

View File

@ -1,13 +1,19 @@
package com.hbm.blocks.machine;
import com.hbm.interfaces.IBomb;
import com.hbm.interfaces.IMultiblock;
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 VaultDoor extends BlockContainer {
public class VaultDoor extends BlockContainer implements IBomb, IMultiblock {
public VaultDoor(Material p_i45386_1_) {
super(p_i45386_1_);
@ -33,4 +39,209 @@ public class VaultDoor extends BlockContainer {
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;
}
}
}

View File

@ -2377,6 +2377,16 @@ public class MachineRecipes {
list.add(new ItemStack(Items.redstone, 4));
list.add(new ItemStack(ModBlocks.steel_roof, 5));
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:
list.add(new ItemStack(ModItems.centrifuge_tower, 1));
list.add(new ItemStack(ModItems.ingot_steel, 4));
@ -3746,6 +3756,9 @@ public class MachineRecipes {
case HATCH_CONTROLLER:
output = new ItemStack(ModBlocks.seal_controller, 1);
break;
case BLAST_DOOR:
output = new ItemStack(ModBlocks.vault_door, 1);
break;
case CENTRIFUGE:
output = new ItemStack(ModBlocks.machine_centrifuge, 1);
break;

View File

@ -1142,6 +1142,7 @@ public class ModItems {
public static Item igniter;
public static Item detonator;
public static Item detonator_multi;
public static Item crate_caller;
public static Item meteor_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");
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");
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");
@ -3596,6 +3598,7 @@ public class ModItems {
GameRegistry.registerItem(chainsaw, chainsaw.getUnlocalizedName());
GameRegistry.registerItem(igniter, igniter.getUnlocalizedName());
GameRegistry.registerItem(detonator, detonator.getUnlocalizedName());
GameRegistry.registerItem(detonator_multi, detonator_multi.getUnlocalizedName());
GameRegistry.registerItem(crate_caller, crate_caller.getUnlocalizedName());
GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName());
GameRegistry.registerItem(hazmat_helmet, hazmat_helmet.getUnlocalizedName());

View File

@ -140,6 +140,7 @@ public class ItemAssemblyTemplate extends Item {
CMB_BRICKS,
HATCH_FRAME,
HATCH_CONTROLLER,
BLAST_DOOR,
CENTRIFUGE,
BREEDING_REACTOR,
RTG_FURNACE,
@ -585,6 +586,8 @@ public class ItemAssemblyTemplate extends Item {
return 50;
case HATCH_CONTROLLER:
return 100;
case BLAST_DOOR:
return 300;
case CENTRIFUGE:
return 250;
case BREEDING_REACTOR:

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

View File

@ -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.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.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_counter_resonant, 1), new Object[] { "CTC", "TST", "CTC", 'C', ModItems.plate_combine_steel, 'T', ModItems.ingot_magnetized_tungsten, 'S', ModItems.singularity });

View File

@ -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_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_label = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/vault_label.obj"));
////Textures TEs
@ -178,6 +179,14 @@ public class ResourceManager {
//Vault Door
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_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");

View File

@ -65,6 +65,8 @@ public class PacketDispatcher {
wrapper.registerMessage(SatLaserPacket.Handler.class, SatLaserPacket.class, i++, Side.SERVER);
//Universal package for sending small info packs back to 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);
}
}

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

View File

@ -5,6 +5,7 @@ import org.lwjgl.opengl.GL11;
import com.hbm.main.MainRegistry;
import com.hbm.main.ResourceManager;
import com.hbm.tileentity.machine.TileEntityMachineReactorSmall;
import com.hbm.tileentity.machine.TileEntityVaultDoor;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.tileentity.TileEntity;
@ -13,12 +14,29 @@ public class RenderVaultDoor extends TileEntitySpecialRenderer {
@Override
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.glTranslated(x + 0.5D, y, z + 0.5D);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_CULL_FACE);
GL11.glRotatef(180, 0F, 1F, 0F);
switch(tileEntity.getBlockMetadata())
{
case 2:
GL11.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);
ResourceManager.vault_frame.renderAll();
@ -30,17 +48,43 @@ public class RenderVaultDoor extends TileEntitySpecialRenderer {
GL11.glTranslated(0.0D, -2.5D, 0.0D);
double[] timer = getAnimationFromSysTime(System.currentTimeMillis() - MainRegistry.time);
//double[] timer = getAnimationFromSysTime(MainRegistry.time + 12500 - System.currentTimeMillis());
double[] timer;
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(0.0D, 5D, 0.0D);
GL11.glRotated(timer[2], 1, 0, 0);
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();
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();
}

View File

@ -1,12 +1,28 @@
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.SideOnly;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
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
public AxisAlignedBB getRenderBoundingBox() {
return TileEntity.INFINITE_EXTENT_AABB;
@ -19,4 +35,221 @@ public class TileEntityVaultDoor extends TileEntity {
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);
}
}