diff --git a/assets/hbm/models/missileMIRV.obj b/assets/hbm/models/missileMIRV.obj index f18c99d8a..f28ac0a44 100644 --- a/assets/hbm/models/missileMIRV.obj +++ b/assets/hbm/models/missileMIRV.obj @@ -82,168 +82,170 @@ v -0.152782 6.000000 -0.228654 v 0.053650 6.000000 0.269716 v -0.053650 6.000000 0.269716 v -0.152782 6.000000 0.228654 -vt 0.685668 0.290217 -vt 0.658852 0.290217 -vt 0.658853 0.015310 -vt 0.632036 0.290217 -vt 0.632037 0.015310 -vt 0.605220 0.290217 -vt 0.605221 0.015310 -vt 0.578405 0.290217 -vt 0.578405 0.015310 -vt 0.551589 0.290217 -vt 0.551589 0.015310 -vt 0.980642 0.290219 -vt 0.953826 0.290219 -vt 0.953828 0.015312 -vt 0.927010 0.290218 -vt 0.927012 0.015312 -vt 0.900194 0.290218 -vt 0.900196 0.015312 -vt 0.873379 0.290218 -vt 0.873381 0.015312 -vt 0.846563 0.290218 -vt 0.846565 0.015311 -vt 0.819747 0.290218 -vt 0.819749 0.015311 -vt 0.792931 0.290218 -vt 0.792933 0.015311 -vt 0.766115 0.290217 -vt 0.766117 0.015311 -vt 0.739300 0.290217 -vt 0.739301 0.015311 -vt 0.977288 0.497086 -vt 0.957176 0.497086 -vt 0.712484 0.290217 -vt 0.685669 0.015311 -vt 0.712485 0.015311 -vt 0.439181 0.150122 -vt 0.385211 0.069290 -vt 0.466044 0.015320 -vt 0.762762 0.497085 -vt 0.762761 0.703264 -vt 0.742649 0.703264 -vt 0.843209 0.497085 -vt 0.823098 0.497085 -vt 0.709131 0.497084 -vt 0.689019 0.497084 -vt 0.601868 0.497084 -vt 0.896841 0.497085 -vt 0.742651 0.497084 -vt 0.655500 0.497084 -vt 0.635388 0.497084 -vt 0.950472 0.497086 -vt 0.930361 0.497086 -vt 0.816394 0.497085 -vt 0.796282 0.497085 -vt 0.575052 0.497084 -vt 0.554941 0.497084 -vt 0.870025 0.497085 -vt 0.849913 0.497085 -vt 0.735947 0.497085 -vt 0.715835 0.497084 -vt 0.628684 0.497084 -vt 0.923656 0.497085 -vt 0.903545 0.497085 -vt 0.682315 0.497084 -vt 0.662203 0.497084 -vt 0.789578 0.497085 -vt 0.769466 0.497084 -vt 0.816393 0.703263 -vt 0.813711 0.841375 -vt 0.798962 0.841375 -vt 0.950470 0.703263 -vt 0.930359 0.703263 -vt 0.735946 0.703262 -vt 0.715834 0.703262 -vt 0.923655 0.703264 -vt 0.903543 0.703263 -vt 0.682315 0.703264 -vt 0.662203 0.703264 -vt 0.709130 0.703263 -vt 0.689018 0.703263 -vt 0.896839 0.703264 -vt 0.876727 0.703264 -vt 0.655499 0.703264 -vt 0.635387 0.703264 -vt 0.870024 0.703264 -vt 0.849912 0.703264 -vt 0.628684 0.703262 -vt 0.608572 0.703262 -vt 0.843208 0.703262 -vt 0.823096 0.703262 -vt 0.601868 0.703263 -vt 0.581756 0.703263 -vt 0.796281 0.703263 -vt 0.575052 0.703262 -vt 0.554940 0.703262 -vt 0.789577 0.703265 -vt 0.769465 0.703265 -vt 0.977286 0.703265 -vt 0.957174 0.703265 -vt 0.611254 0.841372 -vt 0.626003 0.841372 -vt 0.618629 0.983736 -vt 0.572370 0.841374 -vt 0.786895 0.841378 -vt 0.772146 0.841378 -vt 0.974604 0.841378 -vt 0.959855 0.841378 -vt 0.760079 0.841377 -vt 0.745330 0.841377 -vt 0.947787 0.841374 -vt 0.733263 0.841373 -vt 0.920972 0.841376 -vt 0.679633 0.841378 -vt 0.664884 0.841378 -vt 0.706448 0.841375 -vt 0.894157 0.841377 -vt 0.879408 0.841377 -vt 0.652817 0.841377 -vt 0.638068 0.841377 -vt 0.867342 0.841377 -vt 0.852593 0.841377 -vt 0.840526 0.841373 -vt 0.825777 0.841373 -vt 0.599187 0.841377 -vt 0.584438 0.841377 -vt 0.859966 0.983742 -vt 0.886782 0.983742 -vt 0.913597 0.983742 -vt 0.906224 0.841376 -vt 0.940412 0.983736 -vt 0.933039 0.841373 -vt 0.967228 0.983745 -vt 0.645443 0.983745 -vt 0.564996 0.983739 -vt 0.557621 0.841374 -vt 0.591813 0.983742 -vt 0.833151 0.983735 -vt 0.806336 0.983739 -vt 0.779520 0.983745 -vt 0.752703 0.983743 -vt 0.725889 0.983735 -vt 0.718515 0.841372 -vt 0.699074 0.983741 -vt 0.691700 0.841375 -vt 0.672258 0.983745 -vt 0.980644 0.015313 -vt 0.490815 0.025590 -vt 0.509770 0.044558 -vt 0.520023 0.069336 -vt 0.520014 0.096152 -vt 0.509743 0.120923 -vt 0.490775 0.139878 -vt 0.465997 0.150132 -vt 0.414410 0.139852 -vt 0.395455 0.120884 -vt 0.385202 0.096105 -vt 0.395482 0.044519 -vt 0.414450 0.025564 -vt 0.439228 0.015310 -vt 0.581756 0.497084 -vt 0.876729 0.497085 -vt 0.608572 0.497084 +vt 0.614465 0.355173 +vt 0.582182 0.355174 +vt 0.582181 0.024218 +vt 0.549899 0.355174 +vt 0.549898 0.024218 +vt 0.517616 0.355174 +vt 0.517615 0.024218 +vt 0.485333 0.355174 +vt 0.485331 0.024218 +vt 0.453049 0.355174 +vt 0.453048 0.024218 +vt 0.969580 0.355174 +vt 0.937297 0.355174 +vt 0.937298 0.024218 +vt 0.905014 0.355174 +vt 0.905015 0.024218 +vt 0.872730 0.355174 +vt 0.872732 0.024218 +vt 0.840447 0.355174 +vt 0.840448 0.024218 +vt 0.808164 0.355173 +vt 0.808165 0.024218 +vt 0.775881 0.355173 +vt 0.775881 0.024218 +vt 0.743598 0.355173 +vt 0.743598 0.024218 +vt 0.711315 0.355173 +vt 0.711315 0.024218 +vt 0.679032 0.355173 +vt 0.679031 0.024218 +vt 0.965543 0.604218 +vt 0.941331 0.604218 +vt 0.646748 0.355173 +vt 0.614465 0.024218 +vt 0.646748 0.024218 +vt 0.872257 0.814551 +vt 0.807283 0.717237 +vt 0.904596 0.652263 +vt 0.211315 0.024218 +vt 0.211315 0.272435 +vt 0.187102 0.272435 +vt 0.804128 0.604218 +vt 0.779916 0.604218 +vt 0.642713 0.604218 +vt 0.618501 0.604218 +vt 0.513581 0.604218 +vt 0.868694 0.604218 +vt 0.707279 0.604218 +vt 0.683067 0.604218 +vt 0.578147 0.604218 +vt 0.553935 0.604218 +vt 0.933260 0.604218 +vt 0.909048 0.604218 +vt 0.771845 0.604218 +vt 0.747633 0.604218 +vt 0.481298 0.604218 +vt 0.457086 0.604218 +vt 0.836411 0.604218 +vt 0.812199 0.604218 +vt 0.674996 0.604218 +vt 0.650784 0.604218 +vt 0.545864 0.604218 +vt 0.900977 0.604218 +vt 0.876765 0.604218 +vt 0.610430 0.604218 +vt 0.586218 0.604218 +vt 0.739562 0.604218 +vt 0.715350 0.604218 +vt 0.259740 0.272435 +vt 0.256511 0.438707 +vt 0.238756 0.438707 +vt 0.380801 0.024219 +vt 0.380801 0.272435 +vt 0.356589 0.272435 +vt 0.187103 0.024218 +vt 0.162890 0.272435 +vt 0.356589 0.024219 +vt 0.332377 0.272435 +vt 0.138679 0.024218 +vt 0.138678 0.272435 +vt 0.114465 0.272435 +vt 0.162891 0.024218 +vt 0.332377 0.024219 +vt 0.308164 0.272435 +vt 0.114466 0.024218 +vt 0.090253 0.272434 +vt 0.308165 0.024219 +vt 0.283952 0.272435 +vt 0.090254 0.024218 +vt 0.066041 0.272434 +vt 0.283952 0.024219 +vt 0.066042 0.024218 +vt 0.041828 0.272434 +vt 0.259740 0.024219 +vt 0.235527 0.272435 +vt 0.041829 0.024218 +vt 0.017616 0.272434 +vt 0.235528 0.024219 +vt 0.405014 0.024219 +vt 0.405014 0.272435 +vt 0.069268 0.438705 +vt 0.087024 0.438705 +vt 0.078146 0.610096 +vt 0.038599 0.438707 +vt 0.232299 0.438707 +vt 0.214543 0.438707 +vt 0.401786 0.438707 +vt 0.384030 0.438707 +vt 0.208086 0.438707 +vt 0.190330 0.438707 +vt 0.377573 0.438706 +vt 0.183874 0.438706 +vt 0.353361 0.438707 +vt 0.135449 0.438707 +vt 0.117693 0.438707 +vt 0.159662 0.438707 +vt 0.329149 0.438707 +vt 0.311393 0.438707 +vt 0.111237 0.438707 +vt 0.093481 0.438707 +vt 0.304936 0.438707 +vt 0.287180 0.438707 +vt 0.280723 0.438706 +vt 0.262968 0.438706 +vt 0.062812 0.438707 +vt 0.045056 0.438707 +vt 0.296057 0.610098 +vt 0.320271 0.610099 +vt 0.344483 0.610101 +vt 0.335605 0.438707 +vt 0.368695 0.610095 +vt 0.359817 0.438706 +vt 0.392908 0.610101 +vt 0.102358 0.610101 +vt 0.029721 0.610100 +vt 0.020843 0.438707 +vt 0.053934 0.610099 +vt 0.271846 0.610095 +vt 0.247634 0.610098 +vt 0.223421 0.610099 +vt 0.199207 0.610098 +vt 0.174995 0.610095 +vt 0.166118 0.438706 +vt 0.150783 0.610101 +vt 0.141906 0.438707 +vt 0.126570 0.610099 +vt 0.969581 0.024218 +vt 0.934418 0.664628 +vt 0.957238 0.687463 +vt 0.969581 0.717294 +vt 0.969570 0.749577 +vt 0.957206 0.779398 +vt 0.934370 0.802218 +vt 0.904540 0.814562 +vt 0.842436 0.802186 +vt 0.819616 0.779351 +vt 0.807272 0.749521 +vt 0.819648 0.687416 +vt 0.842483 0.664596 +vt 0.872313 0.652252 +vt 0.489369 0.604218 +vt 0.844482 0.604218 +vt 0.521652 0.604218 +vt 0.017617 0.024218 vn 0.000000 0.000000 -1.000000 vn 0.382700 0.000000 -0.923900 vn 0.707100 0.000000 -0.707100 @@ -333,70 +335,70 @@ f 20/21/19 38/42/19 39/43/19 f 32/33/20 40/44/20 41/45/20 f 8/8/21 6/6/21 42/46/21 f 18/19/22 16/17/22 43/47/22 -f 26/27/23 35/39/23 44/48/23 -f 2/2/24 45/49/24 46/50/24 -f 12/13/25 31/51/25 47/52/25 -f 22/23/26 39/53/26 48/54/26 -f 8/8/27 49/55/27 30/56/27 -f 18/19/28 50/57/28 38/58/28 -f 28/29/29 44/59/29 40/60/29 -f 6/6/30 4/4/30 46/61/30 -f 14/15/31 47/62/31 43/63/31 -f 1/1/32 41/64/32 45/65/32 -f 24/25/33 48/66/33 35/67/33 -f 51/68/34 52/69/34 53/70/34 -f 31/51/7 54/71/7 55/72/7 -f 44/59/17 37/73/17 56/74/17 -f 47/62/8 55/75/8 57/76/8 -f 41/64/1 58/77/1 59/78/1 -f 40/44/16 56/79/16 58/80/16 -f 43/47/9 57/81/9 60/82/9 -f 45/49/2 59/83/2 61/84/2 -f 50/57/10 60/85/10 62/86/10 -f 46/61/3 61/87/3 63/88/3 -f 38/42/11 62/89/11 51/90/11 -f 42/46/4 63/91/4 64/92/4 -f 39/53/12 51/68/12 65/93/12 -f 49/55/5 64/94/5 66/95/5 -f 48/66/13 65/96/13 36/97/13 -f 30/31/6 66/98/6 54/99/6 -f 67/100/35 68/101/35 69/102/35 -f 66/95/36 64/94/36 70/103/36 -f 65/96/37 53/104/37 71/105/37 -f 66/98/38 72/106/38 73/107/38 -f 36/40/39 71/108/39 74/109/39 -f 55/72/40 54/71/40 73/110/40 -f 56/74/41 37/73/41 74/111/41 -f 57/76/42 55/75/42 75/112/42 -f 58/77/43 76/113/43 77/114/43 -f 58/80/44 56/79/44 78/115/44 -f 57/81/45 79/116/45 80/117/45 -f 59/83/46 77/118/46 68/119/46 -f 60/85/47 80/120/47 81/121/47 -f 61/87/48 68/101/48 67/100/48 -f 62/89/49 81/122/49 52/123/49 -f 63/91/50 67/124/50 70/125/50 -f 80/120/51 69/126/51 81/121/51 -f 79/116/52 69/127/52 80/117/52 -f 75/112/53 69/128/53 79/129/53 -f 73/110/54 69/130/54 75/131/54 -f 72/106/55 69/132/55 73/107/55 -f 77/118/56 69/133/56 68/119/56 -f 70/103/57 69/134/57 72/135/57 -f 67/124/58 69/136/58 70/125/58 -f 81/122/59 69/137/59 52/123/59 -f 52/69/60 69/138/60 53/70/60 -f 53/104/61 69/139/61 71/105/61 -f 71/108/62 69/140/62 74/109/62 -f 74/111/63 69/141/63 78/142/63 -f 78/115/64 69/143/64 76/144/64 -f 76/113/65 69/145/65 77/114/65 +f 26/27/23 35/48/23 44/49/23 +f 2/2/24 45/50/24 46/51/24 +f 12/13/25 31/52/25 47/53/25 +f 22/23/26 39/54/26 48/55/26 +f 8/8/27 49/56/27 30/57/27 +f 18/19/28 50/58/28 38/59/28 +f 28/29/29 44/60/29 40/61/29 +f 6/6/30 4/4/30 46/62/30 +f 14/15/31 47/63/31 43/64/31 +f 1/1/32 41/65/32 45/66/32 +f 24/25/33 48/67/33 35/68/33 +f 51/69/34 52/70/34 53/71/34 +f 31/72/7 54/73/7 55/74/7 +f 44/75/17 37/41/17 56/76/17 +f 47/77/8 55/74/8 57/78/8 +f 41/79/1 58/80/1 59/81/1 +f 40/82/16 56/76/16 58/80/16 +f 43/83/9 57/78/9 60/84/9 +f 45/85/2 59/81/2 61/86/2 +f 50/87/10 60/84/10 62/88/10 +f 46/89/3 61/86/3 63/90/3 +f 38/91/11 62/88/11 51/69/11 +f 42/92/4 63/90/4 64/93/4 +f 39/94/12 51/69/12 65/95/12 +f 49/96/5 64/93/5 66/97/5 +f 48/98/13 65/95/13 36/40/13 +f 30/99/6 66/100/6 54/73/6 +f 67/101/35 68/102/35 69/103/35 +f 66/97/36 64/93/36 70/104/36 +f 65/95/37 53/105/37 71/106/37 +f 66/100/38 72/107/38 73/108/38 +f 36/40/39 71/109/39 74/110/39 +f 55/74/40 54/73/40 73/111/40 +f 56/76/41 37/41/41 74/112/41 +f 57/78/42 55/74/42 75/113/42 +f 58/80/43 76/114/43 77/115/43 +f 58/80/44 56/76/44 78/116/44 +f 57/78/45 79/117/45 80/118/45 +f 59/81/46 77/119/46 68/120/46 +f 60/84/47 80/121/47 81/122/47 +f 61/86/48 68/102/48 67/101/48 +f 62/88/49 81/123/49 52/124/49 +f 63/90/50 67/125/50 70/126/50 +f 80/121/51 69/127/51 81/122/51 +f 79/117/52 69/128/52 80/118/52 +f 75/113/53 69/129/53 79/130/53 +f 73/111/54 69/131/54 75/132/54 +f 72/107/55 69/133/55 73/108/55 +f 77/119/56 69/134/56 68/120/56 +f 70/104/57 69/135/57 72/136/57 +f 67/125/58 69/137/58 70/126/58 +f 81/123/59 69/138/59 52/124/59 +f 52/70/60 69/139/60 53/71/60 +f 53/105/61 69/140/61 71/106/61 +f 71/109/62 69/141/62 74/110/62 +f 74/112/63 69/142/63 78/143/63 +f 78/116/64 69/144/64 76/145/64 +f 76/114/65 69/146/65 77/115/65 f 33/34/1 1/1/1 3/3/1 f 3/3/2 2/2/2 5/5/2 f 5/5/3 4/4/3 7/7/3 f 7/7/4 6/6/4 9/9/4 f 9/9/5 8/8/5 11/11/5 -f 11/146/6 10/12/6 13/14/6 +f 11/147/6 10/12/6 13/14/6 f 13/14/7 12/13/7 15/16/7 f 15/16/8 14/15/8 17/18/8 f 17/18/9 16/17/9 19/20/9 @@ -408,63 +410,63 @@ f 27/28/14 26/27/14 29/30/14 f 12/13/15 10/12/15 31/32/15 f 34/35/16 32/33/16 33/34/16 f 29/30/17 28/29/17 34/35/17 -f 34/38/18 33/147/18 3/148/18 -f 3/148/18 5/149/18 34/38/18 -f 7/150/18 9/151/18 15/36/18 -f 11/152/18 13/153/18 15/36/18 -f 15/36/18 17/154/18 23/37/18 -f 19/155/18 21/156/18 23/37/18 -f 23/37/18 25/157/18 27/158/18 -f 27/158/18 29/159/18 23/37/18 -f 34/38/18 5/149/18 7/150/18 -f 9/151/18 11/152/18 15/36/18 -f 17/154/18 19/155/18 23/37/18 -f 23/37/18 29/159/18 34/38/18 -f 34/38/18 7/150/18 15/36/18 -f 44/48/14 35/39/14 37/41/14 +f 34/38/18 33/148/18 3/149/18 +f 3/149/18 5/150/18 34/38/18 +f 7/151/18 9/152/18 15/36/18 +f 11/153/18 13/154/18 15/36/18 +f 15/36/18 17/155/18 23/37/18 +f 19/156/18 21/157/18 23/37/18 +f 23/37/18 25/158/18 27/159/18 +f 27/159/18 29/160/18 23/37/18 +f 34/38/18 5/150/18 7/151/18 +f 9/152/18 11/153/18 15/36/18 +f 17/155/18 19/156/18 23/37/18 +f 23/37/18 29/160/18 34/38/18 +f 34/38/18 7/151/18 15/36/18 +f 44/75/14 35/39/14 37/41/14 f 22/23/19 20/21/19 39/43/19 f 1/1/20 32/33/20 41/45/20 -f 49/160/21 8/8/21 42/46/21 -f 50/161/22 18/19/22 43/47/22 -f 28/29/23 26/27/23 44/48/23 -f 4/4/24 2/2/24 46/50/24 -f 14/15/25 12/13/25 47/52/25 -f 24/25/26 22/23/26 48/54/26 -f 10/10/27 8/8/27 30/56/27 -f 20/21/28 18/19/28 38/58/28 -f 32/33/29 28/29/29 40/60/29 -f 42/162/30 6/6/30 46/61/30 -f 16/17/31 14/15/31 43/63/31 -f 2/2/32 1/1/32 45/65/32 -f 26/27/33 24/25/33 35/67/33 -f 65/93/34 51/68/34 53/70/34 -f 47/52/7 31/51/7 55/72/7 -f 40/60/17 44/59/17 56/74/17 -f 43/63/8 47/62/8 57/76/8 -f 45/65/1 41/64/1 59/78/1 -f 41/45/16 40/44/16 58/80/16 -f 50/161/9 43/47/9 60/82/9 -f 46/50/2 45/49/2 61/84/2 -f 38/58/10 50/57/10 62/86/10 -f 42/162/3 46/61/3 63/88/3 -f 39/43/11 38/42/11 51/90/11 -f 49/160/4 42/46/4 64/92/4 -f 48/54/12 39/53/12 65/93/12 -f 30/56/5 49/55/5 66/95/5 -f 35/67/13 48/66/13 36/97/13 -f 31/32/6 30/31/6 54/99/6 -f 72/135/36 66/95/36 70/103/36 -f 36/97/37 65/96/37 71/105/37 -f 54/99/38 66/98/38 73/107/38 -f 37/41/39 36/40/39 74/109/39 -f 75/131/40 55/72/40 73/110/40 -f 78/142/41 56/74/41 74/111/41 -f 79/129/42 57/76/42 75/112/42 -f 59/78/43 58/77/43 77/114/43 -f 76/144/44 58/80/44 78/115/44 -f 60/82/45 57/81/45 80/117/45 -f 61/84/46 59/83/46 68/119/46 -f 62/86/47 60/85/47 81/121/47 -f 63/88/48 61/87/48 67/100/48 -f 51/90/49 62/89/49 52/123/49 -f 64/92/50 63/91/50 70/125/50 +f 49/161/21 8/8/21 42/46/21 +f 50/162/22 18/19/22 43/47/22 +f 28/29/23 26/27/23 44/49/23 +f 4/4/24 2/2/24 46/51/24 +f 14/15/25 12/13/25 47/53/25 +f 24/25/26 22/23/26 48/55/26 +f 10/10/27 8/8/27 30/57/27 +f 20/21/28 18/19/28 38/59/28 +f 32/33/29 28/29/29 40/61/29 +f 42/163/30 6/6/30 46/62/30 +f 16/17/31 14/15/31 43/64/31 +f 2/2/32 1/1/32 45/66/32 +f 26/27/33 24/25/33 35/68/33 +f 65/95/34 51/69/34 53/71/34 +f 47/77/7 31/72/7 55/74/7 +f 40/82/17 44/75/17 56/76/17 +f 43/83/8 47/77/8 57/78/8 +f 45/85/1 41/79/1 59/81/1 +f 41/79/16 40/82/16 58/80/16 +f 50/87/9 43/83/9 60/84/9 +f 46/89/2 45/85/2 61/86/2 +f 38/91/10 50/87/10 62/88/10 +f 42/92/3 46/89/3 63/90/3 +f 39/94/11 38/91/11 51/69/11 +f 49/96/4 42/92/4 64/93/4 +f 48/98/12 39/94/12 65/95/12 +f 30/164/5 49/96/5 66/97/5 +f 35/39/13 48/98/13 36/40/13 +f 31/72/6 30/99/6 54/73/6 +f 72/136/36 66/97/36 70/104/36 +f 36/40/37 65/95/37 71/106/37 +f 54/73/38 66/100/38 73/108/38 +f 37/41/39 36/40/39 74/110/39 +f 75/132/40 55/74/40 73/111/40 +f 78/143/41 56/76/41 74/112/41 +f 79/130/42 57/78/42 75/113/42 +f 59/81/43 58/80/43 77/115/43 +f 76/145/44 58/80/44 78/116/44 +f 60/84/45 57/78/45 80/118/45 +f 61/86/46 59/81/46 68/120/46 +f 62/88/47 60/84/47 81/122/47 +f 63/90/48 61/86/48 67/101/48 +f 51/69/49 62/88/49 52/124/49 +f 64/93/50 63/90/50 70/126/50 diff --git a/assets/hbm/textures/blocks/machine_spp_b_side.png b/assets/hbm/textures/blocks/machine_spp_b_side.png new file mode 100644 index 000000000..455af2165 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_spp_b_side.png differ diff --git a/assets/hbm/textures/blocks/machine_spp_b_top.png b/assets/hbm/textures/blocks/machine_spp_b_top.png new file mode 100644 index 000000000..8fb18bed5 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_spp_b_top.png differ diff --git a/assets/hbm/textures/blocks/machine_spp_blank.png b/assets/hbm/textures/blocks/machine_spp_blank.png new file mode 100644 index 000000000..e907459af Binary files /dev/null and b/assets/hbm/textures/blocks/machine_spp_blank.png differ diff --git a/assets/hbm/textures/blocks/machine_spp_t_bottom.png b/assets/hbm/textures/blocks/machine_spp_t_bottom.png new file mode 100644 index 000000000..366d992c7 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_spp_t_bottom.png differ diff --git a/assets/hbm/textures/blocks/machine_spp_t_side.png b/assets/hbm/textures/blocks/machine_spp_t_side.png new file mode 100644 index 000000000..f75391ca1 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_spp_t_side.png differ diff --git a/assets/hbm/textures/gui/gui_radgen.png b/assets/hbm/textures/gui/gui_radgen.png new file mode 100644 index 000000000..2bf92b976 Binary files /dev/null and b/assets/hbm/textures/gui/gui_radgen.png differ diff --git a/assets/hbm/textures/items/cd650_mo8_backup.png b/assets/hbm/textures/items/cd650_mo8_backup.png new file mode 100644 index 000000000..46f487f1b Binary files /dev/null and b/assets/hbm/textures/items/cd650_mo8_backup.png differ diff --git a/assets/hbm/textures/items/dynosphere_desh_charged.png b/assets/hbm/textures/items/dynosphere_desh_charged.png index a30297674..59b9f18ff 100644 Binary files a/assets/hbm/textures/items/dynosphere_desh_charged.png and b/assets/hbm/textures/items/dynosphere_desh_charged.png differ diff --git a/assets/hbm/textures/items/dynosphere_dineutronium_charged.png b/assets/hbm/textures/items/dynosphere_dineutronium_charged.png index 100579006..38117925c 100644 Binary files a/assets/hbm/textures/items/dynosphere_dineutronium_charged.png and b/assets/hbm/textures/items/dynosphere_dineutronium_charged.png differ diff --git a/assets/hbm/textures/items/dynosphere_euphemium_charged.png b/assets/hbm/textures/items/dynosphere_euphemium_charged.png index f326217a4..562755686 100644 Binary files a/assets/hbm/textures/items/dynosphere_euphemium_charged.png and b/assets/hbm/textures/items/dynosphere_euphemium_charged.png differ diff --git a/assets/hbm/textures/items/dynosphere_schrabidium_charged.png b/assets/hbm/textures/items/dynosphere_schrabidium_charged.png index d92220b32..4d605201b 100644 Binary files a/assets/hbm/textures/items/dynosphere_schrabidium_charged.png and b/assets/hbm/textures/items/dynosphere_schrabidium_charged.png differ diff --git a/assets/hbm/textures/items/fd144_mo8_backup.png b/assets/hbm/textures/items/fd144_mo8_backup.png new file mode 100644 index 000000000..2708d42a8 Binary files /dev/null and b/assets/hbm/textures/items/fd144_mo8_backup.png differ diff --git a/assets/hbm/textures/items/fd144_mo8_backup_alt.png b/assets/hbm/textures/items/fd144_mo8_backup_alt.png new file mode 100644 index 000000000..cafc8f99f Binary files /dev/null and b/assets/hbm/textures/items/fd144_mo8_backup_alt.png differ diff --git a/assets/hbm/textures/items/grenade_gascan.png b/assets/hbm/textures/items/grenade_gascan.png new file mode 100644 index 000000000..ca491e01a Binary files /dev/null and b/assets/hbm/textures/items/grenade_gascan.png differ diff --git a/assets/hbm/textures/models/missileEndo.png b/assets/hbm/textures/models/missileEndo.png new file mode 100644 index 000000000..df6d25975 Binary files /dev/null and b/assets/hbm/textures/models/missileEndo.png differ diff --git a/assets/hbm/textures/models/missileExo.png b/assets/hbm/textures/models/missileExo.png new file mode 100644 index 000000000..678073b96 Binary files /dev/null and b/assets/hbm/textures/models/missileExo.png differ diff --git a/assets/hbm/textures/models/missileHuge_BU.png b/assets/hbm/textures/models/missileHuge_BU.png new file mode 100644 index 000000000..2df487384 Binary files /dev/null and b/assets/hbm/textures/models/missileHuge_BU.png differ diff --git a/assets/hbm/textures/models/missileHuge_CL.png b/assets/hbm/textures/models/missileHuge_CL.png new file mode 100644 index 000000000..cba5500d5 Binary files /dev/null and b/assets/hbm/textures/models/missileHuge_CL.png differ diff --git a/assets/hbm/textures/models/missileHuge_HE.png b/assets/hbm/textures/models/missileHuge_HE.png new file mode 100644 index 000000000..2e647789c Binary files /dev/null and b/assets/hbm/textures/models/missileHuge_HE.png differ diff --git a/assets/hbm/textures/models/missileHuge_IN.png b/assets/hbm/textures/models/missileHuge_IN.png new file mode 100644 index 000000000..0cb6be630 Binary files /dev/null and b/assets/hbm/textures/models/missileHuge_IN.png differ diff --git a/assets/hbm/textures/models/missileMIRV.png b/assets/hbm/textures/models/missileMIRV.png new file mode 100644 index 000000000..dd01c3d04 Binary files /dev/null and b/assets/hbm/textures/models/missileMIRV.png differ diff --git a/assets/hbm/textures/models/missileNuclear.png b/assets/hbm/textures/models/missileNuclear.png new file mode 100644 index 000000000..3ff7998b2 Binary files /dev/null and b/assets/hbm/textures/models/missileNuclear.png differ diff --git a/assets/hbm/textures/models/missileTaint.png b/assets/hbm/textures/models/missileTaint.png index e5bf2fd4b..421e19811 100644 Binary files a/assets/hbm/textures/models/missileTaint.png and b/assets/hbm/textures/models/missileTaint.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index e6252fba0..5410e5be2 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -393,6 +393,9 @@ public class ModBlocks { public static Block machine_siren; public static final int guiID_siren = 57; + public static Block machine_spp_bottom; + public static Block machine_spp_top; + public static Block turret_light; public static Block turret_heavy; public static Block turret_rocket; @@ -755,6 +758,9 @@ public class ModBlocks { machine_reix_mainframe = new MachineReiXMainframe(Material.iron).setBlockName("machine_reix_mainframe").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock); machine_siren = new MachineSiren(Material.iron).setBlockName("machine_siren").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke).setBlockTextureName(RefStrings.MODID + ":machine_siren"); + + machine_spp_bottom = new SPPBottom(Material.iron).setBlockName("machine_spp_bottom").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke); + machine_spp_top = new SPPTop(Material.iron).setBlockName("machine_spp_top").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabNuke); cheater_virus = new CheaterVirus(Material.iron).setBlockName("cheater_virus").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus"); cheater_virus_seed = new CheaterVirusSeed(Material.iron).setBlockName("cheater_virus_seed").setHardness(Float.POSITIVE_INFINITY).setResistance(Float.POSITIVE_INFINITY).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":cheater_virus_seed"); @@ -1009,6 +1015,8 @@ public class ModBlocks { GameRegistry.registerBlock(machine_industrial_generator, machine_industrial_generator.getUnlocalizedName()); GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName()); GameRegistry.registerBlock(machine_rtg_grey, machine_rtg_grey.getUnlocalizedName()); + GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName()); + GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName()); //GameRegistry.registerBlock(machine_rtg_red, machine_rtg_red.getUnlocalizedName()); //GameRegistry.registerBlock(machine_rtg_orange, machine_rtg_orange.getUnlocalizedName()); //GameRegistry.registerBlock(machine_rtg_yellow, machine_rtg_yellow.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/BlockTaint.java b/com/hbm/blocks/bomb/BlockTaint.java index daeaa23b1..577af9813 100644 --- a/com/hbm/blocks/bomb/BlockTaint.java +++ b/com/hbm/blocks/bomb/BlockTaint.java @@ -30,7 +30,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.world.World; -public class BlockTaint extends BlockContainer { +public class BlockTaint extends Block/*Container*/ { @SideOnly(Side.CLIENT) private IIcon[] icons; @@ -40,10 +40,10 @@ public class BlockTaint extends BlockContainer { this.setTickRandomly(true); } - @Override + /*@Override public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityTaint(); - } + }*/ @SideOnly(Side.CLIENT) public IIcon getIcon(int p_149691_1_, int meta) @@ -93,8 +93,14 @@ public class BlockTaint extends BlockContainer { @Override public int getRenderType(){ - return -1; + return 334077; } + + @Override + public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) + { + return null; + } @Override public boolean isOpaqueCube() { @@ -173,7 +179,8 @@ public class BlockTaint extends BlockContainer { PotionEffect effect = new PotionEffect(PotionEffectTaint.instance.id, 15 * 20, level); effect.setCurativeItems(list); if(entity instanceof EntityLivingBase) - ((EntityLivingBase)entity).addPotionEffect(effect); + if(world.rand.nextInt(50) == 0) + ((EntityLivingBase)entity).addPotionEffect(effect); } } diff --git a/com/hbm/blocks/machine/SPPBottom.java b/com/hbm/blocks/machine/SPPBottom.java new file mode 100644 index 000000000..6e56aa617 --- /dev/null +++ b/com/hbm/blocks/machine/SPPBottom.java @@ -0,0 +1,44 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineSPP; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class SPPBottom extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + private IIcon iconBottom; + + public SPPBottom(Material p_i45386_1_) { + super(p_i45386_1_); + } + + @Override + public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { + return new TileEntityMachineSPP(); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (":machine_spp_b_top")); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (":machine_spp_blank")); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_spp_b_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + +} diff --git a/com/hbm/blocks/machine/SPPTop.java b/com/hbm/blocks/machine/SPPTop.java new file mode 100644 index 000000000..c5d48e9c9 --- /dev/null +++ b/com/hbm/blocks/machine/SPPTop.java @@ -0,0 +1,36 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.IIcon; + +public class SPPTop extends Block { + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + private IIcon iconBottom; + + public SPPTop(Material p_i45394_1_) { + super(p_i45394_1_); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (":machine_spp_blank")); + this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (":machine_spp_t_bottom")); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_spp_t_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); + } + +} diff --git a/com/hbm/entity/grenade/EntityGrenadeGascan.java b/com/hbm/entity/grenade/EntityGrenadeGascan.java new file mode 100644 index 000000000..4ccb3ba6c --- /dev/null +++ b/com/hbm/entity/grenade/EntityGrenadeGascan.java @@ -0,0 +1,31 @@ +package com.hbm.entity.grenade; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityGrenadeGascan extends EntityGrenadeBase +{ + private static final String __OBFID = "CL_00001722"; + + public EntityGrenadeGascan(World p_i1773_1_) + { + super(p_i1773_1_); + } + + public EntityGrenadeGascan(World p_i1774_1_, EntityLivingBase p_i1774_2_) + { + super(p_i1774_1_, p_i1774_2_); + } + + @Override + public void explode() { + + if (!this.worldObj.isRemote) + { + this.setDead(); + this.worldObj.newExplosion((Entity)null, (float)this.posX, (float)this.posY, (float)this.posZ, 10.0F, true, false); + } + } +} diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index cd5d4b11a..387fb2939 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -709,6 +709,7 @@ public class ModItems { public static Item grenade_tau; public static Item grenade_schrabidium; public static Item grenade_lemon; + public static Item grenade_gascan; public static Item grenade_mk2; public static Item grenade_aschrab; public static Item grenade_nuke; @@ -789,6 +790,15 @@ public class ModItems { public static Item titanium_filter; public static Item screwdriver; public static Item overfuse; + public static Item dynosphere_base; + public static Item dynosphere_desh; + public static Item dynosphere_desh_charged; + public static Item dynosphere_schrabidium; + public static Item dynosphere_schrabidium_charged; + public static Item dynosphere_euphemium; + public static Item dynosphere_euphemium_charged; + public static Item dynosphere_dineutronium; + public static Item dynosphere_dineutronium_charged; public static Item tank_waste; @@ -1757,6 +1767,7 @@ public class ModItems { grenade_tau = new ItemGrenade().setUnlocalizedName("grenade_tau").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_tau_alt"); grenade_schrabidium = new ItemGrenade().setUnlocalizedName("grenade_schrabidium").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_schrabidium_alt"); grenade_lemon = new ItemGrenade().setUnlocalizedName("grenade_lemon").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_lemon"); + grenade_gascan = new ItemGrenade().setUnlocalizedName("grenade_gascan").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_gascan"); grenade_mk2 = new ItemGrenade().setUnlocalizedName("grenade_mk2").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_mk2_alt"); grenade_aschrab = new ItemGrenade().setUnlocalizedName("grenade_aschrab").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_aschrab"); grenade_nuke = new ItemGrenade().setUnlocalizedName("grenade_nuke").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":grenade_nuke_alt"); @@ -1829,15 +1840,25 @@ public class ModItems { battery_su = new ItemBattery(15).setUnlocalizedName("battery_su").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":battery_su"); battery_su_l = new ItemBattery(35).setUnlocalizedName("battery_su_l").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":battery_su_l"); - fusion_core = new ItemBattery(5000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fusion_core"); + fusion_core = new ItemBattery(200000).setUnlocalizedName("fusion_core").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fusion_core"); fusion_core_infinite = new Item().setUnlocalizedName("fusion_core_infinite").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fusion_core_infinite"); - energy_core = new ItemBattery(5000).setUnlocalizedName("energy_core").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":energy_core"); + energy_core = new ItemBattery(100000).setUnlocalizedName("energy_core").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":energy_core"); fuse = new ItemCustomLore().setUnlocalizedName("fuse").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fuse"); redcoil_capacitor = new ItemCapacitor(10).setUnlocalizedName("redcoil_capacitor").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":redcoil_capacitor"); titanium_filter = new ItemCapacitor(72000).setUnlocalizedName("titanium_filter").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":titanium_filter"); screwdriver = new ItemCustomLore().setUnlocalizedName("screwdriver").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":screwdriver"); overfuse = new ItemCustomLore().setUnlocalizedName("overfuse").setMaxStackSize(1).setFull3D().setTextureName(RefStrings.MODID + ":overfuse"); + dynosphere_base = new Item().setUnlocalizedName("dynosphere_base").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_base"); + dynosphere_desh = new ItemBattery(10000L).setUnlocalizedName("dynosphere_desh").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_desh"); + dynosphere_desh_charged = new Item().setUnlocalizedName("dynosphere_desh_charged").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_desh_charged"); + dynosphere_schrabidium = new ItemBattery(1000000L).setUnlocalizedName("dynosphere_schrabidium").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_schrabidium"); + dynosphere_schrabidium_charged = new Item().setUnlocalizedName("dynosphere_schrabidium_charged").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_schrabidium_charged"); + dynosphere_euphemium = new ItemBattery(100000000L).setUnlocalizedName("dynosphere_euphemium").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_euphemium"); + dynosphere_euphemium_charged = new Item().setUnlocalizedName("dynosphere_euphemium_charged").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_euphemium_charged"); + dynosphere_dineutronium = new ItemBattery(10000000000L).setUnlocalizedName("dynosphere_dineutronium").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_dineutronium"); + dynosphere_dineutronium_charged = new Item().setUnlocalizedName("dynosphere_dineutronium_charged").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":dynosphere_dineutronium_charged"); + factory_core_titanium = new ItemBattery(70400).setUnlocalizedName("factory_core_titanium").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":factory_core_titanium"); factory_core_advanced = new ItemBattery(41600).setUnlocalizedName("factory_core_advanced").setMaxStackSize(1).setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":factory_core_advanced"); @@ -2603,6 +2624,17 @@ public class ModItems { GameRegistry.registerItem(factory_core_titanium, factory_core_titanium.getUnlocalizedName()); GameRegistry.registerItem(factory_core_advanced, factory_core_advanced.getUnlocalizedName()); + //Dynospheres + GameRegistry.registerItem(dynosphere_base, dynosphere_base.getUnlocalizedName()); + GameRegistry.registerItem(dynosphere_desh, dynosphere_desh.getUnlocalizedName()); + GameRegistry.registerItem(dynosphere_desh_charged, dynosphere_desh_charged.getUnlocalizedName()); + GameRegistry.registerItem(dynosphere_schrabidium, dynosphere_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(dynosphere_schrabidium_charged, dynosphere_schrabidium_charged.getUnlocalizedName()); + GameRegistry.registerItem(dynosphere_euphemium, dynosphere_euphemium.getUnlocalizedName()); + GameRegistry.registerItem(dynosphere_euphemium_charged, dynosphere_euphemium_charged.getUnlocalizedName()); + GameRegistry.registerItem(dynosphere_dineutronium, dynosphere_dineutronium.getUnlocalizedName()); + GameRegistry.registerItem(dynosphere_dineutronium_charged, dynosphere_dineutronium_charged.getUnlocalizedName()); + //Template Folder GameRegistry.registerItem(template_folder, template_folder.getUnlocalizedName()); @@ -2973,6 +3005,7 @@ public class ModItems { GameRegistry.registerItem(grenade_schrabidium, grenade_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(grenade_nuke, grenade_nuke.getUnlocalizedName()); GameRegistry.registerItem(grenade_lemon, grenade_lemon.getUnlocalizedName()); + GameRegistry.registerItem(grenade_gascan, grenade_gascan.getUnlocalizedName()); GameRegistry.registerItem(grenade_mk2, grenade_mk2.getUnlocalizedName()); GameRegistry.registerItem(grenade_aschrab, grenade_aschrab.getUnlocalizedName()); GameRegistry.registerItem(grenade_nuclear, grenade_nuclear.getUnlocalizedName()); diff --git a/com/hbm/items/special/ItemBattery.java b/com/hbm/items/special/ItemBattery.java index 75b8a8a9e..aba981f31 100644 --- a/com/hbm/items/special/ItemBattery.java +++ b/com/hbm/items/special/ItemBattery.java @@ -15,7 +15,7 @@ public class ItemBattery extends Item { private long maxCharge; - public ItemBattery(int dura) { + public ItemBattery(long dura) { this.maxCharge = dura; } @@ -26,12 +26,20 @@ public class ItemBattery extends Item { if(itemstack.hasTagCompound()) charge = ItemBattery.getCharge(itemstack); - if(itemstack.getItem() != ModItems.fusion_core && itemstack.getItem() != ModItems.factory_core_titanium && itemstack.getItem() != ModItems.factory_core_advanced && itemstack.getItem() != ModItems.energy_core) + if(itemstack.getItem() != ModItems.fusion_core && + itemstack.getItem() != ModItems.factory_core_titanium && + itemstack.getItem() != ModItems.factory_core_advanced && + itemstack.getItem() != ModItems.energy_core && + itemstack.getItem() != ModItems.dynosphere_desh && + itemstack.getItem() != ModItems.dynosphere_schrabidium && + itemstack.getItem() != ModItems.dynosphere_euphemium && + itemstack.getItem() != ModItems.dynosphere_dineutronium) { list.add("Energy stored: " + Library.getShortNumber(charge * 100) + "/" + Library.getShortNumber(maxCharge * 100) + "HE"); } else { - long charge1 = (charge * 100) / this.maxCharge; + String charge1 = Library.getShortNumber((charge * 100) / this.maxCharge); list.add("Charge: " + charge1 + "%"); + list.add("(" + Library.getShortNumber(charge * 100) + "/" + Library.getShortNumber(maxCharge * 100) + "HE)"); } } @@ -43,7 +51,14 @@ public class ItemBattery extends Item { return EnumRarity.rare; } - if(this == ModItems.fusion_core || this == ModItems.factory_core_titanium || this == ModItems.factory_core_advanced || this == ModItems.energy_core) + if(this == ModItems.fusion_core || + this == ModItems.factory_core_titanium || + this == ModItems.factory_core_advanced || + this == ModItems.energy_core || + this == ModItems.dynosphere_desh || + this == ModItems.dynosphere_schrabidium || + this == ModItems.dynosphere_euphemium || + this == ModItems.dynosphere_dineutronium) { return EnumRarity.uncommon; } diff --git a/com/hbm/items/weapon/ItemGrenade.java b/com/hbm/items/weapon/ItemGrenade.java index 40529f6fe..2461ca045 100644 --- a/com/hbm/items/weapon/ItemGrenade.java +++ b/com/hbm/items/weapon/ItemGrenade.java @@ -8,6 +8,7 @@ import com.hbm.entity.grenade.EntityGrenadeFire; import com.hbm.entity.grenade.EntityGrenadeFlare; import com.hbm.entity.grenade.EntityGrenadeFrag; import com.hbm.entity.grenade.EntityGrenadeGas; +import com.hbm.entity.grenade.EntityGrenadeGascan; import com.hbm.entity.grenade.EntityGrenadeGeneric; import com.hbm.entity.grenade.EntityGrenadeLemon; import com.hbm.entity.grenade.EntityGrenadeMk2; @@ -111,6 +112,9 @@ public class ItemGrenade extends Item { if (this == ModItems.grenade_black_hole) { p_77659_2_.spawnEntityInWorld(new EntityGrenadeBlackHole(p_77659_2_, p_77659_3_)); } + if (this == ModItems.grenade_gascan) { + p_77659_2_.spawnEntityInWorld(new EntityGrenadeGascan(p_77659_2_, p_77659_3_)); + } } return p_77659_1_; @@ -127,7 +131,7 @@ public class ItemGrenade extends Item { return EnumRarity.epic; } - if (this == ModItems.grenade_nuke || this == ModItems.grenade_nuclear || this == ModItems.grenade_tau || this == ModItems.grenade_lemon || this == ModItems.grenade_mk2 || this == ModItems.grenade_pulse) { + if (this == ModItems.grenade_nuke || this == ModItems.grenade_nuclear || this == ModItems.grenade_tau || this == ModItems.grenade_lemon || this == ModItems.grenade_mk2 || this == ModItems.grenade_pulse || this == ModItems.grenade_gascan) { return EnumRarity.uncommon; } diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index 204d64469..cf176c7e2 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -612,49 +612,74 @@ public class Library { ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); } else break; - for(int i = 0; i < 15; i++) + for(int i = 0; i < 50; i++) if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.battery_schrabidium && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) { power -= 100; ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); } else break; - for(int i = 0; i < 15; i++) + for(int i = 0; i < 50; i++) if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.battery_schrabidium_cell && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) { power -= 100; ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); } else break; - for(int i = 0; i < 15; i++) + for(int i = 0; i < 50; i++) if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.battery_schrabidium_cell_2 && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) { power -= 100; ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); } else break; - for(int i = 0; i < 15; i++) + for(int i = 0; i < 50; i++) if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.battery_schrabidium_cell_4 && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) { power -= 100; ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); } else break; - for(int i = 0; i < 200; i++) + for(int i = 0; i < 20000; i++) if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.battery_spark && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) { power -= 100; ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); } else break; - for(int i = 0; i < 200; i++) + for(int i = 0; i < 20000; i++) if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.battery_spark_cell_6 && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) { power -= 100; ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); } else break; - for(int i = 0; i < 200; i++) + for(int i = 0; i < 20000; i++) if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.battery_spark_cell_25 && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) { power -= 100; ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); } else break; + + for(int i = 0; i < 100; i++) + if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.dynosphere_desh && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) + { + power -= 100; + ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); + } else break; + for(int i = 0; i < 1000; i++) + if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.dynosphere_schrabidium && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) + { + power -= 100; + ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); + } else break; + for(int i = 0; i < 10000; i++) + if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.dynosphere_euphemium && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) + { + power -= 100; + ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); + } else break; + for(int i = 0; i < 100000; i++) + if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.dynosphere_dineutronium && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) + { + power -= 100; + ((ItemBattery)slots[index].getItem()).chargeBattery(slots[index], 1); + } else break; for(int i = 0; i < 10; i++) if(power - 100 >= 0 && slots[index] != null && slots[index].getItem() == ModItems.factory_core_titanium && ItemBattery.getCharge(slots[index]) < ((ItemBattery)slots[index].getItem()).getMaxCharge()) @@ -697,6 +722,15 @@ public class Library { power -= 1; slots[index].setItemDamage(slots[index].getItemDamage() - 1); } else break; + + /*if(slots[index] != null && slots[index].equals(ItemBattery.getFullBattery(ModItems.dynosphere_desh))) + slots[index] = new ItemStack(ModItems.dynosphere_desh_charged); + if(slots[index] != null && slots[index].equals(ItemBattery.getFullBattery(ModItems.dynosphere_schrabidium))) + slots[index] = new ItemStack(ModItems.dynosphere_schrabidium_charged); + if(slots[index] != null && slots[index].equals(ItemBattery.getFullBattery(ModItems.dynosphere_euphemium))) + slots[index] = new ItemStack(ModItems.dynosphere_euphemium_charged); + if(slots[index] != null && slots[index].equals(ItemBattery.getFullBattery(ModItems.dynosphere_dineutronium))) + slots[index] = new ItemStack(ModItems.dynosphere_dineutronium_charged);*/ return power; } diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 761b4c52b..188458abf 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -15,6 +15,7 @@ import com.hbm.entity.mob.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.items.ModItems; +import com.hbm.render.block.*; import com.hbm.render.entity.*; import com.hbm.render.item.*; import com.hbm.render.tileentity.*; @@ -33,6 +34,8 @@ public class ClientProxy extends ServerProxy { MinecraftForge.EVENT_BUS.register(new ModEventHandlerClient()); + RenderingRegistry.registerBlockHandler(new RenderTaintBlock()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestRender.class, new RenderTestRender()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityTestContainer.class, new RenderTestContainer()); @@ -106,6 +109,7 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityGrenadePulse.class, new RenderSnowball(ModItems.grenade_pulse)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeShrapnel.class, new RenderSnowball(ModItems.grenade_shrapnel)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeBlackHole.class, new RenderSnowball(ModItems.grenade_black_hole)); + RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeGascan.class, new RenderSnowball(ModItems.grenade_gascan)); RenderingRegistry.registerEntityRenderingHandler(EntitySchrab.class, new RenderFlare()); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 069204738..05dae911f 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -54,6 +54,7 @@ import com.hbm.entity.grenade.EntityGrenadeFire; import com.hbm.entity.grenade.EntityGrenadeFlare; import com.hbm.entity.grenade.EntityGrenadeFrag; import com.hbm.entity.grenade.EntityGrenadeGas; +import com.hbm.entity.grenade.EntityGrenadeGascan; import com.hbm.entity.grenade.EntityGrenadeGeneric; import com.hbm.entity.grenade.EntityGrenadeLemon; import com.hbm.entity.grenade.EntityGrenadeMk2; @@ -218,6 +219,7 @@ import com.hbm.tileentity.machine.TileEntityMachinePumpjack; import com.hbm.tileentity.machine.TileEntityMachineRTG; import com.hbm.tileentity.machine.TileEntityMachineReactor; import com.hbm.tileentity.machine.TileEntityMachineRefinery; +import com.hbm.tileentity.machine.TileEntityMachineSPP; import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; import com.hbm.tileentity.machine.TileEntityMachineShredder; import com.hbm.tileentity.machine.TileEntityMachineSiren; @@ -544,6 +546,7 @@ public class MainRegistry GameRegistry.registerTileEntity(TileEntityAMSLimiter.class, "tileentity_ams_limiter"); GameRegistry.registerTileEntity(TileEntityMachineSiren.class, "tileentity_siren"); GameRegistry.registerTileEntity(TileEntityTaint.class, "tileentity_taint"); + GameRegistry.registerTileEntity(TileEntityMachineSPP.class, "tileentity_spp"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); @@ -633,6 +636,7 @@ public class MainRegistry EntityRegistry.registerModEntity(EntityLaser.class, "entity_laser", 85, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityBoxcar.class, "entity_boxcar", 86, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityMissileTaint.class, "entity_missile_taint", 87, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntityGrenadeGascan.class, "entity_grenade_gascan", 88, this, 1000, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityHunterChopper.class, "entity_mob_hunter_chopper", EntityRegistry.findGlobalUniqueEntityId(), 0x000020, 0x2D2D72); @@ -923,6 +927,7 @@ public class MainRegistry recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_lanthanium), new ItemStack(ModItems.powder_lanthanium_tiny, 1)); recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_actinium), new ItemStack(ModItems.powder_actinium_tiny, 1)); recipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_meteorite), new ItemStack(ModItems.powder_meteorite_tiny, 1)); + recipes.overridePreSetRecipe(new ItemStack(ModBlocks.block_meteor), new ItemStack(ModItems.powder_meteorite, 10)); recipes.PrintRecipes(); diff --git a/com/hbm/render/block/RenderTaintBlock.java b/com/hbm/render/block/RenderTaintBlock.java new file mode 100644 index 000000000..7fe468709 --- /dev/null +++ b/com/hbm/render/block/RenderTaintBlock.java @@ -0,0 +1,124 @@ +package com.hbm.render.block; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class RenderTaintBlock implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, world.getBlockMetadata(x, y, z)); + + if (renderer.hasOverrideBlockTexture()) + { + iicon = renderer.overrideBlockTexture; + } + + boolean ceil = world.getBlock(x, y + 1, z).isNormalCube(); + boolean floor = world.getBlock(x, y - 1, z).isNormalCube(); + boolean side1 = world.getBlock(x, y, z + 1).isNormalCube(); + boolean side2 = world.getBlock(x - 1, y, z).isNormalCube(); + boolean side3 = world.getBlock(x, y, z - 1).isNormalCube(); + boolean side4 = world.getBlock(x + 1, y, z).isNormalCube(); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(renderer.blockAccess, x, y, z)); + int l = block.colorMultiplier(renderer.blockAccess, x, y, z); + float f = (float)(l >> 16 & 255) / 255.0F; + float f1 = (float)(l >> 8 & 255) / 255.0F; + float f2 = (float)(l & 255) / 255.0F; + tessellator.setColorOpaque_F(f, f1, f2); + double d3 = (double)iicon.getMinU(); + double d4 = (double)iicon.getMinV(); + double d0 = (double)iicon.getMaxU(); + double d1 = (double)iicon.getMaxV(); + double d2 = 0.05000000074505806D; + int i1 = renderer.blockAccess.getBlockMetadata(x, y, z); + + if (side2) + { + tessellator.addVertexWithUV((double)x + d2, (double)(y + 1), (double)(z + 1), d3, d4); + tessellator.addVertexWithUV((double)x + d2, (double)(y + 0), (double)(z + 1), d3, d1); + tessellator.addVertexWithUV((double)x + d2, (double)(y + 0), (double)(z + 0), d0, d1); + tessellator.addVertexWithUV((double)x + d2, (double)(y + 1), (double)(z + 0), d0, d4); + tessellator.addVertexWithUV((double)x + d2, (double)(y + 1), (double)(z + 0), d0, d4); + tessellator.addVertexWithUV((double)x + d2, (double)(y + 0), (double)(z + 0), d0, d1); + tessellator.addVertexWithUV((double)x + d2, (double)(y + 0), (double)(z + 1), d3, d1); + tessellator.addVertexWithUV((double)x + d2, (double)(y + 1), (double)(z + 1), d3, d4); + } + + if (side4) + { + tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 0), (double)(z + 1), d0, d1); + tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 1), (double)(z + 1), d0, d4); + tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 1), (double)(z + 0), d3, d4); + tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 0), (double)(z + 0), d3, d1); + tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 0), (double)(z + 0), d3, d1); + tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 1), (double)(z + 0), d3, d4); + tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 1), (double)(z + 1), d0, d4); + tessellator.addVertexWithUV((double)(x + 1) - d2, (double)(y + 0), (double)(z + 1), d0, d1); + } + + if (side3) + { + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0), (double)z + d2, d0, d1); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1), (double)z + d2, d0, d4); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1), (double)z + d2, d3, d4); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)z + d2, d3, d1); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)z + d2, d3, d1); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1), (double)z + d2, d3, d4); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1), (double)z + d2, d0, d4); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0), (double)z + d2, d0, d1); + } + + if (side1) + { + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1), (double)(z + 1) - d2, d3, d4); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0), (double)(z + 1) - d2, d3, d1); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)(z + 1) - d2, d0, d1); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1), (double)(z + 1) - d2, d0, d4); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1), (double)(z + 1) - d2, d0, d4); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)(z + 1) - d2, d0, d1); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0), (double)(z + 1) - d2, d3, d1); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1), (double)(z + 1) - d2, d3, d4); + } + + if (ceil) + { + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1) - d2, (double)(z + 0), d3, d4); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 1) - d2, (double)(z + 1), d3, d1); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1) - d2, (double)(z + 1), d0, d1); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 1) - d2, (double)(z + 0), d0, d4); + } + + if (floor) + { + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0) + d2, (double)(z + 0), d0, d4); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0) + d2, (double)(z + 1), d0, d1); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0) + d2, (double)(z + 1), d3, d1); + tessellator.addVertexWithUV((double)(x + 1), (double)(y + 0) + d2, (double)(z + 0), d3, d4); + } + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return false; + } + + @Override + public int getRenderId() { + return 334077; + } + +} diff --git a/com/hbm/tileentity/machine/TileEntityMachineSPP.java b/com/hbm/tileentity/machine/TileEntityMachineSPP.java new file mode 100644 index 000000000..e20dcb11d --- /dev/null +++ b/com/hbm/tileentity/machine/TileEntityMachineSPP.java @@ -0,0 +1,128 @@ +package com.hbm.tileentity.machine; + +import java.util.ArrayList; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.entity.particle.EntityGasFlameFX; +import com.hbm.explosion.ExplosionThermo; +import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.ISource; +import com.hbm.lib.Library; +import com.hbm.main.MainRegistry; +import com.hbm.packet.AuxElectricityPacket; +import com.hbm.packet.PacketDispatcher; + +import net.minecraft.init.Blocks; +import net.minecraft.tileentity.TileEntity; + +public class TileEntityMachineSPP extends TileEntity implements ISource { + + public long power; + public static final long maxPower = 100000; + public int age = 0; + public int gen = 0; + public List list = new ArrayList(); + + @Override + public void updateEntity() { + + MainRegistry.logger.debug("0"); + + age++; + if(age >= 20) + age -= 20; + if(age == 9 || age == 19) + ffgeuaInit(); + + if(!worldObj.isRemote) { + //if(age == 1) + gen = checkStructure() * 15; + if(gen > 0) + power += gen; + if(power > maxPower) + power = maxPower; + } + + } + + public int checkStructure() { + + int h = 0; + + for(int i = yCoord + 1; i < 254; i++) + if(worldObj.getBlock(xCoord, i, zCoord) == ModBlocks.machine_spp_top) { + h = i; + break; + } + + for(int i = yCoord + 1; i < h - 1; i++) + if(!checkSegment(i)) + return 0; + + + return h - yCoord - 1; + } + + public boolean checkSegment(int y) { + + // BBB + // BAB + // BBB + System.out.println(y); + return (worldObj.getBlock(xCoord + 1, y, zCoord) != Blocks.air && + worldObj.getBlock(xCoord + 1, y, zCoord + 1) != Blocks.air && + worldObj.getBlock(xCoord + 1, y, zCoord - 1) != Blocks.air && + worldObj.getBlock(xCoord - 1, y, zCoord + 1) != Blocks.air && + worldObj.getBlock(xCoord - 1, y, zCoord) != Blocks.air && + worldObj.getBlock(xCoord - 1, y, zCoord - 1) != Blocks.air && + worldObj.getBlock(xCoord, y, zCoord + 1) != Blocks.air && + worldObj.getBlock(xCoord, y, zCoord - 1) != Blocks.air && + worldObj.getBlock(xCoord, y, zCoord) == Blocks.air); + } + + @Override + public boolean getTact() { + if (age >= 0 && age < 10) { + return true; + } + + return false; + } + + @Override + public void clearList() { + this.list.clear(); + } + + @Override + public void ffgeuaInit() { + ffgeua(this.xCoord + 1, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord - 1, this.yCoord, this.zCoord, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord + 1, getTact()); + ffgeua(this.xCoord, this.yCoord, this.zCoord - 1, getTact()); + ffgeua(this.xCoord, this.yCoord - 1, this.zCoord, getTact()); + + } + + @Override + public void ffgeua(int x, int y, int z, boolean newTact) { + Library.ffgeua(x, y, z, newTact, this, worldObj); + } + + @Override + public long getSPower() { + return this.power; + } + + @Override + public void setSPower(long i) { + this.power = i; + } + + @Override + public List getList() { + return this.list; + } + +}