diff --git a/assets/hbm/lang/de_DE.lang b/assets/hbm/lang/de_DE.lang index d8d5ed1a7..fe54fafb9 100644 --- a/assets/hbm/lang/de_DE.lang +++ b/assets/hbm/lang/de_DE.lang @@ -432,6 +432,8 @@ tile.compact_launcher.name=Kompakt-Startrampe container.compactLauncher=Kompakt-Startrampe tile.launch_table.name=Große Startrampe container.launchTable=Große Startrampe +tile.soyuz_launcher.name=Soyuz-Startplatform +container.soyuzLauncher=Soyuz-Startplatform tile.machine_missile_assembly.name=Raketenmontagestation container.missileAssembly=Raketenmontagestation tile.sat_dock.name=Frachtlandeplattform @@ -501,6 +503,8 @@ tile.machine_controller.name=Reaktorfernsteuerung container.reactorControl=Reaktorfernsteuerung tile.soyuz_capsule.name=Landekapsel container.soyuzCapsule=Landekapsel +tile.machine_crystallizer.name=Erzauflöser +container.crystallizer=Erzauflöser tile.barrel_plastic.name=Sicheres Fass™ tile.barrel_corroded.name=Verrostetes Fass @@ -738,6 +742,28 @@ item.wire_red_copper.name=Roter Kupferdraht item.neutron_reflector.name=Neutronenreflektor item.nugget_beryllium.name=Berylliumnugget +item.crystal_iron.name=Eisenkristalle +item.crystal_gold.name=Goldkristalle +item.crystal_redstone.name=Redstonekristalle +item.crystal_uranium.name=Urankristalle +item.crystal_thorium.name=Thoriumkristalle +item.crystal_plutonium.name=Plutoniumkristalle +item.crystal_titanium.name=Titankristalle +item.crystal_sulfur.name=Schwefelkristalle +item.crystal_niter.name=Salpeterkristalle +item.crystal_copper.name=Kupferkristalle +item.crystal_tungsten.name=Wolframkristalle +item.crystal_aluminium.name=Aluminiumkristalle +item.crystal_fluorite.name=Fluoritkristalle +item.crystal_beryllium.name=Berylliumkristalle +item.crystal_lead.name=Bleikristalle +item.crystal_schrabidium.name=Schrabidiumkristalle +item.crystal_rare.name=Seltenerdenkristalle +item.crystal_phosphorus.name=Phosphorkristalle +item.crystal_lithium.name=Lithiumkristalle +item.crystal_starmetal.name=Sternenmetallkristalle +item.crystal_trixite.name=Trixitkristalle + item.wire_aluminium.name=Aluminiumdraht item.wire_copper.name=Kupferdraht item.wire_gold.name=Golddraht @@ -2200,6 +2226,7 @@ item.shimmer_axe.name=Shimmer Axe item.euphemium_stopper.name=Stopper item.matchstick.name=Streichholz item.remote.name=Kaputte Fernbedienung +item.pch.name=Horse Nut Hammer item.shimmer_head.name=Schwerer Hammerkopf item.shimmer_axe_head.name=Schwerer Axtkopf @@ -2272,6 +2299,7 @@ item.bottle2_korl_special.name=Das erste Korl item.bottle2_fritz_special.name=Die erste Fritz-Kola item.bottle2_sunset.name=Sunset Sarsaparilla item.chocolate_milk.name=Schokomilch +item.cbt_device.name=CBT-Gerät item.cap_nuka.name=Nuka-Cola Kronkorken item.cap_quantum.name=Nuka Cola Quantum Kronkorken item.cap_sparkle.name=S~Cola Kronkorken diff --git a/assets/hbm/lang/en_US.lang b/assets/hbm/lang/en_US.lang index 2046499f5..403707f08 100644 --- a/assets/hbm/lang/en_US.lang +++ b/assets/hbm/lang/en_US.lang @@ -432,6 +432,8 @@ tile.compact_launcher.name=Compact Launch Pad container.compactLauncher=Compact Launch Pad tile.launch_table.name=Large Launch Pad container.launchTable=Large Launch Pad +tile.soyuz_launcher.name=Soyuz Launch Platform +container.soyuzLauncher=Soyuz Launch Platform tile.machine_missile_assembly.name=Missile Assembly Station container.missileAssembly=Missile Assembly Station tile.sat_dock.name=Cargo Landing Pad @@ -501,6 +503,8 @@ tile.machine_controller.name=Reactor Remote Control Block container.reactorControl=Reactor Remote Control Block tile.soyuz_capsule.name=Cargo Landing Capsule container.soyuzCapsule=Cargo Landing Capsule +tile.machine_crystallizer.name=Ore Acidizer +container.crystallizer=Ore Acidizer tile.barrel_plastic.name=Safe Barrel™ tile.barrel_corroded.name=Corroded Barrel @@ -738,6 +742,28 @@ item.wire_red_copper.name=Red Copper Wire item.neutron_reflector.name=Neutron Reflector item.nugget_beryllium.name=Beryllium Nugget +item.crystal_iron.name=Iron Crystals +item.crystal_gold.name=Gold Crystals +item.crystal_redstone.name=Redstone Crystals +item.crystal_uranium.name=Uranium Crystals +item.crystal_thorium.name=Thorium Crystals +item.crystal_plutonium.name=Plutonium Crystals +item.crystal_titanium.name=Titanium Crystals +item.crystal_sulfur.name=Sulfur Crystals +item.crystal_niter.name=Niter Crystals +item.crystal_copper.name=Copper Crystals +item.crystal_tungsten.name=Tungsten Crystals +item.crystal_aluminium.name=Aluminium Crystals +item.crystal_fluorite.name=Fluorite Crystals +item.crystal_beryllium.name=Beryllium Crystals +item.crystal_lead.name=Lead Crystals +item.crystal_schrabidium.name=Schrabidium Crystals +item.crystal_rare.name=Rare Earth Crystals +item.crystal_phosphorus.name=Phosphorus Crystals +item.crystal_lithium.name=Lithium Crystals +item.crystal_starmetal.name=Starmetal Crystals +item.crystal_trixite.name=Trixite Crystals + item.wire_aluminium.name=Aluminium Wire item.wire_copper.name=Copper Wire item.wire_gold.name=Gold Wire @@ -2200,6 +2226,7 @@ item.shimmer_axe.name=Shimmer Axe item.euphemium_stopper.name=Stopper item.matchstick.name=Matchstick item.remote.name=Broken Remote +item.pch.name=Horse Nut Hammer item.shimmer_head.name=Heavy Hammer Head item.shimmer_axe_head.name=Heavy Axe Head @@ -2272,6 +2299,7 @@ item.bottle2_korl_special.name=The First Korl item.bottle2_fritz_special.name=The First Fritz Cola item.bottle2_sunset.name=Sunset Sarsaparilla item.chocolate_milk.name=Chocolate Milk +item.cbt_device.name=CBT Device item.cap_nuka.name=Nuka Cola Bottle Cap item.cap_quantum.name=Nuka Cola Quantum Bottle Cap item.cap_sparkle.name=S~Cola Bottle Cap diff --git a/assets/hbm/models/weapons/grenade_frag.obj b/assets/hbm/models/weapons/grenade_frag.obj new file mode 100644 index 000000000..31fc56c00 --- /dev/null +++ b/assets/hbm/models/weapons/grenade_frag.obj @@ -0,0 +1,1664 @@ +# Blender v2.76 (sub 0) OBJ File: 'grenade_smooth_base.blend' +# www.blender.org +o Sphere_Sphere.002 +v -0.015157 -1.305031 -0.096303 +v 0.253283 0.416750 -0.812925 +v 0.156537 1.093344 -0.502415 +v 0.386773 1.093344 -0.356836 +v 0.625812 0.416750 -0.577372 +v 0.161016 -1.064837 -0.516791 +v 0.253283 -0.419567 -0.812925 +v 0.625812 -0.419567 -0.577372 +v 0.397840 -1.064837 -0.367046 +v 0.513373 1.093344 -0.115642 +v 0.673669 0.517794 -0.526962 +v 0.816348 0.517794 -0.255134 +v 0.502415 1.093344 0.156537 +v 0.090979 -1.305031 0.035025 +v 0.830655 0.416750 -0.187113 +v 0.812925 0.416750 0.253283 +v 0.367046 -1.064837 0.397840 +v 0.577372 -0.419567 0.625812 +v 0.187113 -0.419567 0.830655 +v 0.118951 -1.064837 0.528062 +v 0.830655 -0.419567 -0.187113 +v 0.812925 -0.419567 0.253283 +v 0.356836 1.093344 0.386773 +v 0.528062 -1.064837 -0.118951 +v 0.516791 -1.064837 0.161016 +v 0.577372 0.416750 0.625812 +v 0.096303 -1.305031 -0.015157 +v 0.115642 1.093344 0.513373 +v 0.061279 -1.305031 0.075822 +v 0.187113 0.416750 0.830655 +v -0.253283 -0.419567 0.812925 +v -0.161016 -1.064837 0.516791 +v -0.156537 1.093344 0.502415 +v 0.015157 -1.305031 0.096303 +v -0.253283 0.416750 0.812925 +v -0.625812 -0.419567 0.577372 +v -0.397840 -1.064837 0.367046 +v -0.386773 1.093344 0.356836 +v -0.035025 -1.305031 0.090980 +v -0.625812 0.416750 0.577373 +v -0.830655 -0.419567 0.187113 +v -0.528062 -1.064837 0.118951 +v -0.513373 1.093344 0.115642 +v -0.075822 -1.305031 0.061279 +v -0.830655 0.416750 0.187113 +v -0.812925 -0.419567 -0.253283 +v -0.516791 -1.064837 -0.161016 +v -0.502415 1.093344 -0.156537 +v -0.096303 -1.305031 0.015157 +v -0.812925 0.416750 -0.253283 +v -0.577372 -0.419567 -0.625812 +v -0.367046 -1.064837 -0.397839 +v -0.356836 1.093344 -0.386773 +v -0.090979 -1.305031 -0.035025 +v -0.577372 0.416750 -0.625812 +v -0.187113 -0.419567 -0.830655 +v -0.118951 -1.064837 -0.528062 +v -0.115642 1.093344 -0.513373 +v -0.061279 -1.305031 -0.075822 +v -0.187113 0.416750 -0.830655 +v 0.075822 -1.305031 -0.061279 +v 0.484783 1.052430 -0.352697 +v 0.565636 1.052430 -0.198658 +v 0.157736 1.356032 -0.102703 +v 0.070858 1.356032 -0.136714 +v -0.117509 1.356032 -0.123319 +v 0.064551 1.356032 0.126723 +v 0.157080 1.356032 0.091697 +v 0.035025 -1.305031 -0.090979 +v -0.672237 1.106469 0.099518 +v -0.661279 1.106469 -0.172662 +v -0.991233 1.265939 0.091997 +v -0.954809 1.384980 0.093446 +v -0.503880 1.538507 0.109063 +v -0.678405 1.535840 0.102037 +v -0.980275 1.265939 -0.180183 +v -0.943852 1.384980 -0.178734 +v -0.667447 1.535840 -0.170143 +v -0.492922 1.538507 -0.163116 +v -0.868682 1.468514 -0.177086 +v -0.779976 1.525033 -0.174224 +v -1.005016 1.143014 -0.178684 +v -1.015974 1.143014 0.093496 +v -0.661279 1.106469 -0.172662 +v -0.944349 1.139410 -0.176962 +v -0.944373 1.139467 -0.176959 +v -0.973722 0.362552 -0.185868 +v -0.984680 0.362552 0.086312 +v -0.942765 -0.448797 0.099371 +v -0.931808 -0.448797 -0.172809 +v -1.138628 0.387387 -0.174099 +v -1.149585 0.387387 0.098081 +v -0.955330 1.139467 0.095220 +v -1.107671 -0.423962 0.111140 +v -0.761808 -1.063573 0.118517 +v -0.596903 -1.088408 0.106748 +v -1.096713 -0.423962 -0.161040 +v -0.750850 -1.063573 -0.153663 +v -0.585945 -1.088408 -0.165432 +v -0.672237 1.106469 0.099518 +v -0.973722 0.362552 -0.185868 +v -0.984680 0.362552 0.086312 +v -0.955306 1.139410 0.095218 +v -0.172196 0.945769 -0.675148 +v -0.598098 0.696206 -0.520634 +v -0.600565 0.815693 -0.541050 +v -0.276299 1.005701 -0.658691 +v -0.540166 0.771744 -0.445549 +v -0.215899 0.961752 -0.563190 +v -0.863396 1.011347 -0.207821 +v -0.802553 1.055630 -0.302885 +v -0.742153 1.011681 -0.207384 +v -0.601456 1.455677 -0.169004 +v -0.603122 1.393927 -0.273331 +v -0.542722 1.349978 -0.177831 +v -0.174271 1.415148 -0.457829 +v -0.277879 1.363069 -0.493232 +v -0.217479 1.319120 -0.397731 +v -0.879640 1.468514 0.095094 +v -0.790934 1.525033 0.097956 +v -0.500514 1.336506 0.109076 +v -0.513625 1.538150 0.118138 +v -0.501906 1.538150 -0.172945 +v -0.504203 1.557921 0.109050 +v -0.514030 1.557561 0.118037 +v -0.493245 1.557921 -0.163129 +v -0.502317 1.557561 -0.172877 +v -0.493793 1.590824 -0.163151 +v -0.504751 1.590824 0.109028 +v 0.479715 1.607449 0.148662 +v 0.490673 1.607449 -0.123517 +v 0.480586 1.555132 0.148697 +v 0.494910 1.353131 -0.123469 +v 0.489658 1.555492 0.158445 +v -0.489556 1.336506 -0.163103 +v 0.491544 1.555132 -0.123482 +v 0.491221 1.574546 -0.123495 +v 0.480263 1.574546 0.148684 +v 0.489246 1.574903 0.158513 +v 0.500965 1.574903 -0.132570 +v 0.501370 1.555492 -0.132469 +v 0.483952 1.353131 0.148710 +v 0.319933 0.517794 -0.793197 +v 0.579412 0.517794 -0.629126 +v 0.243486 1.052430 -0.547836 +v 0.390526 1.052430 -0.454861 +v -0.119528 0.517794 -0.846895 +v 0.187222 0.517794 -0.834545 +v -0.063053 1.052430 -0.596183 +v 0.110775 1.052430 -0.589185 +v -0.526962 0.517794 -0.673669 +v -0.255134 0.517794 -0.816348 +v -0.352697 1.052430 -0.484783 +v -0.198658 1.052430 -0.565636 +v -0.793196 0.517794 -0.319933 +v -0.629126 0.517794 -0.579412 +v -0.547836 1.052430 -0.243486 +v -0.454861 1.052430 -0.390526 +v -0.846895 0.517794 0.119528 +v -0.834545 0.517794 -0.187222 +v -0.596183 1.052430 0.063053 +v -0.589185 1.052430 -0.110775 +v -0.673669 0.517794 0.526962 +v -0.816348 0.517794 0.255134 +v -0.484783 1.052430 0.352697 +v -0.565636 1.052430 0.198658 +v -0.319933 0.517794 0.793196 +v -0.579412 0.517794 0.629126 +v -0.243486 1.052430 0.547836 +v -0.390526 1.052430 0.454861 +v 0.119528 0.517794 0.846895 +v -0.187222 0.517794 0.834545 +v 0.063053 1.052430 0.596183 +v -0.110775 1.052430 0.589185 +v 0.526962 0.517794 0.673668 +v 0.255134 0.517794 0.816348 +v 0.352697 1.052430 0.484783 +v 0.198658 1.052430 0.565636 +v 0.793196 0.517794 0.319933 +v 0.629126 0.517794 0.579411 +v 0.547836 1.052430 0.243486 +v 0.454861 1.052430 0.390526 +v 0.846895 0.517794 -0.119528 +v 0.834545 0.517794 0.187222 +v 0.596183 1.052430 -0.063053 +v 0.589185 1.052430 0.110775 +v 0.347741 0.330036 -0.855079 +v 0.347741 -0.332853 -0.855079 +v 0.623301 0.330036 -0.680867 +v 0.623300 -0.332853 -0.680867 +v -0.126450 0.330036 -0.914381 +v -0.126450 -0.332853 -0.914381 +v 0.199299 0.330036 -0.901312 +v 0.199299 -0.332853 -0.901312 +v -0.566750 0.330036 -0.728614 +v -0.566750 -0.332853 -0.728614 +v -0.278118 0.330036 -0.880189 +v -0.278118 -0.332853 -0.880189 +v -0.855150 0.330036 -0.347564 +v -0.855150 -0.332853 -0.347564 +v -0.680995 0.330036 -0.623160 +v -0.680995 -0.332853 -0.623160 +v -0.914355 0.330036 0.126639 +v -0.914355 -0.332853 0.126639 +v -0.901353 0.330036 -0.199113 +v -0.901353 -0.332853 -0.199113 +v -0.728497 0.330036 0.566900 +v -0.728497 -0.332853 0.566900 +v -0.880132 0.330036 0.278300 +v -0.880132 -0.332853 0.278300 +v -0.347388 0.330036 0.855222 +v -0.347388 -0.332853 0.855222 +v -0.623020 0.330036 0.681124 +v -0.623020 -0.332853 0.681124 +v 0.126827 0.330036 0.914329 +v 0.126827 -0.332853 0.914329 +v -0.198927 0.330036 0.901394 +v -0.198927 -0.332853 0.901394 +v 0.567050 0.330036 0.728380 +v 0.567050 -0.332853 0.728380 +v 0.278482 0.330036 0.880075 +v 0.278482 -0.332853 0.880075 +v 0.855294 0.330036 0.347212 +v 0.855294 -0.332853 0.347212 +v 0.681252 0.330036 0.622879 +v 0.681252 -0.332853 0.622879 +v 0.914303 0.330036 -0.127016 +v 0.914303 -0.332853 -0.127016 +v 0.901435 0.330036 0.198741 +v 0.901435 -0.332853 0.198741 +v 0.728263 0.330036 -0.567200 +v 0.728263 -0.332853 -0.567200 +v 0.880017 0.330036 -0.278663 +v 0.880017 -0.332853 -0.278663 +v 0.829860 -0.517895 0.187033 +v 0.842210 -0.517895 -0.119717 +v 0.591498 -1.052531 -0.063241 +v 0.584499 -1.052531 0.110586 +v 0.625163 -0.517895 0.576906 +v 0.789233 -0.517895 0.317427 +v 0.543872 -1.052531 0.240980 +v 0.450898 -1.052531 0.388020 +v 0.252955 -0.517895 0.812197 +v 0.524783 -0.517895 0.669517 +v 0.350517 -1.052531 0.480631 +v 0.196479 -1.052531 0.561484 +v -0.187033 -0.517895 0.829860 +v 0.119717 -0.517895 0.842210 +v 0.063241 -1.052531 0.591498 +v -0.110586 -1.052531 0.584499 +v -0.576906 -0.517895 0.625163 +v -0.317427 -0.517895 0.789233 +v -0.240980 -1.052531 0.543872 +v -0.388020 -1.052531 0.450898 +v -0.812197 -0.517895 0.252955 +v -0.669517 -0.517895 0.524782 +v -0.480631 -1.052531 0.350517 +v -0.561484 -1.052531 0.196479 +v -0.829860 -0.517895 -0.187033 +v -0.842210 -0.517895 0.119717 +v -0.591497 -1.052531 0.063241 +v -0.584499 -1.052531 -0.110586 +v -0.625163 -0.517895 -0.576906 +v -0.789233 -0.517895 -0.317427 +v -0.543872 -1.052531 -0.240980 +v -0.450898 -1.052531 -0.388020 +v -0.252954 -0.517895 -0.812197 +v -0.524782 -0.517895 -0.669517 +v -0.350517 -1.052531 -0.480631 +v -0.196479 -1.052531 -0.561484 +v 0.187033 -0.517895 -0.829860 +v -0.119717 -0.517895 -0.842210 +v -0.063241 -1.052531 -0.591497 +v 0.110586 -1.052531 -0.584499 +v 0.576906 -0.517895 -0.625163 +v 0.317427 -0.517895 -0.789233 +v 0.240980 -1.052531 -0.543872 +v 0.388020 -1.052531 -0.450898 +v 0.812196 -0.517895 -0.252954 +v 0.669517 -0.517895 -0.524782 +v 0.480631 -1.052531 -0.350517 +v 0.561484 -1.052531 -0.196479 +v -0.175000 1.393109 -0.000000 +v -0.303109 1.265000 -0.000000 +v -0.350000 1.090000 -0.000000 +v -0.123744 1.393109 -0.123744 +v -0.214330 1.265000 -0.214330 +v -0.247487 1.090000 -0.247487 +v -0.000000 1.393109 -0.175000 +v -0.000000 1.265000 -0.303109 +v -0.000000 1.090000 -0.350000 +v -0.000000 1.440000 0.000000 +v 0.123743 1.393109 -0.123744 +v 0.214330 1.265000 -0.214330 +v 0.247487 1.090000 -0.247487 +v 0.175000 1.393109 -0.000000 +v 0.303109 1.265000 -0.000000 +v 0.350000 1.090000 -0.000000 +v 0.123743 1.393109 0.123744 +v 0.214330 1.265000 0.214330 +v 0.247487 1.090000 0.247487 +v -0.000000 1.393109 0.175000 +v -0.000000 1.265000 0.303109 +v -0.000000 1.090000 0.350000 +v -0.123744 1.393109 0.123744 +v -0.214330 1.265000 0.214330 +v -0.247487 1.090000 0.247487 +vt 0.321713 0.865051 +vt 0.272866 0.866378 +vt 0.272866 0.815293 +vt 0.003230 0.610962 +vt 0.121164 0.406695 +vt 0.325431 0.524629 +vt 0.500000 0.400000 +vt 0.483333 0.383333 +vt 0.483333 0.283333 +vt 0.500000 0.266667 +vt 0.433333 0.283333 +vt 0.400000 0.383333 +vt 0.350000 0.383333 +vt 0.350000 0.283333 +vt 0.766745 0.871688 +vt 0.767246 0.884932 +vt 0.719817 0.852168 +vt 0.830319 0.882049 +vt 0.830820 0.895292 +vt 0.830051 0.868798 +vt 0.767186 0.882828 +vt 0.766919 0.869578 +vt 0.000225 0.954649 +vt 0.027608 0.951618 +vt 0.027608 0.996508 +vt 0.721737 0.918287 +vt 0.721470 0.905037 +vt 0.221630 0.809098 +vt 0.221632 0.815269 +vt 0.036831 0.815269 +vt 0.035033 0.879478 +vt 0.224869 0.879505 +vt 0.223059 0.882787 +vt 0.221631 0.866355 +vt 0.036830 0.866354 +vt 0.220073 0.798888 +vt 0.223383 0.802171 +vt 0.033533 0.802143 +vt 0.030659 0.866354 +vt 0.028884 0.868112 +vt 0.028884 0.813510 +vt 0.221630 0.872526 +vt 0.036829 0.872526 +vt 0.030659 0.815268 +vt 0.025243 0.868128 +vt 0.025243 0.813494 +vt 0.223369 0.805842 +vt 0.036829 0.809097 +vt 0.224856 0.875834 +vt 0.929599 0.888360 +vt 0.947552 0.964500 +vt 0.931941 0.968177 +vt 0.035019 0.875808 +vt 0.894890 0.895193 +vt 0.913962 0.891962 +vt 0.227803 0.815269 +vt 0.229562 0.813495 +vt 0.229562 0.868129 +vt 0.227803 0.866355 +vt 0.233203 0.868113 +vt 0.234978 0.815270 +vt 0.234978 0.866355 +vt 0.923524 0.776627 +vt 0.939369 0.778971 +vt 0.927922 0.856251 +vt 0.433333 0.383333 +vt 0.566667 0.283333 +vt 0.566667 0.383333 +vt 0.516667 0.383333 +vt 0.650000 0.383333 +vt 0.600000 0.383333 +vt 0.600000 0.283333 +vt 0.733333 0.283333 +vt 0.733333 0.383333 +vt 0.683333 0.383333 +vt 0.816667 0.283333 +vt 0.816667 0.383333 +vt 0.766667 0.383333 +vt 0.900000 0.383333 +vt 0.850000 0.383333 +vt 0.850000 0.283333 +vt 0.983333 0.283333 +vt 0.983333 0.383333 +vt 0.933333 0.383333 +vt 0.066667 0.283333 +vt 0.066667 0.383333 +vt 0.016667 0.383333 +vt 0.150000 0.383333 +vt 0.100000 0.383333 +vt 0.100000 0.283333 +vt 0.233333 0.383333 +vt 0.183333 0.383333 +vt 0.183333 0.283333 +vt 0.316667 0.383333 +vt 0.266667 0.383333 +vt 0.266667 0.283333 +vt 0.483333 0.250000 +vt 0.433333 0.250000 +vt 0.433333 0.150000 +vt 0.566667 0.250000 +vt 0.516667 0.250000 +vt 0.516667 0.150000 +vt 0.650000 0.250000 +vt 0.600000 0.250000 +vt 0.600000 0.150000 +vt 0.733333 0.250000 +vt 0.683333 0.250000 +vt 0.683333 0.150000 +vt 0.816667 0.150000 +vt 0.816667 0.250000 +vt 0.766667 0.250000 +vt 0.900000 0.250000 +vt 0.850000 0.250000 +vt 0.850000 0.150000 +vt 0.983333 0.250000 +vt 0.933333 0.250000 +vt 0.933333 0.150000 +vt 0.066667 0.250000 +vt 0.016667 0.250000 +vt 0.016667 0.150000 +vt 0.150000 0.250000 +vt 0.100000 0.250000 +vt 0.100000 0.150000 +vt 0.233333 0.250000 +vt 0.183333 0.250000 +vt 0.183333 0.150000 +vt 0.316667 0.250000 +vt 0.266667 0.250000 +vt 0.266667 0.150000 +vt 0.400000 0.250000 +vt 0.350000 0.250000 +vt 0.350000 0.150000 +vt 0.316667 0.016667 +vt 0.316667 0.116667 +vt 0.266667 0.116667 +vt 0.233333 0.116667 +vt 0.183333 0.116667 +vt 0.183333 0.016667 +vt 0.150000 0.016667 +vt 0.150000 0.116667 +vt 0.100000 0.116667 +vt 0.066667 0.016667 +vt 0.066667 0.116667 +vt 0.016667 0.116667 +vt 0.983333 0.116667 +vt 0.933333 0.116667 +vt 0.933333 0.016667 +vt 0.900000 0.116667 +vt 0.850000 0.116667 +vt 0.850000 0.016667 +vt 0.816667 0.016667 +vt 0.816667 0.116667 +vt 0.766667 0.116667 +vt 0.733333 0.116667 +vt 0.683333 0.116667 +vt 0.683333 0.016667 +vt 0.650000 0.116667 +vt 0.600000 0.116667 +vt 0.600000 0.016667 +vt 0.566667 0.016667 +vt 0.566667 0.116667 +vt 0.516667 0.116667 +vt 0.483333 0.116667 +vt 0.433333 0.116667 +vt 0.433333 0.016667 +vt 0.400000 0.116667 +vt 0.350000 0.116667 +vt 0.350000 0.016667 +vt 0.416667 0.400000 +vt 0.416667 0.266667 +vt 0.400000 0.283333 +vt 0.333333 0.400000 +vt 0.333333 0.266667 +vt 0.316667 0.283333 +vt 0.250000 0.400000 +vt 0.250000 0.266667 +vt 0.233333 0.283333 +vt 0.166667 0.400000 +vt 0.166667 0.266667 +vt 0.150000 0.283333 +vt 0.083333 0.400000 +vt 0.083333 0.266667 +vt -0.000000 0.400000 +vt 0.000000 0.266667 +vt 0.016667 0.283333 +vt 1.000000 0.400000 +vt 0.316667 0.150000 +vt 0.400000 0.150000 +vt 0.483333 0.150000 +vt 0.500000 0.133333 +vt 0.333333 0.133333 +vt 0.416667 0.133333 +vt 0.233333 0.150000 +vt 0.833333 0.400000 +vt 0.833333 0.266667 +vt 0.916667 0.400000 +vt 0.900000 0.283333 +vt 0.916667 0.266667 +vt 0.933333 0.283333 +vt 1.000000 0.266667 +vt 0.750000 0.400000 +vt 0.750000 0.266667 +vt 0.766667 0.283333 +vt 0.666667 0.400000 +vt 0.666667 0.266667 +vt 0.683333 0.283333 +vt 0.650000 0.283333 +vt 0.583333 0.400000 +vt 0.583333 0.266667 +vt 0.516667 0.283333 +vt 0.650000 0.150000 +vt 0.566667 0.150000 +vt 0.583333 0.133333 +vt 0.666667 0.133333 +vt 0.733333 0.150000 +vt 0.766667 0.150000 +vt 0.900000 0.150000 +vt 0.983333 0.150000 +vt 0.066667 0.150000 +vt 0.750000 0.133333 +vt 0.833333 0.133333 +vt 0.916667 0.133333 +vt 1.000000 0.133333 +vt 0.083333 0.133333 +vt 0.150000 0.150000 +vt 0.166667 0.133333 +vt 0.250000 0.133333 +vt 0.333333 0.000000 +vt 0.416667 -0.000000 +vt 0.400000 0.016667 +vt 0.500000 0.000000 +vt 0.483333 0.016667 +vt 0.583333 -0.000000 +vt 0.666667 -0.000000 +vt 0.650000 0.016667 +vt 0.516667 0.016667 +vt 0.750000 0.000000 +vt 0.733333 0.016667 +vt 0.833333 -0.000000 +vt 0.766667 0.016667 +vt 0.000000 0.133333 +vt 0.916667 0.000000 +vt 0.900000 0.016667 +vt 1.000000 -0.000000 +vt 0.983333 0.016667 +vt 0.083333 -0.000000 +vt 0.016667 0.016667 +vt 0.000000 0.000000 +vt 0.166667 0.000000 +vt 0.250000 0.000000 +vt 0.233333 0.016667 +vt 0.100000 0.016667 +vt 0.266667 0.016667 +vt 0.890611 0.854835 +vt 0.892843 0.882151 +vt 0.891586 0.892476 +vt 0.892231 0.865077 +vt 0.892824 0.852392 +vt 0.912077 0.853912 +vt 0.893154 0.882642 +vt 0.926547 0.874884 +vt 0.903288 0.772477 +vt 0.023484 0.866354 +vt 0.735650 0.779825 +vt 0.715669 0.780707 +vt 0.715864 0.768944 +vt 0.736394 0.779449 +vt 0.756030 0.778583 +vt 0.756045 0.778926 +vt 0.830550 0.882042 +vt 0.830283 0.868792 +vt 0.869536 0.868030 +vt 0.918571 0.885092 +vt 0.911235 0.890147 +vt 0.923892 0.866319 +vt 0.893319 0.882281 +vt 0.918074 0.860342 +vt 0.321713 0.813965 +vt 0.325431 0.610962 +vt 0.207497 0.728896 +vt 0.282264 0.685729 +vt 0.121164 0.728896 +vt 0.046397 0.685729 +vt 0.003230 0.524628 +vt 0.046397 0.449861 +vt 0.207497 0.406695 +vt 0.282264 0.449862 +vt 0.719316 0.838924 +vt 0.829784 0.855548 +vt 0.000225 0.999539 +vt 0.038258 0.882786 +vt 0.035271 0.798887 +vt 0.033518 0.805814 +vt 0.912104 0.974033 +vt 0.233203 0.813511 +vt 0.925922 0.869951 +vt 0.023484 0.815269 +vt 0.735846 0.768063 +vt 0.736409 0.779792 +vt 0.869804 0.881281 +vt 0.923921 0.878693 +vt 0.901504 0.891795 +vt 0.900551 0.854944 +vt 0.910378 0.855853 +vt 0.520066 0.586264 +vt 0.485718 0.545207 +vt 0.523226 0.548717 +vt 0.790810 0.883398 +vt 0.790543 0.870148 +vt 0.171471 0.882836 +vt 0.172153 0.935364 +vt 0.024166 0.935364 +vt 0.281324 0.952413 +vt 0.281324 0.997303 +vt 0.147436 0.995430 +vt 0.755434 0.883793 +vt 0.419486 0.826440 +vt 0.436995 0.836066 +vt 0.439032 0.900933 +vt 0.456965 0.835439 +vt 0.404653 0.902012 +vt 0.402616 0.837146 +vt 0.492856 0.783050 +vt 0.492856 0.803030 +vt 0.503027 0.820228 +vt 0.447166 0.853264 +vt 0.419486 0.806460 +vt 0.475347 0.773424 +vt 0.566226 0.826440 +vt 0.548717 0.836066 +vt 0.538547 0.853264 +vt 0.482685 0.820228 +vt 0.510365 0.773424 +vt 0.566226 0.806460 +vt 0.563550 0.911638 +vt 0.546680 0.900933 +vt 0.526709 0.900306 +vt 0.528747 0.835439 +vt 0.583096 0.837146 +vt 0.581059 0.902012 +vt 0.487602 0.950339 +vt 0.488856 0.930398 +vt 0.479784 0.912596 +vt 0.562296 0.931579 +vt 0.504472 0.961044 +vt 0.467467 0.954694 +vt 0.467467 0.999584 +vt 0.448947 0.999357 +vt 0.484806 0.954811 +vt 0.484806 0.999701 +vt 0.503448 0.954885 +vt 0.503448 0.999775 +vt 0.407770 0.998944 +vt 0.407770 0.954054 +vt 0.428431 0.954465 +vt 0.428431 0.999355 +vt 0.448948 0.954468 +vt 0.794911 0.586838 +vt 0.820944 0.608785 +vt 0.801234 0.655843 +vt 0.747699 0.606176 +vt 0.768439 0.725680 +vt 0.874210 0.653109 +vt 0.854872 0.605896 +vt 0.923878 0.599573 +vt 0.993715 0.632368 +vt 0.876819 0.579863 +vt 0.921143 0.526597 +vt 0.993715 0.500405 +vt 0.873930 0.545936 +vt 0.867607 0.476930 +vt 0.847897 0.523988 +vt 0.813970 0.526877 +vt 0.794632 0.479665 +vt 0.768439 0.407093 +vt 0.792022 0.552910 +vt 0.744964 0.533200 +vt 0.675127 0.500405 +vt 0.834421 0.566387 +vt 0.664794 0.522393 +vt 0.529145 0.561228 +vt 0.511992 0.540683 +vt 0.546511 0.403773 +vt 0.621597 0.447350 +vt 0.498251 0.539401 +vt 0.459602 0.403548 +vt 0.477780 0.556531 +vt 0.340570 0.522122 +vt 0.384193 0.446857 +vt 0.476574 0.570325 +vt 0.482424 0.582884 +vt 0.383962 0.684503 +vt 0.340481 0.609133 +vt 0.493758 0.590845 +vt 0.507538 0.592079 +vt 0.546273 0.727891 +vt 0.459317 0.727975 +vt 0.527982 0.574979 +vt 0.664794 0.609105 +vt 0.621460 0.684337 +vt 0.532235 0.954885 +vt 0.532235 0.999775 +vt 0.023484 0.882836 +vt 0.147436 0.950540 +vt 0.755167 0.870543 +vt 0.422162 0.911638 +vt 0.459003 0.900305 +vt 0.537609 0.883130 +vt 0.675127 0.632368 +vt 0.900402 0.725680 +vt 0.900403 0.407093 +vn 0.996600 0.072000 0.040100 +vn 0.000000 1.000000 0.000000 +vn -0.290700 0.364500 -0.884700 +vn 0.525300 -0.184300 -0.830700 +vn 0.803100 0.421100 -0.421500 +vn 0.079200 0.054300 0.995400 +vn 0.074200 0.019900 0.997000 +vn -0.074200 -0.019900 -0.997000 +vn -0.149300 -0.988800 -0.006000 +vn -0.079200 -0.054300 -0.995400 +vn -0.040200 -0.000000 0.999200 +vn 0.018100 -0.999600 -0.020300 +vn -0.016900 0.999900 -0.000700 +vn 0.016400 -0.999600 0.021600 +vn -0.038000 0.999300 -0.001500 +vn 0.040200 0.000000 -0.999200 +vn -0.999100 -0.016700 -0.040200 +vn -0.999000 -0.021000 -0.040200 +vn -0.016000 0.999600 -0.021700 +vn 0.040400 -0.004400 -0.999200 +vn 0.040200 0.000600 -0.999200 +vn -0.016400 0.999600 -0.021700 +vn -0.040100 -0.004400 0.999200 +vn 0.040700 -0.029100 -0.998700 +vn -0.038100 0.999300 -0.001500 +vn 0.999100 0.016700 0.040200 +vn 0.999000 0.021100 0.040200 +vn 0.038000 -0.999300 0.001500 +vn -0.040200 -0.000600 0.999200 +vn 0.484700 0.421100 -0.766600 +vn 0.036500 0.421100 -0.906300 +vn -0.421500 0.421100 -0.803100 +vn -0.766600 0.421100 -0.484700 +vn -0.906300 0.421100 -0.036500 +vn -0.803100 0.421100 0.421500 +vn -0.484700 0.421100 0.766600 +vn -0.036500 0.421100 0.906300 +vn 0.421500 0.421100 0.803100 +vn 0.766600 0.421100 0.484700 +vn 0.906300 0.421100 0.036500 +vn 0.534400 -0.000000 -0.845200 +vn 0.040100 0.000000 -0.999200 +vn -0.464900 0.000000 -0.885300 +vn -0.845400 0.000000 -0.534200 +vn -0.999200 0.000000 -0.039900 +vn -0.885200 0.000000 0.465100 +vn -0.534000 0.000000 0.845500 +vn -0.039700 0.000000 0.999200 +vn 0.465300 0.000000 0.885100 +vn 0.845600 0.000000 0.533900 +vn 0.999200 -0.000000 0.039500 +vn 0.885100 0.000000 -0.465500 +vn 0.906300 -0.421100 0.036500 +vn 0.766600 -0.421100 0.484700 +vn 0.421500 -0.421100 0.803100 +vn -0.036500 -0.421100 0.906300 +vn -0.484700 -0.421100 0.766600 +vn -0.803100 -0.421100 0.421500 +vn -0.906300 -0.421100 -0.036500 +vn -0.766600 -0.421100 -0.484700 +vn -0.421500 -0.421100 -0.803100 +vn 0.036500 -0.421100 -0.906300 +vn 0.484700 -0.421100 -0.766600 +vn 0.803100 -0.421100 -0.421500 +vn 0.232100 0.900800 -0.367100 +vn 0.923900 0.364500 -0.116700 +vn 0.190600 0.364500 -0.911500 +vn 0.858500 0.364500 0.360800 +vn 0.620800 0.364500 -0.694100 +vn 0.563000 0.364500 0.741700 +vn 0.884700 0.364500 -0.290700 +vn 0.870300 -0.184300 -0.456800 +vn 0.982100 -0.184300 0.039500 +vn 0.116800 0.364500 0.923900 +vn 0.911500 0.364500 0.190600 +vn -0.360800 0.364500 0.858500 +vn 0.694100 0.364500 0.620800 +vn -0.741700 0.364500 0.563000 +vn 0.290700 0.364500 0.884700 +vn -0.017500 0.900800 0.433900 +vn 0.201800 0.900800 0.384500 +vn 0.367100 0.900800 0.232100 +vn 0.433900 0.900800 0.017500 +vn 0.384500 0.900800 -0.201800 +vn 0.628600 0.703900 -0.330600 +vn 0.379200 0.704600 -0.599800 +vn 0.709700 0.704000 0.028000 +vn 0.583500 0.000000 -0.812100 +vn 0.880200 0.000000 0.474600 +vn 0.098800 0.000000 -0.995100 +vn 0.999700 -0.000000 -0.024300 +vn -0.407500 0.000000 -0.913200 +vn 0.379200 -0.704600 -0.599800 +vn 0.627800 -0.705200 -0.329500 +vn 0.524600 0.000000 0.851300 +vn 0.911600 0.000000 -0.411200 +vn 0.600500 0.704100 0.379100 +vn 0.830700 -0.184300 0.525300 +vn 0.456800 -0.184300 0.870300 +vn -0.039500 -0.184300 0.982100 +vn -0.620800 0.364500 0.694100 +vn -0.858500 0.364500 -0.360800 +vn -0.190600 0.364500 0.911500 +vn -0.923900 0.364500 0.116700 +vn -0.525300 -0.184300 0.830700 +vn -0.232100 0.900800 0.367100 +vn -0.384500 0.900800 0.201800 +vn -0.563000 0.364500 -0.741700 +vn -0.884700 0.364500 0.290700 +vn -0.116700 0.364500 -0.923900 +vn -0.911500 0.364500 -0.190600 +vn 0.360800 0.364500 -0.858500 +vn -0.694100 0.364500 -0.620800 +vn 0.741700 0.364500 -0.563000 +vn 0.017500 0.900800 -0.433900 +vn -0.201800 0.900800 -0.384500 +vn -0.367100 0.900800 -0.232100 +vn -0.433900 0.900800 -0.017500 +vn -0.870300 -0.184300 0.456800 +vn -0.982100 -0.184300 -0.039500 +vn -0.830700 -0.184300 -0.525300 +vn -0.456800 -0.184300 -0.870300 +vn 0.039500 -0.184300 -0.982100 +vn 0.028400 0.704600 -0.709100 +vn 0.853400 0.000000 -0.521200 +vn -0.330000 0.704500 -0.628300 +vn -0.600000 0.704400 -0.379200 +vn -0.025600 0.000000 -0.999700 +vn -0.994700 0.000000 -0.102800 +vn 0.478100 0.000000 -0.878300 +vn -0.809800 0.000000 -0.586700 +vn 0.028400 -0.704600 -0.709100 +vn -0.330000 -0.704500 -0.628300 +vn -0.912600 0.000000 0.408700 +vn -0.522400 0.000000 -0.852700 +vn -0.585600 -0.000000 0.810600 +vn -0.879000 0.000000 -0.476900 +vn -0.101500 0.000000 0.994800 +vn -0.999600 0.000000 0.026900 +vn 0.410000 0.000000 0.912100 +vn -0.852000 0.000000 0.523500 +vn 0.811300 0.000000 0.584600 +vn -0.475800 0.000000 0.879600 +vn -0.028200 0.704200 0.709500 +vn -0.379100 0.704200 0.600200 +vn -0.628400 0.704300 0.330200 +vn -0.709300 0.704400 -0.028300 +vn -0.600000 -0.704400 -0.379200 +vn -0.709300 -0.704400 -0.028300 +vn -0.628400 -0.704300 0.330200 +vn -0.379100 -0.704200 0.600300 +vn -0.028200 -0.704200 0.709500 +vn 0.995000 0.000000 0.100100 +vn 0.028200 0.000000 0.999600 +vn 0.330400 0.704100 0.628500 +vn 0.330400 -0.704100 0.628500 +vn 0.600500 -0.704100 0.379100 +vn 0.709700 -0.704000 0.028000 +vn 0.163200 -0.982900 -0.085700 +vn 0.876300 0.143500 -0.459900 +vn 0.871400 -0.375200 0.316100 +vn 0.234800 -0.375200 -0.896700 +vn 0.528900 0.143500 -0.836500 +vn 0.098500 -0.982900 -0.155800 +vn 0.007400 -0.982900 -0.184200 +vn 0.039800 0.143500 -0.988900 +vn -0.085700 -0.982900 -0.163200 +vn -0.459900 0.143500 -0.876300 +vn 0.316100 -0.375200 -0.871400 +vn -0.659200 -0.375200 -0.651700 +vn 0.709400 -0.375200 -0.596600 +vn -0.245000 -0.375200 -0.894000 +vn -0.155800 -0.982900 -0.098500 +vn -0.184200 -0.982900 -0.007400 +vn -0.988900 0.143500 -0.039800 +vn -0.596600 -0.375200 -0.709400 +vn -0.836500 0.143500 -0.528900 +vn -0.161900 -0.375200 -0.912700 +vn -0.896700 -0.375200 -0.234800 +vn -0.894000 -0.375200 0.245000 +vn -0.876300 0.143500 0.459900 +vn -0.528900 0.143500 0.836500 +vn -0.039800 0.143500 0.988900 +vn -0.163200 -0.982900 0.085700 +vn -0.098500 -0.982900 0.155800 +vn -0.007400 -0.982900 0.184200 +vn -0.709400 -0.375200 0.596600 +vn 0.245000 -0.375200 0.894000 +vn -0.912700 -0.375200 0.162000 +vn -0.234800 -0.375200 0.896700 +vn -0.871400 -0.375200 -0.316100 +vn -0.651700 -0.375200 0.659200 +vn 0.459900 0.143500 0.876300 +vn 0.836500 0.143500 0.528900 +vn 0.155800 -0.982900 0.098500 +vn 0.085700 -0.982900 0.163200 +vn -0.316100 -0.375200 0.871400 +vn 0.659200 -0.375200 0.651700 +vn 0.896700 -0.375200 0.234800 +vn 0.162000 -0.375200 0.912700 +vn 0.988900 0.143500 0.039800 +vn 0.184200 -0.982900 0.007400 +vn 0.596600 -0.375200 0.709400 +vn 0.894000 -0.375200 -0.245000 +vn 0.651700 -0.375200 -0.659200 +vn 0.912700 -0.375200 -0.162000 +vn 0.018600 0.009900 -0.999800 +vn 0.070200 -0.006400 0.997500 +vn -0.098300 0.032100 0.994600 +vn 0.046900 0.006500 -0.998900 +vn -0.040200 0.027200 0.998800 +vn -0.082000 -0.996600 -0.003300 +vn -0.080900 -0.996700 -0.002000 +vn 0.000000 0.000000 1.000000 +vn 0.921100 -0.387500 0.037100 +vn -0.021700 -0.000200 0.999800 +vn 0.029300 0.004600 -0.999600 +vn 0.016000 -0.999600 0.021700 +vn 0.017700 -0.999600 -0.020300 +vn -0.018100 0.999600 0.020300 +vn 0.040100 0.004300 -0.999200 +vn -0.017700 0.999600 0.020400 +vn -0.040400 0.004400 0.999200 +vn 0.040200 -0.027200 -0.998800 +vn 0.116700 0.364500 0.923900 +vn 0.627800 0.705200 -0.329500 +vn 0.379200 0.704700 -0.599700 +vn 0.708400 0.705200 0.028500 +vn 0.379200 -0.704700 -0.599700 +vn 0.628600 -0.703900 -0.330600 +vn 0.599300 0.705100 0.379000 +vn 0.028500 0.704800 -0.708900 +vn -0.329700 0.704800 -0.628100 +vn -0.599500 0.704900 -0.379100 +vn 0.028500 -0.704800 -0.708900 +vn -0.329700 -0.704800 -0.628100 +vn -0.028500 0.705000 0.708600 +vn -0.379000 0.705000 0.599400 +vn -0.628000 0.705000 0.329600 +vn -0.708700 0.704900 -0.028500 +vn -0.599500 -0.704900 -0.379100 +vn -0.708700 -0.704900 -0.028500 +vn -0.628000 -0.705000 0.329600 +vn -0.379000 -0.705000 0.599400 +vn -0.028500 -0.705000 0.708600 +vn 0.329600 0.705100 0.627900 +vn 0.329600 -0.705100 0.627900 +vn 0.599300 -0.705100 0.379000 +vn 0.708500 -0.705200 0.028500 +vn -0.912700 -0.375200 0.161900 +vn 0.161900 -0.375200 0.912700 +vn 0.912700 -0.375200 -0.161900 +vn 0.999100 0.016600 0.040200 +vn -0.070200 0.006400 -0.997500 +vn -0.018600 -0.009900 0.999800 +vn -0.046800 -0.006500 0.998900 +vn 0.098300 -0.032100 -0.994600 +vn 0.097200 -0.030800 -0.994800 +vn -0.040700 0.029100 0.998700 +vn -0.035600 -0.006400 0.999300 +vn -0.029300 -0.004600 0.999600 +vn -0.025700 -0.004300 0.999700 +vn -0.015900 0.015400 0.999800 +vn 0.015900 -0.015400 -0.999800 +vn 0.021700 0.000200 -0.999800 +vn 0.035600 0.006400 -0.999300 +vn 0.025700 0.004300 -0.999700 +vn 0.261400 -0.959900 0.100900 +vn -0.261400 -0.959900 -0.100900 +vn 0.100900 -0.959900 -0.261400 +vn 0.694900 0.036300 0.718200 +vn 0.961800 0.270900 0.038700 +vn 0.962000 0.270200 0.038700 +vn -0.981900 0.185100 -0.039500 +vn -0.981900 0.185400 -0.039500 +vn -0.997300 0.062100 -0.040100 +vn -0.997400 0.060200 -0.040200 +vn -0.962000 -0.270200 -0.038700 +vn -0.878900 -0.475700 -0.035400 +vn 0.878900 0.475700 0.035400 +vn -0.264100 -0.928700 -0.260300 +vn -0.448700 0.508300 -0.735000 +vn -0.605700 0.416300 -0.678100 +vn 0.534400 -0.207100 0.819500 +vn 0.377400 -0.299100 0.876400 +vn -0.867100 -0.212500 0.450600 +vn -0.350900 0.392100 -0.850300 +vn 0.632200 -0.323200 0.704200 +vn -0.271800 0.797400 0.538800 +vn -0.447500 0.228400 -0.864600 +vn 0.535600 -0.487000 0.689900 +vn 0.699100 0.705300 -0.117600 +vn -0.605000 0.243300 -0.758200 +vn 0.378200 -0.472100 0.796300 +vn 0.703800 -0.361500 -0.611500 +vn -0.646300 0.762700 -0.026000 +vn -0.645000 0.763700 -0.026000 +vn -0.869200 0.493300 -0.035000 +vn -0.325900 0.945300 -0.013100 +vn -0.324300 0.945900 -0.013100 +vn -0.055500 0.998500 -0.002200 +vn -0.055400 0.998500 -0.002200 +vn -0.968800 0.244700 -0.039000 +vn -0.968600 0.245400 -0.039000 +vn -0.870000 0.491700 -0.035000 +vn -0.545200 0.838300 0.000000 +vn -0.385500 0.838300 -0.385500 +vn -0.622500 0.474400 -0.622500 +vn -0.880300 0.474400 0.000000 +vn -0.683000 0.258800 -0.683000 +vn 0.000000 0.474400 -0.880300 +vn 0.000000 0.838300 -0.545200 +vn 0.622500 0.474400 -0.622500 +vn 0.683000 0.258800 -0.683000 +vn 0.385500 0.838300 -0.385500 +vn 0.880300 0.474400 0.000000 +vn 0.965900 0.258800 0.000000 +vn 0.545200 0.838300 0.000000 +vn 0.622500 0.474400 0.622500 +vn 0.385500 0.838300 0.385500 +vn -0.000000 0.838300 0.545200 +vn -0.000000 0.474400 0.880300 +vn -0.000000 0.258800 0.965900 +vn -0.385500 0.838300 0.385500 +vn -0.622500 0.474400 0.622500 +vn -0.683000 0.258800 0.683000 +vn 0.350700 -0.878800 -0.323500 +vn 0.218100 -0.959900 -0.176000 +vn -0.043400 -0.959900 -0.276900 +vn -0.104900 -0.878800 -0.465500 +vn 0.141900 -0.878800 -0.455500 +vn -0.176000 -0.959900 -0.218100 +vn -0.323500 -0.878800 -0.350700 +vn -0.276900 -0.959900 0.043400 +vn -0.465500 -0.878800 0.104900 +vn -0.455500 -0.878800 -0.141900 +vn -0.218100 -0.959900 0.176000 +vn -0.100900 -0.959900 0.261400 +vn -0.141900 -0.878800 0.455500 +vn -0.350700 -0.878800 0.323500 +vn 0.043400 -0.959900 0.276900 +vn 0.176000 -0.959900 0.218100 +vn 0.323500 -0.878800 0.350700 +vn 0.104900 -0.878800 0.465500 +vn 0.276900 -0.959900 -0.043400 +vn 0.465500 -0.878800 -0.104900 +vn 0.455500 -0.878800 0.141900 +vn -0.015300 0.999900 -0.000600 +vn 0.688700 0.036000 0.724100 +vn -0.961800 -0.270900 -0.038700 +vn -0.965900 0.258800 0.000000 +vn -0.000000 0.258800 -0.965900 +vn 0.683000 0.258800 0.683000 +s off +f 10/1/1 133/2/1 142/3/1 +f 13/4/2 3/5/2 48/6/2 +f 3/7/3 145/8/3 143/9/3 +f 2/10/4 143/9/4 144/11/4 +f 62/12/5 63/13/5 12/14/5 +f 89/15/6 94/16/6 95/17/6 +f 88/18/7 92/19/7 94/16/7 +f 87/20/8 90/21/8 97/22/8 +f 96/23/9 95/24/9 98/25/9 +f 90/21/10 99/26/10 98/27/10 +f 138/28/11 130/29/11 129/30/11 +f 123/31/12 141/32/12 136/33/12 +f 130/29/13 131/34/13 128/35/13 +f 132/36/14 134/37/14 122/38/14 +f 126/39/15 127/40/15 125/41/15 +f 137/42/16 126/43/16 128/35/16 +f 124/44/17 129/30/17 128/35/17 +f 123/45/18 122/46/18 125/41/18 +f 139/47/19 138/28/19 124/48/19 +f 140/49/20 141/32/20 123/31/20 +f 79/50/21 136/51/21 133/52/21 +f 140/49/22 127/53/22 126/43/22 +f 122/38/23 134/37/23 139/47/23 +f 48/54/24 135/55/24 133/52/24 +f 138/56/25 139/57/25 140/58/25 +f 138/56/26 137/59/26 131/34/26 +f 141/60/27 140/58/27 139/57/27 +f 132/61/28 136/62/28 141/60/28 +f 142/63/29 132/64/29 74/65/29 +f 145/8/30 146/66/30 144/11/30 +f 147/67/31 149/68/31 150/69/31 +f 153/70/32 154/71/32 152/72/32 +f 155/73/33 157/74/33 158/75/33 +f 159/76/34 161/77/34 162/78/34 +f 165/79/35 166/80/35 164/81/35 +f 167/82/36 169/83/36 170/84/36 +f 171/85/37 173/86/37 174/87/37 +f 177/88/38 178/89/38 176/90/38 +f 181/91/39 182/92/39 180/93/39 +f 185/94/40 186/95/40 184/96/40 +f 187/97/41 189/98/41 190/99/41 +f 191/100/42 193/101/42 194/102/42 +f 195/103/43 197/104/43 198/105/43 +f 199/106/44 201/107/44 202/108/44 +f 204/109/45 203/110/45 205/111/45 +f 207/112/46 209/113/46 210/114/46 +f 211/115/47 213/116/47 214/117/47 +f 215/118/48 217/119/48 218/120/48 +f 219/121/49 221/122/49 222/123/49 +f 223/124/50 225/125/50 226/126/50 +f 227/127/51 229/128/51 230/129/51 +f 231/130/52 233/131/52 234/132/52 +f 237/133/53 236/134/53 235/135/53 +f 240/136/54 239/137/54 242/138/54 +f 245/139/55 244/140/55 243/141/55 +f 249/142/56 248/143/56 247/144/56 +f 252/145/57 251/146/57 254/147/57 +f 256/148/58 255/149/58 258/150/58 +f 261/151/59 260/152/59 259/153/59 +f 264/154/60 263/155/60 266/156/60 +f 268/157/61 267/158/61 270/159/61 +f 273/160/62 272/161/62 271/162/62 +f 276/163/63 275/164/63 278/165/63 +f 280/166/64 279/167/64 282/168/64 +f 3/7/65 4/169/65 146/66/65 +f 4/169/66 5/170/66 144/11/66 +f 4/169/67 62/12/67 11/171/67 +f 10/172/68 15/173/68 12/14/68 +f 10/172/69 185/94/69 183/174/69 +f 13/175/70 16/176/70 184/96/70 +f 13/175/71 181/91/71 179/177/71 +f 12/14/72 15/173/72 5/170/72 +f 15/173/73 183/174/73 184/96/73 +f 23/178/74 26/179/74 180/93/74 +f 23/178/75 177/88/75 175/180/75 +f 28/181/76 30/182/76 176/90/76 +f 28/181/77 173/86/77 171/85/77 +f 33/183/78 35/184/78 172/185/78 +f 33/186/79 169/83/79 167/82/79 +f 173/86/80 28/181/80 33/183/80 +f 23/178/81 28/181/81 178/89/81 +f 13/175/82 23/178/82 182/92/82 +f 10/172/83 13/175/83 186/95/83 +f 4/169/84 10/172/84 63/13/84 +f 233/131/85 231/130/85 5/170/85 +f 189/98/86 187/97/86 2/10/86 +f 229/128/87 227/127/87 15/173/87 +f 15/173/88 227/127/88 228/187/88 +f 234/132/89 233/131/89 15/173/89 +f 5/170/90 231/130/90 232/188/90 +f 190/99/91 189/98/91 5/170/91 +f 2/10/92 187/97/92 188/189/92 +f 7/190/93 188/189/93 190/99/93 +f 234/132/94 21/191/94 8/192/94 +f 230/129/95 229/128/95 16/176/95 +f 16/176/96 223/124/96 224/193/96 +f 225/125/97 223/124/97 16/176/97 +f 16/176/98 179/177/98 180/93/98 +f 26/179/99 175/180/99 176/90/99 +f 30/182/100 171/85/100 172/185/100 +f 43/194/101 161/77/101 159/76/101 +f 43/194/102 45/195/102 164/81/102 +f 38/196/103 165/79/103 163/197/103 +f 38/196/104 40/198/104 168/199/104 +f 40/198/105 35/200/105 167/82/105 +f 33/186/106 38/196/106 170/84/106 +f 38/196/107 43/194/107 166/80/107 +f 48/201/108 50/202/108 160/203/108 +f 48/201/109 157/74/109 155/73/109 +f 53/204/110 55/205/110 156/206/110 +f 53/204/111 153/70/111 151/207/111 +f 58/208/112 60/209/112 152/72/112 +f 58/208/113 149/68/113 147/67/113 +f 3/7/114 2/10/114 148/210/114 +f 3/7/115 150/69/115 149/68/115 +f 53/204/116 58/208/116 154/71/116 +f 48/201/117 53/204/117 158/75/117 +f 43/194/118 48/201/118 162/78/118 +f 40/198/119 163/197/119 164/81/119 +f 45/195/120 159/76/120 160/203/120 +f 55/205/121 50/202/121 155/73/121 +f 55/205/122 151/207/122 152/72/122 +f 60/209/123 147/67/123 148/210/123 +f 193/101/124 191/100/124 60/209/124 +f 194/102/125 193/101/125 2/10/125 +f 197/104/126 195/103/126 55/205/126 +f 201/107/127 199/106/127 50/202/127 +f 202/108/128 201/107/128 55/205/128 +f 55/205/129 195/103/129 196/211/129 +f 198/105/130 197/104/130 60/209/130 +f 60/209/131 191/100/131 192/212/131 +f 56/213/132 192/212/132 194/102/132 +f 51/214/133 196/211/133 198/105/133 +f 50/202/134 199/106/134 200/215/134 +f 206/216/135 205/111/135 50/202/135 +f 45/195/136 203/110/136 204/109/136 +f 210/114/137 209/113/137 45/195/137 +f 40/198/138 207/112/138 208/217/138 +f 214/117/139 213/116/139 40/198/139 +f 35/200/140 211/115/140 212/218/140 +f 218/120/141 217/119/141 35/184/141 +f 30/182/142 215/118/142 216/219/142 +f 222/123/143 221/122/143 30/182/143 +f 217/119/144 215/118/144 30/182/144 +f 213/116/145 211/115/145 35/200/145 +f 209/113/146 207/112/146 40/198/146 +f 205/111/147 203/110/147 45/195/147 +f 46/220/148 200/215/148 202/108/148 +f 41/221/149 204/109/149 206/216/149 +f 36/222/150 208/217/150 210/114/150 +f 31/223/151 212/218/151 214/117/151 +f 19/224/152 216/219/152 218/120/152 +f 26/179/153 219/121/153 220/225/153 +f 226/126/154 225/125/154 26/179/154 +f 221/122/155 219/121/155 26/179/155 +f 18/226/156 220/225/156 222/123/156 +f 22/227/157 224/193/157 226/126/157 +f 21/191/158 228/187/158 230/129/158 +f 24/228/159 9/229/159 281/230/159 +f 280/166/160 8/192/160 21/191/160 +f 24/228/161 282/168/161 279/167/161 +f 9/229/162 8/192/162 280/166/162 +f 7/190/163 8/192/163 275/164/163 +f 9/229/164 6/231/164 277/232/164 +f 6/231/165 57/233/165 273/160/165 +f 56/213/166 7/190/166 271/162/166 +f 57/233/167 52/234/167 269/235/167 +f 56/213/168 267/158/168 268/157/168 +f 57/233/169 270/159/169 267/158/169 +f 57/233/170 56/213/170 272/161/170 +f 6/231/171 274/236/171 271/162/171 +f 6/231/172 7/190/172 276/163/172 +f 52/234/173 47/237/173 265/238/173 +f 47/237/174 42/239/174 261/151/174 +f 41/221/175 46/220/175 259/153/175 +f 47/237/176 262/240/176 259/153/176 +f 51/214/177 263/155/177 264/154/177 +f 52/234/178 266/156/178 263/155/178 +f 52/234/179 51/214/179 268/157/179 +f 47/237/180 46/220/180 264/154/180 +f 41/221/181 255/149/181 256/148/181 +f 31/223/182 36/222/182 251/146/182 +f 19/224/183 31/241/183 247/144/183 +f 42/239/184 37/242/184 257/243/184 +f 37/242/185 32/244/185 253/245/185 +f 20/246/186 249/142/186 250/247/186 +f 32/248/187 250/247/187 247/144/187 +f 32/244/188 31/223/188 252/145/188 +f 37/242/189 254/147/189 251/146/189 +f 37/242/190 36/222/190 256/148/190 +f 42/239/191 258/150/191 255/149/191 +f 42/239/192 41/221/192 260/152/192 +f 18/226/193 19/224/193 243/141/193 +f 18/226/194 239/137/194 240/136/194 +f 17/249/195 25/250/195 241/251/195 +f 17/249/196 245/139/196 246/252/196 +f 20/246/197 246/252/197 243/141/197 +f 20/246/198 19/224/198 248/143/198 +f 17/249/199 18/226/199 244/140/199 +f 17/249/200 242/138/200 239/137/200 +f 21/191/201 22/227/201 235/135/201 +f 24/228/202 237/133/202 238/253/202 +f 25/250/203 238/253/203 235/135/203 +f 25/250/204 22/227/204 240/136/204 +f 24/228/205 21/191/205 236/134/205 +f 9/229/206 278/165/206 275/164/206 +f 142/3/26 133/2/26 136/62/26 +f 87/20/207 82/254/207 71/255/207 +f 83/256/208 92/19/208 88/18/208 +f 70/257/209 43/258/209 121/259/209 +f 71/260/210 78/261/210 135/55/210 +f 43/258/211 13/262/211 142/63/211 +f 122/46/28 123/45/28 79/263/28 +f 70/264/212 71/265/213 48/266/212 +f 71/267/214 70/268/214 100/269/214 +f 102/270/215 101/271/215 71/272/215 +f 119/273/216 73/274/216 70/257/216 +f 81/275/217 84/276/217 80/277/217 +f 13/278/1 10/1/1 142/3/1 +f 48/6/2 43/279/2 33/280/2 +f 38/281/2 33/280/2 43/279/2 +f 28/282/2 23/283/2 13/4/2 +f 13/4/2 10/284/2 3/5/2 +f 4/285/2 3/5/2 10/284/2 +f 58/286/2 53/287/2 48/6/2 +f 48/6/2 33/280/2 28/282/2 +f 28/282/2 13/4/2 48/6/2 +f 3/5/2 58/286/2 48/6/2 +f 2/10/3 3/7/3 143/9/3 +f 5/170/4 2/10/4 144/11/4 +f 11/171/5 62/12/5 12/14/5 +f 96/288/6 89/15/6 95/17/6 +f 89/15/7 88/18/7 94/16/7 +f 91/289/8 87/20/8 97/22/8 +f 99/290/9 96/23/9 98/25/9 +f 97/22/10 90/21/10 98/27/10 +f 124/48/11 138/28/11 129/30/11 +f 79/291/218 123/31/218 136/33/218 +f 129/30/13 130/29/13 128/35/13 +f 74/292/219 132/36/219 122/38/219 +f 124/44/15 126/39/15 125/41/15 +f 131/34/16 137/42/16 128/35/16 +f 126/39/17 124/44/17 128/35/17 +f 127/40/18 123/45/18 125/41/18 +f 125/293/220 139/47/220 124/48/220 +f 127/53/221 140/49/221 123/31/221 +f 135/55/21 79/50/21 133/52/21 +f 137/42/222 140/49/222 126/43/222 +f 125/293/223 122/38/223 139/47/223 +f 10/294/224 48/54/224 133/52/224 +f 137/59/25 138/56/25 140/58/25 +f 130/29/26 138/56/26 131/34/26 +f 134/295/27 141/60/27 139/57/27 +f 134/295/28 132/61/28 141/60/28 +f 121/259/29 142/63/29 74/65/29 +f 143/9/30 145/8/30 144/11/30 +f 148/210/31 147/67/31 150/69/31 +f 151/207/32 153/70/32 152/72/32 +f 156/206/33 155/73/33 158/75/33 +f 160/203/34 159/76/34 162/78/34 +f 163/197/35 165/79/35 164/81/35 +f 168/199/36 167/82/36 170/84/36 +f 172/185/37 171/85/37 174/87/37 +f 175/180/38 177/88/38 176/90/38 +f 179/177/39 181/91/39 180/93/39 +f 183/174/40 185/94/40 184/96/40 +f 188/189/41 187/97/41 190/99/41 +f 192/212/42 191/100/42 194/102/42 +f 196/211/43 195/103/43 198/105/43 +f 200/215/44 199/106/44 202/108/44 +f 206/216/45 204/109/45 205/111/45 +f 208/217/46 207/112/46 210/114/46 +f 212/218/47 211/115/47 214/117/47 +f 216/219/48 215/118/48 218/120/48 +f 220/225/49 219/121/49 222/123/49 +f 224/193/50 223/124/50 226/126/50 +f 228/187/51 227/127/51 230/129/51 +f 232/188/52 231/130/52 234/132/52 +f 238/253/53 237/133/53 235/135/53 +f 241/251/54 240/136/54 242/138/54 +f 246/252/55 245/139/55 243/141/55 +f 250/247/56 249/142/56 247/144/56 +f 253/245/57 252/145/57 254/147/57 +f 257/243/58 256/148/58 258/150/58 +f 262/240/59 261/151/59 259/153/59 +f 265/238/60 264/154/60 266/156/60 +f 269/235/61 268/157/61 270/159/61 +f 274/236/62 273/160/62 271/162/62 +f 277/232/63 276/163/63 278/165/63 +f 281/230/64 280/166/64 282/168/64 +f 145/8/65 3/7/65 146/66/65 +f 146/66/66 4/169/66 144/11/66 +f 5/170/67 4/169/67 11/171/67 +f 63/13/68 10/172/68 12/14/68 +f 15/173/69 10/172/69 183/174/69 +f 186/95/70 13/175/70 184/96/70 +f 16/176/71 13/175/71 179/177/71 +f 11/171/72 12/14/72 5/170/72 +f 16/176/73 15/173/73 184/96/73 +f 182/92/225 23/178/225 180/93/225 +f 26/179/75 23/178/75 175/180/75 +f 178/89/76 28/181/76 176/90/76 +f 30/182/77 28/181/77 171/85/77 +f 174/87/78 33/183/78 172/185/78 +f 35/200/79 33/186/79 167/82/79 +f 174/87/80 173/86/80 33/183/80 +f 177/88/81 23/178/81 178/89/81 +f 181/91/82 13/175/82 182/92/82 +f 185/94/83 10/172/83 186/95/83 +f 62/12/84 4/169/84 63/13/84 +f 15/173/226 233/131/226 5/170/226 +f 5/170/227 189/98/227 2/10/227 +f 16/176/228 229/128/228 15/173/228 +f 21/191/88 15/173/88 228/187/88 +f 21/191/89 234/132/89 15/173/89 +f 8/192/90 5/170/90 232/188/90 +f 8/192/91 190/99/91 5/170/91 +f 7/190/92 2/10/92 188/189/92 +f 8/192/229 7/190/229 190/99/229 +f 232/188/230 234/132/230 8/192/230 +f 22/227/95 230/129/95 16/176/95 +f 22/227/96 16/176/96 224/193/96 +f 26/179/231 225/125/231 16/176/231 +f 26/179/98 16/176/98 180/93/98 +f 30/182/99 26/179/99 176/90/99 +f 35/184/100 30/182/100 172/185/100 +f 45/195/101 43/194/101 159/76/101 +f 166/80/102 43/194/102 164/81/102 +f 40/198/103 38/196/103 163/197/103 +f 170/84/104 38/196/104 168/199/104 +f 168/199/105 40/198/105 167/82/105 +f 169/83/106 33/186/106 170/84/106 +f 165/79/107 38/196/107 166/80/107 +f 162/78/108 48/201/108 160/203/108 +f 50/202/109 48/201/109 155/73/109 +f 158/75/110 53/204/110 156/206/110 +f 55/205/111 53/204/111 151/207/111 +f 154/71/112 58/208/112 152/72/112 +f 60/209/113 58/208/113 147/67/113 +f 150/69/114 3/7/114 148/210/114 +f 58/208/115 3/7/115 149/68/115 +f 153/70/116 53/204/116 154/71/116 +f 157/74/117 48/201/117 158/75/117 +f 161/77/118 43/194/118 162/78/118 +f 45/195/119 40/198/119 164/81/119 +f 50/202/120 45/195/120 160/203/120 +f 156/206/121 55/205/121 155/73/121 +f 60/209/122 55/205/122 152/72/122 +f 2/10/123 60/209/123 148/210/123 +f 2/10/232 193/101/232 60/209/232 +f 7/190/125 194/102/125 2/10/125 +f 60/209/233 197/104/233 55/205/233 +f 55/205/234 201/107/234 50/202/234 +f 51/214/128 202/108/128 55/205/128 +f 51/214/129 55/205/129 196/211/129 +f 56/213/130 198/105/130 60/209/130 +f 56/213/131 60/209/131 192/212/131 +f 7/190/235 56/213/235 194/102/235 +f 56/213/236 51/214/236 198/105/236 +f 46/220/134 50/202/134 200/215/134 +f 46/220/135 206/216/135 50/202/135 +f 41/221/136 45/195/136 204/109/136 +f 41/221/137 210/114/137 45/195/137 +f 36/222/138 40/198/138 208/217/138 +f 36/222/139 214/117/139 40/198/139 +f 31/223/140 35/200/140 212/218/140 +f 31/241/141 218/120/141 35/184/141 +f 19/224/142 30/182/142 216/219/142 +f 19/224/143 222/123/143 30/182/143 +f 35/184/237 217/119/237 30/182/237 +f 40/198/238 213/116/238 35/200/238 +f 45/195/239 209/113/239 40/198/239 +f 50/202/240 205/111/240 45/195/240 +f 51/214/241 46/220/241 202/108/241 +f 46/220/242 41/221/242 206/216/242 +f 41/221/243 36/222/243 210/114/243 +f 36/222/244 31/223/244 214/117/244 +f 31/241/245 19/224/245 218/120/245 +f 18/226/153 26/179/153 220/225/153 +f 18/226/154 226/126/154 26/179/154 +f 30/182/246 221/122/246 26/179/246 +f 19/224/247 18/226/247 222/123/247 +f 18/226/248 22/227/248 226/126/248 +f 22/227/249 21/191/249 230/129/249 +f 282/168/159 24/228/159 281/230/159 +f 279/167/160 280/166/160 21/191/160 +f 21/191/161 24/228/161 279/167/161 +f 281/230/162 9/229/162 280/166/162 +f 276/163/163 7/190/163 275/164/163 +f 278/165/164 9/229/164 277/232/164 +f 274/236/165 6/231/165 273/160/165 +f 272/161/166 56/213/166 271/162/166 +f 270/159/167 57/233/167 269/235/167 +f 51/214/168 56/213/168 268/157/168 +f 56/213/169 57/233/169 267/158/169 +f 273/160/170 57/233/170 272/161/170 +f 7/190/171 6/231/171 271/162/171 +f 277/232/172 6/231/172 276/163/172 +f 266/156/173 52/234/173 265/238/173 +f 262/240/174 47/237/174 261/151/174 +f 260/152/175 41/221/175 259/153/175 +f 46/220/176 47/237/176 259/153/176 +f 46/220/177 51/214/177 264/154/177 +f 51/214/178 52/234/178 263/155/178 +f 269/235/179 52/234/179 268/157/179 +f 265/238/180 47/237/180 264/154/180 +f 36/222/181 41/221/181 256/148/181 +f 252/145/182 31/223/182 251/146/182 +f 248/143/183 19/224/183 247/144/183 +f 258/150/184 42/239/184 257/243/184 +f 254/147/185 37/242/185 253/245/185 +f 32/248/186 20/246/186 250/247/186 +f 31/241/187 32/248/187 247/144/187 +f 253/245/188 32/244/188 252/145/188 +f 36/222/250 37/242/250 251/146/250 +f 257/243/190 37/242/190 256/148/190 +f 41/221/191 42/239/191 255/149/191 +f 261/151/192 42/239/192 260/152/192 +f 244/140/193 18/226/193 243/141/193 +f 22/227/194 18/226/194 240/136/194 +f 242/138/195 17/249/195 241/251/195 +f 20/246/196 17/249/196 246/252/196 +f 19/224/197 20/246/197 243/141/197 +f 249/142/198 20/246/198 248/143/198 +f 245/139/199 17/249/199 244/140/199 +f 18/226/251 17/249/251 239/137/251 +f 236/134/201 21/191/201 235/135/201 +f 25/250/202 24/228/202 238/253/202 +f 22/227/203 25/250/203 235/135/203 +f 241/251/204 25/250/204 240/136/204 +f 237/133/205 24/228/205 236/134/205 +f 8/192/252 9/229/252 275/164/252 +f 132/61/253 142/3/253 136/62/253 +f 71/255/214 101/271/214 87/20/214 +f 87/20/254 91/289/254 82/254/254 +f 88/18/214 102/270/214 70/257/214 +f 70/257/255 83/256/255 88/18/255 +f 121/259/29 74/65/29 75/296/29 +f 75/296/256 70/257/256 121/259/256 +f 135/55/257 48/54/258 71/260/257 +f 71/260/214 84/276/214 78/261/214 +f 78/261/21 79/50/21 135/55/21 +f 121/259/259 43/258/259 142/63/259 +f 74/297/28 122/46/28 79/263/28 +f 43/298/212 70/264/212 48/266/212 +f 84/299/214 71/267/214 100/269/214 +f 70/300/215 102/270/215 71/272/215 +f 70/257/260 75/296/260 120/301/260 +f 120/301/261 119/273/261 70/257/261 +f 73/274/262 72/302/262 70/257/262 +f 83/256/263 70/257/263 72/302/263 +f 82/254/264 76/303/264 84/276/264 +f 77/304/265 80/277/265 84/276/265 +f 81/275/266 78/261/266 84/276/266 +f 84/276/214 71/255/214 82/254/214 +f 76/303/267 77/304/267 84/276/267 +s 1 +f 14/305/268 54/306/269 69/307/270 +f 88/18/271 89/308/272 90/309/273 +f 83/310/274 82/311/275 91/312/276 +f 92/313/277 91/314/276 97/315/278 +f 97/315/278 98/25/279 95/24/279 +f 90/309/273 89/308/272 96/316/280 +f 101/271/214 102/270/214 88/18/271 +f 105/317/281 106/318/282 107/319/283 +f 107/319/283 106/318/282 108/320/284 +f 109/321/285 108/322/284 105/317/281 +f 105/317/281 110/323/286 111/324/287 +f 111/324/287 112/325/288 108/326/284 +f 108/327/284 112/328/288 110/323/286 +f 110/323/286 113/329/289 114/330/290 +f 114/330/290 115/331/291 112/332/288 +f 112/333/288 115/334/291 113/329/289 +f 113/329/289 116/335/292 117/336/293 +f 117/336/293 118/337/294 115/338/291 +f 115/339/291 118/340/294 116/335/292 +f 104/341/295 107/342/283 117/336/293 +f 117/336/293 107/342/283 109/343/285 +f 118/344/294 109/345/285 104/341/295 +f 119/346/296 80/347/297 77/348/298 +f 120/349/299 81/350/300 80/347/297 +f 75/351/301 78/352/302 81/350/300 +f 82/353/275 83/354/274 72/355/303 +f 76/356/304 72/355/303 73/357/305 +f 283/358/306 286/359/307 287/360/308 +f 284/361/309 287/360/308 288/362/310 +f 288/362/310 287/360/308 290/363/311 +f 286/359/307 289/364/312 290/363/311 +f 290/363/311 294/365/313 295/366/314 +f 289/364/312 293/367/315 294/365/313 +f 294/365/313 297/368/316 298/369/317 +f 293/367/315 296/370/318 297/368/316 +f 298/369/317 297/368/316 300/371/319 +f 296/370/318 299/372/320 300/371/319 +f 299/372/320 302/373/321 303/374/322 +f 300/371/319 303/374/322 304/375/323 +f 302/373/321 305/376/324 306/377/325 +f 303/374/322 306/377/325 307/378/326 +f 283/358/306 292/379/2 286/359/307 +f 286/359/307 292/379/2 289/364/312 +f 289/364/312 292/379/2 293/367/315 +f 293/367/315 292/379/2 296/370/318 +f 296/370/318 292/379/2 299/372/320 +f 299/372/320 292/379/2 302/373/321 +f 302/373/321 292/379/2 305/376/324 +f 305/376/324 283/358/306 284/361/309 +f 307/378/326 306/377/325 284/361/309 +f 305/376/324 292/379/2 283/358/306 +f 9/380/327 61/381/328 69/307/270 +f 1/382/329 57/383/330 6/384/331 +f 59/385/332 52/386/333 57/383/330 +f 52/386/333 59/385/332 54/306/269 +f 49/387/334 42/388/335 47/389/336 +f 42/388/335 49/387/334 44/390/337 +f 39/391/338 32/392/339 37/393/340 +f 32/392/339 39/391/338 34/394/341 +f 29/395/342 17/396/343 20/397/344 +f 17/396/343 29/395/342 14/305/268 +f 27/398/345 24/399/346 25/400/347 +f 61/381/328 9/380/327 24/399/346 +f 75/351/301 74/401/348 79/402/348 +f 59/385/332 1/382/329 69/307/270 +f 69/307/270 61/381/328 27/398/345 +f 27/398/345 14/305/268 69/307/270 +f 29/395/342 34/394/341 39/391/338 +f 39/391/338 44/390/337 54/306/269 +f 49/387/334 54/306/269 44/390/337 +f 59/385/332 69/307/270 54/306/269 +f 14/305/268 29/395/342 39/391/338 +f 39/391/338 54/306/269 14/305/268 +f 87/20/349 88/18/271 90/309/273 +f 92/403/277 83/310/274 91/312/276 +f 94/404/350 92/313/277 97/315/278 +f 94/404/350 97/315/278 95/24/279 +f 99/405/280 90/309/273 96/316/280 +f 87/20/349 101/271/214 88/18/271 +f 104/406/295 105/317/281 107/319/283 +f 109/407/285 107/319/283 108/320/284 +f 104/406/295 109/321/285 105/317/281 +f 106/318/282 105/317/281 111/324/287 +f 106/318/282 111/324/287 108/326/284 +f 105/317/281 108/327/284 110/323/286 +f 111/324/287 110/323/286 114/330/290 +f 111/324/287 114/330/290 112/332/288 +f 110/323/286 112/333/288 113/329/289 +f 114/330/290 113/329/289 117/336/293 +f 114/330/290 117/336/293 115/338/291 +f 113/329/289 115/339/291 116/335/292 +f 116/335/292 104/341/295 117/336/293 +f 118/408/294 117/336/293 109/343/285 +f 116/335/292 118/344/294 104/341/295 +f 73/357/305 119/346/296 77/348/298 +f 119/346/296 120/349/299 80/347/297 +f 120/349/299 75/351/301 81/350/300 +f 76/356/304 82/353/275 72/355/303 +f 77/348/298 76/356/304 73/357/305 +f 284/361/309 283/358/306 287/360/308 +f 285/409/351 284/361/309 288/362/310 +f 291/410/352 288/362/310 290/363/311 +f 287/360/308 286/359/307 290/363/311 +f 291/410/352 290/363/311 295/366/314 +f 290/363/311 289/364/312 294/365/313 +f 295/366/314 294/365/313 298/369/317 +f 294/365/313 293/367/315 297/368/316 +f 301/411/353 298/369/317 300/371/319 +f 297/368/316 296/370/318 300/371/319 +f 300/371/319 299/372/320 303/374/322 +f 301/411/353 300/371/319 304/375/323 +f 303/374/322 302/373/321 306/377/325 +f 304/375/323 303/374/322 307/378/326 +f 306/377/325 305/376/324 284/361/309 +f 285/409/351 307/378/326 284/361/309 +f 6/384/331 9/380/327 69/307/270 +f 69/307/270 1/382/329 6/384/331 +f 1/382/329 59/385/332 57/383/330 +f 47/389/336 52/386/333 54/306/269 +f 54/306/269 49/387/334 47/389/336 +f 37/393/340 42/388/335 44/390/337 +f 44/390/337 39/391/338 37/393/340 +f 20/397/344 32/392/339 34/394/341 +f 34/394/341 29/395/342 20/397/344 +f 25/400/347 17/396/343 14/305/268 +f 14/305/268 27/398/345 25/400/347 +f 27/398/345 61/381/328 24/399/346 +f 78/352/302 75/351/301 79/402/348 +l 93 103 +l 67 68 +l 64 65 +l 85 86 diff --git a/assets/hbm/models/weapons/pch.obj b/assets/hbm/models/weapons/pch.obj new file mode 100644 index 000000000..e3634a298 --- /dev/null +++ b/assets/hbm/models/weapons/pch.obj @@ -0,0 +1,245 @@ +# Blender v2.76 (sub 0) OBJ File: 'pch.blend' +# www.blender.org +o ponycum_Cylinder.003 +v 0.000000 -0.457474 -0.076488 +v 0.000000 0.498621 -0.076488 +v 0.063454 0.498621 -0.038244 +v 0.063454 -0.457474 -0.038244 +v 0.063454 0.498621 0.038244 +v 0.063454 -0.457474 0.038244 +v 0.000000 0.498621 0.076488 +v 0.000000 -0.457474 0.076488 +v -0.063454 0.498621 0.038244 +v -0.063454 -0.457474 0.038244 +v -0.063454 0.498621 -0.038244 +v -0.063454 -0.457474 -0.038244 +v 0.244563 0.705111 -0.261231 +v -0.244563 0.705111 -0.261231 +v -0.244563 0.821944 -0.260374 +v 0.244563 0.821944 -0.260374 +v 0.244661 0.821816 0.260308 +v -0.244661 0.821816 0.260308 +v -0.244661 0.704698 0.259606 +v 0.244661 0.704698 0.259606 +v 0.300312 0.880010 -0.277019 +v 0.300312 0.650163 -0.277880 +v 0.244563 0.705233 -0.277878 +v 0.244563 0.822066 -0.277021 +v -0.300312 0.880010 -0.277019 +v -0.300312 1.041927 -0.113884 +v 0.300312 1.041927 -0.113884 +v -0.300312 1.041066 0.115963 +v 0.300312 1.041066 0.115963 +v -0.300312 0.877932 0.277880 +v 0.300312 0.877931 0.277880 +v -0.300312 0.648084 0.277019 +v 0.300312 0.648084 0.277019 +v 0.244662 0.704449 0.277099 +v -0.244662 0.704449 0.277099 +v -0.300312 0.486167 0.113884 +v 0.300312 0.486167 0.113884 +v -0.300312 0.650163 -0.277880 +v -0.300312 0.487028 -0.115963 +v 0.300312 0.487028 -0.115963 +v -0.244662 0.821567 0.277801 +v -0.244662 0.704698 0.259606 +v -0.244662 0.821816 0.260308 +v 0.244662 0.821567 0.277801 +v 0.244662 0.821816 0.260308 +v 0.244662 0.704698 0.259606 +v -0.244563 0.705233 -0.277878 +v -0.244563 0.705111 -0.261231 +v 0.244563 0.705111 -0.261231 +v -0.244563 0.822066 -0.277021 +v 0.244563 0.821944 -0.260374 +v -0.244563 0.821944 -0.260374 +vt 0.625000 0.687500 +vt 0.625000 0.593750 +vt 1.000000 0.593750 +vt 0.625000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.687500 +vt 0.500000 0.250000 +vt 0.437500 0.312500 +vt 0.437500 0.250000 +vt 0.687500 0.781250 +vt 1.000000 0.781250 +vt 1.000000 0.906250 +vt 0.687500 0.906250 +vt 0.468750 1.000000 +vt 0.375000 0.781250 +vt 0.437500 0.218750 +vt 0.500000 0.218750 +vt 0.718750 0.218750 +vt 0.781250 0.250000 +vt 0.781250 0.218750 +vt 1.000000 0.218750 +vt 0.718750 0.250000 +vt 1.000000 0.187500 +vt 0.718750 0.187500 +vt 0.781250 0.187500 +vt 0.500000 0.187500 +vt 0.468750 0.250000 +vt 0.500000 0.312500 +vt 0.468750 0.312500 +vt 0.906250 1.000000 +vt 0.781250 1.000000 +vt 0.781250 0.687500 +vt 0.906250 0.687500 +vt 0.468750 0.687500 +vt 0.593750 0.687500 +vt 0.593750 1.000000 +vt 0.375000 0.906250 +vt 1.000000 0.250000 +vt 0.437500 0.187500 +vt 0.437500 0.093750 +vt 1.000000 0.093750 +vt 1.000000 0.125000 +vt 1.000000 0.156250 +vt 0.437500 0.156250 +vt 1.000000 -0.000000 +vt 1.000000 0.031250 +vt 0.437500 0.031250 +vt 1.000000 0.062500 +vt 0.437500 0.062500 +vt 0.375000 0.875000 +vt 0.343750 0.843750 +vt 0.343750 0.781250 +vt 0.000000 0.750000 +vt 0.000000 0.625000 +vt 0.375000 0.625000 +vt 0.000000 0.500000 +vt 0.375000 0.500000 +vt 0.000000 0.375000 +vt -0.000000 0.250000 +vt 0.375000 0.250000 +vt 0.343750 0.281250 +vt -0.000000 0.125000 +vt 0.375000 0.125000 +vt 0.000000 0.000000 +vt 0.375000 0.000000 +vt 0.000203 0.999797 +vt 0.000000 0.875000 +vt 0.375000 0.375000 +vt 0.343750 0.343750 +vt 0.031250 0.281250 +vt 0.031250 0.343750 +vt 0.375000 0.750000 +vt 0.031250 0.781250 +vt 0.031250 0.843750 +vt 0.437500 0.125000 +vt 0.437500 0.000000 +vt 0.375000 1.000000 +vn 0.000000 0.007300 -1.000000 +vn 0.000000 -0.006000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn -1.000000 -0.000000 0.000000 +vn 1.000000 -0.000000 0.000000 +vn 0.000000 -0.999900 -0.014300 +vn 0.000000 0.999900 0.014300 +vn 0.000000 1.000000 0.007300 +vn -0.000000 -1.000000 -0.007300 +vn 0.000000 0.000000 -1.000000 +vn 0.870700 0.000000 -0.491800 +vn 0.870700 -0.000000 0.491800 +vn -0.000000 -0.000000 1.000000 +vn -0.870700 -0.000000 0.491800 +vn -0.870700 0.000000 -0.491800 +vn 0.000800 -0.379600 -0.925200 +vn 0.003600 0.003700 -1.000000 +vn -0.001200 0.002100 -1.000000 +vn 0.001000 0.385300 -0.922800 +vn 0.000000 0.925300 -0.379200 +vn 0.000000 0.922400 0.386100 +vn -0.000500 0.379500 0.925200 +vn 0.000600 -0.385600 0.922700 +vn -0.000600 -0.385600 0.922700 +vn -0.000700 -0.002700 1.000000 +vn 0.000000 -0.925300 0.379200 +vn 0.000000 -0.922400 -0.386100 +vn -0.000800 -0.379600 -0.925200 +vn 0.000500 0.379500 0.925200 +vn 0.002300 -0.003700 1.000000 +vn 0.000700 -0.002700 1.000000 +vn -0.002300 -0.003700 1.000000 +vn -0.001000 0.385300 -0.922800 +vn 0.001200 0.002100 -1.000000 +vn -0.003600 0.003700 -1.000000 +s off +f 14/1/1 15/2/1 16/3/1 +f 18/2/2 19/4/2 20/5/2 +f 13/6/1 14/1/1 16/3/1 +f 17/3/2 18/2/2 20/5/2 +f 4/7/3 10/8/3 12/9/3 +f 36/10/4 28/11/4 26/12/4 +f 29/13/5 33/14/5 40/15/5 +f 41/7/5 35/9/5 42/16/5 +f 41/7/6 43/17/6 45/18/6 +f 34/19/7 46/20/7 42/21/7 +f 44/22/4 45/18/4 46/20/4 +f 47/23/8 48/21/8 49/20/8 +f 24/24/4 23/25/4 49/20/4 +f 24/24/9 51/18/9 52/17/9 +f 50/26/5 52/17/5 48/16/5 +f 12/9/3 1/27/3 4/7/3 +f 4/7/3 6/28/3 10/8/3 +f 8/29/3 10/8/3 6/28/3 +f 26/12/4 25/30/4 38/31/4 +f 38/31/4 39/13/4 26/12/4 +f 36/10/4 32/32/4 30/33/4 +f 30/33/4 28/11/4 36/10/4 +f 26/12/4 39/13/4 36/10/4 +f 40/15/5 22/34/5 29/13/5 +f 21/35/5 27/10/5 29/13/5 +f 29/13/5 31/36/5 33/14/5 +f 33/14/5 37/37/5 40/15/5 +f 22/34/5 21/35/5 29/13/5 +f 43/17/5 41/7/5 42/16/5 +f 44/22/6 41/7/6 45/18/6 +f 35/38/7 34/19/7 42/21/7 +f 34/19/4 44/22/4 46/20/4 +f 23/25/8 47/23/8 49/20/8 +f 51/18/4 24/24/4 49/20/4 +f 50/26/9 24/24/9 52/17/9 +f 47/39/5 50/26/5 48/16/5 +s 1 +f 1/40/10 2/41/10 3/42/11 +f 3/42/11 5/43/12 6/44/12 +f 5/43/12 7/23/13 8/39/13 +f 7/45/13 9/46/14 10/47/14 +f 9/46/14 11/48/15 12/49/15 +f 11/48/15 2/41/10 1/40/10 +f 22/50/16 23/51/17 24/52/18 +f 25/53/19 26/54/20 27/55/20 +f 26/54/20 28/56/21 29/57/21 +f 29/57/21 28/56/21 30/58/22 +f 32/59/23 33/60/24 34/61/25 +f 32/59/23 36/62/26 37/63/26 +f 36/62/26 39/64/27 40/65/27 +f 39/66/27 38/67/28 22/50/16 +f 31/68/29 44/69/30 34/61/25 +f 30/58/22 32/59/23 35/70/31 +f 30/58/22 41/71/32 44/69/30 +f 21/72/33 24/52/18 50/73/34 +f 38/67/28 25/53/19 50/73/34 +f 22/50/16 38/67/28 47/74/35 +f 4/75/11 1/40/10 3/42/11 +f 4/75/11 3/42/11 6/44/12 +f 6/44/12 5/43/12 8/39/13 +f 8/76/13 7/45/13 10/47/14 +f 10/47/14 9/46/14 12/49/15 +f 12/49/15 11/48/15 1/40/10 +f 21/72/33 22/50/16 24/52/18 +f 21/72/33 25/53/19 27/55/20 +f 27/55/20 26/54/20 29/57/21 +f 31/68/29 29/57/21 30/58/22 +f 35/70/31 32/59/23 34/61/25 +f 33/60/24 32/59/23 37/63/26 +f 37/63/26 36/62/26 40/65/27 +f 40/77/27 39/66/27 22/50/16 +f 33/60/24 31/68/29 34/61/25 +f 41/71/32 30/58/22 35/70/31 +f 31/68/29 30/58/22 44/69/30 +f 25/53/19 21/72/33 50/73/34 +f 47/74/35 38/67/28 50/73/34 +f 23/51/17 22/50/16 47/74/35 diff --git a/assets/hbm/sounds.json b/assets/hbm/sounds.json index 9aa9eee37..ac54ce962 100644 --- a/assets/hbm/sounds.json +++ b/assets/hbm/sounds.json @@ -51,6 +51,7 @@ "item.radaway": {"category": "player", "sounds": [{"name": "tool/radaway", "stream": false}]}, "item.spray": {"category": "player", "sounds": [{"name": "tool/spray", "stream": false}]}, "item.repair": {"category": "player", "sounds": ["tool/repair1", "tool/repair2", "tool/repair3", "tool/repair4", "tool/repair5", "tool/repair6", "tool/repair7"]}, + "item.vice": {"category": "player", "sounds": [{"name": "tool/vice", "stream": false}]}, "music.recordLambdaCore": {"category": "record", "sounds": [{"name": "music/recordLambdaCore", "stream": true}]}, "music.recordSectorSweep": {"category": "record", "sounds": [{"name": "music/recordSectorSweep", "stream": true}]}, @@ -126,6 +127,7 @@ "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.bodysplat": {"category": "player", "sounds": [{"name": "weapon/bodysplat", "stream": false}]}, "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/tool/vice.ogg b/assets/hbm/sounds/tool/vice.ogg new file mode 100644 index 000000000..225d20b3c Binary files /dev/null and b/assets/hbm/sounds/tool/vice.ogg differ diff --git a/assets/hbm/sounds/weapon/bodysplat.ogg b/assets/hbm/sounds/weapon/bodysplat.ogg new file mode 100644 index 000000000..3b33fe2d1 Binary files /dev/null and b/assets/hbm/sounds/weapon/bodysplat.ogg differ diff --git a/assets/hbm/textures/blocks/brick_obsidian.png b/assets/hbm/textures/blocks/brick_obsidian.png index 279923add..797224b19 100644 Binary files a/assets/hbm/textures/blocks/brick_obsidian.png and b/assets/hbm/textures/blocks/brick_obsidian.png differ diff --git a/assets/hbm/textures/blocks/machine_crystallizer_side.png b/assets/hbm/textures/blocks/machine_crystallizer_side.png new file mode 100644 index 000000000..fb4b59917 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_crystallizer_side.png differ diff --git a/assets/hbm/textures/blocks/machine_crystallizer_top.png b/assets/hbm/textures/blocks/machine_crystallizer_top.png new file mode 100644 index 000000000..6fd2f0c05 Binary files /dev/null and b/assets/hbm/textures/blocks/machine_crystallizer_top.png differ diff --git a/assets/hbm/textures/gui/centrifuge_gas.png b/assets/hbm/textures/gui/centrifuge_gas.png index 4fcd7e519..688d9cc19 100644 Binary files a/assets/hbm/textures/gui/centrifuge_gas.png and b/assets/hbm/textures/gui/centrifuge_gas.png differ diff --git a/assets/hbm/textures/gui/gui_arc.png b/assets/hbm/textures/gui/gui_arc.png index 521fbb4dc..0dc6c8c1c 100644 Binary files a/assets/hbm/textures/gui/gui_arc.png and b/assets/hbm/textures/gui/gui_arc.png differ diff --git a/assets/hbm/textures/gui/processing/gui_crystallizer.png b/assets/hbm/textures/gui/processing/gui_crystallizer.png index 87b69828f..160ba3017 100644 Binary files a/assets/hbm/textures/gui/processing/gui_crystallizer.png and b/assets/hbm/textures/gui/processing/gui_crystallizer.png differ diff --git a/assets/hbm/textures/gui/weapon/fatManSchematic.png b/assets/hbm/textures/gui/weapon/fatManSchematic.png index bea1bf29d..8eb62ae2e 100644 Binary files a/assets/hbm/textures/gui/weapon/fatManSchematic.png and b/assets/hbm/textures/gui/weapon/fatManSchematic.png differ diff --git a/assets/hbm/textures/gui/weapon/gadgetSchematic.png b/assets/hbm/textures/gui/weapon/gadgetSchematic.png index 68137f106..d51aeb1a2 100644 Binary files a/assets/hbm/textures/gui/weapon/gadgetSchematic.png and b/assets/hbm/textures/gui/weapon/gadgetSchematic.png differ diff --git a/assets/hbm/textures/gui/weapon/lilBoySchematic.png b/assets/hbm/textures/gui/weapon/lilBoySchematic.png index 93c78e877..9a3ce0026 100644 Binary files a/assets/hbm/textures/gui/weapon/lilBoySchematic.png and b/assets/hbm/textures/gui/weapon/lilBoySchematic.png differ diff --git a/assets/hbm/textures/items/boy_bullet.png b/assets/hbm/textures/items/boy_bullet.png index 8cbad4a15..f9a43315d 100644 Binary files a/assets/hbm/textures/items/boy_bullet.png and b/assets/hbm/textures/items/boy_bullet.png differ diff --git a/assets/hbm/textures/items/boy_target.png b/assets/hbm/textures/items/boy_target.png index 6e34d3bf5..4893ae021 100644 Binary files a/assets/hbm/textures/items/boy_target.png and b/assets/hbm/textures/items/boy_target.png differ diff --git a/assets/hbm/textures/items/cbt_device.png b/assets/hbm/textures/items/cbt_device.png new file mode 100644 index 000000000..f2067bd85 Binary files /dev/null and b/assets/hbm/textures/items/cbt_device.png differ diff --git a/assets/hbm/textures/items/crystal_fluorite.png b/assets/hbm/textures/items/crystal_fluorite.png new file mode 100644 index 000000000..b111fedda Binary files /dev/null and b/assets/hbm/textures/items/crystal_fluorite.png differ diff --git a/assets/hbm/textures/items/crystal_lithium.png b/assets/hbm/textures/items/crystal_lithium.png new file mode 100644 index 000000000..090691af5 Binary files /dev/null and b/assets/hbm/textures/items/crystal_lithium.png differ diff --git a/assets/hbm/textures/items/crystal_niter.png b/assets/hbm/textures/items/crystal_niter.png new file mode 100644 index 000000000..508d7ea7a Binary files /dev/null and b/assets/hbm/textures/items/crystal_niter.png differ diff --git a/assets/hbm/textures/items/crystal_phosphorus.png b/assets/hbm/textures/items/crystal_phosphorus.png new file mode 100644 index 000000000..574b1cfd9 Binary files /dev/null and b/assets/hbm/textures/items/crystal_phosphorus.png differ diff --git a/assets/hbm/textures/items/crystal_plutonium.png b/assets/hbm/textures/items/crystal_plutonium.png new file mode 100644 index 000000000..b7631383e Binary files /dev/null and b/assets/hbm/textures/items/crystal_plutonium.png differ diff --git a/assets/hbm/textures/items/crystal_starmetal.png b/assets/hbm/textures/items/crystal_starmetal.png new file mode 100644 index 000000000..2692e4840 Binary files /dev/null and b/assets/hbm/textures/items/crystal_starmetal.png differ diff --git a/assets/hbm/textures/items/crystal_trixite.png b/assets/hbm/textures/items/crystal_trixite.png new file mode 100644 index 000000000..7f2b75059 Binary files /dev/null and b/assets/hbm/textures/items/crystal_trixite.png differ diff --git a/assets/hbm/textures/items/ingot_plutonium_fuel.png b/assets/hbm/textures/items/ingot_plutonium_fuel.png index 0a0124cd7..c97eb9fce 100644 Binary files a/assets/hbm/textures/items/ingot_plutonium_fuel.png and b/assets/hbm/textures/items/ingot_plutonium_fuel.png differ diff --git a/assets/hbm/textures/items/ingot_uranium_fuel.png b/assets/hbm/textures/items/ingot_uranium_fuel.png index e20b8402c..2ed33eb7e 100644 Binary files a/assets/hbm/textures/items/ingot_uranium_fuel.png and b/assets/hbm/textures/items/ingot_uranium_fuel.png differ diff --git a/assets/hbm/textures/items/motor.png b/assets/hbm/textures/items/motor.png index de87f85ea..cd9367bd2 100644 Binary files a/assets/hbm/textures/items/motor.png and b/assets/hbm/textures/items/motor.png differ diff --git a/assets/hbm/textures/items/nugget_beryllium.png b/assets/hbm/textures/items/nugget_beryllium.png index 4b1c3829e..df6e6363b 100644 Binary files a/assets/hbm/textures/items/nugget_beryllium.png and b/assets/hbm/textures/items/nugget_beryllium.png differ diff --git a/assets/hbm/textures/items/nugget_dineutronium.png b/assets/hbm/textures/items/nugget_dineutronium.png index 08caf43c4..1718f0239 100644 Binary files a/assets/hbm/textures/items/nugget_dineutronium.png and b/assets/hbm/textures/items/nugget_dineutronium.png differ diff --git a/assets/hbm/textures/items/nugget_euphemium.png b/assets/hbm/textures/items/nugget_euphemium.png index 6683d3dad..6661f0b9f 100644 Binary files a/assets/hbm/textures/items/nugget_euphemium.png and b/assets/hbm/textures/items/nugget_euphemium.png differ diff --git a/assets/hbm/textures/items/nugget_hes.png b/assets/hbm/textures/items/nugget_hes.png index e9cc511fd..938439072 100644 Binary files a/assets/hbm/textures/items/nugget_hes.png and b/assets/hbm/textures/items/nugget_hes.png differ diff --git a/assets/hbm/textures/items/nugget_lead.png b/assets/hbm/textures/items/nugget_lead.png index 15a5e0791..c77a0b593 100644 Binary files a/assets/hbm/textures/items/nugget_lead.png and b/assets/hbm/textures/items/nugget_lead.png differ diff --git a/assets/hbm/textures/items/nugget_les.png b/assets/hbm/textures/items/nugget_les.png index 027f31e77..abdc97264 100644 Binary files a/assets/hbm/textures/items/nugget_les.png and b/assets/hbm/textures/items/nugget_les.png differ diff --git a/assets/hbm/textures/items/nugget_mox_fuel.png b/assets/hbm/textures/items/nugget_mox_fuel.png index af702bf7e..0f7440435 100644 Binary files a/assets/hbm/textures/items/nugget_mox_fuel.png and b/assets/hbm/textures/items/nugget_mox_fuel.png differ diff --git a/assets/hbm/textures/items/nugget_neptunium.png b/assets/hbm/textures/items/nugget_neptunium.png index e7ab62132..19fb94df9 100644 Binary files a/assets/hbm/textures/items/nugget_neptunium.png and b/assets/hbm/textures/items/nugget_neptunium.png differ diff --git a/assets/hbm/textures/items/nugget_plutonium.png b/assets/hbm/textures/items/nugget_plutonium.png index 1d8f82470..df2e3bdc0 100644 Binary files a/assets/hbm/textures/items/nugget_plutonium.png and b/assets/hbm/textures/items/nugget_plutonium.png differ diff --git a/assets/hbm/textures/items/nugget_plutonium_fuel.png b/assets/hbm/textures/items/nugget_plutonium_fuel.png index bbf0aa557..8bb580da6 100644 Binary files a/assets/hbm/textures/items/nugget_plutonium_fuel.png and b/assets/hbm/textures/items/nugget_plutonium_fuel.png differ diff --git a/assets/hbm/textures/items/nugget_pu238.png b/assets/hbm/textures/items/nugget_pu238.png index 8ca407d20..c02553702 100644 Binary files a/assets/hbm/textures/items/nugget_pu238.png and b/assets/hbm/textures/items/nugget_pu238.png differ diff --git a/assets/hbm/textures/items/nugget_pu239.png b/assets/hbm/textures/items/nugget_pu239.png index e8a719d76..6357bc64b 100644 Binary files a/assets/hbm/textures/items/nugget_pu239.png and b/assets/hbm/textures/items/nugget_pu239.png differ diff --git a/assets/hbm/textures/items/nugget_pu240.png b/assets/hbm/textures/items/nugget_pu240.png index aedab2a69..e2e5b511b 100644 Binary files a/assets/hbm/textures/items/nugget_pu240.png and b/assets/hbm/textures/items/nugget_pu240.png differ diff --git a/assets/hbm/textures/items/nugget_schrabidium.png b/assets/hbm/textures/items/nugget_schrabidium.png index 33406ce2f..b276060c5 100644 Binary files a/assets/hbm/textures/items/nugget_schrabidium.png and b/assets/hbm/textures/items/nugget_schrabidium.png differ diff --git a/assets/hbm/textures/items/nugget_solinium.png b/assets/hbm/textures/items/nugget_solinium.png index 81ae12c1b..957fe45e4 100644 Binary files a/assets/hbm/textures/items/nugget_solinium.png and b/assets/hbm/textures/items/nugget_solinium.png differ diff --git a/assets/hbm/textures/items/nugget_u233.png b/assets/hbm/textures/items/nugget_u233.png index 79bfecc62..b10284e2b 100644 Binary files a/assets/hbm/textures/items/nugget_u233.png and b/assets/hbm/textures/items/nugget_u233.png differ diff --git a/assets/hbm/textures/items/nugget_u235.png b/assets/hbm/textures/items/nugget_u235.png index 2026c787a..915f81807 100644 Binary files a/assets/hbm/textures/items/nugget_u235.png and b/assets/hbm/textures/items/nugget_u235.png differ diff --git a/assets/hbm/textures/items/nugget_u238.png b/assets/hbm/textures/items/nugget_u238.png index c46f77291..b18c37651 100644 Binary files a/assets/hbm/textures/items/nugget_u238.png and b/assets/hbm/textures/items/nugget_u238.png differ diff --git a/assets/hbm/textures/items/nugget_uranium.png b/assets/hbm/textures/items/nugget_uranium.png index ce766ec3b..d41c3ce25 100644 Binary files a/assets/hbm/textures/items/nugget_uranium.png and b/assets/hbm/textures/items/nugget_uranium.png differ diff --git a/assets/hbm/textures/items/nugget_uranium_fuel.png b/assets/hbm/textures/items/nugget_uranium_fuel.png index 37a25f26e..0e6ff17f8 100644 Binary files a/assets/hbm/textures/items/nugget_uranium_fuel.png and b/assets/hbm/textures/items/nugget_uranium_fuel.png differ diff --git a/assets/hbm/textures/items/pch.png b/assets/hbm/textures/items/pch.png new file mode 100644 index 000000000..990294cbb Binary files /dev/null and b/assets/hbm/textures/items/pch.png differ diff --git a/assets/hbm/textures/items/solinium_core.png b/assets/hbm/textures/items/solinium_core.png index 1415985e5..bb9e751df 100644 Binary files a/assets/hbm/textures/items/solinium_core.png and b/assets/hbm/textures/items/solinium_core.png differ diff --git a/assets/hbm/textures/models/weapons/grenade.png b/assets/hbm/textures/models/weapons/grenade.png new file mode 100644 index 000000000..92c1a7394 Binary files /dev/null and b/assets/hbm/textures/models/weapons/grenade.png differ diff --git a/assets/hbm/textures/models/weapons/grenade_mk2.png b/assets/hbm/textures/models/weapons/grenade_mk2.png new file mode 100644 index 000000000..ac046b160 Binary files /dev/null and b/assets/hbm/textures/models/weapons/grenade_mk2.png differ diff --git a/assets/hbm/textures/models/weapons/pch.png b/assets/hbm/textures/models/weapons/pch.png new file mode 100644 index 000000000..97b11c5af Binary files /dev/null and b/assets/hbm/textures/models/weapons/pch.png differ diff --git a/com/hbm/blocks/machine/MachineCrystallizer.java b/com/hbm/blocks/machine/MachineCrystallizer.java index 7e155862d..fdca41b9c 100644 --- a/com/hbm/blocks/machine/MachineCrystallizer.java +++ b/com/hbm/blocks/machine/MachineCrystallizer.java @@ -1,13 +1,21 @@ package com.hbm.blocks.machine; import com.hbm.blocks.ModBlocks; +import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; import net.minecraft.world.World; public class MachineCrystallizer extends BlockMachineBase { + + @SideOnly(Side.CLIENT) + private IIcon iconTop; public MachineCrystallizer(Material mat) { super(mat, ModBlocks.guiID_crystallizer); @@ -17,5 +25,19 @@ public class MachineCrystallizer extends BlockMachineBase { public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { return new TileEntityMachineCrystallizer(); } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + + this.iconTop = iconRegister.registerIcon(RefStrings.MODID + ":machine_crystallizer_top"); + this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":machine_crystallizer_side"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return side == 1 ? this.iconTop : (side == 0 ? this.iconTop : this.blockIcon); + } } diff --git a/com/hbm/blocks/machine/SoyuzLauncher.java b/com/hbm/blocks/machine/SoyuzLauncher.java index 32c344616..ef94859d7 100644 --- a/com/hbm/blocks/machine/SoyuzLauncher.java +++ b/com/hbm/blocks/machine/SoyuzLauncher.java @@ -89,23 +89,6 @@ public class SoyuzLauncher extends BlockDummyable { ForgeDirection dir = ForgeDirection.EAST; - /*if(i == 0) - { - dir = ForgeDirection.getOrientation(2); - } - if(i == 1) - { - dir = ForgeDirection.getOrientation(5); - } - if(i == 2) - { - dir = ForgeDirection.getOrientation(3); - } - if(i == 3) - { - dir = ForgeDirection.getOrientation(4); - }*/ - if(!checkRequirement(world, x, y, z, dir, o)) { world.setBlockToAir(x, y, z); @@ -127,6 +110,8 @@ public class SoyuzLauncher extends BlockDummyable { return; } + pl.getHeldItem().stackSize--; + world.setBlock(x + dir.offsetX * o , y + dir.offsetY * o + height, z + dir.offsetZ * o, this, dir.ordinal() + offset, 3); fillSpace(world, x, y, z, dir, o); world.scheduleBlockUpdate(x, y, z, this, 1); @@ -165,8 +150,6 @@ public class SoyuzLauncher extends BlockDummyable { MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] { -2, 4, -3, 6, 6, -3 }, this, dir); MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] { 0, 4, 1, 1, -6, 8 }, this, dir); MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] { 0, 4, 2, 2, 9, -5 }, this, dir); - - //for(int a = ) } @Override diff --git a/com/hbm/blocks/network/BlockConveyor.java b/com/hbm/blocks/network/BlockConveyor.java index c6f546a08..bfc5c4120 100644 --- a/com/hbm/blocks/network/BlockConveyor.java +++ b/com/hbm/blocks/network/BlockConveyor.java @@ -1,7 +1,6 @@ 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; @@ -82,11 +81,6 @@ public class BlockConveyor extends Block { { world.setBlockMetadataWithNotify(x, y, z, 4, 2); } - - if(itemStack.hasDisplayName()) - { - ((TileEntityMachineEPress)world.getTileEntity(x, y, z)).setCustomName(itemStack.getDisplayName()); - } } } diff --git a/com/hbm/entity/grenade/EntityGrenadeBouncyBase.java b/com/hbm/entity/grenade/EntityGrenadeBouncyBase.java index 060e8fc8d..e314b6658 100644 --- a/com/hbm/entity/grenade/EntityGrenadeBouncyBase.java +++ b/com/hbm/entity/grenade/EntityGrenadeBouncyBase.java @@ -43,6 +43,8 @@ public abstract class EntityGrenadeBouncyBase extends Entity implements IProject this.motionZ = (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * MathHelper.cos(this.rotationPitch / 180.0F * (float)Math.PI) * f); this.motionY = (double)(-MathHelper.sin((this.rotationPitch + this.func_70183_g()) / 180.0F * (float)Math.PI) * f); this.setThrowableHeading(this.motionX, this.motionY, this.motionZ, this.func_70182_d(), 1.0F); + this.rotationPitch = 0; + this.prevRotationPitch = 0; } public EntityGrenadeBouncyBase(World world, double posX, double posY, double posZ) @@ -94,9 +96,7 @@ public abstract class EntityGrenadeBouncyBase extends Entity implements IProject this.motionX = motionX; this.motionY = motionY; this.motionZ = motionZ; - float f3 = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(motionY, (double)f3) * 180.0D / Math.PI); } @SideOnly(Side.CLIENT) @@ -108,18 +108,20 @@ public abstract class EntityGrenadeBouncyBase extends Entity implements IProject if (this.prevRotationPitch == 0.0F && this.prevRotationYaw == 0.0F) { - float f = MathHelper.sqrt_double(motionX * motionX + motionZ * motionZ); this.prevRotationYaw = this.rotationYaw = (float)(Math.atan2(motionX, motionZ) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float)(Math.atan2(motionY, (double)f) * 180.0D / Math.PI); } } public void onUpdate() { + super.onUpdate(); this.lastTickPosX = this.posX; this.lastTickPosY = this.posY; this.lastTickPosZ = this.posZ; - super.onUpdate(); + + this.prevRotationPitch = this.rotationPitch; + + this.rotationPitch -= Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector() * 25; //Bounce here @@ -162,26 +164,15 @@ public abstract class EntityGrenadeBouncyBase extends Entity implements IProject } //Bounce here [END] - + if(!bounce) { this.posX += this.motionX; this.posY += this.motionY; this.posZ += this.motionZ; } - float f1 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionZ * this.motionZ); this.rotationYaw = (float)(Math.atan2(this.motionX, this.motionZ) * 180.0D / Math.PI); - for (this.rotationPitch = (float)(Math.atan2(this.motionY, (double)f1) * 180.0D / Math.PI); this.rotationPitch - this.prevRotationPitch < -180.0F; this.prevRotationPitch -= 360.0F) - { - ; - } - - while (this.rotationPitch - this.prevRotationPitch >= 180.0F) - { - this.prevRotationPitch += 360.0F; - } - while (this.rotationYaw - this.prevRotationYaw < -180.0F) { this.prevRotationYaw -= 360.0F; @@ -192,7 +183,6 @@ public abstract class EntityGrenadeBouncyBase extends Entity implements IProject this.prevRotationYaw += 360.0F; } - this.rotationPitch = this.prevRotationPitch + (this.rotationPitch - this.prevRotationPitch) * 0.2F; this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F; float f2 = 0.99F; float f3 = this.getGravityVelocity(); diff --git a/com/hbm/entity/projectile/EntityBulletBase.java b/com/hbm/entity/projectile/EntityBulletBase.java index ad1a86e2b..4e3e0d51b 100644 --- a/com/hbm/entity/projectile/EntityBulletBase.java +++ b/com/hbm/entity/projectile/EntityBulletBase.java @@ -94,9 +94,9 @@ public class EntityBulletBase extends Entity implements IProjectile { moX /= f2; moY /= f2; moZ /= f2; - moX += this.rand.nextGaussian() * /*(this.rand.nextBoolean() ? -1 : 1) **/ mult2; - moY += this.rand.nextGaussian() * /*(this.rand.nextBoolean() ? -1 : 1) **/ mult2; - moZ += this.rand.nextGaussian() * /*(this.rand.nextBoolean() ? -1 : 1) **/ mult2; + moX += this.rand.nextGaussian() * mult2; + moY += this.rand.nextGaussian() * mult2; + moZ += this.rand.nextGaussian() * mult2; moX *= mult1; moY *= mult1; moZ *= mult1; @@ -359,7 +359,7 @@ public class EntityBulletBase extends Entity implements IProjectile { double motion = Vec3.createVectorHelper(motionX, motionY, motionZ).lengthVector(); - for (i = 0; i < motion * 2; ++i) { + for (i = 0; i < motion * 3; ++i) { NBTTagCompound nbt = new NBTTagCompound(); nbt.setString("type", "vanillaExt"); diff --git a/com/hbm/handler/ToolAbility.java b/com/hbm/handler/ToolAbility.java index 457ee7d0c..8dac80b46 100644 --- a/com/hbm/handler/ToolAbility.java +++ b/com/hbm/handler/ToolAbility.java @@ -6,7 +6,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import com.hbm.inventory.MachineRecipes; +import com.hbm.inventory.CentrifugeRecipes; +import com.hbm.inventory.ShredderRecipes; import com.hbm.items.ModItems; import com.hbm.items.tool.ItemToolAbility; import com.hbm.main.MainRegistry; @@ -200,7 +201,7 @@ public abstract class ToolAbility { block = Blocks.redstone_ore; ItemStack stack = new ItemStack(block, 1, meta); - ItemStack result = MachineRecipes.getShredderResult(stack); + ItemStack result = ShredderRecipes.getShredderResult(stack); if(result != null && result.getItem() != ModItems.scrap) { world.setBlockToAir(x, y, z); @@ -229,7 +230,7 @@ public abstract class ToolAbility { block = Blocks.redstone_ore; ItemStack stack = new ItemStack(block, 1, meta); - ItemStack[] result = MachineRecipes.getCentrifugeProcessingResult(stack); + ItemStack[] result = CentrifugeRecipes.getOutput(stack); if(result != null) { world.setBlockToAir(x, y, z); diff --git a/com/hbm/handler/VersionChecker.java b/com/hbm/handler/VersionChecker.java new file mode 100644 index 000000000..1350ae95f --- /dev/null +++ b/com/hbm/handler/VersionChecker.java @@ -0,0 +1,50 @@ +package com.hbm.handler; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.net.URL; + +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; + +public class VersionChecker { + + public static boolean newVersion = false; + public static String versionNumber = ""; + + public static void checkVersion() { + + try { + + URL github = new URL("https://raw.githubusercontent.com/HbmMods/Hbm-s-Nuclear-Tech-GIT/master/com/hbm/lib/RefStrings.java"); + BufferedReader in = new BufferedReader(new InputStreamReader(github.openStream())); + + MainRegistry.logger.info("Searching for new versions..."); + String line; + + while ((line = in.readLine()) != null) { + + if(line.contains("String VERSION")) { + + int begin = line.indexOf('"'); + int end = line.lastIndexOf('"'); + + String sub = line.substring(begin + 1, end); + + newVersion = !RefStrings.VERSION.equals(sub); + versionNumber = sub; + MainRegistry.logger.info("Found version " + sub); + break; + } + } + + MainRegistry.logger.info("Version checker ended."); + in.close(); + + } catch (IOException e) { + MainRegistry.logger.warn("Version checker failed!"); + } + } + +} diff --git a/com/hbm/handler/guncfg/GunEnergyFactory.java b/com/hbm/handler/guncfg/GunEnergyFactory.java index 8ca7d934d..c1bbca871 100644 --- a/com/hbm/handler/guncfg/GunEnergyFactory.java +++ b/com/hbm/handler/guncfg/GunEnergyFactory.java @@ -69,7 +69,7 @@ public class GunEnergyFactory { config.reloadType = GunConfiguration.RELOAD_FULL; config.allowsInfinity = true; config.crosshair = Crosshair.L_CIRCLE; - config.firingSound = "hbm:weapon.immolatorShoot"; + config.firingSound = "hbm:weapon.flamethrowerShoot"; config.reloadSound = "hbm:weapon.flamerReload"; config.name = "Heavy Duty Flamer"; diff --git a/com/hbm/handler/nei/CentrifugeRecipeHandler.java b/com/hbm/handler/nei/CentrifugeRecipeHandler.java index e45ea5dc2..34c40ef2a 100644 --- a/com/hbm/handler/nei/CentrifugeRecipeHandler.java +++ b/com/hbm/handler/nei/CentrifugeRecipeHandler.java @@ -6,7 +6,9 @@ import java.util.Arrays; import java.util.List; import java.util.Map; +import com.hbm.inventory.CentrifugeRecipes; import com.hbm.inventory.MachineRecipes; +import com.hbm.inventory.RecipesCommon; import com.hbm.inventory.gui.GUIMachineCentrifuge; import codechicken.nei.NEIServerUtils; import codechicken.nei.PositionedStack; @@ -18,7 +20,7 @@ public class CentrifugeRecipeHandler extends TemplateRecipeHandler { public static ArrayList fuels; - public class SmeltingSet extends TemplateRecipeHandler.CachedRecipe + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe { PositionedStack input; PositionedStack result1; @@ -26,18 +28,17 @@ public class CentrifugeRecipeHandler extends TemplateRecipeHandler { PositionedStack result3; PositionedStack result4; - public SmeltingSet(ItemStack input, ItemStack result1, ItemStack result2, ItemStack result3, ItemStack result4) { - input.stackSize = 1; + public RecipeSet(Object input, ItemStack[] results) { this.input = new PositionedStack(input, 21, 6); - this.result1 = new PositionedStack(result1, 129, 6); - this.result2 = new PositionedStack(result2, 147, 6); - this.result3 = new PositionedStack(result3, 129, 42); - this.result4 = new PositionedStack(result4, 147, 42); + this.result1 = new PositionedStack(results[0], 129, 6); + this.result2 = new PositionedStack(results[1], 147, 6); + this.result3 = new PositionedStack(results[2], 129, 42); + this.result4 = new PositionedStack(results[3], 147, 42); } @Override public List getIngredients() { - return getCycledIngredients(cycleticks / 48, Arrays.asList(new PositionedStack[] {input})); + return getCycledIngredients(cycleticks / 48, Arrays.asList(input)); } @Override @@ -94,11 +95,15 @@ public class CentrifugeRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(String outputId, Object... results) { + if ((outputId.equals("centrifugeprocessing")) && getClass() == CentrifugeRecipeHandler.class) { - Map recipes = MachineRecipes.instance().getCentrifugeRecipes(); + + Map recipes = CentrifugeRecipes.getRecipes(); + for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1], (ItemStack)recipe.getValue()[2], (ItemStack)recipe.getValue()[3])); + this.arecipes.add(new RecipeSet(recipe.getKey(), RecipesCommon.objectToStackArray(recipe.getValue()))); } + } else { super.loadCraftingRecipes(outputId, results); } @@ -106,17 +111,26 @@ public class CentrifugeRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { - Map recipes = MachineRecipes.instance().getCentrifugeRecipes(); - for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[0], result) || NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[1], result) || NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[2], result) || NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[3], result)) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1], (ItemStack)recipe.getValue()[2], (ItemStack)recipe.getValue()[3])); + + Map recipes = CentrifugeRecipes.getRecipes(); + + for(Map.Entry recipe : recipes.entrySet()) { + + if(NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[0], result) || + NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[1], result) || + NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[2], result) || + NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue()[3], result)) + this.arecipes.add(new RecipeSet(recipe.getKey(), RecipesCommon.objectToStackArray(recipe.getValue()))); } } @Override public void loadUsageRecipes(String inputId, Object... ingredients) { + if ((inputId.equals("centrifugeprocessing")) && getClass() == CentrifugeRecipeHandler.class) { + loadCraftingRecipes("centrifugeprocessing", new Object[0]); + } else { super.loadUsageRecipes(inputId, ingredients); } @@ -124,10 +138,25 @@ public class CentrifugeRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { - Map recipes = MachineRecipes.instance().getCentrifugeRecipes(); + + Map recipes = CentrifugeRecipes.getRecipes(); + for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey())) - this.arecipes.add(new SmeltingSet((ItemStack)recipe.getKey(), (ItemStack)recipe.getValue()[0], (ItemStack)recipe.getValue()[1], (ItemStack)recipe.getValue()[2], (ItemStack)recipe.getValue()[3])); + + if(recipe.getKey() instanceof ItemStack) { + + if (NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey())) + this.arecipes.add(new RecipeSet(recipe.getKey(), RecipesCommon.objectToStackArray(recipe.getValue()))); + + } else if (recipe.getKey() instanceof ArrayList) { + + for(Object o : (ArrayList)recipe.getKey()) { + ItemStack stack = (ItemStack)o; + + if (NEIServerUtils.areStacksSameType(ingredient, stack)) + this.arecipes.add(new RecipeSet(stack, RecipesCommon.objectToStackArray(recipe.getValue()))); + } + } } } diff --git a/com/hbm/handler/nei/ChemplantRecipeHandler.java b/com/hbm/handler/nei/ChemplantRecipeHandler.java index 993a39546..8a68fd72a 100644 --- a/com/hbm/handler/nei/ChemplantRecipeHandler.java +++ b/com/hbm/handler/nei/ChemplantRecipeHandler.java @@ -123,10 +123,10 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { for (Map.Entry recipe : recipes.entrySet()) { if (compareFluidStacks(result, (ItemStack)recipe.getValue()[0]) || compareFluidStacks(result, (ItemStack)recipe.getValue()[1]) || - NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[2]) || - NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[3]) || - NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[4]) || - NEIServerUtils.areStacksSameType(result, (ItemStack)recipe.getValue()[5])) + NEIServerUtils.areStacksSameTypeCrafting(result, (ItemStack)recipe.getValue()[2]) || + NEIServerUtils.areStacksSameTypeCrafting(result, (ItemStack)recipe.getValue()[3]) || + NEIServerUtils.areStacksSameTypeCrafting(result, (ItemStack)recipe.getValue()[4]) || + NEIServerUtils.areStacksSameTypeCrafting(result, (ItemStack)recipe.getValue()[5])) this.arecipes.add(new SmeltingSet( (ItemStack)recipe.getKey()[0], (ItemStack)recipe.getKey()[1], @@ -159,11 +159,11 @@ public class ChemplantRecipeHandler extends TemplateRecipeHandler { for (Map.Entry recipe : recipes.entrySet()) { if (compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[0]) || compareFluidStacks(ingredient, (ItemStack)recipe.getKey()[1]) || - NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[2]) || - NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[3]) || - NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[4]) || - NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[5]) || - NEIServerUtils.areStacksSameType(ingredient, (ItemStack)recipe.getKey()[6])) + NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[2]) || + NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[3]) || + NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[4]) || + NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[5]) || + NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey()[6])) this.arecipes.add(new SmeltingSet( (ItemStack)recipe.getKey()[0], (ItemStack)recipe.getKey()[1], diff --git a/com/hbm/handler/nei/CrystallizerRecipeHandler.java b/com/hbm/handler/nei/CrystallizerRecipeHandler.java new file mode 100644 index 000000000..15111ec18 --- /dev/null +++ b/com/hbm/handler/nei/CrystallizerRecipeHandler.java @@ -0,0 +1,181 @@ +package com.hbm.handler.nei; + +import java.awt.Rectangle; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.inventory.CrystallizerRecipes; +import com.hbm.inventory.MachineRecipes; +import com.hbm.inventory.gui.GUICrystallizer; +import com.hbm.items.ModItems; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; + +import codechicken.nei.NEIServerUtils; +import codechicken.nei.PositionedStack; +import codechicken.nei.recipe.TemplateRecipeHandler; +import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.item.ItemStack; + +public class CrystallizerRecipeHandler extends TemplateRecipeHandler { + + public static ArrayList batteries; + + public class RecipeSet extends TemplateRecipeHandler.CachedRecipe + { + PositionedStack input; + PositionedStack acid; + PositionedStack result; + + public RecipeSet(Object input, ItemStack result) { + this.input = new PositionedStack(input, 75, 24); + this.acid = new PositionedStack(ItemFluidIcon.addQuantity(new ItemStack(ModItems.fluid_icon, 1, FluidType.ACID.ordinal()), TileEntityMachineCrystallizer.acidRequired), 39, 24); + this.result = new PositionedStack(result, 135, 24); + } + + @Override + public List getIngredients() { + return getCycledIngredients(cycleticks / 48, Arrays.asList(input, acid)); + } + + @Override + public PositionedStack getOtherStack() { + return batteries.get((cycleticks / 48) % batteries.size()).stack; + } + + @Override + public PositionedStack getResult() { + return result; + } + } + + public static class Fuel + { + public Fuel(ItemStack ingred) { + + this.stack = new PositionedStack(ingred, 3, 42, false); + } + + public PositionedStack stack; + } + + @Override + public String getRecipeName() { + return "Ore Acidizer"; + } + + @Override + public String getGuiTexture() { + return GUICrystallizer.texture.toString(); + } + + @Override + public void loadCraftingRecipes(String outputId, Object... results) { + + if ((outputId.equals("hbm_crystallizer")) && getClass() == CrystallizerRecipeHandler.class) { + + Map recipes = CrystallizerRecipes.getRecipes(); + + for (Map.Entry recipe : recipes.entrySet()) { + this.arecipes.add(new RecipeSet(recipe.getKey(), (ItemStack)recipe.getValue())); + } + + } else { + super.loadCraftingRecipes(outputId, results); + } + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + + Map recipes = CrystallizerRecipes.getRecipes(); + + for (Map.Entry recipe : recipes.entrySet()) { + + if (NEIServerUtils.areStacksSameTypeCrafting((ItemStack)recipe.getValue(), result)) + this.arecipes.add(new RecipeSet(recipe.getKey(), (ItemStack)recipe.getValue())); + } + } + + @Override + public void loadUsageRecipes(String inputId, Object... ingredients) { + + if ((inputId.equals("hbm_crystallizer")) && getClass() == CrystallizerRecipeHandler.class) { + + loadCraftingRecipes("hbm_crystallizer", new Object[0]); + + } else { + super.loadUsageRecipes(inputId, ingredients); + } + } + + @Override + public void loadUsageRecipes(ItemStack ingredient) { + + Map recipes = CrystallizerRecipes.getRecipes(); + + for (Map.Entry recipe : recipes.entrySet()) { + + if(NEIServerUtils.areStacksSameTypeCrafting(ingredient, ItemFluidIcon.addQuantity( + new ItemStack(ModItems.fluid_icon, 1, FluidType.ACID.ordinal()), TileEntityMachineCrystallizer.acidRequired))) { + + if(recipe.getKey() instanceof ItemStack) { + this.arecipes.add(new RecipeSet(recipe.getKey(), (ItemStack)recipe.getValue())); + + } else if (recipe.getKey() instanceof ArrayList) { + for(Object o : (ArrayList)recipe.getKey()) { + ItemStack stack = (ItemStack)o; + this.arecipes.add(new RecipeSet(stack, (ItemStack) recipe.getValue())); + } + } + + } else if(recipe.getKey() instanceof ItemStack) { + + if (NEIServerUtils.areStacksSameTypeCrafting(ingredient, (ItemStack)recipe.getKey())) + this.arecipes.add(new RecipeSet(recipe.getKey(), (ItemStack)recipe.getValue())); + + } else if (recipe.getKey() instanceof ArrayList) { + + for(Object o : (ArrayList)recipe.getKey()) { + ItemStack stack = (ItemStack)o; + + if (NEIServerUtils.areStacksSameTypeCrafting(ingredient, stack)) + this.arecipes.add(new RecipeSet(stack, (ItemStack) recipe.getValue())); + } + } + } + } + + @Override + public Class getGuiClass() { + return GUICrystallizer.class; + } + + @Override + public void loadTransferRects() { + transferRects.add(new RecipeTransferRect(new Rectangle(104 - 5, 34 - 11, 24, 18), "hbm_crystallizer")); + } + + @Override + public void drawExtras(int recipe) { + + drawProgressBar(99, 23, 192, 0, 22, 16, 600, 0); + drawProgressBar(3, 6, 176, 0, 16, 34, 60, 7); + } + + @Override + public TemplateRecipeHandler newInstance() { + + if (batteries == null) + batteries = new ArrayList(); + + for(ItemStack i : MachineRecipes.instance().getBatteries()) { + batteries.add(new Fuel(i)); + } + return super.newInstance(); + } + +} diff --git a/com/hbm/handler/nei/ShredderRecipeHandler.java b/com/hbm/handler/nei/ShredderRecipeHandler.java index 7563bba57..ff06d6673 100644 --- a/com/hbm/handler/nei/ShredderRecipeHandler.java +++ b/com/hbm/handler/nei/ShredderRecipeHandler.java @@ -8,7 +8,8 @@ import java.util.List; import java.util.Map; import com.hbm.inventory.MachineRecipes; -import com.hbm.inventory.MachineRecipes.StackWrapper; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.ShredderRecipes; import com.hbm.inventory.gui.GUIMachineShredder; import com.hbm.lib.RefStrings; @@ -82,9 +83,9 @@ public class ShredderRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(String outputId, Object... results) { if ((outputId.equals("shredding")) && getClass() == ShredderRecipeHandler.class) { - Map recipes = MachineRecipes.instance().getShredderRecipes(); + Map recipes = ShredderRecipes.getShredderRecipes(); for (Map.Entry recipe : recipes.entrySet()) { - this.arecipes.add(new SmeltingSet(((StackWrapper)recipe.getKey()).getStack(), (ItemStack)recipe.getValue())); + this.arecipes.add(new SmeltingSet(((ComparableStack)recipe.getKey()).toStack(), (ItemStack)recipe.getValue())); } } else { super.loadCraftingRecipes(outputId, results); @@ -93,10 +94,10 @@ public class ShredderRecipeHandler extends TemplateRecipeHandler { @Override public void loadCraftingRecipes(ItemStack result) { - Map recipes = MachineRecipes.instance().getShredderRecipes(); + Map recipes = ShredderRecipes.getShredderRecipes(); for (Map.Entry recipe : recipes.entrySet()) { if (NEIServerUtils.areStacksSameType((ItemStack)recipe.getValue(), result)) - this.arecipes.add(new SmeltingSet(((StackWrapper)recipe.getKey()).getStack(), (ItemStack)recipe.getValue())); + this.arecipes.add(new SmeltingSet(((ComparableStack)recipe.getKey()).toStack(), (ItemStack)recipe.getValue())); } } @@ -111,10 +112,10 @@ public class ShredderRecipeHandler extends TemplateRecipeHandler { @Override public void loadUsageRecipes(ItemStack ingredient) { - Map recipes = MachineRecipes.instance().getShredderRecipes(); + Map recipes = ShredderRecipes.getShredderRecipes(); for (Map.Entry recipe : recipes.entrySet()) { - if (NEIServerUtils.areStacksSameType(ingredient, ((StackWrapper)recipe.getKey()).getStack())) - this.arecipes.add(new SmeltingSet(((StackWrapper)recipe.getKey()).getStack(), (ItemStack)recipe.getValue())); + if (NEIServerUtils.areStacksSameType(ingredient, ((ComparableStack)recipe.getKey()).toStack())) + this.arecipes.add(new SmeltingSet(((ComparableStack)recipe.getKey()).toStack(), (ItemStack)recipe.getValue())); } } diff --git a/com/hbm/inventory/CentrifugeRecipes.java b/com/hbm/inventory/CentrifugeRecipes.java new file mode 100644 index 000000000..82ee15a3f --- /dev/null +++ b/com/hbm/inventory/CentrifugeRecipes.java @@ -0,0 +1,267 @@ +package com.hbm.inventory; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; + +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +public class CentrifugeRecipes { + + private static HashMap recipes = new HashMap(); + + public static void register() { + + recipes.put(new ComparableStack(ModItems.waste_uranium), new ItemStack[] { + new ItemStack(ModItems.nugget_u235, 1), + new ItemStack(ModItems.nugget_u238, 2), + new ItemStack(ModItems.nugget_pu239, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 2) }); + + recipes.put(new ComparableStack(ModItems.waste_plutonium), new ItemStack[] { + new ItemStack(ModItems.nugget_pu239, 1), + new ItemStack(ModItems.nugget_pu240, 1), new ItemStack(ModItems.nugget_lead, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + + recipes.put(new ComparableStack(ModItems.waste_mox), new ItemStack[] { + new ItemStack(ModItems.nugget_pu239, 1), + new ItemStack(ModItems.nugget_neptunium, 1), new ItemStack(ModItems.nugget_u238, 2), + new ItemStack(ModItems.nuclear_waste_tiny, 2) }); + + recipes.put(new ComparableStack(ModItems.waste_schrabidium), new ItemStack[] { + new ItemStack(ModItems.nugget_beryllium, 1), + new ItemStack(ModItems.nugget_lead, 1), + new ItemStack(ModItems.nugget_solinium, 1), + new ItemStack(ModItems.nuclear_waste_tiny, 3) }); + + recipes.put(new ComparableStack(ModItems.waste_thorium), new ItemStack[] { + new ItemStack(ModItems.nugget_u238, 1), + new ItemStack(ModItems.nugget_th232, 1), + new ItemStack(ModItems.nugget_u233, 3), + new ItemStack(ModItems.nuclear_waste_tiny, 1) }); + + recipes.put(new ComparableStack(ModItems.powder_cloud), new ItemStack[] { + new ItemStack(ModItems.powder_copper, 1), + new ItemStack(ModItems.sulfur, 1), + new ItemStack(ModItems.dust, 1), + new ItemStack(ModItems.dust, 1) }); + + recipes.put("oreCoal", new ItemStack[] { + new ItemStack(ModItems.powder_coal, 2), + new ItemStack(ModItems.powder_coal, 2), + new ItemStack(ModItems.powder_coal, 2), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreLignite", new ItemStack[] { + new ItemStack(ModItems.powder_lignite, 2), + new ItemStack(ModItems.powder_lignite, 2), + new ItemStack(ModItems.powder_lignite, 2), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreIron", new ItemStack[] { + new ItemStack(ModItems.powder_iron, 1), + new ItemStack(ModItems.powder_iron, 1), + new ItemStack(ModItems.powder_iron, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreGold", new ItemStack[] { + new ItemStack(ModItems.powder_gold, 1), + new ItemStack(ModItems.powder_gold, 1), + new ItemStack(ModItems.powder_gold, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreDiamond", new ItemStack[] { + new ItemStack(ModItems.powder_diamond, 1), + new ItemStack(ModItems.powder_diamond, 1), + new ItemStack(ModItems.powder_diamond, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreEmerald", new ItemStack[] { + new ItemStack(ModItems.powder_emerald, 1), + new ItemStack(ModItems.powder_emerald, 1), + new ItemStack(ModItems.powder_emerald, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreTitanium", new ItemStack[] { + new ItemStack(ModItems.powder_titanium, 1), + new ItemStack(ModItems.powder_titanium, 1), + new ItemStack(ModItems.powder_iron, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreQuartz", new ItemStack[] { + new ItemStack(ModItems.powder_quartz, 1), + new ItemStack(ModItems.powder_quartz, 1), + new ItemStack(ModItems.powder_lithium_tiny, 1), + new ItemStack(Blocks.netherrack, 1) }); + + recipes.put("oreTungsten", new ItemStack[] { + new ItemStack(ModItems.powder_tungsten, 1), + new ItemStack(ModItems.powder_tungsten, 1), + new ItemStack(ModItems.powder_iron, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreCopper", new ItemStack[] { + new ItemStack(ModItems.powder_copper, 1), + new ItemStack(ModItems.powder_copper, 1), + new ItemStack(ModItems.powder_gold, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreAluminum", new ItemStack[] { + new ItemStack(ModItems.powder_aluminium, 1), + new ItemStack(ModItems.powder_aluminium, 1), + new ItemStack(ModItems.powder_iron, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreLead", new ItemStack[] { + new ItemStack(ModItems.powder_lead, 1), + new ItemStack(ModItems.powder_lead, 1), + new ItemStack(ModItems.powder_gold, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreSchrabidium", new ItemStack[] { + new ItemStack(ModItems.powder_schrabidium, 1), + new ItemStack(ModItems.powder_schrabidium, 1), + new ItemStack(ModItems.nugget_solinium, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put(new ComparableStack(ModBlocks.ore_rare), new ItemStack[] { + new ItemStack(ModItems.powder_desh_mix, 1), + new ItemStack(ModItems.powder_actinium_tiny, 1), + new ItemStack(ModItems.powder_lanthanium_tiny, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("orePlutonium", new ItemStack[] { + new ItemStack(ModItems.powder_plutonium, 1), + new ItemStack(ModItems.powder_plutonium, 1), + new ItemStack(ModItems.powder_uranium, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreUranium", new ItemStack[] { + new ItemStack(ModItems.powder_uranium, 1), + new ItemStack(ModItems.powder_uranium, 1), + new ItemStack(ModItems.powder_thorium, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreThorium", new ItemStack[] { + new ItemStack(ModItems.powder_thorium, 1), + new ItemStack(ModItems.powder_thorium, 1), + new ItemStack(ModItems.powder_uranium, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreBeryllium", new ItemStack[] { + new ItemStack(ModItems.powder_beryllium, 1), + new ItemStack(ModItems.powder_beryllium, 1), + new ItemStack(ModItems.powder_emerald, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put("oreRedstone", new ItemStack[] { + new ItemStack(Items.redstone, 3), + new ItemStack(Items.redstone, 3), + new ItemStack(ModItems.nugget_mercury, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put(new ComparableStack(ModBlocks.ore_tikite), new ItemStack[] { + new ItemStack(ModItems.powder_plutonium, 2), + new ItemStack(ModItems.powder_cobalt, 2), + new ItemStack(ModItems.powder_nitan_mix, 1), + new ItemStack(Blocks.end_stone, 1) }); + + recipes.put("oreLapis", new ItemStack[] { + new ItemStack(ModItems.powder_lapis, 3), + new ItemStack(ModItems.powder_lapis, 3), + new ItemStack(ModItems.powder_cobalt_tiny, 1), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put(new ComparableStack(ModBlocks.ore_meteor_starmetal), new ItemStack[] { + new ItemStack(ModItems.powder_dura_steel, 3), + new ItemStack(ModItems.powder_astatine, 1), + new ItemStack(ModItems.powder_cobalt, 2), + new ItemStack(Blocks.gravel, 1) }); + + recipes.put(new ComparableStack(ModBlocks.block_euphemium_cluster), new ItemStack[] { + new ItemStack(ModItems.nugget_euphemium, 7), + new ItemStack(ModItems.powder_schrabidium, 4), + new ItemStack(ModItems.ingot_starmetal, 2), + new ItemStack(ModItems.nugget_solinium, 2) }); + + recipes.put(new ComparableStack(ModBlocks.ore_nether_fire), new ItemStack[] { + new ItemStack(Items.blaze_powder, 2), + new ItemStack(ModItems.powder_fire, 2), + new ItemStack(ModItems.ingot_phosphorus), + new ItemStack(Blocks.netherrack) }); + + recipes.put(new ComparableStack(Items.blaze_rod), new ItemStack[] { + new ItemStack(Items.blaze_powder, 1), + new ItemStack(Items.blaze_powder, 1), + new ItemStack(ModItems.powder_fire, 1), + new ItemStack(ModItems.powder_fire, 1) }); + + recipes.put(new ComparableStack(ModItems.crystal_iron), new ItemStack[] { new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_iron, 2), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_gold), new ItemStack[] { new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.powder_gold, 2), new ItemStack(ModItems.nugget_mercury, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_redstone), new ItemStack[] { new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3), new ItemStack(ModItems.nugget_mercury, 3) }); + recipes.put(new ComparableStack(ModItems.crystal_uranium), new ItemStack[] { new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.powder_uranium, 2), new ItemStack(ModItems.powder_thorium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_thorium), new ItemStack[] { new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_thorium, 2), new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_plutonium), new ItemStack[] { new ItemStack(ModItems.powder_plutonium, 2), new ItemStack(ModItems.powder_plutonium, 2), new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_titanium), new ItemStack[] { new ItemStack(ModItems.powder_titanium, 2), new ItemStack(ModItems.powder_titanium, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_sulfur), new ItemStack[] { new ItemStack(ModItems.sulfur, 4), new ItemStack(ModItems.sulfur, 4), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.nugget_mercury, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_niter), new ItemStack[] { new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_copper), new ItemStack[] { new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ItemStack[] { new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ItemStack[] { new ItemStack(ModItems.powder_aluminium, 2), new ItemStack(ModItems.powder_aluminium, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ItemStack[] { new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_lead), new ItemStack[] { new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ItemStack[] { new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_schrabidium, 2), new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_rare), new ItemStack[] { new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_lanthanium_tiny, 3), new ItemStack(ModItems.powder_actinium_tiny, 3) }); + recipes.put(new ComparableStack(ModItems.crystal_phosphorus), new ItemStack[] { new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.powder_fire, 3), new ItemStack(ModItems.ingot_phosphorus, 2), new ItemStack(Items.blaze_powder, 2) }); + recipes.put(new ComparableStack(ModItems.crystal_trixite), new ItemStack[] { new ItemStack(ModItems.powder_plutonium, 3), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_spark_mix, 1), new ItemStack(ModItems.powder_nitan_mix, 2) }); + recipes.put(new ComparableStack(ModItems.crystal_lithium), new ItemStack[] { new ItemStack(ModItems.powder_lithium, 2), new ItemStack(ModItems.powder_lithium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.fluorite, 1) }); + recipes.put(new ComparableStack(ModItems.crystal_starmetal), new ItemStack[] { new ItemStack(ModItems.powder_dura_steel, 3), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_astatine, 2), new ItemStack(ModItems.nugget_mercury, 5) }); + } + + public static ItemStack[] getOutput(ItemStack stack) { + + if(stack == null || stack.getItem() == null) + return null; + + ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); + + if(recipes.containsKey(comp)) + return RecipesCommon.copyStackArray(recipes.get(comp)); + + String[] dictKeys = comp.getDictKeys(); + + for(String key : dictKeys) { + + if(recipes.containsKey(key)) + return RecipesCommon.copyStackArray(recipes.get(key)); + } + + return null; + } + + public static Map getRecipes() { + + Map recipes = new HashMap(); + + for(Entry entry : CentrifugeRecipes.recipes.entrySet()) { + + if(entry.getKey() instanceof String) { + List ingredients = OreDictionary.getOres((String)entry.getKey()); + recipes.put(ingredients, entry.getValue()); + } else { + recipes.put(((ComparableStack)entry.getKey()).toStack(), entry.getValue()); + } + } + + return recipes; + } +} diff --git a/com/hbm/inventory/CrystallizerRecipes.java b/com/hbm/inventory/CrystallizerRecipes.java index 1b0106d7e..82d0356cb 100644 --- a/com/hbm/inventory/CrystallizerRecipes.java +++ b/com/hbm/inventory/CrystallizerRecipes.java @@ -5,9 +5,10 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import com.hbm.blocks.ModBlocks; import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; -import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; @@ -15,12 +16,34 @@ import net.minecraftforge.oredict.OreDictionary; //...right? public class CrystallizerRecipes { - //'Object' is either a ComparableStack or the key for th ore dict + //'Object' is either a ComparableStack or the key for the ore dict private static HashMap recipes = new HashMap(); public static void register() { - - recipes.put("oreIron", new ItemStack(Items.iron_ingot)); + + recipes.put("oreIron", new ItemStack(ModItems.crystal_iron)); + recipes.put("oreGold", new ItemStack(ModItems.crystal_gold)); + recipes.put("oreRedstone", new ItemStack(ModItems.crystal_redstone)); + recipes.put("oreUranium", new ItemStack(ModItems.crystal_uranium)); + recipes.put("oreThorium", new ItemStack(ModItems.crystal_thorium)); + recipes.put("orePlutonium", new ItemStack(ModItems.crystal_plutonium)); + recipes.put("oreTitanium", new ItemStack(ModItems.crystal_titanium)); + recipes.put("oreSulfur", new ItemStack(ModItems.crystal_sulfur)); + recipes.put("oreNiter", new ItemStack(ModItems.crystal_niter)); + recipes.put("oreSalpeter", new ItemStack(ModItems.crystal_niter)); + recipes.put("oreCopper", new ItemStack(ModItems.crystal_copper)); + recipes.put("oreTungsten", new ItemStack(ModItems.crystal_tungsten)); + recipes.put("oreAluminum", new ItemStack(ModItems.crystal_aluminium)); + recipes.put("oreFluorite", new ItemStack(ModItems.crystal_fluorite)); + recipes.put("oreBeryllium", new ItemStack(ModItems.crystal_beryllium)); + recipes.put("oreLead", new ItemStack(ModItems.crystal_lead)); + recipes.put("oreSchrabidium", new ItemStack(ModItems.crystal_schrabidium)); + recipes.put(new ComparableStack(ModBlocks.ore_rare), new ItemStack(ModItems.crystal_rare)); + recipes.put(new ComparableStack(ModBlocks.ore_nether_fire), new ItemStack(ModItems.crystal_phosphorus)); + recipes.put(new ComparableStack(ModBlocks.ore_tikite), new ItemStack(ModItems.crystal_trixite)); + recipes.put("oreLithium", new ItemStack(ModItems.crystal_lithium)); + recipes.put("oreStarmetal", new ItemStack(ModItems.crystal_starmetal)); + recipes.put("sand", new ItemStack(ModItems.ingot_fiberglass)); } public static ItemStack getOutput(ItemStack stack) { @@ -31,20 +54,20 @@ public class CrystallizerRecipes { ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); if(recipes.containsKey(comp)) - return recipes.get(comp); + return recipes.get(comp).copy(); String[] dictKeys = comp.getDictKeys(); for(String key : dictKeys) { if(recipes.containsKey(key)) - return recipes.get(key); + return recipes.get(key).copy(); } return null; } - public Map getRecipes() { + public static Map getRecipes() { Map recipes = new HashMap(); diff --git a/com/hbm/inventory/MachineRecipes.java b/com/hbm/inventory/MachineRecipes.java index 162d01bff..fa6ab9009 100644 --- a/com/hbm/inventory/MachineRecipes.java +++ b/com/hbm/inventory/MachineRecipes.java @@ -115,262 +115,6 @@ public class MachineRecipes { return null; } - // Arrays! - - public static ItemStack[] getCentrifugeProcessingResult(ItemStack item) { - return getCentrifugeOutput(item); - } - - public static ItemStack[] getCentrifugeOutput(ItemStack item) { - - if(item == null || item.getItem() == null) - return null; - - ItemStack[] test = new ItemStack[] { new ItemStack(Items.apple, 3), new ItemStack(Items.leather, 1), - new ItemStack(Items.sugar, 3), new ItemStack(Items.blaze_powder, 2) }; - - ItemStack[] uranF = new ItemStack[] { new ItemStack(ModItems.nugget_u235, 1), - new ItemStack(ModItems.nugget_u238, 2), new ItemStack(ModItems.nugget_pu239, 1), - new ItemStack(ModItems.nuclear_waste_tiny, 2) }; - ItemStack[] plutoniumF = new ItemStack[] { new ItemStack(ModItems.nugget_pu239, 1), - new ItemStack(ModItems.nugget_pu240, 1), new ItemStack(ModItems.nugget_lead, 1), - new ItemStack(ModItems.nuclear_waste_tiny, 3) }; - ItemStack[] moxF = new ItemStack[] { new ItemStack(ModItems.nugget_pu239, 1), - new ItemStack(ModItems.nugget_neptunium, 1), new ItemStack(ModItems.nugget_u238, 2), - new ItemStack(ModItems.nuclear_waste_tiny, 2) }; - ItemStack[] schrabidiumF = new ItemStack[] { new ItemStack(ModItems.nugget_beryllium, 1), - new ItemStack(ModItems.nugget_lead, 1), new ItemStack(ModItems.nugget_solinium, 1), - new ItemStack(ModItems.nuclear_waste_tiny, 3) }; - ItemStack[] thoriumF = new ItemStack[] { new ItemStack(ModItems.nugget_u238, 1), - new ItemStack(ModItems.nugget_th232, 1), new ItemStack(ModItems.nugget_u233, 3), - new ItemStack(ModItems.nuclear_waste_tiny, 1) }; - - ItemStack[] cloud = new ItemStack[] { new ItemStack(ModItems.powder_copper, 1), - new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.dust, 1), - new ItemStack(ModItems.dust, 1) }; - - ItemStack[] coal = new ItemStack[] { new ItemStack(ModItems.powder_coal, 2), - new ItemStack(ModItems.powder_coal, 2), new ItemStack(ModItems.powder_coal, 2), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] lignite = new ItemStack[] { new ItemStack(ModItems.powder_lignite, 2), - new ItemStack(ModItems.powder_lignite, 2), new ItemStack(ModItems.powder_lignite, 2), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] iron = new ItemStack[] { new ItemStack(ModItems.powder_iron, 1), - new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_iron, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] gold = new ItemStack[] { new ItemStack(ModItems.powder_gold, 1), - new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_gold, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] diamond = new ItemStack[] { new ItemStack(ModItems.powder_diamond, 1), - new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] emerald = new ItemStack[] { new ItemStack(ModItems.powder_emerald, 1), - new ItemStack(ModItems.powder_emerald, 1), new ItemStack(ModItems.powder_emerald, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] titanium = new ItemStack[] { new ItemStack(ModItems.powder_titanium, 1), - new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_iron, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] quartz = new ItemStack[] { new ItemStack(ModItems.powder_quartz, 1), - new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_lithium_tiny, 1), - new ItemStack(Blocks.netherrack, 1) }; - ItemStack[] tungsten = new ItemStack[] { new ItemStack(ModItems.powder_tungsten, 1), - new ItemStack(ModItems.powder_tungsten, 1), new ItemStack(ModItems.powder_iron, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] copper = new ItemStack[] { new ItemStack(ModItems.powder_copper, 1), - new ItemStack(ModItems.powder_copper, 1), new ItemStack(ModItems.powder_gold, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] aluminium = new ItemStack[] { new ItemStack(ModItems.powder_aluminium, 1), - new ItemStack(ModItems.powder_aluminium, 1), new ItemStack(ModItems.powder_iron, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] lead = new ItemStack[] { new ItemStack(ModItems.powder_lead, 1), - new ItemStack(ModItems.powder_lead, 1), new ItemStack(ModItems.powder_gold, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] schrabidium = new ItemStack[] { new ItemStack(ModItems.powder_schrabidium, 1), - new ItemStack(ModItems.powder_schrabidium, 1), new ItemStack(ModItems.nugget_solinium, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] rare = new ItemStack[] { new ItemStack(ModItems.powder_desh_mix, 1), - new ItemStack(ModItems.powder_actinium_tiny, 1), new ItemStack(ModItems.powder_lanthanium_tiny, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] plutonium = new ItemStack[] { new ItemStack(ModItems.powder_plutonium, 1), - new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_uranium, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] uranium = new ItemStack[] { new ItemStack(ModItems.powder_uranium, 1), - new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.powder_thorium, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] thorium = new ItemStack[] { new ItemStack(ModItems.powder_thorium, 1), - new ItemStack(ModItems.powder_thorium, 1), new ItemStack(ModItems.powder_uranium, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] beryllium = new ItemStack[] { new ItemStack(ModItems.powder_beryllium, 1), - new ItemStack(ModItems.powder_beryllium, 1), new ItemStack(ModItems.powder_emerald, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] redstone = new ItemStack[] { new ItemStack(Items.redstone, 3), - new ItemStack(Items.redstone, 3), new ItemStack(ModItems.nugget_mercury, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] tikite = new ItemStack[] { new ItemStack(ModItems.powder_plutonium, 2), - new ItemStack(ModItems.powder_cobalt, 2), new ItemStack(ModItems.powder_nitan_mix, 1), - new ItemStack(Blocks.end_stone, 1) }; - ItemStack[] lapis = new ItemStack[] { new ItemStack(ModItems.powder_lapis, 3), - new ItemStack(ModItems.powder_lapis, 3), new ItemStack(ModItems.powder_cobalt_tiny, 1), - new ItemStack(Blocks.gravel, 1) }; - ItemStack[] starmetal = new ItemStack[] { new ItemStack(ModItems.powder_dura_steel, 3), - new ItemStack(ModItems.powder_astatine, 1), new ItemStack(ModItems.powder_cobalt, 2), - new ItemStack(Blocks.gravel, 1) }; - - ItemStack[] euphCluster = new ItemStack[] { new ItemStack(ModItems.nugget_euphemium, 7), - new ItemStack(ModItems.powder_schrabidium, 4), new ItemStack(ModItems.ingot_starmetal, 2), - new ItemStack(ModItems.nugget_solinium, 2) }; - - if (MainRegistry.enableDebugMode) { - if (item.getItem() == Item.getItemFromBlock(ModBlocks.test_render)) { - return test; - } - } - - if (item.getItem() == ModItems.waste_uranium) { - return uranF; - } - - if (item.getItem() == ModItems.waste_thorium) { - return thoriumF; - } - - /*if (item.getItem() == ModItems.rod_dual_uranium_fuel_depleted) { - return uran2; - } - - if (item.getItem() == ModItems.rod_quad_uranium_fuel_depleted) { - return uran3; - }*/ - - if (item.getItem() == ModItems.waste_plutonium) { - return plutoniumF; - } - - if (item.getItem() == ModItems.waste_mox) { - return moxF; - } - - if (item.getItem() == ModItems.waste_schrabidium) { - return schrabidiumF; - } - - if (item.getItem() == ModItems.powder_cloud) { - return cloud; - } - - if (mODE(item, "oreCoal")) { - return coal; - } - - if (mODE(item, "oreLignite")) { - return lignite; - } - - if (mODE(item, "oreIron")) { - return iron; - } - - if (mODE(item, "oreGold")) { - return gold; - } - - if (mODE(item, "oreDiamond")) { - return diamond; - } - - if (mODE(item, "oreEmerald")) { - return emerald; - } - - if (mODE(item, "oreUranium")) { - return uranium; - } - - if (mODE(item, "oreThorium")) { - return thorium; - } - - if (mODE(item, "orePlutonium")) { - return plutonium; - } - - if (mODE(item, "oreTitanium")) { - return titanium; - } - - if (mODE(item, "oreTungsten")) { - return tungsten; - } - - if (mODE(item, "oreLead")) { - return lead; - } - - if (mODE(item, "oreBeryllium")) { - return beryllium; - } - - if (mODE(item, "oreAluminum")) { - return aluminium; - } - - if (mODE(item, "oreSchrabidium")) { - return schrabidium; - } - - if (mODE(item, "oreQuartz") || mODE(item, "oreNetherQuartz")) { - return quartz; - } - - if (item.getItem() == Item.getItemFromBlock(ModBlocks.ore_rare)) { - return rare; - } - - if (mODE(item, "oreCopper")) { - return copper; - } - - if (mODE(item, "oreRedstone") || item.getItem() == Item.getItemFromBlock(Blocks.lit_redstone_ore)) { - return redstone; - } - - if (item.getItem() == Item.getItemFromBlock(ModBlocks.ore_tikite)) { - return tikite; - } - - if (mODE(item, "oreLapis")) { - return lapis; - } - - if (mODE(item, "oreStarmetal")) { - return starmetal; - } - - if (item.getItem() == Item.getItemFromBlock(ModBlocks.block_euphemium_cluster)) { - return euphCluster; - } - - if (item.getItem() == Item.getItemFromBlock(ModBlocks.ore_nether_fire)) { - return new ItemStack[] { - new ItemStack(Items.blaze_powder, 2), - new ItemStack(ModItems.powder_fire, 2), - new ItemStack(ModItems.ingot_phosphorus), - new ItemStack(Blocks.netherrack) - }; - } - - if (item.getItem() == Items.blaze_rod) { - return new ItemStack[] { - new ItemStack(Items.blaze_powder, 1), - new ItemStack(Items.blaze_powder, 1), - new ItemStack(ModItems.powder_fire, 1), - new ItemStack(ModItems.powder_fire, 1) - }; - } - - return null; - } - //bro, i don't care @SuppressWarnings("incomplete-switch") public static List getGasCentOutput(FluidType fluid) { @@ -1227,75 +971,6 @@ public class MachineRecipes { return fuels; } - public Map getCentrifugeRecipes() { - Map recipes = new HashMap(); - if (MainRegistry.enableDebugMode) { - recipes.put(new ItemStack(Item.getItemFromBlock(ModBlocks.test_render)), - getCentrifugeOutput(new ItemStack(ModBlocks.test_render))); - } - recipes.put(new ItemStack(ModItems.powder_cloud), - getCentrifugeOutput(new ItemStack(ModItems.powder_cloud))); - recipes.put(new ItemStack(Blocks.coal_ore), - getCentrifugeOutput(new ItemStack(Blocks.coal_ore))); - recipes.put(new ItemStack(Blocks.iron_ore), - getCentrifugeOutput(new ItemStack(Blocks.iron_ore))); - recipes.put(new ItemStack(Blocks.gold_ore), - getCentrifugeOutput(new ItemStack(Blocks.gold_ore))); - recipes.put(new ItemStack(Blocks.diamond_ore), - getCentrifugeOutput(new ItemStack(Blocks.diamond_ore))); - recipes.put(new ItemStack(Blocks.emerald_ore), - getCentrifugeOutput(new ItemStack(Blocks.emerald_ore))); - recipes.put(new ItemStack(ModBlocks.ore_uranium), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_uranium))); - recipes.put(new ItemStack(ModBlocks.ore_thorium), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_thorium))); - recipes.put(new ItemStack(ModBlocks.ore_titanium), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_titanium))); - recipes.put(new ItemStack(ModBlocks.ore_tungsten), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_tungsten))); - recipes.put(new ItemStack(ModBlocks.ore_aluminium), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_aluminium))); - recipes.put(new ItemStack(ModBlocks.ore_beryllium), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_beryllium))); - recipes.put(new ItemStack(ModBlocks.ore_copper), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_copper))); - recipes.put(new ItemStack(ModBlocks.ore_lead), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_lead))); - recipes.put(new ItemStack(ModBlocks.ore_rare), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_rare))); - recipes.put(new ItemStack(ModBlocks.ore_schrabidium), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_schrabidium))); - recipes.put(new ItemStack(ModBlocks.ore_tikite), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_tikite))); - recipes.put(new ItemStack(Blocks.redstone_ore), - getCentrifugeOutput(new ItemStack(Blocks.redstone_ore))); - recipes.put(new ItemStack(Blocks.lapis_ore), - getCentrifugeOutput(new ItemStack(Blocks.lapis_ore))); - recipes.put(new ItemStack(ModBlocks.ore_nether_plutonium), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_nether_plutonium))); - recipes.put(new ItemStack(ModItems.waste_uranium), - getCentrifugeOutput(new ItemStack(ModItems.waste_uranium))); - recipes.put(new ItemStack(ModItems.waste_thorium), - getCentrifugeOutput(new ItemStack(ModItems.waste_thorium))); - recipes.put(new ItemStack(ModItems.waste_plutonium), - getCentrifugeOutput(new ItemStack(ModItems.waste_plutonium))); - recipes.put(new ItemStack(ModItems.waste_mox), - getCentrifugeOutput(new ItemStack(ModItems.waste_mox))); - recipes.put(new ItemStack(ModItems.waste_schrabidium), - getCentrifugeOutput(new ItemStack(ModItems.waste_schrabidium))); - recipes.put(new ItemStack(ModBlocks.ore_lignite), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_lignite))); - recipes.put(new ItemStack(ModBlocks.ore_meteor_starmetal), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_meteor_starmetal))); - recipes.put(new ItemStack(ModBlocks.block_euphemium_cluster), - getCentrifugeOutput(new ItemStack(ModBlocks.block_euphemium_cluster))); - recipes.put(new ItemStack(ModBlocks.ore_nether_fire), - getCentrifugeOutput(new ItemStack(ModBlocks.ore_nether_fire))); - recipes.put(new ItemStack(Items.blaze_rod), - getCentrifugeOutput(new ItemStack(Items.blaze_rod))); - return recipes; - } - public Map getGasCentrifugeRecipes() { Map recipes = new HashMap(); @@ -1976,116 +1651,6 @@ public class MachineRecipes { return recipes; }*/ - - //new and improved - public static HashMap shredderRecipes = new HashMap(); - public static HashMap neiShredderRecipes; - - public static void registerShredder() { - - String[] names = OreDictionary.getOreNames(); - - for(int i = 0; i < names.length; i++) { - - String name = names[i]; - - //if the dict contains invalid names, skip - if(name == null || name.isEmpty()) - continue; - - List matches = OreDictionary.getOres(name); - - //if the name isn't assigned to an ore, also skip - if(matches == null || matches.isEmpty()) - continue; - - if(name.length() > 5 && name.substring(0, 5).equals("ingot")) { - ItemStack dust = getDustByName(name.substring(5)); - - if(dust != null && dust.getItem() != ModItems.scrap) { - - for(ItemStack stack : matches) { - shredderRecipes.put(new StackWrapper(stack), dust); - } - } - } else if(name.length() > 3 && name.substring(0, 3).equals("ore")) { - ItemStack dust = getDustByName(name.substring(3)); - - if(dust != null && dust.getItem() != ModItems.scrap) { - - dust.stackSize = 2; - - for(ItemStack stack : matches) { - shredderRecipes.put(new StackWrapper(stack), dust); - } - } - } else if(name.length() > 5 && name.substring(0, 5).equals("block")) { - ItemStack dust = getDustByName(name.substring(5)); - - if(dust != null && dust.getItem() != ModItems.scrap) { - - dust.stackSize = 9; - - for(ItemStack stack : matches) { - shredderRecipes.put(new StackWrapper(stack), dust); - } - } - } else if(name.length() > 3 && name.substring(0, 3).equals("gem")) { - ItemStack dust = getDustByName(name.substring(3)); - - if(dust != null && dust.getItem() != ModItems.scrap) { - - for(ItemStack stack : matches) { - shredderRecipes.put(new StackWrapper(stack), dust); - } - } - } else if(name.length() > 3 && name.substring(0, 4).equals("dust")) { - - for(ItemStack stack : matches) { - shredderRecipes.put(new StackWrapper(stack), new ItemStack(ModItems.dust)); - } - } - } - } - - public static ItemStack getDustByName(String name) { - - List matches = OreDictionary.getOres("dust" + name); - - if(matches != null && !matches.isEmpty()) - return matches.get(0).copy(); - - return new ItemStack(ModItems.scrap); - } - - public static void overridePreSetRecipe(ItemStack in, ItemStack out) { - - shredderRecipes.put(new StackWrapper(in), out); - } - - public Map getShredderRecipes() { - - //convert the map only once to save on processing power (might be more ram intensive but that can't be THAT bad, right?) - if(neiShredderRecipes == null) - neiShredderRecipes = new HashMap(shredderRecipes); - - return neiShredderRecipes; - } - - public static ItemStack getShredderResult(ItemStack stack) { - - if(stack == null || stack.getItem() == null) - return new ItemStack(ModItems.scrap); - - ItemStack sta = shredderRecipes.get(new StackWrapper(stack)); - - /*if(sta != null) - System.out.println(stack.getDisplayName() + " resulted " + sta.getDisplayName()); - else - System.out.println(stack.getDisplayName() + " resulted null");*/ - - return sta == null ? new ItemStack(ModItems.scrap) : sta; - } public Map getCMBRecipes() { Map recipes = new HashMap(); @@ -5128,7 +4693,7 @@ public class MachineRecipes { input[0] = new FluidStack(1800, FluidType.COOLANT); break; case DESH: - input[0] = new FluidStack(800, FluidType.ACID); + input[0] = new FluidStack(200, FluidType.MERCURY); input[1] = new FluidStack(200, FluidType.LIGHTOIL); break; case PEROXIDE: @@ -5136,10 +4701,11 @@ public class MachineRecipes { break; case CIRCUIT_4: input[0] = new FluidStack(400, FluidType.ACID); + input[1] = new FluidStack(200, FluidType.PETROLEUM); break; case CIRCUIT_5: input[0] = new FluidStack(800, FluidType.ACID); - input[1] = new FluidStack(400, FluidType.PETROLEUM); + input[1] = new FluidStack(200, FluidType.MERCURY); break; case SF_OIL: input[0] = new FluidStack(350, FluidType.OIL); @@ -5212,6 +4778,7 @@ public class MachineRecipes { break; case NITAN: input[0] = new FluidStack(600, FluidType.KEROSENE); + input[1] = new FluidStack(200, FluidType.MERCURY); break; case OIL_SAND: input[0] = new FluidStack(400, FluidType.BITUMEN); @@ -5506,7 +5073,7 @@ public class MachineRecipes { return map; } - public static class StackWrapper { + /*public static class StackWrapper { public Item item; public int damage; @@ -5557,5 +5124,5 @@ public class MachineRecipes { return false; return true; } - } + }*/ } diff --git a/com/hbm/inventory/RecipesCommon.java b/com/hbm/inventory/RecipesCommon.java index 4c46719f7..2a649eca1 100644 --- a/com/hbm/inventory/RecipesCommon.java +++ b/com/hbm/inventory/RecipesCommon.java @@ -1,23 +1,73 @@ package com.hbm.inventory; +import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; public class RecipesCommon { + public static ItemStack[] copyStackArray(ItemStack[] array) { + + if(array == null) + return null; + + ItemStack[] clone = new ItemStack[array.length]; + + for(int i = 0; i < array.length; i++) { + + if(array[i] != null) + clone[i] = array[i].copy(); + } + + return clone; + } + + public static ItemStack[] objectToStackArray(Object[] array) { + + if(array == null) + return null; + + ItemStack[] clone = new ItemStack[array.length]; + + for(int i = 0; i < array.length; i++) { + + if(array[i] instanceof ItemStack) + clone[i] = (ItemStack)array[i]; + } + + return clone; + } + public static class ComparableStack { Item item; int stacksize; int meta; + public ComparableStack(ItemStack stack) { + this.item = stack.getItem(); + this.stacksize = stack.stackSize; + this.meta = stack.getItemDamage(); + } + + public ComparableStack makeSingular() { + stacksize = 1; + return this; + } + public ComparableStack(Item item) { this.item = item; this.stacksize = 1; this.meta = 0; } + public ComparableStack(Block item) { + this.item = Item.getItemFromBlock(item); + this.stacksize = 1; + this.meta = 0; + } + public ComparableStack(Item item, int stacksize) { this(item); this.stacksize = stacksize; diff --git a/com/hbm/inventory/ShredderRecipes.java b/com/hbm/inventory/ShredderRecipes.java new file mode 100644 index 000000000..e73e958db --- /dev/null +++ b/com/hbm/inventory/ShredderRecipes.java @@ -0,0 +1,224 @@ +package com.hbm.inventory; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.items.ModItems; + +import net.minecraft.block.Block; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.oredict.OreDictionary; + +public class ShredderRecipes { + + public static HashMap shredderRecipes = new HashMap(); + public static HashMap neiShredderRecipes; + + public static void registerShredder() { + + String[] names = OreDictionary.getOreNames(); + + for(int i = 0; i < names.length; i++) { + + String name = names[i]; + + //if the dict contains invalid names, skip + if(name == null || name.isEmpty()) + continue; + + List matches = OreDictionary.getOres(name); + + //if the name isn't assigned to an ore, also skip + if(matches == null || matches.isEmpty()) + continue; + + if(name.length() > 5 && name.substring(0, 5).equals("ingot")) { + ItemStack dust = getDustByName(name.substring(5)); + + if(dust != null && dust.getItem() != ModItems.scrap) { + + for(ItemStack stack : matches) { + shredderRecipes.put(new ComparableStack(stack), dust); + } + } + } else if(name.length() > 3 && name.substring(0, 3).equals("ore")) { + ItemStack dust = getDustByName(name.substring(3)); + + if(dust != null && dust.getItem() != ModItems.scrap) { + + dust.stackSize = 2; + + for(ItemStack stack : matches) { + shredderRecipes.put(new ComparableStack(stack), dust); + } + } + } else if(name.length() > 5 && name.substring(0, 5).equals("block")) { + ItemStack dust = getDustByName(name.substring(5)); + + if(dust != null && dust.getItem() != ModItems.scrap) { + + dust.stackSize = 9; + + for(ItemStack stack : matches) { + shredderRecipes.put(new ComparableStack(stack), dust); + } + } + } else if(name.length() > 3 && name.substring(0, 3).equals("gem")) { + ItemStack dust = getDustByName(name.substring(3)); + + if(dust != null && dust.getItem() != ModItems.scrap) { + + for(ItemStack stack : matches) { + shredderRecipes.put(new ComparableStack(stack), dust); + } + } + } else if(name.length() > 3 && name.substring(0, 4).equals("dust")) { + + for(ItemStack stack : matches) { + shredderRecipes.put(new ComparableStack(stack), new ItemStack(ModItems.dust)); + } + } + } + } + + public static void registerOverrides() { + + ShredderRecipes.setRecipe(ModItems.scrap, new ItemStack(ModItems.dust)); + ShredderRecipes.setRecipe(ModItems.dust, new ItemStack(ModItems.dust)); + ShredderRecipes.setRecipe(Blocks.glowstone, new ItemStack(Items.glowstone_dust, 4)); + ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 0), new ItemStack(ModItems.powder_quartz, 4)); + ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 1), new ItemStack(ModItems.powder_quartz, 4)); + ShredderRecipes.setRecipe(new ItemStack(Blocks.quartz_block, 1, 2), new ItemStack(ModItems.powder_quartz, 4)); + ShredderRecipes.setRecipe(Blocks.quartz_stairs, new ItemStack(ModItems.powder_quartz, 3)); + ShredderRecipes.setRecipe(new ItemStack(Blocks.stone_slab, 1, 7), new ItemStack(ModItems.powder_quartz, 2)); + ShredderRecipes.setRecipe(Items.quartz, new ItemStack(ModItems.powder_quartz)); + ShredderRecipes.setRecipe(Blocks.quartz_ore, new ItemStack(ModItems.powder_quartz, 2)); + ShredderRecipes.setRecipe(ModBlocks.ore_nether_fire, new ItemStack(ModItems.powder_fire, 6)); + ShredderRecipes.setRecipe(Blocks.packed_ice, new ItemStack(ModItems.powder_ice, 1)); + ShredderRecipes.setRecipe(ModBlocks.brick_light, new ItemStack(Items.clay_ball, 4)); + ShredderRecipes.setRecipe(ModBlocks.concrete, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(ModBlocks.concrete_smooth, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(ModBlocks.brick_concrete, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(ModBlocks.brick_concrete_mossy, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(ModBlocks.brick_concrete_cracked, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(ModBlocks.brick_concrete_broken, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(ModBlocks.brick_obsidian, new ItemStack(ModBlocks.gravel_obsidian, 1)); + ShredderRecipes.setRecipe(Blocks.obsidian, new ItemStack(ModBlocks.gravel_obsidian, 1)); + ShredderRecipes.setRecipe(Blocks.stone, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(Blocks.cobblestone, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(Blocks.stonebrick, new ItemStack(Blocks.gravel, 1)); + ShredderRecipes.setRecipe(Blocks.gravel, new ItemStack(Blocks.sand, 1)); + ShredderRecipes.setRecipe(Blocks.sand, new ItemStack(ModItems.dust, 2)); + ShredderRecipes.setRecipe(Blocks.brick_block, new ItemStack(Items.clay_ball, 4)); + ShredderRecipes.setRecipe(Blocks.brick_stairs, new ItemStack(Items.clay_ball, 3)); + ShredderRecipes.setRecipe(Items.flower_pot, new ItemStack(Items.clay_ball, 3)); + ShredderRecipes.setRecipe(Items.brick, new ItemStack(Items.clay_ball, 1)); + ShredderRecipes.setRecipe(Blocks.sandstone, new ItemStack(Blocks.sand, 4)); + ShredderRecipes.setRecipe(Blocks.sandstone_stairs, new ItemStack(Blocks.sand, 6)); + ShredderRecipes.setRecipe(Blocks.clay, new ItemStack(Items.clay_ball, 4)); + ShredderRecipes.setRecipe(Blocks.hardened_clay, new ItemStack(Items.clay_ball, 4)); + ShredderRecipes.setRecipe(Blocks.tnt, new ItemStack(Items.gunpowder, 5)); + ShredderRecipes.setRecipe(ModItems.powder_quartz, new ItemStack(ModItems.powder_lithium_tiny, 1)); + ShredderRecipes.setRecipe(ModItems.powder_lapis, new ItemStack(ModItems.powder_cobalt_tiny, 1)); + ShredderRecipes.setRecipe(ModItems.fragment_neodymium, new ItemStack(ModItems.powder_neodymium_tiny, 1)); + ShredderRecipes.setRecipe(ModItems.fragment_cobalt, new ItemStack(ModItems.powder_cobalt_tiny, 1)); + ShredderRecipes.setRecipe(ModItems.fragment_niobium, new ItemStack(ModItems.powder_niobium_tiny, 1)); + ShredderRecipes.setRecipe(ModItems.fragment_cerium, new ItemStack(ModItems.powder_cerium_tiny, 1)); + ShredderRecipes.setRecipe(ModItems.fragment_lanthanium, new ItemStack(ModItems.powder_lanthanium_tiny, 1)); + ShredderRecipes.setRecipe(ModItems.fragment_actinium, new ItemStack(ModItems.powder_actinium_tiny, 1)); + ShredderRecipes.setRecipe(ModItems.fragment_meteorite, new ItemStack(ModItems.powder_meteorite_tiny, 1)); + ShredderRecipes.setRecipe(ModBlocks.block_meteor, new ItemStack(ModItems.powder_meteorite, 10)); + ShredderRecipes.setRecipe(Items.enchanted_book, new ItemStack(ModItems.powder_magic, 1)); + ShredderRecipes.setRecipe(ModItems.arc_electrode_burnt, new ItemStack(ModItems.powder_coal, 1)); + ShredderRecipes.setRecipe(ModItems.arc_electrode_desh, new ItemStack(ModItems.powder_desh, 2)); + ShredderRecipes.setRecipe(ModBlocks.meteor_polished, new ItemStack(ModItems.powder_meteorite, 1)); + ShredderRecipes.setRecipe(ModBlocks.meteor_brick, new ItemStack(ModItems.powder_meteorite, 1)); + ShredderRecipes.setRecipe(ModBlocks.meteor_brick_mossy, new ItemStack(ModItems.powder_meteorite, 1)); + ShredderRecipes.setRecipe(ModBlocks.meteor_brick_cracked, new ItemStack(ModItems.powder_meteorite, 1)); + ShredderRecipes.setRecipe(ModBlocks.meteor_brick_chiseled, new ItemStack(ModItems.powder_meteorite, 1)); + ShredderRecipes.setRecipe(ModBlocks.meteor_pillar, new ItemStack(ModItems.powder_meteorite, 1)); + ShredderRecipes.setRecipe(ModBlocks.ore_rare, new ItemStack(ModItems.powder_desh_mix, 1)); + + ShredderRecipes.setRecipe(ModItems.crystal_iron, new ItemStack(ModItems.powder_iron, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_gold, new ItemStack(ModItems.powder_iron, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_redstone, new ItemStack(Items.redstone, 8)); + ShredderRecipes.setRecipe(ModItems.crystal_uranium, new ItemStack(ModItems.powder_uranium, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_plutonium, new ItemStack(ModItems.powder_plutonium, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_thorium, new ItemStack(ModItems.powder_thorium, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_titanium, new ItemStack(ModItems.powder_titanium, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_sulfur, new ItemStack(ModItems.sulfur, 8)); + ShredderRecipes.setRecipe(ModItems.crystal_niter, new ItemStack(ModItems.niter, 8)); + ShredderRecipes.setRecipe(ModItems.crystal_copper, new ItemStack(ModItems.powder_copper, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_tungsten, new ItemStack(ModItems.powder_tungsten, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_aluminium, new ItemStack(ModItems.powder_aluminium, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_fluorite, new ItemStack(ModItems.fluorite, 8)); + ShredderRecipes.setRecipe(ModItems.crystal_beryllium, new ItemStack(ModItems.powder_beryllium, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_lead, new ItemStack(ModItems.powder_lead, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_schrabidium, new ItemStack(ModItems.powder_schrabidium, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_rare, new ItemStack(ModItems.powder_desh_mix, 2)); + ShredderRecipes.setRecipe(ModItems.crystal_phosphorus, new ItemStack(ModItems.powder_fire, 8)); + ShredderRecipes.setRecipe(ModItems.crystal_trixite, new ItemStack(ModItems.powder_plutonium, 6)); + ShredderRecipes.setRecipe(ModItems.crystal_lithium, new ItemStack(ModItems.powder_lithium, 3)); + ShredderRecipes.setRecipe(ModItems.crystal_starmetal, new ItemStack(ModItems.powder_dura_steel, 6)); + + for(int i = 0; i < 16; i++) { + ShredderRecipes.setRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, i), new ItemStack(Items.clay_ball, 4)); + ShredderRecipes.setRecipe(new ItemStack(Blocks.wool, 1, i), new ItemStack(Items.string, 4)); + } + } + + public static ItemStack getDustByName(String name) { + + List matches = OreDictionary.getOres("dust" + name); + + if(matches != null && !matches.isEmpty()) + return matches.get(0).copy(); + + return new ItemStack(ModItems.scrap); + } + + public static void setRecipe(Item in, ItemStack out) { + + shredderRecipes.put(new ComparableStack(in), out); + } + + public static void setRecipe(Block in, ItemStack out) { + + shredderRecipes.put(new ComparableStack(in), out); + } + + public static void setRecipe(ItemStack in, ItemStack out) { + + shredderRecipes.put(new ComparableStack(in), out); + } + + public static Map getShredderRecipes() { + + //convert the map only once to save on processing power (might be more ram intensive but that can't be THAT bad, right?) + if(neiShredderRecipes == null) + neiShredderRecipes = new HashMap(shredderRecipes); + + return neiShredderRecipes; + } + + public static ItemStack getShredderResult(ItemStack stack) { + + if(stack == null || stack.getItem() == null) + return new ItemStack(ModItems.scrap); + + ItemStack sta = shredderRecipes.get(new ComparableStack(stack).makeSingular()); + + /*if(sta != null) + System.out.println(stack.getDisplayName() + " resulted " + sta.getDisplayName()); + else + System.out.println(stack.getDisplayName() + " resulted null");*/ + + return sta == null ? new ItemStack(ModItems.scrap) : sta; + } +} diff --git a/com/hbm/inventory/container/ContainerCrystallizer.java b/com/hbm/inventory/container/ContainerCrystallizer.java index 3937ca03a..d13f887e7 100644 --- a/com/hbm/inventory/container/ContainerCrystallizer.java +++ b/com/hbm/inventory/container/ContainerCrystallizer.java @@ -20,6 +20,8 @@ public class ContainerCrystallizer extends Container { this.addSlotToContainer(new Slot(tedf, 0, 80, 35)); this.addSlotToContainer(new Slot(tedf, 1, 8, 53)); this.addSlotToContainer(new SlotMachineOutput(tedf, 2, 140, 35)); + this.addSlotToContainer(new Slot(tedf, 3, 26, 17)); + this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 25, 53)); for(int i = 0; i < 3; i++) { @@ -51,10 +53,11 @@ public class ContainerCrystallizer extends Container { { return null; } - } - else if (!this.mergeItemStack(var5, 0, diFurnace.getSizeInventory(), false)) - { - return null; + } else { + + if (!this.mergeItemStack(var5, 0, 2, false)) + if (!this.mergeItemStack(var5, 3, 4, false)) + return null; } if (var5.stackSize == 0) diff --git a/com/hbm/inventory/gui/GUICrystallizer.java b/com/hbm/inventory/gui/GUICrystallizer.java index cd791789f..e1dad814c 100644 --- a/com/hbm/inventory/gui/GUICrystallizer.java +++ b/com/hbm/inventory/gui/GUICrystallizer.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; +import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerCrystallizer; import com.hbm.lib.RefStrings; import com.hbm.tileentity.machine.TileEntityMachineCrystallizer; @@ -13,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUICrystallizer extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_crystallizer.png"); + public static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_crystallizer.png"); private TileEntityMachineCrystallizer acidomatic; public GUICrystallizer(InventoryPlayer invPlayer, TileEntityMachineCrystallizer acidomatic) { @@ -24,6 +25,14 @@ public class GUICrystallizer extends GuiInfoContainer { this.ySize = 168; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 51 - 34, 16, 34, acidomatic.power, acidomatic.maxPower); + acidomatic.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 44, guiTop + 17, 16, 52); + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.acidomatic.hasCustomInventoryName() ? this.acidomatic.getInventoryName() : I18n.format(this.acidomatic.getInventoryName()); @@ -37,5 +46,14 @@ public class GUICrystallizer extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + int i = (int)acidomatic.getPowerScaled(34); + drawTexturedModalRect(guiLeft + 8, guiTop + 51 - i, 176, 34 - i, 16, i); + + int j = acidomatic.getProgressScaled(23); + drawTexturedModalRect(guiLeft + 104, guiTop + 34, 192, 0, j, 16); + + Minecraft.getMinecraft().getTextureManager().bindTexture(acidomatic.tank.getSheet()); + acidomatic.tank.renderTank(this, guiLeft + 44, guiTop + 69, acidomatic.tank.getTankType().textureX() * FluidTank.x, acidomatic.tank.getTankType().textureY() * FluidTank.y, 16, 52); } } diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index b2ff79ece..468483bb7 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -226,6 +226,28 @@ public class ModItems { public static Item solid_fuel; public static Item rocket_fuel; + public static Item crystal_iron; + public static Item crystal_gold; + public static Item crystal_redstone; + public static Item crystal_uranium; + public static Item crystal_thorium; + public static Item crystal_plutonium; + public static Item crystal_titanium; + public static Item crystal_sulfur; + public static Item crystal_niter; + public static Item crystal_copper; + public static Item crystal_tungsten; + public static Item crystal_aluminium; + public static Item crystal_fluorite; + public static Item crystal_beryllium; + public static Item crystal_lead; + public static Item crystal_schrabidium; + public static Item crystal_rare; + public static Item crystal_phosphorus; + public static Item crystal_lithium; + public static Item crystal_starmetal; + public static Item crystal_trixite; + public static Item powder_lead; public static Item powder_neptunium; public static Item powder_schrabidium; @@ -645,6 +667,7 @@ public class ModItems { public static Item jetpack_tank; public static Item gun_kit_1; public static Item gun_kit_2; + public static Item cbt_device; public static Item can_empty; public static Item can_smart; @@ -1587,6 +1610,7 @@ public class ModItems { public static Item shimmer_sledge; public static Item shimmer_axe; public static Item bottle_opener; + public static Item pch; public static Item crowbar; @@ -2051,6 +2075,28 @@ public class ModItems { nugget_les = new ItemRadioactive(0.5F, false, true).setUnlocalizedName("nugget_les").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_les"); plate_combine_steel = new Item().setUnlocalizedName("plate_combine_steel").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_combine_steel"); + crystal_iron = new Item().setUnlocalizedName("crystal_iron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_iron"); + crystal_gold = new Item().setUnlocalizedName("crystal_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_gold"); + crystal_redstone = new Item().setUnlocalizedName("crystal_redstone").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_redstone"); + crystal_uranium = new ItemRadioactive(0.75F).setUnlocalizedName("crystal_uranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_uranium"); + crystal_thorium = new Item().setUnlocalizedName("crystal_thorium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_thorium"); + crystal_plutonium = new ItemRadioactive(3.0F).setUnlocalizedName("crystal_plutonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_plutonium"); + crystal_titanium = new Item().setUnlocalizedName("crystal_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_titanium"); + crystal_sulfur = new Item().setUnlocalizedName("crystal_sulfur").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_sulfur"); + crystal_niter = new Item().setUnlocalizedName("crystal_niter").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_niter"); + crystal_copper = new Item().setUnlocalizedName("crystal_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_copper"); + crystal_tungsten = new Item().setUnlocalizedName("crystal_tungsten").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_tungsten"); + crystal_aluminium = new Item().setUnlocalizedName("crystal_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_aluminium"); + crystal_fluorite = new Item().setUnlocalizedName("crystal_fluorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_fluorite"); + crystal_beryllium = new Item().setUnlocalizedName("crystal_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_beryllium"); + crystal_lead = new Item().setUnlocalizedName("crystal_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lead"); + crystal_schrabidium = new ItemRadioactive(10F, false, true).setUnlocalizedName("crystal_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_schrabidium"); + crystal_rare = new Item().setUnlocalizedName("crystal_rare").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_rare"); + crystal_phosphorus = new ItemRadioactive(0.0F, true).setUnlocalizedName("crystal_phosphorus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_phosphorus"); + crystal_lithium = new Item().setUnlocalizedName("crystal_lithium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_lithium"); + crystal_starmetal = new Item().setUnlocalizedName("crystal_starmetal").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_starmetal"); + crystal_trixite = new ItemRadioactive(10.0F).setUnlocalizedName("crystal_trixite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":crystal_trixite"); + powder_lead = new Item().setUnlocalizedName("powder_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_lead"); powder_neptunium = new ItemRadioactive(2.5F, true).setUnlocalizedName("powder_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neptunium"); powder_schrabidium = new ItemRadioactive(7.5F, true, true).setUnlocalizedName("powder_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidium"); @@ -2430,6 +2476,7 @@ public class ModItems { cladding_rubber = new ItemCladding(0.075F).setUnlocalizedName("cladding_rubber").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_rubber"); cladding_lead = new ItemCladding(0.2F).setUnlocalizedName("cladding_lead").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_lead"); cladding_desh = new ItemCladding(0.4F).setUnlocalizedName("cladding_desh").setMaxStackSize(1).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":cladding_desh"); + cbt_device = new ItemSyringe().setUnlocalizedName("cbt_device").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":cbt_device"); can_empty = new Item().setUnlocalizedName("can_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_empty"); can_smart = new ItemEnergy().setUnlocalizedName("can_smart").setContainerItem(ModItems.can_empty).setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":can_smart"); @@ -3596,6 +3643,7 @@ public class ModItems { wrench = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("wrench").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wrench"); wrench_flipped = new WeaponSpecial(MainRegistry.tMatElec).setUnlocalizedName("wrench_flipped").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":wrench_flipped"); memespoon = new WeaponSpecial(MainRegistry.tMatSteel).setUnlocalizedName("memespoon").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":memespoon"); + pch = new WeaponSpecial(MainRegistry.tMatHammmer).setUnlocalizedName("pch").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":pch"); multitool_hit = new ItemMultitoolPassive().setUnlocalizedName("multitool_hit").setCreativeTab(null).setTextureName(RefStrings.MODID + ":multitool_fist"); multitool_dig = new ItemMultitoolTool(4.0F, MainRegistry.enumToolMaterialMultitool, ItemMultitoolTool.getAllBlocks()).setFull3D().setUnlocalizedName("multitool_dig").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":multitool_claw"); @@ -3927,6 +3975,29 @@ public class ModItems { GameRegistry.registerItem(cordite, cordite.getUnlocalizedName()); GameRegistry.registerItem(ballistite, ballistite.getUnlocalizedName()); + //Crystals + GameRegistry.registerItem(crystal_iron, crystal_iron.getUnlocalizedName()); + GameRegistry.registerItem(crystal_gold, crystal_gold.getUnlocalizedName()); + GameRegistry.registerItem(crystal_redstone, crystal_redstone.getUnlocalizedName()); + GameRegistry.registerItem(crystal_uranium, crystal_uranium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_thorium, crystal_thorium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_plutonium, crystal_plutonium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_titanium, crystal_titanium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_sulfur, crystal_sulfur.getUnlocalizedName()); + GameRegistry.registerItem(crystal_niter, crystal_niter.getUnlocalizedName()); + GameRegistry.registerItem(crystal_copper, crystal_copper.getUnlocalizedName()); + GameRegistry.registerItem(crystal_tungsten, crystal_tungsten.getUnlocalizedName()); + GameRegistry.registerItem(crystal_aluminium, crystal_aluminium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_fluorite, crystal_fluorite.getUnlocalizedName()); + GameRegistry.registerItem(crystal_beryllium, crystal_beryllium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_lead, crystal_lead.getUnlocalizedName()); + GameRegistry.registerItem(crystal_schrabidium, crystal_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_rare, crystal_rare.getUnlocalizedName()); + GameRegistry.registerItem(crystal_phosphorus, crystal_phosphorus.getUnlocalizedName()); + GameRegistry.registerItem(crystal_lithium, crystal_lithium.getUnlocalizedName()); + GameRegistry.registerItem(crystal_starmetal, crystal_starmetal.getUnlocalizedName()); + GameRegistry.registerItem(crystal_trixite, crystal_trixite.getUnlocalizedName()); + //Fragments GameRegistry.registerItem(fragment_neodymium, fragment_neodymium.getUnlocalizedName()); GameRegistry.registerItem(fragment_cobalt, fragment_cobalt.getUnlocalizedName()); @@ -5135,6 +5206,7 @@ public class ModItems { GameRegistry.registerItem(schrabidium_hammer, schrabidium_hammer.getUnlocalizedName()); GameRegistry.registerItem(shimmer_sledge, shimmer_sledge.getUnlocalizedName()); GameRegistry.registerItem(shimmer_axe, shimmer_axe.getUnlocalizedName()); + GameRegistry.registerItem(pch, pch.getUnlocalizedName()); GameRegistry.registerItem(schrabidium_pickaxe, schrabidium_pickaxe.getUnlocalizedName()); GameRegistry.registerItem(schrabidium_axe, schrabidium_axe.getUnlocalizedName()); GameRegistry.registerItem(schrabidium_shovel, schrabidium_shovel.getUnlocalizedName()); @@ -5316,6 +5388,7 @@ public class ModItems { //Chaos GameRegistry.registerItem(chocolate_milk, chocolate_milk.getUnlocalizedName()); + GameRegistry.registerItem(cbt_device, cbt_device.getUnlocalizedName()); //Cladding GameRegistry.registerItem(cladding_paint, cladding_paint.getUnlocalizedName()); diff --git a/com/hbm/items/special/ItemSyringe.java b/com/hbm/items/special/ItemSyringe.java index 31c242fee..96216c69d 100644 --- a/com/hbm/items/special/ItemSyringe.java +++ b/com/hbm/items/special/ItemSyringe.java @@ -356,6 +356,17 @@ public class ItemSyringe extends Item { } } + if(this == ModItems.cbt_device) + { + if (!world.isRemote) + { + player.addPotionEffect(new PotionEffect(HbmPotion.bang.id, 30, 0)); + + stack.stackSize--; + world.playSoundAtEntity(player, "hbm:item.vice", 1.0F, 1.0F); + } + } + return stack; } diff --git a/com/hbm/items/tool/WeaponSpecial.java b/com/hbm/items/tool/WeaponSpecial.java index 72f0d6d87..5dfd5144f 100644 --- a/com/hbm/items/tool/WeaponSpecial.java +++ b/com/hbm/items/tool/WeaponSpecial.java @@ -10,11 +10,13 @@ import com.hbm.entity.projectile.EntityRubble; import com.hbm.handler.ArmorUtil; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; +import com.hbm.potion.HbmPotion; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.passive.EntityHorse; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.EnumRarity; @@ -63,6 +65,37 @@ public class WeaponSpecial extends ItemSword { world.playSoundAtEntity(entity, "hbm:weapon.bonk", 3.0F, 1.0F); } + if(this == ModItems.pch) { + + world.playSoundAtEntity(entity, "hbm:weapon.bodysplat", 10.0F, 1.0F); + + if(entity instanceof EntityHorse) { + + for(int i = 0; i < 10; i++) { + EntityHorse horse = (EntityHorse) ((EntityHorse) entity).createChild((EntityHorse)entity); + horse.setPositionAndRotation(entity.posX, entity.posY, entity.posZ, entity.rotationYaw, entity.rotationPitch); + horse.setGrowingAge(-24000); + world.spawnEntityInWorld(horse); + } + + return false; + } + + if (!world.isRemote) + { + entity.addPotionEffect(new PotionEffect(HbmPotion.bang.id, 20, 0)); + } + + Vec3 vec = entityPlayer.getLookVec(); + double dX = vec.xCoord * 10; + double dY = vec.yCoord * 10; + double dZ = vec.zCoord * 10; + + entity.motionX += dX; + entity.motionY += dY; + entity.motionZ += dZ; + } + if(this == ModItems.bottle_opener) { if (!world.isRemote) { @@ -239,6 +272,9 @@ public class WeaponSpecial extends ItemSword { list.add("Even though it says \"+1000000000"); list.add("damage\", it's actually \"onehit anything\""); } + if(this == ModItems.pch) { + list.add("How am I not locked up yet?"); + } if(this == ModItems.ullapool_caber) { list.add("High-yield Scottish face removal."); list.add("A sober person would throw it..."); diff --git a/com/hbm/lib/Library.java b/com/hbm/lib/Library.java index 5480eed98..b37416730 100644 --- a/com/hbm/lib/Library.java +++ b/com/hbm/lib/Library.java @@ -52,12 +52,8 @@ public class Library { static Random rand = new Random(); - public static List book1 = new ArrayList(); - public static List book2 = new ArrayList(); - public static List book3 = new ArrayList(); - public static List book4 = new ArrayList(); - public static List book5 = new ArrayList(); - + //this is a list of UUIDs used for various things, primarily for accessories. + //for a comprehensive list, check RenderAccessoryUtility.java public static String HbMinecraft = "192af5d7-ed0f-48d8-bd89-9d41af8524f8"; public static String LPkukin = "937c9804-e11f-4ad2-a5b1-42e62ac73077"; public static String Dafnik = "3af1c262-61c0-4b12-a4cb-424cc3a9c8c0"; @@ -74,12 +70,10 @@ public class Library { public static String ZippySqrl = "03c20435-a229-489a-a1a1-671b803f7017"; public static String Schrabby = "3a4a1944-5154-4e67-b80a-b6561e8630b7"; + //the old list that allowed superuser mode for the ZOMG + //currently unused public static List superuser = new ArrayList(); - public static void initBooks() { - - } - public static void applyRadData(Entity e, float f) { if(!(e instanceof EntityLivingBase)) diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index a986c72e8..280a79a8f 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; 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 (3522)"; + public static final String VERSION = "1.0.27 BETA (3528)"; //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 212c5dbd7..22693f8fb 100644 --- a/com/hbm/main/ClientProxy.java +++ b/com/hbm/main/ClientProxy.java @@ -31,83 +31,14 @@ import com.hbm.entity.mob.*; import com.hbm.entity.particle.*; import com.hbm.entity.projectile.*; import com.hbm.items.ModItems; -import com.hbm.particle.ParticleContrail; -import com.hbm.particle.ParticleExSmoke; -import com.hbm.particle.ParticleRadiationFog; -import com.hbm.particle.ParticleRocketFlame; -import com.hbm.particle.ParticleSmokePlume; +import com.hbm.particle.*; import com.hbm.render.block.*; import com.hbm.render.entity.*; -import com.hbm.render.entity.effect.ElectricityRenderer; -import com.hbm.render.entity.effect.FogRenderer; -import com.hbm.render.entity.effect.GasFlameRenderer; -import com.hbm.render.entity.effect.GasRenderer; -import com.hbm.render.entity.effect.MultiCloudRenderer; -import com.hbm.render.entity.effect.RenderBigNuke; -import com.hbm.render.entity.effect.RenderBlackHole; -import com.hbm.render.entity.effect.RenderCloudFleija; -import com.hbm.render.entity.effect.RenderCloudRainbow; -import com.hbm.render.entity.effect.RenderCloudSolinium; -import com.hbm.render.entity.effect.RenderDeathBlast; -import com.hbm.render.entity.effect.RenderEMPBlast; -import com.hbm.render.entity.effect.RenderFallout; -import com.hbm.render.entity.effect.RenderFireball; -import com.hbm.render.entity.effect.RenderFlare; -import com.hbm.render.entity.effect.RenderNoCloud; -import com.hbm.render.entity.effect.RenderSmallNukeMK3; -import com.hbm.render.entity.effect.SSmokeRenderer; -import com.hbm.render.entity.effect.SpillRenderer; -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; -import com.hbm.render.entity.mob.RenderTaintCrab; -import com.hbm.render.entity.mob.RenderTaintedCreeper; -import com.hbm.render.entity.mob.RenderTeslaCrab; -import com.hbm.render.entity.projectile.RenderBaleflare; -import com.hbm.render.entity.projectile.RenderBeam; -import com.hbm.render.entity.projectile.RenderBeam2; -import com.hbm.render.entity.projectile.RenderBeam3; -import com.hbm.render.entity.projectile.RenderBeam4; -import com.hbm.render.entity.projectile.RenderBeam5; -import com.hbm.render.entity.projectile.RenderBeam6; -import com.hbm.render.entity.projectile.RenderBombletSelena; -import com.hbm.render.entity.projectile.RenderBombletTheta; -import com.hbm.render.entity.projectile.RenderBoxcar; -import com.hbm.render.entity.projectile.RenderBullet; -import com.hbm.render.entity.projectile.RenderChopperMine; -import com.hbm.render.entity.projectile.RenderFOEQ; -import com.hbm.render.entity.projectile.RenderFallingNuke; -import com.hbm.render.entity.projectile.RenderLN2; -import com.hbm.render.entity.projectile.RenderLaser; -import com.hbm.render.entity.projectile.RenderMeteor; -import com.hbm.render.entity.projectile.RenderMiniMIRV; -import com.hbm.render.entity.projectile.RenderMiniNuke; -import com.hbm.render.entity.projectile.RenderMirv; -import com.hbm.render.entity.projectile.RenderOminousBullet; -import com.hbm.render.entity.projectile.RenderRainbow; -import com.hbm.render.entity.projectile.RenderRocket; -import com.hbm.render.entity.projectile.RenderRubble; -import com.hbm.render.entity.projectile.RenderSRocket; -import com.hbm.render.entity.projectile.RenderShrapnel; -import com.hbm.render.entity.projectile.RenderTom; -import com.hbm.render.entity.rocket.RenderBoosterMissile; -import com.hbm.render.entity.rocket.RenderCarrierMissile; -import com.hbm.render.entity.rocket.RenderMinerRocket; -import com.hbm.render.entity.rocket.RenderMissileCustom; -import com.hbm.render.entity.rocket.RenderMissileDoomsday; -import com.hbm.render.entity.rocket.RenderMissileGeneric; -import com.hbm.render.entity.rocket.RenderMissileHuge; -import com.hbm.render.entity.rocket.RenderMissileMirv; -import com.hbm.render.entity.rocket.RenderMissileNuclear; -import com.hbm.render.entity.rocket.RenderMissileStrong; -import com.hbm.render.entity.rocket.RenderMissileTaint; -import com.hbm.render.entity.rocket.RenderMissileThermo; -import com.hbm.render.entity.rocket.RenderSoyuz; -import com.hbm.render.entity.rocket.RenderSoyuzCapsule; +import com.hbm.render.entity.effect.*; +import com.hbm.render.entity.item.*; +import com.hbm.render.entity.mob.*; +import com.hbm.render.entity.projectile.*; +import com.hbm.render.entity.rocket.*; import com.hbm.render.item.*; import com.hbm.render.loader.HmfModelLoader; import com.hbm.render.tileentity.*; @@ -216,7 +147,6 @@ public class ClientProxy extends ServerProxy ClientRegistry.bindTileEntitySpecialRenderer(TileEntityVaultDoor.class, new RenderVaultDoor()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBlastDoor.class, new RenderBlastDoor()); - //RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderRocket()); RenderingRegistry.registerEntityRenderingHandler(EntityRocket.class, new RenderSnowball(ModItems.man_core)); MinecraftForgeClient.registerItemRenderer(ModItems.gun_rpg, new ItemRenderRpg()); @@ -252,7 +182,7 @@ public class ClientProxy extends ServerProxy RenderingRegistry.registerEntityRenderingHandler(EntityGrenadePlasma.class, new RenderSnowball(ModItems.grenade_plasma)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeTau.class, new RenderSnowball(ModItems.grenade_tau)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeLemon.class, new RenderSnowball(ModItems.grenade_lemon)); - RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeMk2.class, new RenderSnowball(ModItems.grenade_mk2)); + RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeMk2.class, new RenderGrenade()); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeZOMG.class, new RenderSnowball(ModItems.grenade_zomg)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadeASchrab.class, new RenderSnowball(ModItems.grenade_aschrab)); RenderingRegistry.registerEntityRenderingHandler(EntityGrenadePulse.class, new RenderSnowball(ModItems.grenade_pulse)); @@ -381,6 +311,7 @@ public class ClientProxy extends ServerProxy MinecraftForgeClient.registerItemRenderer(ModItems.shimmer_axe, new ItemRenderShim()); MinecraftForgeClient.registerItemRenderer(ModItems.stopsign, new ItemRenderShim()); MinecraftForgeClient.registerItemRenderer(ModItems.sopsign, new ItemRenderShim()); + MinecraftForgeClient.registerItemRenderer(ModItems.pch, new ItemRenderShim()); MinecraftForgeClient.registerItemRenderer(ModItems.gun_brimstone, new ItemRenderObj()); diff --git a/com/hbm/main/CraftingManager.java b/com/hbm/main/CraftingManager.java index 69801fc02..2e45c91a3 100644 --- a/com/hbm/main/CraftingManager.java +++ b/com/hbm/main/CraftingManager.java @@ -38,6 +38,8 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.bolt_compound, 1), new Object[] { "PDP", "PTP", "PDP", 'D', ModItems.bolt_dura_steel, 'T', ModItems.bolt_tungsten, 'P', "plateTitanium" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.pellet_coal, 1), new Object[] { "PFP", "FOF", "PFP", 'P', "dustCoal", 'F', Items.flint, 'O', ModBlocks.gravel_obsidian })); GameRegistry.addRecipe(new ItemStack(ModItems.plate_polymer, 8), new Object[] { "DD", 'D', ModItems.ingot_polymer}); + GameRegistry.addRecipe(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', ModItems.ingot_fiberglass}); + GameRegistry.addRecipe(new ItemStack(ModItems.plate_polymer, 16), new Object[] { "DD", 'D', ModItems.ingot_asbestos}); GameRegistry.addRecipe(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "SWS", 'S', Items.string, 'W', Blocks.wool }); GameRegistry.addRecipe(new ItemStack(ModItems.plate_polymer, 4), new Object[] { "BB", 'B', Items.brick }); @@ -516,6 +518,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.shimmer_handle, 1), new Object[] { "GP", "GP", "GP", 'G', "plateGold", 'P', "ingotPolymer" })); GameRegistry.addRecipe(new ItemStack(ModItems.shimmer_sledge, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_head }); GameRegistry.addRecipe(new ItemStack(ModItems.shimmer_axe, 1), new Object[] { "H", "G", "G", 'G', ModItems.shimmer_handle, 'H', ModItems.shimmer_axe_head }); + GameRegistry.addRecipe(new ItemStack(ModItems.pch, 1), new Object[] { "CDC", "CBC", "CHC", 'C', ModItems.canned_jizz, 'D', ModItems.ducttape, 'B', ModItems.fluid_barrel_empty, 'H', ModItems.schrabidium_hammer }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.definitelyfood, 1), new Object[] { "DDD", "SDS", "DDD", 'D', Blocks.dirt, 'S', "plateSteel" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.blade_tungsten, 2), new Object[] { "IP", "TP", "TI", 'P', "plateTitanium", 'T', "ingotTitanium", 'I', "ingotTungsten" })); GameRegistry.addRecipe(new ItemStack(ModItems.turbine_tungsten, 1), new Object[] { "BBB", "BSB", "BBB", 'B', ModItems.blade_tungsten, 'S', ModItems.ingot_dura_steel }); @@ -523,6 +526,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.wrench, 1), new Object[] { " S ", " IS", "I ", 'S', "ingotSteel", 'I', "ingotIron" })); GameRegistry.addRecipe(new ItemStack(ModItems.wrench_flipped, 1), new Object[] { "S", "D", "W", 'S', Items.iron_sword, 'D', ModItems.ducttape, 'W', ModItems.wrench }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.memespoon, 1), new Object[] { "CGC", "PSP", "IAI", 'C', ModItems.powder_cloud, 'G', ModBlocks.block_thorium, 'P', ModItems.photo_panel, 'S', ModItems.steel_shovel, 'I', ModItems.plate_polymer, 'A', "ingotAustralium" })); + GameRegistry.addShapelessRecipe(new ItemStack(ModItems.cbt_device, 1), new Object[] { ModItems.bolt_tungsten, ModItems.wrench }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.toothpicks, 3), new Object[] { Items.stick, Items.stick, Items.stick }); GameRegistry.addShapedRecipe(new ItemStack(ModItems.ducttape, 6), new Object[] { "FSF", "SPS", "FSF", 'F', Items.string, 'S', Items.slime_ball, 'P', Items.paper }); @@ -1519,6 +1523,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.cladding_rubber, 1), new Object[] { "RCR", "CDC", "RCR", 'R', ModItems.plate_polymer, 'C', "dustCoal", 'D', ModItems.ducttape })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.cladding_lead, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_rubber, 'P', "plateLead", 'D', ModItems.ducttape })); GameRegistry.addRecipe(new ItemStack(ModItems.cladding_desh, 1), new Object[] { "DPD", "PRP", "DPD", 'R', ModItems.cladding_lead, 'P', ModItems.plate_desh, 'D', ModItems.ducttape }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_crystallizer, 1), new Object[] { "PMP", "STS", "DMD", 'P', "ingotPolymer", 'M', ModItems.motor, 'S', ModItems.blades_advanced_alloy, 'T', ModItems.tank_steel, 'D', "ingotDesh" })); } @@ -1598,5 +1603,27 @@ public class CraftingManager { GameRegistry.addSmelting(new ItemStack(Items.dye, 1, 15), new ItemStack(Items.slime_ball, 1), 0.0F); GameRegistry.addSmelting(new ItemStack(Blocks.gravel, 1), new ItemStack(Blocks.cobblestone, 1), 0.0F); GameRegistry.addSmelting(new ItemStack(ModBlocks.gravel_obsidian), new ItemStack(Blocks.obsidian), 0.0F); + + GameRegistry.addSmelting(ModItems.crystal_iron, new ItemStack(Items.iron_ingot, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_gold, new ItemStack(Items.gold_ingot, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_redstone, new ItemStack(Items.redstone, 6), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_uranium, new ItemStack(ModItems.ingot_uranium, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_thorium, new ItemStack(ModItems.ingot_th232, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_plutonium, new ItemStack(ModItems.ingot_plutonium, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_titanium, new ItemStack(ModItems.ingot_titanium, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_sulfur, new ItemStack(ModItems.sulfur, 6), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_niter, new ItemStack(ModItems.niter, 6), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_copper, new ItemStack(ModItems.ingot_copper, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_tungsten, new ItemStack(ModItems.ingot_tungsten, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_aluminium, new ItemStack(ModItems.ingot_aluminium, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_fluorite, new ItemStack(ModItems.fluorite, 6), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_beryllium, new ItemStack(ModItems.ingot_beryllium, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_lead, new ItemStack(ModItems.ingot_lead, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_schrabidium, new ItemStack(ModItems.ingot_schrabidium, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_rare, new ItemStack(ModItems.powder_desh_mix, 1), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_phosphorus, new ItemStack(ModItems.powder_fire, 6), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_lithium, new ItemStack(ModItems.lithium, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_starmetal, new ItemStack(ModItems.ingot_starmetal, 2), 2.0F); + GameRegistry.addSmelting(ModItems.crystal_trixite, new ItemStack(ModItems.ingot_plutonium, 4), 2.0F); } } diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 4fe16fdc3..7643b4a22 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -5,7 +5,6 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.dispenser.BehaviorProjectileDispense; import net.minecraft.dispenser.IPosition; import net.minecraft.entity.IProjectile; -import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; @@ -374,6 +373,7 @@ public class MainRegistry BulletConfigSyncingUtil.loadConfigsForSync(); CellularDungeonFactory.init(); Satellite.register(); + VersionChecker.checkVersion(); Library.superuser.add("192af5d7-ed0f-48d8-bd89-9d41af8524f8"); Library.superuser.add("5aee1e3d-3767-4987-a222-e7ce1fbdf88e"); @@ -381,10 +381,6 @@ public class MainRegistry Library.superuser.add("3af1c262-61c0-4b12-a4cb-424cc3a9c8c0"); Library.superuser.add("4729b498-a81c-42fd-8acd-20d6d9f759e0"); Library.superuser.add("c3f5e449-6d8c-4fe3-acc9-47ef50e7e7ae"); - //until he manages to do the most basic thing and INSTALL NEI - //Library.superuser.add("122fe98f-be19-49ca-a96b-d4dee4f0b22e"); - - Library.initBooks(); aMatSchrab.customCraftingMaterial = ModItems.ingot_schrabidium; aMatHaz.customCraftingMaterial = ModItems.hazmat_cloth; @@ -1252,7 +1248,7 @@ public class MainRegistry OreDictionary.registerOre("oreSchrabidium", ModBlocks.ore_schrabidium); OreDictionary.registerOre("oreSulfur", ModBlocks.ore_sulfur); OreDictionary.registerOre("oreNiter", ModBlocks.ore_niter); - OreDictionary.registerOre("oreSapeter", ModBlocks.ore_niter); + OreDictionary.registerOre("oreSalpeter", ModBlocks.ore_niter); OreDictionary.registerOre("oreCopper", ModBlocks.ore_copper); OreDictionary.registerOre("oreTungsten", ModBlocks.ore_tungsten); OreDictionary.registerOre("oreAluminum", ModBlocks.ore_aluminium); @@ -1321,68 +1317,10 @@ public class MainRegistry @EventHandler public static void PostLoad(FMLPostInitializationEvent PostEvent) { - MachineRecipes.registerShredder(); + ShredderRecipes.registerShredder(); + ShredderRecipes.registerOverrides(); CrystallizerRecipes.register(); - - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.scrap), new ItemStack(ModItems.dust)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.dust), new ItemStack(ModItems.dust)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.glowstone), new ItemStack(Items.glowstone_dust, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.quartz_block, 1, 0), new ItemStack(ModItems.powder_quartz, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.quartz_block, 1, 1), new ItemStack(ModItems.powder_quartz, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.quartz_block, 1, 2), new ItemStack(ModItems.powder_quartz, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.quartz_stairs), new ItemStack(ModItems.powder_quartz, 3)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.stone_slab, 1, 7), new ItemStack(ModItems.powder_quartz, 2)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Items.quartz), new ItemStack(ModItems.powder_quartz)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.quartz_ore), new ItemStack(ModItems.powder_quartz, 2)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.ore_nether_fire), new ItemStack(ModItems.powder_fire, 6)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.packed_ice), new ItemStack(ModItems.powder_ice, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.brick_light), new ItemStack(Items.clay_ball, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.concrete), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.concrete_smooth), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.brick_concrete), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.brick_concrete_mossy), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.brick_concrete_cracked), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.brick_concrete_broken), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.brick_obsidian), new ItemStack(ModBlocks.gravel_obsidian, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.obsidian), new ItemStack(ModBlocks.gravel_obsidian, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.stone), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.cobblestone), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.stonebrick), new ItemStack(Blocks.gravel, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.gravel), new ItemStack(Blocks.sand, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.sand), new ItemStack(ModItems.dust, 2)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.brick_block), new ItemStack(Items.clay_ball, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.brick_stairs), new ItemStack(Items.clay_ball, 3)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Items.flower_pot), new ItemStack(Items.clay_ball, 3)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Items.brick), new ItemStack(Items.clay_ball, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.sandstone), new ItemStack(Blocks.sand, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.sandstone_stairs), new ItemStack(Blocks.sand, 6)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.clay), new ItemStack(Items.clay_ball, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.hardened_clay), new ItemStack(Items.clay_ball, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.tnt), new ItemStack(Items.gunpowder, 5)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.powder_quartz), new ItemStack(ModItems.powder_lithium_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.powder_lapis), new ItemStack(ModItems.powder_cobalt_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_neodymium), new ItemStack(ModItems.powder_neodymium_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_cobalt), new ItemStack(ModItems.powder_cobalt_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_niobium), new ItemStack(ModItems.powder_niobium_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_cerium), new ItemStack(ModItems.powder_cerium_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_lanthanium), new ItemStack(ModItems.powder_lanthanium_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_actinium), new ItemStack(ModItems.powder_actinium_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.fragment_meteorite), new ItemStack(ModItems.powder_meteorite_tiny, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.block_meteor), new ItemStack(ModItems.powder_meteorite, 10)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Items.enchanted_book), new ItemStack(ModItems.powder_magic, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.arc_electrode_burnt), new ItemStack(ModItems.powder_coal, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModItems.arc_electrode_desh), new ItemStack(ModItems.powder_desh, 2)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.meteor_polished), new ItemStack(ModItems.powder_meteorite, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.meteor_brick), new ItemStack(ModItems.powder_meteorite, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.meteor_brick_mossy), new ItemStack(ModItems.powder_meteorite, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.meteor_brick_cracked), new ItemStack(ModItems.powder_meteorite, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.meteor_brick_chiseled), new ItemStack(ModItems.powder_meteorite, 1)); - MachineRecipes.overridePreSetRecipe(new ItemStack(ModBlocks.meteor_pillar), new ItemStack(ModItems.powder_meteorite, 1)); - - for(int i = 0; i < 16; i++) { - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, i), new ItemStack(Items.clay_ball, 4)); - MachineRecipes.overridePreSetRecipe(new ItemStack(Blocks.wool, 1, i), new ItemStack(Items.string, 4)); - } + CentrifugeRecipes.register(); FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(Items.water_bucket), new ItemStack(Items.bucket), FluidType.WATER, 1000)); FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(Items.lava_bucket), new ItemStack(Items.bucket), FluidType.LAVA, 1000)); @@ -1863,8 +1801,8 @@ public class MainRegistry 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); + recursiveStone = createConfigBool(config, CATEGORY_TOOLS, "11.01_recursionDepth", "Determines whether veinminer can break stone", false); + recursiveNetherrack = createConfigBool(config, CATEGORY_TOOLS, "11.02_recursionDepth", "Determines whether veinminer can break netherrack", false); config.save(); diff --git a/com/hbm/main/ModEventHandler.java b/com/hbm/main/ModEventHandler.java index fae9bc2ad..3b48c6ceb 100644 --- a/com/hbm/main/ModEventHandler.java +++ b/com/hbm/main/ModEventHandler.java @@ -14,6 +14,7 @@ import com.hbm.entity.mob.EntityNuclearCreeper; import com.hbm.entity.projectile.EntityBurningFOEQ; import com.hbm.entity.projectile.EntityMeteor; import com.hbm.handler.ArmorUtil; +import com.hbm.handler.VersionChecker; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; import com.hbm.lib.Library; @@ -47,6 +48,7 @@ import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.tileentity.TileEntitySign; import net.minecraft.util.ChatComponentText; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.MathHelper; import net.minecraft.world.World; import net.minecraft.world.chunk.Chunk; @@ -67,8 +69,15 @@ public class ModEventHandler @SubscribeEvent public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { - if(event.player.worldObj.isRemote) + System.out.println("eeeeee"); + + if(!event.player.worldObj.isRemote) { event.player.addChatMessage(new ChatComponentText("Loaded world with Hbm's Nuclear Tech Mod " + RefStrings.VERSION + " for Minecraft 1.7.10!")); + + if(VersionChecker.newVersion) { + event.player.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "New version " + VersionChecker.versionNumber + " is available!")); + } + } } @SubscribeEvent @@ -619,7 +628,39 @@ public class ModEventHandler EntityPlayerMP player = event.player; String message = event.message; - //only if debug mode is enabled, which it is not by default + //boolean conditions for the illiterate, edition 1 + //bellow you can see the header of an if-block. inside the brackets, there is a boolean statement. + //that means nothing other than its value totaling either 'true' or 'false' + //examples: 'true' would just mean true + //'1 > 3' would equal false + //'i < 10' would equal true if 'i' is smaller than 10, if equal or greater, it will result in false + + //let's start from the back: + + //this part means that the message's first character has to equal a '!': -------------------------+ + // | + //this is a logical AND operator: -------------------------------------------------------------+ | + // | | + //this is a reference to a field in | | + //Library.java containing a reference UUID: --------------------------------------+ | | + // | | | + //this will compare said UUID with | | | + //the string representation of the | | | + //current player's UUID: ----------+ | | | + // | | | | + //another AND operator: --------+ | | | | + // | | | | | + //this is a reference to a | | | | | + //boolean called | | | | | + //'enableDebugMode' which is | | | | | + //only set once by the mod's | | | | | + //config and is disabled by | | | | | + //default. "debug" is not a | | | | | + //substring of the message, nor | | | | | + //something that can be toggled | | | | | + //in any other way except for | | | | | + //the config file: | | | | | | + // V V V V V V if(MainRegistry.enableDebugMode && player.getUniqueID().toString().equals(Library.HbMinecraft) && message.startsWith("!")) { String[] msg = message.split(" "); diff --git a/com/hbm/main/NEIConfig.java b/com/hbm/main/NEIConfig.java index b3625a97d..8665af5d7 100644 --- a/com/hbm/main/NEIConfig.java +++ b/com/hbm/main/NEIConfig.java @@ -41,6 +41,8 @@ public class NEIConfig implements IConfigureNEI { API.registerUsageHandler(new FluidRecipeHandler()); API.registerRecipeHandler(new PressRecipeHandler()); API.registerUsageHandler(new PressRecipeHandler()); + API.registerRecipeHandler(new CrystallizerRecipeHandler()); + API.registerUsageHandler(new CrystallizerRecipeHandler()); //Some things are even beyond my control...or are they? API.hideItem(new ItemStack(ModItems.memory)); diff --git a/com/hbm/main/ResourceManager.java b/com/hbm/main/ResourceManager.java index 61ba18f27..158e3cb8f 100644 --- a/com/hbm/main/ResourceManager.java +++ b/com/hbm/main/ResourceManager.java @@ -295,6 +295,7 @@ public class ResourceManager { public static final IModelCustom shimmer_sledge = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/shimmer_sledge.obj")); public static final IModelCustom shimmer_axe = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/shimmer_axe.obj")); public static final IModelCustom stopsign = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/weapons/stopsign.obj")); + public static final IModelCustom pch = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/pch.obj")); public static final IModelCustom brimstone = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/brimstone.obj")); public static final IModelCustom hk69 = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/hk69.obj")); @@ -303,6 +304,8 @@ public class ResourceManager { 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")); + + public static final IModelCustom grenade_frag = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/weapons/grenade_frag.obj")); ////Texture Items @@ -311,6 +314,7 @@ public class ResourceManager { public static final ResourceLocation shimmer_axe_tex = new ResourceLocation(RefStrings.MODID, "textures/models/shimmer_axe.png"); public static final ResourceLocation stopsign_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/stopsign.png"); public static final ResourceLocation sopsign_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/sopsign.png"); + public static final ResourceLocation pch_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/pch.png"); public static final ResourceLocation brimstone_tex = new ResourceLocation(RefStrings.MODID, "textures/models/brimstone.png"); public static final ResourceLocation hk69_tex = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/hk69.png"); @@ -329,6 +333,8 @@ public class ResourceManager { 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"); + public static final ResourceLocation grenade_mk2 = new ResourceLocation(RefStrings.MODID, "textures/models/weapons/grenade_mk2.png"); + ////Obj Entities diff --git a/com/hbm/render/entity/projectile/RenderGrenade.java b/com/hbm/render/entity/projectile/RenderGrenade.java new file mode 100644 index 000000000..0fcc58ddc --- /dev/null +++ b/com/hbm/render/entity/projectile/RenderGrenade.java @@ -0,0 +1,35 @@ +package com.hbm.render.entity.projectile; + +import org.lwjgl.opengl.GL11; + +import com.hbm.main.ResourceManager; + +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; + +public class RenderGrenade extends Render { + + @Override + public void doRender(Entity p_76986_1_, double x, double y, double z, float p_76986_8_, float p_76986_9_) { + + GL11.glPushMatrix(); + GL11.glTranslatef((float)x, (float)y + 0.125F, (float)z); + GL11.glRotatef(p_76986_1_.prevRotationYaw + (p_76986_1_.rotationYaw - p_76986_1_.prevRotationYaw) * p_76986_9_ - 90.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(p_76986_1_.prevRotationPitch + (p_76986_1_.rotationPitch - p_76986_1_.prevRotationPitch) * p_76986_9_, 0.0F, 0.0F, 1.0F); + + GL11.glRotatef(90, 0F, 1F, 0F); + GL11.glScaled(0.125, 0.125, 0.125); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + bindTexture(ResourceManager.grenade_mk2); + ResourceManager.grenade_frag.renderAll(); + + GL11.glPopMatrix(); + } + + @Override + protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return ResourceManager.grenade_mk2; + } +} diff --git a/com/hbm/render/item/ItemRenderShim.java b/com/hbm/render/item/ItemRenderShim.java index 341c07ac5..94b465e49 100644 --- a/com/hbm/render/item/ItemRenderShim.java +++ b/com/hbm/render/item/ItemRenderShim.java @@ -25,7 +25,7 @@ public class ItemRenderShim implements IItemRenderer { @Override public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { - return false; + return type == ItemRenderType.ENTITY && (helper == ItemRendererHelper.ENTITY_BOBBING || helper == ItemRendererHelper.ENTITY_ROTATION); } @Override @@ -48,6 +48,8 @@ public class ItemRenderShim implements IItemRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.stopsign_tex); if(item.getItem() == ModItems.sopsign) Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.sopsign_tex); + if(item.getItem() == ModItems.pch) + Minecraft.getMinecraft().renderEngine.bindTexture(ResourceManager.pch_tex); if(item.getItem() == ModItems.shimmer_sledge || item.getItem() == ModItems.shimmer_axe) { GL11.glRotatef(-135.0F, 0.0F, 0.0F, 1.0F); @@ -63,6 +65,11 @@ public class ItemRenderShim implements IItemRenderer { GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F); } + if(item.getItem() == ModItems.pch) { + GL11.glRotatef(45.0F, 0.0F, 0.0F, 1.0F); + GL11.glTranslatef(0.7F, 0.0F, 0.0F); + } + if(item.getItem() == ModItems.shimmer_sledge) ResourceManager.shimmer_sledge.renderAll(); if(item.getItem() == ModItems.shimmer_axe) @@ -70,6 +77,12 @@ public class ItemRenderShim implements IItemRenderer { if(item.getItem() == ModItems.stopsign || item.getItem() == ModItems.sopsign) ResourceManager.stopsign.renderAll(); + if(item.getItem() == ModItems.pch) { + GL11.glShadeModel(GL11.GL_SMOOTH); + ResourceManager.pch.renderAll(); + GL11.glShadeModel(GL11.GL_FLAT); + } + default: break; } GL11.glPopMatrix(); diff --git a/com/hbm/saveddata/satellites/SatelliteHorizons.java b/com/hbm/saveddata/satellites/SatelliteHorizons.java index 0b543ff25..a7d8330f3 100644 --- a/com/hbm/saveddata/satellites/SatelliteHorizons.java +++ b/com/hbm/saveddata/satellites/SatelliteHorizons.java @@ -10,6 +10,7 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; +import net.minecraft.world.chunk.IChunkProvider; public class SatelliteHorizons extends Satellite { @@ -43,6 +44,10 @@ public class SatelliteHorizons extends Satellite { EntityTom tom = new EntityTom(world); tom.setPosition(x + 0.5, 600, z + 0.5); + + IChunkProvider provider = world.getChunkProvider(); + provider.loadChunk(x >> 4, z >> 4); + world.spawnEntityInWorld(tom); for(Object p : world.playerEntities) diff --git a/com/hbm/tileentity/machine/TileEntityBarrel.java b/com/hbm/tileentity/machine/TileEntityBarrel.java index 2f727ea89..caf24335e 100644 --- a/com/hbm/tileentity/machine/TileEntityBarrel.java +++ b/com/hbm/tileentity/machine/TileEntityBarrel.java @@ -122,8 +122,12 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Override public void fillFluidInit(FluidType type) { + fillFluid(this.xCoord + 1, this.yCoord, this.zCoord, getTact(), type); + fillFluid(this.xCoord - 1, this.yCoord, this.zCoord, getTact(), type); fillFluid(this.xCoord, this.yCoord + 1, this.zCoord, getTact(), type); fillFluid(this.xCoord, this.yCoord - 1, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord, this.zCoord + 1, getTact(), type); + fillFluid(this.xCoord, this.yCoord, this.zCoord - 1, getTact(), type); } @Override diff --git a/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java b/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java index dab8dc44f..e49ee1aab 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java +++ b/com/hbm/tileentity/machine/TileEntityMachineCentrifuge.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IConsumer; -import com.hbm.inventory.MachineRecipes; +import com.hbm.inventory.CentrifugeRecipes; import com.hbm.items.machine.ItemBattery; import com.hbm.lib.Library; import com.hbm.packet.AuxElectricityPacket; @@ -214,7 +214,7 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv { return false; } - ItemStack[] itemStack = MachineRecipes.getCentrifugeProcessingResult(slots[0]); + ItemStack[] itemStack = CentrifugeRecipes.getOutput(slots[0]); if(itemStack == null) { return false; @@ -238,7 +238,7 @@ public class TileEntityMachineCentrifuge extends TileEntity implements ISidedInv private void processItem() { if(canProcess()) { - ItemStack[] itemStack = MachineRecipes.getCentrifugeProcessingResult(slots[0]); + ItemStack[] itemStack = CentrifugeRecipes.getOutput(slots[0]); if(slots[2] == null && itemStack[0] != null) { diff --git a/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java b/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java index dea9a5e9b..07113a659 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java +++ b/com/hbm/tileentity/machine/TileEntityMachineCrystallizer.java @@ -1,11 +1,34 @@ package com.hbm.tileentity.machine; +import java.util.ArrayList; +import java.util.List; + +import com.hbm.handler.FluidTypeHandler.FluidType; +import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.inventory.CrystallizerRecipes; +import com.hbm.inventory.FluidTank; +import com.hbm.items.machine.ItemBattery; +import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; -public class TileEntityMachineCrystallizer extends TileEntityMachineBase { +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; + +public class TileEntityMachineCrystallizer extends TileEntityMachineBase implements IConsumer, IFluidAcceptor { + + public long power; + public static final long maxPower = 100000; + public static final int demand = 1000; + public static final int acidRequired = 500; + public short progress; + public static final short duration = 600; + + public FluidTank tank; public TileEntityMachineCrystallizer() { - super(3); + super(5); + tank = new FluidTank(FluidType.ACID, 8000, 0); } @Override @@ -18,7 +41,174 @@ public class TileEntityMachineCrystallizer extends TileEntityMachineBase { if(!worldObj.isRemote) { + power = Library.chargeTEFromItems(slots, 1, power, maxPower); + tank.loadTank(3, 4, slots); + + if(canProcess()) { + + progress++; + power -= demand; + + if(progress > duration) { + progress = 0; + tank.setFill(tank.getFill() - acidRequired); + processItem(); + + this.markDirty(); + } + + } else { + progress = 0; + } + + tank.updateTank(xCoord, yCoord, zCoord, this.worldObj.provider.dimensionId); + + NBTTagCompound data = new NBTTagCompound(); + data.setShort("progress", progress); + data.setLong("power", power); + this.networkPack(data, 25); } } + + public void networkUnpack(NBTTagCompound data) { + + this.power = data.getLong("power"); + this.progress = data.getShort("progress"); + } + + private void processItem() { + ItemStack result = CrystallizerRecipes.getOutput(slots[0]); + + if(result == null) //never happens but you can't be sure enough + return; + + if(slots[2] == null) + slots[2] = result; + else if(slots[2].stackSize < slots[2].getMaxStackSize()) + slots[2].stackSize++; + + this.decrStackSize(0, 1); + } + + private boolean canProcess() { + + //Is there no input? + if(slots[0] == null) + return false; + + if(power < demand) + return false; + + if(tank.getFill() < acidRequired) + return false; + + ItemStack result = CrystallizerRecipes.getOutput(slots[0]); + + //Or output? + if(result == null) + return false; + + //Does the output not match? + if(slots[2] != null && (slots[2].getItem() != result.getItem() || slots[2].getItemDamage() != result.getItemDamage())) + return false; + + //Or is the output slot already full? + if(slots[2] != null && slots[2].stackSize >= slots[2].getMaxStackSize()) + return false; + + return true; + } + + public long getPowerScaled(int i) { + return (power * i) / maxPower; + } + + public int getProgressScaled(int i) { + return (progress * i) / duration; + } + + @Override + public void setFillstate(int fill, int index) { + tank.setFill(fill); + } + + @Override + public void setFluidFill(int fill, FluidType type) { + tank.setFill(fill); + } + + @Override + public void setType(FluidType type, int index) { + tank.setTankType(type); + } + + @Override + public List getTanks() { + return new ArrayList() {{ add(tank); }}; + } + + @Override + public int getFluidFill(FluidType type) { + return tank.getFill(); + } + + @Override + public int getMaxFluidFill(FluidType type) { + return tank.getMaxFill(); + } + + @Override + public void setPower(long i) { + this.power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return maxPower; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + power = nbt.getLong("power"); + tank.readFromNBT(nbt, "tank"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + tank.writeToNBT(nbt, "tank"); + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack itemStack) { + + if(i == 0 && CrystallizerRecipes.getOutput(itemStack) != null) + return true; + + if(i == 1 && itemStack.getItem() instanceof ItemBattery) + return true; + + return false; + } + + @Override + public boolean canExtractItem(int i, ItemStack itemStack, int j) { + return i == 2; + } + + @Override + public int[] getAccessibleSlotsFromSide(int side) { + + return side == 0 ? new int[] { 2 } : (side == 1 ? new int[] { 0 } : new int[] { 1 }); + } } diff --git a/com/hbm/tileentity/machine/TileEntityMachineShredder.java b/com/hbm/tileentity/machine/TileEntityMachineShredder.java index 4d7d5e110..9cdd7799d 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineShredder.java +++ b/com/hbm/tileentity/machine/TileEntityMachineShredder.java @@ -1,7 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.interfaces.IConsumer; -import com.hbm.inventory.MachineRecipes; +import com.hbm.inventory.ShredderRecipes; import com.hbm.items.machine.ItemBattery; import com.hbm.items.machine.ItemBlades; import com.hbm.lib.Library; @@ -321,7 +321,7 @@ public class TileEntityMachineShredder extends TileEntity implements ISidedInven if(slots[i] != null && hasSpace(slots[i])) { ItemStack inp = slots[i].copy(); - ItemStack outp = MachineRecipes.getShredderResult(inp); + ItemStack outp = ShredderRecipes.getShredderResult(inp); boolean flag = false; for (int j = 9; j < 27; j++) @@ -367,7 +367,7 @@ public class TileEntityMachineShredder extends TileEntity implements ISidedInven public boolean hasSpace(ItemStack stack) { - ItemStack result = MachineRecipes.getShredderResult(stack); + ItemStack result = ShredderRecipes.getShredderResult(stack); if (result != null) for (int i = 9; i < 27; i++) { diff --git a/com/hbm/tileentity/machine/TileEntityMachineTurbine.java b/com/hbm/tileentity/machine/TileEntityMachineTurbine.java index 1f6b413e9..740881961 100644 --- a/com/hbm/tileentity/machine/TileEntityMachineTurbine.java +++ b/com/hbm/tileentity/machine/TileEntityMachineTurbine.java @@ -226,6 +226,7 @@ public class TileEntityMachineTurbine extends TileEntity implements ISidedInvent tanks[0].setType(0, 1, slots); tanks[0].loadTank(2, 3, slots); + Library.chargeItemsFromTE(slots, 7, power, maxPower); Object[] outs = MachineRecipes.getTurbineOutput(tanks[0].getTankType());