pointy lads and powered combat armor

This commit is contained in:
Bob 2020-10-19 00:06:09 +02:00
parent d54e882ae5
commit b8f28ae413
35 changed files with 2682 additions and 395 deletions

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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"]},

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

View File

@ -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());

View File

@ -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);
}
}
}

View File

@ -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<Entity> 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);

View File

@ -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) {

View File

@ -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);

View File

@ -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());

View File

@ -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){

View File

@ -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;

View File

@ -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) {

View File

@ -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_);

View File

@ -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

View File

@ -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

View File

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

View File

@ -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"));

View File

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

View File

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

View File

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

View File

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

View File

@ -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<MetaBlock> brick = Arrays.asList(new MetaBlock[] {new MetaBlock(Blocks.stonebrick), new MetaBlock(Blocks.stonebrick, 2)});
List<MetaBlock> web = Arrays.asList(new MetaBlock[] {new MetaBlock(Blocks.air), new MetaBlock(Blocks.air), new MetaBlock(Blocks.web)});
List<MetaBlock> 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);
}
}

View File

@ -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;