diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index 5f8dfbcf41..d8d5ed1a73 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -763,16 +763,16 @@ item.mechanism_launcher_1.name=Werfermechanismus item.mechanism_launcher_2.name=Fortgeschrittener Werfermechanismus item.mechanism_special.name=High-Tech Waffenmechanismus -item.primer_357.name=.357 Magnum-Zündhütchen (x16) -item.primer_44.name=.44 Magnum-Zündhütchen (x16) -item.primer_9.name=Kleinkaliber-Zündhütchen (x24) -item.primer_50.name=Großkaliber-Zündhütchen (x8) -item.primer_buckshot.name=Schrot-Zündhütchen (x8) -item.casing_357.name=.357 Magnum-Hülse (x16) -item.casing_44.name=.44 Magnum-Hülse (x16) -item.casing_9.name=Kleinkaliberhülse (x24) -item.casing_50.name=Großkaliberhülse (x8) -item.casing_buckshot.name=Schrothülse (x8) +item.primer_357.name=.357 Magnum-Zündhütchen (x24) +item.primer_44.name=.44 Magnum-Zündhütchen (x24) +item.primer_9.name=Kleinkaliber-Zündhütchen (x32) +item.primer_50.name=Großkaliber-Zündhütchen (x12) +item.primer_buckshot.name=Schrot-Zündhütchen (x12) +item.casing_357.name=.357 Magnum-Hülse (x24) +item.casing_44.name=.44 Magnum-Hülse (x24) +item.casing_9.name=Kleinkaliberhülse (x32) +item.casing_50.name=Großkaliberhülse (x12) +item.casing_buckshot.name=Schrothülse (x12) item.assembly_iron.name=Eisenpatronensatz item.assembly_steel.name=Bleipatronensatz item.assembly_lead.name=Glaspatronensatz @@ -783,6 +783,7 @@ item.assembly_desh.name=Desh-Patronensatz item.assembly_pip.name=Verdorbener .44er Patronensatz item.assembly_nopip.name=.44er Patronensatz item.assembly_smg.name=9mm Patronensatz +item.assembly_556.name=5.56mm Patronensatz item.assembly_uzi.name=.22 LR Patronensatz item.assembly_actionexpress.name=.50 AE Patronensatz item.assembly_calamity.name=.50 BMG Patronensatz @@ -1466,6 +1467,7 @@ item.gun_proto.name=M42 Nukleares Katapult "Proto MIRV" item.gun_mirv.name=M42 Nukleares Katapult "Experimentelles MIRV" item.gun_bf.name=BEL item.gun_mp40.name=Maschinenpistole +item.gun_flechette.name=Flechet-Gewehr item.gun_uzi.name=IMI Uzi item.gun_uzi_silencer.name=IMI Uzi mit Schalldämpfer item.gun_uzi_saturnite.name=Saturnit-Uzi @@ -1563,15 +1565,27 @@ item.ammo_50bmg.name=.50 BMG Patrone item.ammo_50bmg_incendiary.name=.50 BMG Patrone (Brand) item.ammo_50bmg_phosphorus.name=.50 BMG Patrone (WP) item.ammo_50bmg_explosive.name=.50 BMG Patrone (Explosiv) +item.ammo_50bmg_ap.name=.50 BMG Patrone (AP) item.ammo_50bmg_du.name=.50 BMG Patrone (DU) item.ammo_50bmg_star.name=.50 BMG Patrone (Sternenmetall) item.ammo_9mm.name=9mm Patrone item.ammo_9mm_ap.name=9mm Patrone (Panzerbrechend) item.ammo_9mm_du.name=9mm Patrone (DU) item.ammo_9mm_rocket.name=9mm Rakete +item.ammo_556.name=5.56mm Patrone +item.ammo_556_phosphorus.name=5.56mm Patrone (WP) +item.ammo_556_ap.name=5.56mm Patrone (AP) +item.ammo_556_du.name=5.56mm Patrone (DU) +item.ammo_556_star.name=5.56mm Patrone (Sternenmetall) +item.ammo_556_flechette.name=5.56mm Patrone (Flechet) +item.ammo_556_flechette_incendiary.name=5.56mm Flechetpatrone (Brand) +item.ammo_556_flechette_phosphorus.name=5.56mm Flechetpatrone (Phosphorspitze) +item.ammo_556_flechette_du.name=5.56mm Flechetpatrone (Uran-Penetrator) +item.ammo_556_tracer.name=5.56mm Patrone (Leuchtspur) +item.ammo_556_k.name=5.56mm K-Patrone item.ammo_22lr.name=.22 lfB Patrone item.ammo_22lr_ap.name=.22 lfB Patrone (Panzerbrechend) -item.ammo_folly_taint.name=Silbernes Geschoss (Original) +item.ammo_folly.name=Silbernes Geschoss (Original) item.ammo_folly_nuclear.name=Silbernes Geschoss (Atomar) item.ammo_folly_du.name=Silbernes Geschoss (DU, Nicht-Explosiv) item.ammo_357_desh.name=.357 Magnum Deshkugel @@ -1604,6 +1618,8 @@ item.ammo_grenade_concussion.name=40mm Granate (Erschütterung) item.ammo_grenade_finned.name=40mm Granate (Geflügelt) item.ammo_grenade_nuclear.name=40mm Granate (Привет) item.ammo_grenade_sleek.name=40mm Granate (IF-F&E) +item.ammo_grenade_tracer.name=40mm Übungsgranate +item.ammo_grenade_kampf.name=40mm Rakete item.ammo_fuel.name=Dieselkatusche item.ammo_fuel_napalm.name=Napalmkatusche item.ammo_fuel_phosphorus.name=WP-Katusche diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index dbf9efe298..2046499f5a 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -763,16 +763,16 @@ item.mechanism_launcher_1.name=Launcher Mechanism item.mechanism_launcher_2.name=Advanced Launcher Mechanism item.mechanism_special.name=High-Tech Weapon Mechanism -item.primer_357.name=.357 Magnum Primer (x16) -item.primer_44.name=.44 Magnum Primer (x16) -item.primer_9.name=Small Caliber Primer (x24) -item.primer_50.name=Large Caliber Primer (x8) -item.primer_buckshot.name=Buckshot Primer (x8) -item.casing_357.name=.357 Magnum Casing (x16) -item.casing_44.name=.44 Magnum Casing (x16) -item.casing_9.name=Small Caliber Casing (x24) -item.casing_50.name=Large Caliber Casing (x8) -item.casing_buckshot.name=Buckshot Casing (x8) +item.primer_357.name=.357 Magnum Primer (x24) +item.primer_44.name=.44 Magnum Primer (x24) +item.primer_9.name=Small Caliber Primer (x32) +item.primer_50.name=Large Caliber Primer (x12) +item.primer_buckshot.name=Buckshot Primer (x12) +item.casing_357.name=.357 Magnum Casing (x24) +item.casing_44.name=.44 Magnum Casing (x24) +item.casing_9.name=Small Caliber Casing (x32) +item.casing_50.name=Large Caliber Casing (x12) +item.casing_buckshot.name=Buckshot Casing (x12) item.assembly_iron.name=Iron Bullet Assembly item.assembly_steel.name=Lead Bullet Assembly item.assembly_lead.name=Glass Bullet Assembly @@ -783,6 +783,7 @@ item.assembly_desh.name=Desh Bullet Assembly item.assembly_pip.name=Tainted Bullet Assembly item.assembly_nopip.name=.44 Magnum Assembly item.assembly_smg.name=9mm Assembly +item.assembly_556.name=5.56mm Assembly item.assembly_uzi.name=.22 LR Assembly item.assembly_actionexpress.name=.50 AE Assembly item.assembly_calamity.name=.50 BMG Assembly @@ -1466,6 +1467,7 @@ item.gun_proto.name=M42 Nuclear Catapult "Proto MIRV" item.gun_mirv.name=M42 Nuclear Catapult "Experimental MIRV" item.gun_bf.name=BEL item.gun_mp40.name=Submachine Gun +item.gun_flechette.name=Flechette Rifle item.gun_uzi.name=IMI Uzi item.gun_uzi_silencer.name=IMI Uzi with Silencer item.gun_uzi_saturnite.name=Saturnite Uzi @@ -1563,12 +1565,24 @@ item.ammo_50bmg.name=.50 BMG Round item.ammo_50bmg_incendiary.name=.50 BMG Round (Incendiary) item.ammo_50bmg_phosphorus.name=.50 BMG Round (WP) item.ammo_50bmg_explosive.name=.50 BMG Round (Explosive) +item.ammo_50bmg_ap.name=.50 BMG Round (AP) item.ammo_50bmg_du.name=.50 BMG Round (DU) item.ammo_50bmg_star.name=.50 BMG Round (Starmetal) item.ammo_9mm.name=9mm Round item.ammo_9mm_ap.name=9mm Round (Armor Piercing) item.ammo_9mm_du.name=9mm Round (DU) item.ammo_9mm_rocket.name=9mm Rocket +item.ammo_556.name=5.56mm Round +item.ammo_556_phosphorus.name=5.56mm Round (WP) +item.ammo_556_ap.name=5.56mm Round (AP) +item.ammo_556_du.name=5.56mm Round (DU) +item.ammo_556_star.name=5.56mm Round (Starmetal) +item.ammo_556_flechette.name=5.56mm Flechette Round +item.ammo_556_flechette_incendiary.name=5.56mm Flechette Round (Incendiary) +item.ammo_556_flechette_phosphorus.name=5.56mm Flechette Round (Phosphorus-Tipped) +item.ammo_556_flechette_du.name=5.56mm Flechette Round (Uranium Penetrator) +item.ammo_556_tracer.name=5.56mm Round (Tracer) +item.ammo_556_k.name=5.56mm K-Round item.ammo_22lr.name=.22 LR Round item.ammo_22lr_ap.name=.22 LR Round (Armor Piercing) item.ammo_folly.name=Silver Bullet (Original) @@ -1604,6 +1618,8 @@ item.ammo_grenade_concussion.name=40mm Grenade (Concussion) item.ammo_grenade_finned.name=40mm Grenade (Finned) item.ammo_grenade_nuclear.name=40mm Grenade (Привет) item.ammo_grenade_sleek.name=40mm Grenade (IF-R&D) +item.ammo_grenade_tracer.name=40mm Training Grenade +item.ammo_grenade_kampf.name=40mm Rocket item.ammo_fuel.name=Diesel Tank item.ammo_fuel_napalm.name=Napalm Tank item.ammo_fuel_phosphorus.name=WP Tank diff --git a/assets/hbm/models/blocks/arrow.obj b/assets/hbm/models/blocks/arrow.obj new file mode 100644 index 0000000000..52e9add4a7 --- /dev/null +++ b/assets/hbm/models/blocks/arrow.obj @@ -0,0 +1,80 @@ +# Blender v2.76 (sub 0) OBJ File: '' +# www.blender.org +o Plane +v -0.250000 0.125000 -0.500000 +v 0.250000 0.125000 -0.500000 +v 0.500000 0.125000 0.000000 +v 0.000000 0.125000 0.500000 +v 0.000000 0.000000 0.500000 +v -0.500000 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v 0.250000 0.000000 -0.500000 +v -0.500000 0.125000 0.000000 +v -0.250000 0.000000 -0.500000 +v 0.250000 0.000000 0.000000 +v -0.250000 0.125000 0.000000 +v -0.250000 0.000000 0.000000 +v 0.250000 0.125000 0.000000 +vt 0.494975 0.819349 +vt 0.424264 0.819349 +vt 0.424264 0.638698 +vt 0.141422 1.000000 +vt 0.070711 1.000000 +vt 0.070711 0.638698 +vt 0.700000 0.510958 +vt 0.900000 0.255479 +vt 1.000000 0.638698 +vt 0.353554 1.000000 +vt 0.282843 1.000000 +vt 0.282843 0.638698 +vt 0.000000 1.000000 +vt 0.000000 0.638698 +vt 0.353554 0.819349 +vt 0.353554 0.638698 +vt 0.400000 0.255479 +vt 0.500000 0.638698 +vt 0.200000 0.510958 +vt 0.212132 1.000000 +vt 0.141422 0.638698 +vt 0.212132 0.638698 +vt 0.494975 0.638698 +vt 0.500000 0.255479 +vt 0.700000 0.000000 +vt 0.600000 0.638698 +vt 1.000000 0.127740 +vt 0.500000 0.127740 +vt 0.000000 0.255479 +vt 0.200000 0.000000 +vt 0.100000 0.638698 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.707100 0.000000 0.707100 +vn 0.707100 0.000000 0.707100 +vn 0.000000 -1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +s off +f 6/1/1 9/2/1 12/3/1 +f 8/4/2 2/5/2 14/6/2 +f 14/7/3 12/8/3 4/9/3 +f 5/10/4 4/11/4 9/12/4 +f 7/5/5 3/13/5 4/14/5 +f 11/2/1 14/15/1 3/16/1 +f 11/17/6 5/18/6 13/19/6 +f 13/20/7 12/4/7 1/21/7 +f 10/22/1 1/12/1 2/11/1 +f 13/23/1 6/1/1 12/3/1 +f 11/21/2 8/4/2 14/6/2 +f 14/7/3 2/24/3 1/25/3 +f 4/9/3 3/26/3 14/7/3 +f 12/8/3 9/27/3 4/9/3 +f 14/7/3 1/25/3 12/8/3 +f 6/16/4 5/10/4 9/12/4 +f 5/6/5 7/5/5 4/14/5 +f 7/3/1 11/2/1 3/16/1 +f 11/17/6 7/28/6 5/18/6 +f 10/29/6 8/30/6 11/17/6 +f 5/18/6 6/31/6 13/19/6 +f 13/19/6 10/29/6 11/17/6 +f 10/22/7 13/20/7 1/21/7 +f 8/20/1 10/22/1 2/11/1 diff --git a/assets/hbm/models/weapons/flechette.obj b/assets/hbm/models/weapons/flechette.obj new file mode 100644 index 0000000000..3418c10464 --- /dev/null +++ b/assets/hbm/models/weapons/flechette.obj @@ -0,0 +1,2200 @@ +# Blender v2.76 (sub 0) OBJ File: 'flechette.blend' +# www.blender.org +o gren_tube +v -5.868640 3.866710 0.390760 +v -5.868640 4.145857 -0.003321 +v -5.868640 4.068658 -0.001782 +v -5.868640 3.842549 0.317423 +v -2.773548 4.145857 -0.003322 +v -2.773548 3.863501 -0.386212 +v -5.868640 3.863501 -0.386211 +v -2.773548 3.866710 0.390759 +v -2.795583 3.884170 0.432546 +v -2.345142 3.884170 0.432546 +v -2.339203 4.201795 -0.004436 +v -2.801521 4.201795 -0.004436 +v -2.345142 3.880613 -0.428688 +v -2.795583 3.880613 -0.428688 +v -2.339203 3.364457 -0.260925 +v -2.801521 3.364457 -0.260925 +v -2.339203 3.366714 0.285381 +v -2.801521 3.366714 0.285382 +v -2.773548 3.409849 -0.228771 +v -2.773548 3.411832 0.251424 +v -5.868640 3.474099 0.204562 +v -5.868640 3.409849 -0.228770 +v -5.868640 3.411832 0.251425 +v -5.868640 3.472492 -0.184396 +v -5.868640 3.839950 -0.311924 +v -5.895552 3.852386 -0.310705 +v -5.895552 3.458083 -0.196155 +v -5.895552 3.499174 -0.166825 +v -5.895552 3.836442 -0.264805 +v -5.716124 3.852386 -0.310705 +v -5.895552 4.094360 0.013274 +v -5.716124 4.094360 0.013274 +v -5.895552 3.849605 0.328054 +v -5.716124 3.849605 0.328054 +v -5.895552 3.456364 0.198619 +v -5.716124 3.456364 0.198619 +v -5.716124 3.458083 -0.196155 +v -5.895552 3.497704 0.170847 +v -5.595632 3.497704 0.170847 +v -5.595632 3.499174 -0.166825 +v -5.895552 3.834063 0.281559 +v -5.895552 4.043415 0.012311 +v -5.595632 3.836442 -0.264805 +v -5.595632 3.834063 0.281559 +v -5.595632 4.043415 0.012311 +vt 0.809782 0.796148 +vt 0.849006 0.914880 +vt 0.830011 0.908645 +vt 0.228888 0.909270 +vt 0.186002 0.775437 +vt 0.005890 0.909271 +vt 0.649694 0.914880 +vt 0.698462 0.812472 +vt 0.668568 0.908645 +vt 0.389821 0.836340 +vt 0.346177 0.970909 +vt 0.298132 0.836340 +vt 0.528838 0.968980 +vt 0.441134 0.908887 +vt 0.453615 0.905000 +vt 0.579864 0.811655 +vt 0.572277 0.821832 +vt 0.480589 0.821832 +vt 0.528633 0.956401 +vt 0.601970 0.905000 +vt 0.472669 0.811655 +vt 0.614578 0.908887 +vt 0.798239 0.812472 +vt 0.044548 0.775437 +vt 0.118696 0.991993 +vt 0.749869 0.968083 +vt 0.686600 0.796148 +vt 0.750066 0.988261 +vt 0.271159 0.919508 +vt 0.419514 0.919508 +vt 0.803137 0.007858 +vt 0.803137 0.131039 +vt 0.001736 0.131039 +vt 0.803137 0.502892 +vt 0.803137 0.627936 +vt 0.001736 0.627936 +vt 0.585596 0.646454 +vt 0.725474 0.644916 +vt 0.725474 0.764622 +vt 0.026539 0.764623 +vt 0.026539 0.644916 +vt 0.164318 0.646454 +vt 0.304846 0.644916 +vt 0.304846 0.764623 +vt 0.446300 0.644916 +vt 0.446301 0.764623 +vt 0.001736 0.379711 +vt 0.001736 0.255375 +vt 0.803137 0.255375 +vt 0.803137 0.379711 +vt 0.001736 0.502893 +vt 0.892792 0.578386 +vt 0.892792 0.473685 +vt 0.939250 0.473685 +vt 0.892792 0.997359 +vt 0.892792 0.894115 +vt 0.939251 0.894115 +vt 0.892792 0.786921 +vt 0.939250 0.786921 +vt 0.892792 0.684703 +vt 0.939250 0.684703 +vt 0.939250 0.578386 +vt 0.946146 0.279274 +vt 0.868489 0.279274 +vt 0.868489 0.191841 +vt 0.946146 0.459272 +vt 0.868489 0.459272 +vt 0.868489 0.370962 +vt 0.946146 0.191841 +vt 0.868489 0.100903 +vt 0.946146 0.370962 +vt 0.946146 0.100903 +vt 0.868489 0.011346 +vt 0.001736 0.007857 +vt 0.585597 0.763085 +vt 0.164318 0.763085 +vt 0.939251 0.997359 +vt 0.946146 0.011346 +vn -1.000000 -0.000000 0.000000 +vn -0.999900 0.011500 -0.000000 +vn -0.999800 -0.018600 0.000100 +vn 0.000000 1.000000 -0.009600 +vn -0.000000 0.296200 -0.955100 +vn 0.000000 0.322700 0.946500 +vn 0.000000 0.326500 0.945200 +vn 0.000000 1.000000 -0.009700 +vn 0.000000 0.299600 -0.954100 +vn 0.000000 -0.811700 -0.584000 +vn 0.000000 -0.798300 0.602200 +vn 0.000000 -0.802800 0.596300 +vn -0.000000 -0.816000 -0.578000 +vn 0.000000 0.317700 -0.948200 +vn 0.000000 1.000000 0.009700 +vn 0.000000 0.291700 0.956500 +vn 0.000000 -0.811400 0.584500 +vn 0.000000 -0.798400 -0.602200 +vn 0.000000 0.811400 -0.584500 +vn 0.000000 0.798400 0.602200 +vn 0.000000 -1.000000 -0.009700 +vn 0.000000 -0.291700 -0.956500 +vn 0.000000 -0.317700 0.948200 +s off +f 1/1/1 2/2/1 3/3/1 +f 14/4/2 16/5/2 9/6/2 +f 22/7/1 21/8/1 24/9/1 +f 44/10/1 43/11/1 39/12/1 +f 26/13/1 27/14/1 28/15/1 +f 33/16/1 41/17/1 38/18/1 +f 26/13/1 29/19/1 42/20/1 +f 35/21/1 38/18/1 28/15/1 +f 33/16/1 31/22/1 42/20/1 +f 4/23/1 1/1/1 3/3/1 +f 18/24/2 9/6/2 16/5/2 +f 12/25/3 14/4/3 9/6/3 +f 3/3/1 2/2/1 25/26/1 +f 23/27/1 1/1/1 21/8/1 +f 25/26/1 2/2/1 7/28/1 +f 1/1/1 4/23/1 21/8/1 +f 25/26/1 7/28/1 22/7/1 +f 22/7/1 23/27/1 21/8/1 +f 24/9/1 25/26/1 22/7/1 +f 40/29/1 39/12/1 43/11/1 +f 44/10/1 45/30/1 43/11/1 +f 29/19/1 26/13/1 28/15/1 +f 35/21/1 33/16/1 38/18/1 +f 31/22/1 26/13/1 42/20/1 +f 27/14/1 35/21/1 28/15/1 +f 41/17/1 33/16/1 42/20/1 +s 1 +f 5/31/4 6/32/5 7/33/5 +f 8/34/6 5/35/4 2/36/4 +f 10/37/7 11/38/8 12/39/8 +f 12/40/8 11/41/8 13/42/9 +f 13/42/9 15/43/10 16/44/10 +f 16/44/10 15/43/10 17/45/11 +f 18/46/11 17/45/11 10/37/7 +f 23/47/12 22/48/13 19/49/13 +f 20/50/12 8/34/6 1/51/6 +f 7/33/5 6/32/5 19/49/13 +f 26/52/14 31/53/15 32/54/15 +f 31/55/15 33/56/16 34/57/16 +f 33/56/16 35/58/17 36/59/17 +f 35/58/17 27/60/18 37/61/18 +f 27/60/18 26/52/14 30/62/14 +f 38/63/19 39/64/19 40/65/20 +f 42/66/21 45/67/21 44/68/22 +f 28/69/20 40/65/20 43/70/23 +f 41/71/22 44/68/22 39/64/19 +f 29/72/23 43/70/23 45/73/21 +f 2/74/4 5/31/4 7/33/5 +f 1/51/6 8/34/6 2/36/4 +f 9/75/7 10/37/7 12/39/8 +f 14/76/9 12/40/8 13/42/9 +f 14/76/9 13/42/9 16/44/10 +f 18/46/11 16/44/10 17/45/11 +f 9/75/7 18/46/11 10/37/7 +f 20/50/12 23/47/12 19/49/13 +f 23/47/12 20/50/12 1/51/6 +f 22/48/13 7/33/5 19/49/13 +f 30/62/14 26/52/14 32/54/15 +f 32/77/15 31/55/15 34/57/16 +f 34/57/16 33/56/16 36/59/17 +f 36/59/17 35/58/17 37/61/18 +f 37/61/18 27/60/18 30/62/14 +f 28/69/20 38/63/19 40/65/20 +f 41/71/22 42/66/21 44/68/22 +f 29/72/23 28/69/20 43/70/23 +f 38/63/19 41/71/22 39/64/19 +f 42/78/21 29/72/23 45/73/21 +o drum +v 4.098666 2.143699 0.974937 +v 2.388864 2.143698 0.974937 +v 2.388864 1.297696 0.781806 +v 4.098666 1.297696 0.781806 +v 2.388864 0.921218 -0.000041 +v 4.098666 0.921218 -0.000041 +v 2.388864 1.297760 -0.781857 +v 4.098666 1.297761 -0.781857 +v 2.388864 2.143779 -0.974919 +v 4.098666 2.143779 -0.974919 +v 2.388864 2.822205 -0.433847 +v 4.098666 2.822205 -0.433846 +v 2.388864 2.822169 0.433921 +v 2.388864 3.134844 0.292147 +v 2.388864 3.134880 -0.292047 +v 2.388864 2.757353 -0.402619 +v 2.388864 2.757319 0.402688 +v 2.388864 2.127684 0.904762 +v 4.098666 2.822169 0.433921 +v 2.388864 1.342576 0.725532 +v 2.388864 0.993197 -0.000038 +v 2.388864 1.342636 -0.725580 +v 2.388864 2.127759 -0.904745 +v 2.546966 2.757353 -0.402619 +v 2.546966 2.757319 0.402688 +v 4.098666 3.134880 -0.292047 +v 4.098666 3.134844 0.292147 +v 4.098666 2.123293 -0.885178 +v 4.098666 1.355149 -0.709888 +v 4.098666 1.013267 -0.000038 +v 4.098666 1.355090 0.709841 +v 4.098666 2.123219 0.885195 +v 4.098666 2.739237 0.393979 +v 4.098666 2.739270 -0.393911 +v 2.546966 1.342576 0.725532 +v 2.546966 2.127684 0.904762 +v 2.546966 2.127759 -0.904745 +v 2.546966 1.342636 -0.725580 +v 2.546966 0.993197 -0.000038 +v 3.963159 1.013267 -0.000038 +v 3.963159 1.355090 0.709841 +v 3.963158 2.123219 0.885195 +v 3.963159 1.355149 -0.709888 +v 3.963159 2.123293 -0.885178 +v 3.963158 2.739270 -0.393911 +v 3.963158 2.739237 0.393979 +vt 0.327911 0.477825 +vt 0.182075 0.398586 +vt 0.351115 0.398579 +vt 0.430695 0.092193 +vt 0.471235 0.269776 +vt 0.456504 0.266414 +vt 0.067858 0.896136 +vt 0.426759 0.896136 +vt 0.426759 0.961769 +vt 0.067858 0.961761 +vt 0.415588 0.104240 +vt 0.452396 0.265477 +vt 0.349286 0.394783 +vt 0.934776 0.291478 +vt 0.554946 0.291493 +vt 0.592554 0.126690 +vt 0.893860 0.129304 +vt 0.595847 0.129316 +vt 0.827558 0.419848 +vt 0.117575 0.104252 +vt 0.102469 0.092205 +vt 0.061943 0.269791 +vt 0.266578 0.013166 +vt 0.266579 0.032488 +vt 0.183902 0.394790 +vt 0.175519 0.412199 +vt 0.080781 0.265491 +vt 0.357671 0.412192 +vt 0.076674 0.266429 +vt 0.114282 0.101625 +vt 0.266580 0.028276 +vt 0.418883 0.101613 +vt 0.205285 0.477832 +vt 0.744851 0.053340 +vt 0.897154 0.126678 +vt 0.829387 0.423644 +vt 0.660346 0.423650 +vt 0.930668 0.290541 +vt 0.744850 0.057553 +vt 0.559052 0.290555 +vt 0.662173 0.419854 +vt 0.918527 0.526720 +vt 0.918527 0.567259 +vt 0.559626 0.567259 +vt 0.918527 0.731375 +vt 0.559626 0.731375 +vt 0.918527 0.895484 +vt 0.918527 0.936009 +vt 0.559626 0.936009 +vt 0.067858 0.753729 +vt 0.426759 0.753729 +vt 0.174363 0.597257 +vt 0.174363 0.564070 +vt 0.343403 0.564070 +vt 0.106872 0.626318 +vt 0.106872 0.659505 +vt 0.069263 0.659505 +vt 0.411474 0.626319 +vt 0.411474 0.659506 +vt 0.259170 0.659505 +vt 0.343404 0.597257 +vt 0.448793 0.564070 +vt 0.068963 0.597257 +vt 0.068963 0.564070 +vt 0.259171 0.626318 +vt 0.449095 0.626319 +vt 0.449095 0.659506 +vt 0.259170 0.723543 +vt 0.259170 0.695099 +vt 0.408179 0.695099 +vt 0.444683 0.515281 +vt 0.444683 0.543725 +vt 0.341572 0.543725 +vt 0.176187 0.515281 +vt 0.176188 0.543725 +vt 0.073067 0.543725 +vt 0.110166 0.723542 +vt 0.110166 0.695098 +vt 0.444987 0.723543 +vt 0.408179 0.723543 +vt 0.341572 0.515281 +vt 0.073370 0.723542 +vt 0.073370 0.695098 +vt 0.559626 0.526720 +vt 0.559626 0.895484 +vt 0.069263 0.626318 +vt 0.448794 0.597257 +vt 0.073067 0.515281 +vt 0.444987 0.695099 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 0.413000 -0.910700 +vn 0.000000 0.413000 0.910800 +vn 1.000000 0.000000 0.000000 +vn -0.000000 0.222500 0.974900 +vn 0.000000 -0.623500 0.781800 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 -0.623500 -0.781900 +vn 0.000000 0.222600 -0.974900 +vn 0.000000 0.623500 -0.781800 +vn -0.000000 0.623500 0.781900 +vn 0.000000 -0.901000 0.433800 +vn 0.000000 -0.901000 -0.433900 +vn 0.000000 -0.222600 0.974900 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.222500 -0.974900 +s off +f 59/79/24 61/80/24 62/81/24 +f 48/82/24 47/83/24 63/84/24 +f 57/85/25 56/86/25 60/87/25 +f 64/85/26 72/88/26 59/87/26 +f 49/82/27 76/89/27 77/90/27 +f 46/83/27 77/90/27 78/91/27 +f 81/92/24 82/93/24 83/94/24 +f 86/95/27 88/96/27 91/97/27 +f 74/98/27 53/99/27 55/100/27 +f 51/101/27 75/102/27 76/89/27 +f 75/102/27 51/101/27 53/99/27 +f 78/91/27 79/103/27 72/79/27 +f 57/104/27 79/103/27 73/105/27 +f 58/106/24 62/81/24 63/84/24 +f 54/100/24 68/107/24 61/80/24 +f 54/100/24 52/99/24 67/108/24 +f 52/99/24 50/101/24 66/109/24 +f 50/101/24 48/82/24 65/110/24 +f 62/81/24 58/106/24 59/79/24 +f 59/79/24 60/111/24 61/80/24 +f 56/104/24 61/80/24 60/111/24 +f 65/110/24 48/82/24 63/84/24 +f 71/88/25 57/85/25 60/87/25 +f 58/86/26 64/85/26 59/87/26 +f 46/83/27 49/82/27 77/90/27 +f 64/106/27 46/83/27 78/91/27 +f 84/112/24 80/113/24 81/92/24 +f 81/92/24 70/114/24 82/93/24 +f 69/115/24 82/93/24 70/114/24 +f 83/94/24 84/112/24 81/92/24 +f 91/97/27 87/116/27 86/95/27 +f 86/95/27 85/117/27 88/96/27 +f 88/96/27 89/118/27 91/97/27 +f 90/119/27 91/97/27 89/118/27 +f 73/105/27 74/98/27 55/100/27 +f 49/82/27 51/101/27 76/89/27 +f 74/98/27 75/102/27 53/99/27 +f 71/111/27 72/79/27 79/103/27 +f 64/106/27 78/91/27 72/79/27 +f 79/103/27 57/104/27 71/111/27 +f 55/100/27 57/104/27 73/105/27 +f 47/83/24 58/106/24 63/84/24 +f 56/104/24 54/100/24 61/80/24 +f 68/107/24 54/100/24 67/108/24 +f 67/108/24 52/99/24 66/109/24 +f 66/109/24 50/101/24 65/110/24 +s 1 +f 47/120/28 48/121/29 49/122/29 +f 48/121/29 50/123/30 51/124/30 +f 51/124/30 50/123/30 52/125/31 +f 52/125/31 54/126/32 55/127/32 +f 55/128/32 54/129/32 56/86/33 +f 58/86/34 47/129/28 46/128/28 +f 61/130/35 69/131/35 70/132/36 +f 67/133/34 83/134/34 82/135/37 +f 65/136/33 80/137/33 84/138/38 +f 62/139/36 70/132/36 81/140/39 +f 68/141/37 82/142/37 69/131/35 +f 66/143/38 84/138/38 83/134/34 +f 63/144/39 81/145/39 80/137/33 +f 75/146/38 85/147/38 86/148/33 +f 77/149/39 87/150/39 91/151/36 +f 79/152/35 90/153/35 89/154/37 +f 74/155/34 88/156/34 85/147/38 +f 77/157/39 76/158/33 86/148/33 +f 78/159/36 91/151/36 90/153/35 +f 73/160/37 89/161/37 88/156/34 +f 46/162/28 47/120/28 49/122/29 +f 49/122/29 48/121/29 51/124/30 +f 53/163/31 51/124/30 52/125/31 +f 53/163/31 52/125/31 55/127/32 +f 57/85/33 55/128/32 56/86/33 +f 64/85/34 58/86/34 46/128/28 +f 62/139/36 61/130/35 70/132/36 +f 68/164/37 67/133/34 82/135/37 +f 66/143/38 65/136/33 84/138/38 +f 63/165/39 62/139/36 81/140/39 +f 61/130/35 68/141/37 69/131/35 +f 67/133/34 66/143/38 83/134/34 +f 65/136/33 63/144/39 80/137/33 +f 76/158/33 75/146/38 86/148/33 +f 78/159/36 77/149/39 91/151/36 +f 73/166/37 79/152/35 89/154/37 +f 75/146/38 74/155/34 85/147/38 +f 87/167/39 77/157/39 86/148/33 +f 79/152/35 78/159/36 90/153/35 +f 74/155/34 73/160/37 88/156/34 +o stock +v 6.642165 3.598009 -0.296132 +v 5.959075 3.939131 -0.433690 +v 5.959075 4.345873 -0.433690 +v 6.642165 4.001247 -0.263173 +v 5.959075 4.345873 0.433690 +v 6.642165 4.001027 0.263343 +v 5.959075 3.939131 0.433690 +v 6.642165 3.597514 0.296077 +v 5.959075 3.478605 0.320015 +v 6.642165 3.133610 0.222116 +v 5.962569 3.477654 -0.001553 +v 6.645088 2.917124 -0.001078 +v 5.959075 3.478605 -0.320015 +v 6.642165 3.134006 -0.222451 +v 7.079863 3.532114 -0.214907 +v 7.079863 4.095522 -0.284310 +v 7.082420 3.270234 -0.001014 +v 7.079863 3.531327 0.214526 +v 7.079863 4.094541 0.284293 +v 7.571378 4.579840 -0.089104 +v 7.571378 4.579212 0.089499 +v 10.042795 4.578496 -0.089286 +v 10.042795 4.112889 -0.201641 +v 7.571378 3.530748 0.206003 +v 7.573524 3.270234 -0.000942 +v 7.571378 3.531880 -0.206436 +v 10.042795 4.109229 0.201892 +v 9.135580 3.527723 0.161452 +v 10.042795 3.527723 0.161452 +v 9.135580 3.006471 -0.000565 +v 9.135580 3.530658 -0.162156 +v 10.042795 4.576867 0.090303 +v 10.042795 3.006471 -0.000565 +v 10.042795 3.530658 -0.162156 +v 7.082420 3.270234 -0.001014 +v 7.573524 3.270234 -0.000942 +v 9.135580 3.006471 -0.000565 +v 5.959075 4.345873 -0.433690 +v 6.642165 4.001247 -0.263173 +v 5.959075 4.345873 0.433690 +v 6.642165 4.001027 0.263343 +v 7.571378 4.579212 0.089499 +v 7.079863 4.094541 0.284293 +v 7.079863 4.095522 -0.284310 +v 7.571378 4.579840 -0.089104 +v 5.962569 3.477654 -0.001553 +v 6.645088 2.917124 -0.001078 +vt 0.929532 0.728182 +vt 0.908046 0.548097 +vt 0.985745 0.549507 +vt 0.978143 0.325293 +vt 0.964112 0.728809 +vt 0.915833 0.324163 +vt 0.947029 0.123432 +vt 0.813120 0.738957 +vt 0.813120 0.895590 +vt 0.681593 0.762877 +vt 0.683263 0.099031 +vt 0.814790 0.033366 +vt 0.814790 0.367388 +vt 0.681593 0.762792 +vt 0.681593 0.607402 +vt 0.813120 0.561611 +vt 0.681593 0.428755 +vt 0.812448 0.561245 +vt 0.681593 0.428908 +vt 0.681593 0.607592 +vt 0.597316 0.582217 +vt 0.596824 0.481368 +vt 0.681030 0.345388 +vt 0.597316 0.581914 +vt 0.597316 0.798804 +vt 0.683263 0.301789 +vt 0.598986 0.309857 +vt 0.597316 0.799182 +vt 0.598986 0.090891 +vt 0.504346 0.234843 +vt 0.502676 0.985690 +vt 0.026811 0.985172 +vt 0.026811 0.805870 +vt 0.502676 0.581691 +vt 0.502676 0.582127 +vt 0.201493 0.580526 +vt 0.026811 0.804460 +vt 0.502263 0.481368 +vt 0.201493 0.581656 +vt 0.026811 0.581656 +vt 0.026811 0.379795 +vt 0.201493 0.379795 +vt 0.026811 0.580526 +vt 0.502676 0.985448 +vt 0.028483 0.235153 +vt 0.028483 0.165994 +vt 0.504346 0.166064 +vt 0.026811 0.984545 +vn 1.000000 -0.000000 0.000000 +vn 0.185000 -0.070100 -0.980200 +vn 0.242200 0.000000 -0.970200 +vn 0.095800 0.069600 -0.993000 +vn 0.145300 0.989400 0.000700 +vn 0.450400 0.892800 0.000000 +vn 0.450500 0.892800 0.000100 +vn 0.096200 0.069100 0.993000 +vn 0.242000 0.000000 0.970300 +vn 0.184800 -0.070100 0.980300 +vn 0.118500 -0.090800 0.988800 +vn -0.186300 -0.640200 0.745200 +vn 0.036000 -0.574400 0.817800 +vn -0.481900 -0.866200 0.131900 +vn -0.481200 -0.866600 -0.132200 +vn -0.186100 -0.640400 -0.745200 +vn 0.036100 -0.571600 -0.819800 +vn 0.118300 -0.090300 -0.988900 +vn 0.153600 -0.333400 -0.930200 +vn 0.299400 -0.611300 -0.732600 +vn -0.000100 -0.714300 -0.699800 +vn -0.000800 -0.717800 0.696200 +vn 0.300300 -0.615000 0.729100 +vn 0.154400 -0.335600 0.929300 +vn 0.036700 0.016200 0.999200 +vn 0.145800 0.989300 0.000400 +vn -0.453700 0.891200 0.001100 +vn 0.036400 0.016900 -0.999200 +vn -0.454400 0.890800 0.001600 +vn -0.409800 0.912200 0.003000 +vn 0.022100 0.343100 -0.939000 +vn 0.000100 0.234600 -0.972100 +vn 0.006800 0.085300 -0.996300 +vn 0.019700 -0.384900 0.922700 +vn 0.019900 -0.382100 -0.923900 +vn 0.001100 -0.214000 0.976800 +vn 0.006700 0.083200 0.996500 +vn 0.004000 -0.587300 -0.809400 +vn 0.001400 -0.212100 -0.977300 +vn 0.003600 -0.591700 0.806200 +vn 0.000000 -0.182300 -0.983200 +vn 0.000000 -0.294600 -0.955600 +vn -0.023800 -0.296700 0.954700 +vn 0.000000 -0.296800 0.954900 +vn 0.000000 -0.184300 0.982900 +vn 0.022300 0.341900 0.939500 +vn 0.000900 1.000000 0.009100 +vn 0.000900 1.000000 0.008800 +vn -0.409500 0.912300 0.003200 +vn -0.023400 -0.294500 -0.955400 +vn -0.000100 0.232100 0.972700 +s off +f 123/168/40 118/169/40 114/170/40 +f 125/171/40 114/170/40 118/169/40 +f 113/172/40 123/168/40 114/170/40 +f 118/169/40 120/173/40 125/171/40 +f 124/174/40 125/171/40 120/173/40 +s 1 +f 93/175/41 129/176/42 130/177/43 +f 95/178/44 94/179/45 96/180/46 +f 132/181/47 131/176/48 98/175/49 +f 99/182/50 98/175/49 100/183/51 +f 101/184/52 100/183/51 137/185/53 +f 102/185/54 104/183/55 105/186/56 +f 104/183/55 93/175/41 92/187/57 +f 106/188/58 105/186/56 92/187/57 +f 108/189/59 138/190/60 105/186/56 +f 101/184/52 103/190/61 126/189/62 +f 99/182/50 101/184/52 109/191/63 +f 110/192/64 132/181/47 99/182/50 +f 95/178/44 97/193/65 134/194/66 +f 107/195/67 92/187/57 130/177/43 +f 135/196/68 134/194/66 112/197/69 +f 111/198/70 113/199/71 114/200/72 +f 115/201/73 109/191/63 126/189/62 +f 108/189/59 106/188/58 117/202/74 +f 110/192/64 119/203/75 118/204/76 +f 116/205/77 117/202/74 122/206/78 +f 119/203/75 115/201/73 127/205/79 +f 122/206/78 125/207/80 124/208/81 +f 121/209/82 124/208/83 120/210/84 +f 117/202/74 107/195/67 122/206/78 +f 133/211/85 110/192/64 118/204/76 +f 112/197/69 123/212/86 113/213/87 +f 92/187/57 93/175/41 130/177/43 +f 97/193/65 95/178/44 96/180/46 +f 99/182/50 132/181/47 98/175/49 +f 101/184/52 99/182/50 100/183/51 +f 103/190/61 101/184/52 137/185/53 +f 138/190/60 102/185/54 105/186/56 +f 105/186/56 104/183/55 92/187/57 +f 107/195/67 106/188/58 92/187/57 +f 106/188/58 108/189/59 105/186/56 +f 109/191/63 101/184/52 126/189/62 +f 110/192/64 99/182/50 109/191/63 +f 135/196/68 95/178/44 134/194/66 +f 136/214/88 135/196/68 112/197/69 +f 107/195/67 111/198/70 114/200/72 +f 127/205/79 115/201/73 126/189/62 +f 116/205/77 108/189/59 117/202/74 +f 120/210/84 118/204/76 119/203/75 +f 110/192/64 109/191/63 115/201/73 +f 115/201/73 119/203/75 110/192/64 +f 128/209/89 116/205/77 122/206/78 +f 121/209/82 119/203/75 127/205/79 +f 128/209/89 122/206/78 124/208/81 +f 119/203/75 121/209/82 120/210/84 +f 125/207/80 122/206/78 114/200/72 +f 117/202/74 106/188/58 107/195/67 +f 107/195/67 114/200/72 122/206/78 +f 123/215/90 133/211/85 118/204/76 +f 136/214/88 112/197/69 113/213/87 +o grenades +v -0.233697 2.469877 -0.916158 +v -0.233697 2.991506 -1.089823 +v -0.233697 3.315003 -0.655996 +v -0.233697 2.993307 -0.214210 +v -0.233697 2.470990 -0.374999 +v -1.951176 2.469877 -0.916158 +v -1.951176 2.470990 -0.374999 +v -1.951176 2.993307 -0.214210 +v -1.951176 3.315003 -0.655996 +v -1.951176 2.991506 -1.089823 +v -0.233697 2.995483 1.081026 +v -0.233697 2.473131 0.909562 +v -0.233697 2.471954 0.368407 +v -0.233697 2.993579 0.205419 +v -0.233697 3.317138 0.645841 +v -1.951176 2.995483 1.081026 +v -1.951176 3.317138 0.645841 +v -1.951176 2.993579 0.205419 +v -1.951176 2.471954 0.368407 +v -1.951176 2.473131 0.909562 +v -0.233697 3.597358 0.444367 +v -0.233697 3.279485 -0.004386 +v -0.233697 3.601012 -0.440396 +v -0.233697 4.117600 -0.261112 +v -0.233697 4.115342 0.285702 +v -1.951176 3.597358 0.444367 +v -1.951176 4.115342 0.285702 +v -1.951176 4.117600 -0.261112 +v -1.951176 3.601012 -0.440396 +v -1.951176 3.279485 -0.004386 +vt 0.982160 0.292914 +vt 0.612838 0.024586 +vt 0.753906 0.458750 +vt 0.400000 0.918942 +vt 0.600000 0.918942 +vt 0.800000 0.918942 +vt 0.525652 0.292914 +vt 0.894974 0.024586 +vt 0.000000 0.918942 +vt 0.200000 0.918942 +vt 1.000000 0.918942 +vt 0.800000 0.511568 +vt 0.600000 0.511568 +vt 0.400000 0.511568 +vt 0.200000 0.511568 +vt 0.000000 0.511568 +vt 1.000000 0.511568 +vn 1.000000 0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 -0.811700 -0.584000 +vn 0.000000 0.299700 -0.954000 +vn 0.000000 1.000000 -0.005700 +vn 0.000000 0.315900 0.948800 +vn 0.000000 -0.803800 0.594900 +vn 0.000000 0.303700 0.952800 +vn 0.000000 -0.809300 0.587400 +vn 0.000000 -0.806300 -0.591500 +vn 0.000000 0.311900 -0.950100 +vn 0.000000 1.000000 0.001400 +vn 0.000000 -0.322700 0.946500 +vn 0.000000 -1.000000 -0.009600 +vn 0.000000 -0.296200 -0.955100 +vn 0.000000 0.816000 -0.578000 +vn 0.000000 0.802800 0.596300 +s off +f 140/216/91 142/217/91 139/218/91 +f 146/219/92 147/220/92 148/221/92 +f 150/216/91 152/217/91 149/218/91 +f 156/219/92 157/220/92 158/221/92 +f 160/216/91 162/217/91 159/218/91 +f 166/219/92 167/220/92 168/221/92 +f 143/222/91 139/218/91 142/217/91 +f 140/216/91 141/223/91 142/217/91 +f 148/221/92 144/224/92 146/219/92 +f 145/225/92 146/219/92 144/224/92 +f 153/222/91 149/218/91 152/217/91 +f 150/216/91 151/223/91 152/217/91 +f 158/221/92 154/224/92 156/219/92 +f 155/225/92 156/219/92 154/224/92 +f 163/222/91 159/218/91 162/217/91 +f 160/216/91 161/223/91 162/217/91 +f 168/221/92 164/224/92 166/219/92 +f 165/225/92 166/219/92 164/224/92 +s 1 +f 144/226/93 148/221/94 140/227/94 +f 148/221/94 147/220/95 141/228/95 +f 147/220/95 146/219/96 142/229/96 +f 146/219/96 145/225/97 143/230/97 +f 145/225/97 144/224/93 139/231/93 +f 154/226/98 158/221/99 150/227/99 +f 158/221/99 157/220/100 151/228/100 +f 157/220/100 156/219/101 152/229/101 +f 156/219/101 155/225/102 153/230/102 +f 155/225/102 154/224/98 149/231/98 +f 164/226/103 168/221/104 160/227/104 +f 168/221/104 167/220/105 161/228/105 +f 167/220/105 166/219/106 162/229/106 +f 166/219/106 165/225/107 163/230/107 +f 165/225/107 164/224/103 159/231/103 +f 139/232/93 144/226/93 140/227/94 +f 140/227/94 148/221/94 141/228/95 +f 141/228/95 147/220/95 142/229/96 +f 142/229/96 146/219/96 143/230/97 +f 143/230/97 145/225/97 139/231/93 +f 149/232/98 154/226/98 150/227/99 +f 150/227/99 158/221/99 151/228/100 +f 151/228/100 157/220/100 152/229/101 +f 152/229/101 156/219/101 153/230/102 +f 153/230/102 155/225/102 149/231/98 +f 159/232/103 164/226/103 160/227/104 +f 160/227/104 168/221/104 161/228/105 +f 161/228/105 167/220/105 162/229/106 +f 162/229/106 166/219/106 163/230/107 +f 163/230/107 165/225/107 159/231/103 +o barrel +v -6.074285 4.998960 0.008424 +v -6.074285 4.875222 -0.166261 +v -5.662556 4.875222 -0.166261 +v -5.662556 4.998960 0.008424 +v -6.074285 5.122236 0.010881 +v -6.074285 4.913803 -0.283371 +v -6.074285 4.574156 -0.179332 +v -6.074285 4.673588 -0.104497 +v -6.074285 4.873800 0.178149 +v -6.074285 4.672709 0.108360 +v -6.074285 4.572675 0.179219 +v -6.074285 4.911407 0.296777 +v -2.336424 4.603768 -0.157045 +v -5.789216 4.603768 -0.157045 +v -5.789216 4.902313 -0.248493 +v -2.336424 4.902313 -0.248494 +v -2.336424 4.900207 0.261448 +v -5.789216 4.900207 0.261448 +v -5.789216 4.602467 0.158116 +v -2.336424 4.602467 0.158116 +v -2.336424 5.085523 0.010149 +v -5.789216 5.085523 0.010149 +v -5.662556 4.672709 0.108360 +v -5.662556 4.673588 -0.104497 +v -5.770857 4.913803 -0.283371 +v -5.770857 5.122236 0.010881 +v -5.770857 4.911407 0.296777 +v -5.770857 4.572675 0.179219 +v -5.770857 4.574156 -0.179332 +v -5.662556 4.873800 0.178149 +v -4.495610 4.603768 -0.119491 +v -4.486201 4.602467 0.120179 +v -4.486201 4.047801 0.118963 +v -4.495610 4.049102 -0.120707 +v -5.090245 4.047801 0.118963 +v -5.083595 4.049102 -0.120707 +v -5.083595 4.603768 -0.119491 +v -5.090245 4.602467 0.120179 +vt 0.595172 0.786886 +vt 0.678183 0.847575 +vt 0.643888 0.858603 +vt 0.644557 0.945770 +vt 0.623926 0.916898 +vt 0.445030 0.945770 +vt 0.341237 0.945770 +vt 0.310715 0.847575 +vt 0.444361 0.680003 +vt 0.444361 0.521673 +vt 0.512828 0.521894 +vt 0.035654 0.680225 +vt 0.035654 0.521894 +vt 0.203495 0.521894 +vt 0.271936 0.680003 +vt 0.271936 0.521673 +vt 0.203495 0.680225 +vt 0.540765 0.945770 +vt 0.562308 0.916898 +vt 0.510242 0.847575 +vt 0.594608 0.822575 +vt 0.544189 0.858603 +vt 0.395645 0.786886 +vt 0.478655 0.847575 +vt 0.512828 0.680225 +vt 0.863065 0.900888 +vt 0.980366 0.900888 +vt 0.980366 0.961877 +vt 0.989803 0.268428 +vt 0.989773 0.356668 +vt 0.013992 0.356331 +vt 0.989864 0.090294 +vt 0.989834 0.179360 +vt 0.014053 0.179024 +vt 0.989895 0.002053 +vt 0.014084 0.089957 +vt 0.989742 0.446242 +vt 0.013961 0.445905 +vt 0.863065 0.780164 +vt 0.980366 0.780164 +vt 0.980366 0.840808 +vt 0.731642 0.575938 +vt 0.731642 0.474256 +vt 0.817204 0.474256 +vt 0.731642 0.978489 +vt 0.731642 0.878321 +vt 0.817204 0.878321 +vt 0.731642 0.777214 +vt 0.817204 0.777214 +vt 0.731641 0.676107 +vt 0.817204 0.676107 +vt 0.817204 0.575938 +vt 0.863065 0.719521 +vt 0.980366 0.719521 +vt 0.863065 0.840808 +vt 0.863065 0.659440 +vt 0.980366 0.659440 +vt 0.014022 0.268091 +vt 0.863065 0.961877 +vt 0.014114 0.001716 +vt 0.817204 0.978489 +vn -1.000000 0.000000 0.000000 +vn 0.999200 0.000100 -0.039200 +vn 0.000000 0.002200 -1.000000 +vn 0.000000 -0.002200 1.000000 +vn -0.999600 0.000100 -0.027700 +vn 0.000000 -0.322700 0.946500 +vn 0.000000 -1.000000 -0.009600 +vn -0.000000 -0.802800 -0.596300 +vn -0.000000 0.322700 -0.946500 +vn 0.000000 0.296200 0.955100 +vn 0.000000 -0.816000 0.578000 +vn 0.000000 1.000000 0.009600 +vn -0.000000 1.000000 0.009500 +vn 0.000000 0.816000 -0.578000 +vn 0.000000 0.802800 0.596300 +vn 0.000000 -0.296200 -0.955100 +vn 0.000000 -1.000000 -0.009500 +s off +f 174/233/108 175/234/108 176/235/108 +f 179/236/108 178/237/108 176/235/108 +f 196/238/108 195/239/108 194/240/108 +f 200/241/109 201/242/109 202/243/109 +f 199/244/110 202/245/110 204/246/110 +f 206/247/111 203/248/111 201/242/111 +f 206/247/112 205/249/112 204/246/112 +f 179/236/108 180/250/108 177/251/108 +f 173/252/108 174/233/108 170/253/108 +f 173/252/108 169/254/108 177/251/108 +f 170/253/108 174/233/108 176/235/108 +f 175/234/108 179/236/108 176/235/108 +f 194/240/108 193/255/108 196/238/108 +f 197/256/108 196/238/108 193/255/108 +f 199/257/109 200/241/109 202/243/109 +f 205/249/110 199/244/110 204/246/110 +f 200/241/111 206/247/111 201/242/111 +f 203/248/112 206/247/112 204/246/112 +f 178/237/108 179/236/108 177/251/108 +f 169/254/108 173/252/108 170/253/108 +f 180/250/108 173/252/108 177/251/108 +s 1 +f 170/258/113 171/259/113 172/260/114 +f 182/261/115 183/262/116 184/263/116 +f 186/264/117 187/265/118 188/266/118 +f 190/267/119 186/264/117 185/268/117 +f 183/262/116 190/269/119 189/270/120 +f 178/271/121 191/272/121 192/273/122 +f 174/274/116 173/275/119 194/276/119 +f 173/277/119 180/278/117 195/279/117 +f 180/278/117 179/280/118 196/281/118 +f 179/280/118 175/282/115 197/283/115 +f 175/282/115 174/274/116 193/284/116 +f 177/285/123 198/286/123 191/272/121 +f 176/287/122 192/273/122 171/259/113 +f 169/288/124 172/289/114 198/286/123 +f 187/265/118 182/261/115 181/290/115 +f 169/291/124 170/258/113 172/260/114 +f 181/290/115 182/261/115 184/263/116 +f 185/268/117 186/264/117 188/266/118 +f 189/292/120 190/267/119 185/268/117 +f 184/263/116 183/262/116 189/270/120 +f 176/287/122 178/271/121 192/273/122 +f 193/284/116 174/274/116 194/276/119 +f 194/293/119 173/277/119 195/279/117 +f 195/279/117 180/278/117 196/281/118 +f 196/281/118 179/280/118 197/283/115 +f 197/283/115 175/282/115 193/284/116 +f 178/271/121 177/285/123 191/272/121 +f 170/258/113 176/287/122 171/259/113 +f 177/285/123 169/288/124 198/286/123 +f 188/266/118 187/265/118 181/290/115 +o pivot +v -1.971113 2.931105 -0.395477 +v -1.971113 3.375251 -0.251267 +v -1.971113 3.375349 0.215704 +v -1.971113 2.931262 0.360099 +v -1.971113 2.656704 -0.017632 +v -2.327534 2.931105 -0.377762 +v -2.327534 3.375251 -0.233553 +v -2.327534 2.656704 0.000083 +v -0.200761 3.342729 -0.209914 +v -0.200761 3.342817 0.209794 +v -0.200761 2.943678 0.339574 +v -0.200761 2.696910 0.000074 +v -0.200761 2.943537 -0.339528 +v -1.975154 2.943537 -0.339528 +v -1.975154 3.342729 -0.209914 +v -1.975154 2.696910 0.000074 +v -1.975154 2.943678 0.339574 +v -1.975154 3.342817 0.209794 +v -2.327534 2.931262 0.377814 +v -2.327534 3.375348 0.233419 +vt 0.824219 0.048017 +vt 0.905975 0.299639 +vt 0.691934 0.144128 +vt 0.956504 0.144154 +vt 0.742462 0.299639 +vt 0.956504 0.144128 +vt 0.905931 0.299650 +vt 0.742418 0.299604 +vt 0.254264 0.825428 +vt 0.417758 0.822922 +vt 0.417758 0.947879 +vt 0.090882 0.943818 +vt 0.090882 0.818861 +vt 0.000153 0.588008 +vt 0.000153 0.441045 +vt 0.621469 0.441045 +vt 0.000153 0.734972 +vt 0.621469 0.588008 +vt 0.000153 0.147117 +vt 0.000153 0.000154 +vt 0.621469 0.000153 +vt 0.000153 0.294081 +vt 0.621469 0.147117 +vt 0.621469 0.294081 +vt 0.744564 0.937252 +vt 0.744564 0.812295 +vt 0.907945 0.818861 +vt 0.581070 0.814805 +vt 0.581070 0.939762 +vt 0.254264 0.950386 +vt 0.621469 0.734971 +vt 0.907945 0.943818 +vn 1.000000 0.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn -0.047100 -0.314500 -0.948100 +vn -0.028600 0.817400 -0.575300 +vn -0.029800 0.799800 -0.599600 +vn -0.000900 -0.999800 -0.018400 +vn 0.000900 -0.999800 0.018800 +vn 0.000000 -0.309200 -0.951000 +vn 0.000000 0.808900 -0.588000 +vn 0.000000 -1.000000 0.000200 +vn 0.000000 -0.308800 0.951100 +vn 0.000000 0.809100 0.587600 +vn 0.047100 -0.314100 0.948200 +vn 0.047300 -0.303200 0.951800 +vn 0.029800 0.800000 0.599300 +vn 0.028600 0.817700 0.575000 +vn -0.047300 -0.303500 -0.951600 +s off +f 208/294/125 210/295/125 207/296/125 +f 212/296/126 214/294/126 225/297/126 +f 211/298/125 207/296/125 210/295/125 +f 208/294/125 209/299/125 210/295/125 +f 225/297/126 226/300/126 212/296/126 +f 213/301/126 212/296/126 226/300/126 +s 1 +f 212/302/127 213/303/128 208/304/129 +f 211/305/130 214/306/131 212/302/127 +f 220/307/132 221/308/133 215/309/133 +f 222/310/134 220/307/132 219/311/132 +f 223/312/135 222/313/134 218/314/134 +f 224/315/136 223/312/135 217/316/135 +f 221/308/133 224/315/136 216/317/136 +f 210/318/137 225/319/138 214/320/131 +f 226/321/139 225/319/138 210/318/137 +f 213/303/128 226/321/139 209/322/140 +f 207/323/141 212/302/127 208/304/129 +f 207/323/141 211/305/130 212/302/127 +f 219/311/132 220/307/132 215/309/133 +f 218/324/134 222/310/134 219/311/132 +f 217/316/135 223/312/135 218/314/134 +f 216/317/136 224/315/136 217/316/135 +f 215/309/133 221/308/133 216/317/136 +f 211/325/130 210/318/137 214/320/131 +f 209/322/140 226/321/139 210/318/137 +f 208/304/129 213/303/128 209/322/140 +o top +v 5.044108 4.943564 0.354718 +v 5.044108 5.466138 0.354718 +v 0.795692 5.466545 0.343825 +v 0.795217 4.826993 0.417555 +v 0.628732 5.466088 0.192178 +v 0.628732 4.946920 0.192178 +v 0.628732 5.466088 -0.192178 +v -5.398937 5.466088 -0.192178 +v -5.398937 5.466088 0.192178 +v 5.044108 5.466138 -0.342168 +v 0.794078 5.468549 -0.342168 +v 0.794963 4.826993 -0.415286 +v 5.044108 4.943564 -0.342168 +v 0.628732 4.946920 -0.192178 +v -5.398937 4.946920 0.192178 +v -5.398937 4.946920 -0.192178 +v 5.044108 5.259025 0.354718 +v 5.044108 5.259025 -0.342168 +v 5.044108 4.943564 0.354718 +v 5.044108 4.943564 -0.342168 +v 5.847027 4.069042 -0.171277 +v 5.847027 4.069042 0.183828 +v 5.955363 4.361008 -0.171277 +v 5.955363 4.361008 0.183828 +vt 0.115118 0.821537 +vt 0.115118 0.920081 +vt 0.415553 0.920158 +vt 0.427360 0.920071 +vt 0.427360 0.822170 +vt 0.419421 0.464064 +vt 0.419421 0.536544 +vt 0.407728 0.435780 +vt 0.106912 0.342717 +vt 0.106912 0.211303 +vt 0.407381 0.199449 +vt 0.415667 0.920536 +vt 0.407399 0.356501 +vt 0.419154 0.241949 +vt 0.853618 0.920072 +vt 0.853618 0.822170 +vt 0.930034 0.477375 +vt 0.902853 0.477375 +vt 0.902853 0.379473 +vt 0.419154 0.314429 +vt 0.845413 0.241943 +vt 0.889565 0.844568 +vt 0.938846 0.844567 +vt 0.938846 0.883623 +vt 0.050132 0.310492 +vt 0.926761 0.675225 +vt 0.901649 0.675225 +vt 0.901649 0.620168 +vt 0.058338 0.656626 +vt 0.050676 0.711683 +vt 0.107179 0.567194 +vt 0.042738 0.534969 +vt 0.042738 0.468006 +vt 0.115118 0.881025 +vt 0.415586 0.799555 +vt 0.845680 0.464065 +vt 0.845680 0.536544 +vt 0.107179 0.435780 +vt 0.407614 0.565141 +vt 0.930034 0.379473 +vt 0.845413 0.314422 +vt 0.889565 0.883624 +vt 0.050132 0.243528 +vt 0.926761 0.620168 +vn -0.001200 0.010800 0.999900 +vn -0.002600 -0.000000 1.000000 +vn 0.010500 0.105600 0.994300 +vn -0.708000 0.021500 0.705900 +vn -0.672300 0.000000 0.740200 +vn -0.762700 0.057100 0.644200 +vn -0.008900 1.000000 0.000000 +vn -0.003900 1.000000 0.001500 +vn -0.003600 1.000000 0.002300 +vn 0.027400 -0.999600 -0.000000 +vn -0.761300 0.055500 -0.646100 +vn -0.671900 0.000000 -0.740700 +vn -0.706800 0.020700 -0.707100 +vn -0.584900 -0.811100 0.000100 +vn -0.584600 -0.811300 0.000200 +vn -0.584700 -0.811200 0.000200 +vn 0.000000 -0.000000 1.000000 +vn -1.000000 -0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn -0.736600 -0.676300 0.000000 +vn 0.937500 -0.347900 0.000000 +vn 0.180600 -0.006000 0.983500 +vn 0.149600 -0.055500 0.987200 +vn 0.153300 -0.049700 0.986900 +vn 0.701900 0.712300 0.000000 +vn 0.180600 -0.006000 -0.983500 +vn 0.184300 0.000000 -0.982900 +vn 0.153300 -0.049700 -0.986900 +vn 0.012900 0.104500 -0.994400 +vn 0.001300 0.010700 -0.999900 +vn 0.011500 0.114500 0.993400 +vn -0.783700 0.071700 0.617000 +vn 0.000000 1.000000 0.000000 +vn 0.000100 1.000000 0.000300 +vn -0.001500 1.000000 0.002700 +vn 0.000100 1.000000 0.000000 +vn -0.781700 0.069600 -0.619800 +vn -0.585100 -0.811000 0.000000 +vn 0.184300 0.000000 0.982900 +vn 0.149600 -0.055500 -0.987200 +vn 0.014000 0.113200 -0.993500 +s 1 +f 227/326/142 228/327/143 229/328/144 +f 229/328/145 231/329/146 232/330/147 +f 233/331/148 231/332/149 237/333/150 +f 239/334/151 227/335/151 230/336/151 +f 240/330/152 233/329/153 237/337/154 +f 238/338/155 230/336/156 232/339/157 +f 231/329/158 235/340/158 241/341/158 +f 235/342/159 234/343/159 242/344/159 +f 234/340/160 233/329/160 240/330/160 +f 240/345/161 232/339/161 241/346/161 +f 243/347/162 244/348/162 236/349/162 +f 245/335/163 246/334/163 247/350/163 +f 249/351/164 250/352/164 248/353/164 +f 245/326/165 248/354/166 250/355/167 +f 243/356/168 250/357/168 249/358/168 +f 246/326/169 244/359/170 249/355/171 +f 237/337/172 236/327/160 239/326/173 +f 230/360/174 227/326/142 229/328/144 +f 230/360/175 229/328/145 232/330/147 +f 233/331/148 234/361/176 235/362/176 +f 236/363/177 237/333/150 229/364/178 +f 229/364/178 228/356/179 236/363/177 +f 233/331/148 235/362/176 231/332/149 +f 231/332/149 229/364/178 237/333/150 +f 238/338/151 239/334/151 230/336/151 +f 238/360/180 240/330/152 237/337/154 +f 240/345/181 238/338/155 232/339/157 +f 232/330/158 231/329/158 241/341/158 +f 241/365/159 235/342/159 242/344/159 +f 242/341/160 234/340/160 240/330/160 +f 242/366/161 240/345/161 241/346/161 +f 228/367/162 243/347/162 236/349/162 +f 248/368/163 245/335/163 247/350/163 +f 247/369/164 249/351/164 248/353/164 +f 243/359/182 245/326/165 250/355/167 +f 244/363/168 243/356/168 249/358/168 +f 247/354/183 246/326/169 249/355/171 +f 238/360/184 237/337/172 239/326/173 +o base +v 4.699434 5.121191 -0.174050 +v 5.266431 5.121191 -0.174050 +v 5.266431 4.997460 -0.005108 +v 4.699434 4.997460 -0.005108 +v 5.266431 5.119899 0.164773 +v 4.699434 5.119899 0.164773 +v 5.266431 5.319301 0.100823 +v 4.699434 5.319301 0.100823 +v 5.266431 5.320100 -0.108581 +v 4.699434 5.320100 -0.108581 +v 4.151685 3.128466 0.320015 +v 4.151685 3.588992 0.433690 +v 4.151685 5.375307 0.433690 +v 4.151685 5.375307 -0.433690 +v 4.151685 3.588992 -0.433690 +v 4.151685 3.128466 -0.320015 +v 5.959075 3.478605 -0.320015 +v 5.959075 3.939131 -0.433690 +v 5.959075 4.345873 -0.433690 +v 5.959075 4.345873 0.433690 +v 5.959075 3.939131 0.433690 +v 5.959075 3.478605 0.320015 +v 4.994334 5.171120 -0.433690 +v 4.994334 5.171120 0.433690 +v 4.598720 5.375307 0.433690 +v 4.448609 3.128466 -0.320015 +v 4.448608 3.128466 0.320015 +v 4.598720 5.375307 -0.433690 +v 5.183057 3.478605 -0.320015 +v 4.805644 3.372820 -0.320015 +v 4.805644 3.372820 0.320015 +v 5.183056 3.478605 0.320015 +v 4.151685 3.128466 -0.320015 +v 4.151685 3.588992 -0.433690 +v 4.151685 5.375307 -0.433690 +v 4.151685 5.375307 0.433690 +v 4.151685 3.588992 0.433690 +v 4.151685 3.128466 0.320015 +v 5.959075 3.478605 -0.320015 +v 5.959075 3.939131 -0.433690 +v 5.959075 4.345873 -0.433690 +v 5.959075 4.345873 0.433690 +v 5.959075 3.939131 0.433690 +v 5.959075 3.478605 0.320015 +v 4.994334 5.171120 -0.433690 +v 4.994334 5.171120 0.433690 +v 4.598720 5.375307 0.433690 +v 4.448609 3.128466 -0.320015 +v 4.448608 3.128466 0.320015 +v 4.598720 5.375307 -0.433690 +v 5.183057 3.478605 -0.320015 +v 4.805644 3.372820 -0.320015 +v 4.805644 3.372820 0.320015 +v 5.183056 3.478605 0.320015 +vt 0.128228 0.227452 +vt 0.095308 0.126135 +vt 0.161147 0.126135 +vt 0.181493 0.188753 +vt 0.074962 0.188753 +vt 0.313932 0.380938 +vt 0.268748 0.380938 +vt 0.268748 0.267979 +vt 0.223564 0.380938 +vt 0.223564 0.267979 +vt 0.178381 0.380938 +vt 0.178381 0.267979 +vt 0.133197 0.380938 +vt 0.133197 0.267979 +vt 0.088013 0.380938 +vt 0.088013 0.267979 +vt 0.814232 0.651940 +vt 0.814232 0.572408 +vt 0.956803 0.572408 +vt 0.814232 0.736011 +vt 0.956803 0.651940 +vt 0.956803 0.736012 +vt 0.956802 0.908875 +vt 0.814231 0.908875 +vt 0.313932 0.267979 +vt 0.716768 0.518831 +vt 0.523553 0.518831 +vt 0.548875 0.416245 +vt 0.666772 0.239171 +vt 0.473557 0.239171 +vt 0.498879 0.136586 +vt 0.691446 0.416246 +vt 0.716768 0.916745 +vt 0.523553 0.916745 +vt 0.641451 0.136586 +vt 0.666772 0.329776 +vt 0.473557 0.329776 +vt 0.773527 0.294021 +vt 0.773527 0.079118 +vt 0.966742 0.079118 +vt 0.956804 0.506266 +vt 0.773527 0.382146 +vt 0.966742 0.294021 +vt 0.966742 0.481726 +vt 0.773527 0.481727 +vt 0.231742 0.882798 +vt 0.319868 0.928282 +vt 0.419448 0.530368 +vt 0.273774 0.482214 +vt 0.353306 0.427783 +vt 0.016839 0.608364 +vt 0.189703 0.505779 +vt 0.016839 0.505779 +vt 0.814232 0.506266 +vt 0.966742 0.382146 +vt 0.016839 0.698969 +vt 0.419448 0.928282 +vt 0.419448 0.427783 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -0.305400 -0.952200 +vn 0.000000 -1.000000 -0.003800 +vn 0.000000 -0.312600 0.949900 +vn 0.000000 0.806800 0.590900 +vn 0.000000 0.811300 -0.584700 +vn 0.423000 -0.906100 0.000000 +vn 0.295600 -0.955300 0.000000 +vn 0.136200 -0.990700 0.000000 +vn 0.000000 -1.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn 0.558100 0.829800 0.000000 +vn 0.650000 0.759900 0.000000 +vn 0.236000 0.971800 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.000000 -0.000000 1.000000 +vn 0.036800 -0.133100 0.990400 +vn 0.036800 -0.133100 -0.990400 +vn 0.086900 -0.244900 -0.965600 +vn 0.069500 -0.196600 -0.978000 +vn 0.069500 -0.196600 0.978000 +vn 0.086900 -0.244900 0.965600 +vn 0.000000 0.000000 -1.000000 +vn 0.007800 -0.118800 0.992900 +vn 0.057000 -0.318800 0.946100 +vn 0.000000 -0.239600 0.970900 +vn 0.057000 -0.318800 -0.946100 +vn 0.000000 -0.239600 -0.970900 +vn 0.007800 -0.118800 -0.992900 +s off +f 252/370/185 257/371/185 255/372/185 +f 255/372/185 253/373/185 252/370/185 +f 252/370/185 259/374/185 257/371/185 +s 1 +f 252/375/186 253/376/187 254/377/187 +f 253/376/187 255/378/188 256/379/188 +f 255/378/188 257/380/189 258/381/189 +f 257/380/189 259/382/190 260/383/190 +f 259/382/190 252/384/186 251/385/186 +f 281/386/191 277/387/192 276/388/192 +f 282/389/193 281/386/191 280/390/191 +f 279/391/193 267/392/194 272/393/194 +f 251/394/186 252/375/186 254/377/187 +f 254/377/187 253/376/187 256/379/188 +f 256/379/188 255/378/188 258/381/189 +f 258/381/189 257/380/189 260/383/190 +f 260/383/190 259/382/190 251/385/186 +f 280/390/191 281/386/191 276/388/192 +f 279/391/193 282/389/193 280/390/191 +f 282/389/193 279/391/193 272/393/194 +s off +f 262/395/195 265/396/195 266/397/195 +f 268/398/185 271/399/185 272/400/185 +f 266/397/195 261/401/195 262/395/195 +f 262/395/195 263/402/195 264/403/195 +f 264/403/195 265/396/195 262/395/195 +f 272/400/185 267/404/185 268/398/185 +f 268/398/185 269/405/185 270/406/185 +f 270/406/185 271/399/185 268/398/185 +s 1 +f 274/407/196 270/408/197 269/409/197 +f 266/410/194 276/388/192 277/387/192 +f 275/411/198 274/407/196 273/412/196 +f 264/413/199 263/414/199 275/411/198 +f 296/415/200 297/416/200 287/417/201 +f 284/417/202 302/418/203 298/419/204 +f 299/419/205 303/418/206 287/417/201 +f 300/416/207 295/415/207 284/417/202 +f 293/420/208 304/421/209 294/422/210 +f 301/421/211 302/418/203 284/417/202 +f 289/422/212 301/421/211 290/420/213 +f 287/417/201 303/418/206 304/421/209 +f 273/412/196 274/407/196 269/409/197 +f 261/423/194 266/410/194 277/387/192 +f 278/424/198 275/411/198 273/412/196 +f 278/424/198 264/413/199 275/411/198 +f 287/417/201 293/420/208 292/425/200 +f 292/425/200 296/415/200 287/417/201 +f 297/416/200 286/426/200 287/417/201 +f 283/427/212 284/417/202 298/419/204 +f 288/427/210 299/419/205 287/417/201 +f 290/420/213 284/417/202 291/425/207 +f 285/426/207 300/416/207 284/417/202 +f 295/415/207 291/425/207 284/417/202 +f 290/420/213 301/421/211 284/417/202 +f 293/420/208 287/417/201 304/421/209 +o trigger +v 3.926120 3.092227 -0.034408 +v 3.965425 3.198867 -0.030930 +v 5.332912 3.009086 -0.030958 +v 5.517139 3.497606 -0.022463 +v 5.630136 3.497556 -0.022463 +v 5.332912 2.895381 -0.030958 +v 5.624238 3.497606 0.030137 +v 5.511241 3.497606 0.030137 +v 5.332912 3.009086 0.022101 +v 3.965384 3.197152 0.022101 +v 3.926080 3.090513 0.018623 +v 5.332912 2.895381 0.022101 +v 5.163631 3.138078 -0.026238 +v 5.365596 3.296422 -0.026234 +v 5.365596 3.296422 0.017377 +v 5.174312 3.138078 0.015514 +v 5.195904 3.201269 -0.024371 +v 5.206583 3.201269 0.017380 +v 5.294617 3.296422 0.017377 +v 5.294617 3.487131 0.017377 +v 5.294617 3.487131 -0.026234 +v 5.294617 3.296422 -0.026234 +v 5.365596 3.487131 -0.026234 +v 5.365596 3.487131 0.017377 +vt 0.083542 0.693552 +vt 0.300095 0.826506 +vt 0.289671 0.880478 +vt 0.358499 0.224215 +vt 0.412820 0.213665 +vt 0.629683 0.849229 +vt 0.713908 0.720213 +vt 0.688088 0.720276 +vt 0.688088 0.029347 +vt 0.793474 0.884010 +vt 0.772313 0.884032 +vt 0.772964 0.763243 +vt 0.798134 0.029188 +vt 0.798134 0.700800 +vt 0.772314 0.700705 +vt 0.882325 0.668281 +vt 0.856539 0.667868 +vt 0.856606 0.414854 +vt 0.940734 0.157111 +vt 0.966335 0.154242 +vt 0.966335 0.209211 +vt 0.852023 0.965190 +vt 0.852023 0.909876 +vt 0.877847 0.909876 +vt 0.970797 0.970571 +vt 0.936252 0.970568 +vt 0.936252 0.877802 +vt 0.970798 0.819423 +vt 0.936252 0.819426 +vt 0.936252 0.726660 +vt 0.882329 0.029188 +vt 0.882329 0.355890 +vt 0.856617 0.354971 +vt 0.710114 0.899453 +vt 0.688088 0.872858 +vt 0.696426 0.810352 +vt 0.961956 0.424358 +vt 0.961956 0.517132 +vt 0.940730 0.517132 +vt 0.863316 0.820182 +vt 0.856539 0.753826 +vt 0.877847 0.726657 +vt 0.358499 0.936283 +vt 0.379725 0.936283 +vt 0.379725 0.970812 +vt 0.300095 0.057784 +vt 0.029202 0.683098 +vt 0.619187 0.029188 +vt 0.629682 0.083145 +vt 0.940730 0.575508 +vt 0.961956 0.575508 +vt 0.961956 0.668281 +vt 0.961874 0.029188 +vt 0.961874 0.095866 +vt 0.941265 0.092454 +vt 0.961508 0.273352 +vt 0.961508 0.307881 +vt 0.940734 0.304985 +vt 0.582369 0.877907 +vt 0.713908 0.029188 +vt 0.793474 0.759175 +vt 0.772313 0.029188 +vt 0.882325 0.414266 +vt 0.940734 0.212080 +vt 0.877847 0.965190 +vt 0.970797 0.877805 +vt 0.970798 0.726657 +vt 0.856539 0.029509 +vt 0.710114 0.778652 +vt 0.940730 0.424358 +vt 0.877847 0.851500 +vt 0.358500 0.970812 +vt 0.252730 0.029188 +vt 0.940730 0.668281 +vt 0.940734 0.029423 +vt 0.940734 0.270456 +vn 0.000000 0.017400 -0.999800 +vn 0.000000 -0.000000 1.000000 +vn -0.137400 -0.990500 0.000000 +vn 0.637700 -0.770300 0.000000 +vn 0.137400 0.990000 0.032100 +vn -0.939400 0.342900 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.938400 0.345500 0.010400 +vn 0.000000 0.000000 -1.000000 +vn 0.891600 -0.441500 0.100400 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -0.019600 -0.999800 +vn 0.000000 -0.016400 0.999900 +vn -1.000000 -0.000000 0.000000 +vn -0.681700 0.710600 0.174400 +vn -0.870900 0.438100 0.222800 +vn 0.028600 0.000000 -0.999600 +vn -0.006700 -0.030100 0.999500 +vn -0.138400 -0.989900 -0.032100 +vn 0.609500 -0.777300 -0.155900 +vn 0.136200 0.990700 0.000000 +vn -0.930000 0.352500 -0.104300 +vn 0.000400 1.000000 -0.000900 +vn -0.938400 0.345500 0.010500 +vn 0.900200 -0.435500 0.000000 +vn 0.025400 -0.042500 0.998800 +vn -0.038500 0.049200 -0.998000 +vn 0.006700 0.030100 -0.999500 +vn -0.027600 0.000000 0.999600 +vn -0.734000 0.679100 0.000000 +vn -0.870800 0.438200 0.222800 +s off +f 307/428/214 308/429/214 309/430/214 +f 316/431/215 313/432/215 314/433/215 +f 310/434/216 316/435/216 315/436/216 +f 318/437/217 319/438/217 320/439/217 +f 307/440/218 306/441/218 314/442/218 +f 307/443/219 313/444/219 312/445/219 +f 308/446/220 312/447/220 311/448/220 +f 315/449/221 314/450/221 306/451/221 +f 325/452/222 327/453/222 318/454/222 +f 328/455/215 324/456/215 323/457/215 +f 310/458/223 309/459/223 311/460/223 +f 319/461/215 323/462/215 322/463/215 +f 318/464/224 327/465/224 328/466/224 +f 321/467/225 326/468/225 318/469/225 +f 325/470/220 324/471/220 328/472/220 +f 306/473/222 307/428/222 310/474/222 +f 311/475/226 312/476/226 313/432/226 +f 324/477/227 325/478/227 326/479/227 +f 326/480/228 321/481/228 322/482/228 +f 320/483/229 322/484/229 321/485/229 +f 310/474/230 307/428/230 309/430/230 +f 315/486/231 316/431/231 314/433/231 +f 305/487/232 310/434/232 315/436/232 +f 317/488/233 318/437/233 320/439/233 +f 313/489/234 307/440/234 314/442/234 +f 308/490/235 307/443/235 312/445/235 +f 309/491/236 308/446/236 311/448/236 +f 305/492/237 315/449/237 306/451/237 +f 326/493/222 325/452/222 318/454/222 +f 319/494/215 328/455/215 323/457/215 +f 316/495/238 310/458/238 311/460/238 +f 320/496/239 319/461/239 322/463/239 +f 319/497/224 318/464/224 328/466/224 +f 317/498/240 321/467/240 318/469/240 +f 327/499/220 325/470/220 328/472/220 +f 305/500/241 306/473/241 310/474/241 +f 316/431/242 311/475/242 313/432/242 +f 323/501/227 324/477/227 326/479/227 +f 323/502/243 326/480/243 322/482/243 +f 317/503/244 320/483/244 321/485/244 +o flechette +v -6.690176 4.818856 0.090346 +v -7.627392 4.818856 0.090345 +v -7.627392 4.733345 0.004835 +v -6.690176 4.733345 0.004835 +v -7.627392 4.818856 -0.080676 +v -6.690176 4.818856 -0.080676 +v -7.627392 4.904366 0.004835 +v -7.990086 4.818856 0.004744 +v -7.990086 4.818947 0.004835 +v -6.690176 4.904366 0.004835 +v -6.369133 4.818856 0.018597 +v -6.690621 4.818856 0.018597 +v -6.690621 4.641216 0.005132 +v -6.369133 4.641216 0.005132 +v -6.690621 4.818856 -0.008333 +v -6.369133 4.818856 -0.008333 +v -6.690621 4.996495 0.005132 +v -6.369133 4.996495 0.005132 +v -6.370245 4.818856 0.040429 +v -6.370245 4.783262 0.004835 +v -6.370245 4.818856 -0.030759 +v -6.370245 4.854450 0.004835 +v -6.693045 4.860888 0.004835 +v -6.693045 4.818856 0.046868 +v -6.693045 4.818856 -0.037198 +v -6.693045 4.776823 0.004835 +v -6.369133 4.808150 0.005132 +v -6.690621 4.796983 0.005132 +v -6.690621 4.818856 -0.172507 +v -6.369133 4.818856 -0.172507 +v -6.690621 4.840728 0.005132 +v -6.369133 4.829561 0.005132 +v -6.690621 4.818856 0.182771 +v -6.369133 4.818856 0.182771 +v -7.990086 4.818765 0.004835 +v -7.990086 4.818856 0.004926 +vt 1.000000 1.000000 +vt 0.750000 1.000000 +vt 0.750000 0.634215 +vt 0.500000 1.000000 +vt 0.500000 0.634215 +vt 0.250000 1.000000 +vt 0.250000 0.634215 +vt 0.000000 1.000000 +vt 1.000000 0.634215 +vt 0.250000 0.490000 +vt 0.010000 0.250000 +vt 0.250000 0.010000 +vt 0.000000 0.634215 +vt 0.990000 0.250000 +vt 0.750000 0.010000 +vt 0.510000 0.250000 +vt 0.250000 0.500000 +vt 0.750000 0.500000 +vt 0.490000 0.250000 +vt 0.750000 0.490000 +vt 0.000000 0.500000 +vt 0.500000 0.500000 +vt 1.000000 0.500000 +vn -0.000000 -0.707100 0.707100 +vn 0.000000 -0.707100 -0.707100 +vn -0.164300 0.697500 -0.697500 +vn -0.163900 0.698400 -0.696700 +vn -0.163900 0.698200 -0.696800 +vn 0.000000 0.707100 -0.707100 +vn -0.000000 0.707100 0.707100 +vn 1.000000 0.000000 0.000000 +vn 0.000000 -0.075600 0.997100 +vn 0.000000 -0.075600 -0.997100 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.075600 -0.997100 +vn 0.000000 0.075600 0.997100 +vn 0.014100 0.707000 0.707000 +vn 0.014100 0.707000 -0.707000 +vn 0.014100 -0.707000 -0.707000 +vn 0.014100 -0.707000 0.707000 +vn 0.011100 -0.996700 -0.080200 +vn 0.034500 -0.991900 -0.122100 +vn 0.023400 -0.994500 -0.102300 +vn 0.023400 0.994500 -0.102300 +vn 0.034500 0.991900 -0.122100 +vn 0.011100 0.996700 -0.080200 +vn 0.011100 0.996700 0.080200 +vn 0.034500 0.991900 0.122100 +vn 0.023400 0.994500 0.102300 +vn 0.023400 -0.994500 0.102300 +vn 0.034500 -0.991900 0.122100 +vn 0.011100 -0.996700 0.080200 +vn -0.164300 0.697500 0.697500 +vn -0.163600 0.699600 0.695500 +vn -0.164300 -0.697500 -0.697500 +vn -0.164100 -0.696500 -0.698500 +vn -0.164300 -0.697500 0.697500 +vn -0.164500 -0.698400 0.696600 +vn 0.000000 -0.998200 -0.060200 +vn 0.000000 0.998200 -0.060200 +vn 0.000000 0.998200 0.060200 +vn 0.000000 -0.998200 0.060200 +vn -0.163500 0.700100 0.695100 +vn -0.164000 -0.696300 -0.698800 +vn -0.164500 -0.698600 0.696400 +s 1 +f 330/504/245 331/505/245 332/506/245 +f 331/505/246 333/507/246 334/508/246 +f 333/507/247 336/507/248 337/509/249 +f 333/507/250 335/509/250 338/510/250 +f 338/510/251 335/509/251 330/511/251 +f 338/510/252 329/512/252 332/506/252 +f 340/504/253 341/505/253 342/506/253 +f 341/505/254 343/507/254 344/508/254 +f 340/513/255 345/514/255 343/515/255 +f 343/507/256 345/509/256 346/510/256 +f 345/509/257 340/511/257 339/516/257 +f 339/512/252 342/506/252 344/508/252 +f 348/517/252 349/518/252 350/519/252 +f 350/520/258 351/510/258 352/516/258 +f 353/508/259 351/510/259 350/520/259 +f 348/521/260 354/506/260 353/508/260 +f 352/512/261 354/506/261 348/521/261 +f 355/512/262 356/504/263 357/505/264 +f 357/505/265 359/507/266 360/508/267 +f 356/513/255 361/514/255 359/515/255 +f 360/508/268 359/507/269 361/509/270 +f 361/509/271 356/511/272 355/516/273 +f 355/512/252 358/506/252 360/508/252 +f 363/522/255 364/513/255 337/514/255 +f 330/511/274 335/509/274 337/509/275 +f 333/507/276 331/505/276 363/505/277 +f 331/505/278 330/504/278 364/504/279 +f 329/512/245 330/504/245 332/506/245 +f 332/506/246 331/505/246 334/508/246 +f 335/509/247 333/507/247 337/509/249 +f 334/508/250 333/507/250 338/510/250 +f 329/516/251 338/510/251 330/511/251 +f 334/508/252 338/510/252 332/506/252 +f 339/512/253 340/504/253 342/506/253 +f 342/506/254 341/505/254 344/508/254 +f 341/522/255 340/513/255 343/515/255 +f 344/508/256 343/507/256 346/510/256 +f 346/510/257 345/509/257 339/516/257 +f 346/510/252 339/512/252 344/508/252 +f 347/523/252 348/517/252 350/519/252 +f 347/524/258 350/520/258 352/516/258 +f 349/525/259 353/508/259 350/520/259 +f 349/525/260 348/521/260 353/508/260 +f 347/526/261 352/512/261 348/521/261 +f 358/506/280 355/512/262 357/505/264 +f 358/506/281 357/505/265 360/508/267 +f 357/522/255 356/513/255 359/515/255 +f 362/510/282 360/508/268 361/509/270 +f 362/510/283 361/509/271 355/516/273 +f 362/510/252 355/512/252 360/508/252 +f 336/515/255 363/522/255 337/514/255 +f 364/511/284 330/511/274 337/509/275 +f 336/507/285 333/507/276 363/505/277 +f 363/505/286 331/505/278 364/504/279 +o body +v 0.795217 5.376135 -0.354718 +v 0.629208 5.376135 -0.193462 +v -2.342856 5.376135 -0.193462 +v -2.342856 5.376135 0.193462 +v 0.624788 5.373264 0.200239 +v 0.795217 5.376135 0.354718 +v 2.342856 5.376135 0.354718 +v 2.342856 5.376135 -0.354718 +v -1.965528 4.321319 -0.433690 +v -0.232339 4.321319 -0.433690 +v -0.232339 4.322378 0.433690 +v -1.964773 4.322378 0.433690 +v -0.232339 2.623865 0.503573 +v -0.232339 3.024528 0.503573 +v -0.232339 3.103445 0.433690 +v -0.232339 3.105076 -0.433690 +v -0.232339 3.026160 -0.503573 +v -0.232339 2.623865 -0.503573 +v -1.967963 3.218578 0.433690 +v -1.968281 3.218578 -0.433690 +v -2.342856 3.218578 -0.433690 +v -2.342856 4.685988 -0.433690 +v 2.342856 4.685988 -0.433690 +v 2.342856 3.103445 -0.433690 +v -2.342856 3.218578 0.433690 +v 2.342856 2.623865 0.503573 +v 2.342856 3.024528 0.503573 +v 2.342856 3.103445 0.433690 +v 2.342856 4.685988 0.433690 +v -2.342856 4.685988 0.433690 +v 2.342856 2.623865 -0.503573 +v 2.342856 3.024528 -0.503573 +v 0.629208 4.826993 -0.326173 +v -2.342856 4.826993 -0.326173 +v -2.342856 4.826993 0.326173 +v 0.795217 4.826993 -0.417555 +v -2.342856 4.826993 -0.417555 +v -2.342856 4.826993 0.417555 +v 0.795217 4.826993 0.417555 +v 0.629208 4.826993 0.326173 +vt 0.484321 0.387789 +vt 0.455873 0.481725 +vt 0.455873 0.360156 +vt 0.681071 0.205332 +vt 0.681071 0.308549 +vt 0.474912 0.308549 +vt 0.170020 0.082695 +vt 0.021386 0.082974 +vt 0.009411 0.000514 +vt 0.268814 0.181527 +vt 0.372031 0.181527 +vt 0.372031 0.312753 +vt 0.007780 0.874220 +vt 0.449066 0.811731 +vt 0.810725 0.874220 +vt 0.429921 0.308549 +vt 0.429921 0.205332 +vt 0.474495 0.205332 +vt 0.007780 0.589514 +vt 0.449066 0.589514 +vt 0.449066 0.520856 +vt 0.745936 0.811913 +vt 0.449066 0.811913 +vt 0.681071 0.197015 +vt 0.987517 0.197015 +vt 0.987517 0.316866 +vt 0.840368 0.598952 +vt 1.000977 0.516770 +vt 0.989002 0.598951 +vt 0.007780 0.520855 +vt 0.449066 0.603037 +vt 0.007780 0.603036 +vt 0.449066 0.589793 +vt 0.301431 0.898383 +vt 0.810725 0.898383 +vt 0.810725 0.992484 +vt 0.151598 0.378042 +vt 0.128856 0.472142 +vt 0.062553 0.472142 +vt 0.993614 0.349389 +vt 0.993614 0.492493 +vt 0.455873 0.492493 +vt 0.302188 0.991992 +vt 0.272983 0.898383 +vt 0.272983 0.992484 +vt 0.007780 0.992484 +vt 0.167257 0.378042 +vt 0.021388 0.353879 +vt 0.170022 0.353879 +vt 0.190670 0.360156 +vt 0.190670 0.481725 +vt 0.993614 0.387789 +vt 0.485078 0.455254 +vt 0.993614 0.454093 +vt 0.474822 0.205332 +vt 0.181995 0.000514 +vt 0.170020 0.291571 +vt 0.181995 0.069172 +vt 0.009411 0.069451 +vt 0.021386 0.291389 +vt 0.268814 0.312879 +vt 0.746066 0.811731 +vt 0.746537 0.622766 +vt 0.810725 0.622766 +vt 0.449066 0.603316 +vt 0.474533 0.308549 +vt 0.681071 0.316866 +vt 0.989002 0.870135 +vt 0.975470 0.988399 +vt 0.853901 0.988399 +vt 0.840368 0.870136 +vt 0.828393 0.585428 +vt 0.828393 0.516771 +vt 1.000977 0.585428 +vt 0.301431 0.992484 +vt 0.039812 0.378041 +vt 0.455873 0.349389 +vt 0.170022 0.102424 +vt 0.024152 0.378041 +vt 0.021388 0.102424 +vn -0.001800 1.000000 0.003500 +vn -0.005200 1.000000 0.001600 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -1.000000 0.001200 +vn -1.000000 -0.000000 0.000000 +vn 1.000000 -0.002700 -0.000600 +vn 1.000000 -0.002500 -0.000400 +vn 1.000000 -0.002700 -0.000700 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 -0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 -0.000000 0.000000 +vn 0.000000 0.663000 0.748700 +vn 0.000400 0.663000 -0.748700 +vn 0.000000 0.234900 -0.972000 +vn -0.001800 0.233700 0.972300 +vn 0.000000 0.224600 0.974400 +vn -0.000200 0.225900 0.974200 +vn -0.526900 0.115500 0.842100 +vn -0.479800 0.099700 0.871700 +vn -0.629500 0.150700 0.762300 +vn -0.648700 0.157400 -0.744600 +vn -0.479800 0.099700 -0.871700 +vn -0.533200 0.117700 -0.837700 +vn -0.000000 0.113700 -0.993500 +vn -0.000000 0.113700 0.993500 +vn 0.000900 1.000000 0.000600 +vn -0.013700 0.999900 0.006900 +vn 0.001000 1.000000 0.000000 +vn 1.000000 -0.002900 -0.000900 +vn -0.002000 0.234900 0.972000 +vn -0.664100 0.162800 0.729700 +vn -0.686500 0.170800 -0.706800 +s 1 +f 366/527/287 370/528/288 365/529/289 +f 374/530/290 375/531/290 376/532/290 +f 379/533/291 380/534/291 382/535/291 +f 383/536/292 384/537/293 373/538/294 +f 387/539/295 374/540/295 386/541/295 +f 389/542/296 385/543/296 384/544/296 +f 391/545/297 378/546/297 377/547/297 +f 394/541/297 376/548/297 375/549/297 +f 382/550/296 395/551/296 390/552/296 +f 392/553/298 395/554/298 388/555/298 +f 396/545/295 395/556/295 382/547/295 +f 379/557/299 378/546/299 391/545/299 +f 388/558/300 396/545/300 381/559/300 +f 397/560/301 398/561/301 367/562/301 +f 399/563/291 368/564/291 367/565/291 +f 401/566/289 402/567/289 403/568/289 +f 399/561/302 404/560/303 369/569/304 +f 404/560/305 403/570/306 370/571/307 +f 365/571/308 400/570/309 397/560/310 +f 400/570/311 372/572/311 387/539/311 +f 403/570/312 394/541/312 393/539/312 +f 402/573/291 386/574/291 394/575/291 +f 372/576/289 365/529/289 371/577/289 +f 366/527/287 367/578/313 369/579/314 +f 369/579/314 370/528/288 366/527/287 +f 367/578/313 368/580/315 369/579/314 +f 371/577/289 365/529/289 370/528/288 +f 373/581/290 374/530/290 376/532/290 +f 382/535/291 377/582/291 379/533/291 +f 379/533/291 375/583/291 380/534/291 +f 377/582/291 378/584/291 379/533/291 +f 380/534/291 381/585/291 382/535/291 +f 375/583/291 374/586/291 380/534/291 +f 376/587/316 383/536/292 373/538/294 +f 373/588/295 384/589/295 385/590/295 +f 387/539/295 388/558/295 374/540/295 +f 373/588/295 385/590/295 386/541/295 +f 388/558/295 380/591/295 374/540/295 +f 373/588/295 386/541/295 374/540/295 +f 383/592/296 389/542/296 384/544/296 +f 390/556/297 391/545/297 377/547/297 +f 375/549/297 379/557/297 392/558/297 +f 394/541/297 389/590/297 376/548/297 +f 375/549/297 392/558/297 393/539/297 +f 389/590/297 383/589/297 376/548/297 +f 375/549/297 393/539/297 394/541/297 +f 377/593/296 382/550/296 390/552/296 +f 388/555/298 387/594/298 392/553/298 +f 372/595/298 371/596/298 393/597/298 +f 392/553/298 391/598/298 390/599/298 +f 372/595/298 393/597/298 387/594/298 +f 395/554/298 396/600/298 388/555/298 +f 387/594/298 393/597/298 392/553/298 +f 392/553/298 390/599/298 395/554/298 +f 381/559/295 396/545/295 382/547/295 +f 392/558/299 379/557/299 391/545/299 +f 380/591/300 388/558/300 381/559/300 +f 366/601/301 397/560/301 367/562/301 +f 398/602/291 399/563/291 367/565/291 +f 400/603/289 401/566/289 403/568/289 +f 368/562/317 399/561/302 369/569/304 +f 369/569/318 404/560/305 370/571/307 +f 366/601/319 365/571/308 397/560/310 +f 386/541/311 401/561/311 400/570/311 +f 400/570/311 365/571/311 372/572/311 +f 387/539/311 386/541/311 400/570/311 +f 371/572/312 370/571/312 403/570/312 +f 403/570/312 402/561/312 394/541/312 +f 393/539/312 371/572/312 403/570/312 +f 389/604/291 394/575/291 386/574/291 +f 402/573/291 401/605/291 386/574/291 +f 386/574/291 385/606/291 389/604/291 +o chamber +v 2.759583 4.408674 -0.553030 +v 2.759583 4.653401 -0.411737 +v 3.723804 4.653401 -0.411737 +v 3.723804 4.408674 -0.553030 +v 2.759583 4.898128 -0.553030 +v 3.723804 4.898128 -0.553030 +v 2.759583 4.898128 -0.617516 +v 3.723804 4.898128 -0.617516 +v 2.341729 5.375706 0.433709 +v 4.149120 5.375706 0.433709 +v 4.150729 5.375706 -0.433690 +v 2.343338 5.375706 -0.433690 +v 2.343338 3.128466 -0.433690 +v 2.632140 4.281843 -0.854733 +v 2.632140 3.591664 -0.854733 +v 2.341729 3.128466 0.433709 +v 4.150729 3.128466 -0.433690 +v 4.149120 3.128466 0.433709 +v 2.759583 4.408674 -0.805914 +v 3.723804 4.408674 -0.805914 +v 3.861928 4.281843 -0.854733 +v 3.861928 3.591664 -0.854733 +v 3.732876 4.408674 0.553050 +v 3.732876 4.653401 0.411757 +v 2.768654 4.653401 0.411757 +v 2.768654 4.408674 0.553050 +v 3.732876 4.898128 0.553050 +v 2.768654 4.898128 0.553050 +v 3.732876 4.898128 0.617536 +v 2.768654 4.898128 0.617536 +v 3.860319 4.281843 0.854752 +v 3.860319 3.591664 0.854752 +v 3.732876 4.408674 0.805934 +v 2.768654 4.408674 0.805934 +v 2.630531 4.281843 0.854753 +v 2.630531 3.591664 0.854753 +v 2.740474 4.533714 -0.752029 +v 3.742913 4.533714 -0.752029 +v 3.742913 4.365829 -0.617191 +v 2.740474 4.365829 -0.617191 +v 3.742913 4.767260 -0.461243 +v 2.740474 4.767260 -0.461243 +v 3.742913 4.734430 -0.674055 +v 2.740474 4.734430 -0.674055 +v 3.742913 4.366174 0.617705 +v 2.740474 4.366174 0.617705 +v 3.742913 4.534652 0.751802 +v 2.740474 4.534652 0.751802 +v 3.742913 4.735022 0.672945 +v 2.740474 4.735022 0.672945 +v 3.742913 4.766915 0.459991 +v 2.740474 4.766915 0.459991 +vt 0.531250 0.005859 +vt 0.531250 0.505859 +vt 0.697917 0.505859 +vt 0.993279 0.798270 +vt 0.745002 0.798270 +vt 0.745002 0.735255 +vt 0.081260 0.743049 +vt 0.081260 0.991325 +vt 0.097864 0.991325 +vt 0.719126 0.991465 +vt 0.495780 0.991880 +vt 0.495780 0.526495 +vt 0.477411 0.000804 +vt 0.477411 0.579444 +vt 0.403047 0.297786 +vt 0.992564 0.583351 +vt 0.769218 0.583350 +vt 0.769218 0.004710 +vt 0.992564 0.004710 +vt 0.121956 0.330444 +vt 0.086390 0.297786 +vt 0.086390 0.120072 +vt 0.012027 0.000804 +vt 0.403047 0.120072 +vt 0.097864 0.743049 +vt 0.032749 0.991326 +vt 0.134246 0.664943 +vt 0.097864 0.601928 +vt 0.081260 0.727957 +vt 0.097864 0.727957 +vt 0.121956 0.456473 +vt 0.012027 0.579444 +vt 0.742666 0.798270 +vt 0.990943 0.798270 +vt 0.990943 0.735256 +vt 0.399272 0.993662 +vt 0.399272 0.745385 +vt 0.382668 0.745385 +vt 0.012441 0.000804 +vt 0.012441 0.579444 +vt 0.086804 0.297786 +vt 0.367896 0.330444 +vt 0.403461 0.297786 +vt 0.403461 0.120073 +vt 0.086804 0.120073 +vt 0.477825 0.000804 +vt 0.382668 0.993662 +vt 0.447783 0.745385 +vt 0.363885 0.664943 +vt 0.400266 0.601929 +vt 0.416871 0.727958 +vt 0.400266 0.727958 +vt 0.367896 0.456473 +vt 0.477825 0.579444 +vt 0.697917 0.005859 +vt 0.993279 0.735255 +vt 0.719126 0.526081 +vt 0.370232 0.456473 +vt 0.370232 0.330444 +vt 0.032750 0.743049 +vt 0.032750 0.601928 +vt 0.742666 0.735256 +vt 0.119619 0.456473 +vt 0.119619 0.330444 +vt 0.447783 0.993662 +vt 0.465381 0.601929 +vt 0.740082 0.866546 +vt 0.740082 0.823318 +vt 0.998200 0.823318 +vt 0.740082 0.926682 +vt 0.740082 0.918229 +vt 0.998200 0.918228 +vt 0.998200 0.866546 +vt 0.740081 0.823407 +vt 0.740081 0.866789 +vt 0.998200 0.866789 +vt 0.740081 0.918382 +vt 0.998200 0.918382 +vt 0.740081 0.926594 +vt 0.998200 0.926594 +vt 0.998200 0.926682 +vt 0.998200 0.823407 +vn 0.000000 0.500000 -0.866000 +vn 0.000000 -0.500000 -0.866000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.824600 -0.000000 -0.565600 +vn -1.000000 -0.000000 -0.001900 +vn 1.000000 0.000000 0.001900 +vn 0.000000 0.359200 -0.933300 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -0.672600 -0.740000 +vn 0.824700 0.000000 -0.565600 +vn 1.000000 -0.000000 0.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.500000 0.866000 +vn 0.000000 -0.500000 0.866000 +vn 0.824700 0.000000 0.565600 +vn 0.000000 0.359200 0.933300 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -0.672600 0.740000 +vn -0.824600 0.000000 0.565600 +vn -0.824700 0.000000 0.565600 +vn 0.000000 -0.152500 -0.988300 +vn 0.000000 -0.626200 -0.779700 +vn 0.000000 0.988300 -0.152500 +vn 0.000000 0.779700 -0.626200 +vn 0.000000 -0.622800 0.782400 +vn 0.000000 -0.148100 0.989000 +vn 0.000000 0.782400 0.622800 +vn 0.000000 0.989000 0.148100 +s 1 +f 406/607/320 407/608/320 408/609/320 +f 409/610/321 410/611/321 407/612/321 +f 411/613/322 412/614/322 410/615/322 +f 414/616/323 415/617/323 416/618/323 +f 417/619/324 416/620/324 418/621/324 +f 413/622/325 416/623/325 417/624/325 +f 417/618/322 421/617/322 422/616/322 +f 415/623/326 414/622/326 422/625/326 +f 424/626/327 425/627/327 418/621/327 +f 418/621/328 425/627/328 426/628/328 +f 421/629/329 417/619/329 419/630/329 +f 421/629/330 426/628/330 425/627/330 +f 405/631/323 408/615/323 424/632/323 +f 406/633/331 405/634/331 411/635/331 +f 407/633/332 410/636/332 412/635/332 +f 412/637/327 416/620/327 415/638/327 +f 428/607/333 429/608/333 430/609/333 +f 431/639/334 432/640/334 429/641/334 +f 433/642/322 434/643/322 432/644/322 +f 422/645/335 414/646/335 435/647/335 +f 438/648/336 439/649/336 435/647/336 +f 435/647/337 439/649/337 440/650/337 +f 422/645/338 436/651/338 440/650/338 +f 420/652/339 440/650/339 439/649/339 +f 427/653/323 430/644/323 438/654/323 +f 428/655/332 427/656/332 433/657/332 +f 429/655/331 432/658/331 434/657/331 +f 434/659/336 414/646/336 413/660/336 +f 405/661/320 406/607/320 408/609/320 +f 406/662/321 409/610/321 407/612/321 +f 409/631/322 411/613/322 410/615/322 +f 413/663/323 414/616/323 416/618/323 +f 419/630/324 417/619/324 418/621/324 +f 420/625/325 413/622/325 417/624/325 +f 420/663/322 417/618/322 422/616/322 +f 421/624/326 415/623/326 422/625/326 +f 418/621/327 416/620/327 411/664/327 +f 423/665/327 424/626/327 418/621/327 +f 418/621/327 411/664/327 423/665/327 +f 419/630/328 418/621/328 426/628/328 +f 426/628/329 421/629/329 419/630/329 +f 415/638/330 421/629/330 425/627/330 +f 423/666/323 405/631/323 424/632/323 +f 423/667/331 411/635/331 405/634/331 +f 409/636/331 406/633/331 411/635/331 +f 412/635/332 424/667/332 408/634/332 +f 408/634/332 407/633/332 412/635/332 +f 415/638/327 425/627/327 412/637/327 +f 412/637/327 411/664/327 416/620/327 +f 425/627/327 424/626/327 412/637/327 +f 427/661/333 428/607/333 430/609/333 +f 428/668/334 431/639/334 429/641/334 +f 431/653/322 433/642/322 432/644/322 +f 436/651/335 422/645/335 435/647/335 +f 435/647/336 414/646/336 433/669/336 +f 437/670/336 438/648/336 435/647/336 +f 435/647/336 433/669/336 437/670/336 +f 436/651/337 435/647/337 440/650/337 +f 420/652/338 422/645/338 440/650/338 +f 413/660/340 420/652/339 439/649/339 +f 437/671/323 427/653/323 438/654/323 +f 437/672/332 433/657/332 427/656/332 +f 431/658/332 428/655/332 433/657/332 +f 434/657/331 438/672/331 430/656/331 +f 430/656/331 429/655/331 434/657/331 +f 413/660/336 439/649/336 434/659/336 +f 434/659/336 433/669/336 414/646/336 +f 439/649/336 438/648/336 434/659/336 +f 442/673/341 443/674/342 444/675/342 +f 445/676/343 447/677/344 448/678/344 +f 447/677/344 442/673/341 441/679/341 +f 449/680/345 451/681/346 452/682/346 +f 451/681/346 453/683/347 454/684/347 +f 453/683/347 455/685/348 456/686/348 +f 441/679/341 442/673/341 444/675/342 +f 446/687/343 445/676/343 448/678/344 +f 448/678/344 447/677/344 441/679/341 +f 450/688/345 449/680/345 452/682/346 +f 452/682/346 451/681/346 454/684/347 +f 454/684/347 453/683/347 456/686/348 diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 41e5888a3e..9aa9eee374 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -124,6 +124,8 @@ "weapon.flamerReload": {"category": "player", "sounds": [{"name": "weapon/flamerReload", "stream": false}]}, "weapon.stop": {"category": "player", "sounds": ["weapon/stop1", "weapon/stop2"]}, "weapon.bonk": {"category": "player", "sounds": [{"name": "weapon/bonk", "stream": false}]}, + "weapon.hksShoot": {"category": "player", "sounds": ["weapon/hksShoot1", "weapon/hksShoot2", "weapon/hksShoot3"]}, + "weapon.glauncher": {"category": "player", "sounds": ["weapon/glauncher1", "weapon/glauncher2"]}, "weapon.reloadTurret": {"category": "player", "sounds": [{"name": "weapon/reloadTurret", "stream": false}]}, "weapon.switchmode1": {"category": "player", "sounds": [{"name": "weapon/switchmode1", "stream": false}]}, diff --git a/assets/hbm/sounds/weapon/glauncher1.ogg b/assets/hbm/sounds/weapon/glauncher1.ogg new file mode 100644 index 0000000000..cfb8d3abd7 Binary files /dev/null and b/assets/hbm/sounds/weapon/glauncher1.ogg differ diff --git a/assets/hbm/sounds/weapon/glauncher2.ogg b/assets/hbm/sounds/weapon/glauncher2.ogg new file mode 100644 index 0000000000..4429be8bcf Binary files /dev/null and b/assets/hbm/sounds/weapon/glauncher2.ogg differ diff --git a/assets/hbm/sounds/weapon/hksShoot1.ogg b/assets/hbm/sounds/weapon/hksShoot1.ogg new file mode 100644 index 0000000000..749cbc4022 Binary files /dev/null and b/assets/hbm/sounds/weapon/hksShoot1.ogg differ diff --git a/assets/hbm/sounds/weapon/hksShoot2.ogg b/assets/hbm/sounds/weapon/hksShoot2.ogg new file mode 100644 index 0000000000..c39fdd5ca8 Binary files /dev/null and b/assets/hbm/sounds/weapon/hksShoot2.ogg differ diff --git a/assets/hbm/sounds/weapon/hksShoot3.ogg b/assets/hbm/sounds/weapon/hksShoot3.ogg new file mode 100644 index 0000000000..4e611bc649 Binary files /dev/null and b/assets/hbm/sounds/weapon/hksShoot3.ogg differ diff --git a/assets/hbm/textures/entity/ModelGrenadeTraining.png b/assets/hbm/textures/entity/ModelGrenadeTraining.png new file mode 100644 index 0000000000..bac5fd09fa Binary files /dev/null and b/assets/hbm/textures/entity/ModelGrenadeTraining.png differ diff --git a/assets/hbm/textures/items/ammo_50bmg_ap.png b/assets/hbm/textures/items/ammo_50bmg_ap.png new file mode 100644 index 0000000000..d0e070a96b Binary files /dev/null and b/assets/hbm/textures/items/ammo_50bmg_ap.png differ diff --git a/assets/hbm/textures/items/ammo_556_ap.png b/assets/hbm/textures/items/ammo_556_ap.png new file mode 100644 index 0000000000..58c6e9436e Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_ap.png differ diff --git a/assets/hbm/textures/items/ammo_556_du.png b/assets/hbm/textures/items/ammo_556_du.png new file mode 100644 index 0000000000..b7f0f4da99 Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_du.png differ diff --git a/assets/hbm/textures/items/ammo_556_flechette.png b/assets/hbm/textures/items/ammo_556_flechette.png index decf6027fd..cbda4bb7cb 100644 Binary files a/assets/hbm/textures/items/ammo_556_flechette.png and b/assets/hbm/textures/items/ammo_556_flechette.png differ diff --git a/assets/hbm/textures/items/ammo_556_flechette_du.png b/assets/hbm/textures/items/ammo_556_flechette_du.png new file mode 100644 index 0000000000..bfefb1649b Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_flechette_du.png differ diff --git a/assets/hbm/textures/items/ammo_556_flechette_incendiary.png b/assets/hbm/textures/items/ammo_556_flechette_incendiary.png new file mode 100644 index 0000000000..2e1115e799 Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_flechette_incendiary.png differ diff --git a/assets/hbm/textures/items/ammo_556_flechette_phosphorus.png b/assets/hbm/textures/items/ammo_556_flechette_phosphorus.png new file mode 100644 index 0000000000..5330f17ca5 Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_flechette_phosphorus.png differ diff --git a/assets/hbm/textures/items/ammo_556_phosphorus.png b/assets/hbm/textures/items/ammo_556_phosphorus.png new file mode 100644 index 0000000000..7637beb63a Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_phosphorus.png differ diff --git a/assets/hbm/textures/items/ammo_556_star.png b/assets/hbm/textures/items/ammo_556_star.png new file mode 100644 index 0000000000..14d73a7575 Binary files /dev/null and b/assets/hbm/textures/items/ammo_556_star.png differ diff --git a/assets/hbm/textures/items/ammo_556_tracer.png b/assets/hbm/textures/items/ammo_556_tracer.png index aab4e6bbd3..7610456d6b 100644 Binary files a/assets/hbm/textures/items/ammo_556_tracer.png and b/assets/hbm/textures/items/ammo_556_tracer.png differ diff --git a/assets/hbm/textures/items/ammo_grenade_kampf.png b/assets/hbm/textures/items/ammo_grenade_kampf.png new file mode 100644 index 0000000000..0a2a1a1f10 Binary files /dev/null and b/assets/hbm/textures/items/ammo_grenade_kampf.png differ diff --git a/assets/hbm/textures/items/ammo_grenade_tracer.png b/assets/hbm/textures/items/ammo_grenade_tracer.png new file mode 100644 index 0000000000..265f2cda98 Binary files /dev/null and b/assets/hbm/textures/items/ammo_grenade_tracer.png differ diff --git a/assets/hbm/textures/items/assembly_556.png b/assets/hbm/textures/items/assembly_556.png new file mode 100644 index 0000000000..d54b686cdb Binary files /dev/null and b/assets/hbm/textures/items/assembly_556.png differ diff --git a/assets/hbm/textures/items/assembly_actionexpress.png b/assets/hbm/textures/items/assembly_actionexpress.png index d505a56f82..2bdec86910 100644 Binary files a/assets/hbm/textures/items/assembly_actionexpress.png and b/assets/hbm/textures/items/assembly_actionexpress.png differ diff --git a/assets/hbm/textures/items/assembly_calamity.png b/assets/hbm/textures/items/assembly_calamity.png index c2b6709b65..a794981967 100644 Binary files a/assets/hbm/textures/items/assembly_calamity.png and b/assets/hbm/textures/items/assembly_calamity.png differ diff --git a/assets/hbm/textures/items/assembly_desh.png b/assets/hbm/textures/items/assembly_desh.png index fd44063b0a..669416e06e 100644 Binary files a/assets/hbm/textures/items/assembly_desh.png and b/assets/hbm/textures/items/assembly_desh.png differ diff --git a/assets/hbm/textures/items/assembly_gold.png b/assets/hbm/textures/items/assembly_gold.png index 3ccdaccd0c..4b7f8cc002 100644 Binary files a/assets/hbm/textures/items/assembly_gold.png and b/assets/hbm/textures/items/assembly_gold.png differ diff --git a/assets/hbm/textures/items/assembly_iron.png b/assets/hbm/textures/items/assembly_iron.png index 15ad98f663..70c4983c99 100644 Binary files a/assets/hbm/textures/items/assembly_iron.png and b/assets/hbm/textures/items/assembly_iron.png differ diff --git a/assets/hbm/textures/items/assembly_lacunae.png b/assets/hbm/textures/items/assembly_lacunae.png index df7b519ba8..9883cc8c88 100644 Binary files a/assets/hbm/textures/items/assembly_lacunae.png and b/assets/hbm/textures/items/assembly_lacunae.png differ diff --git a/assets/hbm/textures/items/assembly_lead.png b/assets/hbm/textures/items/assembly_lead.png index d9077e55bd..f31459e53b 100644 Binary files a/assets/hbm/textures/items/assembly_lead.png and b/assets/hbm/textures/items/assembly_lead.png differ diff --git a/assets/hbm/textures/items/assembly_nightmare.png b/assets/hbm/textures/items/assembly_nightmare.png index 195d8644fa..0dc3faedd4 100644 Binary files a/assets/hbm/textures/items/assembly_nightmare.png and b/assets/hbm/textures/items/assembly_nightmare.png differ diff --git a/assets/hbm/textures/items/assembly_schrabidium.png b/assets/hbm/textures/items/assembly_schrabidium.png index a0be71f9a3..9c052fc10f 100644 Binary files a/assets/hbm/textures/items/assembly_schrabidium.png and b/assets/hbm/textures/items/assembly_schrabidium.png differ diff --git a/assets/hbm/textures/items/assembly_smg.png b/assets/hbm/textures/items/assembly_smg.png index eb4610c78f..47406609c8 100644 Binary files a/assets/hbm/textures/items/assembly_smg.png and b/assets/hbm/textures/items/assembly_smg.png differ diff --git a/assets/hbm/textures/items/assembly_steel.png b/assets/hbm/textures/items/assembly_steel.png index 79a4aef678..e603a98bad 100644 Binary files a/assets/hbm/textures/items/assembly_steel.png and b/assets/hbm/textures/items/assembly_steel.png differ diff --git a/assets/hbm/textures/items/assembly_uzi.png b/assets/hbm/textures/items/assembly_uzi.png index a1ba4dfb4e..b490a0facd 100644 Binary files a/assets/hbm/textures/items/assembly_uzi.png and b/assets/hbm/textures/items/assembly_uzi.png differ diff --git a/assets/hbm/textures/items/gun_pm_ammo.png b/assets/hbm/textures/items/gun_pm_ammo.png index e12c68a0e6..9309fa68f8 100644 Binary files a/assets/hbm/textures/items/gun_pm_ammo.png and b/assets/hbm/textures/items/gun_pm_ammo.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_barrel.png b/assets/hbm/textures/models/weapons/flechette_barrel.png new file mode 100644 index 0000000000..19b3d2872b Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_barrel.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_base.png b/assets/hbm/textures/models/weapons/flechette_base.png new file mode 100644 index 0000000000..5b1c03e7bc Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_base.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_body.png b/assets/hbm/textures/models/weapons/flechette_body.png new file mode 100644 index 0000000000..dfa1525d9e Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_body.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_chamber.png b/assets/hbm/textures/models/weapons/flechette_chamber.png new file mode 100644 index 0000000000..be140fef46 Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_chamber.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_drum.png b/assets/hbm/textures/models/weapons/flechette_drum.png new file mode 100644 index 0000000000..0655f39181 Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_drum.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_gren_tube.png b/assets/hbm/textures/models/weapons/flechette_gren_tube.png new file mode 100644 index 0000000000..cbf0e2bd0d Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_gren_tube.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_grenades.png b/assets/hbm/textures/models/weapons/flechette_grenades.png new file mode 100644 index 0000000000..06b0307d21 Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_grenades.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_pivot.png b/assets/hbm/textures/models/weapons/flechette_pivot.png new file mode 100644 index 0000000000..03f921e8d2 Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_pivot.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_stock.png b/assets/hbm/textures/models/weapons/flechette_stock.png new file mode 100644 index 0000000000..c395eabd20 Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_stock.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_top.png b/assets/hbm/textures/models/weapons/flechette_top.png new file mode 100644 index 0000000000..d2b1cc2b23 Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_top.png differ diff --git a/assets/hbm/textures/models/weapons/flechette_trigger.png b/assets/hbm/textures/models/weapons/flechette_trigger.png new file mode 100644 index 0000000000..4eb011a40d Binary files /dev/null and b/assets/hbm/textures/models/weapons/flechette_trigger.png differ diff --git a/com/hbm/blocks/ModBlocks.java b/com/hbm/blocks/ModBlocks.java index 229e5beebf..e98d6f3a84 100644 --- a/com/hbm/blocks/ModBlocks.java +++ b/com/hbm/blocks/ModBlocks.java @@ -4,6 +4,13 @@ import com.hbm.blocks.bomb.*; import com.hbm.blocks.fluid.*; import com.hbm.blocks.machine.*; +import com.hbm.blocks.network.BlockCable; +import com.hbm.blocks.network.BlockConveyor; +import com.hbm.blocks.network.BlockFluidDuct; +import com.hbm.blocks.network.BlockGasDuct; +import com.hbm.blocks.network.BlockOilDuct; +import com.hbm.blocks.network.BlockRFCable; +import com.hbm.blocks.network.CableSwitch; import com.hbm.blocks.test.*; import com.hbm.items.block.ItemBlockLore; import com.hbm.items.block.ItemTaintBlock; @@ -428,6 +435,8 @@ public static void mainRegistry() public static Block gas_duct; public static Block fluid_duct; + public static Block conveyor; + public static Block barrel_plastic; public static Block barrel_corroded; public static Block barrel_iron; @@ -1088,6 +1097,7 @@ private static void initializeBlock() { gas_duct_solid = new GasDuctSolid(Material.iron).setBlockName("gas_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_duct_solid"); gas_duct = new BlockGasDuct(Material.iron).setBlockName("gas_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_duct_icon"); fluid_duct = new BlockFluidDuct(Material.iron).setBlockName("fluid_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":fluid_duct_icon"); + conveyor = new BlockConveyor(Material.iron).setBlockName("conveyor").setHardness(0.0F).setResistance(2.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_reiium"); barrel_plastic = new BlockFluidBarrel(Material.iron, 12000).setBlockName("barrel_plastic").setStepSound(Block.soundTypeStone).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_plastic"); barrel_corroded = new BlockFluidBarrel(Material.iron, 6000).setBlockName("barrel_corroded").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_corroded"); @@ -1715,13 +1725,7 @@ private static void registerBlock() { GameRegistry.registerBlock(machine_minirtg, machine_minirtg.getUnlocalizedName()); GameRegistry.registerBlock(machine_spp_bottom, machine_spp_bottom.getUnlocalizedName()); GameRegistry.registerBlock(machine_spp_top, machine_spp_top.getUnlocalizedName()); - //GameRegistry.registerBlock(machine_rtg_red, machine_rtg_red.getUnlocalizedName()); - //GameRegistry.registerBlock(machine_rtg_orange, machine_rtg_orange.getUnlocalizedName()); - //GameRegistry.registerBlock(machine_rtg_yellow, machine_rtg_yellow.getUnlocalizedName()); - //GameRegistry.registerBlock(machine_rtg_green, machine_rtg_green.getUnlocalizedName()); - //GameRegistry.registerBlock(machine_rtg_cyan, machine_rtg_cyan.getUnlocalizedName()); - //GameRegistry.registerBlock(machine_rtg_blue, machine_rtg_blue.getUnlocalizedName()); - //GameRegistry.registerBlock(machine_rtg_purple, machine_rtg_purple.getUnlocalizedName()); + GameRegistry.registerBlock(red_cable, red_cable.getUnlocalizedName()); GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); GameRegistry.registerBlock(red_pylon, red_pylon.getUnlocalizedName()); @@ -1732,6 +1736,8 @@ private static void registerBlock() { GameRegistry.registerBlock(gas_duct, gas_duct.getUnlocalizedName()); GameRegistry.registerBlock(gas_duct_solid, gas_duct_solid.getUnlocalizedName()); GameRegistry.registerBlock(fluid_duct, fluid_duct.getUnlocalizedName()); + GameRegistry.registerBlock(conveyor, conveyor.getUnlocalizedName()); + GameRegistry.registerBlock(barrel_plastic, ItemBlockLore.class, barrel_plastic.getUnlocalizedName()); GameRegistry.registerBlock(barrel_corroded, ItemBlockLore.class, barrel_corroded.getUnlocalizedName()); GameRegistry.registerBlock(barrel_iron, ItemBlockLore.class, barrel_iron.getUnlocalizedName()); diff --git a/com/hbm/blocks/generic/BlockMush.java b/com/hbm/blocks/generic/BlockMush.java index 6fb3a00ff3..29101ee8d7 100644 --- a/com/hbm/blocks/generic/BlockMush.java +++ b/com/hbm/blocks/generic/BlockMush.java @@ -3,6 +3,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; +import com.hbm.main.MainRegistry; import com.hbm.world.feature.HugeMush; import net.minecraft.block.Block; @@ -124,7 +125,7 @@ protected void checkAndDropBlock(World p_149855_1_, int p_149855_2_, int p_14985 public void updateTick(World world, int x, int y, int z, Random rand) { this.checkAndDropBlock(world, x, y, z); - if(world.getBlock(x, y - 1, z) == ModBlocks.waste_earth && rand.nextInt(5) == 0) + if(MainRegistry.enableMycelium && world.getBlock(x, y - 1, z) == ModBlocks.waste_earth && rand.nextInt(5) == 0) { world.setBlock(x, y - 1, z, ModBlocks.waste_mycelium); } diff --git a/com/hbm/blocks/machine/GeigerCounter.java b/com/hbm/blocks/machine/GeigerCounter.java index 1daa1b1ee3..c36c4d92c1 100644 --- a/com/hbm/blocks/machine/GeigerCounter.java +++ b/com/hbm/blocks/machine/GeigerCounter.java @@ -1,6 +1,7 @@ package com.hbm.blocks.machine; import com.hbm.saveddata.RadiationSavedData; +import com.hbm.tileentity.machine.TileEntityGeiger; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; diff --git a/com/hbm/blocks/machine/BlockCable.java b/com/hbm/blocks/network/BlockCable.java similarity index 96% rename from com/hbm/blocks/machine/BlockCable.java rename to com/hbm/blocks/network/BlockCable.java index 949222d697..a06474449e 100644 --- a/com/hbm/blocks/machine/BlockCable.java +++ b/com/hbm/blocks/network/BlockCable.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.machine; +package com.hbm.blocks.network; import com.hbm.tileentity.conductor.TileEntityCable; diff --git a/com/hbm/blocks/network/BlockConveyor.java b/com/hbm/blocks/network/BlockConveyor.java new file mode 100644 index 0000000000..c6f546a08f --- /dev/null +++ b/com/hbm/blocks/network/BlockConveyor.java @@ -0,0 +1,92 @@ +package com.hbm.blocks.network; + +import com.hbm.entity.item.EntityMovingItem; +import com.hbm.tileentity.machine.TileEntityMachineEPress; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemStack; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.MathHelper; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; + +public class BlockConveyor extends Block { + + public BlockConveyor(Material p_i45394_1_) { + super(p_i45394_1_); + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + + if(!world.isRemote) { + + if(entity instanceof EntityItem && entity.ticksExisted > 10 && !entity.isDead) { + + EntityMovingItem item = new EntityMovingItem(world); + item.setItemStack(((EntityItem)entity).getEntityItem()); + item.setPositionAndRotation(x + 0.5, y + 0.125, z + 0.5, 0, 0); + world.spawnEntityInWorld(item); + + entity.setDead(); + } + } + } + + @Override + public int getRenderType() { + return 334086; + } + + @Override + public boolean isOpaqueCube() { + return false; + } + + @Override + public boolean renderAsNormalBlock() { + return false; + } + + @Override + public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { + this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); + } + + @Override + public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z) { + return null; + } + + @Override + public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase player, ItemStack itemStack) { + int i = MathHelper.floor_double(player.rotationYaw * 4.0F / 360.0F + 0.5D) & 3; + + if(i == 0) + { + world.setBlockMetadataWithNotify(x, y, z, 2, 2); + } + if(i == 1) + { + world.setBlockMetadataWithNotify(x, y, z, 5, 2); + } + if(i == 2) + { + world.setBlockMetadataWithNotify(x, y, z, 3, 2); + } + if(i == 3) + { + world.setBlockMetadataWithNotify(x, y, z, 4, 2); + } + + if(itemStack.hasDisplayName()) + { + ((TileEntityMachineEPress)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); + } + } + +} diff --git a/com/hbm/blocks/machine/BlockFluidDuct.java b/com/hbm/blocks/network/BlockFluidDuct.java similarity index 98% rename from com/hbm/blocks/machine/BlockFluidDuct.java rename to com/hbm/blocks/network/BlockFluidDuct.java index 5d2e43b659..37eee94f20 100644 --- a/com/hbm/blocks/machine/BlockFluidDuct.java +++ b/com/hbm/blocks/network/BlockFluidDuct.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.machine; +package com.hbm.blocks.network; import com.hbm.tileentity.conductor.TileEntityFluidDuct; diff --git a/com/hbm/blocks/machine/BlockGasDuct.java b/com/hbm/blocks/network/BlockGasDuct.java similarity index 98% rename from com/hbm/blocks/machine/BlockGasDuct.java rename to com/hbm/blocks/network/BlockGasDuct.java index 84a697a88c..f1b85be7d0 100644 --- a/com/hbm/blocks/machine/BlockGasDuct.java +++ b/com/hbm/blocks/network/BlockGasDuct.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.machine; +package com.hbm.blocks.network; import com.hbm.tileentity.conductor.TileEntityGasDuct; diff --git a/com/hbm/blocks/machine/BlockOilDuct.java b/com/hbm/blocks/network/BlockOilDuct.java similarity index 98% rename from com/hbm/blocks/machine/BlockOilDuct.java rename to com/hbm/blocks/network/BlockOilDuct.java index 9c5218b1e7..a1b9ca9bd3 100644 --- a/com/hbm/blocks/machine/BlockOilDuct.java +++ b/com/hbm/blocks/network/BlockOilDuct.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.machine; +package com.hbm.blocks.network; import com.hbm.tileentity.conductor.TileEntityOilDuct; diff --git a/com/hbm/blocks/machine/BlockRFCable.java b/com/hbm/blocks/network/BlockRFCable.java similarity index 98% rename from com/hbm/blocks/machine/BlockRFCable.java rename to com/hbm/blocks/network/BlockRFCable.java index ef77281d26..d087a33c41 100644 --- a/com/hbm/blocks/machine/BlockRFCable.java +++ b/com/hbm/blocks/network/BlockRFCable.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.machine; +package com.hbm.blocks.network; import com.hbm.tileentity.conductor.TileEntityRFDuct; diff --git a/com/hbm/blocks/machine/CableSwitch.java b/com/hbm/blocks/network/CableSwitch.java similarity index 98% rename from com/hbm/blocks/machine/CableSwitch.java rename to com/hbm/blocks/network/CableSwitch.java index 1c87eb5c83..6d8db470ef 100644 --- a/com/hbm/blocks/machine/CableSwitch.java +++ b/com/hbm/blocks/network/CableSwitch.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.machine; +package com.hbm.blocks.network; import com.hbm.lib.RefStrings; import com.hbm.tileentity.conductor.TileEntityCableSwitch; diff --git a/com/hbm/entity/item/EntityMovingItem.java b/com/hbm/entity/item/EntityMovingItem.java new file mode 100644 index 0000000000..b2d318bd44 --- /dev/null +++ b/com/hbm/entity/item/EntityMovingItem.java @@ -0,0 +1,142 @@ +package com.hbm.entity.item; + +import com.hbm.blocks.ModBlocks; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class EntityMovingItem extends Entity { + + public EntityMovingItem(World p_i1582_1_) { + super(p_i1582_1_); + this.setSize(0.5F, 0.25F); + this.noClip = true; + } + + public void setItemStack(ItemStack stack) { + + this.getDataWatcher().updateObject(10, stack); + this.getDataWatcher().setObjectWatched(10); + } + + public ItemStack getItemStack() { + + ItemStack stack = this.getDataWatcher().getWatchableObjectItemStack(10); + return stack == null ? new ItemStack(Blocks.stone) : stack; + } + + public boolean canBeCollidedWith() { + return true; + } + + public boolean interactFirst(EntityPlayer player) { + + if(!worldObj.isRemote && player.inventory.addItemStackToInventory(this.getItemStack().copy())) { + this.setDead(); + } + + return false; + } + + public boolean attackEntityFrom(DamageSource source, float amount) { + + if(!worldObj.isRemote) { + worldObj.spawnEntityInWorld(new EntityItem(worldObj, posX, posY, posZ, this.getItemStack())); + this.setDead(); + } + return true; + } + + public boolean canAttackWithItem() { + return true; + } + + public boolean hitByEntity(Entity attacker) { + + if(attacker instanceof EntityPlayer) { + } + + this.setDead(); + + return false; + } + + protected boolean canTriggerWalking() { + return true; + } + + private int schedule = 0; + + public void onUpdate() { + + if(!worldObj.isRemote) { + + if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)) != ModBlocks.conveyor) { + this.setDead(); + worldObj.spawnEntityInWorld(new EntityItem(worldObj, posX, posY, posZ, this.getItemStack())); + return; + } + } + + if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ)) == ModBlocks.conveyor) { + + if(schedule <= 0) { + ForgeDirection dir = ForgeDirection.getOrientation(worldObj.getBlockMetadata((int)Math.floor(posX), (int)Math.floor(posY), (int)Math.floor(posZ))); + + if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) + 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY >= 0) { + dir = ForgeDirection.DOWN; + } + + if(worldObj.getBlock((int)Math.floor(posX), (int)Math.floor(posY) - 1, (int)Math.floor(posZ)) == ModBlocks.conveyor && motionY <= 0) { + dir = ForgeDirection.UP; + } + + double speed = 0.1; + + schedule = (int) (1 / speed); + motionX = -speed * dir.offsetX; + motionY = -speed * dir.offsetY; + motionZ = -speed * dir.offsetZ; + } + + this.moveEntity(motionX, motionY, motionZ); + schedule--; + } + } + + @Override + protected void entityInit() { + this.getDataWatcher().addObjectByDataType(10, 5); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + + NBTTagCompound compound = nbt.getCompoundTag("Item"); + this.setItemStack(ItemStack.loadItemStackFromNBT(compound)); + + ItemStack stack = getDataWatcher().getWatchableObjectItemStack(10); + + schedule = nbt.getInteger("schedule"); + + if (stack == null || stack.stackSize <= 0) + this.setDead(); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + + if (this.getItemStack() != null) + nbt.setTag("Item", this.getItemStack().writeToNBT(new NBTTagCompound())); + + nbt.setInteger("schedule", schedule); + } + +} diff --git a/com/hbm/entity/missile/EntityMissileAntiBallistic.java b/com/hbm/entity/missile/EntityMissileAntiBallistic.java index 3c97294bc9..e5b1f04c4f 100644 --- a/com/hbm/entity/missile/EntityMissileAntiBallistic.java +++ b/com/hbm/entity/missile/EntityMissileAntiBallistic.java @@ -57,7 +57,7 @@ public void onUpdate() { List list = worldObj.getEntitiesWithinAABBExcludingEntity(null, AxisAlignedBB.getBoundingBox(posX - 5, posY - 5, posZ - 5, posX + 5, posY + 5, posZ + 5)); for(Entity e : list) { - if(e instanceof EntityMissileBaseAdvanced) { + if(e instanceof EntityMissileBaseAdvanced || e instanceof EntityMissileCustom) { ExplosionLarge.explode(worldObj, posX, posY, posZ, 15F, true, false, true); this.setDead(); return; @@ -113,7 +113,7 @@ private void targetMissile() { double closest = 1000D; for(Entity e : list) { - if(e instanceof EntityMissileBaseAdvanced) { + if(e instanceof EntityMissileBaseAdvanced || e instanceof EntityMissileCustom) { double dis = Math.sqrt(Math.pow(e.posX - posX, 2) + Math.pow(e.posY - posY, 2) + Math.pow(e.posZ - posZ, 2)); if(dis < closest) { diff --git a/com/hbm/entity/projectile/EntityBulletBase.java b/com/hbm/entity/projectile/EntityBulletBase.java index 0c8ea5f796..ad1a86e2b4 100644 --- a/com/hbm/entity/projectile/EntityBulletBase.java +++ b/com/hbm/entity/projectile/EntityBulletBase.java @@ -151,6 +151,11 @@ public void onUpdate() { if(config == null) config = BulletConfigSyncingUtil.pullConfig(dataWatcher.getWatchableObjectInt(18)); + if(config.maxAge == 0) { + this.setDead(); + return; + } + if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { float f = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); diff --git a/com/hbm/handler/BulletConfigSyncingUtil.java b/com/hbm/handler/BulletConfigSyncingUtil.java index 998ce12b1b..e97687de02 100644 --- a/com/hbm/handler/BulletConfigSyncingUtil.java +++ b/com/hbm/handler/BulletConfigSyncingUtil.java @@ -55,6 +55,8 @@ public class BulletConfigSyncingUtil { public static int GRENADE_FINNED = i++; public static int GRENADE_NUCLEAR = i++; public static int GRENADE_PHOSPHORUS = i++; + public static int GRENADE_TRACER = i++; + public static int GRENADE_KAMPF = i++; public static int G12_NORMAL = i++; public static int G12_INCENDIARY = i++; @@ -85,6 +87,7 @@ public class BulletConfigSyncingUtil { public static int BMG50_NORMAL = i++; public static int BMG50_INCENDIARY = i++; public static int BMG50_EXPLOSIVE = i++; + public static int BMG50_AP = i++; public static int BMG50_DU = i++; public static int BMG50_STAR = i++; public static int BMG50_PHOSPHORUS = i++; @@ -108,6 +111,7 @@ public class BulletConfigSyncingUtil { public static int G4_EXPLOSIVE = i++; public static int SPECIAL_OSIPR = i++; + public static int SPECIAL_OSIPR_CHARGED = i++; public static int SPECIAL_GAUSS = i++; public static int SPECIAL_GAUSS_CHARGED = i++; public static int SPECIAL_EMP = i++; @@ -117,6 +121,19 @@ public class BulletConfigSyncingUtil { public static int FLAMER_WP = i++; public static int FLAMER_GAS = i++; + public static int R556_NORMAL = i++; + public static int R556_GOLD = i++; + public static int R556_PHOSPHORUS = i++; + public static int R556_AP = i++; + public static int R556_DU = i++; + public static int R556_STAR = i++; + public static int R556_TRACER = i++; + public static int R556_FLECHETTE = i++; + public static int R556_FLECHETTE_INCENDIARY = i++; + public static int R556_FLECHETTE_PHOSPHORUS = i++; + public static int R556_FLECHETTE_DU = i++; + public static int R556_K = i++; + public static int G20_NORMAL_FIRE = i++; public static int G20_SHRAPNEL_FIRE = i++; public static int G20_SLUG_FIRE = i++; @@ -177,6 +194,8 @@ public static void loadConfigsForSync() { configSet.put(GRENADE_CONCUSSION, GunGrenadeFactory.getGrenadeConcussionConfig()); configSet.put(GRENADE_FINNED, GunGrenadeFactory.getGrenadeFinnedConfig()); configSet.put(GRENADE_NUCLEAR, GunGrenadeFactory.getGrenadeNuclearConfig()); + configSet.put(GRENADE_TRACER, GunGrenadeFactory.getGrenadeTracerConfig()); + configSet.put(GRENADE_KAMPF, GunGrenadeFactory.getGrenadeKampfConfig()); configSet.put(G12_NORMAL, Gun12GaugeFactory.get12GaugeConfig()); configSet.put(G12_INCENDIARY, Gun12GaugeFactory.get12GaugeFireConfig()); @@ -208,6 +227,7 @@ public static void loadConfigsForSync() { configSet.put(BMG50_INCENDIARY, Gun50BMGFactory.get50BMGFireConfig()); configSet.put(BMG50_PHOSPHORUS, Gun50BMGFactory.get50BMGPhosphorusConfig()); configSet.put(BMG50_EXPLOSIVE, Gun50BMGFactory.get50BMGExplosiveConfig()); + configSet.put(BMG50_AP, Gun50BMGFactory.get50BMGAPConfig()); configSet.put(BMG50_DU, Gun50BMGFactory.get50BMGDUConfig()); configSet.put(BMG50_STAR, Gun50BMGFactory.get50BMGStarConfig()); @@ -230,6 +250,7 @@ public static void loadConfigsForSync() { configSet.put(G4_EXPLOSIVE, Gun4GaugeFactory.get4GaugeExplosiveConfig()); configSet.put(SPECIAL_OSIPR, GunOSIPRFactory.getPulseConfig()); + configSet.put(SPECIAL_OSIPR_CHARGED, GunOSIPRFactory.getPulseChargedConfig()); configSet.put(SPECIAL_GAUSS, GunGaussFactory.getGaussConfig()); configSet.put(SPECIAL_GAUSS_CHARGED, GunGaussFactory.getAltConfig()); configSet.put(SPECIAL_EMP, GunEnergyFactory.getOrbusConfig()); @@ -238,6 +259,19 @@ public static void loadConfigsForSync() { configSet.put(FLAMER_NAPALM, GunEnergyFactory.getNapalmConfig()); configSet.put(FLAMER_WP, GunEnergyFactory.getPhosphorusConfig()); configSet.put(FLAMER_GAS, GunEnergyFactory.getGasConfig()); + + configSet.put(R556_NORMAL, Gun556mmFactory.get556Config()); + configSet.put(R556_GOLD, Gun556mmFactory.get556GoldConfig()); + configSet.put(R556_PHOSPHORUS, Gun556mmFactory.get556PhosphorusConfig()); + configSet.put(R556_AP, Gun556mmFactory.get556APConfig()); + configSet.put(R556_DU, Gun556mmFactory.get556DUConfig()); + configSet.put(R556_STAR, Gun556mmFactory.get556StarConfig()); + configSet.put(R556_TRACER, Gun556mmFactory.get556TracerConfig()); + configSet.put(R556_FLECHETTE, Gun556mmFactory.get556FlechetteConfig()); + configSet.put(R556_FLECHETTE_INCENDIARY, Gun556mmFactory.get556FlechetteIncendiaryConfig()); + configSet.put(R556_FLECHETTE_PHOSPHORUS, Gun556mmFactory.get556FlechettePhosphorusConfig()); + configSet.put(R556_FLECHETTE_DU, Gun556mmFactory.get556FlechetteDUConfig()); + configSet.put(R556_K, Gun556mmFactory.get556KConfig()); configSet.put(G20_NORMAL_FIRE, Gun20GaugeFactory.get20GaugeConfig().setToFire(3)); configSet.put(G20_SHRAPNEL_FIRE, Gun20GaugeFactory.get20GaugeShrapnelConfig().setToFire(3)); diff --git a/com/hbm/handler/GunConfiguration.java b/com/hbm/handler/GunConfiguration.java index 2c4ce4cd6e..8688e0a666 100644 --- a/com/hbm/handler/GunConfiguration.java +++ b/com/hbm/handler/GunConfiguration.java @@ -62,7 +62,7 @@ public class GunConfiguration { public List comment = new ArrayList(); //bullet configs for main and alt fire - public List config; + public List config = new ArrayList(); //crosshair public Crosshair crosshair; diff --git a/com/hbm/handler/ToolAbility.java b/com/hbm/handler/ToolAbility.java index 5579df476c..457ee7d0c9 100644 --- a/com/hbm/handler/ToolAbility.java +++ b/com/hbm/handler/ToolAbility.java @@ -9,6 +9,7 @@ import com.hbm.inventory.MachineRecipes; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemToolAbility; +import com.hbm.main.MainRegistry; import net.minecraft.block.Block; import net.minecraft.client.resources.I18n; @@ -39,6 +40,13 @@ public RecursionAbility(int radius) { @Override public void onDig(World world, int x, int y, int z, EntityPlayer player, Block block, int meta, ItemToolAbility tool) { + Block b = world.getBlock(x, y, z); + + if(b == Blocks.stone && !MainRegistry.recursiveStone) + return; + if(b == Blocks.netherrack && !MainRegistry.recursiveNetherrack) + return; + List indices = Arrays.asList(new Integer[] {0, 1, 2, 3, 4, 5}); Collections.shuffle(indices); @@ -46,21 +54,26 @@ public void onDig(World world, int x, int y, int z, EntityPlayer player, Block b for(Integer i : indices) { switch(i) { - case 0: breakExtra(world, x + 1, y, z, x, y, z, player, tool); break; - case 1: breakExtra(world, x - 1, y, z, x, y, z, player, tool); break; - case 2: breakExtra(world, x, y + 1, z, x, y, z, player, tool); break; - case 3: breakExtra(world, x, y - 1, z, x, y, z, player, tool); break; - case 4: breakExtra(world, x, y, z + 1, x, y, z, player, tool); break; - case 5: breakExtra(world, x, y, z - 1, x, y, z, player, tool); break; + case 0: breakExtra(world, x + 1, y, z, x, y, z, player, tool, 0); break; + case 1: breakExtra(world, x - 1, y, z, x, y, z, player, tool, 0); break; + case 2: breakExtra(world, x, y + 1, z, x, y, z, player, tool, 0); break; + case 3: breakExtra(world, x, y - 1, z, x, y, z, player, tool, 0); break; + case 4: breakExtra(world, x, y, z + 1, x, y, z, player, tool, 0); break; + case 5: breakExtra(world, x, y, z - 1, x, y, z, player, tool, 0); break; } } } - private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, ItemToolAbility tool) { + private void breakExtra(World world, int x, int y, int z, int refX, int refY, int refZ, EntityPlayer player, ItemToolAbility tool, int depth) { if(pos.contains(new ThreeInts(x, y, z))) return; + depth += 1; + + if(depth > MainRegistry.recursionDepth) + return; + pos.add(new ThreeInts(x, y, z)); //don't lose the ref block just yet @@ -91,12 +104,12 @@ private void breakExtra(World world, int x, int y, int z, int refX, int refY, in for(Integer i : indices) { switch(i) { - case 0: breakExtra(world, x + 1, y, z, refX, refY, refZ, player, tool); break; - case 1: breakExtra(world, x - 1, y, z, refX, refY, refZ, player, tool); break; - case 2: breakExtra(world, x, y + 1, z, refX, refY, refZ, player, tool); break; - case 3: breakExtra(world, x, y - 1, z, refX, refY, refZ, player, tool); break; - case 4: breakExtra(world, x, y, z + 1, refX, refY, refZ, player, tool); break; - case 5: breakExtra(world, x, y, z - 1, refX, refY, refZ, player, tool); break; + case 0: breakExtra(world, x + 1, y, z, refX, refY, refZ, player, tool, depth); break; + case 1: breakExtra(world, x - 1, y, z, refX, refY, refZ, player, tool, depth); break; + case 2: breakExtra(world, x, y + 1, z, refX, refY, refZ, player, tool, depth); break; + case 3: breakExtra(world, x, y - 1, z, refX, refY, refZ, player, tool, depth); break; + case 4: breakExtra(world, x, y, z + 1, refX, refY, refZ, player, tool, depth); break; + case 5: breakExtra(world, x, y, z - 1, refX, refY, refZ, player, tool, depth); break; } } } diff --git a/com/hbm/handler/guncfg/BulletConfigFactory.java b/com/hbm/handler/guncfg/BulletConfigFactory.java index 8d9be91861..081bc3233f 100644 --- a/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -152,6 +152,7 @@ public static BulletConfiguration standardGrenadeConfig() { bullet.explosive = 2.5F; bullet.style = BulletConfiguration.STYLE_GRENADE; bullet.plink = BulletConfiguration.PLINK_GRENADE; + bullet.vPFX = "smoke"; return bullet; } diff --git a/com/hbm/handler/guncfg/Gun50BMGFactory.java b/com/hbm/handler/guncfg/Gun50BMGFactory.java index af9bd2530e..fc961c735f 100644 --- a/com/hbm/handler/guncfg/Gun50BMGFactory.java +++ b/com/hbm/handler/guncfg/Gun50BMGFactory.java @@ -50,6 +50,7 @@ public static GunConfiguration getCalamityConfig() { config.config.add(BulletConfigSyncingUtil.BMG50_INCENDIARY); config.config.add(BulletConfigSyncingUtil.BMG50_PHOSPHORUS); config.config.add(BulletConfigSyncingUtil.BMG50_EXPLOSIVE); + config.config.add(BulletConfigSyncingUtil.BMG50_AP); config.config.add(BulletConfigSyncingUtil.BMG50_DU); config.config.add(BulletConfigSyncingUtil.BMG50_STAR); @@ -86,6 +87,7 @@ public static GunConfiguration getSaddleConfig() { config.config.add(BulletConfigSyncingUtil.BMG50_INCENDIARY); config.config.add(BulletConfigSyncingUtil.BMG50_PHOSPHORUS); config.config.add(BulletConfigSyncingUtil.BMG50_EXPLOSIVE); + config.config.add(BulletConfigSyncingUtil.BMG50_AP); config.config.add(BulletConfigSyncingUtil.BMG50_DU); config.config.add(BulletConfigSyncingUtil.BMG50_STAR); @@ -168,14 +170,28 @@ public static BulletConfiguration get50BMGExplosiveConfig() { return bullet; } + public static BulletConfiguration get50BMGAPConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + + bullet.ammo = ModItems.ammo_50bmg_ap; + bullet.spread *= inaccuracy; + bullet.dmgMin = 30; + bullet.dmgMax = 25; + bullet.wear = 15; + bullet.leadChance = 10; + + return bullet; + } + public static BulletConfiguration get50BMGDUConfig() { BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); bullet.ammo = ModItems.ammo_50bmg_du; bullet.spread *= inaccuracy; - bullet.dmgMin = 25; - bullet.dmgMax = 35; + bullet.dmgMin = 40; + bullet.dmgMax = 45; bullet.wear = 25; bullet.leadChance = 50; diff --git a/com/hbm/handler/guncfg/Gun556mmFactory.java b/com/hbm/handler/guncfg/Gun556mmFactory.java new file mode 100644 index 0000000000..984746ccab --- /dev/null +++ b/com/hbm/handler/guncfg/Gun556mmFactory.java @@ -0,0 +1,329 @@ +package com.hbm.handler.guncfg; + +import java.util.ArrayList; + +import com.hbm.entity.projectile.EntityBulletBase; +import com.hbm.handler.BulletConfigSyncingUtil; +import com.hbm.handler.BulletConfiguration; +import com.hbm.handler.GunConfiguration; +import com.hbm.interfaces.IBulletImpactBehavior; +import com.hbm.items.ModItems; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.potion.HbmPotion; +import com.hbm.render.util.RenderScreenOverlay.Crosshair; + +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.PotionEffect; + +public class Gun556mmFactory { + + public static GunConfiguration getEuphieConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 2; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.hasReloadAnim = false; + config.hasFiringAnim = false; + config.hasSpinup = false; + config.hasSpindown = false; + config.hasSights = false; + config.reloadDuration = 20; + config.firingDuration = 0; + config.ammoCap = 40; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_BOX; + config.durability = 10000; + config.reloadSound = GunConfiguration.RSOUND_MAG; + config.firingSound = "hbm:weapon.hksShoot"; + config.reloadSoundEnd = false; + + config.name = "Britannian Standard Issue Assault Rifle"; + config.manufacturer = "BAE Systems plc"; + + config.comment.add("Why is this gun so sticky?"); + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.R556_NORMAL); + config.config.add(BulletConfigSyncingUtil.R556_GOLD); + config.config.add(BulletConfigSyncingUtil.R556_TRACER); + config.config.add(BulletConfigSyncingUtil.R556_PHOSPHORUS); + config.config.add(BulletConfigSyncingUtil.R556_AP); + config.config.add(BulletConfigSyncingUtil.R556_DU); + config.config.add(BulletConfigSyncingUtil.R556_STAR); + config.config.add(BulletConfigSyncingUtil.R556_K); + + return config; + } + + public static GunConfiguration getSPIWConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 3; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_AUTO; + config.hasReloadAnim = false; + config.hasFiringAnim = false; + config.hasSpinup = false; + config.hasSpindown = false; + config.hasSights = true; + config.reloadDuration = 25; + config.firingDuration = 0; + config.ammoCap = 20; + config.reloadType = GunConfiguration.RELOAD_FULL; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_BOX; + config.durability = 7000; + config.reloadSound = GunConfiguration.RSOUND_MAG; + config.firingSound = "hbm:weapon.hksShoot"; + config.reloadSoundEnd = false; + + config.name = "H&R SPIW"; + config.manufacturer = "Harrington & Richardson"; + + config.comment.add("Launch some flechettes in the breeze"); + config.comment.add("Find his arms nailed to the trees"); + config.comment.add("Napalm sticks to kids"); + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE); + config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE_INCENDIARY); + config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE_PHOSPHORUS); + config.config.add(BulletConfigSyncingUtil.R556_FLECHETTE_DU); + config.config.add(BulletConfigSyncingUtil.R556_K); + + return config; + } + + public static GunConfiguration getGLauncherConfig() { + + GunConfiguration config = new GunConfiguration(); + + config.rateOfFire = 60; + config.roundsPerCycle = 1; + config.gunMode = GunConfiguration.MODE_NORMAL; + config.firingMode = GunConfiguration.FIRE_MANUAL; + config.hasReloadAnim = false; + config.hasFiringAnim = false; + config.hasSpinup = false; + config.hasSpindown = false; + config.hasSights = true; + config.reloadDuration = 40; + config.firingDuration = 0; + config.ammoCap = 0; + config.reloadType = GunConfiguration.RELOAD_NONE; + config.allowsInfinity = true; + config.crosshair = Crosshair.L_CIRCUMFLEX; + config.firingSound = "hbm:weapon.glauncher"; + config.reloadSound = GunConfiguration.RSOUND_GRENADE; + config.reloadSoundEnd = false; + + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.GRENADE_NORMAL); + config.config.add(BulletConfigSyncingUtil.GRENADE_HE); + config.config.add(BulletConfigSyncingUtil.GRENADE_INCENDIARY); + config.config.add(BulletConfigSyncingUtil.GRENADE_PHOSPHORUS); + config.config.add(BulletConfigSyncingUtil.GRENADE_CHEMICAL); + config.config.add(BulletConfigSyncingUtil.GRENADE_CONCUSSION); + config.config.add(BulletConfigSyncingUtil.GRENADE_FINNED); + config.config.add(BulletConfigSyncingUtil.GRENADE_SLEEK); + config.config.add(BulletConfigSyncingUtil.GRENADE_NUCLEAR); + config.config.add(BulletConfigSyncingUtil.GRENADE_TRACER); + config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); + + return config; + } + + static float inaccuracy = 2.5F; + public static BulletConfiguration get556Config() { + + BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + + bullet.ammo = ModItems.ammo_556; + bullet.spread *= inaccuracy; + bullet.dmgMin = 2; + bullet.dmgMax = 4; + + return bullet; + } + + public static BulletConfiguration get556GoldConfig() { + + BulletConfiguration bullet = get556Config(); + + bullet.ammo = ModItems.ammo_566_gold; + bullet.spread = 0.0F; + + return bullet; + } + + public static BulletConfiguration get556PhosphorusConfig() { + + BulletConfiguration bullet = get556Config(); + + bullet.ammo = ModItems.ammo_556_phosphorus; + bullet.wear = 15; + bullet.incendiary = 5; + bullet.doesPenetrate = false; + + PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); + eff.getCurativeItems().clear(); + bullet.effects = new ArrayList(); + bullet.effects.add(new PotionEffect(eff)); + + bullet.bImpact = new IBulletImpactBehavior() { + + @Override + public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setString("mode", "flame"); + data.setInteger("count", 15); + data.setDouble("motion", 0.05D); + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); + } + }; + + return bullet; + } + + public static BulletConfiguration get556APConfig() { + + BulletConfiguration bullet = get556Config(); + + bullet.ammo = ModItems.ammo_556_ap; + bullet.dmgMin = 4; + bullet.dmgMax = 6; + bullet.wear = 15; + bullet.leadChance = 10; + + return bullet; + } + + public static BulletConfiguration get556DUConfig() { + + BulletConfiguration bullet = get556Config(); + + bullet.ammo = ModItems.ammo_556_du; + bullet.dmgMin = 8; + bullet.dmgMax = 10; + bullet.wear = 25; + bullet.leadChance = 50; + + return bullet; + } + + public static BulletConfiguration get556StarConfig() { + + BulletConfiguration bullet = get556Config(); + + bullet.ammo = ModItems.ammo_556_star; + bullet.dmgMin = 15; + bullet.dmgMax = 20; + bullet.wear = 25; + bullet.leadChance = 100; + + return bullet; + } + + public static BulletConfiguration get556TracerConfig() { + + BulletConfiguration bullet = get556Config(); + + bullet.ammo = ModItems.ammo_556_tracer; + bullet.vPFX = "reddust"; + + return bullet; + } + + public static BulletConfiguration get556FlechetteConfig() { + + BulletConfiguration bullet = get556Config(); + + bullet.ammo = ModItems.ammo_556_flechette; + bullet.dmgMin = 6; + bullet.dmgMax = 8; + bullet.HBRC = 2; + bullet.LBRC = 95; + bullet.wear = 15; + bullet.style = BulletConfiguration.STYLE_FLECHETTE; + bullet.doesPenetrate = false; + + return bullet; + } + + public static BulletConfiguration get556FlechetteIncendiaryConfig() { + + BulletConfiguration bullet = get556FlechetteConfig(); + + bullet.ammo = ModItems.ammo_556_flechette_incendiary; + bullet.incendiary = 5; + + return bullet; + } + + public static BulletConfiguration get556FlechettePhosphorusConfig() { + + BulletConfiguration bullet = get556FlechetteConfig(); + + bullet.ammo = ModItems.ammo_556_flechette_phosphorus; + bullet.incendiary = 5; + + PotionEffect eff = new PotionEffect(HbmPotion.phosphorus.id, 20 * 20, 0, true); + eff.getCurativeItems().clear(); + bullet.effects = new ArrayList(); + bullet.effects.add(new PotionEffect(eff)); + + bullet.bImpact = new IBulletImpactBehavior() { + + @Override + public void behaveBlockHit(EntityBulletBase bullet, int x, int y, int z) { + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "vanillaburst"); + data.setString("mode", "flame"); + data.setInteger("count", 15); + data.setDouble("motion", 0.05D); + + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, bullet.posX, bullet.posY, bullet.posZ), new TargetPoint(bullet.dimension, bullet.posX, bullet.posY, bullet.posZ, 50)); + } + }; + + return bullet; + } + + public static BulletConfiguration get556FlechetteDUConfig() { + + BulletConfiguration bullet = get556FlechetteConfig(); + + bullet.ammo = ModItems.ammo_556_flechette_du; + bullet.dmgMin = 12; + bullet.dmgMax = 16; + bullet.wear = 25; + bullet.leadChance = 50; + bullet.doesPenetrate = true; + + return bullet; + } + + public static BulletConfiguration get556KConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + + bullet.ammo = ModItems.ammo_556_k; + bullet.dmgMin = 0; + bullet.dmgMax = 0; + bullet.maxAge = 0; + + return bullet; + } +} diff --git a/com/hbm/handler/guncfg/GunGaussFactory.java b/com/hbm/handler/guncfg/GunGaussFactory.java index 1a11dd8b97..d71a120e29 100644 --- a/com/hbm/handler/guncfg/GunGaussFactory.java +++ b/com/hbm/handler/guncfg/GunGaussFactory.java @@ -47,11 +47,10 @@ public static GunConfiguration getChargedConfig() { config.rateOfFire = 10; config.roundsPerCycle = 1; config.gunMode = GunConfiguration.MODE_NORMAL; - config.firingMode = GunConfiguration.FIRE_AUTO; - config.reloadDuration = 20; + config.reloadDuration = 1; config.firingDuration = 0; - config.ammoCap = 30; - config.reloadType = GunConfiguration.RELOAD_FULL; + config.ammoCap = 0; + config.reloadType = GunConfiguration.RELOAD_NONE; config.allowsInfinity = true; config.crosshair = Crosshair.L_ARROWS; diff --git a/com/hbm/handler/guncfg/GunGrenadeFactory.java b/com/hbm/handler/guncfg/GunGrenadeFactory.java index 77c7698f36..b1b1a3884c 100644 --- a/com/hbm/handler/guncfg/GunGrenadeFactory.java +++ b/com/hbm/handler/guncfg/GunGrenadeFactory.java @@ -46,7 +46,9 @@ public static GunConfiguration getHK69Config() { config.config.add(BulletConfigSyncingUtil.GRENADE_FINNED); config.config.add(BulletConfigSyncingUtil.GRENADE_SLEEK); config.config.add(BulletConfigSyncingUtil.GRENADE_NUCLEAR); - config.durability = 140; + config.config.add(BulletConfigSyncingUtil.GRENADE_TRACER); + config.config.add(BulletConfigSyncingUtil.GRENADE_KAMPF); + config.durability = 300; return config; } @@ -166,6 +168,7 @@ public static BulletConfiguration getGrenadeFinnedConfig() { bullet.ammo = ModItems.ammo_grenade_finned; bullet.gravity = 0.02; bullet.explosive = 1.5F; + bullet.trail = 5; return bullet; } @@ -181,4 +184,34 @@ public static BulletConfiguration getGrenadeNuclearConfig() { return bullet; } + + public static BulletConfiguration getGrenadeTracerConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardGrenadeConfig(); + + bullet.ammo = ModItems.ammo_grenade_tracer; + bullet.velocity = 2.0F; + bullet.wear = 10; + bullet.explosive = 0F; + bullet.trail = 5; + bullet.vPFX = "bluedust"; + + return bullet; + } + + public static BulletConfiguration getGrenadeKampfConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardRocketConfig(); + + bullet.ammo = ModItems.ammo_grenade_kampf; + bullet.spread = 0.0F; + bullet.gravity = 0.0D; + bullet.wear = 15; + bullet.explosive = 3.5F; + bullet.style = BulletConfiguration.STYLE_GRENADE; + bullet.trail = 4; + bullet.vPFX = "smoke"; + + return bullet; + } } diff --git a/com/hbm/handler/guncfg/GunOSIPRFactory.java b/com/hbm/handler/guncfg/GunOSIPRFactory.java index 562314354c..9c712f1901 100644 --- a/com/hbm/handler/guncfg/GunOSIPRFactory.java +++ b/com/hbm/handler/guncfg/GunOSIPRFactory.java @@ -56,11 +56,14 @@ public static GunConfiguration getAltConfig() { config.hasSpindown = false; config.reloadDuration = 20; config.firingDuration = 0; - config.ammoCap = 1; + config.ammoCap = 0; config.reloadType = GunConfiguration.RELOAD_NONE; config.allowsInfinity = true; config.firingSound = "hbm:weapon.singFlyby"; + config.config = new ArrayList(); + config.config.add(BulletConfigSyncingUtil.SPECIAL_OSIPR_CHARGED); + return config; } @@ -75,6 +78,14 @@ public static BulletConfiguration getPulseConfig() { bullet.dmgMax = 5; bullet.trail = 2; + return bullet; + } + public static BulletConfiguration getPulseChargedConfig() { + + BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + + bullet.ammo = ModItems.gun_osipr_ammo2; + return bullet; } } diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index 04bb0567d7..162d01bffc 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -670,9 +670,11 @@ public static ItemStack getPressResult(ItemStack input, ItemStack stamp) { if(input.getItem() == ModItems.assembly_uzi) return new ItemStack(ModItems.ammo_22lr); if(mODE(input, "ingotGold")) - return new ItemStack(ModItems.gun_mp_ammo); + return new ItemStack(ModItems.ammo_566_gold); if(input.getItem() == ModItems.assembly_lacunae) return new ItemStack(ModItems.ammo_5mm); + if(input.getItem() == ModItems.assembly_556) + return new ItemStack(ModItems.ammo_556); } if(stamp.getItem() == ModItems.stamp_50) { @@ -753,14 +755,12 @@ public static Map getPressRecipes() { recipes.put(new Object[] { i_stamps_357, new ItemStack(ModItems.assembly_desh) }, getPressResultNN(i_stamps_357.get(0).getItem(), ModItems.assembly_desh)); recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_nopip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_nopip)); - //recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.assembly_pip) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.assembly_pip)); - //recipes.put(new Object[] { i_stamps_44, new ItemStack(ModItems.ammo_rocket) }, getPressResultNN(i_stamps_44.get(0).getItem(), ModItems.ammo_rocket)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_smg) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_smg)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_uzi) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_uzi)); recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_lacunae) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_lacunae)); recipes.put(new Object[] { i_stamps_9, new ItemStack(Items.gold_ingot) }, getPressResultNN(i_stamps_9.get(0).getItem(), Items.gold_ingot)); - //recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.ammo_rocket) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.ammo_rocket)); + recipes.put(new Object[] { i_stamps_9, new ItemStack(ModItems.assembly_556) }, getPressResultNN(i_stamps_9.get(0).getItem(), ModItems.assembly_556)); recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_actionexpress) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_actionexpress)); recipes.put(new Object[] { i_stamps_50, new ItemStack(ModItems.assembly_calamity) }, getPressResultNN(i_stamps_50.get(0).getItem(), ModItems.assembly_calamity)); diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index e524c405f2..b2ff79ecef 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -12,6 +12,7 @@ import com.hbm.handler.guncfg.Gun4GaugeFactory; import com.hbm.handler.guncfg.Gun50AEFactory; import com.hbm.handler.guncfg.Gun50BMGFactory; +import com.hbm.handler.guncfg.Gun556mmFactory; import com.hbm.handler.guncfg.Gun5mmFactory; import com.hbm.handler.guncfg.Gun9mmFactory; import com.hbm.handler.guncfg.GunEnergyFactory; @@ -375,6 +376,7 @@ public static void mainRegistry() //public static Item assembly_pip; public static Item assembly_nopip; public static Item assembly_smg; + public static Item assembly_556; public static Item assembly_uzi; public static Item assembly_actionexpress; public static Item assembly_calamity; @@ -1105,6 +1107,18 @@ public static void mainRegistry() public static Item ammo_9mm_ap; public static Item ammo_9mm_du; public static Item ammo_9mm_rocket; + public static Item ammo_556; + public static Item ammo_566_gold; + public static Item ammo_556_phosphorus; + public static Item ammo_556_ap; + public static Item ammo_556_du; + public static Item ammo_556_star; + public static Item ammo_556_tracer; + public static Item ammo_556_flechette; + public static Item ammo_556_flechette_incendiary; + public static Item ammo_556_flechette_phosphorus; + public static Item ammo_556_flechette_du; + public static Item ammo_556_k; public static Item ammo_22lr; public static Item ammo_22lr_ap; public static Item ammo_50ae; @@ -1115,6 +1129,7 @@ public static void mainRegistry() public static Item ammo_50bmg_incendiary; public static Item ammo_50bmg_phosphorus; public static Item ammo_50bmg_explosive; + public static Item ammo_50bmg_ap; public static Item ammo_50bmg_du; public static Item ammo_50bmg_star; public static Item ammo_folly; @@ -1140,6 +1155,8 @@ public static void mainRegistry() public static Item ammo_grenade_finned; public static Item ammo_grenade_sleek; public static Item ammo_grenade_nuclear; + public static Item ammo_grenade_tracer; + public static Item ammo_grenade_kampf; public static Item ammo_fuel; public static Item ammo_fuel_napalm; public static Item ammo_fuel_phosphorus; @@ -1178,6 +1195,7 @@ public static void mainRegistry() public static Item gun_revolver_red; public static Item gun_revolver_nopip_ammo; public static Item gun_deagle; + public static Item gun_flechette; public static Item gun_calamity; public static Item gun_calamity_dual; public static Item gun_calamity_ammo; @@ -1226,7 +1244,6 @@ public static void mainRegistry() public static Item gun_cryolator; public static Item gun_cryolator_ammo; public static Item gun_mp; - public static Item gun_mp_ammo; public static Item gun_brimstone; public static Item gun_zomg; public static Item gun_super_shotgun; @@ -2255,6 +2272,7 @@ public static void initializeItem() //assembly_pip = new Item().setUnlocalizedName("assembly_pip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_pip"); assembly_nopip = new Item().setUnlocalizedName("assembly_nopip").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_nopip"); assembly_smg = new Item().setUnlocalizedName("assembly_smg").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_smg"); + assembly_556 = new Item().setUnlocalizedName("assembly_556").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_556"); assembly_uzi = new Item().setUnlocalizedName("assembly_uzi").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_uzi"); assembly_actionexpress = new Item().setUnlocalizedName("assembly_actionexpress").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_actionexpress"); assembly_calamity = new Item().setUnlocalizedName("assembly_calamity").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":assembly_calamity"); @@ -2843,6 +2861,17 @@ public static void initializeItem() ammo_9mm_ap = new ItemAmmo().setUnlocalizedName("ammo_9mm_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm_ap"); ammo_9mm_du = new ItemAmmo().setUnlocalizedName("ammo_9mm_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm_du"); ammo_9mm_rocket = new ItemAmmo().setUnlocalizedName("ammo_9mm_rocket").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_9mm_rocket"); + ammo_556 = new ItemAmmo().setUnlocalizedName("ammo_556").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556"); + ammo_556_phosphorus = new ItemAmmo().setUnlocalizedName("ammo_556_phosphorus").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_phosphorus"); + ammo_556_ap = new ItemAmmo().setUnlocalizedName("ammo_556_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_ap"); + ammo_556_du = new ItemAmmo().setUnlocalizedName("ammo_556_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_du"); + ammo_556_star = new ItemAmmo().setUnlocalizedName("ammo_556_star").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_star"); + ammo_556_tracer = new ItemAmmo().setUnlocalizedName("ammo_556_tracer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_tracer"); + ammo_556_flechette = new ItemAmmo().setUnlocalizedName("ammo_556_flechette").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_flechette"); + ammo_556_flechette_incendiary = new ItemAmmo().setUnlocalizedName("ammo_556_flechette_incendiary").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_flechette_incendiary"); + ammo_556_flechette_phosphorus = new ItemAmmo().setUnlocalizedName("ammo_556_flechette_phosphorus").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_flechette_phosphorus"); + ammo_556_flechette_du = new ItemAmmo().setUnlocalizedName("ammo_556_flechette_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_flechette_du"); + ammo_556_k = new ItemAmmo().setUnlocalizedName("ammo_556_k").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_556_k"); ammo_50ae = new ItemAmmo().setUnlocalizedName("ammo_50ae").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae"); ammo_50ae_ap = new ItemAmmo().setUnlocalizedName("ammo_50ae_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae_ap"); ammo_50ae_du = new ItemAmmo().setUnlocalizedName("ammo_50ae_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50ae_du"); @@ -2851,6 +2880,7 @@ public static void initializeItem() ammo_50bmg_incendiary = new ItemAmmo().setUnlocalizedName("ammo_50bmg_incendiary").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50bmg_incendiary"); ammo_50bmg_phosphorus = new ItemAmmo().setUnlocalizedName("ammo_50bmg_phosphorus").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50bmg_phosphorus"); ammo_50bmg_explosive = new ItemAmmo().setUnlocalizedName("ammo_50bmg_explosive").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50bmg_explosive"); + ammo_50bmg_ap = new ItemAmmo().setUnlocalizedName("ammo_50bmg_ap").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50bmg_ap"); ammo_50bmg_du = new ItemAmmo().setUnlocalizedName("ammo_50bmg_du").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50bmg_du"); ammo_50bmg_star = new ItemAmmo().setUnlocalizedName("ammo_50bmg_star").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_50bmg_star"); ammo_357_desh = new ItemAmmo().setUnlocalizedName("ammo_357_desh").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_357_desh"); @@ -2888,6 +2918,8 @@ public static void initializeItem() ammo_grenade_finned = new ItemAmmo().setUnlocalizedName("ammo_grenade_finned").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_grenade_finned"); ammo_grenade_sleek = new ItemAmmo().setUnlocalizedName("ammo_grenade_sleek").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_grenade_sleek"); ammo_grenade_nuclear = new ItemAmmo().setUnlocalizedName("ammo_grenade_nuclear").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_grenade_nuclear"); + ammo_grenade_tracer = new ItemAmmo().setUnlocalizedName("ammo_grenade_tracer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_grenade_tracer"); + ammo_grenade_kampf = new ItemAmmo().setUnlocalizedName("ammo_grenade_kampf").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":ammo_grenade_kampf"); ammo_fuel = new ItemAmmo().setUnlocalizedName("ammo_fuel").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel"); ammo_fuel_napalm = new ItemAmmo().setUnlocalizedName("ammo_fuel_napalm").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_napalm"); ammo_fuel_phosphorus = new ItemAmmo().setUnlocalizedName("ammo_fuel_phosphorus").setCreativeTab(MainRegistry.weaponTab).setMaxStackSize(1).setTextureName(RefStrings.MODID + ":ammo_fuel_phosphorus"); @@ -2926,6 +2958,7 @@ public static void initializeItem() gun_revolver_silver = new ItemGunBase(Gun44MagnumFactory.getSilverConfig()).setUnlocalizedName("gun_revolver_silver").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_silver"); gun_revolver_red = new ItemGunBase(Gun44MagnumFactory.getRedConfig()).setUnlocalizedName("gun_revolver_red").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_red"); gun_deagle = new ItemGunBase(Gun50AEFactory.getDeagleConfig()).setUnlocalizedName("gun_deagle").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_deagle"); + gun_flechette = new ItemGunBase(Gun556mmFactory.getSPIWConfig(), Gun556mmFactory.getGLauncherConfig()).setUnlocalizedName("gun_flechette").setFull3D().setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flechette"); gun_calamity_ammo = new ItemCustomLore().setUnlocalizedName("gun_calamity_ammo").setCreativeTab(null).setTextureName(RefStrings.MODID + ":gun_calamity_ammo"); gun_calamity = new ItemGunBase(Gun50BMGFactory.getCalamityConfig()).setUnlocalizedName("gun_calamity").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity"); gun_calamity_dual = new ItemGunBase(Gun50BMGFactory.getSaddleConfig()).setUnlocalizedName("gun_calamity_dual").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_calamity_dual"); @@ -2973,8 +3006,8 @@ public static void initializeItem() gun_flamer = new ItemGunBase(GunEnergyFactory.getFlamerConfig()).setUnlocalizedName("gun_flamer").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_flamer"); gun_cryolator_ammo = new Item().setUnlocalizedName("gun_cryolator_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator_ammo"); gun_cryolator = new GunCryolator().setUnlocalizedName("gun_cryolator").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_cryolator"); - gun_mp_ammo = new ItemCustomLore().setUnlocalizedName("gun_mp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm_ammo"); - gun_mp = new GunMP().setUnlocalizedName("gun_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm"); + ammo_566_gold = new ItemCustomLore().setUnlocalizedName("gun_mp_ammo").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm_ammo"); + gun_mp = new ItemGunBase(Gun556mmFactory.getEuphieConfig()).setUnlocalizedName("gun_mp").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_pm"); gun_brimstone = new GunBrimstone().setUnlocalizedName("gun_brimstone").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_brimstone"); gun_zomg = new GunZOMG().setUnlocalizedName("gun_zomg").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_zomg"); gun_revolver_inverted = new GunSuicide().setUnlocalizedName("gun_revolver_inverted").setCreativeTab(MainRegistry.weaponTab).setTextureName(RefStrings.MODID + ":gun_revolver_inverted"); @@ -4145,6 +4178,7 @@ private static void registerItem() { //GameRegistry.registerItem(assembly_pip, assembly_pip.getUnlocalizedName()); GameRegistry.registerItem(assembly_nopip, assembly_nopip.getUnlocalizedName()); GameRegistry.registerItem(assembly_smg, assembly_smg.getUnlocalizedName()); + GameRegistry.registerItem(assembly_556, assembly_556.getUnlocalizedName()); GameRegistry.registerItem(assembly_uzi, assembly_uzi.getUnlocalizedName()); GameRegistry.registerItem(assembly_lacunae, assembly_lacunae.getUnlocalizedName()); GameRegistry.registerItem(assembly_actionexpress, assembly_actionexpress.getUnlocalizedName()); @@ -4812,6 +4846,7 @@ private static void registerItem() { GameRegistry.registerItem(gun_revolver_silver, gun_revolver_silver.getUnlocalizedName()); GameRegistry.registerItem(gun_revolver_red, gun_revolver_red.getUnlocalizedName()); GameRegistry.registerItem(gun_deagle, gun_deagle.getUnlocalizedName()); + GameRegistry.registerItem(gun_flechette, gun_flechette.getUnlocalizedName()); GameRegistry.registerItem(gun_calamity, gun_calamity.getUnlocalizedName()); GameRegistry.registerItem(gun_calamity_dual, gun_calamity_dual.getUnlocalizedName()); GameRegistry.registerItem(gun_minigun, gun_minigun.getUnlocalizedName()); @@ -4895,7 +4930,6 @@ private static void registerItem() { GameRegistry.registerItem(gun_osipr_ammo2, gun_osipr_ammo2.getUnlocalizedName()); GameRegistry.registerItem(gun_immolator_ammo, gun_immolator_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_cryolator_ammo, gun_cryolator_ammo.getUnlocalizedName()); - GameRegistry.registerItem(gun_mp_ammo, gun_mp_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_emp_ammo, gun_emp_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_jack_ammo, gun_jack_ammo.getUnlocalizedName()); GameRegistry.registerItem(gun_spark_ammo, gun_spark_ammo.getUnlocalizedName()); @@ -4937,6 +4971,18 @@ private static void registerItem() { GameRegistry.registerItem(ammo_9mm_ap, ammo_9mm_ap.getUnlocalizedName()); GameRegistry.registerItem(ammo_9mm_du, ammo_9mm_du.getUnlocalizedName()); GameRegistry.registerItem(ammo_9mm_rocket, ammo_9mm_rocket.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556, ammo_556.getUnlocalizedName()); + GameRegistry.registerItem(ammo_566_gold, ammo_566_gold.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_phosphorus, ammo_556_phosphorus.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_ap, ammo_556_ap.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_du, ammo_556_du.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_star, ammo_556_star.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_tracer, ammo_556_tracer.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_flechette, ammo_556_flechette.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_flechette_incendiary, ammo_556_flechette_incendiary.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_flechette_phosphorus, ammo_556_flechette_phosphorus.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_flechette_du, ammo_556_flechette_du.getUnlocalizedName()); + GameRegistry.registerItem(ammo_556_k, ammo_556_k.getUnlocalizedName()); GameRegistry.registerItem(ammo_22lr, ammo_22lr.getUnlocalizedName()); GameRegistry.registerItem(ammo_22lr_ap, ammo_22lr_ap.getUnlocalizedName()); GameRegistry.registerItem(ammo_50ae, ammo_50ae.getUnlocalizedName()); @@ -4947,6 +4993,7 @@ private static void registerItem() { GameRegistry.registerItem(ammo_50bmg_incendiary, ammo_50bmg_incendiary.getUnlocalizedName()); GameRegistry.registerItem(ammo_50bmg_phosphorus, ammo_50bmg_phosphorus.getUnlocalizedName()); GameRegistry.registerItem(ammo_50bmg_explosive, ammo_50bmg_explosive.getUnlocalizedName()); + GameRegistry.registerItem(ammo_50bmg_ap, ammo_50bmg_ap.getUnlocalizedName()); GameRegistry.registerItem(ammo_50bmg_du, ammo_50bmg_du.getUnlocalizedName()); GameRegistry.registerItem(ammo_50bmg_star, ammo_50bmg_star.getUnlocalizedName()); GameRegistry.registerItem(ammo_fuel, ammo_fuel.getUnlocalizedName()); @@ -4973,6 +5020,8 @@ private static void registerItem() { GameRegistry.registerItem(ammo_grenade_finned, ammo_grenade_finned.getUnlocalizedName()); GameRegistry.registerItem(ammo_grenade_sleek, ammo_grenade_sleek.getUnlocalizedName()); GameRegistry.registerItem(ammo_grenade_nuclear, ammo_grenade_nuclear.getUnlocalizedName()); + GameRegistry.registerItem(ammo_grenade_tracer, ammo_grenade_tracer.getUnlocalizedName()); + GameRegistry.registerItem(ammo_grenade_kampf, ammo_grenade_kampf.getUnlocalizedName()); GameRegistry.registerItem(ammo_folly, ammo_folly.getUnlocalizedName()); GameRegistry.registerItem(ammo_folly_nuclear, ammo_folly_nuclear.getUnlocalizedName()); GameRegistry.registerItem(ammo_folly_du, ammo_folly_du.getUnlocalizedName()); diff --git a/com/hbm/items/special/ItemCustomLore.java b/com/hbm/items/special/ItemCustomLore.java index ad5fd286a9..d2f298fd12 100644 --- a/com/hbm/items/special/ItemCustomLore.java +++ b/com/hbm/items/special/ItemCustomLore.java @@ -771,7 +771,7 @@ public EnumRarity getRarity(ItemStack p_77613_1_) { } if(this == ModItems.gun_revolver_cursed_ammo || this == ModItems.plate_paa || - this == ModItems.gun_mp_ammo || this == ModItems.powder_power || + this == ModItems.ammo_566_gold || this == ModItems.powder_power || this == ModItems.ingot_australium || this == ModItems.ingot_weidanium || this == ModItems.ingot_reiium || this == ModItems.ingot_unobtainium || this == ModItems.ingot_daffergon || this == ModItems.ingot_verticium || diff --git a/com/hbm/items/weapon/GunBrimstone.java b/com/hbm/items/weapon/GunBrimstone.java index 0a0df42c4c..8611439193 100644 --- a/com/hbm/items/weapon/GunBrimstone.java +++ b/com/hbm/items/weapon/GunBrimstone.java @@ -52,7 +52,7 @@ public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { boolean flag = player.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_mp_ammo)) && count % 1 == 0) { + if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_566_gold)) && count % 1 == 0) { EntityLaser laser = new EntityLaser(world, player); diff --git a/com/hbm/items/weapon/GunMP.java b/com/hbm/items/weapon/GunMP.java index d3dab92c33..84834d36a1 100644 --- a/com/hbm/items/weapon/GunMP.java +++ b/com/hbm/items/weapon/GunMP.java @@ -52,7 +52,7 @@ public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { boolean flag = player.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0; - if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.gun_mp_ammo)) && count % 3 == 0) { + if ((player.capabilities.isCreativeMode || player.inventory.hasItem(ModItems.ammo_566_gold)) && count % 3 == 0) { EntityBullet entityarrow = new EntityBullet(world, player, 3.0F, 100, 150, false, false); entityarrow.setDamage(100 + rand.nextInt(50)); @@ -63,7 +63,7 @@ public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { if (flag) { entityarrow.canBePickedUp = 2; } else { - player.inventory.consumeInventoryItem(ModItems.gun_mp_ammo); + player.inventory.consumeInventoryItem(ModItems.ammo_566_gold); } if (!world.isRemote) { diff --git a/com/hbm/items/weapon/ItemAmmo.java b/com/hbm/items/weapon/ItemAmmo.java index 0a7fe695c3..e72b59a612 100644 --- a/com/hbm/items/weapon/ItemAmmo.java +++ b/com/hbm/items/weapon/ItemAmmo.java @@ -197,6 +197,10 @@ public void addInformation(ItemStack stack, EntityPlayer player, List list, bool list.add(EnumChatFormatting.BLUE + "+ Increased damage"); list.add(EnumChatFormatting.RED + "- Highly increased wear"); } + if(this == ModItems.ammo_50bmg_ap) { + list.add(EnumChatFormatting.BLUE + "+ Increased damage"); + list.add(EnumChatFormatting.RED + "- Increased wear"); + } if(this == ModItems.ammo_50bmg_du) { list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); @@ -309,6 +313,12 @@ public void addInformation(ItemStack stack, EntityPlayer player, List list, bool list.add(EnumChatFormatting.BLUE + "+ Increased range"); list.add(EnumChatFormatting.RED + "- Highly increased wear"); } + if(this == ModItems.ammo_grenade_kampf) { + list.add(EnumChatFormatting.BLUE + "+ Rocket Propelled"); + list.add(EnumChatFormatting.BLUE + "+ Increased blast radius"); + list.add(EnumChatFormatting.BLUE + "+ Increased accuracy"); + list.add(EnumChatFormatting.RED + "- Increased wear"); + } //FUEL if(this == ModItems.ammo_fuel_napalm) { @@ -332,6 +342,62 @@ public void addInformation(ItemStack stack, EntityPlayer player, List list, bool list.add(EnumChatFormatting.RED + "- Not incendiary"); } + //5.56mm + if(this == ModItems.ammo_556_phosphorus) { + list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); + list.add(EnumChatFormatting.YELLOW + "* Technically a warcrime"); + list.add(EnumChatFormatting.RED + "- Increased wear"); + list.add(EnumChatFormatting.RED + "- Not penetrating"); + } + if(this == ModItems.ammo_556_ap) { + list.add(EnumChatFormatting.BLUE + "+ Increased damage"); + list.add(EnumChatFormatting.RED + "- Increased wear"); + } + if(this == ModItems.ammo_556_du) { + list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); + list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); + list.add(EnumChatFormatting.RED + "- Highly increased wear"); + } + if(this == ModItems.ammo_556_star) { + list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); + list.add(EnumChatFormatting.YELLOW + "* Starmetal"); + list.add(EnumChatFormatting.RED + "- Highly increased wear"); + } + if(this == ModItems.ammo_556_flechette) { + list.add(EnumChatFormatting.BLUE + "+ Increased damage"); + list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); + list.add(EnumChatFormatting.RED + "- Increased wear"); + list.add(EnumChatFormatting.RED + "- Not penetrating"); + } + if(this == ModItems.ammo_556_flechette_incendiary) { + list.add(EnumChatFormatting.BLUE + "+ Increased damage"); + list.add(EnumChatFormatting.BLUE + "+ Incendiary"); + list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); + list.add(EnumChatFormatting.RED + "- Increased wear"); + list.add(EnumChatFormatting.RED + "- Not penetrating"); + } + if(this == ModItems.ammo_556_flechette_phosphorus) { + list.add(EnumChatFormatting.BLUE + "+ Increased damage"); + list.add(EnumChatFormatting.BLUE + "+ Induces phosphorus burns"); + list.add(EnumChatFormatting.YELLOW + "* Twice the warcrime in a single round!"); + list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); + list.add(EnumChatFormatting.RED + "- Increased wear"); + list.add(EnumChatFormatting.RED + "- Not penetrating"); + } + if(this == ModItems.ammo_556_flechette_du) { + list.add(EnumChatFormatting.BLUE + "+ Highly increased damage"); + list.add(EnumChatFormatting.BLUE + "+ Penetrating"); + list.add(EnumChatFormatting.YELLOW + "* Heavy metal"); + list.add(EnumChatFormatting.YELLOW + "* Less bouncy"); + list.add(EnumChatFormatting.RED + "- Highly increased wear"); + } + if(this == ModItems.ammo_556_tracer) { + list.add(EnumChatFormatting.YELLOW + "* Tracer"); + } + if(this == ModItems.ammo_556_k) { + list.add(EnumChatFormatting.YELLOW + "* It's a blank"); + } + //FOLLY if(this == ModItems.ammo_folly) { list.add(EnumChatFormatting.BLUE + "+ Focused starmetal reaction blast"); diff --git a/com/hbm/items/weapon/ItemClip.java b/com/hbm/items/weapon/ItemClip.java index 4c0b49c72a..9d259c54aa 100644 --- a/com/hbm/items/weapon/ItemClip.java +++ b/com/hbm/items/weapon/ItemClip.java @@ -108,7 +108,7 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla if(this == ModItems.clip_mp) { - if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_mp_ammo, 30))) + if (!player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_566_gold, 30))) { //player.dropPlayerItemWithRandomChoice(new ItemStack(ModItems.gun_mp_ammo, 30), false); } @@ -366,7 +366,7 @@ public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer pla if(player.inventory.hasItem(ModItems.gun_cryolator)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_cryolator_ammo, 40)); if(player.inventory.hasItem(ModItems.gun_mp)) - player.inventory.addItemStackToInventory(new ItemStack(ModItems.gun_mp_ammo, 34)); + player.inventory.addItemStackToInventory(new ItemStack(ModItems.ammo_566_gold, 34)); if(player.inventory.hasItem(ModItems.gun_zomg)) player.inventory.addItemStackToInventory(new ItemStack(ModItems.nugget_euphemium, 1)); if(player.inventory.hasItem(ModItems.gun_emp)) diff --git a/com/hbm/items/weapon/ItemGunBase.java b/com/hbm/items/weapon/ItemGunBase.java index 6f6816a21b..ff69c7b6f6 100644 --- a/com/hbm/items/weapon/ItemGunBase.java +++ b/com/hbm/items/weapon/ItemGunBase.java @@ -53,9 +53,6 @@ public ItemGunBase(GunConfiguration config, GunConfiguration alt) { @Override public void onUpdate(ItemStack stack, World world, Entity entity, int slot, boolean isCurrentItem) { - //if(!isCurrentItem) - // return; - if(entity instanceof EntityPlayer) { isCurrentItem = ((EntityPlayer)entity).getHeldItem() == stack; @@ -81,35 +78,18 @@ protected void updateClient(ItemStack stack, World world, EntityPlayer entity, i if(left && right) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); - //setIsMouseDown(stack, false); - //setIsAltDown(stack, false); m1 = false; m2 = false; } - /// HANDLED IN MODEVENTHANDLERCLIENT.JAVA /// - /*if(!left && !right) { - if(clickLeft) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 0)); - //setIsMouseDown(stack, true); - m1 = true; - } else if(clickRight) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(true, (byte) 1)); - //setIsAltDown(stack, true); - m2 = true; - } - }*/ - if(left && !clickLeft) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); - //setIsMouseDown(stack, false); m1 = false; endActionClient(stack, world, entity, true); } if(right && !clickRight) { PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); - //setIsAltDown(stack, false); m2 = false; endActionClient(stack, world, entity, false); } @@ -122,18 +102,6 @@ protected void updateClient(ItemStack stack, World world, EntityPlayer entity, i resetReloadCycle(stack); } } - } else { - - /*if(left) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 0)); - m1 = false; - endActionClient(stack, world, entity, true); - } - if(right) { - PacketDispatcher.wrapper.sendToServer(new GunButtonPacket(false, (byte) 1)); - m2 = false; - endActionClient(stack, world, entity, false); - }*/ } } @@ -154,7 +122,7 @@ protected void updateServer(ItemStack stack, World world, EntityPlayer player, i fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); - useUpAmmo(player, stack); + useUpAmmo(player, stack, true); } if(getIsReloading(stack) && isCurrentItem) { @@ -168,17 +136,21 @@ protected boolean tryShoot(ItemStack stack, World world, EntityPlayer player, bo if(main && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) { if(mainConfig.reloadType == mainConfig.RELOAD_NONE) { - return getBeltSize(player, getBeltType(player, stack)) > 0; + return getBeltSize(player, getBeltType(player, stack, main)) > 0; } else { return getMag(stack) > 0; } } - if(!main && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) { - - //no extra conditions, alt fire has to be handled by every weapon individually in the altFire() method - return true; + if(!main && altConfig != null && getDelay(stack) == 0 && !getIsReloading(stack) && getItemWear(stack) < mainConfig.durability) { + + if(altConfig.reloadType == mainConfig.RELOAD_NONE) { + return getBeltSize(player, getBeltType(player, stack, main)) > 0; + + } else { + return getMag(stack) > 0; + } } return false; @@ -190,7 +162,7 @@ protected void fire(ItemStack stack, World world, EntityPlayer player) { BulletConfiguration config = null; if(mainConfig.reloadType == mainConfig.RELOAD_NONE) { - config = getBeltCfg(player, stack); + config = getBeltCfg(player, stack, true); } else { config = BulletConfigSyncingUtil.pullConfig(mainConfig.config.get(getMagType(stack))); } @@ -212,9 +184,26 @@ protected void fire(ItemStack stack, World world, EntityPlayer player) { //unlike fire(), being called does not automatically imply success, some things may still have to be handled before spawning the projectile protected void altFire(ItemStack stack, World world, EntityPlayer player) { + + if(altConfig == null) + return; - if(!altConfig.firingSound.isEmpty()) - world.playSoundAtEntity(player, altConfig.firingSound, 1.0F, altConfig.firingPitch); + BulletConfiguration config = getBeltCfg(player, stack, false); + + int bullets = config.bulletsMin; + + for(int k = 0; k < altConfig.roundsPerCycle; k++) { + if(config.bulletsMax > config.bulletsMin) + bullets += world.rand.nextInt(config.bulletsMax - config.bulletsMin); + + for(int i = 0; i < bullets; i++) { + spawnProjectile(world, player, stack, BulletConfigSyncingUtil.getKey(config)); + } + + setItemWear(stack, getItemWear(stack) + config.wear); + } + + world.playSoundAtEntity(player, altConfig.firingSound, 1.0F, altConfig.firingPitch); } //spawns the actual projectile, can be overridden to change projectile entity @@ -231,11 +220,14 @@ public void startAction(ItemStack stack, World world, EntityPlayer player, boole fire(stack, world, player); setDelay(stack, mainConfig.rateOfFire); //setMag(stack, getMag(stack) - 1); - useUpAmmo(player, stack); + useUpAmmo(player, stack, main); } - if(!main && altConfig != null) + if(!main && altConfig != null && tryShoot(stack, world, player, main)) { altFire(stack, world, player); + setDelay(stack, altConfig.rateOfFire); + useUpAmmo(player, stack, main); + } } //called on click (client side, called by update cylce) @@ -474,6 +466,12 @@ public void addInformation(ItemStack stack, EntityPlayer player, List list, bool list.add("Ammo Type: " + I18n.format(ammo.getUnlocalizedName() + ".name")); + if(altConfig != null && altConfig.ammoCap == 0) { + Item ammo2 = BulletConfigSyncingUtil.pullConfig(altConfig.config.get(0)).ammo; + if(ammo != ammo2) + list.add("Secondary Ammo: " + I18n.format(ammo2.getUnlocalizedName() + ".name")); + } + int dura = mainConfig.durability - getItemWear(stack); if(dura < 0) @@ -503,12 +501,13 @@ public void addInformation(ItemStack stack, EntityPlayer player, List list, bool } //returns ammo item of belt-weapons - public static Item getBeltType(EntityPlayer player, ItemStack stack) { + public static Item getBeltType(EntityPlayer player, ItemStack stack, boolean main) { ItemGunBase gun = (ItemGunBase)stack.getItem(); - Item ammo = BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(0)).ammo; + GunConfiguration guncfg = main ? gun.mainConfig : (gun.altConfig != null ? gun.altConfig : gun.mainConfig); + Item ammo = BulletConfigSyncingUtil.pullConfig(guncfg.config.get(0)).ammo; - for(Integer config : gun.mainConfig.config) { + for(Integer config : guncfg.config) { BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); @@ -522,12 +521,13 @@ public static Item getBeltType(EntityPlayer player, ItemStack stack) { } //returns BCFG of belt-weapons - public static BulletConfiguration getBeltCfg(EntityPlayer player, ItemStack stack) { + public static BulletConfiguration getBeltCfg(EntityPlayer player, ItemStack stack, boolean main) { ItemGunBase gun = (ItemGunBase)stack.getItem(); - getBeltType(player, stack); + GunConfiguration guncfg = main ? gun.mainConfig : (gun.altConfig != null ? gun.altConfig : gun.mainConfig); + getBeltType(player, stack, main); - for(Integer config : gun.mainConfig.config) { + for(Integer config : guncfg.config) { BulletConfiguration cfg = BulletConfigSyncingUtil.pullConfig(config); @@ -536,7 +536,7 @@ public static BulletConfiguration getBeltCfg(EntityPlayer player, ItemStack stac } } - return BulletConfigSyncingUtil.pullConfig(gun.mainConfig.config.get(0)); + return BulletConfigSyncingUtil.pullConfig(guncfg.config.get(0)); } //returns ammo capacity of belt-weapons for current ammo @@ -553,16 +553,26 @@ public static int getBeltSize(EntityPlayer player, Item ammo) { } //reduces ammo count for mag and belt-based weapons, should be called AFTER firing - public void useUpAmmo(EntityPlayer player, ItemStack stack) { + public void useUpAmmo(EntityPlayer player, ItemStack stack, boolean main) { + + if(!main && altConfig == null) + return; - if(mainConfig.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0) + GunConfiguration config = mainConfig; + + if(!main) + config = altConfig; + + if(config.allowsInfinity && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, stack) > 0) return; - for(int k = 0; k < mainConfig.roundsPerCycle; k++) { - if(mainConfig.reloadType != mainConfig.RELOAD_NONE) + for(int k = 0; k < config.roundsPerCycle; k++) { + if(config.reloadType != mainConfig.RELOAD_NONE) { setMag(stack, getMag(stack) - 1); - else - player.inventory.consumeInventoryItem(getBeltType(player, stack)); + } else { + player.inventory.consumeInventoryItem(getBeltType(player, stack, main)); + player.inventoryContainer.detectAndSendChanges(); + } } } diff --git a/com/hbm/items/weapon/ItemGunGauss.java b/com/hbm/items/weapon/ItemGunGauss.java index 28e3af7474..08b236d013 100644 --- a/com/hbm/items/weapon/ItemGunGauss.java +++ b/com/hbm/items/weapon/ItemGunGauss.java @@ -80,7 +80,7 @@ protected void updateServer(ItemStack stack, World world, EntityPlayer player, i if(c > 0) { setCharge(stack, c + 1); - if(c % 10 == 1 && c < 140) { + if(c % 10 == 1 && c < 140 && c > 2) { if(player.inventory.hasItem(ModItems.gun_xvl1456_ammo)) { player.inventory.consumeInventoryItem(ModItems.gun_xvl1456_ammo); diff --git a/com/hbm/items/weapon/ItemGunOSIPR.java b/com/hbm/items/weapon/ItemGunOSIPR.java index 64c37c23c6..827fadd31e 100644 --- a/com/hbm/items/weapon/ItemGunOSIPR.java +++ b/com/hbm/items/weapon/ItemGunOSIPR.java @@ -2,7 +2,6 @@ import com.hbm.entity.projectile.EntityCombineBall; import com.hbm.handler.GunConfiguration; -import com.hbm.items.ModItems; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -16,16 +15,14 @@ public ItemGunOSIPR(GunConfiguration config, GunConfiguration alt) { @Override protected void altFire(ItemStack stack, World world, EntityPlayer player) { - if(player.inventory.hasItem(ModItems.gun_osipr_ammo2)) { - setCharge(stack, 1); - world.playSoundAtEntity(player, "hbm:weapon.osiprCharging", 1.0F, 1F); - } + setCharge(stack, 1); + world.playSoundAtEntity(player, "hbm:weapon.osiprCharging", 1.0F, 1F); } protected void updateServer(ItemStack stack, World world, EntityPlayer player, int slot, boolean isCurrentItem) { super.updateServer(stack, world, player, slot, isCurrentItem); - if(!isCurrentItem || !player.inventory.hasItem(ModItems.gun_osipr_ammo2)) { + if(!isCurrentItem) { setCharge(stack, 0); return; } @@ -39,7 +36,6 @@ protected void updateServer(ItemStack stack, World world, EntityPlayer player, i world.playSoundAtEntity(player, altConfig.firingSound, 1.0F, 1F); setCharge(stack, 0); setDelay(stack, altConfig.rateOfFire); - player.inventory.consumeInventoryItem(ModItems.gun_osipr_ammo2); } else if(i > 0) setCharge(stack, i + 1); diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index 295c719a59..a986c72e80 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (3519)"; + public static final String VERSION = "1.0.27 BETA (3522)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/com/hbm/main/ClientProxy.java b/com/hbm/main/ClientProxy.java index 0c3619f6ad..212c5dbd77 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -21,10 +21,10 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.*; import com.hbm.entity.effect.*; import com.hbm.entity.grenade.*; import com.hbm.entity.item.EntityMinecartTest; +import com.hbm.entity.item.EntityMovingItem; import com.hbm.entity.logic.*; import com.hbm.entity.missile.*; import com.hbm.entity.mob.*; @@ -60,6 +60,7 @@ import com.hbm.render.entity.effect.TSmokeRenderer; import com.hbm.render.entity.item.RenderBomber; import com.hbm.render.entity.item.RenderMinecartTest; +import com.hbm.render.entity.item.RenderMovingItem; import com.hbm.render.entity.mob.RenderCyberCrab; import com.hbm.render.entity.mob.RenderHunterChopper; import com.hbm.render.entity.mob.RenderNuclearCreeper; @@ -139,6 +140,7 @@ public void registerRenderInfo() RenderingRegistry.registerBlockHandler(new RenderBarbedWire()); RenderingRegistry.registerBlockHandler(new RenderAntennaTop()); RenderingRegistry.registerBlockHandler(new RenderConserve()); + RenderingRegistry.registerBlockHandler(new RenderConveyor()); MinecraftForgeClient.registerItemRenderer(ModItems.assembly_template, new ItemRenderTemplate()); MinecraftForgeClient.registerItemRenderer(ModItems.chemistry_template, new ItemRenderTemplate()); @@ -227,6 +229,7 @@ public void registerRenderInfo() MinecraftForgeClient.registerItemRenderer(ModItems.gun_supershotgun, new ItemRenderWeaponObj()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_ks23, new ItemRenderWeaponObj()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_flamer, new ItemRenderWeaponObj()); + MinecraftForgeClient.registerItemRenderer(ModItems.gun_flechette, new ItemRenderWeaponObj()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBombMulti.class, new RenderBombMulti()); @@ -405,6 +408,8 @@ public void registerRenderInfo() RenderingRegistry.registerEntityRenderingHandler(EntityMinecartTest.class, new RenderMinecartTest()); + RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityNukePrototype.class, new RenderNukePrototype()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityLaunchPad.class, new RenderLaunchPadTier1()); @@ -799,6 +804,14 @@ public void effectNT(NBTTagCompound data) { if("cloud".equals(data.getString("mode"))) { fx = new net.minecraft.client.particle.EntityCloudFX(world, x, y, z, mX, mY, mZ); } + + if("reddust".equals(data.getString("mode"))) { + fx = new net.minecraft.client.particle.EntityReddustFX(world, x, y, z, (float)mX, (float)mY, (float)mZ); + } + + if("bluedust".equals(data.getString("mode"))) { + fx = new net.minecraft.client.particle.EntityReddustFX(world, x, y, z, 0.01F, 0.01F, 1F); + } if(fx != null) Minecraft.getMinecraft().effectRenderer.addEffect(fx); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 15e538cf39..69801fc029 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -696,6 +696,7 @@ public static void reg2() { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_bf, 1), new Object[] { "LLL", "WFW", "SSS", 'S', ModItems.plate_paa, 'L', "plateDenseLead", 'W', ModItems.wire_advanced_alloy, 'F', ModItems.gun_mirv })); GameRegistry.addRecipe(new ItemStack(ModItems.gun_bf_ammo, 1), new Object[] { "AEA", "SHS", "AEA", 'H', ModItems.hull_small_steel, 'A', ModItems.cell_antimatter, 'S', ModItems.cell_anti_schrabidium, 'E', ModItems.powder_power }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_mp40, 1), new Object[] { "IIM", " SW", " S ", 'S', "plateSteel", 'I', "ingotSteel", 'W', "plankWood", 'M', ModItems.mechanism_rifle_2 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_flechette, 1), new Object[] { "PPM", "TIS", "G ", 'P', "plateSteel", 'M', ModItems.mechanism_rifle_2, 'T', ModItems.hull_small_steel, 'I', "ingotSteel", 'S', ModItems.ingot_polymer, 'G', ModItems.mechanism_launcher_1 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_uboinik, 1), new Object[] { "IIM", "SPW", 'P', "plateSteel", 'I', "ingotSteel", 'W', "plankWood", 'S', Items.stick, 'M', ModItems.mechanism_revolver_2 })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_ks23, 1), new Object[] { "PPM", "SWL", 'P', "plateSteel", 'M', ModItems.mechanism_rifle_1, 'S', Items.stick, 'W', ModItems.wire_tungsten, 'L', "logWood" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.gun_xvl1456, 1), new Object[] { "PBB", "ACC", "PRY", 'P', "plateSteel", 'R', ModItems.redcoil_capacitor, 'A', ModItems.coil_advanced_alloy, 'B', ModItems.battery_generic, 'C', ModItems.coil_advanced_torus, 'Y', ModItems.mechanism_special })); @@ -753,44 +754,47 @@ public static void reg2() { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.ammo_20gauge_slug, 1), new Object[] { ModItems.gun_bolt_action_ammo }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', "nuggetLead" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_iron, 16), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_iron, 16), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', ModItems.ballistite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_steel, 16), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_steel, 16), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.ingot_u235, 'G', ModItems.cordite, 'C', "paneGlassColorless", 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.ingot_pu239, 'G', ModItems.cordite, 'C', "paneGlassColorless", 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', "paneGlassColorless", 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 16), new Object[] { " I", "GC", " P", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', "paneGlassColorless", 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_gold, 16), new Object[] { " I", "GC", " P", 'I', "ingotGold", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_schrabidium, 16), new Object[] { " I ", "GCN", " P ", 'I', "ingotSchrabidium", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357, 'N', Items.nether_star })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nightmare, 16), new Object[] { " I", "GC", " P", 'I', "ingotTungsten", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_desh, 16), new Object[] { " I", "GC", " P", 'I', "ingotDesh", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_smg, 24), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_smg, 24), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_uzi, 24), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_uzi, 24), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lacunae, 24), new Object[] { " I", "GC", " P", 'I', "ingotCopper", 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nopip, 16), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nopip, 16), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 })); - GameRegistry.addRecipe(new ItemStack(ModItems.ammo_12gauge, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); - GameRegistry.addRecipe(new ItemStack(ModItems.ammo_12gauge, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); - GameRegistry.addRecipe(new ItemStack(ModItems.ammo_4gauge, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - GameRegistry.addRecipe(new ItemStack(ModItems.ammo_4gauge, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_4gauge_slug, 8), new Object[] { " I ", "GCL", " P ", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_4gauge_slug, 8), new Object[] { " I ", "GCL", " P ", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_iron, 24), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', ModItems.ballistite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_steel, 24), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', ModItems.ingot_u235, 'G', ModItems.cordite, 'C', "paneGlassColorless", 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', ModItems.ingot_pu239, 'G', ModItems.cordite, 'C', "paneGlassColorless", 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', ModItems.trinitite, 'G', ModItems.cordite, 'C', "paneGlassColorless", 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lead, 24), new Object[] { " I", "GC", " P", 'I', ModItems.nuclear_waste_tiny, 'G', ModItems.cordite, 'C', "paneGlassColorless", 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_gold, 24), new Object[] { " I", "GC", " P", 'I', "ingotGold", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_schrabidium, 6), new Object[] { " I ", "GCN", " P ", 'I', "ingotSchrabidium", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357, 'N', Items.nether_star })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nightmare, 24), new Object[] { " I", "GC", " P", 'I', "ingotTungsten", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_desh, 24), new Object[] { " I", "GC", " P", 'I', "ingotDesh", 'G', ModItems.cordite, 'C', ModItems.casing_357, 'P', ModItems.primer_357 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_smg, 32), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_556, 32), new Object[] { " I", "GC", " P", 'I', "ingotSteel", 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_k, 32), new Object[] { "G", "C", "P", 'G', Items.gunpowder, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_k, 32), new Object[] { "G", "C", "P", 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_uzi, 32), new Object[] { " I", "GC", " P", 'I', "ingotIron", 'G', ModItems.ballistite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_lacunae, 32), new Object[] { " I", "GC", " P", 'I', "ingotCopper", 'G', ModItems.cordite, 'C', ModItems.casing_9, 'P', ModItems.primer_9 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_nopip, 24), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_44, 'P', ModItems.primer_44 })); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_12gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', ModItems.plate_polymer }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_4gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_4gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_4gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer })); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_4gauge_explosive, 4), new Object[] { " I ", "GCL", " P ", 'I', Blocks.tnt, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_4gauge_explosive, 4), new Object[] { " I ", "GCL", " P ", 'I', Blocks.tnt, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'L', ModItems.plate_polymer }); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_slug, 8), new Object[] { " I ", "GCL", " P ", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_slug, 8), new Object[] { " I ", "GCL", " P ", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_explosive, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_explosive, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_flechette, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_flechette, 8), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); - GameRegistry.addRecipe(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 8), new Object[] { "I", "C", "P", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_calamity, 8), new Object[] { " I ", "GCG", " P ", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 })); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_actionexpress, 8), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_buckshot, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_slug, 12), new Object[] { " I ", "GCL", " P ", 'I', "ingotLead", 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_explosive, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_explosive, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_cluster, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_flechette, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.cordite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_20gauge_flechette, 12), new Object[] { " I ", "GCL", " P ", 'I', ModItems.pellet_flechette, 'G', ModItems.ballistite, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot, 'L', "plateCopper" })); + GameRegistry.addRecipe(new ItemStack(ModItems.gun_revolver_nightmare2_ammo, 6), new Object[] { "I", "C", "P", 'I', ModItems.powder_power, 'C', ModItems.casing_buckshot, 'P', ModItems.primer_buckshot }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_calamity, 12), new Object[] { " I ", "GCG", " P ", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.assembly_actionexpress, 12), new Object[] { " I", "GC", " P", 'I', "ingotLead", 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50 })); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_12gauge_incendiary, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_12gauge, 'A', ModItems.powder_fire }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_12gauge_shrapnel, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_12gauge, 'A', ModBlocks.gravel_obsidian }); @@ -816,11 +820,21 @@ public static void reg2() { GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50bmg_incendiary, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_50bmg, 'A', ModItems.powder_fire }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50bmg_phosphorus, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_50bmg, 'A', ModItems.ingot_phosphorus }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50bmg_explosive, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_50bmg, 'A', Blocks.tnt }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50bmg_ap, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_50bmg, 'A', ModItems.ingot_dura_steel }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50bmg_du, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_50bmg, 'A', ModItems.ingot_u238 }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50bmg_star, 4), new Object[] { " B ", "BAB", " B ", 'B', ModItems.ammo_50bmg_du, 'A', ModItems.ingot_starmetal }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50ae_ap, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_50ae, 'A', ModItems.ingot_dura_steel }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50ae_du, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_50ae, 'A', ModItems.ingot_u238 }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_50ae_star, 4), new Object[] { " B ", "BAB", " B ", 'B', ModItems.ammo_50ae_du, 'A', ModItems.ingot_starmetal }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_phosphorus, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_556, 'A', ModItems.ingot_phosphorus }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_ap, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_556, 'A', ModItems.ingot_dura_steel }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_du, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_556, 'A', ModItems.ingot_u238 }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_star, 4), new Object[] { " B ", "BAB", " B ", 'B', ModItems.ammo_556_du, 'A', ModItems.ingot_starmetal }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_tracer, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_556, 'A', Items.redstone }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_flechette, 4), new Object[] { " B ", "BAB", " B ", 'B', ModItems.ammo_556, 'A', ModItems.pellet_flechette }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_flechette_incendiary, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_556_flechette, 'A', ModItems.powder_fire }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_flechette_phosphorus, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_556_flechette, 'A', ModItems.ingot_phosphorus }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_556_flechette_du, 8), new Object[] { "BBB", "BAB", "BBB", 'B', ModItems.ammo_556_flechette, 'A', ModItems.ingot_u238 }); GameRegistry.addRecipe(new ItemStack(ModItems.folly_bullet, 1), new Object[] { " S ", "STS", "SMS", 'S', ModItems.ingot_starmetal, 'T', ModItems.powder_magic, 'M', ModBlocks.block_meteor }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.folly_bullet_nuclear, 1), new Object[] { " N ", "UTU", "UTU", 'N', ModItems.gun_fatman_ammo, 'U', "ingotIron", 'T', "blockTungsten" })); @@ -846,6 +860,8 @@ public static void reg2() { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", " P ", 'T', Items.gunpowder, 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', "plateIron" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_grenade, 2), new Object[] { " T ", "GCI", " P ", 'T', Items.gunpowder, 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', "plateIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_grenade_tracer, 2), new Object[] { " T ", "GCI", " P ", 'T', "dustLapis", 'G', ModItems.cordite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', "plateIron" })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_grenade_tracer, 2), new Object[] { " T ", "GCI", " P ", 'T', "dustLapis", 'G', ModItems.ballistite, 'C', ModItems.casing_50, 'P', ModItems.primer_50, 'I', "plateIron" })); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_grenade_he, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', Blocks.tnt }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_grenade_incendiary, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ModItems.powder_fire }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_grenade_phosphorus, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', ModItems.ingot_phosphorus }); @@ -853,6 +869,7 @@ public static void reg2() { GameRegistry.addRecipe(new ItemStack(ModItems.ammo_grenade_concussion, 2), new Object[] { "GIG", 'G', ModItems.ammo_grenade, 'I', Items.glowstone_dust }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_grenade_nuclear, 2), new Object[] { " P ", "GIG", " P ", 'G', ModItems.ammo_grenade, 'I', ModItems.neutron_reflector, 'P', ModItems.nugget_pu239 }); GameRegistry.addRecipe(new ItemStack(ModItems.ammo_grenade_finned, 1), new Object[] { "G", "R", 'G', Items.feather, 'R', ModItems.ammo_grenade }); + GameRegistry.addRecipe(new ItemStack(ModItems.ammo_grenade_kampf, 2), new Object[] { "G", "R", 'G', ModItems.ammo_rocket, 'R', ModItems.ammo_grenade }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_fuel, 1), new Object[] { " P ", "BDB", " P ", 'P', "plateSteel", 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_fuel })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ammo_fuel_napalm, 1), new Object[] { " P ", "BDB", " P ", 'P', "plateSteel", 'B', ModItems.bolt_tungsten, 'D', ModItems.canister_napalm })); diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 0a9aafbb09..752beb5d24 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -37,11 +37,11 @@ import org.apache.logging.log4j.Logger; import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.*; import com.hbm.creativetabs.*; import com.hbm.entity.effect.*; import com.hbm.entity.grenade.*; import com.hbm.entity.item.EntityMinecartTest; +import com.hbm.entity.item.EntityMovingItem; import com.hbm.entity.logic.*; import com.hbm.entity.missile.*; import com.hbm.entity.mob.*; @@ -326,6 +326,10 @@ public class MainRegistry public static boolean dropStar = true; public static boolean dropCrys = true; public static boolean dropDead = true; + + public static int recursionDepth = 500; + public static boolean recursiveStone = true; + public static boolean recursiveNetherrack = true; public static int taintID = 62; public static int radiationID = 63; @@ -703,6 +707,7 @@ public void PreLoad(FMLPreInitializationEvent PreEvent) EntityRegistry.registerModEntity(EntityBuilding.class, "entity_falling_building", 143, this, 1000, 1, true); EntityRegistry.registerModEntity(EntitySoyuz.class, "entity_soyuz", 144, this, 1000, 1, true); EntityRegistry.registerModEntity(EntitySoyuzCapsule.class, "entity_soyuz_capsule", 145, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntityMovingItem.class, "entity_c_item", 146, this, 1000, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); @@ -1853,6 +1858,11 @@ public void preInit(FMLPreInitializationEvent event) dropStar = createConfigBool(config, CATEGORY_DROPS, "10.02_dropStar", "Whether rigged star blaster cells should explode when dropped", true); dropCrys = createConfigBool(config, CATEGORY_DROPS, "10.04_dropCrys", "Whether xen crystals should move blocks when dropped", true); dropDead = createConfigBool(config, CATEGORY_DROPS, "10.05_dropDead", "Whether dead man's explosives should explode when dropped", true); + + final String CATEGORY_TOOLS = "11_tools"; + recursionDepth = createConfigInt(config, CATEGORY_TOOLS, "11.00_recursionDepth", "Limits veinminer's recursive function. Usually not an issue, unless you're using bukkit which is especially sensitive for some reason.", 1000); + recursiveStone = createConfigBool(config, CATEGORY_TOOLS, "11.01_recursionDepth", "Determines whether veinminer can break stone", true); + recursiveNetherrack = createConfigBool(config, CATEGORY_TOOLS, "11.02_recursionDepth", "Determines whether veinminer can break netherrack", true); config.save(); diff --git a/com/hbm/main/ModEventHandler.java b/com/hbm/main/ModEventHandler.java index 33bdfdc3c1..783ad77248 100644 --- a/com/hbm/main/ModEventHandler.java +++ b/com/hbm/main/ModEventHandler.java @@ -283,10 +283,13 @@ public void worldTick(WorldTickEvent event) { if(eRad < 200 || entity instanceof EntityNuclearCreeper || entity instanceof EntityMooshroom || entity instanceof EntityZombie || entity instanceof EntitySkeleton) continue; + if(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode) + continue; + if(eRad > 2500) entity.getEntityData().setFloat("hfr_radiation", 2500); - if(eRad >= 1000 && !(entity instanceof EntityPlayer && ((EntityPlayer)entity).capabilities.isCreativeMode)) { + if(eRad >= 1000) { if(entity.attackEntityFrom(ModDamageSource.radiation, entity.getMaxHealth() * 100)) { entity.getEntityData().setFloat("hfr_radiation", 0); @@ -351,13 +354,6 @@ public void worldTick(WorldTickEvent event) { } } /// RADIATION STUFF END /// - - ////////////////////// - /*} catch(Exception x) { - - MainRegistry.logger.error("Ouchie, something has happened in the NTM world tick event."); - }*/ - ////////////////////// } @SubscribeEvent @@ -386,9 +382,9 @@ public void onEntityAttacked(LivingAttackEvent event) { if((helmet != null || noHelmet) && plate != null && legs != null && boots != null) { - if((noHelmet || chestplate.getArmorMaterial() == ((ArmorFSB)helmet.getItem()).getArmorMaterial()) && - chestplate.getArmorMaterial() == ((ArmorFSB)legs.getItem()).getArmorMaterial() && - chestplate.getArmorMaterial() == ((ArmorFSB)boots.getItem()).getArmorMaterial()) { + 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(); @@ -421,9 +417,9 @@ public void onEntityDamaged(LivingHurtEvent event) { if((helmet != null || noHelmet) && plate != null && legs != null && boots != null) { - if((noHelmet || chestplate.getArmorMaterial() == ((ArmorFSB)helmet.getItem()).getArmorMaterial()) && - chestplate.getArmorMaterial() == ((ArmorFSB)legs.getItem()).getArmorMaterial() && - chestplate.getArmorMaterial() == ((ArmorFSB)boots.getItem()).getArmorMaterial()) { + 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; diff --git a/com/hbm/main/ModEventHandlerClient.java b/com/hbm/main/ModEventHandlerClient.java index 4dc5ed752d..06da88df42 100644 --- a/com/hbm/main/ModEventHandlerClient.java +++ b/com/hbm/main/ModEventHandlerClient.java @@ -62,8 +62,8 @@ public void onOverlayRender(RenderGameOverlayEvent.Pre event) { int count = ItemGunBase.getMag(player.getHeldItem()); int max = gcfg.ammoCap; - if(gcfg.reloadType == gcfg.RELOAD_NONE) { - ammo = ItemGunBase.getBeltType(player, player.getHeldItem()); + if(gcfg.reloadType == GunConfiguration.RELOAD_NONE) { + ammo = ItemGunBase.getBeltType(player, player.getHeldItem(), true); count = ItemGunBase.getBeltSize(player, ammo); max = -1; } @@ -71,6 +71,16 @@ public void onOverlayRender(RenderGameOverlayEvent.Pre event) { int dura = ItemGunBase.getItemWear(player.getHeldItem()) * 50 / gcfg.durability; RenderScreenOverlay.renderAmmo(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo, count, max, dura); + + if(gun.altConfig != null && gun.altConfig.reloadType == GunConfiguration.RELOAD_NONE) { + Item oldAmmo = ammo; + ammo = ItemGunBase.getBeltType(player, player.getHeldItem(), false); + + if(ammo != oldAmmo) { + count = ItemGunBase.getBeltSize(player, ammo); + RenderScreenOverlay.renderAmmoAlt(event.resolution, Minecraft.getMinecraft().ingameGUI, ammo, count); + } + } } if(event.type == ElementType.HOTBAR) { diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 2267dbbaf9..61ba18f278 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -153,6 +153,9 @@ public class ResourceManager { public static final IModelCustom teslacrab = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/teslacrab.obj")); public static final IModelCustom taintcrab = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/mobs/taintcrab.obj")); + //Belt + public static final IModelCustom arrow = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/blocks/arrow.obj")); + ////Textures TEs public static final ResourceLocation universal = new ResourceLocation(RefStrings.MODID, "textures/models/TheGadget3_.png"); @@ -299,6 +302,7 @@ public class ResourceManager { public static final IModelCustom shotty = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/supershotty.obj")); public static final IModelCustom ks23 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/ks23.obj")); public static final IModelCustom flamer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/flamer.obj")); + public static final IModelCustom flechette = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/flechette.obj")); ////Texture Items @@ -313,6 +317,17 @@ public class ResourceManager { public static final ResourceLocation deagle_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/deagle.png"); public static final ResourceLocation ks23_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/ks23.png"); public static final ResourceLocation flamer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flamer.png"); + public static final ResourceLocation flechette_body = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_body.png"); + public static final ResourceLocation flechette_barrel = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_barrel.png"); + public static final ResourceLocation flechette_gren_tube = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_gren_tube.png"); + public static final ResourceLocation flechette_grenades = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_grenades.png"); + public static final ResourceLocation flechette_pivot = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_pivot.png"); + public static final ResourceLocation flechette_top = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_top.png"); + public static final ResourceLocation flechette_chamber = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_chamber.png"); + public static final ResourceLocation flechette_base = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_base.png"); + public static final ResourceLocation flechette_drum = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_drum.png"); + public static final ResourceLocation flechette_trigger = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_trigger.png"); + public static final ResourceLocation flechette_stock = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/flechette_stock.png"); diff --git a/com/hbm/render/block/RenderConveyor.java b/com/hbm/render/block/RenderConveyor.java new file mode 100644 index 0000000000..891852856a --- /dev/null +++ b/com/hbm/render/block/RenderConveyor.java @@ -0,0 +1,80 @@ +package com.hbm.render.block; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +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 RenderConveyor 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.125, 0); + tessellator.startDrawingQuads(); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.arrow, 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; + } + + float rotation = 0; + + if(world.getBlockMetadata(x, y, z) == 3) + rotation = 180F / 180F * (float)Math.PI; + + if(world.getBlockMetadata(x, y, z) == 4) + rotation = 90F / 180F * (float)Math.PI; + + if(world.getBlockMetadata(x, y, z) == 5) + rotation = 270F / 180F * (float)Math.PI; + + tessellator.addTranslation(x + 0.5F, y, z + 0.5F); + ObjUtil.renderWithIcon((WavefrontObject) ResourceManager.arrow, iicon, tessellator, rotation, 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 334086; + } + +} diff --git a/com/hbm/render/entity/item/RenderMovingItem.java b/com/hbm/render/entity/item/RenderMovingItem.java new file mode 100644 index 0000000000..30f1c04028 --- /dev/null +++ b/com/hbm/render/entity/item/RenderMovingItem.java @@ -0,0 +1,48 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.item.EntityMovingItem; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; + +public class RenderMovingItem extends Render { + + @Override + public void doRender(Entity entity, double x, double y, double z, float f1, float f2) { + + GL11.glPushMatrix(); + GL11.glTranslated(x, y, z); + + EntityMovingItem item = (EntityMovingItem)entity; + ItemStack stack = item.getItemStack(); + + if(!(stack.getItem() instanceof ItemBlock)) { + GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F); + GL11.glTranslated(0.0, -0.1875, 0.0); + } + + EntityItem dummy = new EntityItem(entity.worldObj, 0, 0, 0, stack); + dummy.getEntityItem().stackSize = 1; + dummy.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + RenderManager.instance.renderEntityWithPosYaw(dummy, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return null; + } + +} diff --git a/com/hbm/render/entity/projectile/RenderBullet.java b/com/hbm/render/entity/projectile/RenderBullet.java index cb892f7517..5d4cff3037 100644 --- a/com/hbm/render/entity/projectile/RenderBullet.java +++ b/com/hbm/render/entity/projectile/RenderBullet.java @@ -146,6 +146,8 @@ private void renderGrenade(int type) { bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenadeToxic.png")); break; case 4: bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenadeSleek.png")); break; + case 5: + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/entity/ModelGrenadeTraining.png")); break; } grenade.renderAll(0.0625F); diff --git a/com/hbm/render/item/ItemRenderMP.java b/com/hbm/render/item/ItemRenderMP.java index 4a7a2f1b72..686fc811d8 100644 --- a/com/hbm/render/item/ItemRenderMP.java +++ b/com/hbm/render/item/ItemRenderMP.java @@ -32,40 +32,42 @@ public boolean handleRenderType(ItemStack item, ItemRenderType type) { @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_ROTATION || helper == ItemRendererHelper.ENTITY_BOBBING); } @Override public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + + GL11.glPushMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP.png")); + switch(type) { case EQUIPPED_FIRST_PERSON: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP.png")); - GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(-0.5F, 0.0F, -0.2F); - //GL11.glScalef(2.0F, 2.0F, 2.0F); - GL11.glScalef(0.5F, 0.5F, 0.5F); - GL11.glTranslatef(-0.4F, -0.1F, 0.1F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); + GL11.glTranslatef(1.0F, 0.75F, 0.0F); + GL11.glRotatef(150F, 0.0F, 0.0F, -1.0F); + GL11.glScalef(0.75F, 0.75F, 0.75F); + swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); break; + case EQUIPPED: + GL11.glTranslatef(0.35F, 0.5F, 0.0F); + GL11.glRotatef(100F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(170F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(15F, 0.0F, 0.0F, -1.0F); + GL11.glScalef(0.75F, 0.75F, 0.75F); + swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + break; + case ENTITY: - GL11.glPushMatrix(); - GL11.glEnable(GL11.GL_CULL_FACE); - Minecraft.getMinecraft().renderEngine.bindTexture(new ResourceLocation(RefStrings.MODID +":textures/models/ModelMP.png")); - GL11.glRotatef(-200.0F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(75.0F, 0.0F, 1.0F, 0.0F); - GL11.glRotatef(-30.0F, 1.0F, 0.0F, 0.0F); - GL11.glTranslatef(0.0F, -0.2F, -0.5F); - GL11.glRotatef(-5.0F, 0.0F, 0.0F, 1.0F); - GL11.glTranslatef(0.5F, -0.2F, 0.0F); - GL11.glScalef(0.75F, 0.75F, 0.75F); - GL11.glTranslatef(-0.8F, -0.1F, 0.0F); - swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); - GL11.glPopMatrix(); + GL11.glTranslatef(0.0F, 1.0F, 0.0F); + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + GL11.glScalef(0.75F, 0.75F, 0.75F); + swordModel.render((Entity)data[1], 0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); + break; + default: break; } + + GL11.glPopMatrix(); } } diff --git a/com/hbm/render/item/ItemRenderWeaponObj.java b/com/hbm/render/item/ItemRenderWeaponObj.java index 5296d07fab..c536933257 100644 --- a/com/hbm/render/item/ItemRenderWeaponObj.java +++ b/com/hbm/render/item/ItemRenderWeaponObj.java @@ -21,7 +21,9 @@ public boolean handleRenderType(ItemStack item, ItemRenderType type) { case ENTITY: return true; case INVENTORY: - return item.getItem() == ModItems.gun_ks23 || item.getItem() == ModItems.gun_hk69 || item.getItem() == ModItems.gun_flamer; + return item.getItem() == ModItems.gun_ks23 || item.getItem() == ModItems.gun_hk69 + || item.getItem() == ModItems.gun_flamer || item.getItem() == ModItems.gun_deagle + || item.getItem() == ModItems.gun_flechette; default: return false; } } @@ -121,6 +123,19 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { GL11.glTranslatef(0.75F, 0.2F, 0.3F); } } + + if(item.getItem() == ModItems.gun_flechette) { + GL11.glRotatef(25F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(1.0F, -1.0F, -0.0F); + GL11.glRotatef(170F, 0.0F, 1.0F, 0.0F); + GL11.glScaled(0.25, 0.25, 0.25); + + if(player.isSneaking()) { + GL11.glRotatef(5F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-2F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(-2.0F, 1.2F, 3.7F); + } + } break; @@ -160,6 +175,13 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { GL11.glTranslatef(0.4F, -0.25F, 0.2F); GL11.glScaled(0.35, 0.35, 0.35); } + + if(item.getItem() == ModItems.gun_flechette) { + GL11.glRotatef(35F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-1.4F, -0.55F, 0.0F); + GL11.glScaled(0.125, 0.125, 0.125); + } break; @@ -167,12 +189,13 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { if(item.getItem() == ModItems.gun_hk69) { GL11.glTranslatef(0.0F, 0.2F, 0.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); GL11.glScaled(0.75, 0.75, 0.75); } if(item.getItem() == ModItems.gun_deagle) { GL11.glTranslatef(0.0F, 0.2F, 0.0F); + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); GL11.glScaled(0.25, 0.25, 0.25); } @@ -181,17 +204,22 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { } if(item.getItem() == ModItems.gun_ks23) { - GL11.glTranslatef(0.5F, 0.2F, 0.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.0F, 0.2F, 0.5F); GL11.glScaled(0.75, 0.75, 0.75); } if(item.getItem() == ModItems.gun_flamer) { - GL11.glTranslatef(-0.25F, 0.2F, 0.0F); - GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(0.25F, 0.2F, 0.0F); + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); GL11.glScaled(0.25, 0.25, 0.25); } + if(item.getItem() == ModItems.gun_flechette) { + GL11.glTranslatef(-0.25F, 0.0F, 0.0F); + GL11.glScaled(0.125, 0.125, 0.125); + } + break; case INVENTORY: @@ -206,6 +234,14 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); } + if(item.getItem() == ModItems.gun_deagle) { + GL11.glScaled(2.5, 2.5, -2.5); + GL11.glTranslatef(3.5F, 3F, 0.0F); + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); + } + if(item.getItem() == ModItems.gun_ks23) { GL11.glScaled(7.5, 7.5, -7.5); GL11.glTranslatef(0.65F, 0.4F, 0.0F); @@ -222,6 +258,13 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { GL11.glRotatef(-45F, 1.0F, 0.0F, 0.0F); } + if(item.getItem() == ModItems.gun_flechette) { + GL11.glScaled(1.2, 1.2, -1.2); + GL11.glTranslatef(2.5F, 8.0F, 0.0F); + GL11.glRotatef(180F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(-45F, 0.0F, 0.0F, 1.0F); + } + break; default: break; @@ -256,8 +299,39 @@ public void renderItem(ItemRenderType type, ItemStack item, Object... data) { ResourceManager.flamer.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); } + + if(item.getItem() == ModItems.gun_flechette) { + renderFlechette(); + } GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } + + public void renderFlechette() { + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_body); + ResourceManager.flechette.renderPart("body"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_chamber); + ResourceManager.flechette.renderPart("chamber"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_barrel); + ResourceManager.flechette.renderPart("barrel"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_gren_tube); + ResourceManager.flechette.renderPart("gren_tube"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_grenades); + ResourceManager.flechette.renderPart("grenades"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_pivot); + ResourceManager.flechette.renderPart("pivot"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_top); + ResourceManager.flechette.renderPart("top"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_drum); + ResourceManager.flechette.renderPart("drum"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_base); + ResourceManager.flechette.renderPart("base"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_trigger); + ResourceManager.flechette.renderPart("trigger"); + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.flechette_stock); + ResourceManager.flechette.renderPart("stock"); + GL11.glShadeModel(GL11.GL_FLAT); + } } diff --git a/com/hbm/render/tileentity/RenderEPress.java b/com/hbm/render/tileentity/RenderEPress.java index 5faeba8ef7..fbda982f08 100644 --- a/com/hbm/render/tileentity/RenderEPress.java +++ b/com/hbm/render/tileentity/RenderEPress.java @@ -11,7 +11,6 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -106,13 +105,13 @@ public void renderTileEntityAt3(TileEntity tileentity, double x, double y, doubl TileEntityMachineEPress press = (TileEntityMachineEPress)tileentity; ItemStack stack = new ItemStack(Item.getItemById(press.item), 1, press.meta); - if(!(stack.getItem() instanceof ItemBlock)) { - EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); - - RenderItem.renderInFrame = true; - this.itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderItem.renderInFrame = false; - } + EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + item.getEntityItem().stackSize = 1; + item.hoverStart = 0.0F; + + RenderItem.renderInFrame = true; + this.itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; GL11.glPopMatrix(); } diff --git a/com/hbm/render/tileentity/RenderPress.java b/com/hbm/render/tileentity/RenderPress.java index cdd38987c7..94358f962f 100644 --- a/com/hbm/render/tileentity/RenderPress.java +++ b/com/hbm/render/tileentity/RenderPress.java @@ -11,7 +11,6 @@ import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.entity.item.EntityItem; import net.minecraft.item.Item; -import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; @@ -70,14 +69,14 @@ public void renderTileEntityAt3(TileEntity tileEntity, double x, double y, doubl TileEntityMachinePress press = (TileEntityMachinePress)tileEntity; ItemStack stack = new ItemStack(Item.getItemById(press.item), 1, press.meta); - if(!(stack.getItem() instanceof ItemBlock)) { - EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + EntityItem item = new EntityItem(null, 0.0D, 0.0D, 0.0D, stack); + item.getEntityItem().stackSize = 1; + item.hoverStart = 0.0F; - RenderItem.renderInFrame = true; - GL11.glTranslatef(0.0F, 1.0F - 0.0625F * 165/100, 0.0F); - this.itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); - RenderItem.renderInFrame = false; - } + RenderItem.renderInFrame = true; + GL11.glTranslatef(0.0F, 1.0F - 0.0625F * 165/100, 0.0F); + this.itemRenderer.doRender(item, 0.0D, 0.0D, 0.0D, 0.0F, 0.0F); + RenderItem.renderInFrame = false; GL11.glPopMatrix(); } diff --git a/com/hbm/render/util/RenderScreenOverlay.java b/com/hbm/render/util/RenderScreenOverlay.java index 585405e7d2..11b8b08298 100644 --- a/com/hbm/render/util/RenderScreenOverlay.java +++ b/com/hbm/render/util/RenderScreenOverlay.java @@ -137,6 +137,30 @@ public static void renderAmmo(ScaledResolution resolution, Gui gui, Item ammo, i Minecraft.getMinecraft().renderEngine.bindTexture(hud); } + public static void renderAmmoAlt(ScaledResolution resolution, Gui gui, Item ammo, int count) { + + GL11.glPushMatrix(); + + Minecraft mc = Minecraft.getMinecraft(); + + int pX = resolution.getScaledWidth() / 2 + 62 + 36 + 18; + int pZ = resolution.getScaledHeight() - 21 - 16; + + Minecraft.getMinecraft().renderEngine.bindTexture(misc); + + Minecraft.getMinecraft().fontRenderer.drawString(count + "x", pX + 16, pZ + 6, 0xFFFFFF); + + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + RenderHelper.enableGUIStandardItemLighting(); + itemRenderer.renderItemAndEffectIntoGUI(mc.fontRenderer, mc.getTextureManager(), new ItemStack(ammo), pX, pZ); + RenderHelper.disableStandardItemLighting(); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + + GL11.glPopMatrix(); + Minecraft.getMinecraft().renderEngine.bindTexture(hud); + } + public enum Crosshair { NONE(0, 0, 0), diff --git a/com/hbm/blocks/machine/TileEntityGeiger.java b/com/hbm/tileentity/machine/TileEntityGeiger.java similarity index 97% rename from com/hbm/blocks/machine/TileEntityGeiger.java rename to com/hbm/tileentity/machine/TileEntityGeiger.java index 336cf25f36..bf54b489d6 100644 --- a/com/hbm/blocks/machine/TileEntityGeiger.java +++ b/com/hbm/tileentity/machine/TileEntityGeiger.java @@ -1,4 +1,4 @@ -package com.hbm.blocks.machine; +package com.hbm.tileentity.machine; import java.util.ArrayList; import java.util.List; diff --git a/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 6c68f9d292..1cb5ac460e 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -365,26 +365,30 @@ public void updateEntity() { //OUTPUT if(te1 instanceof TileEntityChest) { TileEntityChest chest = (TileEntityChest)te1; - - tryFillContainer(chest, 5); + + for(int i = 5; i < 9; i++) + tryFillContainer(chest, i); } if(te1 instanceof TileEntityHopper) { TileEntityHopper hopper = (TileEntityHopper)te1; - tryFillContainer(hopper, 5); + for(int i = 5; i < 9; i++) + tryFillContainer(hopper, i); } if(te1 instanceof TileEntityCrateIron) { - TileEntityCrateIron hopper = (TileEntityCrateIron)te1; + TileEntityCrateIron crate = (TileEntityCrateIron)te1; - tryFillContainer(hopper, 5); + for(int i = 5; i < 9; i++) + tryFillContainer(crate, i); } if(te1 instanceof TileEntityCrateSteel) { - TileEntityCrateSteel hopper = (TileEntityCrateSteel)te1; + TileEntityCrateSteel crate = (TileEntityCrateSteel)te1; - tryFillContainer(hopper, 5); + for(int i = 5; i < 9; i++) + tryFillContainer(crate, i); } //INPUT