mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
pointy lads and powered combat armor
This commit is contained in:
parent
d54e882ae5
commit
b8f28ae413
@ -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
|
||||
|
||||
@ -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
425
src/main/java/assets/hbm/models/blocks/spikes.obj
Normal file
425
src/main/java/assets/hbm/models/blocks/spikes.obj
Normal 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
|
||||
@ -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"]},
|
||||
|
||||
|
||||
BIN
src/main/java/assets/hbm/sounds/entity/slicer1.ogg
Normal file
BIN
src/main/java/assets/hbm/sounds/entity/slicer1.ogg
Normal file
Binary file not shown.
BIN
src/main/java/assets/hbm/sounds/entity/slicer2.ogg
Normal file
BIN
src/main/java/assets/hbm/sounds/entity/slicer2.ogg
Normal file
Binary file not shown.
BIN
src/main/java/assets/hbm/sounds/entity/slicer3.ogg
Normal file
BIN
src/main/java/assets/hbm/sounds/entity/slicer3.ogg
Normal file
Binary file not shown.
BIN
src/main/java/assets/hbm/sounds/entity/slicer4.ogg
Normal file
BIN
src/main/java/assets/hbm/sounds/entity/slicer4.ogg
Normal file
Binary file not shown.
BIN
src/main/java/assets/hbm/textures/armor/bj_arm.png
Normal file
BIN
src/main/java/assets/hbm/textures/armor/bj_arm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/main/java/assets/hbm/textures/armor/bj_chest.png
Normal file
BIN
src/main/java/assets/hbm/textures/armor/bj_chest.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/main/java/assets/hbm/textures/armor/bj_eyepatch.png
Normal file
BIN
src/main/java/assets/hbm/textures/armor/bj_eyepatch.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 149 B |
BIN
src/main/java/assets/hbm/textures/armor/bj_leg.png
Normal file
BIN
src/main/java/assets/hbm/textures/armor/bj_leg.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 790 B |
BIN
src/main/java/assets/hbm/textures/blocks/spikes.png
Normal file
BIN
src/main/java/assets/hbm/textures/blocks/spikes.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 540 B |
BIN
src/main/java/assets/hbm/textures/items/pancake.png
Normal file
BIN
src/main/java/assets/hbm/textures/items/pancake.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 453 B |
@ -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());
|
||||
|
||||
46
src/main/java/com/hbm/blocks/generic/Spikes.java
Normal file
46
src/main/java/com/hbm/blocks/generic/Spikes.java
Normal 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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -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);
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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());
|
||||
|
||||
@ -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){
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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_);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@ -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"));
|
||||
|
||||
|
||||
69
src/main/java/com/hbm/render/block/RenderSpikeBlock.java
Normal file
69
src/main/java/com/hbm/render/block/RenderSpikeBlock.java
Normal 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;
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
71
src/main/java/com/hbm/world/dungeon/ArcticVault.java
Normal file
71
src/main/java/com/hbm/world/dungeon/ArcticVault.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user