diff --git a/assets/hbm/models/shimmer_sledge.obj b/assets/hbm/models/shimmer_sledge.obj new file mode 100644 index 000000000..ebeb2570b --- /dev/null +++ b/assets/hbm/models/shimmer_sledge.obj @@ -0,0 +1,514 @@ +# Blender v2.76 (sub 0) OBJ File: 'shimmer_sledge.blend' +# www.blender.org +o Cylinder.002 +v 0.000000 0.000000 -0.025000 +v 0.012500 0.000000 -0.021651 +v 0.021651 0.000000 -0.012500 +v 0.025000 0.000000 0.000000 +v 0.021651 0.000000 0.012500 +v 0.012500 0.000000 0.021651 +v 0.000000 0.000000 0.025000 +v -0.012500 0.000000 0.021651 +v -0.021651 0.000000 0.012500 +v -0.025000 0.000000 0.000000 +v -0.021651 0.000000 -0.012500 +v -0.012500 0.000000 -0.021651 +l 1 2 +l 2 3 +l 3 4 +l 4 5 +l 5 6 +l 6 7 +l 7 8 +l 8 9 +l 9 10 +l 10 11 +l 11 12 +l 12 1 +o Cylinder.001 +v 0.000000 0.750000 -0.025000 +v -0.012500 0.000000 -0.021650 +v 0.012500 0.750000 -0.021651 +v -0.021651 0.000000 -0.012499 +v 0.021651 0.750000 -0.012500 +v -0.025000 0.000000 0.000001 +v 0.025000 0.750000 -0.000000 +v -0.021651 0.000000 0.012501 +v 0.021651 0.750000 0.012500 +v -0.012500 0.000000 0.021651 +v 0.012500 0.750000 0.021651 +v 0.000000 0.000000 0.025001 +v 0.000000 0.750000 0.025000 +v 0.012500 0.000000 0.021651 +v -0.012500 0.750000 0.021651 +v 0.021651 0.000000 0.012501 +v -0.021651 0.750000 0.012500 +v 0.025000 0.000000 0.000001 +v -0.025000 0.750000 0.000000 +v 0.021651 0.000000 -0.012499 +v -0.021651 0.750000 -0.012500 +v 0.012500 0.000000 -0.021650 +v -0.012500 0.750000 -0.021651 +v 0.000000 0.000000 -0.024999 +v -0.125000 0.750000 -0.065000 +v 0.125000 0.750000 -0.065000 +v -0.125000 0.725126 -0.060052 +v 0.125000 0.725126 -0.060052 +v -0.125000 0.704038 -0.045962 +v 0.125000 0.704038 -0.045962 +v -0.125000 0.689948 -0.024874 +v 0.125000 0.689948 -0.024874 +v -0.125000 0.685000 -0.000000 +v 0.125000 0.685000 0.000000 +v -0.125000 0.689948 0.024874 +v 0.125000 0.689948 0.024874 +v -0.125000 0.704038 0.045962 +v 0.125000 0.704038 0.045962 +v -0.125000 0.725126 0.060052 +v 0.125000 0.725126 0.060052 +v -0.125000 0.750000 0.065000 +v 0.125000 0.750000 0.065000 +v -0.125000 0.774874 0.060052 +v 0.125000 0.774874 0.060052 +v -0.125000 0.795962 0.045962 +v 0.125000 0.795962 0.045962 +v -0.125000 0.810052 0.024874 +v 0.125000 0.810052 0.024874 +v -0.125000 0.815000 -0.000000 +v 0.125000 0.815000 0.000000 +v -0.125000 0.810052 -0.024874 +v 0.125000 0.810052 -0.024874 +v -0.125000 0.795962 -0.045962 +v 0.125000 0.795962 -0.045962 +v -0.125000 0.774874 -0.060052 +v 0.125000 0.774874 -0.060052 +v 0.150000 0.732588 -0.042037 +v 0.150000 0.750000 -0.045500 +v 0.150000 0.767412 -0.042037 +v 0.150000 0.782173 -0.032173 +v 0.150000 0.792037 -0.017412 +v 0.150000 0.795500 0.000000 +v 0.150000 0.792037 0.017412 +v 0.150000 0.782173 0.032173 +v 0.150000 0.767412 0.042037 +v 0.150000 0.750000 0.045500 +v 0.150000 0.732588 0.042037 +v 0.150000 0.717827 0.032173 +v 0.150000 0.707964 0.017412 +v 0.150000 0.704500 0.000000 +v 0.150000 0.707964 -0.017412 +v 0.150000 0.717827 -0.032173 +v -0.150000 0.750000 -0.045500 +v -0.150000 0.732588 -0.042037 +v -0.150000 0.717827 -0.032173 +v -0.150000 0.707963 -0.017412 +v -0.150000 0.704500 -0.000000 +v -0.150000 0.707963 0.017412 +v -0.150000 0.717827 0.032173 +v -0.150000 0.732588 0.042036 +v -0.150000 0.750000 0.045500 +v -0.150000 0.767412 0.042036 +v -0.150000 0.782173 0.032173 +v -0.150000 0.792036 0.017412 +v -0.150000 0.795500 -0.000000 +v -0.150000 0.792036 -0.017412 +v -0.150000 0.782173 -0.032173 +v -0.150000 0.767412 -0.042037 +vt 0.020688 0.204740 +vt 0.979279 0.204739 +vt 0.979276 0.221471 +vt 0.020691 0.188008 +vt 0.979282 0.188007 +vt 0.020694 0.171275 +vt 0.979286 0.171274 +vt 0.020698 0.154543 +vt 0.979289 0.154542 +vt 0.020711 0.087614 +vt 0.979302 0.087613 +vt 0.979299 0.104346 +vt 0.020701 0.137811 +vt 0.979292 0.137810 +vt 0.020714 0.070882 +vt 0.979306 0.070881 +vt 0.020708 0.104347 +vt 0.979295 0.121078 +vt 0.020704 0.121079 +vt 0.020718 0.054150 +vt 0.979309 0.054149 +vt 0.020721 0.037418 +vt 0.979312 0.037417 +vt 0.020725 0.020685 +vt 0.979316 0.020684 +vt 0.718366 0.575925 +vt 0.749409 0.584243 +vt 0.735002 0.638011 +vt 0.020685 0.393254 +vt 0.020685 0.360650 +vt 0.342065 0.360650 +vt 0.020685 0.328047 +vt 0.342065 0.328047 +vt 0.020685 0.295444 +vt 0.342065 0.295444 +vt 0.020685 0.262841 +vt 0.342065 0.262841 +vt 0.020685 0.784491 +vt 0.020685 0.751887 +vt 0.342065 0.751887 +vt 0.020684 0.719284 +vt 0.342065 0.719284 +vt 0.020684 0.686681 +vt 0.020685 0.654078 +vt 0.342065 0.654078 +vt 0.020685 0.621475 +vt 0.020685 0.588872 +vt 0.342065 0.588872 +vt 0.020685 0.556269 +vt 0.342065 0.556269 +vt 0.020685 0.523666 +vt 0.342065 0.523666 +vt 0.020685 0.491063 +vt 0.342065 0.491063 +vt 0.020685 0.458460 +vt 0.342065 0.458460 +vt 0.020685 0.425857 +vt 0.342065 0.393253 +vt 0.342065 0.425856 +vt 0.392168 0.600797 +vt 0.473297 0.584659 +vt 0.489435 0.665789 +vt 0.719842 0.518681 +vt 0.738963 0.482686 +vt 0.760257 0.490897 +vt 0.720239 0.469639 +vt 0.705162 0.452506 +vt 0.693093 0.500041 +vt 0.656467 0.446663 +vt 0.694601 0.432274 +vt 0.689164 0.410109 +vt 0.689164 0.387287 +vt 0.648700 0.414999 +vt 0.656468 0.350732 +vt 0.694601 0.365122 +vt 0.671556 0.321830 +vt 0.705163 0.344890 +vt 0.720240 0.327758 +vt 0.738965 0.314710 +vt 0.693094 0.297355 +vt 0.750264 0.266986 +vt 0.760259 0.306500 +vt 0.782896 0.303598 +vt 0.805572 0.306174 +vt 0.782602 0.262841 +vt 0.814995 0.530878 +vt 0.805571 0.491224 +vt 0.826981 0.483321 +vt 0.782600 0.534556 +vt 0.782894 0.493799 +vt 0.750262 0.530411 +vt 0.645539 0.665789 +vt 0.564409 0.681926 +vt 0.629401 0.584659 +vt 0.562938 0.500042 +vt 0.535792 0.469639 +vt 0.550869 0.452506 +vt 0.517067 0.482686 +vt 0.495773 0.490898 +vt 0.536189 0.518681 +vt 0.473136 0.493799 +vt 0.505769 0.530411 +vt 0.429050 0.314077 +vt 0.410139 0.326853 +vt 0.383434 0.296062 +vt 0.450460 0.306173 +vt 0.410449 0.277810 +vt 0.473430 0.262841 +vt 0.473136 0.303598 +vt 0.495773 0.306500 +vt 0.536188 0.278716 +vt 0.517067 0.314711 +vt 0.562938 0.297355 +vt 0.535792 0.327758 +vt 0.550869 0.344891 +vt 0.561430 0.365122 +vt 0.584476 0.321830 +vt 0.607331 0.382397 +vt 0.566867 0.387287 +vt 0.607331 0.415000 +vt 0.566867 0.410109 +vt 0.561430 0.432275 +vt 0.599564 0.446664 +vt 0.020684 0.221472 +vt 0.718366 0.638011 +vt 0.703959 0.629693 +vt 0.695641 0.615286 +vt 0.695641 0.598650 +vt 0.703959 0.584243 +vt 0.735002 0.575925 +vt 0.757727 0.598650 +vt 0.757727 0.615286 +vt 0.749409 0.629693 +vt 0.342065 0.784490 +vt 0.342065 0.686681 +vt 0.342065 0.621475 +vt 0.473298 0.681926 +vt 0.452213 0.690660 +vt 0.429390 0.690660 +vt 0.408305 0.681926 +vt 0.392168 0.665789 +vt 0.383434 0.644704 +vt 0.383434 0.621882 +vt 0.408305 0.584659 +vt 0.429390 0.575925 +vt 0.452212 0.575925 +vt 0.489435 0.600797 +vt 0.498169 0.621882 +vt 0.498169 0.644704 +vt 0.671554 0.475566 +vt 0.648700 0.382396 +vt 0.719844 0.278715 +vt 0.814997 0.266520 +vt 0.845581 0.519588 +vt 0.548271 0.600797 +vt 0.564409 0.584659 +vt 0.585494 0.575925 +vt 0.608316 0.575925 +vt 0.645539 0.600797 +vt 0.654272 0.621882 +vt 0.654272 0.644704 +vt 0.629401 0.681926 +vt 0.608316 0.690660 +vt 0.585494 0.690660 +vt 0.548271 0.665789 +vt 0.539538 0.644704 +vt 0.539538 0.621882 +vt 0.584477 0.475566 +vt 0.473430 0.534556 +vt 0.441035 0.266520 +vt 0.505768 0.266986 +vt 0.599564 0.350733 +vn -0.258800 0.000000 0.965900 +vn -0.707100 0.000000 0.707100 +vn -0.965900 0.000000 0.258800 +vn -0.965900 -0.000000 -0.258800 +vn 0.707100 -0.000000 -0.707100 +vn -0.707100 -0.000000 -0.707100 +vn 0.965900 -0.000000 -0.258800 +vn 0.258800 -0.000000 -0.965900 +vn -0.258800 -0.000000 -0.965900 +vn 0.965900 0.000000 0.258800 +vn 0.707100 0.000000 0.707100 +vn 0.258800 0.000000 0.965900 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 -0.195100 -0.980800 +vn 0.000000 -0.555600 -0.831500 +vn 0.000000 -0.831500 -0.555600 +vn 0.000000 -0.980800 -0.195100 +vn -0.000000 -0.980800 0.195100 +vn -0.000000 -0.831500 0.555600 +vn 0.000000 -0.555600 0.831500 +vn -0.000000 -0.195100 0.980800 +vn -0.000000 0.195100 0.980800 +vn -0.000000 0.555600 0.831500 +vn -0.000000 0.831500 0.555600 +vn -0.000000 0.980800 0.195100 +vn 0.000000 0.980800 -0.195100 +vn 0.000000 0.831500 -0.555600 +vn 0.000000 0.195100 -0.980800 +vn 0.000000 0.555600 -0.831500 +vn 1.000000 0.000000 0.000000 +vn 0.607600 -0.154900 -0.779000 +vn 0.607600 0.154900 -0.779000 +vn 0.607600 0.441300 -0.660400 +vn 0.607600 0.660400 -0.441300 +vn 0.607600 0.779000 -0.154900 +vn 0.607600 0.779000 0.154900 +vn 0.607600 0.660400 0.441300 +vn 0.607600 0.441300 0.660400 +vn 0.607600 0.154900 0.779000 +vn 0.607600 -0.154900 0.779000 +vn 0.607600 -0.441300 0.660400 +vn 0.607600 -0.660400 0.441300 +vn 0.607600 -0.779000 0.154900 +vn 0.607600 -0.779000 -0.154900 +vn 0.607600 -0.660400 -0.441300 +vn 0.607600 -0.441300 -0.660400 +vn -1.000000 0.000000 -0.000000 +vn -0.607600 -0.154900 -0.779000 +vn -0.607600 -0.441300 -0.660400 +vn -0.607600 -0.660400 -0.441300 +vn -0.607600 -0.779000 -0.154900 +vn -0.607600 -0.779000 0.154900 +vn -0.607600 -0.660400 0.441300 +vn -0.607600 -0.441300 0.660400 +vn -0.607600 -0.154900 0.779000 +vn -0.607600 0.154900 0.779000 +vn -0.607600 0.441300 0.660400 +vn -0.607600 0.660400 0.441300 +vn -0.607600 0.779000 0.154900 +vn -0.607600 0.779000 -0.154900 +vn -0.607600 0.660400 -0.441300 +vn -0.607600 0.441300 -0.660400 +vn -0.607600 0.154900 -0.779000 +vn 0.607600 0.779000 -0.155000 +vn 0.607600 0.779000 0.155000 +vn 0.607600 -0.155000 0.779000 +vn -0.607600 -0.779000 0.155000 +s off +f 27/1/1 22/2/1 24/3/1 +f 29/4/2 20/5/2 22/2/2 +f 29/4/3 31/6/3 18/7/3 +f 33/8/4 16/9/4 18/7/4 +f 17/10/5 32/11/5 34/12/5 +f 35/13/6 14/14/6 16/9/6 +f 19/15/7 30/16/7 32/11/7 +f 15/17/8 34/12/8 36/18/8 +f 13/19/9 36/18/9 14/14/9 +f 21/20/10 28/21/10 30/16/10 +f 21/20/11 23/22/11 26/23/11 +f 25/24/12 24/25/12 26/23/12 +f 26/26/13 22/27/13 14/28/13 +f 38/29/14 40/30/14 39/31/14 +f 40/30/15 42/32/15 41/33/15 +f 42/32/16 44/34/16 43/35/16 +f 44/34/17 46/36/17 45/37/17 +f 46/38/18 48/39/18 47/40/18 +f 47/40/19 48/39/19 50/41/19 +f 49/42/20 50/41/20 52/43/20 +f 52/43/21 54/44/21 53/45/21 +f 53/45/22 54/44/22 56/46/22 +f 56/46/23 58/47/23 57/48/23 +f 58/47/24 60/49/24 59/50/24 +f 60/49/25 62/51/25 61/52/25 +f 62/51/26 64/53/26 63/54/26 +f 64/53/27 66/55/27 65/56/27 +f 68/57/28 38/29/28 37/58/28 +f 66/55/29 68/57/29 67/59/29 +f 76/60/30 80/61/30 84/62/30 +f 38/63/31 70/64/31 69/65/31 +f 71/66/32 70/64/32 38/63/32 +f 72/67/33 71/66/33 68/68/33 +f 64/69/34 73/70/34 72/67/34 +f 74/71/35 73/70/35 64/69/35 +f 75/72/36 74/71/36 62/73/36 +f 58/74/37 76/75/37 75/72/37 +f 56/76/38 77/77/38 76/75/38 +f 78/78/39 77/77/39 56/76/39 +f 79/79/40 78/78/40 54/80/40 +f 50/81/41 80/82/41 79/79/41 +f 81/83/42 80/82/42 50/81/42 +f 82/84/43 81/83/43 48/85/43 +f 44/86/44 83/87/44 82/88/44 +f 42/89/45 84/90/45 83/87/45 +f 40/91/46 69/65/46 84/90/46 +f 92/92/47 96/93/47 88/94/47 +f 39/95/48 86/96/48 85/97/48 +f 87/98/49 86/96/49 39/95/49 +f 88/99/50 87/98/50 41/100/50 +f 89/101/51 88/99/51 43/102/51 +f 90/103/52 89/104/52 45/105/52 +f 91/106/53 90/103/53 47/107/53 +f 51/108/54 92/109/54 91/106/54 +f 93/110/55 92/109/55 51/108/55 +f 55/111/56 94/112/56 93/110/56 +f 57/113/57 95/114/57 94/112/57 +f 96/115/58 95/114/58 57/113/58 +f 97/116/59 96/115/59 59/117/59 +f 63/118/60 98/119/60 97/116/60 +f 65/120/61 99/121/61 98/119/61 +f 100/122/62 99/121/62 65/120/62 +f 85/97/63 100/122/63 67/123/63 +f 25/124/1 27/1/1 24/3/1 +f 27/1/2 29/4/2 22/2/2 +f 20/5/3 29/4/3 18/7/3 +f 31/6/4 33/8/4 18/7/4 +f 15/17/5 17/10/5 34/12/5 +f 33/8/6 35/13/6 16/9/6 +f 17/10/7 19/15/7 32/11/7 +f 13/19/8 15/17/8 36/18/8 +f 35/13/9 13/19/9 14/14/9 +f 19/15/10 21/20/10 30/16/10 +f 28/21/11 21/20/11 26/23/11 +f 23/22/12 25/24/12 26/23/12 +f 14/28/13 36/125/13 34/126/13 +f 34/126/13 32/127/13 14/28/13 +f 30/128/13 28/129/13 26/26/13 +f 26/26/13 24/130/13 22/27/13 +f 22/27/13 20/131/13 18/132/13 +f 18/132/13 16/133/13 22/27/13 +f 14/28/13 32/127/13 30/128/13 +f 30/128/13 26/26/13 14/28/13 +f 22/27/13 16/133/13 14/28/13 +f 37/58/14 38/29/14 39/31/14 +f 39/31/15 40/30/15 41/33/15 +f 41/33/16 42/32/16 43/35/16 +f 43/35/17 44/34/17 45/37/17 +f 45/134/18 46/38/18 47/40/18 +f 49/42/19 47/40/19 50/41/19 +f 51/135/20 49/42/20 52/43/20 +f 51/135/21 52/43/21 53/45/21 +f 55/136/22 53/45/22 56/46/22 +f 55/136/23 56/46/23 57/48/23 +f 57/48/24 58/47/24 59/50/24 +f 59/50/25 60/49/25 61/52/25 +f 61/52/26 62/51/26 63/54/26 +f 63/54/27 64/53/27 65/56/27 +f 67/59/28 68/57/28 37/58/28 +f 65/56/29 66/55/29 67/59/29 +f 84/62/30 69/137/30 70/138/30 +f 70/138/30 71/139/30 72/140/30 +f 72/140/30 73/141/30 74/142/30 +f 74/142/30 75/143/30 72/140/30 +f 76/60/30 77/144/30 80/61/30 +f 78/145/30 79/146/30 80/61/30 +f 80/61/30 81/147/30 84/62/30 +f 82/148/30 83/149/30 84/62/30 +f 84/62/30 70/138/30 72/140/30 +f 72/140/30 75/143/30 76/60/30 +f 77/144/30 78/145/30 80/61/30 +f 81/147/30 82/148/30 84/62/30 +f 84/62/30 72/140/30 76/60/30 +f 40/91/31 38/63/31 69/65/31 +f 68/68/32 71/66/32 38/63/32 +f 66/150/33 72/67/33 68/68/33 +f 66/150/34 64/69/34 72/67/34 +f 62/73/64 74/71/64 64/69/64 +f 60/151/65 75/72/65 62/73/65 +f 60/151/37 58/74/37 75/72/37 +f 58/74/38 56/76/38 76/75/38 +f 54/80/39 78/78/39 56/76/39 +f 52/152/66 79/79/66 54/80/66 +f 52/152/41 50/81/41 79/79/41 +f 48/85/42 81/83/42 50/81/42 +f 46/153/43 82/84/43 48/85/43 +f 46/154/44 44/86/44 82/88/44 +f 44/86/45 42/89/45 83/87/45 +f 42/89/46 40/91/46 84/90/46 +f 100/155/47 85/156/47 86/157/47 +f 86/157/47 87/158/47 100/155/47 +f 88/94/47 89/159/47 90/160/47 +f 90/160/47 91/161/47 88/94/47 +f 92/92/47 93/162/47 96/93/47 +f 94/163/47 95/164/47 96/93/47 +f 96/93/47 97/165/47 98/166/47 +f 98/166/47 99/167/47 100/155/47 +f 100/155/47 87/158/47 88/94/47 +f 88/94/47 91/161/47 92/92/47 +f 93/162/47 94/163/47 96/93/47 +f 96/93/47 98/166/47 100/155/47 +f 100/155/47 88/94/47 96/93/47 +f 37/168/48 39/95/48 85/97/48 +f 41/100/49 87/98/49 39/95/49 +f 43/102/50 88/99/50 41/100/50 +f 45/169/51 89/101/51 43/102/51 +f 47/107/67 90/103/67 45/105/67 +f 49/170/53 91/106/53 47/107/53 +f 49/170/54 51/108/54 91/106/54 +f 53/171/55 93/110/55 51/108/55 +f 53/171/56 55/111/56 93/110/56 +f 55/111/57 57/113/57 94/112/57 +f 59/117/58 96/115/58 57/113/58 +f 61/172/59 97/116/59 59/117/59 +f 61/172/60 63/118/60 97/116/60 +f 63/118/61 65/120/61 98/119/61 +f 67/123/62 100/122/62 65/120/62 +f 37/168/63 85/97/63 67/123/63 diff --git a/assets/hbm/textures/blocks/machine_pumpjack.png b/assets/hbm/textures/blocks/machine_pumpjack.png new file mode 100644 index 000000000..2fa6d15af Binary files /dev/null and b/assets/hbm/textures/blocks/machine_pumpjack.png differ diff --git a/assets/hbm/textures/blocks/machine_turbofan.png b/assets/hbm/textures/blocks/machine_turbofan.png new file mode 100644 index 000000000..ace456bb5 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_turbofan.png differ diff --git a/assets/hbm/textures/items/entanglement_kit.jpg b/assets/hbm/textures/items/entanglement_kit.jpg new file mode 100644 index 000000000..5b61d89c9 Binary files /dev/null and b/assets/hbm/textures/items/entanglement_kit.jpg differ diff --git a/assets/hbm/textures/items/glitch_1.png b/assets/hbm/textures/items/glitch_1.png new file mode 100644 index 000000000..4e3dfa324 Binary files /dev/null and b/assets/hbm/textures/items/glitch_1.png differ diff --git a/assets/hbm/textures/items/glitch_2.png b/assets/hbm/textures/items/glitch_2.png new file mode 100644 index 000000000..ea739662f Binary files /dev/null and b/assets/hbm/textures/items/glitch_2.png differ diff --git a/assets/hbm/textures/items/glitch_3.png b/assets/hbm/textures/items/glitch_3.png new file mode 100644 index 000000000..3dbb864d0 Binary files /dev/null and b/assets/hbm/textures/items/glitch_3.png differ diff --git a/assets/hbm/textures/items/glitch_4.png b/assets/hbm/textures/items/glitch_4.png new file mode 100644 index 000000000..ef270015f Binary files /dev/null and b/assets/hbm/textures/items/glitch_4.png differ diff --git a/assets/hbm/textures/items/glitch_5.png b/assets/hbm/textures/items/glitch_5.png new file mode 100644 index 000000000..3784bd51d Binary files /dev/null and b/assets/hbm/textures/items/glitch_5.png differ diff --git a/assets/hbm/textures/items/glitch_6.png b/assets/hbm/textures/items/glitch_6.png new file mode 100644 index 000000000..00cab7c09 Binary files /dev/null and b/assets/hbm/textures/items/glitch_6.png differ diff --git a/assets/hbm/textures/items/glitch_7.png b/assets/hbm/textures/items/glitch_7.png new file mode 100644 index 000000000..9131d2668 Binary files /dev/null and b/assets/hbm/textures/items/glitch_7.png differ diff --git a/assets/hbm/textures/items/glitch_8.png b/assets/hbm/textures/items/glitch_8.png new file mode 100644 index 000000000..f24d72787 Binary files /dev/null and b/assets/hbm/textures/items/glitch_8.png differ diff --git a/assets/hbm/textures/items/glitch_9.png b/assets/hbm/textures/items/glitch_9.png new file mode 100644 index 000000000..cd43b9dce Binary files /dev/null and b/assets/hbm/textures/items/glitch_9.png differ diff --git a/assets/hbm/textures/items/meteor_remote.png b/assets/hbm/textures/items/meteor_remote.png new file mode 100644 index 000000000..70ef6075a Binary files /dev/null and b/assets/hbm/textures/items/meteor_remote.png differ diff --git a/assets/hbm/textures/items/void.png b/assets/hbm/textures/items/void.png new file mode 100644 index 000000000..ea2166761 Binary files /dev/null and b/assets/hbm/textures/items/void.png differ diff --git a/assets/hbm/textures/items/void_anim.png b/assets/hbm/textures/items/void_anim.png new file mode 100644 index 000000000..b908de8de Binary files /dev/null and b/assets/hbm/textures/items/void_anim.png differ diff --git a/assets/hbm/textures/items/void_anim.png.mcmeta b/assets/hbm/textures/items/void_anim.png.mcmeta new file mode 100644 index 000000000..dd1bedb12 --- /dev/null +++ b/assets/hbm/textures/items/void_anim.png.mcmeta @@ -0,0 +1,3 @@ +{ + "animation": {} +} diff --git a/assets/hbm/textures/models/shimmer_sledge.png b/assets/hbm/textures/models/shimmer_sledge.png new file mode 100644 index 000000000..fa5eaef78 Binary files /dev/null and b/assets/hbm/textures/models/shimmer_sledge.png differ diff --git a/assets/hbm/textures/models/shimmer_sledge_wf.png b/assets/hbm/textures/models/shimmer_sledge_wf.png new file mode 100644 index 000000000..585c368d7 Binary files /dev/null and b/assets/hbm/textures/models/shimmer_sledge_wf.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 8b57f409e..b30d92fc4 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -160,6 +160,7 @@ public class ModBlocks { public static Block red_barrel; public static Block yellow_barrel; public static Block crashed_balefire; + public static Block rejuvinator; public static Block crate; @@ -582,6 +583,7 @@ public class ModBlocks { red_barrel = new RedBarrel(Material.iron).setBlockName("red_barrel").setCreativeTab(MainRegistry.tabNuke).setHardness(0.5F).setResistance(2.5F); yellow_barrel = new YellowBarrel(Material.iron).setBlockName("yellow_barrel").setCreativeTab(MainRegistry.tabNuke).setHardness(0.5F).setResistance(2.5F); crashed_balefire = new BlockCrashedBomb(Material.iron).setBlockName("crashed_bomb").setCreativeTab(MainRegistry.tabNuke).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":crashed_balefire"); + rejuvinator = new BombRejuvinator(Material.iron).setBlockName("rejuvinator").setCreativeTab(MainRegistry.tabNuke).setBlockUnbreakable().setResistance(6000.0F).setBlockTextureName(RefStrings.MODID + ":inserter_side"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); @@ -717,7 +719,7 @@ public class ModBlocks { machine_chemplant = new MachineChemplant(Material.iron).setBlockName("machine_chemplant").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_chemplant"); machine_fluidtank = new MachineFluidTank(Material.iron).setBlockName("machine_fluidtank").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_fluidtank"); machine_turbofan = new MachineTurbofan(Material.iron).setBlockName("machine_turbofan").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":machine_turbofan"); - machine_inserter = new MachineInserter(Material.iron).setBlockName("machine_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":inserter_side"); + machine_inserter = new BombRejuvinator(Material.iron).setBlockName("machine_inserter").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.tabBlock).setBlockTextureName(RefStrings.MODID + ":inserter_side"); machine_schrabidium_transmutator = new MachineSchrabidiumTransmutator(Material.iron).setBlockName("machine_schrabidium_transmutator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.tabBlock); @@ -926,6 +928,7 @@ public class ModBlocks { GameRegistry.registerBlock(float_bomb, float_bomb.getUnlocalizedName()); GameRegistry.registerBlock(therm_endo, therm_endo.getUnlocalizedName()); GameRegistry.registerBlock(therm_exo, therm_exo.getUnlocalizedName()); + GameRegistry.registerBlock(rejuvinator, rejuvinator.getUnlocalizedName()); GameRegistry.registerBlock(det_cord, det_cord.getUnlocalizedName()); GameRegistry.registerBlock(det_charge, det_charge.getUnlocalizedName()); GameRegistry.registerBlock(red_barrel, red_barrel.getUnlocalizedName()); diff --git a/com/hbm/blocks/bomb/BombFlameWar.java b/com/hbm/blocks/bomb/BombFlameWar.java index 3b4229e25..a37c346f4 100644 --- a/com/hbm/blocks/bomb/BombFlameWar.java +++ b/com/hbm/blocks/bomb/BombFlameWar.java @@ -9,8 +9,6 @@ import net.minecraft.world.World; public class BombFlameWar extends Block implements IBomb { - public World worldObj; - public BombFlameWar(Material p_i45394_1_) { super(p_i45394_1_); } @@ -18,7 +16,6 @@ public class BombFlameWar extends Block implements IBomb { @Override public void onNeighborBlockChange(World p_149695_1_, int x, int y, int z, Block p_149695_5_) { - this.worldObj = p_149695_1_; if (p_149695_1_.isBlockIndirectlyGettingPowered(x, y, z)) { ExplosionChaos.explode(p_149695_1_, x, y, z, 15); diff --git a/com/hbm/blocks/bomb/BombRejuvinator.java b/com/hbm/blocks/bomb/BombRejuvinator.java new file mode 100644 index 000000000..02aab9d2c --- /dev/null +++ b/com/hbm/blocks/bomb/BombRejuvinator.java @@ -0,0 +1,109 @@ +package com.hbm.blocks.bomb; + +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.explosion.ExplosionChaos; +import com.hbm.interfaces.IBomb; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.tileentity.machine.TileEntityMachineInserter; +import com.hbm.tileentity.machine.TileEntityNukeFurnace; + +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.client.renderer.texture.IIconRegister; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import net.minecraft.world.WorldServer; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.chunk.IChunkProvider; +import net.minecraft.world.gen.ChunkProviderServer; + +public class BombRejuvinator extends Block implements IBomb { + + private final Random field_149933_a = new Random(); + private Random rand; + private static boolean keepInventory; + + @SideOnly(Side.CLIENT) + private IIcon iconTop; + + public BombRejuvinator(Material p_i45394_1_) { + super(p_i45394_1_); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":inserter_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":inserter_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block p_149695_5_) { + if (world.isBlockIndirectlyGettingPowered(x, y, z)) { + explode(world, x, y, z); + } + } + + @Override + public void explode(World worldObj, int x1, int y1, int z1) { + if (!worldObj.isRemote) { + worldObj.setBlockToAir(x1, y1, z1); + try { + Chunk oldChunk = worldObj.getChunkFromBlockCoords(x1, z1); + + if (worldObj instanceof WorldServer) { + WorldServer worldServer = (WorldServer) worldObj; + ChunkProviderServer chunkProviderServer = worldServer.theChunkProviderServer; + IChunkProvider chunkProviderGenerate = chunkProviderServer.currentChunkProvider; + + Chunk newChunk = chunkProviderGenerate.provideChunk(oldChunk.xPosition, oldChunk.zPosition); + + for (int x = 0; x < 16; x++) { + for (int z = 0; z < 16; z++) { + for (int y = 0; y < worldObj.getHeight(); y++) { + Block block = newChunk.getBlock(x, y, z); + int metadata = newChunk.getBlockMetadata(x, y, z); + + worldServer.setBlock(x + oldChunk.xPosition * 16, y, z + oldChunk.zPosition * 16, block, + metadata, 2); + + TileEntity tileEntity = newChunk.getTileEntityUnsafe(x, y, z); + + if (tileEntity != null) { + worldServer.setTileEntity(x + oldChunk.xPosition * 16, y, + z + oldChunk.zPosition * 16, tileEntity); + } + } + } + } + + oldChunk.isTerrainPopulated = false; + chunkProviderGenerate.populate(chunkProviderGenerate, oldChunk.xPosition, oldChunk.zPosition); + } + } catch (Exception e) { + System.out.println("Rejuvenation Failed!"); + e.printStackTrace(); + } + } + } + +} diff --git a/com/hbm/blocks/test/TestEventTester.java b/com/hbm/blocks/test/TestEventTester.java index b98fbf3ca..11eb2f5c1 100644 --- a/com/hbm/blocks/test/TestEventTester.java +++ b/com/hbm/blocks/test/TestEventTester.java @@ -148,6 +148,16 @@ public class TestEventTester extends Block { }*/ + /*if(!worldObj.isRemote) { + EntityMeteor met = new EntityMeteor(worldObj); + met.posX = x1; + met.posY = 300; + met.posZ = z1; + worldObj.spawnEntityInWorld(met); + worldObj.setBlockToAir(x1, y1, z1); + }*/ + + if(!worldObj.isRemote) { ModEventHandler.meteorShower = 6000; } diff --git a/com/hbm/entity/projectile/EntityLaser.java b/com/hbm/entity/projectile/EntityLaser.java new file mode 100644 index 000000000..46d642f9b --- /dev/null +++ b/com/hbm/entity/projectile/EntityLaser.java @@ -0,0 +1,63 @@ +package com.hbm.entity.projectile; + +import com.hbm.main.MainRegistry; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.Vec3; +import net.minecraft.world.World; + +public class EntityLaser extends Entity { + + public EntityLaser(World world) { + super(world); + this.ignoreFrustumCheck = true; + } + + public EntityLaser(World world, EntityPlayer player) { + super(world); + this.ignoreFrustumCheck = true; + Vec3 vec1 = player.getLook(1.0F); + vec1.rotateAroundY(-90); + Vec3 vec2 = player.getLook(1.0F); + double x = player.posX + (vec1.xCoord * 0.3) + (vec2.xCoord * 0.4); + double y = player.posY + (vec1.yCoord * 0.3) + (vec2.yCoord * 0.4) + player.eyeHeight; + double z = player.posZ + (vec1.zCoord * 0.3) + (vec2.zCoord * 0.4); + this.setPlayerCoord((float)x, (float)y, (float)z); + } + + @Override + protected void entityInit() { + this.dataWatcher.addObject(20, Float.valueOf((float)0)); + this.dataWatcher.addObject(21, Float.valueOf((float)0)); + this.dataWatcher.addObject(22, Float.valueOf((float)0)); + } + + @Override + public void onUpdate() { + if(!worldObj.isRemote && this.ticksExisted > 1) + this.setDead(); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound p_70037_1_) { + } + + @Override + protected void writeEntityToNBT(NBTTagCompound p_70014_1_) { + } + + private void setPlayerCoord(float x, float y, float z) { + this.dataWatcher.updateObject(20, x); + this.dataWatcher.updateObject(21, y); + this.dataWatcher.updateObject(22, z); + } + + public float[] getPlayerCoord() { + return new float[]{ this.dataWatcher.getWatchableObjectFloat(20), + this.dataWatcher.getWatchableObjectFloat(21), + this.dataWatcher.getWatchableObjectFloat(22) }; + } + +} diff --git a/com/hbm/handler/FuelHandler.java b/com/hbm/handler/FuelHandler.java index 192d8a638..b181cb371 100644 --- a/com/hbm/handler/FuelHandler.java +++ b/com/hbm/handler/FuelHandler.java @@ -23,7 +23,7 @@ public class FuelHandler implements IFuelHandler { if(fuel.getItem().equals(ModItems.powder_fire)) return 6400; if(fuel.getItem().equals(Item.getItemFromBlock(ModBlocks.block_scrap))) - return 8000; + return 4000; return 0; } diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index adb8578a7..6e6f4630a 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -1462,8 +1462,9 @@ public class MachineRecipes { switch(ItemAssemblyTemplate.EnumAssemblyTemplate.getEnum(stack.getItemDamage())) { case SCHRABIDIUM_HAMMER: list.add(new ItemStack(ModBlocks.block_schrabidium, 15)); - list.add(new ItemStack(ModItems.ingot_polymer, 128)); - list.add(new ItemStack(Items.nether_star, 2)); + list.add(new ItemStack(ModItems.ingot_polymer, 64*2)); + list.add(new ItemStack(Items.nether_star, 3)); + list.add(new ItemStack(ModItems.fragment_meteorite, 64*8)); break; case MIXED_PLATE: list.add(new ItemStack(ModItems.plate_advanced_alloy, 2)); @@ -1964,6 +1965,9 @@ public class MachineRecipes { case ANGRY_METAL: list.add(new ItemStack(ModBlocks.block_meteor, 1)); break; + case METEOR_BLOCK: + list.add(new ItemStack(ModItems.fragment_meteorite, 100)); + break; case CMB_TILE: list.add(new ItemStack(ModItems.ingot_combine_steel, 1)); list.add(new ItemStack(ModItems.plate_combine_steel, 8)); @@ -3071,6 +3075,9 @@ public class MachineRecipes { case ANGRY_METAL: output = new ItemStack(ModItems.plate_dalekanium, 1); break; + case METEOR_BLOCK: + output = new ItemStack(ModBlocks.block_meteor, 1); + break; case CMB_TILE: output = new ItemStack(ModBlocks.cmb_brick, 8); break; diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 0828416dc..07c5bc34e 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -934,6 +934,7 @@ public class ModItems { public static Item igniter; public static Item detonator; public static Item crate_caller; + public static Item meteor_remote; public static Item remote; public static Item turret_control; public static Item turret_chip; @@ -954,6 +955,7 @@ public class ModItems { public static Item record_vc; public static Item polaroid; + public static Item glitch; public static Item letter; public static Item book_secret; public static Item burnt_bark; @@ -1030,6 +1032,7 @@ public class ModItems { public static Item ln2_9; public static Item ln2_10; public static Item nothing; + public static Item void_anim; public static final int guiID_item_folder = 99; @@ -1606,7 +1609,7 @@ public class ModItems { gun_euthanasia_ammo = new Item().setUnlocalizedName("gun_euthanasia_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_euthanasia_ammo"); gun_euthanasia = new GunEuthanasia().setUnlocalizedName("gun_euthanasia").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_euthanasia"); gun_dash_ammo = new Item().setUnlocalizedName("gun_dash_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_dash_ammo"); - gun_dash = new GunEuthanasia().setUnlocalizedName("gun_dash").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_dash"); + gun_dash = new GunDash().setUnlocalizedName("gun_dash").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_dash"); gun_twigun_ammo = new Item().setUnlocalizedName("gun_twigun_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_twigun_ammo"); gun_twigun = new GunEuthanasia().setUnlocalizedName("gun_twigun").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_twigun"); gun_defabricator_ammo = new Item().setUnlocalizedName("gun_defabricator_ammo").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":gun_defabricator_ammo"); @@ -1776,6 +1779,7 @@ public class ModItems { igniter = new ItemCustomLore().setUnlocalizedName("igniter").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":trigger"); detonator = new ItemDetonator().setUnlocalizedName("detonator").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":detonator"); crate_caller = new ItemCrateCaller().setUnlocalizedName("crate_caller").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":crate_caller"); + meteor_remote = new ItemMeteorRemote().setUnlocalizedName("meteor_remote").setMaxStackSize(1).setFull3D().setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":meteor_remote"); remote = new ItemRamManipulator().setUnlocalizedName("remote").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":remote"); chopper = new ItemChopper().setUnlocalizedName("chopper").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":chopper"); linker = new ItemTeleLink().setUnlocalizedName("linker").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":linker"); @@ -1944,6 +1948,7 @@ public class ModItems { record_vc = new ItemModRecord("vc").setUnlocalizedName("record_vc").setCreativeTab(CreativeTabs.tabMisc).setTextureName(RefStrings.MODID + ":record_vc"); polaroid = new ItemPolaroid().setUnlocalizedName("polaroid").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":polaroid_" + MainRegistry.polaroidID); + glitch = new ItemPolaroid().setUnlocalizedName("glitch").setMaxStackSize(1).setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":glitch_" + MainRegistry.polaroidID); letter = new ItemStarterKit().setUnlocalizedName("letter").setCreativeTab(MainRegistry.tabNuke).setTextureName(RefStrings.MODID + ":letter"); book_secret = new ItemCustomLore().setUnlocalizedName("book_secret").setCreativeTab(MainRegistry.polaroidID == 11 ? MainRegistry.tabNuke : null).setTextureName(RefStrings.MODID + ":book_secret"); burnt_bark = new ItemCustomLore().setUnlocalizedName("burnt_bark").setCreativeTab(null).setTextureName(RefStrings.MODID + ":burnt_bark"); @@ -2020,6 +2025,7 @@ public class ModItems { ln2_9 = new Item().setUnlocalizedName("ln2_9").setTextureName(RefStrings.MODID + ":ln2_9"); ln2_10 = new Item().setUnlocalizedName("ln2_10").setTextureName(RefStrings.MODID + ":ln2_10"); nothing = new Item().setUnlocalizedName("nothing").setTextureName(RefStrings.MODID + ":nothing"); + void_anim = new Item().setUnlocalizedName("void_anim").setTextureName(RefStrings.MODID + ":void_anim"); FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.mud_fluid, 1000), new ItemStack(ModItems.bucket_mud)); FluidContainerRegistry.registerFluidContainer(new FluidStack(ModBlocks.acid_fluid, 1000), new ItemStack(ModItems.bucket_acid)); @@ -2946,6 +2952,7 @@ public class ModItems { GameRegistry.registerItem(igniter, igniter.getUnlocalizedName()); GameRegistry.registerItem(detonator, detonator.getUnlocalizedName()); GameRegistry.registerItem(crate_caller, crate_caller.getUnlocalizedName()); + GameRegistry.registerItem(meteor_remote, meteor_remote.getUnlocalizedName()); GameRegistry.registerItem(hazmat_helmet, hazmat_helmet.getUnlocalizedName()); GameRegistry.registerItem(hazmat_plate, hazmat_plate.getUnlocalizedName()); GameRegistry.registerItem(hazmat_legs, hazmat_legs.getUnlocalizedName()); @@ -2994,6 +3001,7 @@ public class ModItems { //GameRegistry.registerItem(remote, remote.getUnlocalizedName()); GameRegistry.registerItem(euphemium_stopper, euphemium_stopper.getUnlocalizedName()); GameRegistry.registerItem(polaroid, polaroid.getUnlocalizedName()); + GameRegistry.registerItem(glitch, glitch.getUnlocalizedName()); GameRegistry.registerItem(book_secret, book_secret.getUnlocalizedName()); GameRegistry.registerItem(burnt_bark, burnt_bark.getUnlocalizedName()); @@ -3099,5 +3107,6 @@ public class ModItems { GameRegistry.registerItem(ln2_9, ln2_9.getUnlocalizedName()); GameRegistry.registerItem(ln2_10, ln2_10.getUnlocalizedName()); GameRegistry.registerItem(nothing, nothing.getUnlocalizedName()); + GameRegistry.registerItem(void_anim, void_anim.getUnlocalizedName()); } } diff --git a/com/hbm/items/special/ItemCell.java b/com/hbm/items/special/ItemCell.java index bcd437010..3ab82e363 100644 --- a/com/hbm/items/special/ItemCell.java +++ b/com/hbm/items/special/ItemCell.java @@ -4,6 +4,7 @@ import java.util.Random; import com.hbm.blocks.bomb.BlockCrashedBomb; import com.hbm.entity.logic.EntityNukeExplosionAdvanced; +import com.hbm.entity.logic.EntityNukeExplosionMK3; import com.hbm.explosion.ExplosionParticleB; import com.hbm.items.ModItems; @@ -25,7 +26,7 @@ public class ItemCell extends Item { { if (!world.isRemote) { - EntityNukeExplosionAdvanced entity0 = new EntityNukeExplosionAdvanced(world); + EntityNukeExplosionMK3 entity0 = new EntityNukeExplosionMK3(world); entity0.posX = p_77648_4_; entity0.posY = p_77648_5_; entity0.posZ = p_77648_6_; diff --git a/com/hbm/items/tool/ItemAssemblyTemplate.java b/com/hbm/items/tool/ItemAssemblyTemplate.java index fc89a5c26..23ae9202e 100644 --- a/com/hbm/items/tool/ItemAssemblyTemplate.java +++ b/com/hbm/items/tool/ItemAssemblyTemplate.java @@ -106,6 +106,7 @@ public class ItemAssemblyTemplate extends Item { THERMO_ELEMENT, LIMITER, ANGRY_METAL, + METEOR_BLOCK, CMB_TILE, CMB_BRICKS, HATCH_FRAME, @@ -469,6 +470,8 @@ public class ItemAssemblyTemplate extends Item { return 150; case ANGRY_METAL: return 50; + case METEOR_BLOCK: + return 500; case CMB_TILE: return 100; case CMB_BRICKS: diff --git a/com/hbm/items/tool/ItemMeteorRemote.java b/com/hbm/items/tool/ItemMeteorRemote.java new file mode 100644 index 000000000..3970df25d --- /dev/null +++ b/com/hbm/items/tool/ItemMeteorRemote.java @@ -0,0 +1,59 @@ +package com.hbm.items.tool; + +import java.util.List; +import java.util.Random; + +import com.hbm.blocks.ModBlocks; +import com.hbm.entity.projectile.EntityMeteor; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ChatComponentText; +import net.minecraft.world.World; + +public class ItemMeteorRemote extends Item { + + Random rand = new Random(); + + public ItemMeteorRemote() { + this.canRepair = false; + this.setMaxDamage(2); + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) + { + list.add("Right click to summon a meteorite!"); + } + + @Override + public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { + + stack.damageItem(1, player); + + if(!world.isRemote) + { + EntityMeteor meteor = new EntityMeteor(world); + meteor.posX = player.posX + world.rand.nextInt(201) - 100; + meteor.posY = 384; + meteor.posZ = player.posZ + world.rand.nextInt(201) - 100; + meteor.motionX = world.rand.nextDouble() - 0.5; + meteor.motionY = -2.5; + meteor.motionZ = world.rand.nextDouble() - 0.5; + world.spawnEntityInWorld(meteor); + } + if(world.isRemote) + { + player.addChatMessage(new ChatComponentText("Watch your head!")); + } + + world.playSoundAtEntity(player, "hbm:item.techBleep", 1.0F, 1.0F); + + player.swingItem(); + + return stack; + + } +} diff --git a/com/hbm/items/weapon/GunDash.java b/com/hbm/items/weapon/GunDash.java new file mode 100644 index 000000000..42dd8c83e --- /dev/null +++ b/com/hbm/items/weapon/GunDash.java @@ -0,0 +1,102 @@ +package com.hbm.items.weapon; + +import java.util.List; +import java.util.Random; + +import com.google.common.collect.Multimap; +import com.hbm.entity.projectile.EntityBullet; +import com.hbm.entity.projectile.EntityLaser; +import com.hbm.items.ModItems; +import com.hbm.lib.Library; + +import net.minecraft.enchantment.Enchantment; +import net.minecraft.enchantment.EnchantmentHelper; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.world.World; +import net.minecraftforge.event.entity.player.ArrowNockEvent; + +public class GunDash extends Item { + + Random rand = new Random(); + + public GunDash() + { + this.maxStackSize = 1; + } + + @Override + public EnumAction getItemUseAction(ItemStack par1ItemStack) { + return EnumAction.bow; + } + + @Override + public int getMaxItemUseDuration(ItemStack p_77626_1_) { + return 72000; + } + + @Override + public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { + ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); + { + p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); + } + + return p_77659_1_; + } + + @Override + public void onUsingTick(ItemStack stack, EntityPlayer player, int count) + { + World world = player.worldObj; + + boolean flag = player.capabilities.isCreativeMode + || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; + if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_dash_ammo)) + && count % 2 == 0) { + + EntityLaser laser = new EntityLaser(world, player); + MovingObjectPosition pos = Library.rayTrace(player, 200, 1.0F); + laser.posX = pos.blockX + 0.5; + laser.posY = pos.blockY + 0.5; + laser.posZ = pos.blockZ + 0.5; + + world.playSoundAtEntity(player, "hbm:weapon.rifleShoot", 1.0F, 0.8F + (rand.nextFloat() * 0.4F)); + + if (!flag) { + player.inventory.consumeInventoryItem(ModItems.gun_dash_ammo); + } + + if (!world.isRemote) { + world.spawnEntityInWorld(laser); + } + } + } + + @Override + public int getItemEnchantability() { + return 0; + } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + + list.add("Ratatatatatatatata!!"); + list.add(""); + list.add("Ammo: SMG Round"); + list.add("Damage: 2 - 8"); + } + + @Override + public Multimap getItemAttributeModifiers() { + Multimap multimap = super.getItemAttributeModifiers(); + multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), + new AttributeModifier(field_111210_e, "Weapon modifier", 3, 0)); + return multimap; + } +} diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 672ee5af1..c92b45701 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -1,4 +1,4 @@ -package com.hbm.main; + package com.hbm.main; import net.minecraft.client.renderer.entity.RenderSnowball; import net.minecraft.item.Item; @@ -77,6 +77,7 @@ import com.hbm.entity.projectile.EntityCombineBall; import com.hbm.entity.projectile.EntityDischarge; import com.hbm.entity.projectile.EntityFire; import com.hbm.entity.projectile.EntityLN2; +import com.hbm.entity.projectile.EntityLaser; import com.hbm.entity.projectile.EntityLaserBeam; import com.hbm.entity.projectile.EntityMeteor; import com.hbm.entity.projectile.EntityMinerBeam; @@ -117,6 +118,7 @@ import com.hbm.render.entity.RenderFireball; import com.hbm.render.entity.RenderFlare; import com.hbm.render.entity.RenderHunterChopper; import com.hbm.render.entity.RenderLN2; +import com.hbm.render.entity.RenderLaser; import com.hbm.render.entity.RenderMeteor; import com.hbm.render.entity.RenderMinecartTest; import com.hbm.render.entity.RenderMiniMIRV; @@ -169,6 +171,7 @@ import com.hbm.render.item.ItemRenderRevolverNightmare; import com.hbm.render.item.ItemRenderRevolverSchrabidium; import com.hbm.render.item.ItemRenderRpg; import com.hbm.render.item.ItemRenderSatelliteReceiver; +import com.hbm.render.item.ItemRenderShim; import com.hbm.render.item.ItemRenderSteelPoles; import com.hbm.render.item.ItemRenderTapeRecorder; import com.hbm.render.item.ItemRenderTestBombAdvanced; @@ -428,6 +431,8 @@ public class ClientProxy extends ServerProxy MinecraftForgeClient.registerItemRenderer(ModItems.multitool_joule, new ItemRenderMultitool()); MinecraftForgeClient.registerItemRenderer(ModItems.multitool_decon, new ItemRenderMultitool()); + MinecraftForgeClient.registerItemRenderer(ModItems.shimmer_sledge, new ItemRenderShim()); + RenderingRegistry.registerEntityRenderingHandler(EntityBullet.class, new RenderRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityMiniNuke.class, new RenderMiniNuke()); RenderingRegistry.registerEntityRenderingHandler(EntityMiniMIRV.class, new RenderMiniMIRV()); @@ -443,6 +448,7 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityMinerBeam.class, new RenderBeam3()); RenderingRegistry.registerEntityRenderingHandler(EntitySparkBeam.class, new RenderBeam4()); RenderingRegistry.registerEntityRenderingHandler(EntityLN2.class, new RenderLN2(ModItems.energy_ball)); + RenderingRegistry.registerEntityRenderingHandler(EntityLaser.class, new RenderLaser()); RenderingRegistry.registerEntityRenderingHandler(EntityNukeExplosionAdvanced.class, new RenderSnowball(ModItems.energy_ball)); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 0330e1a81..e6b03c288 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -113,6 +113,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_daffergon), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_daffergon }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_verticium), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_verticium }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_desh), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_desh }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_meteor_cobble), 1), new Object[] { "##", "##", '#', ModItems.fragment_meteorite }); + GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_meteor_broken), 1), new Object[] { "###", "###", "###", '#', ModItems.fragment_meteorite }); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_uranium_fuel, 1), new Object[] { "nuggetUranium235", "nuggetUranium235", "nuggetUranium235", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238", "nuggetUranium238" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.ingot_plutonium_fuel, 1), new Object[] { "nuggetPlutonium238", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium239", "nuggetPlutonium240", "nuggetPlutonium240", "nuggetPlutonium240" })); @@ -508,7 +510,7 @@ public class CraftingManager { //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_deuterium), 1), new Object[] { "TIT", "RFR", "CCC", 'T', ModItems.tank_steel, 'I', "ingotTitanium", 'R', ModItems.wire_red_copper, 'F', Item.getItemFromBlock(ModBlocks.machine_difurnace_off), 'C', ModItems.coil_tungsten })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_battery), 1), new Object[] { "TST", "RIR", "TLT", 'T', "ingotTungsten", 'I', "ingotRedstoneAlloy", 'R', ModItems.wire_red_copper, 'S', "blockSulfur", 'L', "blockLead" })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_battery), 1), new Object[] { "TLT", "RIR", "TST", 'T', "ingotTungsten", 'I', "ingotRedstoneAlloy", 'R', ModItems.wire_red_copper, 'S', "blockSulfur", 'L', "blockLead" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_coal_off), 1), new Object[] { "STS", "SCS", "SFS", 'S', "ingotSteel", 'T', ModItems.tank_steel, 'C', "ingotRedstoneAlloy", 'F', Item.getItemFromBlock(ModBlocks.machine_electric_furnace_off) })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_coal_off), 1), new Object[] { "STS", "SCS", "SFS", 'S', "ingotSteel", 'T', ModItems.tank_steel, 'C', "ingotRedstoneAlloy", 'F', Blocks.furnace })); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_converter_he_rf), 1), new Object[] { "SSS", "CRC", "SSS", 'S', "ingotSteel", 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus })); //GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_converter_rf_he), 1), new Object[] { "SSS", "CRC", "SSS", 'S', ModItems.ingot_beryllium, 'C', ModItems.coil_copper, 'R', ModItems.coil_copper_torus }); //GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.machine_schrabidium_transmutator), 1), new Object[] { "TST", "ARA", "BBB", 'S', ModItems.nugget_schrabidium , 'T', "ingotTitanium", 'A', Item.getItemFromBlock(ModBlocks.factory_advanced_hull), 'R', Item.getItemFromBlock(ModBlocks.machine_reactor), 'B', Item.getItemFromBlock(ModBlocks.machine_battery) })); @@ -633,8 +635,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_lead_ammo, 16), new Object[] { "L", "S", 'L', "paneGlass", 'S', ModItems.ingot_pu239 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_lead_ammo, 16), new Object[] { "L", "S", 'L', "paneGlass", 'S', ModItems.nuclear_waste })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_lead_ammo, 16), new Object[] { "L", "S", 'L', "paneGlass", 'S', ModItems.trinitite })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_schrabidium, 1), new Object[] { "SSS", " RW", 'S', ModItems.plate_schrabidium, 'W', "ingotTungsten", 'R', ModItems.wire_schrabidium })); - GameRegistry.addRecipe(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 16), new Object[] { "L", "S", 'L', ModItems.plate_schrabidium, 'S', Items.gunpowder }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_schrabidium, 1), new Object[] { "SSS", " RW", 'S', ModBlocks.block_schrabidium, 'W', "ingotTungsten", 'R', ModItems.wire_schrabidium })); + GameRegistry.addRecipe(new ItemStack(ModItems.gun_revolver_schrabidium_ammo, 16), new Object[] { "L", "N", "S", 'L', ModItems.plate_schrabidium, 'S', Items.gunpowder, 'N', Items.nether_star }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_cursed, 1), new Object[] { "TTM", "SRI", 'S', "plateSteel", 'I', "ingotSteel", 'R', ModItems.wire_red_copper, 'T', "plateTitanium", 'M', ModItems.motor })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_cursed_ammo, 32), new Object[] { "L", "L", 'L', "plateSteel", 'S', Items.gunpowder })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_revolver_nightmare, 1), new Object[] { "SSE", " RW", 'S', "plateSteel", 'W', Item.getItemFromBlock(Blocks.planks), 'R', ModItems.wire_aluminium, 'E', ModItems.powder_power })); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index b0d713f2d..361063544 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -110,6 +110,7 @@ import com.hbm.entity.projectile.EntityCombineBall; import com.hbm.entity.projectile.EntityDischarge; import com.hbm.entity.projectile.EntityFire; import com.hbm.entity.projectile.EntityLN2; +import com.hbm.entity.projectile.EntityLaser; import com.hbm.entity.projectile.EntityLaserBeam; import com.hbm.entity.projectile.EntityMeteor; import com.hbm.entity.projectile.EntityMinerBeam; @@ -601,6 +602,7 @@ public class MainRegistry EntityRegistry.registerModEntity(EntityNukeExplosionMK3.class, "entity_nuke_mk3", 82, this, 1000, 1, true); EntityRegistry.registerModEntity(EntityVortex.class, "entity_vortex", 83, this, 250, 1, true); EntityRegistry.registerModEntity(EntityMeteor.class, "entity_meteor", 84, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntityLaser.class, "entity_laser", 85, 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); diff --git a/com/hbm/main/ModEventHandler.java b/com/hbm/main/ModEventHandler.java index 96d3ce583..841771ceb 100644 --- a/com/hbm/main/ModEventHandler.java +++ b/com/hbm/main/ModEventHandler.java @@ -30,14 +30,17 @@ public class ModEventHandler if(event.world.rand.nextInt(meteorShower > 0 ? MainRegistry.meteorShowerChance : MainRegistry.meteorStrikeChance) == 0) { if(!event.world.playerEntities.isEmpty()) { EntityPlayer p = (EntityPlayer)event.world.playerEntities.get(event.world.rand.nextInt(event.world.playerEntities.size())); - EntityMeteor meteor = new EntityMeteor(event.world); - meteor.posX = p.posX + event.world.rand.nextInt(201) - 100; - meteor.posY = 384; - meteor.posZ = p.posZ + event.world.rand.nextInt(201) - 100; - meteor.motionX = event.world.rand.nextDouble() - 0.5; - meteor.motionY = -2.5; - meteor.motionZ = event.world.rand.nextDouble() - 0.5; - event.world.spawnEntityInWorld(meteor); + + if(p.dimension == 0) { + EntityMeteor meteor = new EntityMeteor(event.world); + meteor.posX = p.posX + event.world.rand.nextInt(201) - 100; + meteor.posY = 384; + meteor.posZ = p.posZ + event.world.rand.nextInt(201) - 100; + meteor.motionX = event.world.rand.nextDouble() - 0.5; + meteor.motionY = -2.5; + meteor.motionZ = event.world.rand.nextDouble() - 0.5; + event.world.spawnEntityInWorld(meteor); + } } } diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 8432a23a2..168523b8a 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -55,4 +55,14 @@ public class ResourceManager { public static final ResourceLocation turbofan_body_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_body.png"); public static final ResourceLocation turbofan_blades_tex = new ResourceLocation(RefStrings.MODID, "textures/models/turbofan_blades.png"); + ////Obj Items + + //Shimmer Sledge + public static final IModelCustom shimmer_sledge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/shimmer_sledge.obj")); + + ////Texture Items + + //Shimmer Sledge + public static final ResourceLocation shimmer_sledge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/shimmer_sledge.png"); + } diff --git a/com/hbm/render/entity/RenderLaser.java b/com/hbm/render/entity/RenderLaser.java new file mode 100644 index 000000000..657c31e8a --- /dev/null +++ b/com/hbm/render/entity/RenderLaser.java @@ -0,0 +1,64 @@ +package com.hbm.render.entity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.projectile.EntityLaser; + +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderLaser extends Render { + + @Override + public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, + float p_76986_9_) { + this.doRender((EntityLaser)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); + } + + public void doRender(EntityLaser laser, double x, double y, double z, float p_76986_8_, + float p_76986_9_) { + drawPowerLine(x, y, z, + x + (laser.getPlayerCoord()[0] - laser.posX), + y + (laser.getPlayerCoord()[1] - laser.posY), + z + (laser.getPlayerCoord()[2] - laser.posZ)); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return null; + } + + public void drawPowerLine(double x, double y, double z, double a, double b, double c) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + Tessellator tessellator = Tessellator.instance; + tessellator.startDrawing(5); + tessellator.setColorRGBA_F(0.683F, 0.089F, 0.0F, 1.0F); + tessellator.addVertex(x, y + 0.05F, z); + tessellator.addVertex(x, y - 0.05F, z); + tessellator.addVertex(a, b + 0.05F, c); + tessellator.addVertex(a, b - 0.05F, c); + tessellator.draw(); + tessellator.startDrawing(5); + tessellator.setColorRGBA_F(0.683F, 0.089F, 0.0F, 1.0F); + tessellator.addVertex(x + 0.05F, y, z); + tessellator.addVertex(x - 0.05F, y, z); + tessellator.addVertex(a + 0.05F, b, c); + tessellator.addVertex(a - 0.05F, b, c); + tessellator.draw(); + tessellator.startDrawing(5); + tessellator.setColorRGBA_F(0.683F, 0.089F, 0.0F, 1.0F); + tessellator.addVertex(x, y, z + 0.05F); + tessellator.addVertex(x, y, z - 0.05F); + tessellator.addVertex(a, b, c + 0.05F); + tessellator.addVertex(a, b, c - 0.05F); + tessellator.draw(); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glEnable(GL11.GL_CULL_FACE); + } + +} diff --git a/com/hbm/render/item/ItemRenderMIRV.java b/com/hbm/render/item/ItemRenderMIRV.java index d59bc50b9..bbf909f05 100644 --- a/com/hbm/render/item/ItemRenderMIRV.java +++ b/com/hbm/render/item/ItemRenderMIRV.java @@ -39,7 +39,7 @@ public class ItemRenderMIRV implements IItemRenderer { switch(type) { case EQUIPPED_FIRST_PERSON: GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MIRV.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Mirv.png")); GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); GL11.glTranslatef(-0.5F, 0.0F, -0.2F); //GL11.glScalef(2.0F, 2.0F, 2.0F); @@ -51,7 +51,7 @@ public class ItemRenderMIRV implements IItemRenderer { case EQUIPPED: case ENTITY: GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/MIRV.png")); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/Mirv.png")); GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); diff --git a/com/hbm/render/item/ItemRenderShim.java b/com/hbm/render/item/ItemRenderShim.java new file mode 100644 index 000000000..c34168630 --- /dev/null +++ b/com/hbm/render/item/ItemRenderShim.java @@ -0,0 +1,55 @@ +package com.hbm.render.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.main.ResourceManager; +import com.hbm.render.model.ModelSword; + +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; + +public class ItemRenderShim implements IItemRenderer { + + public ItemRenderShim() { } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + return true; + default: return false; + } + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return false; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + switch(type) { + case EQUIPPED: + case EQUIPPED_FIRST_PERSON: + case ENTITY: + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.shimmer_sledge_tex); + GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F); + GL11.glScalef(1.5F, 1.5F, 1.5F); + GL11.glTranslatef(0.45F, -0.3F, 0.0F); + ResourceManager.shimmer_sledge.renderAll(); + GL11.glPopMatrix(); + default: break; + } + } +} diff --git a/com/hbm/world/Meteorite.java b/com/hbm/world/Meteorite.java index a59de0260..bc41bbe2d 100644 --- a/com/hbm/world/Meteorite.java +++ b/com/hbm/world/Meteorite.java @@ -16,6 +16,64 @@ public class Meteorite { public void generate(World world, Random rand, int x, int y, int z) { + switch(rand.nextInt(500)) { + case 0: + //Meteor-only tiny meteorite + List list0 = new ArrayList(); + list0.add(new ItemStack(ModBlocks.block_meteor)); + generateBox(world, rand, x, y, z, list0); + return; + case 1: + //Large ore-only meteorite + List list1 = new ArrayList(); + list1.addAll(this.getRandomOre(rand)); + int i = list1.size(); + for(int j = 0; j < i; j++) + list1.add(new ItemStack(Blocks.stone)); + generateSphere7x7(world, rand, x, y, z, list1); + return; + case 2: + //Medium ore-only meteorite + List list2 = new ArrayList(); + list2.addAll(this.getRandomOre(rand)); + int k = list2.size() / 2; + for(int j = 0; j < k; j++) + list2.add(new ItemStack(Blocks.stone)); + generateSphere5x5(world, rand, x, y, z, list2); + return; + case 3: + //Small pure ore meteorite + List list3 = new ArrayList(); + list3.addAll(this.getRandomOre(rand)); + generateBox(world, rand, x, y, z, list3); + return; + case 4: + //Bamboozle + world.createExplosion(null, x + 0.5, y + 0.5, z + 0.5, 15F, true); + return; + case 5: + //Large treasure-only meteorite + List list4 = new ArrayList(); + list4.add(new ItemStack(ModBlocks.block_meteor_treasure)); + list4.add(new ItemStack(ModBlocks.block_meteor_broken)); + generateSphere7x7(world, rand, x, y, z, list4); + return; + case 6: + //Medium treasure-only meteorite + List list5 = new ArrayList(); + list5.add(new ItemStack(ModBlocks.block_meteor_treasure)); + list5.add(new ItemStack(ModBlocks.block_meteor_treasure)); + list5.add(new ItemStack(ModBlocks.block_meteor_broken)); + generateSphere5x5(world, rand, x, y, z, list5); + return; + case 7: + //Small pure treasure meteorite + List list6 = new ArrayList(); + list6.add(new ItemStack(ModBlocks.block_meteor_treasure)); + generateBox(world, rand, x, y, z, list6); + return; + } + switch(rand.nextInt(3)) { case 0: generateLarge(world, rand, x, y, z); @@ -530,10 +588,33 @@ public class Meteorite { } } - if(rand.nextInt(5) == 3) { - List list = new ArrayList(); - list.add(new ItemStack(ModBlocks.ore_rare, 1).copy()); - return list; + switch(rand.nextInt(15)) { + case 0: + List list1 = new ArrayList(); + list1.add(new ItemStack(ModBlocks.ore_rare, 1).copy()); + return list1; + case 1: + List list2 = new ArrayList(); + list2.add(new ItemStack(ModBlocks.ore_uranium, 1).copy()); + return list2; + case 2: + List list3 = new ArrayList(); + list3.add(new ItemStack(ModBlocks.ore_reiium, 1).copy()); + list3.add(new ItemStack(ModBlocks.ore_weidanium, 1).copy()); + list3.add(new ItemStack(ModBlocks.ore_australium, 1).copy()); + list3.add(new ItemStack(ModBlocks.ore_unobtainium, 1).copy()); + list3.add(new ItemStack(ModBlocks.ore_daffergon, 1).copy()); + list3.add(new ItemStack(ModBlocks.ore_verticium, 1).copy()); + return list3; + case 3: + List list4 = new ArrayList(); + list4.add(new ItemStack(ModBlocks.ore_nether_fire, 1).copy()); + list4.add(new ItemStack(ModBlocks.ore_nether_plutonium, 1).copy()); + list4.add(new ItemStack(ModBlocks.ore_nether_schrabidium, 1).copy()); + list4.add(new ItemStack(ModBlocks.ore_nether_sulfur, 1).copy()); + list4.add(new ItemStack(ModBlocks.ore_nether_tungsten, 1).copy()); + list4.add(new ItemStack(ModBlocks.ore_nether_uranium, 1).copy()); + return list4; } if(ores.isEmpty()) {