diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index bb6dadfcc..65d18b3ca 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -236,6 +236,7 @@ death.attack.radiation=%1$s starb an Strahlenvergiftung. death.attack.revolverBullet=%1$s wurde von %2$s in den Kopf geschossen. death.attack.rubble=%1$s wurde von Schutt zerquetscht. death.attack.shrapnel=%1$s wurde von einem Schrapnell zerfetzt. +death.attack.spikes=%1$s wurde aufgespießt. death.attack.subAtomic2=%1$s verließ das QPU-Gitter weil %2$s seine De-Facto-Geschwindigkeit manipulierte. death.attack.subAtomic3=%1$s's Divergenzwert fiel wegen %2$s unter 1 Prozent. death.attack.subAtomic4=%1$s wurde von %2$s durch null geteilt. @@ -2061,6 +2062,10 @@ tile.brick_concrete.name=Betonziegel tile.brick_concrete_broken.name=Gebrochene Betonziegel tile.brick_concrete_cracked.name=Rissige Betonziegel tile.brick_concrete_mossy.name=Bemooste Betonziegel +tile.brick_dungeon.name=Berzelianitziiegel +tile.brick_dungeon_circle.name=Berzelianitkreis +tile.brick_dungeon_flat.name=Berzelianitblock +tile.brick_dungeon_tile.name=Berzelianitfliese tile.brick_jungle.name=Enargitziegel tile.brick_jungle_circle.name=Mechanistenzirkel tile.brick_jungle_cracked.name=Rissige Enargitziegel @@ -2374,6 +2379,7 @@ tile.sellafield_core.name=Sellafit-Corium tile.sellafield_slaked.name=Gelöschtes Sellafit tile.soyuz_capsule.name=Landekapsel tile.soyuz_launcher.name=Soyuz-Startplatform +tile.spikes.name=Stacheln tile.steel_beam.name=Stahlträger tile.steel_corner.name=Stahlwand (Ecke) tile.steel_poles.name=Stahlmasten diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index 5926e53a7..f3f17eb98 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -236,6 +236,7 @@ death.attack.radiation=%1$s died from radiation poisoning. death.attack.revolverBullet=%1$s was shot in the head by %2$s. death.attack.rubble=%1$s was squashed by debris. death.attack.shrapnel=%1$s was ragged by a shrapnel. +death.attack.spikes=%1$s got impaled. death.attack.subAtomic2=%1$s was QPU-misaligned because %2$s tampered with their de facto speed. death.attack.subAtomic3=%1$s's divergence dropped below 1 percent because of %2$s. death.attack.subAtomic4=%1$s was divided by zero by %2$s. @@ -2061,6 +2062,10 @@ tile.brick_concrete.name=Concrete Bricks tile.brick_concrete_broken.name=Broken Concrete Bricks tile.brick_concrete_cracked.name=Cracked Concrete Bricks tile.brick_concrete_mossy.name=Mossy Concrete Bricks +tile.brick_dungeon.name=Berzelianite Bricks +tile.brick_dungeon_circle.name=Berzelianite Cirlce +tile.brick_dungeon_flat.name=Berzelianite Block +tile.brick_dungeon_tile.name=Berzelianite Tile tile.brick_jungle.name=Enargite Bricks tile.brick_jungle_circle.name=Mechanist's Circle tile.brick_jungle_cracked.name=Cracked Enargite Bricks @@ -2374,6 +2379,7 @@ tile.sellafield_core.name=Sellafite-Corium tile.sellafield_slaked.name=Slaked Sellafite tile.soyuz_capsule.name=Cargo Landing Capsule tile.soyuz_launcher.name=Soyuz Launch Platform +tile.spikes.name=Spikes tile.steel_beam.name=Steel Beam tile.steel_corner.name=Steel Wall Corner tile.steel_poles.name=Steel Pole diff --git a/src/main/java/assets/hbm/models/armor/BJ.obj b/src/main/java/assets/hbm/models/armor/BJ.obj index 962168449..5833a207b 100644 --- a/src/main/java/assets/hbm/models/armor/BJ.obj +++ b/src/main/java/assets/hbm/models/armor/BJ.obj @@ -1,170 +1,1523 @@ # Blender v2.79 (sub 0) OBJ File: 'BJ.blend' # www.blender.org o Head -v -0.250000 1.500000 0.250000 -v -0.250000 1.500000 -0.250000 -v 0.250000 1.500000 0.250000 -v 0.250000 1.500000 -0.250000 -v -0.250000 2.000000 0.250000 -v -0.250000 2.000000 -0.250000 -v 0.250000 2.000000 -0.250000 -v 0.250000 2.000000 0.250000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 0.0000 -vn 1.0000 0.0000 0.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 1.0000 -vn 0.0000 0.0000 -1.0000 +v 3.374979 -4.000002 -4.500000 +v 1.124979 -4.000002 -4.500000 +v 3.374979 -2.875002 -4.500000 +v 1.124980 -2.875002 -4.500000 +v 3.374978 -4.562502 -4.500000 +v 1.124979 -4.562502 -4.500000 +v 4.499979 -3.437504 -4.500000 +v 4.499979 -4.000004 -4.500000 +v 4.499979 -3.437504 4.500000 +v 4.499978 -4.000004 4.500000 +v -4.500021 -5.125002 4.500000 +v -4.500021 -5.687502 4.500000 +v -4.500020 -5.125002 -4.500000 +v -4.500020 -5.687502 -4.500000 +vt 0.718750 0.666667 +vt 0.656250 -0.000000 +vt 0.718750 0.000000 +vt 0.656250 0.666667 +vt 0.718750 1.000000 +vt 0.656250 1.000000 +vt 0.750000 1.000000 +vt 0.750000 0.666667 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 0.250000 0.666667 +vt 0.250000 1.000000 +vt 0.500000 1.000000 +vt 0.500000 0.666667 +vt 1.000000 0.666667 +vt -0.000000 0.666667 +vn 0.0000 -0.0000 -1.0000 +vn 1.0000 -0.0000 0.0000 +vn -0.0000 0.0000 1.0000 +vn -1.0000 0.0000 -0.0000 s off -f 3//1 2//1 4//1 -f 6//2 8//2 7//2 -f 4//3 8//3 3//3 -f 1//4 6//4 2//4 -f 3//5 5//5 1//5 -f 2//6 7//6 4//6 -f 3//1 1//1 2//1 -f 6//2 5//2 8//2 -f 4//3 7//3 8//3 -f 1//4 5//4 6//4 -f 3//5 8//5 5//5 -f 2//6 6//6 7//6 +f 1/1/1 4/2/1 3/3/1 +f 2/4/1 5/5/1 6/6/1 +f 1/1/1 8/7/1 5/5/1 +f 7/8/2 10/9/2 8/7/2 +f 10/10/3 11/11/3 12/12/3 +f 11/11/4 14/13/4 12/12/4 +f 6/6/1 13/14/1 2/4/1 +f 1/1/1 2/4/1 4/2/1 +f 2/4/1 1/1/1 5/5/1 +f 1/1/1 7/8/1 8/7/1 +f 7/8/2 9/15/2 10/9/2 +f 10/10/3 9/16/3 11/11/3 +f 11/11/4 13/14/4 14/13/4 +f 6/6/1 14/13/1 13/14/1 o RightArm -v 0.125000 0.750000 0.500000 -v 0.125000 1.500000 0.500000 -v -0.125000 0.750000 0.500000 -v -0.125000 1.500000 0.500000 -v 0.125000 0.750000 0.250000 -v 0.125000 1.500000 0.250000 -v -0.125000 0.750000 0.250000 -v -0.125000 1.500000 0.250000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 0.0000 +v -8.500006 12.500003 -2.500003 +v -8.500016 -0.499996 -2.500003 +v -8.500008 12.500003 2.499997 +v -8.500019 -0.499996 2.499997 +v -3.500006 12.500001 -2.500000 +v -3.500015 -0.500000 -2.500000 +v -3.500009 12.500001 2.500000 +v -3.500019 -0.500000 2.500000 +v -8.500006 11.416669 -2.500003 +v -8.500010 11.416669 2.499997 +v -3.500005 11.416668 -2.500000 +v -3.500009 11.416668 2.500000 +v -2.875005 11.416667 -3.125000 +v -9.125006 11.416670 -3.125003 +v -9.125008 11.416670 3.124997 +v -2.875008 11.416667 3.125000 +v -8.500005 10.333336 -2.500003 +v -8.500008 10.333336 2.499997 +v -3.500005 10.333334 -2.500000 +v -3.500009 10.333334 2.500000 +v -2.875006 10.333334 -3.125000 +v -9.125006 10.333336 -3.125003 +v -9.125008 10.333336 3.124997 +v -2.875009 10.333334 3.125000 +v -8.500006 9.791670 -2.500003 +v -8.500008 9.791670 2.499997 +v -3.500005 9.791667 -2.500000 +v -3.500009 9.791667 2.500000 +v -2.875005 9.791667 -3.125000 +v -9.125005 9.791670 -3.125003 +v -9.125009 9.791670 3.124997 +v -2.875008 9.791667 3.125000 +v -6.000015 -1.583334 -3.125000 +v -6.000018 -1.583334 3.125000 +v -2.875019 -1.583332 3.125000 +v -2.875015 -1.583332 -3.125000 +v -2.875005 7.625000 -3.125000 +v -9.125006 7.625004 -3.125003 +v -9.125008 7.625004 3.124997 +v -2.875009 7.625000 3.125000 +v -8.500006 5.458338 -2.500003 +v -8.500008 5.458338 2.499997 +v -3.500005 5.458334 -2.500000 +v -3.500009 5.458334 2.500000 +v -9.750015 -0.500000 -3.125000 +v -9.750017 -0.500000 3.125000 +v -9.750015 2.750000 -3.125000 +v -9.750017 2.750000 3.125000 +v -6.000015 0.583334 -3.125000 +v -6.000019 0.583334 3.125000 +v -2.875016 0.583334 -3.125000 +v -2.875019 0.583334 3.125000 +v -4.750016 2.749998 -3.125000 +v -4.750016 2.749998 -2.500000 +v -6.000015 2.750000 -3.125000 +v -6.000015 2.750000 -2.500000 +v -4.750017 1.666664 -3.125000 +v -4.750016 1.666664 -2.500000 +v -6.000016 1.666666 -3.125000 +v -6.000016 1.666666 -2.500000 +v -9.750007 0.041670 -1.250003 +v -9.750009 0.041670 1.249997 +v -12.250009 -1.041664 -0.625003 +v -12.250009 -1.041664 0.624996 +v -9.750006 0.583336 -1.250003 +v -9.750008 0.583336 1.249997 +vt 0.205128 0.603774 +vt 0.102564 0.150943 +vt 0.205128 0.150943 +vt 0.102564 0.603774 +vt 0.000000 0.150943 +vt 0.410256 0.603774 +vt 0.307692 0.150943 +vt 0.410256 0.150943 +vt 0.307692 0.603774 +vt 0.307692 -0.000000 +vt 0.205128 0.000000 +vt 0.307692 0.754717 +vt 0.141026 0.830189 +vt 0.256410 0.811321 +vt 0.243590 0.830189 +vt 0.282051 0.830189 +vt 0.384615 0.811321 +vt 0.371795 0.830189 +vt 0.397436 0.830189 +vt 0.512821 0.811321 +vt 0.500000 0.830189 +vt 0.012821 0.830189 +vt 0.128205 0.811321 +vt 0.115385 0.830189 +vt 0.256410 0.773585 +vt 0.128205 0.773585 +vt 0.141026 0.754717 +vt 0.371795 0.754717 +vt 0.282051 0.754717 +vt 0.512821 0.773585 +vt 0.397436 0.754717 +vt 0.500000 0.754717 +vt 0.012821 0.754717 +vt 0.115385 0.754717 +vt 0.384615 0.773585 +vt 0.000000 0.811321 +vt -0.000000 0.773585 +vt 0.384615 0.924528 +vt 0.500000 1.000000 +vt 0.397436 1.000000 +vt 0.269231 1.000000 +vt 0.371795 1.000000 +vt 0.141026 1.000000 +vt 0.256410 0.924528 +vt 0.243590 1.000000 +vt 0.115385 1.000000 +vt -0.000000 0.924528 +vt 0.128205 0.924528 +vt 0.256410 0.849057 +vt 0.128205 0.849057 +vt 0.243590 0.830189 +vt 0.141026 0.830189 +vt 0.371795 0.830189 +vt 0.269231 0.830189 +vt 0.512821 0.849057 +vt 0.397436 0.830189 +vt 0.500000 0.830189 +vt 0.012821 0.830189 +vt 0.115385 0.830189 +vt 0.384615 0.849057 +vt 0.512821 0.924528 +vt -0.000000 0.849057 +vt 0.833333 0.490566 +vt 0.705128 0.603774 +vt 0.705128 0.490566 +vt 0.833333 0.358491 +vt 0.705128 0.358491 +vt 0.833333 0.245283 +vt 0.705128 0.113208 +vt 0.833333 0.113208 +vt 0.705128 -0.000000 +vt 0.833333 0.000000 +vt 0.410256 0.320755 +vt 0.538462 0.396226 +vt 0.410256 0.396226 +vt 0.923077 0.320755 +vt 0.923077 0.396226 +vt 1.000000 0.396226 +vt 0.615385 0.320755 +vt 0.615385 0.396226 +vt 0.012821 0.622642 +vt 0.038462 0.603774 +vt 0.038462 0.622642 +vt 0.038462 0.679245 +vt 0.012821 0.660377 +vt 0.038462 0.660377 +vt 0.051282 0.622642 +vt 0.000000 0.660377 +vt -0.000000 0.622642 +vt 0.064103 0.754717 +vt 0.102564 0.679245 +vt 0.115385 0.754717 +vt 0.064103 0.603774 +vt 0.115385 0.603774 +vt 0.115385 0.679245 +vt 0.128205 0.754717 +vt 0.064103 0.679245 +vt 0.051282 0.754717 +vt -0.000000 0.603774 +vt 0.205128 0.754717 +vt 0.243590 0.754717 +vt 0.012821 1.000000 +vt 0.833333 0.603774 +vt 0.705128 0.245283 +vt 0.538462 0.320755 +vt 1.000000 0.320755 +vt 0.012821 0.603774 +vt 0.012821 0.679245 +vt 0.051282 0.660377 +vt 0.076923 0.679245 +vn -1.0000 0.0000 -0.0000 +vn -0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 -1.0000 vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.9608 -0.2772 0.0000 +vn 0.0000 -0.2772 -0.9608 +vn -0.9608 -0.2772 -0.0000 +vn -0.0000 -0.2772 0.9608 +vn -0.2775 -0.9607 -0.0000 +vn 0.5003 0.8659 0.0000 +vn 0.3976 -0.9176 0.0000 +vn -0.5450 0.8384 -0.0000 +vn -0.2425 0.0000 -0.9701 +vn -0.2425 0.0000 0.9701 s off -f 10//7 11//7 9//7 -f 12//8 15//8 11//8 -f 16//9 13//9 15//9 -f 14//10 9//10 13//10 -f 15//11 9//11 11//11 -f 12//12 14//12 16//12 -f 10//7 12//7 11//7 -f 12//8 16//8 15//8 -f 16//9 14//9 13//9 -f 14//10 10//10 9//10 -f 15//11 13//11 9//11 -f 12//12 10//12 14//12 +f 16/17/5 17/18/5 15/19/5 +f 18/20/6 21/21/6 17/18/6 +f 22/22/7 19/23/7 21/24/7 +f 20/25/8 15/19/8 19/23/8 +f 21/26/9 15/19/9 17/27/9 +f 22/28/10 16/17/10 20/25/10 +f 32/29/10 36/30/10 31/31/10 +f 31/32/10 35/33/10 33/34/10 +f 33/35/10 38/36/10 34/37/10 +f 34/38/10 37/39/10 32/40/10 +f 28/41/5 37/39/5 29/42/5 +f 24/43/9 28/41/9 29/42/9 +f 25/44/9 28/41/9 23/45/9 +f 30/46/9 25/47/9 26/48/9 +f 29/42/9 26/49/9 24/50/9 +f 28/41/8 35/33/8 36/30/8 +f 38/36/7 27/51/7 30/46/7 +f 29/42/6 38/52/6 30/53/6 +f 51/54/11 58/55/11 57/56/11 +f 55/57/12 51/54/12 57/58/12 +f 56/59/13 52/60/13 55/61/13 +f 56/62/14 54/63/14 53/64/14 +f 44/65/5 53/64/5 45/66/5 +f 39/67/9 45/66/9 40/68/9 +f 41/69/9 44/65/9 39/70/9 +f 46/71/9 41/72/9 42/73/9 +f 45/66/9 42/74/9 40/75/9 +f 43/76/8 52/60/8 44/65/8 +f 54/77/7 43/76/7 46/71/7 +f 53/64/6 46/78/6 45/66/6 +f 47/79/10 49/80/10 48/81/10 +f 48/81/15 59/82/15 47/79/15 +f 60/83/5 61/84/5 59/82/5 +f 61/84/16 64/85/16 63/86/16 +f 63/86/9 66/87/9 65/88/9 +f 65/89/7 49/90/7 50/91/7 +f 59/82/8 63/92/8 47/93/8 +f 63/92/8 50/94/8 47/93/8 +f 64/95/6 60/83/6 48/96/6 +f 49/90/6 64/95/6 48/96/6 +f 69/97/9 68/98/9 67/99/9 +f 72/100/10 73/101/10 71/102/10 +f 68/103/7 71/102/7 67/99/7 +f 67/99/8 73/101/8 69/97/8 +f 69/97/5 74/104/5 70/105/5 +f 76/106/17 77/107/17 75/108/17 +f 77/107/18 80/109/18 79/110/18 +f 75/108/19 77/111/19 79/112/19 +f 78/113/20 76/106/20 80/114/20 +f 16/17/5 18/20/5 17/18/5 +f 18/20/6 22/115/6 21/21/6 +f 22/22/7 20/25/7 19/23/7 +f 20/25/8 16/17/8 15/19/8 +f 21/26/9 19/23/9 15/19/9 +f 22/28/10 18/116/10 16/17/10 +f 32/29/10 37/39/10 36/30/10 +f 31/32/10 36/30/10 35/33/10 +f 33/35/10 35/33/10 38/36/10 +f 34/38/10 38/52/10 37/39/10 +f 28/41/5 36/30/5 37/39/5 +f 24/43/9 23/117/9 28/41/9 +f 25/44/9 27/51/9 28/41/9 +f 30/46/9 27/51/9 25/47/9 +f 29/42/9 30/53/9 26/49/9 +f 28/41/8 27/51/8 35/33/8 +f 38/36/7 35/33/7 27/51/7 +f 29/42/6 37/39/6 38/52/6 +f 51/54/11 54/77/11 58/55/11 +f 55/57/12 52/60/12 51/54/12 +f 56/59/13 53/64/13 52/60/13 +f 56/62/14 58/118/14 54/63/14 +f 44/65/5 52/60/5 53/64/5 +f 39/67/9 44/65/9 45/66/9 +f 41/69/9 43/76/9 44/65/9 +f 46/71/9 43/76/9 41/72/9 +f 45/66/9 46/78/9 42/74/9 +f 43/76/8 51/54/8 52/60/8 +f 54/77/7 51/54/7 43/76/7 +f 53/64/6 54/63/6 46/78/6 +f 47/79/10 50/119/10 49/80/10 +f 48/81/15 60/83/15 59/82/15 +f 60/83/5 62/120/5 61/84/5 +f 61/84/16 62/120/16 64/85/16 +f 63/86/9 64/85/9 66/87/9 +f 65/89/7 66/121/7 49/90/7 +f 59/82/8 61/84/8 63/92/8 +f 63/92/8 65/122/8 50/94/8 +f 64/95/6 62/120/6 60/83/6 +f 49/90/6 66/121/6 64/95/6 +f 69/97/9 70/123/9 68/98/9 +f 72/100/10 74/124/10 73/101/10 +f 68/103/7 72/125/7 71/102/7 +f 67/99/8 71/102/8 73/101/8 +f 69/97/5 73/101/5 74/104/5 +f 76/106/17 78/126/17 77/107/17 +f 77/107/18 78/126/18 80/109/18 o LeftArm -v 0.125000 0.750000 -0.250000 -v 0.125000 1.500000 -0.250000 -v -0.125000 0.750000 -0.250000 -v -0.125000 1.500000 -0.250000 -v 0.125000 0.750000 -0.500000 -v 0.125000 1.500000 -0.500000 -v -0.125000 0.750000 -0.500000 -v -0.125000 1.500000 -0.500000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 0.0000 +v 3.499995 12.500000 -2.500000 +v 3.499986 -0.500000 -2.500000 +v 3.499992 12.500000 2.500000 +v 3.499981 -0.500000 2.500000 +v 8.499994 12.499997 -2.499997 +v 8.499985 -0.500004 -2.499997 +v 8.499992 12.499997 2.500003 +v 8.499982 -0.500004 2.500003 +v 8.500006 11.416667 -2.500003 +v 8.500010 11.416667 2.499997 +v 3.500005 11.416666 -2.500000 +v 3.500009 11.416666 2.500000 +v 2.875005 11.416667 -3.125000 +v 9.125006 11.416667 -3.125004 +v 9.125008 11.416667 3.124996 +v 2.875008 11.416667 3.125000 +v 8.500005 10.333334 -2.500003 +v 8.500008 10.333334 2.499997 +v 3.500005 10.333332 -2.500000 +v 3.500009 10.333332 2.500000 +v 2.875006 10.333334 -3.125000 +v 9.125006 10.333333 -3.125004 +v 9.125008 10.333333 3.124996 +v 2.875009 10.333334 3.125000 +v 8.500006 9.791668 -2.500003 +v 8.500008 9.791668 2.499997 +v 3.500005 9.791665 -2.500000 +v 3.500009 9.791665 2.500000 +v 2.875005 9.791667 -3.125000 +v 9.125005 9.791667 -3.125004 +v 9.125009 9.791667 3.124996 +v 2.875008 9.791667 3.125000 +v 6.000015 -1.583338 -3.125000 +v 6.000018 -1.583338 3.125000 +v 2.875019 -1.583334 3.125000 +v 2.875015 -1.583334 -3.125000 +v 2.875005 7.624998 -3.125000 +v 9.125006 7.625000 -3.125004 +v 9.125008 7.625000 3.124996 +v 2.875009 7.624998 3.125000 +v 8.500006 5.458334 -2.500003 +v 8.500008 5.458334 2.499997 +v 3.500005 5.458334 -2.500000 +v 3.500010 5.458334 2.500000 +v 9.750015 -0.500002 -3.125000 +v 9.750017 -0.500002 3.125000 +v 9.750015 2.749998 -3.125000 +v 9.750017 2.749998 3.125000 +v 6.000015 0.583330 -3.125000 +v 6.000019 0.583330 3.125000 +v 2.875016 0.583332 -3.125000 +v 2.875019 0.583332 3.125000 +v 4.750016 2.749998 -3.125000 +v 4.750015 2.749998 -2.500000 +v 6.000015 2.749996 -3.125000 +v 6.000015 2.749996 -2.500000 +v 4.750016 1.666664 -3.125000 +v 4.750016 1.666664 -2.500000 +v 6.000016 1.666662 -3.125000 +v 6.000016 1.666662 -2.500000 +v 9.750007 0.041668 -1.250003 +v 9.750009 0.041668 1.249997 +v 12.250007 -1.041668 -0.625003 +v 12.250009 -1.041668 0.624996 +v 9.750006 0.583334 -1.250003 +v 9.750008 0.583334 1.249997 +vt 0.205128 0.603774 +vt 0.102564 0.150943 +vt 0.205128 0.150943 +vt 0.102564 0.603774 +vt 0.000000 0.150943 +vt 0.410256 0.603774 +vt 0.307692 0.150943 +vt 0.410256 0.150943 +vt 0.307692 0.603774 +vt 0.307692 -0.000000 +vt 0.205128 0.000000 +vt 0.307692 0.754717 +vt 0.141026 0.830189 +vt 0.256410 0.811321 +vt 0.128205 0.811321 +vt 0.282051 0.830189 +vt 0.384615 0.811321 +vt 0.512821 0.811321 +vt 0.397436 0.830189 +vt 0.500000 0.830189 +vt 0.012821 0.830189 +vt 0.115385 0.830189 +vt 0.256410 0.773585 +vt 0.128205 0.773585 +vt 0.141026 0.754717 +vt 0.243590 0.754717 +vt 0.371795 0.754717 +vt 0.282051 0.754717 +vt 0.397436 0.754717 +vt 0.512821 0.773585 +vt 0.500000 0.754717 +vt 0.012821 0.754717 +vt 0.115385 0.754717 +vt 0.384615 0.773585 +vt -0.000000 0.773585 +vt 0.500000 1.000000 +vt 0.384615 0.924528 +vt 0.397436 1.000000 +vt 0.269231 1.000000 +vt 0.371795 1.000000 +vt 0.256410 0.924528 +vt 0.141026 1.000000 +vt 0.243590 1.000000 +vt 0.128205 0.924528 +vt 0.012821 1.000000 +vt 0.115385 1.000000 +vt 0.256410 0.849057 +vt 0.128205 0.849057 +vt 0.243590 0.830189 +vt 0.141026 0.830189 +vt 0.371795 0.830189 +vt 0.269231 0.830189 +vt 0.397436 0.830189 +vt 0.512821 0.849057 +vt 0.500000 0.830189 +vt 0.012821 0.830189 +vt 0.115385 0.830189 +vt 0.384615 0.849057 +vt 0.512821 0.924528 +vt -0.000000 0.849057 +vt 0.833333 0.490566 +vt 0.705128 0.603774 +vt 0.833333 0.603774 +vt 0.705128 0.490566 +vt 0.833333 0.358491 +vt 0.705128 0.358491 +vt 0.833333 0.245283 +vt 0.705128 0.113208 +vt 0.705128 0.245283 +vt 0.833333 0.113208 +vt 0.705128 -0.000000 +vt 0.538462 0.396226 +vt 0.410256 0.320755 +vt 0.410256 0.396226 +vt 0.923077 0.320755 +vt 1.000000 0.396226 +vt 0.923077 0.396226 +vt 0.615385 0.320755 +vt 0.615385 0.396226 +vt 0.538462 0.320755 +vt 0.038462 0.622642 +vt 0.012821 0.603774 +vt 0.012821 0.622642 +vt 0.038462 0.660377 +vt 0.012821 0.679245 +vt 0.038462 0.679245 +vt 0.051282 0.622642 +vt 0.000000 0.660377 +vt -0.000000 0.622642 +vt 0.102564 0.679245 +vt 0.064103 0.754717 +vt 0.115385 0.754717 +vt 0.064103 0.603774 +vt 0.076923 0.679245 +vt 0.128205 0.754717 +vt 0.115385 0.679245 +vt 0.064103 0.679245 +vt 0.051282 0.754717 +vt -0.000000 0.603774 +vt 0.205128 0.754717 +vt 0.243590 0.830189 +vt 0.371795 0.830189 +vt 0.000000 0.811321 +vt -0.000000 0.924528 +vt 0.833333 0.000000 +vt 1.000000 0.320755 +vt 0.038462 0.603774 +vt 0.012821 0.660377 +vt 0.051282 0.660377 +vt 0.115385 0.603774 +vn -1.0000 0.0000 -0.0000 +vn -0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 -1.0000 vn 0.0000 1.0000 -0.0000 +vn -0.0000 -1.0000 0.0000 +vn -0.9608 -0.2772 0.0000 +vn -0.0000 -0.2772 -0.9608 +vn 0.9608 -0.2772 -0.0000 +vn 0.0000 -0.2772 0.9608 +vn 0.2775 -0.9607 -0.0000 +vn -0.5003 0.8659 0.0000 +vn -0.3976 -0.9176 0.0000 +vn 0.5450 0.8384 -0.0000 +vn 0.2425 0.0000 -0.9701 +vn 0.2425 0.0000 0.9701 s off -f 18//13 19//13 17//13 -f 20//14 23//14 19//14 -f 24//15 21//15 23//15 -f 22//16 17//16 21//16 -f 23//17 17//17 19//17 -f 20//18 22//18 24//18 -f 18//13 20//13 19//13 -f 20//14 24//14 23//14 -f 24//15 22//15 21//15 -f 22//16 18//16 17//16 -f 23//17 21//17 17//17 -f 20//18 18//18 22//18 +f 82/127/21 83/128/21 81/129/21 +f 84/130/22 87/131/22 83/128/22 +f 88/132/23 85/133/23 87/134/23 +f 86/135/24 81/129/24 85/133/24 +f 87/136/25 81/129/25 83/137/25 +f 88/138/26 82/127/26 86/135/26 +f 98/139/26 102/140/26 103/141/26 +f 97/142/26 101/143/26 102/140/26 +f 104/144/26 99/145/26 100/146/26 +f 103/141/26 100/147/26 98/148/26 +f 103/141/23 94/149/23 95/150/23 +f 90/151/25 94/149/25 89/152/25 +f 94/149/25 91/153/25 89/154/25 +f 91/155/25 96/156/25 92/157/25 +f 92/158/25 95/150/25 90/159/25 +f 94/149/24 101/143/24 93/160/24 +f 93/160/21 104/144/21 96/156/21 +f 96/161/22 103/141/22 95/150/22 +f 124/162/27 117/163/27 123/164/27 +f 117/163/28 121/165/28 123/166/28 +f 118/167/29 122/168/29 121/169/29 +f 119/170/30 124/171/30 122/172/30 +f 119/170/23 110/173/23 111/174/23 +f 111/174/25 105/175/25 106/176/25 +f 110/173/25 107/177/25 105/178/25 +f 107/179/25 112/180/25 108/181/25 +f 108/182/25 111/174/25 106/183/25 +f 118/167/24 109/184/24 110/173/24 +f 109/184/21 120/185/21 112/180/21 +f 112/186/22 119/170/22 111/174/22 +f 113/187/26 115/188/26 116/189/26 +f 114/190/31 125/191/31 126/192/31 +f 127/193/23 126/192/23 125/191/23 +f 127/193/32 130/194/32 128/195/32 +f 129/196/25 132/197/25 130/194/25 +f 115/198/21 131/199/21 116/200/21 +f 125/191/24 129/201/24 127/193/24 +f 116/202/24 129/201/24 113/203/24 +f 126/192/22 130/204/22 114/205/22 +f 115/198/22 130/204/22 132/206/22 +f 133/207/25 136/208/25 135/209/25 +f 137/210/26 140/211/26 138/212/26 +f 137/210/21 134/213/21 133/207/21 +f 135/209/24 137/210/24 133/207/24 +f 140/214/23 135/209/23 136/215/23 +f 143/216/33 142/217/33 141/218/33 +f 143/216/34 146/219/34 144/220/34 +f 141/218/35 145/221/35 143/222/35 +f 144/223/36 146/224/36 142/217/36 +f 82/127/21 84/130/21 83/128/21 +f 84/130/22 88/225/22 87/131/22 +f 88/132/23 86/135/23 85/133/23 +f 86/135/24 82/127/24 81/129/24 +f 87/136/25 85/133/25 81/129/25 +f 88/138/26 84/226/26 82/127/26 +f 98/139/26 97/227/26 102/140/26 +f 97/142/26 99/228/26 101/143/26 +f 104/144/26 101/143/26 99/145/26 +f 103/141/26 104/229/26 100/147/26 +f 103/141/23 102/140/23 94/149/23 +f 90/151/25 95/150/25 94/149/25 +f 94/149/25 93/160/25 91/153/25 +f 91/155/25 93/160/25 96/156/25 +f 92/158/25 96/161/25 95/150/25 +f 94/149/24 102/140/24 101/143/24 +f 93/160/21 101/143/21 104/144/21 +f 96/161/22 104/229/22 103/141/22 +f 124/162/27 120/185/27 117/163/27 +f 117/163/28 118/167/28 121/165/28 +f 118/167/29 119/170/29 122/168/29 +f 119/170/30 120/230/30 124/171/30 +f 119/170/23 118/167/23 110/173/23 +f 111/174/25 110/173/25 105/175/25 +f 110/173/25 109/184/25 107/177/25 +f 107/179/25 109/184/25 112/180/25 +f 108/182/25 112/186/25 111/174/25 +f 118/167/24 117/163/24 109/184/24 +f 109/184/21 117/163/21 120/185/21 +f 112/186/22 120/230/22 119/170/22 +f 113/187/26 114/190/26 115/188/26 +f 114/190/31 113/187/31 125/191/31 +f 127/193/23 128/195/23 126/192/23 +f 127/193/32 129/196/32 130/194/32 +f 129/196/25 131/231/25 132/197/25 +f 115/198/21 132/206/21 131/199/21 +f 125/191/24 113/203/24 129/201/24 +f 116/202/24 131/232/24 129/201/24 +f 126/192/22 128/195/22 130/204/22 +f 115/198/22 114/205/22 130/204/22 +f 133/207/25 134/233/25 136/208/25 +f 137/210/26 139/234/26 140/211/26 +f 137/210/21 138/235/21 134/213/21 +f 135/209/24 139/234/24 137/210/24 +f 140/214/23 139/234/23 135/209/23 +f 143/216/33 144/220/33 142/217/33 +f 143/216/34 145/236/34 146/219/34 o Body -v 0.125000 0.750000 0.250000 -v 0.125000 1.500000 0.250000 -v -0.125000 0.750000 0.250000 -v -0.125000 1.500000 0.250000 -v 0.125000 0.750000 -0.250000 -v 0.125000 1.500000 -0.250000 -v -0.125000 0.750000 -0.250000 -v -0.125000 1.500000 -0.250000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 -0.0000 +v -4.250004 12.500003 -2.500003 +v -4.250013 -0.499996 -2.500003 +v -4.250006 12.500003 2.499997 +v -4.250015 -0.499996 2.499997 +v 4.249997 12.499997 -2.499997 +v 4.249988 -0.500004 -2.499997 +v 4.249994 12.499997 2.500003 +v 4.249985 -0.500004 2.500003 +v -3.718762 3.833336 -3.750003 +v 3.718738 3.833332 -3.749997 +v -3.718764 1.666668 -3.750003 +v 3.718736 1.666666 -3.749997 +v -3.718763 6.000002 -2.500003 +v 3.718739 5.999998 -2.499997 +v -3.718762 1.666668 -2.500003 +v 3.718738 1.666666 -2.499997 +v -2.656262 1.666668 -2.500003 +v -2.656262 1.666668 -3.125003 +v -1.593762 1.666668 -3.125003 +v -1.593763 1.666668 -2.500003 +v -2.656263 0.583334 -2.500003 +v -2.656263 0.583334 -3.125003 +v -1.593763 0.583334 -3.125003 +v -1.593763 0.583334 -2.500003 +v 1.593737 1.666666 -2.500002 +v 1.593738 1.666666 -3.125002 +v 2.656238 1.666666 -3.125002 +v 2.656238 1.666666 -2.500002 +v 1.593737 0.583334 -2.500002 +v 1.593737 0.583334 -3.125002 +v 2.656237 0.583334 -3.125002 +v 2.656237 0.583334 -2.500002 +v -1.062512 4.916668 -2.500003 +v -1.062512 4.916668 -3.125003 +v 1.062486 4.916668 -3.125002 +v 1.062488 4.916668 -2.500002 +v -3.718763 9.250002 -2.500003 +v -1.062513 9.250003 -3.125003 +v 1.062487 9.250001 -3.125002 +v -3.718762 4.916668 -2.500003 +v -1.062513 12.500003 -2.500003 +v 1.062487 12.500001 -2.500002 +v 1.593738 4.916666 -3.125002 +v 1.593737 9.250003 -3.125002 +v 1.593737 12.500003 -2.500002 +v 2.656236 4.916666 -3.125002 +v 2.656237 9.250002 -3.125002 +v 2.656237 12.500002 -2.500002 +v 3.718738 4.916666 -2.500002 +v 3.718737 9.250003 -2.500002 +v 1.593738 4.916666 -2.500002 +v -1.593762 4.916668 -3.125003 +v -1.593763 9.250002 -3.125003 +v -1.593763 12.500003 -2.500003 +v -1.593762 4.916668 -2.500003 +v -2.656264 4.916668 -3.125003 +v -2.656263 9.250002 -3.125003 +v -2.656263 12.500002 -2.500003 +v -2.656262 4.916668 -2.500003 +v -1.062514 0.583332 2.499999 +v 1.062484 0.583332 2.500001 +v -1.062515 0.583332 3.124999 +v 1.062485 0.583332 3.125001 +v -1.062515 8.166668 3.124999 +v 1.062485 8.166666 3.125001 +v -1.062516 12.500001 2.499999 +v 1.062484 12.499999 2.500001 +v 1.593735 4.916666 2.499999 +v 1.593734 4.916666 3.124999 +v 1.593735 8.166668 3.124999 +v 1.593734 12.500001 2.499999 +v 2.656235 0.583334 2.500000 +v 2.656235 0.583334 3.125000 +v 4.249986 0.583332 2.500000 +v 4.249985 0.583332 3.125000 +v 3.187485 4.916666 2.500000 +v 3.187484 4.916666 3.125000 +v 3.187485 8.166668 3.125000 +v 2.124986 12.500000 2.500000 +v 3.187485 8.166668 2.499999 +v -3.187515 4.916666 2.499999 +v -3.187516 4.916666 3.124999 +v -3.187515 8.166667 3.124999 +v -2.125014 12.500002 2.499999 +v -4.250014 0.583332 2.499999 +v -4.250015 0.583332 3.124999 +v -2.656265 0.583330 2.499999 +v -2.656265 0.583330 3.124999 +v -1.593765 4.916666 2.499999 +v -1.593766 4.916666 3.124999 +v -1.593765 8.166667 3.124999 +v -1.593766 12.500001 2.499999 +v -3.187515 8.166667 2.499999 +v -2.125016 1.666668 2.499999 +v 2.124984 1.666664 2.500001 +v -2.125015 1.666668 3.749999 +v 2.124985 1.666664 3.750001 +v -2.125016 2.750002 3.749999 +v 2.124984 2.749998 3.750001 +v -2.125015 2.750002 2.499999 +v 2.124985 2.749998 2.500001 +v -4.250016 1.666668 2.499999 +v -4.250015 2.750002 2.499999 +v 4.249986 1.666664 2.500001 +v 4.249985 2.749998 2.500001 +vt 0.352941 0.571429 +vt 0.235294 0.142857 +vt 0.352941 0.142857 +vt 0.235294 0.571429 +vt 0.000000 0.142857 +vt 0.705882 0.571429 +vt 0.588235 0.142857 +vt 0.705882 0.142857 +vt 0.588235 0.571429 +vt 0.352941 -0.000000 +vt 0.352941 0.714286 +vt 0.588235 0.714286 +vt 0.955882 0.732143 +vt 0.750000 0.803571 +vt 0.750000 0.732143 +vt 0.955882 0.660714 +vt 0.955882 0.803571 +vt 0.750000 0.839286 +vt 0.852941 0.839286 +vt 0.838235 0.875000 +vt 0.838235 0.839286 +vt 0.808824 0.875000 +vt 0.808824 0.839286 +vt 0.794118 0.875000 +vt 0.794118 0.839286 +vt 0.838235 0.892857 +vt 0.808824 0.892857 +vt 0.911765 0.839286 +vt 0.897059 0.875000 +vt 0.897059 0.839286 +vt 0.867647 0.875000 +vt 0.867647 0.839286 +vt 0.852941 0.875000 +vt 0.852941 0.839286 +vt 0.897059 0.892857 +vt 0.867647 0.892857 +vt 0.985294 0.803571 +vt 0.720588 0.803571 +vt 0.764706 0.517857 +vt 0.735294 0.660714 +vt 0.735294 0.517857 +vt 0.823529 0.660714 +vt 0.882353 0.517857 +vt 0.882353 0.660714 +vt 0.897059 0.660714 +vt 0.823529 0.517857 +vt 0.882353 0.410714 +vt 0.764706 0.410714 +vt 0.941176 0.517857 +vt 0.911765 0.660714 +vt 0.911765 0.517857 +vt 0.941176 0.410714 +vt 0.911765 0.410714 +vt 0.970588 0.660714 +vt 0.941176 0.660714 +vt 0.970588 0.517857 +vt 0.897059 0.660714 +vt 0.794118 0.660714 +vt 0.794118 0.517857 +vt 0.794118 0.410714 +vt 0.808824 0.660714 +vt 0.808824 0.410714 +vt 0.808824 0.660714 +vt 0.823529 0.410714 +vt 0.882353 0.392857 +vt 0.882353 0.410714 +vt 0.823529 0.142857 +vt 0.882353 0.142857 +vt 0.823529 0.000000 +vt 0.882353 0.000000 +vt 0.897059 0.392857 +vt 0.808824 0.392857 +vt 0.823529 0.392857 +vt 0.794118 0.142857 +vt 0.808824 0.250000 +vt 0.794118 0.250000 +vt 0.794118 0.392857 +vt 0.764706 0.410714 +vt 0.720588 0.392857 +vt 0.764706 0.392857 +vt 0.705882 0.392857 +vt 0.720588 0.250000 +vt 0.779412 0.000000 +vt 0.794118 0.000000 +vt 0.750000 0.250000 +vt 0.720588 0.142857 +vt 0.705882 0.250000 +vt 0.705882 0.142857 +vt 0.705882 0.000000 +vt 0.985294 0.142857 +vt 1.000000 0.000000 +vt 1.000000 0.142857 +vt 1.000000 0.250000 +vt 0.985294 0.392857 +vt 0.985294 0.250000 +vt 0.985294 0.410714 +vt 0.941176 0.392857 +vt 0.897059 0.392857 +vt 0.911765 0.250000 +vt 0.911765 0.392857 +vt 0.911765 0.142857 +vt 0.926471 0.000000 +vt 0.955882 0.142857 +vt 0.955882 0.250000 +vt 0.897059 0.250000 +vt 0.911765 0.892857 +vt 0.794118 0.928571 +vt 0.794118 0.892857 +vt 0.911765 0.964286 +vt 0.794118 0.964286 +vt 0.794118 1.000000 +vt 0.735294 0.964286 +vt 0.735294 0.928571 +vt 0.735294 0.892857 +vt 0.735294 1.000000 +vt 0.911765 0.928571 +vt 0.970588 0.964286 +vt 0.970588 0.892857 +vt 0.970588 1.000000 +vt 0.911765 1.000000 +vt 0.000000 0.571429 +vt 0.588235 0.000000 +vt 0.750000 0.660714 +vt 0.955882 0.839286 +vt 0.852941 0.875000 +vt 0.911765 0.875000 +vt 0.985294 0.660714 +vt 0.720588 0.660714 +vt 0.764706 0.660714 +vt 0.897059 0.410714 +vt 0.823529 0.410714 +vt 0.897059 0.410714 +vt 0.808824 0.410714 +vt 0.897059 0.000000 +vt 0.808824 0.000000 +vt 0.808824 0.000000 +vt 0.808824 0.392857 +vt 0.720588 0.410714 +vt 0.750000 0.142857 +vt 1.000000 0.392857 +vt 0.941176 0.410714 +vt 0.911765 0.000000 +vt 0.897059 0.000000 +vt 0.970588 0.928571 +vn -1.0000 0.0000 -0.0000 +vn -0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 -1.0000 vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 -0.0000 +vn 0.0000 0.4997 -0.8662 +vn -0.5070 -0.0000 -0.8619 +vn 0.0000 0.1888 -0.9820 +vn -0.5002 0.1635 -0.8503 +vn 0.5070 -0.0000 -0.8619 +vn 0.5002 0.1635 -0.8503 +vn -0.0000 0.1428 0.9898 +vn -0.9712 -0.2381 -0.0000 +vn 0.9712 0.2381 0.0000 +vn -0.9712 0.2381 0.0000 +vn 0.9712 -0.2381 0.0000 +vn -0.5070 0.0000 0.8619 +vn 0.5070 0.0000 0.8619 s off -f 26//19 27//19 25//19 -f 28//20 31//20 27//20 -f 32//21 29//21 31//21 -f 30//22 25//22 29//22 -f 31//23 25//23 27//23 -f 28//24 30//24 32//24 -f 26//19 28//19 27//19 -f 28//20 32//20 31//20 -f 32//21 30//21 29//21 -f 30//22 26//22 25//22 -f 31//23 29//23 25//23 -f 28//24 26//24 30//24 +f 148/237/37 149/238/37 147/239/37 +f 150/240/38 153/241/38 149/238/38 +f 154/242/39 151/243/39 153/244/39 +f 152/245/40 147/239/40 151/243/40 +f 149/246/41 151/243/41 147/239/41 +f 150/247/42 152/245/42 154/248/42 +f 156/249/40 157/250/40 155/251/40 +f 155/251/43 160/252/43 156/249/43 +f 158/253/42 161/254/42 157/250/42 +f 166/255/39 169/256/39 165/257/39 +f 165/257/40 168/258/40 164/259/40 +f 164/259/37 167/260/37 163/261/37 +f 168/258/42 170/262/42 167/263/42 +f 174/264/39 177/265/39 173/266/39 +f 173/266/40 176/267/40 172/268/40 +f 172/268/37 175/269/37 171/270/37 +f 176/267/42 178/271/42 175/272/42 +f 156/249/39 162/273/39 158/253/39 +f 161/274/37 155/251/37 157/250/37 +f 203/275/44 186/276/44 183/277/44 +f 180/278/40 185/279/40 181/280/40 +f 185/279/39 182/281/39 181/280/39 +f 184/282/45 188/283/45 185/279/45 +f 204/284/46 203/275/46 183/277/46 +f 193/285/40 189/286/40 190/287/40 +f 194/288/45 190/287/45 191/289/45 +f 193/285/47 195/290/47 192/291/47 +f 194/288/48 196/292/48 193/285/48 +f 197/293/37 190/287/37 189/286/37 +f 198/294/40 203/275/40 199/295/40 +f 199/295/45 204/284/45 200/296/45 +f 201/297/39 199/295/39 200/298/39 +f 179/299/37 184/282/37 180/278/37 +f 207/300/42 208/301/42 206/302/42 +f 208/301/38 211/303/38 210/304/38 +f 210/304/49 213/305/49 212/306/49 +f 210/304/37 206/307/37 208/301/37 +f 207/308/39 211/303/39 209/309/39 +f 216/310/37 214/311/37 215/312/37 +f 214/311/50 219/313/50 215/312/50 +f 218/314/42 221/315/42 219/316/42 +f 220/317/51 223/318/51 221/315/51 +f 216/310/49 225/319/49 217/320/49 +f 219/316/38 223/321/38 215/312/38 +f 223/321/38 216/310/38 215/312/38 +f 224/322/39 222/323/39 226/324/39 +f 224/322/51 226/324/51 225/325/51 +f 229/326/52 230/327/52 239/328/52 +f 227/329/52 232/330/52 228/331/52 +f 231/332/42 234/333/42 232/330/42 +f 233/334/53 236/335/53 234/336/53 +f 237/337/49 230/338/49 229/339/49 +f 234/333/38 228/340/38 232/330/38 +f 236/335/38 229/339/38 228/340/38 +f 227/329/37 229/326/37 239/328/37 +f 235/341/39 237/337/39 236/335/39 +f 241/342/42 242/343/42 240/344/42 +f 242/343/38 245/345/38 244/346/38 +f 245/345/41 246/347/41 244/346/41 +f 242/343/54 249/348/54 248/349/54 +f 242/343/42 248/350/42 240/344/42 +f 244/346/41 246/347/41 249/351/41 +f 243/352/55 251/353/55 245/345/55 +f 241/342/42 250/354/42 243/352/42 +f 245/345/41 251/355/41 247/356/41 +f 148/237/37 150/240/37 149/238/37 +f 150/240/38 154/357/38 153/241/38 +f 154/242/39 152/245/39 151/243/39 +f 152/245/40 148/237/40 147/239/40 +f 149/246/41 153/358/41 151/243/41 +f 150/247/42 148/237/42 152/245/42 +f 156/249/40 158/253/40 157/250/40 +f 155/251/43 159/359/43 160/252/43 +f 158/253/42 162/360/42 161/254/42 +f 166/255/39 170/361/39 169/256/39 +f 165/257/40 169/256/40 168/258/40 +f 164/259/37 168/258/37 167/260/37 +f 168/258/42 169/256/42 170/262/42 +f 174/264/39 178/362/39 177/265/39 +f 173/266/40 177/265/40 176/267/40 +f 172/268/37 176/267/37 175/269/37 +f 176/267/42 177/265/42 178/271/42 +f 156/249/39 160/363/39 162/273/39 +f 161/274/37 159/364/37 155/251/37 +f 203/275/44 202/365/44 186/276/44 +f 180/278/40 184/282/40 185/279/40 +f 185/279/39 188/366/39 182/281/39 +f 184/282/45 187/367/45 188/283/45 +f 193/285/40 192/291/40 189/286/40 +f 194/288/45 193/285/45 190/287/45 +f 193/285/47 196/292/47 195/290/47 +f 197/293/37 191/368/37 190/287/37 +f 198/294/40 202/365/40 203/275/40 +f 199/295/45 203/275/45 204/284/45 +f 201/297/39 198/294/39 199/295/39 +f 179/299/37 187/369/37 184/282/37 +f 207/300/42 209/309/42 208/301/42 +f 208/301/38 209/309/38 211/303/38 +f 210/304/49 211/303/49 213/305/49 +f 210/304/37 212/370/37 206/307/37 +f 207/308/39 213/371/39 211/303/39 +f 216/310/37 217/372/37 214/311/37 +f 214/311/50 218/373/50 219/313/50 +f 218/314/42 220/374/42 221/315/42 +f 220/317/51 222/323/51 223/318/51 +f 216/310/49 224/375/49 225/319/49 +f 219/316/38 221/315/38 223/321/38 +f 223/321/38 224/375/38 216/310/38 +f 224/322/39 223/318/39 222/323/39 +f 227/329/52 231/376/52 232/330/52 +f 231/332/42 233/377/42 234/333/42 +f 233/334/53 235/341/53 236/335/53 +f 237/337/49 238/378/49 230/338/49 +f 234/333/38 236/335/38 228/340/38 +f 236/335/38 237/337/38 229/339/38 +f 227/329/37 228/331/37 229/326/37 +f 235/341/39 238/379/39 237/337/39 +f 241/342/42 243/352/42 242/343/42 +f 242/343/38 243/352/38 245/345/38 +f 245/345/41 247/356/41 246/347/41 +f 242/343/54 244/346/54 249/348/54 +f 243/352/55 250/380/55 251/353/55 +l 202 205 o RightLeg -v 0.125000 0.000000 0.250000 -v 0.125000 0.750000 0.250000 -v -0.125000 0.000000 0.250000 -v -0.125000 0.750000 0.250000 -v 0.125000 0.000000 -0.000000 -v 0.125000 0.750000 -0.000000 -v -0.125000 0.000000 0.000000 -v -0.125000 0.750000 0.000000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn -0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 0.0000 +v -4.499988 24.500004 -2.500003 +v -4.499999 11.500003 -2.500003 +v -4.499991 24.500004 2.499997 +v -4.500002 11.500003 2.499997 +v 0.500011 24.500000 -2.500000 +v 0.500001 11.500000 -2.500000 +v 0.500008 24.500000 2.500000 +v 0.499998 11.500000 2.500000 +v -3.874988 24.500004 -3.750003 +v -0.124988 24.500000 -3.750000 +v -3.874989 22.333336 -3.750003 +v -0.124989 22.333334 -3.750000 +v -4.499991 21.250004 -2.500003 +v 0.500009 21.250000 -2.500000 +v -3.874993 19.083336 -2.500003 +v -0.124993 19.083332 -2.500000 +v -3.874995 15.833335 -2.500003 +v -0.124995 15.833332 -2.500000 +v -3.249993 16.916670 -3.750002 +v -0.749994 16.916668 -3.750001 +v -3.249993 18.000002 -3.750002 +v -0.749993 18.000000 -3.750001 +v -4.499988 24.500004 -2.500003 +v 0.500012 24.500000 -2.500000 +v -2.624990 22.333336 -2.500002 +v -2.624998 11.500002 -2.500002 +v -2.624990 22.333336 -3.125002 +v -2.624998 11.500002 -3.125002 +v -3.874990 22.333336 -3.125003 +v -3.874998 11.500003 -3.125003 +v -4.499990 22.333336 -2.500003 +v -4.499999 11.500003 -2.500003 +v -1.999990 22.333336 -2.500001 +v -1.999998 11.500001 -2.500001 +v -1.999990 22.333336 -3.125001 +v -1.999998 11.500001 -3.125001 +v -1.374990 22.333336 -3.125001 +v -1.374998 11.500001 -3.125001 +v -1.374990 22.333336 -2.500001 +v -1.374998 11.500001 -2.500001 +v -0.749990 22.333336 -2.500001 +v -0.749998 11.500001 -2.500001 +v -0.749990 22.333336 -3.125001 +v -0.749998 11.500001 -3.125001 +v -0.124990 22.333334 -3.125000 +v -0.124998 11.500000 -3.125000 +v 0.500010 22.333334 -2.500000 +v 0.500001 11.500000 -2.500000 +v 1.125012 24.500000 -2.499999 +v 1.125008 24.500000 3.125001 +v -5.124991 24.500004 3.124997 +v -5.124988 24.500004 -2.500003 +v 1.125010 23.416664 -1.874999 +v 1.125007 23.416664 3.125001 +v -5.124993 23.416670 3.124997 +v -5.124990 23.416670 -1.875003 +v 0.500012 24.500000 -2.500000 +v 0.500010 23.416666 -1.875000 +v -4.499988 24.500004 -2.500003 +v -4.499990 23.416668 -1.875003 +v -4.499992 23.416668 2.499997 +v 0.500007 23.416666 2.500000 +v 0.500008 24.500000 2.500000 +v -4.499991 24.500004 2.499997 +vt 0.500000 0.561404 +vt 0.250000 0.140351 +vt 0.500000 0.140351 +vt 0.250000 0.561404 +vt 0.000000 0.140351 +vt 1.000000 0.561404 +vt 0.750000 0.140351 +vt 1.000000 0.140351 +vt 0.750000 0.561404 +vt 0.750000 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.701754 +vt 0.750000 0.701754 +vt 0.593750 0.842105 +vt 0.375000 0.807018 +vt 0.562500 0.807018 +vt 0.375000 0.736842 +vt 0.562500 0.736842 +vt 0.843750 0.807018 +vt 0.687500 0.771930 +vt 0.812500 0.771930 +vt 0.812500 0.736842 +vt 0.843750 0.701754 +vt 0.687500 0.736842 +vt 0.656250 0.701754 +vt 0.625000 0.736842 +vt 0.875000 0.736842 +vt 0.875000 0.771930 +vt 0.593750 0.701754 +vt 0.312500 0.736842 +vt 0.312500 0.824561 +vt 0.625000 0.736842 +vt 0.625000 0.824561 +vt 0.093750 0.912281 +vt 0.125000 0.561404 +vt 0.125000 0.912281 +vt 0.031250 0.561404 +vt 0.093750 0.561404 +vt -0.000000 0.912281 +vt 0.031250 0.912281 +vt 0.125000 0.561404 +vt 0.156250 0.912281 +vt 0.125000 0.912281 +vt 0.156250 0.561404 +vt 0.187500 0.912281 +vt 0.187500 0.561404 +vt 0.218750 0.912281 +vt 0.218750 0.561404 +vt 0.250000 0.912281 +vt 0.218750 0.912281 +vt 0.250000 0.561404 +vt 0.281250 0.912281 +vt 0.281250 0.561404 +vt 0.312500 0.912281 +vt 0.093750 0.929825 +vt 0.156250 0.929825 +vt 0.250000 0.929825 +vt 0.625000 0.947368 +vt 0.312500 0.982456 +vt 0.312500 0.947368 +vt 0.875000 0.982456 +vt 0.906250 0.947368 +vt 0.062500 0.982456 +vt 0.031250 0.947368 +vt -0.000000 1.000000 +vt -0.000000 0.982456 +vt 0.937500 0.982456 +vt 0.875000 1.000000 +vt 0.281250 1.000000 +vt 0.593750 1.000000 +vt 0.343750 1.000000 +vt 0.656250 1.000000 +vt 0.625000 0.982456 +vt 0.656250 0.929825 +vt 0.281250 0.929825 +vt 0.593750 0.929825 +vt 0.000000 0.561404 +vt 0.343750 0.842105 +vt 0.656250 0.807018 +vt 0.625000 0.771930 +vt 0.343750 0.701754 +vt 0.000000 0.561404 +vt 0.218750 0.561404 +vt 0.312500 0.561404 +vt 0.000000 0.929825 +vt 0.187500 0.929825 +vt 0.312500 0.929825 +vt 0.062500 1.000000 +vt 0.937500 1.000000 +vt 0.906250 0.929825 +vt 0.031250 0.929825 +vt 0.343750 0.929825 +vn -1.0000 0.0000 -0.0000 +vn -0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 -1.0000 vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 -0.0000 +vn -0.0000 -0.7557 -0.6549 +vn 0.0000 0.7557 -0.6549 +vn -0.8944 0.0000 -0.4472 +vn 0.8944 -0.0000 -0.4472 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 -0.0000 -0.7071 +vn 0.0000 -0.4997 -0.8662 s off -f 34//25 35//25 33//25 -f 36//26 39//26 35//26 -f 40//27 37//27 39//27 -f 38//28 33//28 37//28 -f 39//29 33//29 35//29 -f 36//30 38//30 40//30 -f 34//25 36//25 35//25 -f 36//26 40//26 39//26 -f 40//27 38//27 37//27 -f 38//28 34//28 33//28 -f 39//29 37//29 33//29 -f 36//30 34//30 38//30 +f 253/381/56 254/382/56 252/383/56 +f 255/384/57 258/385/57 254/382/57 +f 259/386/58 256/387/58 258/388/58 +f 257/389/59 252/383/59 256/387/59 +f 258/390/60 252/383/60 254/391/60 +f 255/392/61 257/389/61 259/393/61 +f 265/394/62 262/395/62 263/396/62 +f 263/396/59 260/397/59 261/398/59 +f 269/399/62 270/400/62 271/401/62 +f 270/400/59 273/402/59 271/401/59 +f 267/403/63 272/404/63 266/405/63 +f 270/400/64 266/406/64 272/404/64 +f 271/401/65 267/407/65 269/408/65 +f 260/397/60 275/409/60 261/398/60 +f 274/410/64 262/395/64 264/411/64 +f 263/396/65 275/412/65 265/413/65 +f 279/414/58 276/415/58 277/416/58 +f 279/414/59 280/417/59 278/418/59 +f 283/419/66 280/417/66 281/420/66 +f 284/421/56 287/422/56 285/423/56 +f 286/424/59 289/425/59 287/422/59 +f 288/426/58 291/427/58 289/425/58 +f 292/428/56 295/429/56 293/430/56 +f 294/431/59 297/432/59 295/429/59 +f 296/433/67 299/434/67 297/432/67 +f 277/435/61 281/420/61 279/414/61 +f 289/425/61 285/436/61 287/422/61 +f 297/432/61 293/437/61 295/429/61 +f 302/438/57 305/439/57 301/440/57 +f 307/441/56 302/438/56 303/442/56 +f 301/440/58 304/443/58 300/444/58 +f 304/443/68 308/445/68 300/446/68 +f 303/447/68 311/448/68 307/441/68 +f 313/449/61 304/443/61 305/439/61 +f 305/439/61 312/450/61 313/451/61 +f 307/441/61 312/452/61 306/453/61 +f 315/454/60 303/442/60 302/438/60 +f 300/444/60 314/455/60 301/440/60 +f 301/440/60 315/456/60 302/438/60 +f 253/381/56 255/384/56 254/382/56 +f 255/384/57 259/457/57 258/385/57 +f 259/386/58 257/389/58 256/387/58 +f 257/389/59 253/381/59 252/383/59 +f 258/390/60 256/387/60 252/383/60 +f 255/392/61 253/381/61 257/389/61 +f 265/394/62 264/458/62 262/395/62 +f 263/396/59 262/395/59 260/397/59 +f 269/399/62 268/459/62 270/400/62 +f 270/400/59 272/404/59 273/402/59 +f 267/403/63 273/402/63 272/404/63 +f 270/400/64 268/460/64 266/406/64 +f 271/401/65 273/402/65 267/407/65 +f 260/397/60 274/461/60 275/409/60 +f 274/410/64 260/397/64 262/395/64 +f 263/396/65 261/398/65 275/412/65 +f 279/414/58 278/418/58 276/415/58 +f 279/414/59 281/420/59 280/417/59 +f 283/419/66 282/462/66 280/417/66 +f 284/421/56 286/424/56 287/422/56 +f 286/424/59 288/426/59 289/425/59 +f 288/426/58 290/463/58 291/427/58 +f 292/428/56 294/431/56 295/429/56 +f 294/431/59 296/433/59 297/432/59 +f 296/433/67 298/464/67 299/434/67 +f 277/435/61 283/465/61 281/420/61 +f 289/425/61 291/466/61 285/436/61 +f 297/432/61 299/467/61 293/437/61 +f 302/438/57 306/453/57 305/439/57 +f 307/441/56 306/453/56 302/438/56 +f 301/440/58 305/439/58 304/443/58 +f 304/443/68 309/468/68 308/445/68 +f 303/447/68 310/469/68 311/448/68 +f 313/449/61 309/468/61 304/443/61 +f 305/439/61 306/453/61 312/450/61 +f 307/441/61 311/448/61 312/452/61 +f 315/454/60 310/470/60 303/442/60 +f 300/444/60 308/471/60 314/455/60 +f 301/440/60 314/472/60 315/456/60 o LeftLeg -v 0.125000 0.000000 -0.000000 -v 0.125000 0.750000 -0.000000 -v -0.125000 0.000000 0.000000 -v -0.125000 0.750000 0.000000 -v 0.125000 0.000000 -0.250000 -v 0.125000 0.750000 -0.250000 -v -0.125000 0.000000 -0.250000 -v -0.125000 0.750000 -0.250000 -vn 0.0000 0.0000 1.0000 -vn -1.0000 0.0000 0.0000 -vn 0.0000 0.0000 -1.0000 -vn 1.0000 0.0000 -0.0000 -vn 0.0000 -1.0000 0.0000 -vn 0.0000 1.0000 -0.0000 +v -0.499988 24.500000 -2.500000 +v -0.499998 11.499999 -2.500000 +v -0.499991 24.500000 2.500000 +v -0.500001 11.499999 2.500000 +v 4.500012 24.499996 -2.499997 +v 4.500001 11.499997 -2.499997 +v 4.500009 24.499996 2.500003 +v 4.499998 11.499997 2.500003 +v 3.874987 24.500004 -3.750003 +v 0.124988 24.500000 -3.750001 +v 3.874989 22.333336 -3.750003 +v 0.124989 22.333334 -3.750001 +v 4.499991 21.250004 -2.500003 +v -0.500009 21.250000 -2.500000 +v 3.874993 19.083338 -2.500003 +v 0.124993 19.083332 -2.500001 +v 3.874995 15.833334 -2.500003 +v 0.124995 15.833332 -2.500001 +v 3.249993 16.916670 -3.750002 +v 0.749994 16.916670 -3.750001 +v 3.249993 18.000002 -3.750002 +v 0.749993 18.000002 -3.750001 +v 4.499988 24.500004 -2.500003 +v -0.500012 24.500000 -2.500000 +v 2.624990 22.333336 -2.500002 +v 2.624999 11.500002 -2.500002 +v 2.624989 22.333336 -3.125002 +v 2.624998 11.500002 -3.125002 +v 3.874989 22.333336 -3.125003 +v 3.874998 11.500002 -3.125003 +v 4.499990 22.333336 -2.500003 +v 4.499998 11.500003 -2.500003 +v 1.999990 22.333336 -2.500002 +v 1.999999 11.500002 -2.500002 +v 1.999990 22.333336 -3.125002 +v 1.999998 11.500002 -3.125002 +v 1.374990 22.333336 -3.125001 +v 1.374998 11.500001 -3.125001 +v 1.374990 22.333336 -2.500001 +v 1.374998 11.500001 -2.500001 +v 0.749990 22.333336 -2.500001 +v 0.749998 11.500000 -2.500001 +v 0.749990 22.333336 -3.125001 +v 0.749998 11.500000 -3.125001 +v 0.124990 22.333334 -3.125001 +v 0.124998 11.500000 -3.125001 +v -0.500010 22.333334 -2.500000 +v -0.500001 11.499999 -2.500000 +v -1.125012 24.500000 -2.499999 +v -1.125008 24.500000 3.125001 +v 5.124991 24.500004 3.124996 +v 5.124988 24.500004 -2.500004 +v -1.125010 23.416664 -1.874999 +v -1.125007 23.416664 3.125001 +v 5.124993 23.416670 3.124996 +v 5.124989 23.416670 -1.875003 +v -0.500012 24.500000 -2.500000 +v -0.500010 23.416666 -1.875000 +v 4.499988 24.500004 -2.500003 +v 4.499989 23.416668 -1.875003 +v 4.499992 23.416668 2.499997 +v -0.500007 23.416666 2.500000 +v -0.500008 24.500000 2.500000 +v 4.499992 24.500004 2.499997 +vt 0.500000 0.561404 +vt 0.250000 0.140351 +vt 0.500000 0.140351 +vt 0.250000 0.561404 +vt 0.000000 0.140351 +vt 1.000000 0.561404 +vt 0.750000 0.140351 +vt 1.000000 0.140351 +vt 0.750000 0.561404 +vt 0.750000 0.000000 +vt 0.500000 0.000000 +vt 0.750000 0.701754 +vt 0.375000 0.807018 +vt 0.593750 0.842105 +vt 0.562500 0.807018 +vt 0.562500 0.736842 +vt 0.812500 0.771930 +vt 0.656250 0.807018 +vt 0.843750 0.807018 +vt 0.687500 0.736842 +vt 0.687500 0.771930 +vt 0.656250 0.701754 +vt 0.812500 0.736842 +vt 0.843750 0.701754 +vt 0.625000 0.736842 +vt 0.625000 0.771930 +vt 0.875000 0.736842 +vt 0.593750 0.701754 +vt 0.375000 0.736842 +vt 0.312500 0.736842 +vt 0.312500 0.824561 +vt 0.625000 0.736842 +vt 0.625000 0.824561 +vt 0.125000 0.561404 +vt 0.093750 0.912281 +vt 0.125000 0.912281 +vt 0.093750 0.561404 +vt 0.031250 0.912281 +vt 0.000000 0.561404 +vt -0.000000 0.912281 +vt 0.156250 0.912281 +vt 0.125000 0.561404 +vt 0.125000 0.912281 +vt 0.187500 0.912281 +vt 0.156250 0.561404 +vt 0.218750 0.912281 +vt 0.187500 0.561404 +vt 0.250000 0.912281 +vt 0.218750 0.561404 +vt 0.218750 0.912281 +vt 0.281250 0.912281 +vt 0.250000 0.561404 +vt 0.312500 0.912281 +vt 0.281250 0.561404 +vt 0.093750 0.929825 +vt 0.156250 0.929825 +vt 0.250000 0.929825 +vt 0.625000 0.947368 +vt 0.312500 0.982456 +vt 0.625000 0.982456 +vt 0.875000 0.982456 +vt 0.906250 0.947368 +vt 0.312500 0.947368 +vt 0.062500 0.982456 +vt -0.000000 0.982456 +vt 0.062500 1.000000 +vt 0.937500 1.000000 +vt 0.937500 0.982456 +vt 0.281250 1.000000 +vt 0.343750 1.000000 +vt 0.656250 1.000000 +vt 0.656250 0.929825 +vt 0.031250 0.947368 +vt 0.281250 0.929825 +vt 0.031250 0.929825 +vt 0.593750 0.929825 +vt -0.000000 0.561404 +vt 0.500000 0.701754 +vt 0.343750 0.842105 +vt 0.875000 0.771930 +vt 0.343750 0.701754 +vt 0.031250 0.561404 +vt 0.218750 0.561404 +vt 0.312500 0.561404 +vt 0.000000 0.929825 +vt 0.187500 0.929825 +vt 0.312500 0.929825 +vt -0.000000 1.000000 +vt 0.875000 1.000000 +vt 0.593750 1.000000 +vt 0.906250 0.929825 +vt 0.343750 0.929825 +vn -1.0000 0.0000 -0.0000 +vn -0.0000 0.0000 1.0000 +vn 1.0000 -0.0000 0.0000 +vn 0.0000 -0.0000 -1.0000 +vn 0.0000 1.0000 0.0000 +vn -0.0000 -1.0000 0.0000 +vn 0.0000 -0.7557 -0.6549 +vn -0.0000 0.7557 -0.6549 +vn 0.8944 0.0000 -0.4472 +vn -0.8944 -0.0000 -0.4472 +vn 0.7071 0.0000 -0.7071 +vn -0.7071 -0.0000 -0.7071 +vn 0.0000 -0.4997 -0.8662 s off -f 42//31 43//31 41//31 -f 44//32 47//32 43//32 -f 48//33 45//33 47//33 -f 46//34 41//34 45//34 -f 47//35 41//35 43//35 -f 44//36 46//36 48//36 -f 42//31 44//31 43//31 -f 44//32 48//32 47//32 -f 48//33 46//33 45//33 -f 46//34 42//34 41//34 -f 47//35 45//35 41//35 -f 44//36 42//36 46//36 +f 317/473/69 318/474/69 316/475/69 +f 319/476/70 322/477/70 318/474/70 +f 323/478/71 320/479/71 322/480/71 +f 321/481/72 316/475/72 320/479/72 +f 322/482/73 316/475/73 318/483/73 +f 323/484/74 317/473/74 321/481/74 +f 326/485/75 329/486/75 327/487/75 +f 325/488/72 326/485/72 327/487/72 +f 335/489/75 332/490/75 333/491/75 +f 335/489/72 336/492/72 334/493/72 +f 330/494/76 337/495/76 331/496/76 +f 334/493/77 330/497/77 332/498/77 +f 335/489/78 331/499/78 337/495/78 +f 339/500/73 324/501/73 325/488/73 +f 326/485/77 338/502/77 328/503/77 +f 339/504/78 327/487/78 329/505/78 +f 340/506/69 343/507/69 341/508/69 +f 342/509/72 345/510/72 343/507/72 +f 345/510/79 346/511/79 347/512/79 +f 351/513/71 348/514/71 349/515/71 +f 353/516/72 350/517/72 351/513/72 +f 355/518/69 352/519/69 353/516/69 +f 359/520/71 356/521/71 357/522/71 +f 361/523/72 358/524/72 359/520/72 +f 363/525/80 360/526/80 361/523/80 +f 345/510/74 341/527/74 343/507/74 +f 349/528/74 353/516/74 351/513/74 +f 357/529/74 361/523/74 359/520/74 +f 366/530/70 369/531/70 370/532/70 +f 366/530/71 371/533/71 367/534/71 +f 365/535/69 368/536/69 369/531/69 +f 364/537/81 373/538/81 368/536/81 +f 371/533/81 374/539/81 367/540/81 +f 368/536/74 377/541/74 369/531/74 +f 377/542/74 370/532/74 369/531/74 +f 376/543/74 371/533/74 370/532/74 +f 367/534/73 379/544/73 366/530/73 +f 364/545/73 378/546/73 372/547/73 +f 379/548/73 365/535/73 366/530/73 +f 317/473/69 319/476/69 318/474/69 +f 319/476/70 323/549/70 322/477/70 +f 323/478/71 321/481/71 320/479/71 +f 321/481/72 317/473/72 316/475/72 +f 322/482/73 320/479/73 316/475/73 +f 323/484/74 319/550/74 317/473/74 +f 326/485/75 328/551/75 329/486/75 +f 325/488/72 324/501/72 326/485/72 +f 335/489/75 334/493/75 332/490/75 +f 335/489/72 337/495/72 336/492/72 +f 330/494/76 336/492/76 337/495/76 +f 334/493/77 336/492/77 330/497/77 +f 335/489/78 333/552/78 331/499/78 +f 339/500/73 338/553/73 324/501/73 +f 326/485/77 324/501/77 338/502/77 +f 339/504/78 325/488/78 327/487/78 +f 340/506/69 342/509/69 343/507/69 +f 342/509/72 344/554/72 345/510/72 +f 345/510/79 344/554/79 346/511/79 +f 351/513/71 350/517/71 348/514/71 +f 353/516/72 352/519/72 350/517/72 +f 355/518/69 354/555/69 352/519/69 +f 359/520/71 358/524/71 356/521/71 +f 361/523/72 360/526/72 358/524/72 +f 363/525/80 362/556/80 360/526/80 +f 345/510/74 347/557/74 341/527/74 +f 349/528/74 355/558/74 353/516/74 +f 357/529/74 363/559/74 361/523/74 +f 366/530/70 365/535/70 369/531/70 +f 366/530/71 370/532/71 371/533/71 +f 365/535/69 364/545/69 368/536/69 +f 364/537/81 372/560/81 373/538/81 +f 371/533/81 375/561/81 374/539/81 +f 368/536/74 373/538/74 377/541/74 +f 377/542/74 376/562/74 370/532/74 +f 376/543/74 375/561/74 371/533/74 +f 367/534/73 374/563/73 379/544/73 +f 364/545/73 365/535/73 378/546/73 +f 379/548/73 378/564/73 365/535/73 diff --git a/src/main/java/assets/hbm/models/blocks/spikes.obj b/src/main/java/assets/hbm/models/blocks/spikes.obj new file mode 100644 index 000000000..72c7ee5d5 --- /dev/null +++ b/src/main/java/assets/hbm/models/blocks/spikes.obj @@ -0,0 +1,425 @@ +# Blender v2.79 (sub 0) OBJ File: 'spikes.blend' +# www.blender.org +o Cube_Cube.001 +v 0.062500 0.000000 -0.062500 +v 0.062500 0.000000 -0.187500 +v 0.187500 0.000000 -0.062500 +v 0.187500 0.000000 -0.187500 +v 0.125000 1.000000 -0.125000 +v 0.312500 0.000000 -0.062500 +v 0.312500 0.000000 -0.187500 +v 0.437500 0.000000 -0.062500 +v 0.437500 0.000000 -0.187500 +v 0.375000 1.000000 -0.125000 +v 0.062500 0.000000 -0.312500 +v 0.062500 0.000000 -0.437500 +v 0.187500 0.000000 -0.312500 +v 0.187500 0.000000 -0.437500 +v 0.125000 1.000000 -0.375000 +v 0.312500 0.000000 -0.312500 +v 0.312500 0.000000 -0.437500 +v 0.437500 0.000000 -0.312500 +v 0.437500 0.000000 -0.437500 +v 0.375000 1.000000 -0.375000 +v -0.437500 0.000000 -0.062500 +v -0.437500 0.000000 -0.187500 +v -0.312500 0.000000 -0.062500 +v -0.312500 0.000000 -0.187500 +v -0.375000 1.000000 -0.125000 +v -0.187500 0.000000 -0.062500 +v -0.187500 0.000000 -0.187500 +v -0.062500 0.000000 -0.062500 +v -0.062500 0.000000 -0.187500 +v -0.125000 1.000000 -0.125000 +v -0.437500 0.000000 -0.312500 +v -0.437500 0.000000 -0.437500 +v -0.312500 0.000000 -0.312500 +v -0.312500 0.000000 -0.437500 +v -0.375000 1.000000 -0.375000 +v -0.187500 0.000000 -0.312500 +v -0.187500 0.000000 -0.437500 +v -0.062500 0.000000 -0.312500 +v -0.062500 0.000000 -0.437500 +v -0.125000 1.000000 -0.375000 +v 0.062500 0.000000 0.437500 +v 0.062500 0.000000 0.312500 +v 0.187500 0.000000 0.437500 +v 0.187500 0.000000 0.312500 +v 0.125000 1.000000 0.375000 +v 0.312500 0.000000 0.437500 +v 0.312500 0.000000 0.312500 +v 0.437500 0.000000 0.437500 +v 0.437500 0.000000 0.312500 +v 0.375000 1.000000 0.375000 +v 0.062500 0.000000 0.187500 +v 0.062500 0.000000 0.062500 +v 0.187500 0.000000 0.187500 +v 0.187500 0.000000 0.062500 +v 0.125000 1.000000 0.125000 +v 0.312500 0.000000 0.187500 +v 0.312500 0.000000 0.062500 +v 0.437500 0.000000 0.187500 +v 0.437500 0.000000 0.062500 +v 0.375000 1.000000 0.125000 +v -0.437500 0.000000 0.437500 +v -0.437500 0.000000 0.312500 +v -0.312500 0.000000 0.437500 +v -0.312500 0.000000 0.312500 +v -0.375000 1.000000 0.375000 +v -0.187500 0.000000 0.437500 +v -0.187500 0.000000 0.312500 +v -0.062500 0.000000 0.437500 +v -0.062500 0.000000 0.312500 +v -0.125000 1.000000 0.375000 +v -0.437500 0.000000 0.187500 +v -0.437500 0.000000 0.062500 +v -0.312500 0.000000 0.187500 +v -0.312500 0.000000 0.062500 +v -0.375000 1.000000 0.125000 +v -0.187500 0.000000 0.187500 +v -0.187500 0.000000 0.062500 +v -0.062500 0.000000 0.187500 +v -0.062500 0.000000 0.062500 +v -0.125000 1.000000 0.125000 +vt 0.562500 0.687500 +vt 0.687500 0.562500 +vt 0.687500 0.687500 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.562500 0.937500 +vt 0.687500 0.812500 +vt 0.687500 0.937500 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.812500 0.687500 +vt 0.937500 0.562500 +vt 0.937500 0.687500 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.812500 0.937500 +vt 0.937500 0.812500 +vt 0.937500 0.937500 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.562500 0.187500 +vt 0.687500 0.062500 +vt 0.687500 0.187500 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.562500 0.437500 +vt 0.687500 0.312500 +vt 0.687500 0.437500 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.812500 0.187500 +vt 0.937500 0.062500 +vt 0.937500 0.187500 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.812500 0.437500 +vt 0.937500 0.312500 +vt 0.937500 0.437500 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.062500 0.687500 +vt 0.187500 0.562500 +vt 0.187500 0.687500 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.062500 0.937500 +vt 0.187500 0.812500 +vt 0.187500 0.937500 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.312500 0.687500 +vt 0.437500 0.562500 +vt 0.437500 0.687500 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.312500 0.937500 +vt 0.437500 0.812500 +vt 0.437500 0.937500 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.062500 0.187500 +vt 0.187500 0.062500 +vt 0.187500 0.187500 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.062500 0.437500 +vt 0.187500 0.312500 +vt 0.187500 0.437500 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.312500 0.187500 +vt 0.437500 0.062500 +vt 0.437500 0.187500 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.812500 0.000000 +vt 0.937500 0.000000 +vt 0.875000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.062500 -0.000000 +vt 0.187500 -0.000000 +vt 0.125000 1.000000 +vt 0.312500 0.437500 +vt 0.437500 0.312500 +vt 0.437500 0.437500 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.625000 1.000000 +vt 0.562500 0.000000 +vt 0.687500 0.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vt 0.312500 0.000000 +vt 0.437500 0.000000 +vt 0.562500 0.562500 +vt 0.562500 0.812500 +vt 0.812500 0.562500 +vt 0.812500 0.812500 +vt 0.562500 0.062500 +vt 0.562500 0.312500 +vt 0.812500 0.062500 +vt 0.812500 0.312500 +vt 0.062500 0.562500 +vt 0.062500 0.812500 +vt 0.312500 0.562500 +vt 0.312500 0.812500 +vt 0.062500 0.062500 +vt 0.062500 0.312500 +vt 0.312500 0.062500 +vt 0.312500 0.312500 +vn 0.0000 -1.0000 0.0000 +vn -0.9981 0.0624 0.0000 +vn 0.0000 0.0624 -0.9981 +vn 0.9981 0.0624 0.0000 +vn 0.0000 0.0624 0.9981 +s off +f 3/1/1 2/2/1 4/3/1 +f 2/4/2 1/5/2 5/6/2 +f 4/7/3 2/8/3 5/6/3 +f 3/9/4 4/10/4 5/11/4 +f 1/12/5 3/13/5 5/11/5 +f 8/14/1 7/15/1 9/16/1 +f 7/17/2 6/18/2 10/19/2 +f 9/20/3 7/21/3 10/22/3 +f 8/23/4 9/24/4 10/25/4 +f 6/26/5 8/27/5 10/28/5 +f 13/29/1 12/30/1 14/31/1 +f 12/32/2 11/33/2 15/34/2 +f 14/35/3 12/36/3 15/37/3 +f 13/38/4 14/39/4 15/40/4 +f 11/41/5 13/42/5 15/43/5 +f 18/44/1 17/45/1 19/46/1 +f 17/47/2 16/48/2 20/49/2 +f 19/50/3 17/51/3 20/49/3 +f 18/52/4 19/53/4 20/54/4 +f 16/55/5 18/56/5 20/54/5 +f 23/57/1 22/58/1 24/59/1 +f 22/60/2 21/61/2 25/62/2 +f 24/63/3 22/64/3 25/65/3 +f 23/66/4 24/67/4 25/68/4 +f 21/69/5 23/70/5 25/71/5 +f 28/72/1 27/73/1 29/74/1 +f 27/75/2 26/76/2 30/77/2 +f 29/78/3 27/79/3 30/80/3 +f 28/81/4 29/82/4 30/80/4 +f 26/83/5 28/84/5 30/77/5 +f 33/85/1 32/86/1 34/87/1 +f 32/88/2 31/89/2 35/90/2 +f 34/91/3 32/92/3 35/93/3 +f 33/94/4 34/95/4 35/93/4 +f 31/96/5 33/97/5 35/90/5 +f 38/98/1 37/99/1 39/100/1 +f 37/101/2 36/102/2 40/103/2 +f 39/104/3 37/105/3 40/106/3 +f 38/107/4 39/108/4 40/109/4 +f 36/110/5 38/111/5 40/112/5 +f 43/113/1 42/114/1 44/115/1 +f 42/116/2 41/117/2 45/118/2 +f 44/119/3 42/120/3 45/121/3 +f 43/122/4 44/123/4 45/124/4 +f 41/125/5 43/126/5 45/127/5 +f 48/128/1 47/129/1 49/130/1 +f 47/131/2 46/132/2 50/133/2 +f 49/134/3 47/135/3 50/136/3 +f 48/137/4 49/138/4 50/136/4 +f 46/139/5 48/140/5 50/133/5 +f 53/141/1 52/142/1 54/143/1 +f 52/144/2 51/145/2 55/146/2 +f 54/147/3 52/148/3 55/149/3 +f 53/150/4 54/151/4 55/149/4 +f 51/152/5 53/153/5 55/146/5 +f 58/154/1 57/155/1 59/156/1 +f 57/157/2 56/158/2 60/159/2 +f 59/160/3 57/161/3 60/162/3 +f 58/163/4 59/164/4 60/165/4 +f 56/166/5 58/167/5 60/168/5 +f 63/169/1 62/170/1 64/171/1 +f 62/172/2 61/173/2 65/174/2 +f 64/175/3 62/176/3 65/174/3 +f 63/177/4 64/178/4 65/179/4 +f 61/180/5 63/181/5 65/179/5 +f 68/182/1 67/183/1 69/184/1 +f 67/185/2 66/186/2 70/187/2 +f 69/188/3 67/189/3 70/190/3 +f 68/191/4 69/192/4 70/193/4 +f 66/194/5 68/195/5 70/196/5 +f 73/197/1 72/198/1 74/199/1 +f 72/200/2 71/201/2 75/202/2 +f 74/203/3 72/204/3 75/205/3 +f 73/206/4 74/207/4 75/208/4 +f 71/209/5 73/210/5 75/211/5 +f 78/212/1 77/213/1 79/214/1 +f 77/215/2 76/216/2 80/217/2 +f 79/218/3 77/219/3 80/217/3 +f 78/220/4 79/221/4 80/222/4 +f 76/223/5 78/224/5 80/222/5 +f 3/1/1 1/225/1 2/2/1 +f 8/14/1 6/226/1 7/15/1 +f 13/29/1 11/227/1 12/30/1 +f 18/44/1 16/228/1 17/45/1 +f 23/57/1 21/229/1 22/58/1 +f 28/72/1 26/230/1 27/73/1 +f 33/85/1 31/231/1 32/86/1 +f 38/98/1 36/232/1 37/99/1 +f 43/113/1 41/233/1 42/114/1 +f 48/128/1 46/234/1 47/129/1 +f 53/141/1 51/235/1 52/142/1 +f 58/154/1 56/236/1 57/155/1 +f 63/169/1 61/237/1 62/170/1 +f 68/182/1 66/238/1 67/183/1 +f 73/197/1 71/239/1 72/198/1 +f 78/212/1 76/240/1 77/213/1 diff --git a/src/main/java/assets/hbm/sounds.json b/src/main/java/assets/hbm/sounds.json index eb0514a86..f3c4e7390 100644 --- a/src/main/java/assets/hbm/sounds.json +++ b/src/main/java/assets/hbm/sounds.json @@ -158,6 +158,7 @@ "entity.planeShotDown": {"category": "hostile", "sounds": [{"name": "entity/planeShotDown", "stream": false}]}, "entity.cybercrab": {"category": "hostile", "sounds": ["entity/radio_random1", "entity/radio_random2", "entity/radio_random3", "entity/radio_random4", "entity/radio_random5", "entity/radio_random6", "entity/radio_random7", "entity/radio_random8", "entity/radio_random9", "entity/radio_random10", "entity/radio_random11", "entity/radio_random12", "entity/radio_random13", "entity/radio_random14", "entity/radio_random15"]}, "entity.ducc": {"category": "neutral", "sounds": ["entity/ducc1", "entity/ducc2"]}, + "entity.slicer": {"category": "neutral", "sounds": ["entity/slicer1", "entity/slicer2", "entity/slicer3", "entity/slicer4"]}, "potatos.random": {"category": "player", "sounds": ["potatos/randResponse0", "potatos/randResponse1", "potatos/randResponse2", "potatos/randResponse3", "potatos/randResponse4", "potatos/randResponse5", "potatos/randResponse6", "potatos/randResponse7"]}, diff --git a/src/main/java/assets/hbm/sounds/entity/slicer1.ogg b/src/main/java/assets/hbm/sounds/entity/slicer1.ogg new file mode 100644 index 000000000..3d18dd284 Binary files /dev/null and b/src/main/java/assets/hbm/sounds/entity/slicer1.ogg differ diff --git a/src/main/java/assets/hbm/sounds/entity/slicer2.ogg b/src/main/java/assets/hbm/sounds/entity/slicer2.ogg new file mode 100644 index 000000000..6e31daa0a Binary files /dev/null and b/src/main/java/assets/hbm/sounds/entity/slicer2.ogg differ diff --git a/src/main/java/assets/hbm/sounds/entity/slicer3.ogg b/src/main/java/assets/hbm/sounds/entity/slicer3.ogg new file mode 100644 index 000000000..683348816 Binary files /dev/null and b/src/main/java/assets/hbm/sounds/entity/slicer3.ogg differ diff --git a/src/main/java/assets/hbm/sounds/entity/slicer4.ogg b/src/main/java/assets/hbm/sounds/entity/slicer4.ogg new file mode 100644 index 000000000..a788423a7 Binary files /dev/null and b/src/main/java/assets/hbm/sounds/entity/slicer4.ogg differ diff --git a/src/main/java/assets/hbm/textures/armor/bj_arm.png b/src/main/java/assets/hbm/textures/armor/bj_arm.png new file mode 100644 index 000000000..2d16b4658 Binary files /dev/null and b/src/main/java/assets/hbm/textures/armor/bj_arm.png differ diff --git a/src/main/java/assets/hbm/textures/armor/bj_chest.png b/src/main/java/assets/hbm/textures/armor/bj_chest.png new file mode 100644 index 000000000..17ca4d8dc Binary files /dev/null and b/src/main/java/assets/hbm/textures/armor/bj_chest.png differ diff --git a/src/main/java/assets/hbm/textures/armor/bj_eyepatch.png b/src/main/java/assets/hbm/textures/armor/bj_eyepatch.png new file mode 100644 index 000000000..337837465 Binary files /dev/null and b/src/main/java/assets/hbm/textures/armor/bj_eyepatch.png differ diff --git a/src/main/java/assets/hbm/textures/armor/bj_leg.png b/src/main/java/assets/hbm/textures/armor/bj_leg.png new file mode 100644 index 000000000..1b646a968 Binary files /dev/null and b/src/main/java/assets/hbm/textures/armor/bj_leg.png differ diff --git a/src/main/java/assets/hbm/textures/blocks/spikes.png b/src/main/java/assets/hbm/textures/blocks/spikes.png new file mode 100644 index 000000000..b621abced Binary files /dev/null and b/src/main/java/assets/hbm/textures/blocks/spikes.png differ diff --git a/src/main/java/assets/hbm/textures/items/pancake.png b/src/main/java/assets/hbm/textures/items/pancake.png new file mode 100644 index 000000000..3bf1ae09f Binary files /dev/null and b/src/main/java/assets/hbm/textures/items/pancake.png differ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 69e0e5af8..0972eb768 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -215,6 +215,11 @@ public class ModBlocks { public static Block brick_jungle_glyph; public static Block brick_jungle_circle; + public static Block brick_dungeon; + public static Block brick_dungeon_flat; + public static Block brick_dungeon_tile; + public static Block brick_dungeon_circle; + public static Block tape_recorder; public static Block steel_poles; public static Block pole_top; @@ -315,6 +320,7 @@ public class ModBlocks { public static Block barbed_wire_acid; public static Block barbed_wire_wither; public static Block barbed_wire_ultradeath; + public static Block spikes; public static Block tesla; @@ -1002,7 +1008,12 @@ public class ModBlocks { brick_jungle_trap = new TrappedBrick(Material.rock).setBlockName("brick_jungle_trap").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_trap"); brick_jungle_glyph = new BlockGlyph(Material.rock).setBlockName("brick_jungle_glyph").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F); brick_jungle_circle = new BlockGeneric(Material.rock).setBlockName("brick_jungle_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_jungle_circle"); - + + brick_dungeon = new BlockGeneric(Material.rock).setBlockName("brick_dungeon").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon"); + brick_dungeon_flat = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_flat").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_flat"); + brick_dungeon_tile = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_tile").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_tile"); + brick_dungeon_circle = new BlockGeneric(Material.rock).setBlockName("brick_dungeon_circle").setCreativeTab(MainRegistry.blockTab).setHardness(15.0F).setResistance(900.0F).setBlockTextureName(RefStrings.MODID + ":brick_dungeon_circle"); + tape_recorder = new DecoTapeRecorder(Material.rock).setBlockName("tape_recorder").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_tape_recorder"); steel_poles = new DecoSteelPoles(Material.rock).setBlockName("steel_poles").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":steel_beam"); pole_top = new DecoPoleTop(Material.rock).setBlockName("pole_top").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":deco_pole_top"); @@ -1270,6 +1281,7 @@ public class ModBlocks { barbed_wire_acid = new BarbedWire(Material.iron).setBlockName("barbed_wire_acid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_acid_model"); barbed_wire_wither = new BarbedWire(Material.iron).setBlockName("barbed_wire_wither").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_wither_model"); barbed_wire_ultradeath = new BarbedWire(Material.iron).setBlockName("barbed_wire_ultradeath").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":barbed_wire_ultradeath_model"); + spikes = new Spikes(Material.iron).setBlockName("spikes").setHardness(2.5F).setResistance(5.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":spikes"); tesla = new MachineTesla(Material.iron).setBlockName("tesla").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":tesla"); @@ -1645,6 +1657,7 @@ public class ModBlocks { GameRegistry.registerBlock(barbed_wire_acid, barbed_wire_acid.getUnlocalizedName()); GameRegistry.registerBlock(barbed_wire_wither, barbed_wire_wither.getUnlocalizedName()); GameRegistry.registerBlock(barbed_wire_ultradeath, barbed_wire_ultradeath.getUnlocalizedName()); + GameRegistry.registerBlock(spikes, spikes.getUnlocalizedName()); GameRegistry.registerBlock(tesla, tesla.getUnlocalizedName()); //Decoration Blocks @@ -1669,6 +1682,10 @@ public class ModBlocks { GameRegistry.registerBlock(brick_jungle_trap, ItemTrapBlock.class, brick_jungle_trap.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_glyph, ItemGlyphBlock.class, brick_jungle_glyph.getUnlocalizedName()); GameRegistry.registerBlock(brick_jungle_circle, brick_jungle_circle.getUnlocalizedName()); + GameRegistry.registerBlock(brick_dungeon, brick_dungeon.getUnlocalizedName()); + GameRegistry.registerBlock(brick_dungeon_flat, brick_dungeon_flat.getUnlocalizedName()); + GameRegistry.registerBlock(brick_dungeon_tile, brick_dungeon_tile.getUnlocalizedName()); + GameRegistry.registerBlock(brick_dungeon_circle, brick_dungeon_circle.getUnlocalizedName()); GameRegistry.registerBlock(tape_recorder, tape_recorder.getUnlocalizedName()); GameRegistry.registerBlock(steel_poles, steel_poles.getUnlocalizedName()); GameRegistry.registerBlock(pole_top, pole_top.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/Spikes.java b/src/main/java/com/hbm/blocks/generic/Spikes.java new file mode 100644 index 000000000..f65f9da1f --- /dev/null +++ b/src/main/java/com/hbm/blocks/generic/Spikes.java @@ -0,0 +1,46 @@ +package com.hbm.blocks.generic; + +import com.hbm.lib.ModDamageSource; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.world.World; + +public class Spikes extends Block { + + public Spikes(Material mat) { + super(mat); + } + + public boolean isOpaqueCube() + { + return false; + } + + public AxisAlignedBB getCollisionBoundingBoxFromPool(World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_) + { + return null; + } + + public int getRenderType() + { + return 334088; + } + + public boolean renderAsNormalBlock() + { + return false; + } + + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity ent) { + + if(ent instanceof EntityLivingBase && ent.motionY < -0.1) { + if(ent.attackEntityFrom(ModDamageSource.spikes, 100)) + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:entity.slicer", 1.0F, 1.0F); + } + } + +} diff --git a/src/main/java/com/hbm/blocks/generic/TrappedBrick.java b/src/main/java/com/hbm/blocks/generic/TrappedBrick.java index 7587c7dde..2e2d27aa9 100644 --- a/src/main/java/com/hbm/blocks/generic/TrappedBrick.java +++ b/src/main/java/com/hbm/blocks/generic/TrappedBrick.java @@ -3,7 +3,7 @@ package com.hbm.blocks.generic; import java.util.List; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.generic.TrappedBrick.Trap; +import com.hbm.lib.ModDamageSource; import com.hbm.tileentity.deco.TileEntityTrappedBrick; import cpw.mods.fml.relauncher.Side; @@ -20,6 +20,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; public class TrappedBrick extends BlockContainer { @@ -63,7 +64,11 @@ public class TrappedBrick extends BlockContainer { break; case SPIKES: if(world.getBlock(x, y + 1, z).isReplaceable(world, x, y + 1, z)) - world.setBlock(x, y + 1, z, ModBlocks.barbed_wire); + world.setBlock(x, y + 1, z, ModBlocks.spikes); + List targets = world.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(x, y + 1, z, x + 1, y + 2, z + 1)); + for(Entity e : targets) + e.attackEntityFrom(ModDamageSource.spikes, 10); + world.playSoundEffect(x + 0.5, y + 1.5, z + 0.5, "hbm:entity.slicer", 1.0F, 1.0F); break; case MINE: world.createExplosion(null, x + 0.5, y + 1.5, z + 0.5, 1F, false); diff --git a/src/main/java/com/hbm/config/CommonConfig.java b/src/main/java/com/hbm/config/CommonConfig.java index c759e5540..c79bb74d3 100644 --- a/src/main/java/com/hbm/config/CommonConfig.java +++ b/src/main/java/com/hbm/config/CommonConfig.java @@ -7,6 +7,17 @@ import net.minecraftforge.common.config.Property; public class CommonConfig { + public static int setDefZero(int value, int def) { + + if(value < 0) { + MainRegistry.logger.error("Fatal error config: Randomizer value has been below zero, despite bound having to be positive integer!"); + MainRegistry.logger.error(String.format("Errored value will default back to %d, PLEASE REVIEW CONFIGURATION DESCRIPTION BEFORE MEDDLING WITH VALUES!", def)); + return def; + } + + return value; + } + public static int setDef(int value, int def) { if(value <= 0) { diff --git a/src/main/java/com/hbm/config/WorldConfig.java b/src/main/java/com/hbm/config/WorldConfig.java index ee301bd89..2f87259b7 100644 --- a/src/main/java/com/hbm/config/WorldConfig.java +++ b/src/main/java/com/hbm/config/WorldConfig.java @@ -37,6 +37,7 @@ public class WorldConfig { public static int geyserVapor = 500; public static int meteorStructure = 15000; public static int capsuleStructure = 100; + public static int arcticStructure = 500; public static int broadcaster = 5000; public static int minefreq = 64; @@ -87,6 +88,7 @@ public class WorldConfig { geyserVapor = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.19_geyserVaporSpawn", "Spawn vapor geyser on every nTH chunk", 500); meteorStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.20_meteorSpawn", "Spawn meteor dungeon on every nTH chunk", 15000); capsuleStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.21_capsuleSpawn", "Spawn landing capsule on every nTH chunk", 100); + arcticStructure = CommonConfig.createConfigInt(config, CATEGORY_DUNGEON, "4.22_arcticVaultSpawn", "Spawn artic code vault on every nTH chunk", 500); final String CATEGORY_METEOR = "05_meteors"; Property propMeteorStrikeChance = config.get(CATEGORY_METEOR, "5.00_meteorStrikeChance", 20 * 60 * 60 * 5); @@ -99,28 +101,29 @@ public class WorldConfig { propMeteorShowerDuration.comment = "Max duration of meteor shower in ticks"; meteorShowerDuration = propMeteorShowerDuration.getInt(); - radioStructure = CommonConfig.setDef(radioStructure, 1000); - antennaStructure = CommonConfig.setDef(antennaStructure, 1000); - atomStructure = CommonConfig.setDef(atomStructure, 1000); - vertibirdStructure = CommonConfig.setDef(vertibirdStructure, 1000); - dungeonStructure = CommonConfig.setDef(dungeonStructure, 1000); - relayStructure = CommonConfig.setDef(relayStructure, 1000); - satelliteStructure = CommonConfig.setDef(satelliteStructure, 1000); - bunkerStructure = CommonConfig.setDef(bunkerStructure, 1000); - siloStructure = CommonConfig.setDef(siloStructure, 1000); - factoryStructure = CommonConfig.setDef(factoryStructure, 1000); - dudStructure = CommonConfig.setDef(dudStructure, 1000); - spaceshipStructure = CommonConfig.setDef(spaceshipStructure, 1000); - barrelStructure = CommonConfig.setDef(barrelStructure, 1000); - geyserWater = CommonConfig.setDef(geyserWater, 1000); - geyserChlorine = CommonConfig.setDef(geyserChlorine, 1000); - geyserVapor = CommonConfig.setDef(geyserVapor, 1000); - broadcaster = CommonConfig.setDef(broadcaster, 1000); - minefreq = CommonConfig.setDef(minefreq, 1000); - radfreq = CommonConfig.setDef(radfreq, 1000); - vaultfreq = CommonConfig.setDef(vaultfreq, 1000); - meteorStructure = CommonConfig.setDef(meteorStructure, 15000); - capsuleStructure = CommonConfig.setDef(capsuleStructure, 100); + radioStructure = CommonConfig.setDefZero(radioStructure, 1000); + antennaStructure = CommonConfig.setDefZero(antennaStructure, 1000); + atomStructure = CommonConfig.setDefZero(atomStructure, 1000); + vertibirdStructure = CommonConfig.setDefZero(vertibirdStructure, 1000); + dungeonStructure = CommonConfig.setDefZero(dungeonStructure, 1000); + relayStructure = CommonConfig.setDefZero(relayStructure, 1000); + satelliteStructure = CommonConfig.setDefZero(satelliteStructure, 1000); + bunkerStructure = CommonConfig.setDefZero(bunkerStructure, 1000); + siloStructure = CommonConfig.setDefZero(siloStructure, 1000); + factoryStructure = CommonConfig.setDefZero(factoryStructure, 1000); + dudStructure = CommonConfig.setDefZero(dudStructure, 1000); + spaceshipStructure = CommonConfig.setDefZero(spaceshipStructure, 1000); + barrelStructure = CommonConfig.setDefZero(barrelStructure, 1000); + geyserWater = CommonConfig.setDefZero(geyserWater, 1000); + geyserChlorine = CommonConfig.setDefZero(geyserChlorine, 1000); + geyserVapor = CommonConfig.setDefZero(geyserVapor, 1000); + broadcaster = CommonConfig.setDefZero(broadcaster, 1000); + minefreq = CommonConfig.setDefZero(minefreq, 1000); + radfreq = CommonConfig.setDefZero(radfreq, 1000); + vaultfreq = CommonConfig.setDefZero(vaultfreq, 1000); + meteorStructure = CommonConfig.setDefZero(meteorStructure, 15000); + capsuleStructure = CommonConfig.setDefZero(capsuleStructure, 100); + arcticStructure = CommonConfig.setDefZero(arcticStructure, 500); meteorStrikeChance = CommonConfig.setDef(meteorStrikeChance, 1000); meteorShowerChance = CommonConfig.setDef(meteorShowerChance, 1000); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 9a419aea3..1b1720730 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -314,6 +314,7 @@ public class ModItems { public static Item coil_tungsten; public static Item tank_steel; public static Item motor; + public static Item motor_desh; public static Item centrifuge_element; public static Item centrifuge_tower; public static Item reactor_core; @@ -2246,6 +2247,7 @@ public class ModItems { coil_tungsten = new Item().setUnlocalizedName("coil_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_tungsten"); tank_steel = new Item().setUnlocalizedName("tank_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":tank_steel"); motor = new Item().setUnlocalizedName("motor").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor"); + motor_desh = new Item().setUnlocalizedName("motor_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":motor_desh"); centrifuge_element = new Item().setUnlocalizedName("centrifuge_element").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_element"); centrifuge_tower = new Item().setUnlocalizedName("centrifuge_tower").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":centrifuge_tower"); reactor_core = new Item().setUnlocalizedName("reactor_core").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":reactor_core"); @@ -4353,6 +4355,7 @@ public class ModItems { GameRegistry.registerItem(coil_magnetized_tungsten, coil_magnetized_tungsten.getUnlocalizedName()); GameRegistry.registerItem(tank_steel, tank_steel.getUnlocalizedName()); GameRegistry.registerItem(motor, motor.getUnlocalizedName()); + GameRegistry.registerItem(motor_desh, motor_desh.getUnlocalizedName()); GameRegistry.registerItem(centrifuge_element, centrifuge_element.getUnlocalizedName()); GameRegistry.registerItem(centrifuge_tower, centrifuge_tower.getUnlocalizedName()); GameRegistry.registerItem(magnet_dee, magnet_dee.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 9299171b1..8ee22b949 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -7,6 +7,8 @@ import java.util.Map.Entry; import org.lwjgl.opengl.GL11; +import com.hbm.interfaces.Untested; + import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.Minecraft; @@ -15,6 +17,7 @@ import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.resources.I18n; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemArmor; import net.minecraft.item.ItemStack; @@ -22,6 +25,8 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.ResourceLocation; +import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingHurtEvent; //Armor with full set bonus public class ArmorFSB extends ItemArmor { @@ -130,6 +135,85 @@ public class ArmorFSB extends ItemArmor { list.add(" Fireproof"); } } + + public static boolean hasFSBArmor(EntityPlayer player) { + + ItemStack helmet = player.inventory.armorInventory[3]; + ItemStack plate = player.inventory.armorInventory[2]; + ItemStack legs = player.inventory.armorInventory[1]; + ItemStack boots = player.inventory.armorInventory[0]; + + if(plate != null && plate.getItem() instanceof ArmorFSB) { + + ArmorFSB chestplate = (ArmorFSB)plate.getItem(); + + boolean noHelmet = chestplate.noHelmet; + + if((helmet != null || noHelmet) && plate != null && legs != null && boots != null) { + + if((noHelmet || chestplate.getArmorMaterial() == ((ItemArmor)helmet.getItem()).getArmorMaterial()) && + chestplate.getArmorMaterial() == ((ItemArmor)legs.getItem()).getArmorMaterial() && + chestplate.getArmorMaterial() == ((ItemArmor)boots.getItem()).getArmorMaterial()) { + return true; + } + } + } + + return false; + } + + @Untested + public static void handleAttack(LivingAttackEvent event) { + + EntityLivingBase e = event.entityLiving; + + if(e instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)e; + + if(ArmorFSB.hasFSBArmor(player)) { + + ItemStack plate = player.inventory.armorInventory[2]; + + ArmorFSB chestplate = (ArmorFSB)plate.getItem(); + + if(chestplate.fireproof && event.source.isFireDamage()) { + player.extinguish(); + event.setCanceled(true); + } + } + } + } + + @Untested + public static void handleHurt(LivingHurtEvent event) { + + EntityLivingBase e = event.entityLiving; + + if(e instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)e; + + if(ArmorFSB.hasFSBArmor(player)) { + + ArmorFSB chestplate = (ArmorFSB)player.inventory.armorInventory[2].getItem(); + + if(chestplate.damageMod != -1) { + event.ammount *= chestplate.damageMod; + } + + if(chestplate.resistance.get(event.source.getDamageType()) != null) { + event.ammount *= chestplate.resistance.get(event.source); + } + + if(chestplate.blastProtection != -1 && event.source.isExplosion()) { + event.ammount *= chestplate.blastProtection; + } + + if(chestplate.damageCap != -1) { + event.ammount = Math.min(event.ammount, chestplate.damageCap); + } + } + } + } @SideOnly(Side.CLIENT) public void renderHelmetOverlay(ItemStack stack, EntityPlayer player, ScaledResolution resolution, float partialTicks, boolean hasScreen, int mouseX, int mouseY){ diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index c5444665a..e785e82d9 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,7 +2,9 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.blocks.ModBlocks; import com.hbm.lib.Library; +import com.hbm.world.dungeon.ArcticVault; import com.hbm.world.generator.CellularDungeonFactory; import net.minecraft.entity.player.EntityPlayer; @@ -27,11 +29,34 @@ public class ItemWandD extends Item { int z = pos.blockZ; int y = world.getHeightValue(x, z); - //new Ruin001().generate_r0(world, world.rand, x, y - 8, z); + /*//new Ruin001().generate_r0(world, world.rand, x, y - 8, z); CellularDungeonFactory.jungle.generate(world, x, y, z, world.rand); CellularDungeonFactory.jungle.generate(world, x, y + 4, z, world.rand); - CellularDungeonFactory.jungle.generate(world, x, y + 8, z, world.rand); + CellularDungeonFactory.jungle.generate(world, x, y + 8, z, world.rand);*/ + + //new ArcticVault().trySpawn(world, x, y, z); + + for(int ix = x - 10; ix <= x + 10; ix++) { + for(int iz = z - 10; iz <= z + 10; iz++) { + + if(ix % 2 == 0 && iz % 2 == 0) { + for(int iy = y; iy < y + 4; iy++) + world.setBlock(ix, iy, iz, ModBlocks.brick_dungeon_flat); + world.setBlock(ix, y + 4, iz, ModBlocks.brick_dungeon_tile); + } else if(ix % 2 == 1 && iz % 2 == 1) { + world.setBlock(ix, y, iz, ModBlocks.reinforced_stone); + world.setBlock(ix, y + 1, iz, ModBlocks.spikes); + } else if(world.rand.nextInt(3) == 0) { + for(int iy = y; iy < y + 4; iy++) + world.setBlock(ix, iy, iz, ModBlocks.brick_dungeon_flat); + world.setBlock(ix, y + 4, iz, ModBlocks.brick_dungeon_tile); + } else { + world.setBlock(ix, y, iz, ModBlocks.reinforced_stone); + world.setBlock(ix, y + 1, iz, ModBlocks.spikes); + } + } + } } return stack; diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 8a3ae1077..898b245c0 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -10,6 +10,7 @@ import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntitySafe; import com.hbm.tileentity.machine.TileEntitySoyuzCapsule; import com.hbm.world.dungeon.Antenna; +import com.hbm.world.dungeon.ArcticVault; import com.hbm.world.dungeon.Barrel; import com.hbm.world.dungeon.Bunker; import com.hbm.world.dungeon.CrashedVertibird; @@ -565,6 +566,13 @@ public class HbmWorldGen implements IWorldGenerator { } } } + + if (WorldConfig.arcticStructure > 0 && rand.nextInt(WorldConfig.arcticStructure) == 0) { + int x = i + rand.nextInt(16); + int z = j + rand.nextInt(16); + int y = 16 + rand.nextInt(32); + new ArcticVault().trySpawn(world, x, y, z); + } } if (rand.nextInt(25) == 0) { diff --git a/src/main/java/com/hbm/lib/ModDamageSource.java b/src/main/java/com/hbm/lib/ModDamageSource.java index 76321f2f7..76d8048a2 100644 --- a/src/main/java/com/hbm/lib/ModDamageSource.java +++ b/src/main/java/com/hbm/lib/ModDamageSource.java @@ -46,6 +46,7 @@ public class ModDamageSource extends DamageSource { public static DamageSource enervation = (new DamageSource("enervation")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource electricity = (new DamageSource("electricity")).setDamageIsAbsolute().setDamageBypassesArmor(); public static DamageSource exhaust = (new DamageSource("exhaust")).setDamageIsAbsolute().setDamageBypassesArmor(); + public static DamageSource spikes = (new DamageSource("spikes")).setDamageBypassesArmor(); public ModDamageSource(String p_i1566_1_) { super(p_i1566_1_); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index c9df62caa..74d5979b5 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -485,6 +485,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerBlockHandler(new RenderConserve()); RenderingRegistry.registerBlockHandler(new RenderConveyor()); RenderingRegistry.registerBlockHandler(new RenderRTGBlock()); + RenderingRegistry.registerBlockHandler(new RenderSpikeBlock()); } @Override diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 3b0ad7a9d..4e3bfadf9 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -393,80 +393,13 @@ public class ModEventHandler event.setCanceled(true); } - if(e instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer)e; - - ItemStack helmet = player.inventory.armorInventory[3]; - ItemStack plate = player.inventory.armorInventory[2]; - ItemStack legs = player.inventory.armorInventory[1]; - ItemStack boots = player.inventory.armorInventory[0]; - - if(plate != null && plate.getItem() instanceof ArmorFSB) { - - ArmorFSB chestplate = (ArmorFSB)plate.getItem(); - - boolean noHelmet = chestplate.noHelmet; - - if((helmet != null || noHelmet) && plate != null && legs != null && boots != null) { - - if((noHelmet || chestplate.getArmorMaterial() == ((ItemArmor)helmet.getItem()).getArmorMaterial()) && - chestplate.getArmorMaterial() == ((ItemArmor)legs.getItem()).getArmorMaterial() && - chestplate.getArmorMaterial() == ((ItemArmor)boots.getItem()).getArmorMaterial()) { - - if(chestplate.fireproof && event.source.isFireDamage()) { - player.extinguish(); - event.setCanceled(true); - } - } - } - } - } + ArmorFSB.handleAttack(event); } @SubscribeEvent public void onEntityDamaged(LivingHurtEvent event) { - EntityLivingBase e = event.entityLiving; - - if(e instanceof EntityPlayer) { - EntityPlayer player = (EntityPlayer)e; - - ItemStack helmet = player.inventory.armorInventory[3]; - ItemStack plate = player.inventory.armorInventory[2]; - ItemStack legs = player.inventory.armorInventory[1]; - ItemStack boots = player.inventory.armorInventory[0]; - - if(plate != null && plate.getItem() instanceof ArmorFSB) { - - ArmorFSB chestplate = (ArmorFSB)plate.getItem(); - - boolean noHelmet = chestplate.noHelmet; - - if((helmet != null || noHelmet) && plate != null && legs != null && boots != null) { - - if((noHelmet || chestplate.getArmorMaterial() == ((ItemArmor)helmet.getItem()).getArmorMaterial()) && - chestplate.getArmorMaterial() == ((ItemArmor)legs.getItem()).getArmorMaterial() && - chestplate.getArmorMaterial() == ((ItemArmor)boots.getItem()).getArmorMaterial()) { - - if(chestplate.damageMod != -1) { - event.ammount *= chestplate.damageMod; - } - - if(chestplate.resistance.get(event.source.getDamageType()) != null) { - event.ammount *= chestplate.resistance.get(event.source); - } - - if(chestplate.blastProtection != -1 && event.source.isExplosion()) { - event.ammount *= chestplate.blastProtection; - } - - if(chestplate.damageCap != -1) { - event.ammount = Math.min(event.ammount, chestplate.damageCap); - } - } - } - } - } + ArmorFSB.handleHurt(event); } @SubscribeEvent diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index e487febca..0360bc521 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -46,10 +46,18 @@ import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.entity.RenderPlayer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.boss.IBossDisplayData; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; @@ -165,16 +173,6 @@ public class ModEventHandlerClient { renderer.modelArmorChestplate.aimedBow = true; } } - - /*@SubscribeEvent - public void renderThermalSight(RenderLivingEvent.Pre event) { - - AxisAlignedBB aabb = event.entity.boundingBox; - - GL11.glPushMatrix(); - Render.renderAABB(aabb); - GL11.glPopMatrix(); - }*/ @SubscribeEvent public void clickHandler(MouseEvent event) { @@ -310,10 +308,6 @@ public class ModEventHandlerClient { @SubscribeEvent public void onRenderWorldLastEvent(RenderWorldLastEvent event) { - /* - * my ass is heavy - */ - GL11.glPushMatrix(); EntityPlayer player = Minecraft.getMinecraft().thePlayer; @@ -385,5 +379,93 @@ public class ModEventHandlerClient { } GL11.glPopMatrix(); + + renderThermalSight(event.partialTicks); + } + + public void renderThermalSight(float partialTicks) { + + EntityPlayer player = Minecraft.getMinecraft().thePlayer; + double x = player.prevPosX + (player.posX - player.prevPosX) * partialTicks; + double y = player.prevPosY + (player.posY - player.prevPosY) * partialTicks; + double z = player.prevPosZ + (player.posZ - player.prevPosZ) * partialTicks; + + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_COLOR_MATERIAL); + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_POINT_SMOOTH); + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_DEPTH_TEST); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA,GL11.GL_ONE_MINUS_SRC_ALPHA); + + Tessellator tess = Tessellator.instance; + tess.startDrawing(GL11.GL_LINES); + + for(Object o : player.worldObj.loadedEntityList) { + + Entity ent = (Entity) o; + + if(ent == player) + continue; + + if(ent.getDistanceSqToEntity(player) > 4096) + continue; + + if(ent instanceof IBossDisplayData) + tess.setColorOpaque_F(1F, 0.5F, 0F); + else if(ent instanceof EntityMob) + tess.setColorOpaque_F(1F, 0F, 0F); + else if(ent instanceof EntityPlayer) + tess.setColorOpaque_F(1F, 0F, 1F); + else if(ent instanceof EntityLiving) + tess.setColorOpaque_F(0F, 1F, 0F); + else if(ent instanceof EntityItem) + tess.setColorOpaque_F(1F, 1F, 0.5F); + else if(ent instanceof EntityXPOrb) { + if(player.ticksExisted % 10 < 5) + tess.setColorOpaque_F(1F, 1F, 0.5F); + else + tess.setColorOpaque_F(0.5F, 1F, 0.5F); + } else + continue; + + AxisAlignedBB bb = ent.boundingBox; + tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z); + tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z); + tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z); + tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z); + tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z); + tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z); + tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z); + tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z); + tess.addVertex(bb.maxX - x, bb.minY - y, bb.minZ - z); + tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z); + tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z); + tess.addVertex(bb.maxX - x, bb.maxY - y, bb.minZ - z); + tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z); + tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z); + tess.addVertex(bb.minX - x, bb.maxY - y, bb.minZ - z); + tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z); + tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z); + tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z); + tess.addVertex(bb.minX - x, bb.maxY - y, bb.maxZ - z); + tess.addVertex(bb.maxX - x, bb.maxY - y, bb.maxZ - z); + tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z); + tess.addVertex(bb.maxX - x, bb.minY - y, bb.maxZ - z); + tess.addVertex(bb.minX - x, bb.minY - y, bb.minZ - z); + tess.addVertex(bb.minX - x, bb.minY - y, bb.maxZ - z); + } + + tess.draw(); + + tess.setColorOpaque_F(1F, 1F, 1F); + + GL11.glEnable(GL11.GL_COLOR_MATERIAL); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_POINT_SMOOTH); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_DEPTH_TEST); + GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index cfc53fba7..030f7e1fc 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -526,6 +526,11 @@ public class ResourceManager { public static final ResourceLocation thompson_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/thompson.png"); public static final ResourceLocation grenade_mk2 = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_mk2.png"); + + public static final ResourceLocation bj_eyepatch = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_eyepatch.png"); + public static final ResourceLocation bj_leg = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_leg.png"); + public static final ResourceLocation bj_chest = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_chest.png"); + public static final ResourceLocation bj_arm = new ResourceLocation(RefStrings.MODID, "textures/armor/bj_arm.png"); @@ -883,6 +888,7 @@ public class ResourceManager { public static final IModelCustom barrel = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/barrel.obj")); public static final IModelCustom pole = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/pole.obj")); public static final IModelCustom barbed_wire = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/barbed_wire.obj")); + public static final IModelCustom spikes = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/spikes.obj")); public static final IModelCustom antenna_top = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/antenna_top.obj")); public static final IModelCustom conservecrate = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/conservecrate.obj")); diff --git a/src/main/java/com/hbm/render/block/RenderSpikeBlock.java b/src/main/java/com/hbm/render/block/RenderSpikeBlock.java new file mode 100644 index 000000000..f93efc6a1 --- /dev/null +++ b/src/main/java/com/hbm/render/block/RenderSpikeBlock.java @@ -0,0 +1,69 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; +import com.hbm.render.util.ObjUtil; + +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +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.minecraftforge.client.model.obj.WavefrontObject; + +public class RenderSpikeBlock implements ISimpleBlockRenderingHandler { + + @Override + public void renderInventoryBlock(Block block, int metadata, int modelId, RenderBlocks renderer) { + + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + IIcon iicon = block.getIcon(0, 0); + tessellator.setColorOpaque_F(1, 1, 1); + + if (renderer.hasOverrideBlockTexture()) + { + iicon = renderer.overrideBlockTexture; + } + + GL11.glTranslated(0, -0.5, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.spikes, iicon, tessellator, 0, false); + tessellator.draw(); + + GL11.glPopMatrix(); + } + + @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)); + + tessellator.setBrightness(block.getMixedBrightnessForBlock(world, x, y, z)); + tessellator.setColorOpaque_F(1, 1, 1); + + if (renderer.hasOverrideBlockTexture()) + { + iicon = renderer.overrideBlockTexture; + } + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.spikes, iicon, tessellator, 0, true); + tessellator.addTranslation(-x - 0.5F, -y, -z - 0.5F); + + return true; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return 334088; + } +} diff --git a/src/main/java/com/hbm/render/loader/ModelRendererObj.java b/src/main/java/com/hbm/render/loader/ModelRendererObj.java index 303f3b23f..b13fa566a 100644 --- a/src/main/java/com/hbm/render/loader/ModelRendererObj.java +++ b/src/main/java/com/hbm/render/loader/ModelRendererObj.java @@ -25,12 +25,53 @@ public class ModelRendererObj { this.model = model; this.parts = parts; } + + public ModelRendererObj setPosition(float x, float y, float z) { + this.offsetX = x; + this.offsetY = y; + this.offsetZ = z; + return this; + } + + public ModelRendererObj setRotationPoint(float x, float y, float z) { + this.rotationPointX = x; + this.rotationPointY = y; + this.rotationPointZ = z; + return this; + } @SideOnly(Side.CLIENT) - public void render(float p_78785_1_) { - - GL11.glTranslatef(this.offsetX, this.offsetY, this.offsetZ); + public void render(float scale) { + GL11.glPushMatrix(); + + GL11.glTranslatef(this.offsetX * scale, this.offsetY * scale, this.offsetZ * scale); + + GL11.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale); + + if (this.rotateAngleZ != 0.0F) + { + GL11.glRotatef(this.rotateAngleZ * (180F / (float)Math.PI), 0.0F, 0.0F, 1.0F); + } + + if (this.rotateAngleY != 0.0F) + { + GL11.glRotatef(this.rotateAngleY * (180F / (float)Math.PI), 0.0F, 1.0F, 0.0F); + } + + if (this.rotateAngleX != 0.0F) + { + GL11.glRotatef(this.rotateAngleX * (180F / (float)Math.PI), 1.0F, 0.0F, 0.0F); + } + + GL11.glTranslatef(-this.rotationPointX * scale, -this.rotationPointY * scale, -this.rotationPointZ * scale); + + GL11.glScalef(scale, scale, scale); + + for(String part : parts) + model.renderPart(part); + + GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/render/model/ModelArmorBJ.java b/src/main/java/com/hbm/render/model/ModelArmorBJ.java index de4400951..dcf00a2de 100644 --- a/src/main/java/com/hbm/render/model/ModelArmorBJ.java +++ b/src/main/java/com/hbm/render/model/ModelArmorBJ.java @@ -2,15 +2,27 @@ package com.hbm.render.model; import org.lwjgl.opengl.GL11; +import com.hbm.interfaces.IHoldableWeapon; import com.hbm.main.ResourceManager; +import com.hbm.render.loader.ModelRendererObj; import net.minecraft.client.Minecraft; import net.minecraft.client.model.ModelBiped; import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.EnumAction; +import net.minecraft.util.MathHelper; public class ModelArmorBJ extends ModelBiped { int type; + + ModelRendererObj head; + ModelRendererObj body; + ModelRendererObj leftArm; + ModelRendererObj rightArm; + ModelRendererObj leftLeg; + ModelRendererObj rightLeg; public ModelArmorBJ(int type) { this.type = type; @@ -19,74 +31,169 @@ public class ModelArmorBJ extends ModelBiped { @Override public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + head = new ModelRendererObj(ResourceManager.armor_bj, "Head"); + body = new ModelRendererObj(ResourceManager.armor_bj, "Body"); + leftArm = new ModelRendererObj(ResourceManager.armor_bj, "LeftArm").setRotationPoint(-5.0F, 2.0F, 0.0F); + rightArm = new ModelRendererObj(ResourceManager.armor_bj, "RightArm").setRotationPoint(5.0F, 2.0F, 0.0F); + leftLeg = new ModelRendererObj(ResourceManager.armor_bj, "LeftLeg").setRotationPoint(1.9F, 12.0F, 0.0F); + rightLeg = new ModelRendererObj(ResourceManager.armor_bj, "RightLeg").setRotationPoint(-1.9F, 12.0F, 0.0F); + setRotationAngles(par2, par3, par4, par5, par6, par7, par1Entity); GL11.glPushMatrix(); - Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.launch_table_base_tex); - GL11.glRotated(180, 0, 0, 1); - GL11.glRotated(90, 0, 1, 0); - GL11.glTranslated(0, -1.5, 0); - if(type == 0) { - GL11.glPushMatrix(); - GL11.glTranslated(0, 1.5, 0); - GL11.glRotated(-Math.toDegrees(this.bipedHead.rotateAngleY), 0, 1, 0); - GL11.glRotated(-Math.toDegrees(this.bipedHead.rotateAngleX), 0, 0, 1); - GL11.glTranslated(0, -1.5, 0); - ResourceManager.armor_bj.renderPart("Head"); - GL11.glPopMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bj_eyepatch); + head.render(par7); } - if(type == 1) { - GL11.glPushMatrix(); - GL11.glTranslated(0, 1.5, 0); - GL11.glRotated(-Math.toDegrees(this.bipedBody.rotateAngleY), 0, 1, 0); - GL11.glRotated(-Math.toDegrees(this.bipedBody.rotateAngleX), 0, 0, 1); - GL11.glTranslated(0, -1.5, 0); - ResourceManager.armor_bj.renderPart("Body"); - GL11.glPopMatrix(); - - double height = 22; - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.0625 * height, -0.25); - GL11.glRotated(-Math.toDegrees(this.bipedLeftArm.rotateAngleZ), 1, 0, 0); - GL11.glRotated(-Math.toDegrees(this.bipedLeftArm.rotateAngleY), 0, 1, 0); - GL11.glRotated(-Math.toDegrees(this.bipedLeftArm.rotateAngleX), 0, 0, 1); - GL11.glTranslated(0, -0.0625 * height, 0.25); - ResourceManager.armor_bj.renderPart("LeftArm"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.0625 * height, 0.25); - GL11.glRotated(-Math.toDegrees(this.bipedRightArm.rotateAngleZ), 1, 0, 0); - GL11.glRotated(-Math.toDegrees(this.bipedRightArm.rotateAngleY), 0, 1, 0); - GL11.glRotated(-Math.toDegrees(this.bipedRightArm.rotateAngleX), 0, 0, 1); - GL11.glTranslated(0, -0.0625 * height, -0.25); - ResourceManager.armor_bj.renderPart("RightArm"); - GL11.glPopMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bj_chest); + body.render(par7); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bj_arm); + leftArm.render(par7); + rightArm.render(par7); } - if(type == 2) { - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.75, 0); - GL11.glRotated(-Math.toDegrees(this.bipedLeftLeg.rotateAngleX), 0, 0, 1); - GL11.glTranslated(0, -0.75, 0); - ResourceManager.armor_bj.renderPart("LeftLeg"); - GL11.glPopMatrix(); - - GL11.glPushMatrix(); - GL11.glTranslated(0, 0.75, 0); - GL11.glRotated(-Math.toDegrees(this.bipedRightLeg.rotateAngleX), 0, 0, 1); - GL11.glTranslated(0, -0.75, 0); - ResourceManager.armor_bj.renderPart("RightLeg"); - GL11.glPopMatrix(); - } - - if(type == 3) { + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.bj_leg); + leftLeg.render(par7); + rightLeg.render(par7); } GL11.glPopMatrix(); } + + public void setRotationAngles(float p_78087_1_, float p_78087_2_, float p_78087_3_, float p_78087_4_, float p_78087_5_, float p_78087_6_, Entity entity) { + + head.rotateAngleY = p_78087_4_ / (180F / (float)Math.PI); + head.rotateAngleX = p_78087_5_ / (180F / (float)Math.PI); + rightArm.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 2.0F * p_78087_2_ * 0.5F; + leftArm.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 2.0F * p_78087_2_ * 0.5F; + rightArm.rotateAngleZ = 0.0F; + leftArm.rotateAngleZ = 0.0F; + rightLeg.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F) * 1.4F * p_78087_2_; + leftLeg.rotateAngleX = MathHelper.cos(p_78087_1_ * 0.6662F + (float)Math.PI) * 1.4F * p_78087_2_; + rightLeg.rotateAngleY = 0.0F; + leftLeg.rotateAngleY = 0.0F; + + if(entity instanceof EntityPlayer) { + EntityPlayer player = (EntityPlayer)entity; + + this.aimedBow = false; + + if(player.getHeldItem() != null) { + + int hold = 1; + + if(player.getItemInUseCount() > 0) { + + EnumAction action = player.getHeldItem().getItemUseAction(); + + if(action == EnumAction.block) + hold = 3; + + if(action == EnumAction.bow) + this.aimedBow = true; + } + + if(player.getHeldItem().getItem() instanceof IHoldableWeapon) + this.aimedBow = true; + + rightArm.rotateAngleX = rightArm.rotateAngleX * 0.5F - ((float)Math.PI / 10F) * hold; + } + + this.isSneak = player.isSneaking(); + this.isRiding = player.isRiding(); + } + + if (this.isRiding) + { + rightArm.rotateAngleX += -((float)Math.PI / 5F); + leftArm.rotateAngleX += -((float)Math.PI / 5F); + rightLeg.rotateAngleX = -((float)Math.PI * 2F / 5F); + leftLeg.rotateAngleX = -((float)Math.PI * 2F / 5F); + rightLeg.rotateAngleY = ((float)Math.PI / 10F); + leftLeg.rotateAngleY = -((float)Math.PI / 10F); + } + + if (this.heldItemLeft != 0) + { + leftArm.rotateAngleX = leftArm.rotateAngleX * 0.5F - ((float)Math.PI / 10F) * (float)this.heldItemLeft; + } + + if (this.heldItemRight != 0) + { + rightArm.rotateAngleX = rightArm.rotateAngleX * 0.5F - ((float)Math.PI / 10F) * (float)this.heldItemRight; + } + + rightArm.rotateAngleY = 0.0F; + leftArm.rotateAngleY = 0.0F; + float f6; + float f7; + + if (this.onGround > -9990.0F) + { + f6 = this.onGround; + body.rotateAngleY = MathHelper.sin(MathHelper.sqrt_float(f6) * (float)Math.PI * 2.0F) * 0.2F; + rightArm.rotationPointZ = MathHelper.sin(body.rotateAngleY) * 5.0F; + rightArm.rotationPointX = -MathHelper.cos(body.rotateAngleY) * 5.0F; + leftArm.rotationPointZ = -MathHelper.sin(body.rotateAngleY) * 5.0F; + leftArm.rotationPointX = MathHelper.cos(body.rotateAngleY) * 5.0F; + rightArm.rotateAngleY += body.rotateAngleY; + leftArm.rotateAngleY += body.rotateAngleY; + leftArm.rotateAngleX += body.rotateAngleY; + f6 = 1.0F - this.onGround; + f6 *= f6; + f6 *= f6; + f6 = 1.0F - f6; + f7 = MathHelper.sin(f6 * (float)Math.PI); + float f8 = MathHelper.sin(this.onGround * (float)Math.PI) * -(head.rotateAngleX - 0.7F) * 0.75F; + rightArm.rotateAngleX = (float)((double)rightArm.rotateAngleX - ((double)f7 * 1.2D + (double)f8)); + rightArm.rotateAngleY += body.rotateAngleY * 2.0F; + rightArm.rotateAngleZ = MathHelper.sin(this.onGround * (float)Math.PI) * -0.4F; + } + + if (this.isSneak) + { + body.rotateAngleX = 0.5F; + rightArm.rotateAngleX += 0.4F; + leftArm.rotateAngleX += 0.4F; + rightLeg.offsetZ = 4.0F; + leftLeg.offsetZ = 4.0F; + rightLeg.offsetY = -3.0F; + leftLeg.offsetY = -3.0F; + head.offsetY = 1.0F; + } + else + { + body.rotateAngleX = 0.0F; + rightLeg.rotationPointZ = 0.1F; + leftLeg.rotationPointZ = 0.1F; + rightLeg.rotationPointY = 12.0F; + leftLeg.rotationPointY = 12.0F; + head.rotationPointY = 0.0F; + } + + rightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; + leftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; + rightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; + leftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; + + if (this.aimedBow) + { + f6 = 0.0F; + f7 = 0.0F; + rightArm.rotateAngleZ = 0.0F; + leftArm.rotateAngleZ = 0.0F; + rightArm.rotateAngleY = -(0.1F - f6 * 0.6F) + head.rotateAngleY; + leftArm.rotateAngleY = 0.1F - f6 * 0.6F + head.rotateAngleY + 0.4F; + rightArm.rotateAngleX = -((float)Math.PI / 2F) + head.rotateAngleX; + leftArm.rotateAngleX = -((float)Math.PI / 2F) + head.rotateAngleX; + rightArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; + leftArm.rotateAngleX -= f6 * 1.2F - f7 * 0.4F; + rightArm.rotateAngleZ += MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; + leftArm.rotateAngleZ -= MathHelper.cos(p_78087_3_ * 0.09F) * 0.05F + 0.05F; + rightArm.rotateAngleX += MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; + leftArm.rotateAngleX -= MathHelper.sin(p_78087_3_ * 0.067F) * 0.05F; + } + } } diff --git a/src/main/java/com/hbm/render/model/ModelCloak.java b/src/main/java/com/hbm/render/model/ModelCloak.java index 849688e2f..2a86abbc4 100644 --- a/src/main/java/com/hbm/render/model/ModelCloak.java +++ b/src/main/java/com/hbm/render/model/ModelCloak.java @@ -4,87 +4,70 @@ import org.lwjgl.opengl.GL11; import net.minecraft.client.entity.AbstractClientPlayer; import net.minecraft.client.model.ModelBiped; -import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.MathHelper; -public class ModelCloak extends ModelBiped -{ - public ModelCloak() - { - textureWidth = 64; - textureHeight = 32; - } - - private void setRotation(ModelRenderer model, float x, float y, float z) - { - model.rotateAngleX = x; - model.rotateAngleY = y; - model.rotateAngleZ = z; - } - - @Override - public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) - { - EntityPlayer player = (EntityPlayer)entity; - if(player.isSneaking()) - { - this.isSneak = true; - } else { - this.isSneak = false; - } - super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); - } - @Override - public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) - { - if(par1Entity instanceof AbstractClientPlayer) - { - AbstractClientPlayer player = (AbstractClientPlayer) par1Entity; +public class ModelCloak extends ModelBiped { + public ModelCloak() { + textureWidth = 64; + textureHeight = 32; + } - GL11.glPushMatrix(); - GL11.glTranslatef(0.0F, 0.0F, 0.125F); - double d3 = player.field_71091_bM + (player.field_71094_bP - player.field_71091_bM) * par7 - (player.prevPosX + (player.posX - player.prevPosX) * par7); - double d4 = player.field_71096_bN + (player.field_71095_bQ - player.field_71096_bN) * par7 - (player.prevPosY + (player.posY - player.prevPosY) * par7); - double d0 = player.field_71097_bO + (player.field_71085_bR - player.field_71097_bO) * par7 - (player.prevPosZ + (player.posZ - player.prevPosZ) * par7); - float f4 = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * par7; - double d1 = MathHelper.sin(f4 * (float)Math.PI / 180.0F); - double d2 = (-MathHelper.cos(f4 * (float)Math.PI / 180.0F)); - float f5 = (float)d4 * 10.0F; + @Override + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5, Entity entity) { + EntityPlayer player = (EntityPlayer) entity; + if(player.isSneaking()) { + this.isSneak = true; + } else { + this.isSneak = false; + } + super.setRotationAngles(f, f1, f2, f3, f4, f5, entity); + } - if (f5 < -6.0F) - { - f5 = -6.0F; - } + @Override + public void render(Entity par1Entity, float par2, float par3, float par4, float par5, float par6, float par7) { + if(par1Entity instanceof AbstractClientPlayer) { + AbstractClientPlayer player = (AbstractClientPlayer) par1Entity; - if (f5 > 32.0F) - { - f5 = 32.0F; - } + GL11.glPushMatrix(); + GL11.glTranslatef(0.0F, 0.0F, 0.125F); + double d3 = player.field_71091_bM + (player.field_71094_bP - player.field_71091_bM) * par7 - (player.prevPosX + (player.posX - player.prevPosX) * par7); + double d4 = player.field_71096_bN + (player.field_71095_bQ - player.field_71096_bN) * par7 - (player.prevPosY + (player.posY - player.prevPosY) * par7); + double d0 = player.field_71097_bO + (player.field_71085_bR - player.field_71097_bO) * par7 - (player.prevPosZ + (player.posZ - player.prevPosZ) * par7); + float f4 = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * par7; + double d1 = MathHelper.sin(f4 * (float) Math.PI / 180.0F); + double d2 = (-MathHelper.cos(f4 * (float) Math.PI / 180.0F)); + float f5 = (float) d4 * 10.0F; - float f6 = (float)(d3 * d1 + d0 * d2) * 100.0F; - float f7 = (float)(d3 * d2 - d0 * d1) * 100.0F; + if(f5 < -6.0F) { + f5 = -6.0F; + } - if (f6 < 0.0F) - { - f6 = 0.0F; - } + if(f5 > 32.0F) { + f5 = 32.0F; + } - float f8 = player.prevCameraYaw + (player.cameraYaw - player.prevCameraYaw) * par7; - f5 += MathHelper.sin((player.prevDistanceWalkedModified + (player.distanceWalkedModified - player.prevDistanceWalkedModified) * par7) * 6.0F) * 32.0F * f8; + float f6 = (float) (d3 * d1 + d0 * d2) * 100.0F; + float f7 = (float) (d3 * d2 - d0 * d1) * 100.0F; - if (player.isSneaking()) - { - f5 += 25.0F; - } + if(f6 < 0.0F) { + f6 = 0.0F; + } - GL11.glRotatef(6.0F + f6 / 2.0F + f5, 1.0F, 0.0F, 0.0F); - GL11.glRotatef(f7 / 2.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(-f7 / 2.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); - this.bipedCloak.render(par7); - GL11.glPopMatrix(); - } - } + float f8 = player.prevCameraYaw + (player.cameraYaw - player.prevCameraYaw) * par7; + f5 += MathHelper.sin((player.prevDistanceWalkedModified + (player.distanceWalkedModified - player.prevDistanceWalkedModified) * par7) * 6.0F) * 32.0F * f8; + + if(player.isSneaking()) { + f5 += 25.0F; + } + + GL11.glRotatef(6.0F + f6 / 2.0F + f5, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(f7 / 2.0F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(-f7 / 2.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); + this.bipedCloak.render(par7); + GL11.glPopMatrix(); + } + } } diff --git a/src/main/java/com/hbm/world/dungeon/ArcticVault.java b/src/main/java/com/hbm/world/dungeon/ArcticVault.java new file mode 100644 index 000000000..14a0b9f25 --- /dev/null +++ b/src/main/java/com/hbm/world/dungeon/ArcticVault.java @@ -0,0 +1,71 @@ +package com.hbm.world.dungeon; + +import java.util.Arrays; +import java.util.List; + +import com.hbm.blocks.ModBlocks; +import com.hbm.config.GeneralConfig; +import com.hbm.inventory.RecipesCommon.MetaBlock; +import com.hbm.main.MainRegistry; +import com.hbm.world.generator.DungeonToolbox; + +import net.minecraft.block.material.Material; +import net.minecraft.init.Blocks; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; + +public class ArcticVault { + + public void trySpawn(World world, int x, int y, int z) { + + y--; + + BiomeGenBase biome = world.getWorldChunkManager().getBiomeGenAt(x, z); + + if(biome.getFloatTemperature(x, y, z) < 0.2 && world.getBlock(x, y, z).getMaterial() == Material.rock) { + build(world, x, y, z); + } + + } + + private void build(World world, int x, int y, int z) { + + List brick = Arrays.asList(new MetaBlock[] {new MetaBlock(Blocks.stonebrick), new MetaBlock(Blocks.stonebrick, 2)}); + List web = Arrays.asList(new MetaBlock[] {new MetaBlock(Blocks.air), new MetaBlock(Blocks.air), new MetaBlock(Blocks.web)}); + List crates = Arrays.asList(new MetaBlock[] {new MetaBlock(ModBlocks.crate), new MetaBlock(ModBlocks.crate_metal), new MetaBlock(ModBlocks.crate_ammo), new MetaBlock(ModBlocks.crate_can), new MetaBlock(ModBlocks.crate_jungle)}); + + DungeonToolbox.generateBox(world, x - 5, y, z - 5, 11, 1, 11, brick); + DungeonToolbox.generateBox(world, x - 5, y + 6, z - 5, 11, 1, 11, brick); + DungeonToolbox.generateBox(world, x - 5, y + 1, z - 5, 11, 5, 1, brick); + DungeonToolbox.generateBox(world, x - 5, y + 1, z + 5, 11, 5, 1, brick); + DungeonToolbox.generateBox(world, x - 5, y + 1, z - 5, 1, 5, 11, brick); + DungeonToolbox.generateBox(world, x + 5, y + 1, z - 5, 1, 5, 11, brick); + DungeonToolbox.generateBox(world, x - 4, y + 1, z - 4, 9, 3, 9, Blocks.air); + DungeonToolbox.generateBox(world, x - 4, y + 1, z - 4, 9, 1, 9, new MetaBlock(Blocks.snow_layer)); + DungeonToolbox.generateBox(world, x - 2, y + 1, z - 2, 5, 2, 1, new MetaBlock(ModBlocks.tape_recorder, 3)); + DungeonToolbox.generateBox(world, x - 2, y + 3, z - 2, 5, 1, 1, new MetaBlock(Blocks.snow_layer)); + DungeonToolbox.generateBox(world, x - 2, y + 1, z + 2, 5, 2, 1, new MetaBlock(ModBlocks.tape_recorder, 2)); + DungeonToolbox.generateBox(world, x - 2, y + 3, z + 2, 5, 1, 1, new MetaBlock(Blocks.snow_layer)); + DungeonToolbox.generateBox(world, x - 4, y + 4, z - 4, 9, 2, 9, web); + + for(int i = 0; i < 15; i++) { + int ix = x - 4 + world.rand.nextInt(10); + int iz = z - 4 + world.rand.nextInt(10); + + if(world.getBlock(ix, y + 1, iz) == Blocks.snow_layer) { + MetaBlock b = DungeonToolbox.getRandom(crates, world.rand); + world.setBlock(ix, y + 1, iz, b.block, b.meta, 2); + world.setBlock(ix, y + 2, iz, Blocks.snow_layer); + } + } + + int iy = world.getHeightValue(x, z); + + if(world.getBlock(x, iy - 1, z).canPlaceTorchOnTop(world, x, iy - 1, z)) { + world.setBlock(x, iy, z, ModBlocks.tape_recorder); + } + + if(GeneralConfig.enableDebugMode) + MainRegistry.logger.info("[Debug] Successfully spawned arctic code vault at " + x + " " + y + " " + z); + } +} diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship.java b/src/main/java/com/hbm/world/dungeon/Spaceship.java index 97472aa0f..03f1b8e2e 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship.java @@ -18,12 +18,12 @@ import net.minecraft.world.gen.feature.WorldGenerator; public class Spaceship extends WorldGenerator { Block Block1 = ModBlocks.deco_tungsten; - Block Block2 = ModBlocks.fusion_conductor; + Block Block2 = ModBlocks.deco_red_copper; Block Block3 = ModBlocks.deco_steel; Block Block4 = ModBlocks.fusion_heater; Block Block5 = ModBlocks.block_meteor; Block Block6 = ModBlocks.reactor_element; - Block Block7 = ModBlocks.fusion_core; + Block Block7 = ModBlocks.cable_switch; Block Block8 = ModBlocks.fusion_hatch; Block Block9 = ModBlocks.reinforced_light; Block Block10 = ModBlocks.reinforced_glass;