From 7159f83d2d86d566cc1c708f1a5a62247b0dff3a Mon Sep 17 00:00:00 2001 From: Bob Date: Sat, 26 Dec 2020 21:03:00 +0100 Subject: [PATCH] lots of things --- src/main/java/assets/hbm/lang/de_DE.lang | 32 +++++- src/main/java/assets/hbm/lang/en_US.lang | 34 ++++++- .../textures/blocks/block_dineutronium.png | Bin 0 -> 479 bytes .../hbm/textures/blocks/block_schrabidate.png | Bin 0 -> 406 bytes .../hbm/textures/blocks/block_schraranium.png | Bin 0 -> 689 bytes .../hbm/textures/blocks/machine_detector.png | Bin 0 -> 736 bytes .../textures/blocks/machine_detector_off.png | Bin 0 -> 625 bytes .../java/assets/hbm/textures/gui/fluids2.png | Bin 15634 -> 16062 bytes .../hbm/textures/items/chem_icon_DESH.png | Bin 252 -> 256 bytes .../{models => items}/plate_armor_overlay.png | Bin .../hbm/textures/models/tank_SCHRABIDIC.png | Bin 0 -> 2380 bytes .../textures/models/tank_SUPERHOTSTEAM.png | Bin 2588 -> 2347 bytes src/main/java/com/hbm/blocks/ModBlocks.java | 12 +++ .../com/hbm/blocks/generic/BlockCrate.java | 7 -- .../com/hbm/blocks/machine/PowerDetector.java | 51 ++++++++++ src/main/java/com/hbm/config/MobConfig.java | 4 + .../java/com/hbm/crafting/ArmorRecipes.java | 4 +- .../java/com/hbm/crafting/MineralRecipes.java | 11 +- .../java/com/hbm/crafting/PowderRecipes.java | 1 + .../java/com/hbm/crafting/RecipesCommon.java | 4 +- .../java/com/hbm/crafting/ToolRecipes.java | 1 + .../com/hbm/handler/BossSpawnHandler.java | 2 +- .../com/hbm/handler/FluidTypeHandler.java | 3 +- .../com/hbm/inventory/AssemblerRecipes.java | 28 ++++- .../hbm/inventory/CrystallizerRecipes.java | 2 + .../com/hbm/inventory/MachineRecipes.java | 27 +++++ .../com/hbm/inventory/ShredderRecipes.java | 2 + .../container/ContainerMachineFluidTank.java | 10 +- src/main/java/com/hbm/items/ModItems.java | 40 +++++++- .../java/com/hbm/items/armor/ArmorFSB.java | 2 +- .../com/hbm/items/block/ItemBlockLore.java | 3 +- .../items/machine/ItemChemistryTemplate.java | 10 +- .../java/com/hbm/items/special/ItemHot.java | 63 ++++++++---- .../hbm/items/tool/ItemSwordMeteorite.java | 65 ++++++++++++ src/main/java/com/hbm/main/ClientProxy.java | 12 ++- .../java/com/hbm/main/CraftingManager.java | 10 +- src/main/java/com/hbm/main/MainRegistry.java | 1 + .../java/com/hbm/main/ModEventHandler.java | 51 +++++++++- .../java/com/hbm/packet/AuxButtonPacket.java | 3 +- .../com/hbm/render/item/ItemRendererHot.java | 28 +++-- .../render/item/ItemRendererMeteorSword.java | 96 ++++++++++++++++++ .../com/hbm/render/tileentity/RenderCore.java | 2 +- .../machine/TileEntityMachineAssembler.java | 3 + .../machine/TileEntityMachineChemplant.java | 17 +++- .../machine/TileEntityMachineDetector.java | 46 +++++++++ .../machine/TileEntityMachineFluidTank.java | 2 +- src/main/java/com/hbm/util/ArmorUtil.java | 16 +++ src/main/resources/mcmod.info | 2 +- 48 files changed, 627 insertions(+), 80 deletions(-) create mode 100644 src/main/java/assets/hbm/textures/blocks/block_dineutronium.png create mode 100644 src/main/java/assets/hbm/textures/blocks/block_schrabidate.png create mode 100644 src/main/java/assets/hbm/textures/blocks/block_schraranium.png create mode 100644 src/main/java/assets/hbm/textures/blocks/machine_detector.png create mode 100644 src/main/java/assets/hbm/textures/blocks/machine_detector_off.png rename src/main/java/assets/hbm/textures/{models => items}/plate_armor_overlay.png (100%) create mode 100644 src/main/java/assets/hbm/textures/models/tank_SCHRABIDIC.png create mode 100644 src/main/java/com/hbm/blocks/machine/PowerDetector.java create mode 100644 src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java create mode 100644 src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java create mode 100644 src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java diff --git a/src/main/java/assets/hbm/lang/de_DE.lang b/src/main/java/assets/hbm/lang/de_DE.lang index d7b0d1273..8bc46d6ae 100644 --- a/src/main/java/assets/hbm/lang/de_DE.lang +++ b/src/main/java/assets/hbm/lang/de_DE.lang @@ -107,6 +107,8 @@ chem.POLYMER=Polymersynthese chem.PUF6=Plutoniumhexafluoridproduktion chem.SAS3=Schrabidiumtrisulfatherstellung chem.SATURN=Saturnitherstellung +chem.SCHRABIDATE=Eisenschrabidatherstellung +chem.SCHRABIDIC=Schrabidische Säure mischen chem.SF_BIOFUEL=Biodieselverfestigung chem.SF_BIOGAS=Biogasverfestigung chem.SF_DIESEL=Dieselverfestigung @@ -287,6 +289,7 @@ entity.hbm.entity_schrabnel.name=Schrabnel fluid.acid_fluid=Säure fluid.mud_fluid=Giftiger Schlamm +fluid.schrabidic_fluid=Schrabidische Säure fluid.toxic_fluid=Stereotypischer grüner Schleim geiger.chunkRad=Chunk-Strahlung: @@ -344,6 +347,7 @@ hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl hbmfluid.sas3=Schrabidiumtrisulfat +hbmfluid.schrabidic=Schrabidische Säure hbmfluid.smear=Industrieöl hbmfluid.steam=Dampf hbmfluid.superhotsteam=Superverdichteter Dampf @@ -363,10 +367,10 @@ info.template_out_p=Output: info.template_seconds=Sekunden info.template_time=Produktionszeit: -item.ajr_boots.name=T45-AJR-Powerrüstungsstiefel -item.ajr_helmet.name=T45-AJR-Powerrüstungshelm -item.ajr_legs.name=T45-AJR-Powerrüstungsbeinschutz -item.ajr_plate.name=T45-AJR-Powerrüstungsbrustpanzer +item.ajr_boots.name=AJR-Powerrüstungsstiefel +item.ajr_helmet.name=AJR-Powerrüstungshelm +item.ajr_legs.name=AJR-Powerrüstungsbeinschutz +item.ajr_plate.name=AJR-Powerrüstungsbrustpanzer item.alloy_axe.name=Legierungsaxt item.alloy_boots.name=Legierungsstiefel item.alloy_helmet.name=Legierungshelm @@ -591,6 +595,7 @@ item.bj_helmet.name=Augenklappe mit Infrarot-Sensor item.bj_legs.name=Lunare Kybernetischer Beinersatz item.bj_plate.name=Lunare Kybernetische Panzerung item.black_hole.name=Miniatur Schwarzes Loch +item.blade_meteorite.name=Meteoritenklinge item.blade_titanium.name=Titanturbinenschaufel item.blade_tungsten.name=Wolframverstärktes Turbinenblatt item.blades_advanced_alloy.name=Fortgeschrittenes Sägeblatt @@ -638,6 +643,7 @@ item.boy_target.name=Unterkritischer U235 Hohlkörper item.briquette_lignite.name=Braunkohlebrikett item.bucket_acid.name=Säureeimer item.bucket_mud.name=Eimer mit giftigem Schlamm +item.bucket_schrabidic_acid.name=Eimer mit Schrabidischer Säure item.bucket_toxic.name=Eimer mit stereotypischem grünen Schleim item.burnt_bark.name=Verbrannte Rinde item.can_bepis.name=Bepis @@ -818,7 +824,9 @@ item.coil_gold.name=Goldspule item.coil_gold_torus.name=Goldene Ringspule item.coil_magnetized_tungsten.name=4000K Hochtemperaturensupraleitermagnetspule item.coil_tungsten.name=Heizspirale +item.coin_creeper.name=Nukleare Creeper-Münze item.coin_maskman.name=Maskenmann-Münze +item.coin_radiation.name=Strahlungs-Münze item.coke.name=Koks item.combine_scrap.name=CMB Schrott item.component_emitter.name=Emitterkomponente @@ -1187,6 +1195,8 @@ item.ingot_lanthanium.name=Semistabiler Lanthanbarren item.ingot_lead.name=Bleibarren item.ingot_les.name=Schwach angereicherter Schrabidiumkernbrennstoffbarren item.ingot_magnetized_tungsten.name=Magnetisierter Wolframbarren +item.ingot_meteorite.name=Meteoritenbarren +item.ingot_meteorite_forged.name=Geschmiedeter Meteoritenbarren item.ingot_mox_fuel.name=MOX-Kernbrennstoffbarren item.ingot_neptunium.name=Neptuniumbarren item.ingot_phosphorus.name=Weiße Phosphortafel @@ -1200,6 +1210,7 @@ item.ingot_pu240.name=Pu240-Barren item.ingot_red_copper.name=Minecraft-Kupfer item.ingot_reiium.name=Reiiumbarren item.ingot_saturnite.name=Saturnitbarren +item.ingot_schrabidate.name=Eisenschrabidatbarren item.ingot_schrabidium.name=Schrabidiumbarren item.ingot_schrabidium_fuel.name=Schrabidiumkernbrennstoffbarren item.ingot_schraranium.name=Schraraniumbarren @@ -1271,6 +1282,14 @@ item.memory.name=item.null.name item.mese_gavel.name=Mese-Richterhammer item.mese_pickaxe.name=Mesespitzhacke item.meteor_remote.name=Meteoritenkontroller +item.meteorite_sword.name=Meteoritenschwert +item.meteorite_sword_seared.name=Meteoritenschwert (Versengt) +item.meteorite_sword_reforged.name=Meteorite Sword (Nachgeschmiedet) +item.meteorite_sword_hardened.name=Meteorite Sword (Gehärtet) +item.meteorite_sword_alloyed.name=Meteorite Sword (Legiert) +item.meteorite_sword_machined.name=Meteorite Sword (Maschninenverarbeitet) +item.meteorite_sword_treated.name=Meteorite Sword (Behandelt) +item.meteorite_sword_etched.name=Meteorite Sword (Geätzt) item.mike_cooling_unit.name=Deuteriumkühleinheit item.mike_core.name=Mit Uran ummantelter Deuteriumtank item.mike_deut.name=Deuteriumtank @@ -1642,6 +1661,7 @@ item.powder_power.name=Energiepulver item.powder_quartz.name=Quarzstaub item.powder_red_copper.name=Roter Kupfer Staub item.powder_reiium.name=Reiiumstaub +item.powder_schrabidate.name=Eisenschrabidatstaub item.powder_schrabidium.name=Schrabidiumstaub item.powder_semtex_mix.name=Semtexmischung item.powder_spark_mix.name=Sparkmischung @@ -2111,6 +2131,7 @@ tile.block_combine_steel.name=CMB-Stahlblock tile.block_copper.name=Kupferblock tile.block_daffergon.name=Daffergonblock tile.block_desh.name=Verstärketer Deshblock +tile.block_dineutronium.name=Dineutroniumblock tile.block_dura_steel.name=Verstärketer Schnellarbeitsstahlblock tile.block_electrical_scrap.name=Elektroschrottblock tile.block_euphemium.name=Euphemiumblock @@ -2138,9 +2159,11 @@ tile.block_pu240.name=Pu240-Block tile.block_red_copper.name=Roter Kupferblock tile.block_red_phosphorus.name=Roter Phosphorblock tile.block_reiium.name=Reiiumblock +tile.block_schrabidate.name=Eisenschrabidatblock tile.block_schrabidium.name=Schrabidiumblock tile.block_schrabidium_cluster.name=Schrabidium-Cluster tile.block_schrabidium_fuel.name=Schrabidiumkernbrennstoffblock +tile.block_schraranium.name=Schraraniumblock tile.block_scrap.name=Schrottblock tile.block_solinium.name=Soliniumblock tile.block_starmetal.name=§9Sternenmetallblock§r @@ -2315,6 +2338,7 @@ tile.machine_converter_he_rf.name=HE zu RF Konverter tile.machine_converter_rf_he.name=RF zu HE Konverter tile.machine_crystallizer.name=Erzauflöser tile.machine_cyclotron.name=Zyklotron +tile.machine_detector.name=Energiedetektor tile.machine_deuterium.name=Deuteriumextraktor tile.machine_diesel.name=Dieselgenerator tile.machine_difurnace_off.name=Hochofen diff --git a/src/main/java/assets/hbm/lang/en_US.lang b/src/main/java/assets/hbm/lang/en_US.lang index 59826c956..05d8efdb2 100644 --- a/src/main/java/assets/hbm/lang/en_US.lang +++ b/src/main/java/assets/hbm/lang/en_US.lang @@ -107,6 +107,8 @@ chem.POLYMER=Polymer Synthesis chem.PUF6=Plutonium Hexafluoride Production chem.SAS3=Schrabidium Trisulfide Production chem.SATURN=Saturnite Production +chem.SCHRABIDATE=Ferric Schrabidate Production +chem.SCHRABIDIC=Schrabidic Acid Mixing chem.SF_BIOFUEL=Biofuel Solidification chem.SF_BIOGAS=Biogas Solidification chem.SF_DIESEL=Diesel Solidification @@ -287,6 +289,7 @@ entity.hbm.entity_schrabnel.name=Schrabnel fluid.acid_fluid=Acid fluid.mud_fluid=Poisonous Mud +fluid.schrabidic_fluid=Schrabidic Acid fluid.toxic_fluid=Stereotypical Green Ooze geiger.chunkRad=Current chunk radiation: @@ -344,6 +347,7 @@ hbmfluid.plasma_xm=Xenon-Mercury Plasma hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.reclaimed=Reclaimed Industrial Oil hbmfluid.sas3=Schrabidium Trisulfide +hbmfluid.schrabidic=Schrabidic Acid hbmfluid.smear=Industrial Oil hbmfluid.steam=Steam hbmfluid.superhotsteam=Super Dense Steam @@ -363,10 +367,10 @@ info.template_out_p=Outputs: info.template_seconds=seconds info.template_time=Production Time: -item.ajr_boots.name=T45-AJR Power Armor Boots -item.ajr_helmet.name=T45-AJR Power Armor Helmet -item.ajr_legs.name=T45-AJR Power Armor Leggings -item.ajr_plate.name=T45-AJR Power Armor Chestplate +item.ajr_boots.name=AJR Power Armor Boots +item.ajr_helmet.name=AJR Power Armor Helmet +item.ajr_legs.name=AJR Power Armor Leggings +item.ajr_plate.name=AJR Power Armor Chestplate item.alloy_axe.name=Advanced Alloy Axe item.alloy_boots.name=Advanced Alloy Boots item.alloy_helmet.name=Advanced Alloy Helmet @@ -591,6 +595,7 @@ item.bj_helmet.name=Eyepatch with Thermal Sensor item.bj_legs.name=Lunar Cybernetic Leg Replacements item.bj_plate.name=Lunar Cybernetic Plating item.black_hole.name=Miniature Black Hole +item.blade_meteorite.name=Meteorite Blade item.blade_titanium.name=Titanium Blade item.blade_tungsten.name=Tungsten Reinforced Blade item.blades_advanced_alloy.name=Advanced Shredder Blades @@ -638,6 +643,7 @@ item.boy_target.name=Subcritical U235 Target item.briquette_lignite.name=Lignite Briquette item.bucket_acid.name=Bucket of Acid item.bucket_mud.name=Bucket of Poisonous Mud +item.bucket_schrabidic_acid.name=Bucket of Schrabidic Acid item.bucket_toxic.name=Bucket of Stereotypical Green Ooze item.burnt_bark.name=Burnt Bark item.can_bepis.name=Bepis @@ -818,7 +824,9 @@ item.coil_gold.name=Gold Coil item.coil_gold_torus.name=Golden Ring Coil item.coil_magnetized_tungsten.name=4000K High Temperature Super Conducting Coil item.coil_tungsten.name=Heating Coil +item.coin_creeper.name=Nuclear Creeper Coin item.coin_maskman.name=Maskman Coin +item.coin_radiation.name=Radiation Coin item.coke.name=Coke item.combine_scrap.name=CMB Scrap Metal item.component_emitter.name=Emitter Component @@ -1187,6 +1195,8 @@ item.ingot_lanthanium.name=Semi-Stable Lanthanium Ingot item.ingot_lead.name=Lead Ingot item.ingot_les.name=Low Enriched Schrabidium Fuel Ingot item.ingot_magnetized_tungsten.name=Magnetized Tungsten Ingot +item.ingot_meteorite.name=Meteorite Ingot +item.ingot_meteorite_forged.name=Forged Meteorite Ingot item.ingot_mox_fuel.name=Ingot of MOX Fuel item.ingot_neptunium.name=Neptunium Ingot item.ingot_phosphorus.name=Bar of White Phosphorus @@ -1200,6 +1210,7 @@ item.ingot_pu240.name=Pu240 Ingot item.ingot_red_copper.name=Minecraft Grade Copper item.ingot_reiium.name=Reiium Ingot item.ingot_saturnite.name=Saturnite Ingot +item.ingot_schrabidate.name=Ferric Schrabidate Ingot item.ingot_schrabidium.name=Schrabidium Ingot item.ingot_schrabidium_fuel.name=Ingot of Schrabidium Fuel item.ingot_schraranium.name=Schraranium Ingot @@ -1271,6 +1282,16 @@ item.memory.name=item.null.name item.mese_gavel.name=Mese Gavel item.mese_pickaxe.name=Mese Pickaxe item.meteor_remote.name=Meteorite Remote +item.meteorite_sword.name=Meteorite Sword +item.meteorite_sword_seared.name=Meteorite Sword (Seared) +item.meteorite_sword_reforged.name=Meteorite Sword (Reforged) +item.meteorite_sword_hardened.name=Meteorite Sword (Hardened) +item.meteorite_sword_alloyed.name=Meteorite Sword (Alloyed) +item.meteorite_sword_machined.name=Meteorite Sword (Machined) +item.meteorite_sword_treated.name=Meteorite Sword (Treated) +item.meteorite_sword_etched.name=Meteorite Sword (Etched) +item.meteorite_sword.name=Meteorite Sword +item.meteorite_sword.name=Meteorite Sword item.mike_cooling_unit.name=Deuterium Cooling Unit item.mike_core.name=Uranium Coated Deuterium Tank item.mike_deut.name=Deuterium Tank @@ -1642,6 +1663,7 @@ item.powder_power.name=Energy Powder item.powder_quartz.name=Quartz Powder item.powder_red_copper.name=Red Copper Powder item.powder_reiium.name=Reiium Powder +item.powder_schrabidate.name=Ferric Schrabidate Powder item.powder_schrabidium.name=Schrabidium Powder item.powder_semtex_mix.name=Semtex Blend item.powder_spark_mix.name=Spark Blend @@ -2111,6 +2133,7 @@ tile.block_combine_steel.name=Block of CMB Steel tile.block_copper.name=Block of Copper tile.block_daffergon.name=Block of Daffergon tile.block_desh.name=Reinforced Block of Desh +tile.block_dineutronium.name=Block of Dineutronium tile.block_dura_steel.name=Reinforced Block of High-Speed Steel tile.block_electrical_scrap.name=Block of Electrical Scrap tile.block_euphemium.name=Block of Euphemium @@ -2138,9 +2161,11 @@ tile.block_pu240.name=Block of Pu240 tile.block_red_copper.name=Block of Red Copper tile.block_red_phosphorus.name=Block of Red Phosphorus tile.block_reiium.name=Block of Reiium +tile.block_schrabidate.name=Block of Ferric Schrabidate tile.block_schrabidium.name=Block of Schrabidium tile.block_schrabidium_cluster.name=Schrabidium Cluster tile.block_schrabidium_fuel.name=Block of Schrabidium Fuel +tile.block_schraranium.name=Block of Schraranium tile.block_scrap.name=Block of Scrap tile.block_solinium.name=Block of Solinium tile.block_starmetal.name=§9Block of Starmetal§r @@ -2315,6 +2340,7 @@ tile.machine_converter_he_rf.name=HE to RF Converter tile.machine_converter_rf_he.name=RF to HE Converter tile.machine_crystallizer.name=Ore Acidizer tile.machine_cyclotron.name=Cyclotron +tile.machine_detector.name=Power Detector tile.machine_deuterium.name=Deuterium Extractor tile.machine_diesel.name=Diesel Generator tile.machine_difurnace_off.name=Blast Furnace diff --git a/src/main/java/assets/hbm/textures/blocks/block_dineutronium.png b/src/main/java/assets/hbm/textures/blocks/block_dineutronium.png new file mode 100644 index 0000000000000000000000000000000000000000..2c8c30f307175affc734458b30893642318ef808 GIT binary patch literal 479 zcmV<50U-W~P))`J2~A{`{&J@H*a>YUd%rnMFeXtkHwomF9G;$azunr zuL1xf0>D^ASS%J)RrMsnJCpO*d)~kP2Y~mUueZ01t+iBD#d5i1Hk$!pj8THSZ@;nD z@|^_0k48?IX3wYtPN!1_k#j`H3J3n z`FxNVLLh`G#u#l;WTSUv`ANZf&zsE#5kW-Mu*V+UNJLa3z-qPPJVb;TBQZwmx+bM` zdI#28t?Hc95q4&&VP}LF3fAj2#u!2f+Vgp&lrGK(Cf0S$WHK2f?Cy7P54$XH53f%X zBg+{dA07boAM_0csGhY`xG^ok&2?`I&7Lc=w?~@&P-|DM*;CQ}#xFbv;3Gc=(El7? V)0quNFM$96002ovPDHLkV1kLV%dP+b literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/blocks/block_schrabidate.png b/src/main/java/assets/hbm/textures/blocks/block_schrabidate.png new file mode 100644 index 0000000000000000000000000000000000000000..86be60412c16b80ad277ad6e195940b60e7476bc GIT binary patch literal 406 zcmV;H0crk;P)n2HxOOHc2!UOjG}t}-xOUE!~j_sPHjfKmp=-Sz>#ZTl4+1LC4;jRr3-|-;2DU3|#P&q|rEu42e8S zQYJi?pvC1T8ECd3XH({lnt}~xj;llk(M2~YsOGpofw~^l^#-IM`6*;zqnHLiusjMP zk#X4_Ad#kf;Ofe@(y_M))8%2?KKEp*8H3C24KDamo1Ymrc|x<{8xt?PgGKbyK=P?F z-^$PNj^_#FF@6`T)+I7lo3Onubx!{U|5^ipFAqP`0-ZGf&j0`b07*qoM6N<$f+=&f A-2eap literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/blocks/block_schraranium.png b/src/main/java/assets/hbm/textures/blocks/block_schraranium.png new file mode 100644 index 0000000000000000000000000000000000000000..ccd1b3cf52804342d17dda281197adbcd06f801b GIT binary patch literal 689 zcmV;i0#5yjP))YOJSc+17Qu_+ zr8P%EJctx}6c1k1{sYoO4}~SR5NpviZIi4`((E>ounl-uu4qF>Gxb zp04YjVHn=lrr{Ze@!!3!>!JPo*Sa^Q>$;bI@|dMkiGK~P*8$)lnPRa0nK>m*_f{U$ zH2Hex9uZL#St^zIw6VceRRutjWdQQ_IUlQ4I$EBKcAM1kF+FX8!}<}DEaSQ^k;)2u z0HRVHfQxpUi*}pkTo!^14q|%A|3cEw1-_Ea$S+ z_x3_;0Ah*)KKU^X;Lf}aV!hRvRI5q5fcdx<4M*Zx)TW#APX{by%ph3XctfsG2uX07Eu#HCLm`5_+XxCi zc;q68q8L=Q_V>vZ3T)RKNSQQ4$7bl*Wc%Gv!qLgeq!Z8X4=_!Wqn#aMibBt76H^qN zW-A0bNv0TeyCHC86(Z#|Sa{(FTD!YMr##LsO&tSHe+?K+ivch)KM%mlbAiZcGy(|z z!8N>OBTe?r4ws~Xm$h=601#88SIcE2%;Ffas2b$@7{A6Vw^~zp7p%%(R0pu z)#b~-#t;N8Lh1t*@uVRjnIi^{h!B)hhvy6Ms z|K{3(eWX7g;r^vdXz#HhkR%DY)@(RO`{he2y>%9r>s&v5g7pxv#Rx^018}GLiu)%{ z@yC-VyzloZr75LSiOH!cW-1kiYis=e<_!RQTuwnE)`(E_evDaAif)YD-tmrpACd@a z01uD?)TTXuYKy4bvim$kt?QEzUXe z97F_wZGhwY+_S@B#tyy3po&Fop@4Hxt95Y>lmcZfPN}iZjR(TQ$+NTLu=5O)sv7cCJ zcevC1x*0ZeveNEw>X(ZgJ2OXS3^tFj)M!v|G}wFS5I1LMnHUVQy$$T>Xg-23m-*Ki z_D)W)w7N>QUMDDpnwvWloy))n3L#JqVKZS-M(++7WAI9oX+_T%GGhn|K=BC}+(gaI S&v^g<0000nffj}2U=*9|yi*CA*6gQy( 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 D`$ss0 literal 15634 zcmeHuWmuF^7wym?CDJ7*2t%VZ45fs03rLC}A<_&zbeDpFfOMzQjKB<1BHblJN+TdO z^nLOB^!s)H-JjPV4$ts-JnuPsuf5jV`;F98S0pB+BLsm!#7~u;XoEl)z>gRpd|cqe z*rnJS_`r6Rd#Z~M{PD$q836(@gPuN-)%DESZZU~x?QuUjiH?ZrE8i~lpWXQQsxiZa z80VKVmu&Xrr?y*kxv%Gj{PFRxFk3$(g86()xL^cxG$S8Dvi$fF6!@~(YGj8mWTWhN zNTA?fPU8}@kWoIpkMBS1uSS3SR>@TPGM%errDzFH5Dtf{>*?!d-eFhIKo@y(g$#k7 zbq(35*%R^E_jfz=Hrwt6uxew?d7gXM$=UZqr7p-=u(j<&$kySwEKcnKx`ZHmB6z6` zKKv(nfv#^%ovw&T@pOzi4-0mXYhyhQ3&*M}Ttf;2OfZnM=Bi1^!d6f-dhj) zoz2W4bF2AQh_(fn{J2EML298Kw}cx#$MrGntB*7Uk@T+6R#aSk$=>XoP8!`tYQUSa zY+tnwM-xxD_wy5744R$ZaQd@C^9|E?Y$|?O*D3iK-ZT(jxu_I zk+5Y*twS>;Yx#QrZc%W;`T1~GZJe;X+NlJheN7gB|N0^u7WSgfNUML%bN6k)M4HB# zR4aA%uFt9-&JS?}?(v#yj4OVDrhFg+<0DW=0L?X(Tz0dfQsg7t0ty!F{3InXI6jWQ zm#vK^WMWufSq>k)|CmyaxmICk$Kn}R$i&omlpOx1IFpV`?IHA@*xKs#=hSoRi~|rsn4SEjXG{xrd*~*wpm*O3$7A zr0w0^N9p~Z=slLQaY9QXlSu(0EIpn3Znw=O79nUSdi*i8bk6OG9N$1)au&94bcXWX z8Wu{PNN0L{h44f2d@YV$GC6XJKGyZpm+foFU}!_2Ow6$yX5kY&4Vlh!Vv3`k#j^dq zk4?nbJ*LWgkR%xlC1RhS3~He>5k~v;`#Q`+9p8AhXozIRl-W2mi}UXP7}p~LdEfty zbkNk~yy{zX@?*>!vg<_PMNPj}*kaJr8x~j0qfpax9zHqri%)u2RxfWKdy?s;XAxmm zf5K#NWo!s2z4GT7*lZZ&_Px6e%6YfN;@_~$sJaWti(KO-D zq=|}4ze@kZBG}oGOlN<8bu9|t{b;k5iwj@xmVQ<9CgW;jUV*N?&9bWB!-{u@>vtSh z%^AOePPaI`b!kI}C-H2H1TvYV& zWmt3szfGH6;Gdyx?TVc3#=+VEcXhnQax#E?KU&J|1r2QQcGdW)66@qe_`mv`Eb|g0ujut>A5S=iPJK>k*ylxHfW$pG|EvFu1hFFv;dLYT3^==BE#O@pHS%L>)kj$TaG6f=IiW*bd~MPJ{l3HK0^v#ZL>*BD=uzEN)%;Hrw@ z+}c9Y8^nX{sWl$-B-zuxQ%Iz*ivIxsLJCUqGP))X_%v~A%Cy*Bx3)tCRbeLq)wPc?hqEYjB zESf$(-*O``?qhH3xk*JJMAjBJpmdQs;+YD+1dSX=O~u#Wvu+1^knduD4b09yB!9)A zk87=b&*w3_P|KJO^HmkfJ9>0fC%Kmm<+F``!OqT}k&&?nAOP^q{OJIczl%S;zj!N+ z4|dwy{QEmsBQ$T+XKl%G7eii)Dnfv)gHIsfV80s<*1_*u3}UAdu?8_2DyfLX_{>4`lr$u%uNFR+o zCR$7nnnG^o5Hg)_&UDPRaX2m2PhyTRwsk7OkMFH&oqv8Ym@_k>5#&kd)ZdYU%D;FM? zblCwewUl(tQGvn&EtE2iGP^`wqzjTRBQ1IDWpHf z56G{jJj4y2=JpRW3Fq!LC>y4`ULvT)iF#w1pV@C+ewJBiTO47VI6=3@u;u*g9m;o& z;b=X(a4RA20B#Y%9uawp2Jmnk~3hPHAGe}KihMsy?| zLsp0wl*_Snt;an(Ht2t(=Ai#`6yJnmf2~vNtTT5GQ3o-}fWp-^du6I9OX=|kZXa_J zE)y`}@@V=?HhmGIQk=(*i;oAAWoc7M zRbgVm#_nj6a^AR)PJJKkp~lG$Hz+!xsNOK zhi^wO)i)Qqr$J{(cpUC7iLoh*` zWlVdlicgTJ&>s0p z-YG~CZV6|tucbq3UjzsOuaYQ zG9f;~1!rVfZTv)TCeXF3pDvN9o#pCc@l1V;?9d68%N;k~ar}I3XIf3_2<;qA4y>H` zJRcVqOT7GNp1Wjmwn-^QECq7TgWK_XK3H??EEmWqzJ=rzjsA0xfc!q~b+=MF#8SE@*#&`fX2B0|O2 z5^kV7E(rIr|J+V?%YPZ(dcq`7`Ro?U-tspR=SV)PbOsbnkn86#C)Y<-7;R!>C{y3q z&!o%+i?-NT<%JpT?Xz!1AX0Ov!j=>!ok?squ*4m%nQx5`hv*MwX*F2y;0L#lv!Q6H zQtT_Quih;?Q<~G@meyK)|wox;)jQFt9J`Ti6&a8a=tykwb`bJ+qXu} zg5;RrN6CwsWFOM3+@gdfb;R%LfJVUOP;_1ULRVCaA|<)N@xx+xoO__Nmu8Hi3n+<; zAg8@Tl1XD-R*$@bvN|bANf*LPyeZ%V-wBjU72V?RUEj8FJJybmm6Oq#pTNxz@qVpM zMs_aXRQraQ1UFlou7FUGjf1Q-w=g$9TV_sN{KsXBp@?C{l0{tndo|bDkF{2W1cwt3 z%Q&00X)K3~G;j)9cP-bL%rhQ?LzzbDD}?0ra=O^WnRy2dqdB9VcSCsx_(CH>rCBtM zx_=^ak;W!0-N;3FoH@^-Umsaa+mYV|vdasxD{ee{uguPcvyo9R@xXn~p=~EoLu$F- zv9GtmYF99gVZr8PQCnrM2W!mZE2AJd|u2;E9< z7sScSHVyNvV>N#M>WC!4@^Ekx9@x^6)l8w&0tewr=x=CS@W&j}d@9T{qm6M#e`dzl zOis(?WG|xT6nEkuRwq~V-_17Z+CW<4*%vI^NaGOWl;TdZ6@_C&7vwQch)Q<^6~8+~ zW|ne@WSGXP1SboOBj8bHzMGhbQk4fj@#UPp;;?S31KX>Vpgk%u$a(K=JAjaP_9z=o;EG4n?*4MOPP@ig>%hQ3p|{N0)eR1OuU=VS=Ri@*aqrPaZ{Tg4)57;x z^vDg1*K@2e+`Sq;{hV957?BYXhs}2dyu^E4b64ZHW?)rY>?)`Fr*3cAiw%Xf-Px;S zUxpnkoZL9dOM{m9>lFH9k-P(_NW<3YPm6NC62cCqMheQ2Aj%<2!_m>$fq9QDv<6o6 zgPFnNsk}ml_U{2%m;u1io!G@bBNUr}=O^jtGrxMokL$?eQb$(aCD^` z;*wuuFzU4XRF|B~v4lsJx~h{_#v zZZ#|E*&lVuSeH5GKWu2Z>=OT~@b(jjdj_WN&)VZ;hIuHN_j(HOi}o;S%Fx_m3V2)| z;@LiUWgY$N!Hk(R~HKb6(Xh7&Kd7+|p9Qp)J_2dwJp)?=XvQMlGL9Sz}Lhy;!(K z&mx@uM%zj%wkuulv|sGJerN6g7CRnj=Y8J!m!Yzn7*dz)Ut~lcfDn z9>(O`YCon%CCcLm?nZFk3QfYM9ld6@{4QOGpS~WE15G?2%{x#$kE)I^)H2+hvMzVr z(cy#d;Cbu3_(Fpn0oB=kue-cl)L!Md<0mo$H8&ZYIl^{y<`up#bVS5*i}jscrypke zTmT~$ZZ~pjKq70tzC{FJ8U+bm3(v|@2}G%jaN0puv^8_Ffo{(!xGZ0YOM7hCF44i# zw(JY|2lmT%no{P#Am65WUS~@hH=5sYYgMb zoK5lL>-bm&RO%O@kkWgi-9LZ6azsv-54Afe`}_N!v^vb1T^xp`P!rY^lNE^&nIO-T z%Y-#W*z|FW>1>`A(_P3CznVN$ei8pl5_WYlV9&mmqOBd*TV_i)RA^$?ac|-1$X)fM zTZ@#1!%aXOCNMD9J4KXK{b;RQ(kI&tI@M;rv!kT1MpCxK+h&+?jwd#7bV&m;vT+m- zYf~-51sxffy?dX}E#$4QK9I#Qls+|xFgz4&aKcITOj!H0Bo zX4f^B$-TF_$~whSY1XfCqcD0F*ZGZIAB&VHoL{quUlu+p@`r)nE;n(Naav>Bc3T-S zPCb-Y)+?{$PD=B*pj}Y1H%cW8Tys#Ft(ROH)m5B(o~|9t zz7_kdc7FB4B8xPFcj0B5Ic{Gy@(afEwmsQ!-|V3sVyirxI&*%K&7kk|9xH6&yYM$g zJx_c6Z96p1amm$2V^qBDHm^1Gu4%sMSWvHbd(}CI_#Or|mNxBrm=|?qZ5auth0tPy+hpn9qvn8>(AX7VImg zf4hs@VwOS~Oovp8#5f~{fW$U2@(Z)**3)piE0|LpJ!cs`V8BhP9a0OBRSN1EHgg#YIeD;i(W97MLON5t22sPA3KN)a) zZdEjRp3FfFc~fjEfWM&CAbTF|9+)X9$ow_g88-y9kTr&t8uc~L(Kne1v^ThgA;a+b z^!3g6<5)_^ywiwmJhJ%fnj_H2DADIdbQ}|Mp>J+-%J_Qs9Q`P(d)`uje*;6cxzW$_ z)=NkL&+K5U!LoPz*_G7K4I#kU^^9i1ZnulDpA09gGk8#IkLu z-bWnWvG?CAm=KFr;CEX|4r>89mjMubnNLr@W0%(%8yf>oh3Db=?fARWgQj*Wnml9}qtKXKkj&lLt1HY(IfPpvxWQ3?x_l6> z(Jv#fwO7FB7kPQ<$0X^AY(QK(p!`neHehO_FCn06CYcGWsoWMR&VBd5&YCqG-WnU`cEZzdp+z~e|8DFS*HRo``FD`b_4Gv z8@|txK`if3FO`p`rPUAmD#&{MV<=;NEMxPz|%*pQ0?)gyG|MmC`ux& z`@~m^cdr8H(XsOjU*<1)0T=Gb`{U7n&!F(qMd~qgNwdtiMnvv|x&*>}as#mK`zNW$ z+}L!hTX?2VZ;r3CvlE@>arSh68t|8mjrZ1IS8Lo-o_@`62T=x3b%Nve72!n`IVngmUYOIv{HJGS~;7i zflp|nnbwkQ5!ccMcnJ@KiZrscL5t3@%1P)sxjHgRxx__n;3=A;ndpt+fJ1GcHCv~<=XsP*^zDyLl(1kim2 ze=fF~30c4M@lC=eu5&hlNStFbzc|ATH5uZZuEFK>D}MQ zvyQIL&dy&*83Fe5^YUaK?~Mp%%lWS_6!HQk_^)nu3Id|WVH2aA#F}GmsG`7>PR=pa zHuPn<)2^wU1$xIH*Uz4nIo`tNmzHdYXF|hXh35_`r;ZP_rlHix41OC+c$59 zRABu9V*oV(H#-(IHfdq?4mCF!_9r5w1$cy_%yILh&%56z?Q^yTx7U-z=MN9r_rtZ5 zTH<>>P(Ox2N)4kIHM1EhWM8mELgoJc@6RW&if00|DNMO0jI`Vs+dP|-om-9UiQdTs z?)m?~;dm=G6!Xx$r(|>oaJjb9MCN@HyW{U_s7aSdXK#sruVy%L{+Er`^WfMLWz0;- zvXe5)cjtnYE{jUsG1*|wGsbwVhV9)){ru$ zQJn9gNQpaDtlK}`Lhst|uwFv428WGmOsmAi#4J7=?EUWLJ80SUi$|QMBQR2pg8rWO z^V(84aP1F_?RU{PBAWgod9Nu(;fF=v9~dRI3Q(+y(oZBor06!5W<^m0iEz!h zuZCeY{v%ih+*IY0_5e1@Yke}UD&qMnuQgQ9gYp>|9K`UvKnwgQ8VpIz(~tYdk(v_u zWB5PG269rc6ninY*nXEj{zirs65X=#{#^vGIbWE>KvwOwun4GtF=+l`Rpb=C9Pjn> z{WJ7%ynjb$r@ZmQzQ2WL&>w9TE}E?SCf0_+MfY6KlW^B5__5TFJSV1koJ~lqna7kc zGhP3ScOFpF$%l@YeKk?#Pa;mlthH{3Xqhlg&Q_`Fone{)B8$5Fi7mzM8Xi^VxS z&Cbc7V9!X0TXMCF%s1lMtyTf&Bv;IV{*S$WDOO@QA!?8SR=OGYISK~r8roN{UPTyA zVEs+#DG{^RpEMl#pJDJ2|87K<)?QV93NWCZQMsk8$xCtkfZ0Cq^&9#C;UmCVTD-bE zFQ44%IUViF9=8iU@qb6u`}Y}#QI{@Hy{Z+@d)e$6Q{CCBb+KumYrPK?vdkXR!p43D z-o!j;&Y}nicuM9bm8Ef#m674(?A!)es6Z72ME@U%;n%vUd4(-wI8@!+bzxV&YJOIG z>}eDMB3{&Hu^Or zpmGbyh5ur7^$Dk@P@1fGZ8<(ZE)RaS0=J_%CBAFyHsiQ#q}lN|KJJ8%vNYi>wHND( z()UV0Emvn-40rDyjAmUWO}`edAOZXzY4y3yw1Wdz{W8jvUvvK+d$iRJ!%rytm!6vu zKUxONmfuCUMrNudNT@|1r}IJr>*HgFLC@>(U5)YUe7ps-RI_BOp3x$Wq9yZDK~--M z;>he@6|i!Iq}F7f6+dB0j!^!rPe~YV%i0+jRR6evWQ}O?6Naspd*pM}@j(%IX0_mJ zqQQD0hYi8Z7#|44&~h^i;Bqy_ko31^=C%xxHw~q>gpE`fmXhD+(GJ$cyk$e3(9I^g z&egWv)NVSL?e45dnr)kA8!K%>!0|Rj2Dsznlas$$im1FqgfIoTzFW$EBB3&$bf_1r zNw?wng760^g{QblZe7t~<`8{8FHI}I;IC4?^W#->s%My$ zMoE!`vIU<#!C;K&dt|A!8k!3QPt4{P(#S~@nPgm!FE1~j5*KfY`vc8jRR|`^hnJ5} z3@GR9(x(IfOZyL_EQO$My9G+yth)yy1s;*u0+#gNvg(L1+ooMCa8s)7Qw-ngn z!IdA40TTqu)CKMNuEo6KBdb3V%_oU6N=C;jj4(&UrSQRNMorD57=h9Hg};zSwG$d% zErJc9pUlb8Nt5$Q#T!U}OtnL-FLLOfjU-D#)+guQuyIL$MfXdMO$ib-0`M@If+RQY4Ag7+b}oZ2OQPS$kzme5D}1eFw#9TzFYro)#&yl$prU z83O1u>MW8r-k}-M3;tKn>#0!|T*TU+UsK^TGy@lA`9`K6cC2O%7G`pWs^fi#6 zuaEd0txHoFykjf%Z9g1TfQ22;1X9KlKJp z%#`B+s0iF1vVQxPo@TjsOw2Cj#`1u)c`>Ey9e(%QK8x;=1~^lrO0Nh`UQuLG-JqD9 zJ!Avp#mZ#SW9j!sWF967k$g~8ygXnvw*AZ8J{cnO>0R)&8na|&*}H|QEDCx4O@2vh~T zG4rz9edP`0H>zsKMYJ3lG-oi4Cyzd| zwF43eUim*zl^Ub0#maqTBetw?D_@{5DH}?X*R~$C^s>tw^F0^GOtPl_)H0g!byR?x zi3m<`5`pKgVTFEq*D%Kh#@O;|Svj85xyheo-@BfWd#^|mrq0i8s^il-6Us*9}}+6GY7peKKyEBd(2^DLNF&Niy@ zu@8=s=GAt_(o5Xnw(%%;9j&y$uSBVxF}aK!&6dEdz}D85gib&$B^s#Na6S{ZKcAY# zb;5szqM8qkGS#{N45dBo#JpemHAxdo@h0*v*)9POD}8~pk5Y#=RFb9VYOnif*d>@OG& z@YG`!T6*hDQhXfkG6`xth?LZ7TQFYp*=8B&rqc$fnN4^h2Vth9*VlO1h2?*MT4@67 z(`+57gQEL2XpXleCVw(YPWIF{^!c{dA>*ct%#!S_ADIdpbdKEL@l0Wt?owy#_ea=} zOw#^+8n82+sC$HAmHJ#U0y>Q500&%X!)iSnuX5Q%wfs$VfV=z}6cc@ZuToq$Z>X+I zEFROFh%R0Lt9n?8%^B&f^{L^|Jk{e=Hsf4G&9w+3dU+#kH8Ld^!=*1+{)c0i{`lM! zdhXaF^fU~HUJO^Ay#0?u4z@N6(C`dJh|0~|Cy0w1(0Hp>2)GkyYe}00x`upTeCzp& zBPs~E-3>WrwNcf{OBHWW7tM{lboKQ7_VXv3yq4;`?f)Xi`n6uc?cze_S_ngTz&fZ% z=<&E_8j}V0s%P9LBg!)@vBj3s+;w(0kzK>TAp7Xz^uSipd<4t$c>7;Er5{_FEZybY zqz@LsG{Xye=Va;RLsx~Jnn|xWa1bXxh;Co0L2r=zf3avs-egHlh8P#|Y}x8|G^!xI?L_5Z$+0VngYtjaB*-vcZQcoHAA=4U*?`_BDEI%itw7`9R<^5Ed$Z^+f}SQgCQF?w8bYsEBDB9-MV zaL+BYoHBG{zZ+-AmkQcS8*fX8y+;k(r$%~y^%`96j{od&Ka?+O1E&4GL;+9gXKXxGGZZiLCn_jy8 z)YtzNCG!r6>ep=0$?p8CCgXoZ#Fp=UeuWC56~2Q;@$nx1N-k>>7WXae*5Ld2;sRIoY^gvvZpGa#{7>E57pYP_d@m`_QOK6j6>{#L!&nrmrRo3*xXebd;- zPZtp^X1*fc$5i?OR8;S+LaCkQGmRlXs6U+59_%QyCs1$;=694EH>MN?}l zfIon+0QxR~GQJZ~1-sn3_-S_a(@lQS=3lBuK|Z!m27b6hf$EM9VjAQa^qFwbnC@GD zA2Az9EwtHnn+m6H#FO>B%uiiiy^wq12IK&R=(+24zSB@NG0(1%>E!MG-R%0vOk*?{ z&GIK7ZrFnL^>)!D!}S^-4G$RR6>N)j)tZm>QqSTTyVVwX=vm=ZoreyM-1%xYwd}qx z4h(-SqJ0@PvZQ`~grYDS?^BV-v#H}SLA*OATaW8JRsXO-ps?;t&tLR?y6z-_8Q)HN z$&Y*DworJ70hRUn;>)elNme~*yDHa(MdV3f&V*;lDImB-DM5i7E{hv>GJKmD8Ch8e z=zYtp&8jQHf2TU`?~jndI!@tf30c4v9c*U&ByCnRsY`V28C;C@yA{bN5kxfBm7DC0 zP|(Jr3kw{#6B7H9^lo|CvUZ{wkTauJ?EuWn{bA!b8msXlDB2{gbT# zO`J=&cx^xhM8yo*9w%_m7T_R`vkGrWnsO?9K=z!YFkMpz#4!+LOqx zLyV+J{F@bpkevWA8=9BdX(`2GPD0H21^)bbnizU2PjnWuPSDGQUb;G-pN!PLw?3sR zue3+`>_UV^9EJW6xuV&~al7~bTj^tWaprX9ld@FX@BvL;!Y4c&bWdSZWXV{iH4*y! zf>EvDeK_EvEkl!e(OSuDRV~LeAFl!cD@$Dkwlg(M@Q>fv!4R_JI4IGi18kh%(LNkM z@!?3Xp#f&Kc*q-ryW3hvCa)cL@R+20zj?O+j;^g6UsOVo>*gJW9rMcFO})uSex+G@n>eSbszu1pBkx*ck|&`OWqLX^S~12 zT4##hWQ$>QT1FJIdQ?X;b3dq&rRpoPRNB9-@{B#{A-)GIQ%ZSz*7~VJ>Sl zBXqD4Y>wXFaZI3&e!dAKps9?mLj0cnx6(9}(7G$E?Oj0XJS$*Z4_cBkz zciD1xWT^~HoCLEhD_Tao(w@kWTNysQF@-c@We-jzk4gUB$}6*F0?&>Gz!iTMv=t0F zo=slBRwszj$6hvMc7C7xYYD1fcUdJ0n^{d)`XDodkt$3A0i5_k+rNnQA9;$@wkJu3 zltQPpwJ>J_$LVJAHwW^ZmDruTa+|}AmM!zn03J7`dZ4pEVWa|KQX-^5oi`@(|Gh?t z&rly+6v`_R-sze@SzZUCz!=O7%-wQ=e^rj`Xmde|L|vX%Fd?l;6-_4HOcZB`Qx8EX z*tMTFIY4J*4y&)AR@s*v_GeX%}W=6wn*5khKqG!o(%BrGVv>aSNRR zp0^f-q%S%_8XYVROzHksgdHkgOlMuv0_2J4i3c$NQ1coMu3^0px#3+t& z9)GhBouq5f+~zr-`Z8+sx8K}VPCUJS1iR>lF@Q2$0ml}=G-Ysx z>!{^Tg31S;Fj*4m>0vne`l@PCj9!b}P4|bIh+GcdjA-Bio_h1i=mC|y?EFaxnWi!Z zb4Y4jr&xHBi?^iAe%1N@%ZJytd4T9poUI1|EsF7RN6p$Jva|J~ zYnsX|Kj&__vf*j4cHX!$SZscLJ}725Hc~)%ZFLv zm0N|gzyjlT@}q*fdVo1fNVauEXHNIwOJ!cA{U-eC{hDeZbL<(I?6ox(Sq&Bob{9>4 zQV5yTz->8DYKGq5l?bSIscN zKa(b^Chbd0b2$hrD=UYL?ib`&ZuN+5!B1{b2 zgq!d#nnw^*{C%#5P_p6S?hQG*(@{5O03udhot&Kb3#Rn+)Z$Qr#74l#6Vwi~i)Qse z%-v+U1@VYjiB`sC&n>GixxKyJc10szqb@+OLMeWp;j*GmhhOO^DCzbJ5pdfXO5lz2 zOu%W?L+hLY?Tn3ce-}+lB4u#xgbX+HgCg8QEr=Lw(mgQ|_Pd82@q4Cc`n@((;ac~l z@9_Sj@O^;n-vHNO&ud^r#lGUh;F_S?qY9$eyt}e)-%3mQyHxLc6Jk#o>6eXD5WSnT z)*o`86Fkwl@1?x4D114udZhCp!N2*0qu>VZq)1EP2r=UI^Gx7I>5!}MOhyHvt2;e! zMV{SRJvh}p(s+$hkDn(ZbNbSkqHxiFbX9xrEmKM%CzSf$qYr)8?0|;~w0MCRi$q0J zOE1($e;DEbKO$+`YhDck>TX*1*3`?(f{Jr6M9+&G$%2sGK!uZmCswG^pAPk^g_x8U8KK!=>tpJFY9)1rUIvTi>q^IN4m6d>i}v@9+Q7WLyo#{+#rz4eZIywRWlBm4(8HAI z^-fm_vdwg?_-Oj721l$46Ud!JK^&#L@(FLFY88{fbQ2iaGeY1H1-ev8G8N7T(@65q z%`Sl6QWG4WmLXn&3xaZ9**@jxAuYUT{sw2@r4&1mcl8dyByPQfZCY5NEl~G>SDt`r zvuEbtabpA!+KnnDr>hEC{ce7)D-9Da{{FzMSC%)yyS$u1V8^?;y0 zNKiOU!T}kZn0z+o-F3s&*OS-N%W4u5vBFRHyX5$c3ob$LG7@pIJzY~G2lT+5*+b2M zkqP0$*KgKv3T?ZA$k;=<0u9{Oi=TX>ClH{U0W{h}UJYid1wOIw2X1q$44Aq2&&l_c zB-U^h(1cl}rI5Ds#~vDONl5Gq&q4zw=6sPWXk^k%QK`Ro+?bar5f;$52d1rW5_@7L z#ne0UnWR~1MpNws&=hg?@aXbxS$!paK3yA$Y^{9ji@f&tqkXD(Q2q$3lp% z%@dJ;Kh-+)o}QjkXllRRd;iQd$CeIw!31d6+z&wlK(DO~U?pIj392Px$viml;^=ir zYj70z)}qk4KV+@O?C{;o8N&1iM^fZDRL4o_{kbk0t8h)-?+UC5ysiT5shxjsqbO^s zWvy<~ba`(t0nok?(0RWUGP&1gR}ELlhaaw!rrf>@&TEMKfz@Ent^>7q9Q(+$HDtUq zbstZaV-U6TJ1k6794kSv)JFNU2EBkW*qfK%fGsYcouz3=UnT*!bCXflHPiV|0enq} z4*1ZAz)rXI*~Ie|~#ZWBigraKv)4M&vNRTkbW5%Yd`5ujG!9O&Ttk z4Unkv_-)hEw7?(*;Iji99$>4$6Hh1oz%6{!-2c_o<#*C|M-R{gMgRR)>J$PI$D(c( zupu|qk1x=84XM+RwZW`|#qhi8?g3j{zzduJryPV`!5W}f@b8$i6w;JrIL58cIge4o+;fY?~vxGrg5~e-i_){nfg`Lra2`b;kvrrCoM=vTx-NL{GeRF zj1$B`F^{CVGwQLPUqt%x4Mwsu8-JJ6m${CIqz_lWeftF=WKJUf<{em0D;kH@MWc{+ z`?sVb8TOteX`$`CI7{QIXOdYOz=C~it}hLN7sv=ePA1QAK%q6wcY{nn>w7i z%Mlr_hv$CAywupTpmzQ-6JR6HS3aD(!Rf;SS)WR&O8<6%Oy46~P#aGfhn@bCiu6Cs z3?f)F-e$FFn6(j3|9Wj!qN`apKD6Psa4wb0fw|{`HB(=K86dY$tcyv}F9zzsQ^5#O z-^t3lE6}U)hTwa4-NZXRzI0mG1X>vyR84wHGDYO#145IZXdm0uhiF6) z$C4V~6BfAd86&8s zRW-Tj#T3__=fs{l_$sN_>ZKuWZ#6#+5wO8`tgDToMDFN>|y2bD; zi9o0f-w?^9;D`9+cL+|IWV9}e<}GMmAm)QzD=#Y3$dy8@cBJxtoO^Ts|AIDolaSTDI z4ggB2B1NbU0Mm45iiDtT+iFE2L{1RooU0}<#w7bD1TnVOx=ler@$jB66g~e*2vPk& z-|n2(2M=H~*%c{zmH+@Qeb4b?EywS9&b<5zaT|-Zyh@6_*(85$VYfaS2tN<2z#UHj O000005AW50{j7xG=H;6L_t(IjbmV-CRjEv@IN6n#?lNZYM7{M`~UB&{^N6nu{6W~ zo|3@-$gZG{3t+bY|Gw(~|NpPBx&mfVI{X&GVG(yOpqE5;D8z1NTj0cF-&DvZ_?~Iz{dLzlA+i@du1i> zRo{$^1b{lAlomcnueW zeq;Xn_CHaeyAP>*gx&8hp+~A6V{=p4Z^$uhAxe{sQjEeiJcP~C%!T@cRMo$LL+uiE;1a`ktkRmOn?&S4w5I|y#!}V%g2zrRu=pEKvCQ}^0t&Btlp%>s!$#a@2hFYjm|Wjl zfrOL=7!1N532g#I=cRFd>~@d^T0j4Ys!J~*sof;cS&F-17&lG;GD>fy z#P|#X3hZrWOijD!9jYfPE{QqUt)sE!Z4g2qgvE54ipKAvHt3nR^dYhg-y~&m3HfKX zVH$Yd$F`vGK2*$NWMlx9Dw@2ad-%-!3mjPdw%vB@Q$A_hjv`7;){UE3mhmhJ^XHRY zbq5WOzf2fgcU3hX*WZgOdKSjKRTLLIg*GmpHS6A_XJ0KA$rR8xsJu=6;zP(2ASMj~ zB}j1o^nP0HhX62NIPA3%3?hr?K8=VHM~j8`4z8w8I_o`e`uxfT(gsn6ME{3}`>eFL zA3<)HFgwfn&aD^GD&v`*xZGy~h$$-a6Su(#d{+5OidQ{}E+d)j=rZc;Z~AR}WXMjx ztr=`G{WUL9oc?39ibQnUR7O>|fQ$^<>9w3ewn%igo}k@P$)@7ND3f(8Fn*u%)<^yN z1)aC)AwXs)z}9;aH$$L+n>Oua`Ss7CS7rIwXpM=aC~p86&Q|aC8AKq|dOfMBE4;ti zvCBL$N)x&wxn0P(0T2}$pL1yiD~T2Ja9*;}(C}x@+xLP>pdj}?gb8w>jEW+6?mcLP zIApt=a>~^^sW+?-oVS4upyLn~N;KLyw6XCNE`1EGkN|F( z?w%?iyZr2J2(p5f#t#{Cb<=qEZ3-7XN=kkSaW(U>$YbNnShIo0*NmEZZW&Yg>s)dj z9%CB}vQ5J3Y#=RaCDF4|uhe$;7`ssNHU&ak0RX-@@H_TbtmUHRAQCP_jgsse$|ze` zNsN$*?+zpM-NtyNEGyx`2fO+9osBG-{UZcKET+@cS^wa*QD^JPjM|7iEYZ~RH$bNI z>}T{z=MWQAYz4 zQ#molbV_c1hWz+#=rU3$OnQV``)i)$iI5Oi1OpSd7jPShHmGkJ-M>P@<#YVv;SYKL%x$26xQqhUt$Ulq*hQ2q_%-J$_l>ci z2q9KMyt)X0fq_fja`nFq+B+wmw;#Q@;erS-1tg zm_03hji$Y_l3j19sO$eDAQP9Hk5RYgnt@gzH{wIj^T$044fje=_^qxOMi|wC) z=K)wmHR)K>i`SDZE&&pnH(3g?7QG~Vvh)GJ;->{p`^T+AxufnAm!dSE#jSvSi z*azE?x?I$CyupgJm(gY>rg$aSuv!hmtsBMNVWatDUCoLk~muNB*xoT zV~EaS1Lx)t4Pc)CQrW=fPuaiq$}Ip@lffaiBBj(6Juab!7VJz`5^)doaR1i+g}an7j)iw zUJ5Z|zQYX3D>1j2%&gnV&e}ZYoU^@;Gnd~2z;t*Qvu`gYSHFemv^18dJ?CTF(^W%F zP2gk%%Wz9CN1LAH*8Dw0=cTcv?q?in`vK`W>rtaevbea=`vJqUb(BvZ?ITCXRNYQi z&K(@xv}Y@yoO*yZ zO9jI&E0WuV!`6ejsT@=5E}vJQQ=$39el9r=fhaJq*_}MJ=#+(+)PTt{^w{E_CYIh@#3Ptt#9|e$u`8y$P;LyOi;s z^P=FDb}d}-1b5$6?R_;I=1lEt;QxzYiaoU|(} z2(RU9GV-pOl2!#P?FtjZXa$(0ylbYURl!QT!i4Zy0VXT&nl4FNsM4-5A$%sl y(;`WminJ>X2$K?^5hgG1VhYl#X_9t@0sjS-5X#nNZ1Ug$0000W0AW6 literal 0 HcmV?d00001 diff --git a/src/main/java/assets/hbm/textures/models/tank_SUPERHOTSTEAM.png b/src/main/java/assets/hbm/textures/models/tank_SUPERHOTSTEAM.png index ac8fc195368963730918edf2eda539faec088dd3..c95495fd85a2eaec40f25ca0685b23f82678c0c6 100644 GIT binary patch delta 2321 zcmV+s3GVis6sr=DGk*x;Nkl-+ylEeCwtKhJlcAPiLlfzs5tdNAF<4A6AtpWFI>8);zts`(vKuW zz*$DJOh-WkbtY9tu!L6Hnj~j3gM;sGhyE>*eRxDA5qh8L#1kf`@ zx2yLY(c$Jt<`TfQT|ZM>x&4R^H+y);CVjawsw!3%xPArM?e&obw2lpE=6SXg07wn##dUL`C;Y}T0m)&&OW`i|aE;Y3t{FH%l$A1LzbaA}|z`#Cu@gktmL;p#HC;$Kk zV`gG3J80fpek1a@kx==ILzM5QE-1|okKgrERsY}i4?*>VF~gRhe|9zgYp(!Xg}^5E z%f5jUy?0RJN&!-Ich#QFYuBEbv2e1pAKAL1k`jk5%w6s~0HzJv9y1;W!kbF>ZaS1;z@_qapjx*;QZx(L+qHW7pEHZ_J z#=m+{N~X<7ELQPRNeQwEZ=VoP8`rAuQ2a(eM%?N}Yd7X?T0kUu@% z+jXYjQZ_LbiO76q;=79&jv+`aRjv@BSbx^kKX5_AR6QKy#mQfga&j5-U^@u_Fsg1W z&%X<&Cf{~^sG(+mN6`EKiWKhK6+idgqN`0Q|6#%OO|DKB)BeexEWZ73oSlswRS8@# z0RW)7sq*0SOx)PPP}!>sMB;d$jk=qCJ?D?qHy4yyU<3#Yr5ZDKj8Gnu#K4f81b@uX zI@9<-b?@DePc*l_{jmwu6RUhg5z&4DE2Af@V;D5H-yytp%1@VD1GqBw0^3&wXFUBb z_bJ$wcw8~<7l4l33Ahu$0Zg~mn|~@n9K8*6CxC;PDhZtN#M|Ru12~YWgm$L*04}-> zbY+|^xIMGV8GEF@5lfHE3x9i~w`Z~sVmNC3aBF#c-SIu0#xt)h&AfCPjP@5al8i<-5Ez9}AOfA*bf%{q<7)~lbk-*1H@ zynsDEknmy>;w3;3ZN01)^@ro18RT)(5=QVIYdkj`EHhCj6i z0ft}!UjhH4J3Jc%cNutrNm;s_9M-Znwjt5h^g$%)#Q~2;1`+|>KW)sukF!>qf98cE zAD)+SPk%SNA7`yH7YI=_OoOj{aqj)>Z02rq!e1&j<&4sq2|XDkcz;a{Kzw3PTGkbu zlY?qeSxGhiS^5iuX7#DB6c zP?9A>G@)m}_(X=R{r=+Q{dHiid8Zusqz)g@gS%R7$E5j_7yhOGVmT)8|qS1!+eF+iLtvBu32 zg~t6r%2{R}?!H+xYW}LCTXjx_DK;}1l5hz>F8Bf-V}H&ycfZpCUT9l{eBTS< zirw=;3#VIp52-LP1efdMiU}}l*8l(jJ?f^iY;{vvfFv++Yh=v6!eHsvpDa>-SXc4+ zch1=@)TU*+em?*#2?@@RLzvWYeE9_n6HZ|yAT1bJo=?c)?~Crt|HUZ24TvJVNhHFo z#i$*U5pns&V_SmiF z-Ir+4A<|0_EkGgP+B`=l$Pf11!T|&l@f_uLg<{8!Q2+dJ0w_Qta%+gsD*yn9q=aGu zNS3DcdaSpcYgZp1K@=$>%)Ij*y}$2aXp@cwBOPp$dmE&4mP-+f zYE*rHw}}q`VAQCpJ~f1?_V5GcFZtE4x@I8zga`=CGDZ^y4D5Zwfol~@57;IU3}s-z r06_YRNF)T9w8eDe#*Ld<&3^%y$O;h{n`RUM015yANkvXXu0mjfc&cDL delta 2563 zcmV+e3jFn}5}Xu}Gk*!wNklX5y4)dm#X>E zv~)U%GJqn~d;*y-Gm0YjVeKRjXG`ty~VD6_Oa0JP2Icn|Q@&ao*bL@PN*p_WS+?-wFZd=m?FEj!*szEo2YrQpWnTGV4^Qv@ zW87S&4Hg_k4h-xSIWTZdN_NV$h_vfN0Myu!;~~5Z0HVuxQ$|fRoI7HA7xABy?!Sm+ zh}&BMV*x<2cwr^=1zTQqM-iNq8h=lrF641|(&62EjDI~_P>~3LGTP@BpL;xH?}bQ^ zEc@U-0rQWJ4;mfrAMWj$Uid+=TL1S(T+n%$$LF!L(;NZ7UMvlIws`IuKndyk_{d5v zRSeLeDEfi5INCY5&KbrcN#pgFDPyPY*_6D32Fl;O#B2km0)R6{t2E8Vdjb zbdjDiG|p;ebqB*e4W4Oqd3qZ8CWhp1(>9x<5yA!I!af3kzHytPmPXF|`~ycXksF_! zbg!1$Zc*v9A~aSoRsi9$GN5N409dsD@Bw4NT7LkYQcvjtz@E$Ezs|U2u#6)?at5vN zkaeupl<4wn6uUl8J)HsoaU**C2>^!~j?9CZ03b+deRIV5GG$hCl5kjT762y##Jlb? z&vmmTLOTH1U;O-BE8s|U?bd&R6M&6rC(h77S?Pml0-bp?&pfSL&Ja&V!AuW8QWbQ02`H2s}9j}IZeyu%C+uN831eu^?#iKK)?u3hQZJrfG+#~cIhJk*f@DY1POF| zU5X=@l8cDwXo1I`)V%=E-*c#Idk#688GaUVB>VOmJdf8zPW?RxyYdM1wLVAY!B7C8 zHZk>wEdU@AcyLP>&dl?25PvD;aHiVx1Rwgp(`|Q8d(O&6(&V^VLG1#{VKpbGgfwEqQA)nGwauf2Hv()iJS zLsp0Qg{SN~zXU+7@u`3J;Ldel1fMd^bK8$QE-uJ?GORiLj1^8qM-#?tS}v!J*VX`2 zJpcgI<`!gx3u8CVTXG>gx2FDUTCGN*`&;^tm)}2nJr01bv4nc9>hPq~xqn#zko@7y zk6FzaLYUw<<50vJ3t}j zTF&h+(l72StWw7M285+qs`zQl=1|t&{K+S7`Qq2h&gQ6l0D>J*wkj$^3cxRZ?W){r z?HV%+*?*R-D48tc^Jnea^nKEOMWkg#VB)HgF`miF2W&eDBs;tH-hc6Y$--DexF4Tz_4dA6z5X}=lvP)rY}gaFT=7$>s8;G|IuA`(LbKI9d^>R`Q#ad2_E;XC zc4Hp^Ey)&)TJF~VrJk{qlam7sW!fSU=-X`hM%Zo$psB~V^nVlu0JoMc+B#I~5KjP} zZHbu_lWJCT>+rzL1D#10F(Sfy*Y*r9aez<$Ypi_;?Lz= z0sz-`&Jx&uUS$z%I0v9h$8FvoRR;hNfM*vOj9Je~y^h==XMa6pInwXI3$J5gd(pv%>Ce92kU;N$`66ng1+gGZ407nEm z^JbdZvf7J;VgM+vs;S5;$c%dqATB)Yz5Z^!R`dk$S%1ojAF4I#5)}Y|3jz=`#G4V= zyt|?(-O2qq=T7d=Nq6txyM*EKj6Mw=Xb@^vMj~9rzVKU+Dlu}g|0J4+4 zApjIw>IDEOsvhmk1ODm@;EyNr69CkKrt1uI87|laA*`c+KV5(gmw~L_NfRfAb_7Dr zAL;ausnk+cLQAq8>=o*!T@`93^L_?)^wwVBihL|o_pmzK8v;_PqwD`sr0)%l{d#UY zE_~_oP^sHppIBoE05&)Tge~E1E7))usDCgl@!QSY@^9WT4%W{UPt^-j{(W2!^Nqib zMu9cm5d_HIy$8*)P~F3k3Aj7}sMAv_qn)}|_0NYjiWmS!VX?;W4kQFD*jtl#8`{7q Z{s*CY%eebw+4KMa002ovPDHLkV1m55-A@1j diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 7c5aefbc7..40206745b 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -136,12 +136,15 @@ public class ModBlocks { public static Block block_scrap; public static Block block_electrical_scrap; public static Block block_beryllium; + public static Block block_schraranium; public static Block block_schrabidium; + public static Block block_schrabidate; public static Block block_solinium; public static Block block_schrabidium_fuel; public static Block block_euphemium; public static Block block_schrabidium_cluster; public static Block block_euphemium_cluster; + public static Block block_dineutronium; public static Block block_advanced_alloy; public static Block block_magnetized_tungsten; public static Block block_combine_steel; @@ -498,6 +501,7 @@ public class ModBlocks { public static Block red_cable; public static Block red_pylon; public static Block cable_switch; + public static Block machine_detector; public static Block rf_cable; public static Block oil_duct_solid; public static Block oil_duct; @@ -981,10 +985,13 @@ public class ModBlocks { block_scrap = new BlockFalling(Material.sand).setBlockName("block_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeGravel).setBlockTextureName(RefStrings.MODID + ":block_scrap"); block_electrical_scrap = new BlockFalling(Material.iron).setBlockName("block_electrical_scrap").setCreativeTab(MainRegistry.blockTab).setHardness(2.5F).setResistance(5.0F).setStepSound(Block.soundTypeMetal).setBlockTextureName(RefStrings.MODID + ":electrical_scrap_alt2"); block_beryllium = new BlockGeneric(Material.iron).setBlockName("block_beryllium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_beryllium"); + block_schraranium = new BlockOre(Material.iron, 5F, 50F).setBlockName("block_schraranium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schraranium"); block_schrabidium = new BlockOre(Material.iron, 20F, 250F).setBlockName("block_schrabidium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium"); + block_schrabidate = new BlockOre(Material.iron, 5F, 50F).setBlockName("block_schrabidate").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidate"); block_solinium = new BlockGeneric(Material.iron).setBlockName("block_solinium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_solinium"); block_schrabidium_fuel = new BlockOre(Material.iron, 20F, 250F).setBlockName("block_schrabidium_fuel").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(600.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_fuel"); block_euphemium = new BlockGeneric(Material.iron).setBlockName("block_euphemium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium"); + block_dineutronium = new BlockGeneric(Material.iron).setBlockName("block_dineutronium").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeMetal).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_dineutronium"); block_schrabidium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_schrabidium_cluster_top").setBlockName("block_schrabidium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_schrabidium_cluster_side"); block_euphemium_cluster = new BlockRotatablePillar(Material.rock, RefStrings.MODID + ":block_euphemium_cluster_top").setBlockName("block_euphemium_cluster").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(60000.0F).setBlockTextureName(RefStrings.MODID + ":block_euphemium_cluster_side"); block_advanced_alloy = new BlockGeneric(Material.iron).setBlockName("block_advanced_alloy").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_advanced_alloy"); @@ -1268,6 +1275,7 @@ public class ModBlocks { rf_cable = new BlockRFCable(Material.iron).setBlockName("rf_cable").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":rf_cable_icon"); red_pylon = new PylonRedWire(Material.iron).setBlockName("red_pylon").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":red_pylon"); cable_switch = new CableSwitch(Material.iron).setBlockName("cable_switch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":cable_switch_off"); + machine_detector = new PowerDetector(Material.iron).setBlockName("machine_detector").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_detector_off"); oil_duct_solid = new OilDuctSolid(Material.iron).setBlockName("oil_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_solid_alt"); oil_duct = new BlockOilDuct(Material.iron).setBlockName("oil_duct").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":oil_duct_icon_alt"); gas_duct_solid = new GasDuctSolid(Material.iron).setBlockName("gas_duct_solid").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":gas_duct_solid"); @@ -1702,12 +1710,15 @@ public class ModBlocks { GameRegistry.registerBlock(block_trinitite, block_trinitite.getUnlocalizedName()); GameRegistry.registerBlock(block_waste, block_waste.getUnlocalizedName()); GameRegistry.registerBlock(block_waste_painted, block_waste_painted.getUnlocalizedName()); + GameRegistry.registerBlock(block_schraranium, ItemBlockLore.class, block_schraranium.getUnlocalizedName()); GameRegistry.registerBlock(block_schrabidium, ItemBlockLore.class, block_schrabidium.getUnlocalizedName()); + GameRegistry.registerBlock(block_schrabidate, ItemBlockLore.class, block_schrabidate.getUnlocalizedName()); GameRegistry.registerBlock(block_solinium, ItemBlockLore.class, block_solinium.getUnlocalizedName()); GameRegistry.registerBlock(block_schrabidium_fuel, ItemBlockLore.class, block_schrabidium_fuel.getUnlocalizedName()); GameRegistry.registerBlock(block_euphemium, ItemBlockLore.class, block_euphemium.getUnlocalizedName()); GameRegistry.registerBlock(block_schrabidium_cluster, ItemBlockLore.class, block_schrabidium_cluster.getUnlocalizedName()); GameRegistry.registerBlock(block_euphemium_cluster, ItemBlockLore.class, block_euphemium_cluster.getUnlocalizedName()); + GameRegistry.registerBlock(block_dineutronium, block_dineutronium.getUnlocalizedName()); GameRegistry.registerBlock(block_magnetized_tungsten, block_magnetized_tungsten.getUnlocalizedName()); GameRegistry.registerBlock(block_combine_steel, block_combine_steel.getUnlocalizedName()); GameRegistry.registerBlock(block_desh, block_desh.getUnlocalizedName()); @@ -2026,6 +2037,7 @@ public class ModBlocks { GameRegistry.registerBlock(red_wire_coated, red_wire_coated.getUnlocalizedName()); GameRegistry.registerBlock(red_pylon, red_pylon.getUnlocalizedName()); GameRegistry.registerBlock(cable_switch, cable_switch.getUnlocalizedName()); + GameRegistry.registerBlock(machine_detector, machine_detector.getUnlocalizedName()); GameRegistry.registerBlock(rf_cable, rf_cable.getUnlocalizedName()); GameRegistry.registerBlock(oil_duct, oil_duct.getUnlocalizedName()); GameRegistry.registerBlock(oil_duct_solid, oil_duct_solid.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCrate.java b/src/main/java/com/hbm/blocks/generic/BlockCrate.java index 7ef7331bf..331a722e8 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockCrate.java @@ -166,18 +166,11 @@ public class BlockCrate extends BlockFalling { BlockCrate.addToListWithWeight(redList, ModItems.ammo_44_pip, 1); BlockCrate.addToListWithWeight(redList, ModItems.ammo_44_bj, 1); BlockCrate.addToListWithWeight(redList, ModItems.ammo_44_silver, 1); - BlockCrate.addToListWithWeight(redList, ModItems.gun_calamity_dual, 1); - BlockCrate.addToListWithWeight(redList, ModItems.gun_b92, 1); - BlockCrate.addToListWithWeight(redList, ModItems.weaponized_starblaster_cell, 1); BlockCrate.addToListWithWeight(redList, ModItems.battery_spark, 1); BlockCrate.addToListWithWeight(redList, ModItems.bottle_sparkle, 1); BlockCrate.addToListWithWeight(redList, ModItems.bottle_rad, 1); - BlockCrate.addToListWithWeight(redList, ModItems.missile_taint, 1); BlockCrate.addToListWithWeight(redList, ModItems.ring_starmetal, 1); BlockCrate.addToListWithWeight(redList, ModItems.flame_pony, 1); - BlockCrate.addToListWithWeight(redList, ModItems.burnt_bark, 1); - BlockCrate.addToListWithWeight(redList, ModItems.crystal_horn, 1); - BlockCrate.addToListWithWeight(redList, ModItems.crystal_charred, 1); BlockCrate.addToListWithWeight(redList, Item.getItemFromBlock(ModBlocks.ntm_dirt), 1); BlockCrate.addToListWithWeight(redList, Item.getItemFromBlock(ModBlocks.broadcaster_pc), 1); } diff --git a/src/main/java/com/hbm/blocks/machine/PowerDetector.java b/src/main/java/com/hbm/blocks/machine/PowerDetector.java new file mode 100644 index 000000000..a9c2fac6d --- /dev/null +++ b/src/main/java/com/hbm/blocks/machine/PowerDetector.java @@ -0,0 +1,51 @@ +package com.hbm.blocks.machine; + +import com.hbm.lib.RefStrings; +import com.hbm.tileentity.machine.TileEntityMachineDetector; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.BlockContainer; +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.IBlockAccess; +import net.minecraft.world.World; + +public class PowerDetector extends BlockContainer { + + @SideOnly(Side.CLIENT) + private IIcon iconOn; + + public PowerDetector(Material mat) { + super(mat); + } + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister iconRegister) { + super.registerBlockIcons(iconRegister); + this.iconOn = iconRegister.registerIcon(RefStrings.MODID + ":machine_detector"); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int metadata) { + return metadata == 1 ? iconOn : blockIcon; + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + return new TileEntityMachineDetector(); + } + + public boolean canProvidePower() { + return true; + } + + public int isProvidingWeakPower(IBlockAccess world, int x, int y, int z, int side) { + return world.getBlockMetadata(x, y, z) == 1 ? 15 : 0; + } + +} diff --git a/src/main/java/com/hbm/config/MobConfig.java b/src/main/java/com/hbm/config/MobConfig.java index b08254559..828f3c9bf 100644 --- a/src/main/java/com/hbm/config/MobConfig.java +++ b/src/main/java/com/hbm/config/MobConfig.java @@ -23,6 +23,8 @@ public class MobConfig { public static int elementalChance = 2; public static int elementalAmount = 10; public static int elementalDistance = 32; + + public static boolean enableDucks = true; public static void loadFromConfig(Configuration config) { @@ -47,6 +49,8 @@ public class MobConfig { elementalChance = CommonConfig.createConfigInt(config, CATEGORY, "12.E02_elementalChance", "1:x chance to spawn elementals, must be at least 1", 2); elementalAmount = CommonConfig.createConfigInt(config, CATEGORY, "12.E03_elementalAmount", "How many elementals are spawned each raid", 10); elementalDistance = CommonConfig.createConfigInt(config, CATEGORY, "12.E04_elementalAttackDistance", "How far away elementals will spawn from the targeted player", 32); + + enableDucks = CommonConfig.createConfigBool(config, CATEGORY, "12.D00_enableDucks", "Whether pressing O should allow the player to duck", true); } } diff --git a/src/main/java/com/hbm/crafting/ArmorRecipes.java b/src/main/java/com/hbm/crafting/ArmorRecipes.java index 19c6a96a3..633b83c4d 100644 --- a/src/main/java/com/hbm/crafting/ArmorRecipes.java +++ b/src/main/java/com/hbm/crafting/ArmorRecipes.java @@ -48,8 +48,8 @@ public class ArmorRecipes { //Power armor GameRegistry.addRecipe(new ItemStack(ModItems.t45_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_titanium, 'C', ModItems.circuit_targeting_tier3, 'I', ModItems.plate_polymer, 'X', ModItems.gas_mask_m65, 'B', ModItems.titanium_helmet }); - GameRegistry.addRecipe(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate }); - GameRegistry.addRecipe(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); + GameRegistry.addRecipe(new ItemStack(ModItems.t45_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'T', ModItems.gas_empty, 'B', ModItems.titanium_plate }); + GameRegistry.addRecipe(new ItemStack(ModItems.t45_legs, 1), new Object[] { "MPM", "PBP", "P P", 'M', ModItems.motor, 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_legs }); GameRegistry.addRecipe(new ItemStack(ModItems.t45_boots, 1), new Object[] { "P P", "PBP", 'P', ModItems.plate_armor_titanium, 'B', ModItems.titanium_boots }); GameRegistry.addRecipe(new ItemStack(ModItems.ajr_helmet, 1), new Object[] { "PPC", "PBP", "IXI", 'P', ModItems.plate_armor_ajr, 'C', ModItems.circuit_targeting_tier4, 'I', ModItems.ingot_polymer, 'X', ModItems.gas_mask_m65, 'B', ModItems.alloy_helmet }); GameRegistry.addRecipe(new ItemStack(ModItems.ajr_plate, 1), new Object[] { "MPM", "TBT", "PPP", 'M', ModItems.motor_desh, 'P', ModItems.plate_armor_ajr, 'T', ModItems.gas_empty, 'B', ModItems.alloy_plate }); diff --git a/src/main/java/com/hbm/crafting/MineralRecipes.java b/src/main/java/com/hbm/crafting/MineralRecipes.java index 2abfd1442..631e320a1 100644 --- a/src/main/java/com/hbm/crafting/MineralRecipes.java +++ b/src/main/java/com/hbm/crafting/MineralRecipes.java @@ -18,6 +18,16 @@ public class MineralRecipes { public static void register() { RecipesCommon.add9To1(ModItems.ingot_aluminium, ModBlocks.block_aluminium); + RecipesCommon.add1To9(ModBlocks.block_aluminium, ModItems.ingot_aluminium); + + RecipesCommon.add9To1(ModItems.ingot_schraranium, ModBlocks.block_schraranium); + RecipesCommon.add1To9(ModBlocks.block_schraranium, ModItems.ingot_schraranium); + + RecipesCommon.add9To1(ModItems.ingot_schrabidate, ModBlocks.block_schrabidate); + RecipesCommon.add1To9(ModBlocks.block_schrabidate, ModItems.ingot_schrabidate); + + RecipesCommon.add9To1(ModItems.ingot_dineutronium, ModBlocks.block_dineutronium); + RecipesCommon.add1To9(ModBlocks.block_dineutronium, ModItems.ingot_dineutronium); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_copper), 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_copper }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.block_fluorite), 1), new Object[] { "###", "###", "###", '#', ModItems.fluorite }); @@ -76,7 +86,6 @@ public class MineralRecipes { GameRegistry.addRecipe(new ItemStack(ModBlocks.block_fiberglass, 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_fiberglass }); GameRegistry.addRecipe(new ItemStack(ModBlocks.block_cobalt, 1), new Object[] { "###", "###", "###", '#', ModItems.ingot_cobalt }); - GameRegistry.addRecipe(new ItemStack(ModItems.ingot_aluminium, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_aluminium) }); GameRegistry.addRecipe(new ItemStack(ModItems.ingot_copper, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_copper) }); GameRegistry.addRecipe(new ItemStack(ModItems.fluorite, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_fluorite) }); GameRegistry.addRecipe(new ItemStack(ModItems.niter, 9), new Object[] { "#", '#', Item.getItemFromBlock(ModBlocks.block_niter) }); diff --git a/src/main/java/com/hbm/crafting/PowderRecipes.java b/src/main/java/com/hbm/crafting/PowderRecipes.java index fdd75f025..5bd682f4c 100644 --- a/src/main/java/com/hbm/crafting/PowderRecipes.java +++ b/src/main/java/com/hbm/crafting/PowderRecipes.java @@ -29,6 +29,7 @@ public class PowderRecipes { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_meteorite, 5), new Object[] { "dustIron", "dustCopper", "dustLithium", "dustTungsten", "dustUranium" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_thermite, 4), new Object[] { "dustIron", "dustIron", "dustIron", "dustAluminum" })); GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_semtex_mix, 3), new Object[] { ModItems.solid_fuel, ModItems.cordite, "dustSaltpeter" })); + GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModItems.powder_semtex_mix, 1), new Object[] { ModItems.solid_fuel, ModItems.ballistite, "dustSaltpeter" })); //Desh GameRegistry.addShapelessRecipe(new ItemStack(ModItems.powder_desh_mix, 1), new Object[] { ModItems.powder_actinium_tiny, ModItems.powder_actinium_tiny, ModItems.powder_lanthanium_tiny, ModItems.powder_lanthanium_tiny, ModItems.powder_cerium_tiny, ModItems.powder_cobalt_tiny, ModItems.powder_lithium_tiny, ModItems.powder_neodymium_tiny, ModItems.powder_niobium_tiny }); diff --git a/src/main/java/com/hbm/crafting/RecipesCommon.java b/src/main/java/com/hbm/crafting/RecipesCommon.java index 53c1c52b0..3dc714f52 100644 --- a/src/main/java/com/hbm/crafting/RecipesCommon.java +++ b/src/main/java/com/hbm/crafting/RecipesCommon.java @@ -29,11 +29,11 @@ public class RecipesCommon { //Compress nine items into one public static void add9To1(Item nine, Block one) { - add9To1(new ItemStack(nine), new ItemStack(nine)); + add9To1(new ItemStack(nine), new ItemStack(one)); } public static void add9To1(Item nine, Item one) { - add9To1(new ItemStack(nine), new ItemStack(nine)); + add9To1(new ItemStack(nine), new ItemStack(one)); } public static void add9To1(ItemStack nine, ItemStack one) { diff --git a/src/main/java/com/hbm/crafting/ToolRecipes.java b/src/main/java/com/hbm/crafting/ToolRecipes.java index d602c9d41..360f8230b 100644 --- a/src/main/java/com/hbm/crafting/ToolRecipes.java +++ b/src/main/java/com/hbm/crafting/ToolRecipes.java @@ -57,6 +57,7 @@ public class ToolRecipes { GameRegistry.addRecipe(new ItemStack(ModItems.desh_axe, 1), new Object[] { "II", "IS", " S", 'I', ModItems.ingot_desh, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.desh_shovel, 1), new Object[] { "I", "S", "S", 'I', ModItems.ingot_desh, 'S', Items.stick }); GameRegistry.addRecipe(new ItemStack(ModItems.desh_hoe, 1), new Object[] { "II", " S", " S", 'I', ModItems.ingot_desh, 'S', Items.stick }); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.meteorite_sword, 1), new Object[] { " B", "GB ", "SG ", 'B', ModItems.blade_meteorite, 'G', "plateGold", 'S', Items.stick })); //Drax GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.drax, 1), new Object[] { "BCF", "DDM", "BCC", 'B', ModItems.blades_advanced_alloy, 'C', "ingotCobalt", 'F', ModItems.fusion_core, 'D', "ingotDesh", 'M', ModItems.motor })); diff --git a/src/main/java/com/hbm/handler/BossSpawnHandler.java b/src/main/java/com/hbm/handler/BossSpawnHandler.java index c977ec447..095ed9c54 100644 --- a/src/main/java/com/hbm/handler/BossSpawnHandler.java +++ b/src/main/java/com/hbm/handler/BossSpawnHandler.java @@ -69,7 +69,7 @@ public class BossSpawnHandler { if(MobConfig.enableElementals) { - if(true || world.getTotalWorldTime() % MobConfig.elementalDelay == 0) { + if(world.getTotalWorldTime() % MobConfig.elementalDelay == 0) { if(world.rand.nextInt(MobConfig.elementalChance) == 0 && !world.playerEntities.isEmpty() && world.provider.isSurfaceWorld()) { diff --git a/src/main/java/com/hbm/handler/FluidTypeHandler.java b/src/main/java/com/hbm/handler/FluidTypeHandler.java index 6ee24e4ce..d467b3c88 100644 --- a/src/main/java/com/hbm/handler/FluidTypeHandler.java +++ b/src/main/java/com/hbm/handler/FluidTypeHandler.java @@ -51,13 +51,14 @@ public class FluidTypeHandler { UF6 (0xD1CEBE, 14, 1, 1, 4, 0, 2, EnumSymbol.RADIATION, "hbmfluid.uf6", false, true, false), PUF6 (0x4C4C4C, 15, 1, 1, 4, 0, 4, EnumSymbol.RADIATION, "hbmfluid.puf6", false, true, false), SAS3 (0x4ffffc, 14, 2, 1, 5, 0, 4, EnumSymbol.RADIATION, "hbmfluid.sas3", false, true, false), + SCHRABIDIC (0x006B6B, 14, 1, 2, 5, 0, 5, EnumSymbol.ACID, "hbmfluid.schrabidic", false, true, false), AMAT (0x010101, 0, 2, 1, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.amat", false, false, true), ASCHRAB (0xb50000, 1, 2, 1, 5, 0, 5, EnumSymbol.ANTIMATTER, "hbmfluid.aschrab", false, false, true), ACID (0xfff7aa, 10, 2, 1, 3, 0, 3, EnumSymbol.OXIDIZER, "hbmfluid.acid", false, true, false), WATZ (0x86653E, 11, 2, 1, 4, 0, 3, EnumSymbol.ACID, "hbmfluid.watz", false, true, false), - CRYOGEL (0x32ffff, 0, 1, 2, 2, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.cryogel"), + CRYOGEL (0x32ffff, 0, 1, 2, 2, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.cryogel", false, false, false, -170), HYDROGEN (0x4286f4, 3, 1, 2, 3, 4, 0, EnumSymbol.CROYGENIC, "hbmfluid.hydrogen"), OXYGEN (0x98bdf9, 4, 1, 2, 3, 0, 0, EnumSymbol.CROYGENIC, "hbmfluid.oxygen"), diff --git a/src/main/java/com/hbm/inventory/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/AssemblerRecipes.java index 10d2ddae8..852c1b985 100644 --- a/src/main/java/com/hbm/inventory/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/AssemblerRecipes.java @@ -27,10 +27,13 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.main.MainRegistry; +import cpw.mods.fml.common.Loader; +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.minecraft.item.crafting.IRecipe; import net.minecraftforge.oredict.OreDictionary; @Untested @@ -120,7 +123,7 @@ public class AssemblerRecipes { } /** - * Registers regular recipes if there's no custom confiuration + * Registers regular recipes if there's no custom configuration */ private static void registerDefaults() { @@ -571,6 +574,29 @@ public class AssemblerRecipes { makeRecipe(new ComparableStack(ModBlocks.block_cap_fritz, 1), new AStack[] { new ComparableStack(ModItems.cap_fritz, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_sunset, 1), new AStack[] { new ComparableStack(ModItems.cap_sunset, 128) }, 10); makeRecipe(new ComparableStack(ModBlocks.block_cap_star, 1), new AStack[] { new ComparableStack(ModItems.cap_star, 128) }, 10); + + if(Loader.isModLoaded("Mekanism")) { + + Block mb = (Block) Block.blockRegistry.getObject("Mekanism:MachineBlock"); + + if(mb != null) { + + makeRecipe(new ComparableStack(mb, 1, 4), new AStack[] { + new ComparableStack(ModItems.ingot_dura_steel, 16), + new OreDictStack("ingotDesh", 8), + new OreDictStack("plateSteel", 48), + new OreDictStack("plateCopper", 24), + new ComparableStack(ModItems.pipes_steel, 8), + new ComparableStack(ModItems.circuit_gold, 8), + new ComparableStack(ModItems.wire_advanced_alloy, 24), + new ComparableStack(ModBlocks.fusion_conductor, 12), + new ComparableStack(ModBlocks.machine_lithium_battery, 3), + new ComparableStack(ModItems.crystal_redstone, 12), + new ComparableStack(ModItems.crystal_diamond, 8), + new ComparableStack(ModItems.motor_desh, 16) + }, 15 * 60 * 20); + } + } } private static void makeRecipe(ComparableStack out, AStack[] in, int duration) { diff --git a/src/main/java/com/hbm/inventory/CrystallizerRecipes.java b/src/main/java/com/hbm/inventory/CrystallizerRecipes.java index f8e5b575d..913cc7ebd 100644 --- a/src/main/java/com/hbm/inventory/CrystallizerRecipes.java +++ b/src/main/java/com/hbm/inventory/CrystallizerRecipes.java @@ -62,6 +62,8 @@ public class CrystallizerRecipes { recipes.put(new ComparableStack(ModItems.powder_semtex_mix), new ItemStack(ModItems.ingot_semtex)); recipes.put(new ComparableStack(ModItems.powder_desh_ready), new ItemStack(ModItems.ingot_desh)); recipes.put(new ComparableStack(ModItems.powder_meteorite), new ItemStack(ModItems.fragment_meteorite, 1)); + + recipes.put(new ComparableStack(ModItems.meteorite_sword_treated), new ItemStack(ModItems.meteorite_sword_etched, 1)); } public static ItemStack getOutput(ItemStack stack) { diff --git a/src/main/java/com/hbm/inventory/MachineRecipes.java b/src/main/java/com/hbm/inventory/MachineRecipes.java index 9cec6ebd4..63bb98872 100644 --- a/src/main/java/com/hbm/inventory/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/MachineRecipes.java @@ -121,6 +121,11 @@ public class MachineRecipes { return new ItemStack(ModItems.ingot_meteorite); } + if (item.getItem() == ModItems.meteorite_sword_hardened && mODE(item2, new String[] {"ingotCobalt", "dustCobalt"}) + || mODE(item, new String[] {"ingotCobalt", "dustCobalt"}) && item2.getItem() == ModItems.meteorite_sword_hardened) { + return new ItemStack(ModItems.meteorite_sword_alloyed, 1); + } + return null; } @@ -315,6 +320,9 @@ public class MachineRecipes { return new ItemStack(ModItems.biomass_compressed); if(input.getItem() == ModItems.powder_lignite) return new ItemStack(ModItems.briquette_lignite); + + if(input.getItem() == ModItems.meteorite_sword_reforged) + return new ItemStack(ModItems.meteorite_sword_hardened); } if(stamps_plate.contains(stamp.getItem())) { @@ -1709,6 +1717,12 @@ public class MachineRecipes { case BALEFIRE: list.add(new ItemStack(ModItems.egg_balefire_shard, 1)); break; + case SCHRABIDIC: + list.add(new ItemStack(ModItems.pellet_charged, 1)); + break; + case SCHRABIDATE: + list.add(new ItemStack(ModItems.powder_iron, 1)); + break; default: break; } @@ -1915,6 +1929,13 @@ public class MachineRecipes { case BALEFIRE: input[0] = new FluidStack(6000, FluidType.KEROSENE); break; + case SCHRABIDIC: + input[0] = new FluidStack(8000, FluidType.SAS3); + input[1] = new FluidStack(6000, FluidType.ACID); + break; + case SCHRABIDATE: + input[0] = new FluidStack(250, FluidType.SCHRABIDIC); + break; default: break; } @@ -2047,6 +2068,9 @@ public class MachineRecipes { case BALEFIRE: output[0] = new ItemStack(ModItems.powder_balefire, 1); break; + case SCHRABIDATE: + output[0] = new ItemStack(ModItems.powder_schrabidate, 1); + break; default: break; } @@ -2170,6 +2194,9 @@ public class MachineRecipes { case BALEFIRE: output[0] = new FluidStack(8000, FluidType.BALEFIRE); break; + case SCHRABIDIC: + output[0] = new FluidStack(16000, FluidType.SCHRABIDIC); + break; default: break; } diff --git a/src/main/java/com/hbm/inventory/ShredderRecipes.java b/src/main/java/com/hbm/inventory/ShredderRecipes.java index d7c7a0095..6e759e9e1 100644 --- a/src/main/java/com/hbm/inventory/ShredderRecipes.java +++ b/src/main/java/com/hbm/inventory/ShredderRecipes.java @@ -146,6 +146,8 @@ public class ShredderRecipes { ShredderRecipes.setRecipe(ModBlocks.ore_rare, new ItemStack(ModItems.powder_desh_mix, 1)); ShredderRecipes.setRecipe(Blocks.diamond_ore, new ItemStack(ModBlocks.gravel_diamond, 2)); ShredderRecipes.setRecipe(ModBlocks.boxcar, new ItemStack(ModItems.powder_steel, 32)); + ShredderRecipes.setRecipe(ModItems.ingot_schrabidate, new ItemStack(ModItems.powder_schrabidate, 1)); + ShredderRecipes.setRecipe(ModBlocks.block_schrabidate, new ItemStack(ModItems.powder_schrabidate, 9)); ShredderRecipes.setRecipe(ModItems.ingot_schraranium, new ItemStack(ModItems.nugget_schrabidium, 2)); ShredderRecipes.setRecipe(ModItems.crystal_iron, new ItemStack(ModItems.powder_iron, 3)); diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineFluidTank.java b/src/main/java/com/hbm/inventory/container/ContainerMachineFluidTank.java index 5cbf7bc84..aec60d831 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineFluidTank.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineFluidTank.java @@ -12,11 +12,8 @@ import net.minecraft.item.ItemStack; public class ContainerMachineFluidTank extends Container { private TileEntityMachineFluidTank diFurnace; - private int power; public ContainerMachineFluidTank(InventoryPlayer invPlayer, TileEntityMachineFluidTank tedf) { - power = 0; - diFurnace = tedf; this.addSlotToContainer(new Slot(tedf, 0, 8, 17)); @@ -25,7 +22,6 @@ public class ContainerMachineFluidTank extends Container { this.addSlotToContainer(new Slot(tedf, 3, 53 - 18, 53)); this.addSlotToContainer(new Slot(tedf, 4, 125, 17)); this.addSlotToContainer(new Slot(tedf, 5, 125, 53)); - this.addSlotToContainer(new Slot(tedf, 6, 152, 17)); for(int i = 0; i < 3; i++) { @@ -57,13 +53,13 @@ public class ContainerMachineFluidTank extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if (par2 <= 6) { - if (!this.mergeItemStack(var5, 7, this.inventorySlots.size(), true)) + if (par2 <= 5) { + if (!this.mergeItemStack(var5, 6, this.inventorySlots.size(), true)) { return null; } } - else if (!this.mergeItemStack(var5, 0, 6, false)) + else if (!this.mergeItemStack(var5, 0, 5, false)) { return null; } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index fedbb2e5c..a7a014622 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -81,6 +81,7 @@ public class ModItems { public static Item ingot_beryllium; public static Item ingot_schraranium; public static Item ingot_schrabidium; + public static Item ingot_schrabidate; public static Item ingot_plutonium_fuel; public static Item ingot_uranium_fuel; public static Item ingot_mox_fuel; @@ -234,6 +235,7 @@ public class ModItems { public static Item powder_neptunium; public static Item powder_polonium; public static Item powder_schrabidium; + public static Item powder_schrabidate; public static Item powder_aluminium; public static Item powder_beryllium; @@ -1695,6 +1697,15 @@ public class ModItems { public static Item chlorophyte_pickaxe; public static Item mese_pickaxe; + public static Item meteorite_sword; + public static Item meteorite_sword_seared; + public static Item meteorite_sword_reforged; + public static Item meteorite_sword_hardened; + public static Item meteorite_sword_alloyed; + public static Item meteorite_sword_machined; + public static Item meteorite_sword_treated; + public static Item meteorite_sword_etched; + public static Item matchstick; public static Item balefire_and_steel; @@ -2083,6 +2094,7 @@ public class ModItems { plate_lead = new Item().setUnlocalizedName("plate_lead").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_lead"); ingot_schraranium = new ItemSchraranium(2.5F, false, true).setUnlocalizedName("ingot_schraranium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schraranium"); ingot_schrabidium = new ItemRadioactive(7.5F, false, true).setUnlocalizedName("ingot_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidium"); + ingot_schrabidate = new ItemRadioactive(2.5F, false, true).setUnlocalizedName("ingot_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_schrabidate"); plate_schrabidium = new ItemRadioactive(7.5F, false, true).setUnlocalizedName("plate_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_schrabidium"); plate_copper = new Item().setUnlocalizedName("plate_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_copper"); plate_gold = new Item().setUnlocalizedName("plate_gold").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_gold"); @@ -2135,9 +2147,9 @@ public class ModItems { ingot_lanthanium = new ItemCustomLore().setUnlocalizedName("ingot_lanthanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_lanthanium"); ingot_actinium = new ItemCustomLore().setUnlocalizedName("ingot_actinium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_actinium"); - ingot_meteorite = new ItemHot(10).setUnlocalizedName("ingot_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite"); - ingot_meteorite_forged = new ItemHot(10).setUnlocalizedName("ingot_meteorite_forged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite_forged"); - blade_meteorite = new ItemHot(10).setUnlocalizedName("blade_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_meteorite"); + ingot_meteorite = new ItemHot(200).setUnlocalizedName("ingot_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite"); + ingot_meteorite_forged = new ItemHot(200).setUnlocalizedName("ingot_meteorite_forged").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_meteorite_forged"); + blade_meteorite = new ItemHot(200).setUnlocalizedName("blade_meteorite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":blade_meteorite"); plate_armor_titanium = new Item().setUnlocalizedName("plate_armor_titanium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_titanium"); plate_armor_ajr = new Item().setUnlocalizedName("plate_armor_ajr").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_armor_ajr"); @@ -2222,6 +2234,7 @@ public class ModItems { powder_neptunium = new ItemRadioactive(2.5F, true).setUnlocalizedName("powder_neptunium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_neptunium"); powder_polonium = new ItemRadioactive(10F, true).setUnlocalizedName("powder_polonium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_polonium"); powder_schrabidium = new ItemRadioactive(7.5F, true, true).setUnlocalizedName("powder_schrabidium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidium"); + powder_schrabidate = new ItemRadioactive(2.5F, true, true).setUnlocalizedName("powder_schrabidate").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_schrabidate"); powder_aluminium = new Item().setUnlocalizedName("powder_aluminium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_aluminium"); powder_beryllium = new Item().setUnlocalizedName("powder_beryllium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_beryllium"); powder_copper = new Item().setUnlocalizedName("powder_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_copper"); @@ -3984,6 +3997,16 @@ public class ModItems { .addHitAbility(new WeaponAbility.StunAbility(10)) .addHitAbility(new WeaponAbility.PhosphorusAbility(60)) .addHitAbility(new WeaponAbility.BeheaderAbility()).setUnlocalizedName("mese_pickaxe").setTextureName(RefStrings.MODID + ":mese_pickaxe"); + + ToolMaterial matMeteorite = EnumHelper.addToolMaterial("HBM_METEORITE", 4, 0, 50F, 0.0F, 200).setRepairItem(new ItemStack(ModItems.plate_paa)); + meteorite_sword = new ItemSwordMeteorite(10F, 0, matMeteorite).setUnlocalizedName("meteorite_sword").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_seared = new ItemSwordMeteorite(15F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_seared").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_reforged = new ItemSwordMeteorite(25F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_reforged").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_hardened = new ItemSwordMeteorite(35F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_hardened").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_alloyed = new ItemSwordMeteorite(50F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_alloyed").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_machined = new ItemSwordMeteorite(65F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_machined").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_treated = new ItemSwordMeteorite(80F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_treated").setTextureName(RefStrings.MODID + ":meteorite_sword"); + meteorite_sword_etched = new ItemSwordMeteorite(100F, 0, matMeteorite).setUnlocalizedName("meteorite_sword_etched").setTextureName(RefStrings.MODID + ":meteorite_sword"); mask_of_infamy = new MaskOfInfamy(ArmorMaterial.IRON, 8, 0).setUnlocalizedName("mask_of_infamy").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":mask_of_infamy"); @@ -4260,6 +4283,7 @@ public class ModItems { GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); GameRegistry.registerItem(ingot_magnetized_tungsten, ingot_magnetized_tungsten.getUnlocalizedName()); GameRegistry.registerItem(ingot_combine_steel, ingot_combine_steel.getUnlocalizedName()); GameRegistry.registerItem(ingot_solinium, ingot_solinium.getUnlocalizedName()); @@ -4330,6 +4354,7 @@ public class ModItems { GameRegistry.registerItem(powder_dura_steel, powder_dura_steel.getUnlocalizedName()); GameRegistry.registerItem(powder_polymer, powder_polymer.getUnlocalizedName()); GameRegistry.registerItem(powder_schrabidium, powder_schrabidium.getUnlocalizedName()); + GameRegistry.registerItem(powder_schrabidate, powder_schrabidate.getUnlocalizedName()); GameRegistry.registerItem(powder_magnetized_tungsten, powder_magnetized_tungsten.getUnlocalizedName()); GameRegistry.registerItem(powder_chlorophyte, powder_chlorophyte.getUnlocalizedName()); GameRegistry.registerItem(powder_combine_steel, powder_combine_steel.getUnlocalizedName()); @@ -5774,6 +5799,15 @@ public class ModItems { GameRegistry.registerItem(stopsign, stopsign.getUnlocalizedName()); GameRegistry.registerItem(sopsign, sopsign.getUnlocalizedName()); GameRegistry.registerItem(chernobylsign, chernobylsign.getUnlocalizedName()); + + GameRegistry.registerItem(meteorite_sword, meteorite_sword.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_seared, meteorite_sword_seared.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_reforged, meteorite_sword_reforged.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_hardened, meteorite_sword_hardened.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_alloyed, meteorite_sword_alloyed.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_machined, meteorite_sword_machined.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_treated, meteorite_sword_treated.getUnlocalizedName()); + GameRegistry.registerItem(meteorite_sword_etched, meteorite_sword_etched.getUnlocalizedName()); //Multitool GameRegistry.registerItem(multitool_hit, multitool_hit.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSB.java b/src/main/java/com/hbm/items/armor/ArmorFSB.java index 9105f3c1e..9f41edb07 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSB.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSB.java @@ -199,7 +199,7 @@ public class ArmorFSB extends ItemArmor { if(struct.getValue() != 0) list.add(EnumChatFormatting.YELLOW + " " + I18nUtil.resolveKey("armor.damageModifier", struct.getValue(), I18n.format(struct.getKey()))); else - list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.nullDamage", struct.getValue(), I18n.format(struct.getKey()))); + list.add(EnumChatFormatting.RED + " " + I18nUtil.resolveKey("armor.nullDamage", I18n.format(struct.getKey()))); } } diff --git a/src/main/java/com/hbm/items/block/ItemBlockLore.java b/src/main/java/com/hbm/items/block/ItemBlockLore.java index 7374fe839..1e107129b 100644 --- a/src/main/java/com/hbm/items/block/ItemBlockLore.java +++ b/src/main/java/com/hbm/items/block/ItemBlockLore.java @@ -113,7 +113,8 @@ public class ItemBlockLore extends ItemBlock { if(this.field_150939_a == ModBlocks.ore_schrabidium || this.field_150939_a == ModBlocks.ore_nether_schrabidium || this.field_150939_a == ModBlocks.block_schrabidium || this.field_150939_a == ModBlocks.block_schrabidium_cluster || this.field_150939_a == ModBlocks.block_schrabidium_fuel || this.field_150939_a == ModBlocks.block_solinium || - this.field_150939_a == ModBlocks.gravel_diamond || this.field_150939_a == ModBlocks.ore_gneiss_schrabidium) + this.field_150939_a == ModBlocks.gravel_diamond || this.field_150939_a == ModBlocks.ore_gneiss_schrabidium || + this.field_150939_a == ModBlocks.block_schraranium || this.field_150939_a == ModBlocks.block_schrabidate) return EnumRarity.rare; if(this.field_150939_a == ModBlocks.block_euphemium || this.field_150939_a == ModBlocks.block_euphemium_cluster || diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index c163ce176..5aa249c42 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -86,7 +86,9 @@ public class ItemChemistryTemplate extends Item { ELECTROLYSIS, XENON, SATURN, - BALEFIRE; + BALEFIRE, + SCHRABIDIC, + SCHRABIDATE; public static EnumChemistryTemplate getEnum(int i) { if(i < EnumChemistryTemplate.values().length) @@ -255,9 +257,13 @@ public class ItemChemistryTemplate extends Item { case XENON: return 600; case SATURN: - return 600; + return 60; case BALEFIRE: return 100; + case SCHRABIDIC: + return 100; + case SCHRABIDATE: + return 600; default: return 100; } diff --git a/src/main/java/com/hbm/items/special/ItemHot.java b/src/main/java/com/hbm/items/special/ItemHot.java index 818719041..91feedd25 100644 --- a/src/main/java/com/hbm/items/special/ItemHot.java +++ b/src/main/java/com/hbm/items/special/ItemHot.java @@ -2,18 +2,49 @@ package com.hbm.items.special; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.entity.Entity; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; public class ItemHot extends Item { + @SideOnly(Side.CLIENT) + public IIcon hotIcon; public static int heat; public ItemHot(int heat) { this.heat = heat; } + + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister reg) { + super.registerIcons(reg); + this.hotIcon = reg.registerIcon(this.getIconString() + "_hot"); + } + + @SideOnly(Side.CLIENT) + public IIcon getIconFromDamage(int meta) { + return meta == 1 ? this.hotIcon : this.itemIcon; + } + + public void onUpdate(ItemStack stack, World world, Entity entity, int i, boolean bool) { + + if(!world.isRemote && stack.hasTagCompound()) { + + int h = stack.stackTagCompound.getInteger("heat"); + + if(h > 0) { + stack.stackTagCompound.setInteger("heat", h - 1); + } else { + stack.stackTagCompound = null; + } + } + } public static ItemStack heatUp(ItemStack stack) { @@ -27,6 +58,18 @@ public class ItemHot extends Item { return stack; } + public static ItemStack heatUp(ItemStack stack, double d) { + + if(!(stack.getItem() instanceof ItemHot)) + return stack; + + if(!stack.hasTagCompound()) + stack.stackTagCompound = new NBTTagCompound(); + + stack.stackTagCompound.setInteger("heat", (int)(d * heat)); + return stack; + } + public static double getHeat(ItemStack stack) { if(!(stack.getItem() instanceof ItemHot)) @@ -39,24 +82,4 @@ public class ItemHot extends Item { return (double)h / (double)heat; } - - @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack stack, int pass) { - - if(pass == 0) - return 0xffffff; - - double heat = getHeat(stack); - - int r = 0xff; - int g = (int)(0xff - heat * 0x40); - int b = (int)(0xff - heat * 0xff); - - return (r << 16) | (g << 8) | b; - } - - @SideOnly(Side.CLIENT) - public boolean requiresMultipleRenderPasses() { - return false; - } } diff --git a/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java new file mode 100644 index 000000000..8a2e9164e --- /dev/null +++ b/src/main/java/com/hbm/items/tool/ItemSwordMeteorite.java @@ -0,0 +1,65 @@ +package com.hbm.items.tool; + +import java.util.List; + +import com.hbm.items.ModItems; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; + +public class ItemSwordMeteorite extends ItemSwordAbility { + + public ItemSwordMeteorite(float damage, double movement, ToolMaterial material) { + super(damage, movement, material); + this.setMaxDamage(0); + } + + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + super.addInformation(stack, player, list, ext); + + if(this == ModItems.meteorite_sword) { + list.add(EnumChatFormatting.ITALIC + "Forged from a fallen star"); + list.add(EnumChatFormatting.ITALIC + "Sharper than most terrestrial blades"); + } + + if(this == ModItems.meteorite_sword_seared) { + list.add(EnumChatFormatting.ITALIC + "Fire strengthens the blade"); + list.add(EnumChatFormatting.ITALIC + "Making it even more powerful"); + } + + if(this == ModItems.meteorite_sword_reforged) { + list.add(EnumChatFormatting.ITALIC + "The sword has been reforged"); + list.add(EnumChatFormatting.ITALIC + "To rectify past imperfections"); + } + + if(this == ModItems.meteorite_sword_hardened) { + list.add(EnumChatFormatting.ITALIC + "Extremely high pressure has been used"); + list.add(EnumChatFormatting.ITALIC + "To harden the blade further"); + } + + if(this == ModItems.meteorite_sword_alloyed) { + list.add(EnumChatFormatting.ITALIC + "Cobalt fills the fissures"); + list.add(EnumChatFormatting.ITALIC + "Strengthening the sword"); + } + + if(this == ModItems.meteorite_sword_machined) { + list.add(EnumChatFormatting.ITALIC + "Advanced machinery was used"); + list.add(EnumChatFormatting.ITALIC + "To refine the blade even more"); + } + + if(this == ModItems.meteorite_sword_treated) { + list.add(EnumChatFormatting.ITALIC + "Chemicals have been applied"); + list.add(EnumChatFormatting.ITALIC + "Making the sword more powerful"); + } + + if(this == ModItems.meteorite_sword_etched) { + list.add(EnumChatFormatting.ITALIC + "Acids clean the material"); + list.add(EnumChatFormatting.ITALIC + "To make this the perfect sword"); + } + } + +} diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index eb13a344b..08c48b8ef 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -206,9 +206,17 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.assembly_template, new ItemRenderTemplate()); MinecraftForgeClient.registerItemRenderer(ModItems.chemistry_template, new ItemRenderTemplate()); //hot stuff - /*MinecraftForgeClient.registerItemRenderer(ModItems.ingot_meteorite, new ItemRendererHot()); + MinecraftForgeClient.registerItemRenderer(ModItems.ingot_meteorite, new ItemRendererHot()); MinecraftForgeClient.registerItemRenderer(ModItems.ingot_meteorite_forged, new ItemRendererHot()); - MinecraftForgeClient.registerItemRenderer(ModItems.blade_meteorite, new ItemRendererHot());*/ + MinecraftForgeClient.registerItemRenderer(ModItems.blade_meteorite, new ItemRendererHot()); + //meteorite swords + MinecraftForgeClient.registerItemRenderer(ModItems.meteorite_sword_seared, new ItemRendererMeteorSword(1.0F, 0.5F, 0.0F)); + MinecraftForgeClient.registerItemRenderer(ModItems.meteorite_sword_reforged, new ItemRendererMeteorSword(0.5F, 1.0F, 1.0F)); + MinecraftForgeClient.registerItemRenderer(ModItems.meteorite_sword_hardened, new ItemRendererMeteorSword(0.25F, 0.25F, 0.25F)); + MinecraftForgeClient.registerItemRenderer(ModItems.meteorite_sword_alloyed, new ItemRendererMeteorSword(0.0F, 0.5F, 1.0F)); + MinecraftForgeClient.registerItemRenderer(ModItems.meteorite_sword_machined, new ItemRendererMeteorSword(1.0F, 1.0F, 0.0F)); + MinecraftForgeClient.registerItemRenderer(ModItems.meteorite_sword_treated, new ItemRendererMeteorSword(0.5F, 1.0F, 0.5F)); + MinecraftForgeClient.registerItemRenderer(ModItems.meteorite_sword_etched, new ItemRendererMeteorSword(1.0F, 1.0F, 0.5F)); //swords and hammers MinecraftForgeClient.registerItemRenderer(ModItems.redstone_sword, new ItemRenderRedstoneSword()); MinecraftForgeClient.registerItemRenderer(ModItems.big_sword, new ItemRenderBigSword()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index b55b092e0..b44b05ef2 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -230,6 +230,7 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.machine_arc_furnace_off, 1), new Object[] { "ITI", "PFP", "ITI", 'I', "ingotTungsten", 'T', ModBlocks.machine_transformer, 'P', ModItems.board_copper, 'F', Blocks.furnace })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.red_wire_coated), 16), new Object[] { "WRW", "RIR", "WRW", 'W', ModItems.plate_polymer, 'I', "ingotRedCopperAlloy", 'R', ModItems.wire_red_copper })); GameRegistry.addRecipe(new ItemStack(ModBlocks.cable_switch, 1), new Object[] { "S", "W", 'S', Blocks.lever, 'W', ModBlocks.red_wire_coated }); + GameRegistry.addRecipe(new ItemStack(ModBlocks.machine_detector, 1), new Object[] { "IRI", "CTC", "IRI", 'I', ModItems.plate_polymer, 'R', Items.redstone, 'C', ModItems.wire_red_copper, 'T', ModItems.coil_tungsten }); GameRegistry.addRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.red_cable), 16), new Object[] { " W ", "RRR", " W ", 'W', ModItems.plate_polymer, 'R', ModItems.wire_red_copper }); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.red_pylon), 4), new Object[] { "CWC", "PWP", " T ", 'C', ModItems.coil_copper_torus, 'W', "plankWood", 'P', ModItems.plate_polymer, 'T', ModBlocks.red_wire_coated })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(Item.getItemFromBlock(ModBlocks.oil_duct_solid), 16), new Object[] { "SPS", "P P", "SPS", 'S', "ingotSteel", 'P', "plateIron" })); @@ -482,7 +483,7 @@ public class CraftingManager { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.crystal_horn, 1), new Object[] { ModItems.powder_neptunium, ModItems.powder_iodine, ModItems.powder_thorium, ModItems.powder_astatine, ModItems.powder_neodymium, ModItems.powder_caesium, ModBlocks.block_meteor, ModBlocks.gravel_obsidian, Items.water_bucket }); GameRegistry.addShapelessRecipe(new ItemStack(ModItems.crystal_charred, 1), new Object[] { ModItems.powder_strontium, ModItems.powder_cobalt, ModItems.powder_bromine, ModItems.powder_niobium, ModItems.powder_tennessine, ModItems.powder_cerium, ModBlocks.block_meteor, ModBlocks.block_aluminium, Items.water_bucket }); - GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crystal_virus, 1), new Object[] { "STS", "THT", "STS", 'S', ModItems.cell_sas3, 'T', "dustTungsten", 'H', ModItems.crystal_horn })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crystal_virus, 1), new Object[] { "STS", "THT", "STS", 'S', ModItems.particle_strange, 'T', "dustTungsten", 'H', ModItems.crystal_horn })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.crystal_pulsar, 32), new Object[] { "STS", "THT", "STS", 'S', ModItems.cell_uf6, 'T', "dustAluminum", 'H', ModItems.crystal_charred })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.fluid_duct, 8), new Object[] { "SAS", " ", "SAS", 'S', "plateSteel", 'A', "plateAluminum" })); @@ -694,6 +695,10 @@ public class CraftingManager { GameRegistry.addRecipe(new ShapelessOreRecipe(new ItemStack(ModBlocks.hadron_analysis_glass, 1), new Object[] { ModBlocks.hadron_analysis, "blockGlass" })); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.hadron_access, 1), new Object[] { "IGI", "CRC", "IPI", 'I', ModItems.plate_polymer, 'G', "paneGlass", 'C', ModItems.circuit_aluminium, 'R', "blockRedstone", 'P', ModBlocks.hadron_plating_blue })); GameRegistry.addRecipe(new ItemStack(ModBlocks.hadron_core, 1), new Object[] { "CCC", "DSD", "CCC", 'C', ModBlocks.hadron_coil_alloy, 'D', ModBlocks.hadron_diode, 'S', ModItems.circuit_schrabidium }); + + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ingot_schrabidium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', "ingotUranium", 'P', new ItemStack(ModItems.particle_higgs).setStackDisplayName("Higgs Boson (Temporary Recipe)") })); + GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.ingot_euphemium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', "ingotPlutonium", 'P', new ItemStack(ModItems.particle_dark).setStackDisplayName("Dark Matter (Temporary Recipe)") })); + GameRegistry.addRecipe(new ItemStack(ModItems.ingot_dineutronium, 8), new Object[] { "UUU", "UPU", "UUU", 'U', ModItems.ingot_schrabidate, 'P', new ItemStack(ModItems.particle_sparkticle).setStackDisplayName("Sparkticle (Temporary Recipe)") }); if(GeneralConfig.enableBabyMode) { GameRegistry.addShapelessRecipe(new ItemStack(ModItems.cordite, 3), new Object[] { ModItems.ballistite, Items.gunpowder, new ItemStack(Blocks.wool, 1, OreDictionary.WILDCARD_VALUE) }); @@ -755,7 +760,6 @@ public class CraftingManager { if(toDestroy.size() > 0) { net.minecraft.item.crafting.CraftingManager.getInstance().getRecipeList().removeAll(toDestroy); - GameRegistry.addRecipe(digiminer, new Object[] { "###", "###", '#', ModItems.ingot_schrabidium }); } } } @@ -812,6 +816,7 @@ public class CraftingManager { GameRegistry.addSmelting(ModItems.powder_neptunium, new ItemStack(ModItems.ingot_neptunium), 1.0F); GameRegistry.addSmelting(ModItems.powder_polonium, new ItemStack(ModItems.ingot_polonium), 1.0F); GameRegistry.addSmelting(ModItems.powder_schrabidium, new ItemStack(ModItems.ingot_schrabidium), 5.0F); + GameRegistry.addSmelting(ModItems.powder_schrabidate, new ItemStack(ModItems.ingot_schrabidate), 5.0F); GameRegistry.addSmelting(ModItems.powder_euphemium, new ItemStack(ModItems.ingot_euphemium), 10.0F); GameRegistry.addSmelting(ModItems.powder_aluminium, new ItemStack(ModItems.ingot_aluminium), 1.0F); GameRegistry.addSmelting(ModItems.powder_beryllium, new ItemStack(ModItems.ingot_beryllium), 1.0F); @@ -888,5 +893,6 @@ public class CraftingManager { GameRegistry.addSmelting(ModItems.ingot_meteorite, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite)), 1.0F); GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 1.0F); GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 1.0F); + GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 1.0F); } } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 2fa797be0..8a725a919 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -426,6 +426,7 @@ public class MainRegistry { GameRegistry.registerTileEntity(TileEntityHadron.class, "tileentity_hadron"); GameRegistry.registerTileEntity(TileEntitySolarBoiler.class, "tileentity_solarboiler"); GameRegistry.registerTileEntity(TileEntitySolarMirror.class, "tileentity_solarmirror"); + GameRegistry.registerTileEntity(TileEntityMachineDetector.class, "tileentity_he_detector"); EntityRegistry.registerModEntity(EntityRocket.class, "entity_rocket", 0, this, 250, 1, true); EntityRegistry.registerModEntity(EntityNukeExplosion.class, "entity_nuke_explosion", 1, this, 250, 1, true); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 1c2c760fb..7e00b9cf9 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -13,6 +13,7 @@ import org.apache.commons.lang3.math.NumberUtils; import com.hbm.blocks.ModBlocks; import com.hbm.config.GeneralConfig; +import com.hbm.config.MobConfig; import com.hbm.config.RadiationConfig; import com.hbm.config.WorldConfig; import com.hbm.entity.missile.EntityMissileBaseAdvanced; @@ -28,6 +29,7 @@ import com.hbm.handler.RadiationWorldHandler; import com.hbm.handler.HTTPHandler; import com.hbm.items.ModItems; import com.hbm.items.armor.ArmorFSB; +import com.hbm.items.special.ItemHot; import com.hbm.items.weapon.ItemGunBase; import com.hbm.lib.Library; import com.hbm.lib.ModDamageSource; @@ -42,6 +44,7 @@ import com.hbm.util.ContaminationUtil; import com.hbm.util.EnchantmentUtil; import com.hbm.world.generator.TimedGenerator; +import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; import cpw.mods.fml.common.gameevent.TickEvent; @@ -105,7 +108,7 @@ public class ModEventHandler event.player.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "New version " + HTTPHandler.versionNumber + " is available!")); } - if(event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasDucked")) + if(MobConfig.enableDucks && event.player instanceof EntityPlayerMP && !event.player.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG).getBoolean("hasDucked")) PacketDispatcher.wrapper.sendTo(new PlayerInformPacket("Press O to Duck!"), (EntityPlayerMP)event.player); } } @@ -473,6 +476,9 @@ public class ModEventHandler ArmorFSB.handleTick(event); + if(player.ticksExisted == 100 || player.ticksExisted == 200) + CraftingManager.crumple(); + if(!player.worldObj.isRemote && event.phase == TickEvent.Phase.START) { /// GHOST FIX START /// @@ -770,5 +776,48 @@ public class ModEventHandler event.cost = 10; } + + if(event.left.getItem() == ModItems.ingot_meteorite && event.right.getItem() == ModItems.ingot_meteorite && + event.left.stackSize == 1 && event.right.stackSize == 1) { + + double h1 = ItemHot.getHeat(event.left); + double h2 = ItemHot.getHeat(event.right); + + if(h1 >= 0.5 && h2 >= 0.5) { + + ItemStack out = new ItemStack(ModItems.ingot_meteorite_forged); + ItemHot.heatUp(out, (h1 + h2) / 2D); + event.output = out; + event.cost = 10; + } + } + + if(event.left.getItem() == ModItems.ingot_meteorite_forged && event.right.getItem() == ModItems.ingot_meteorite_forged && + event.left.stackSize == 1 && event.right.stackSize == 1) { + + double h1 = ItemHot.getHeat(event.left); + double h2 = ItemHot.getHeat(event.right); + + if(h1 >= 0.5 && h2 >= 0.5) { + + ItemStack out = new ItemStack(ModItems.blade_meteorite); + ItemHot.heatUp(out, (h1 + h2) / 2D); + event.output = out; + event.cost = 30; + } + } + + if(event.left.getItem() == ModItems.meteorite_sword_seared && event.right.getItem() == ModItems.ingot_meteorite_forged && + event.left.stackSize == 1 && event.right.stackSize == 1) { + + double h2 = ItemHot.getHeat(event.right); + + if(h2 >= 0.5) { + + ItemStack out = new ItemStack(ModItems.meteorite_sword_reforged); + event.output = out; + event.cost = 50; + } + } } } diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/AuxButtonPacket.java index dab810a22..4fa2dc643 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/AuxButtonPacket.java @@ -1,5 +1,6 @@ package com.hbm.packet; +import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityDuck; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.items.weapon.ItemMissile.PartSize; @@ -281,7 +282,7 @@ public class AuxButtonPacket implements IMessage { NBTTagCompound perDat = p.getEntityData().getCompoundTag(EntityPlayer.PERSISTED_NBT_TAG); - if(!perDat.getBoolean("hasDucked")) { + if(MobConfig.enableDucks && !perDat.getBoolean("hasDucked")) { EntityDuck ducc = new EntityDuck(p.worldObj); ducc.setPosition(p.posX, p.posY + p.eyeHeight, p.posZ); diff --git a/src/main/java/com/hbm/render/item/ItemRendererHot.java b/src/main/java/com/hbm/render/item/ItemRendererHot.java index 2e1f8fdeb..b1ec326f4 100644 --- a/src/main/java/com/hbm/render/item/ItemRendererHot.java +++ b/src/main/java/com/hbm/render/item/ItemRendererHot.java @@ -3,8 +3,12 @@ package com.hbm.render.item; import org.lwjgl.opengl.GL11; import com.hbm.items.special.ItemHot; +import com.hbm.render.util.RenderItemStack; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.item.ItemStack; import net.minecraftforge.client.IItemRenderer; @@ -12,8 +16,7 @@ public class ItemRendererHot implements IItemRenderer { @Override public boolean handleRenderType(ItemStack stack, ItemRenderType type) { - - return true; + return type == ItemRenderType.INVENTORY; } @Override @@ -26,16 +29,21 @@ public class ItemRendererHot implements IItemRenderer { GL11.glPushMatrix(); RenderHelper.enableGUIStandardItemLighting(); - float d = (float)ItemHot.getHeat(item); + Minecraft mc = Minecraft.getMinecraft(); + RenderItemStack.renderItem.renderItemIntoGUI(mc.fontRenderer, mc.renderEngine, item, 0, 0); - //GL11.glColor3f(1F, 1F - d * 0.25F, d); - - /*if(currentItem != null) - RenderItemStack.renderItemStack(0, 0, 1.0F, currentItem); - else - RenderItemStack.renderItemStack(0, 0, 1.0F, item);*/ + double h = ItemHot.getHeat(item); + if(h > 0) { + + GL11.glEnable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_LIGHTING); + OpenGlHelper.glBlendFunc(770, 771, 1, 0); + GL11.glColor4f(1F, 1F, 1F, (float) h); + RenderItem.getInstance().renderIcon(0, 0, ((ItemHot)item.getItem()).hotIcon, 16, 16); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_BLEND); + } GL11.glPopMatrix(); } - } diff --git a/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java b/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java new file mode 100644 index 000000000..f6a4488e6 --- /dev/null +++ b/src/main/java/com/hbm/render/item/ItemRendererMeteorSword.java @@ -0,0 +1,96 @@ +package com.hbm.render.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.lib.RefStrings; +import com.hbm.render.util.RenderItemStack; +import com.hbm.render.util.RenderMiscEffects; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; + +public class ItemRendererMeteorSword implements IItemRenderer { + + float r; + float g; + float b; + + public ItemRendererMeteorSword(float r, float g, float b) { + this.r = r; + this.g = g; + this.b = b; + } + + @Override + public boolean handleRenderType(ItemStack stack, ItemRenderType type) { + return type == ItemRenderType.INVENTORY; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return false; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + GL11.glPushMatrix(); + RenderHelper.enableGUIStandardItemLighting(); + + Minecraft mc = Minecraft.getMinecraft(); + RenderItemStack.renderItem.renderItemIntoGUI(mc.fontRenderer, mc.renderEngine, item, 0, 0); + + mc.renderEngine.bindTexture(RenderMiscEffects.glint); + + GL11.glDepthFunc(GL11.GL_EQUAL); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDepthMask(false); + GL11.glEnable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_BLEND); + + for (int j1 = 0; j1 < 2; ++j1) { + OpenGlHelper.glBlendFunc(772, 1, 0, 0); + float f = 0.00390625F; + float f1 = 0.00390625F; + float f2 = (float)(Minecraft.getSystemTime() % (long)(3000 + j1 * 1873)) / (3000.0F + (float)(j1 * 1873)) * 256.0F; + float f3 = 0.0F; + Tessellator tessellator = Tessellator.instance; + float f4 = 4.0F; + + if (j1 == 1) + { + f4 = -1.0F; + } + + float in = 0.36F; + + GL11.glColor4f(r * in, g * in, b * in, 1.0F); + + int p_77018_2_ = 0; + int p_77018_4_ = 16; + int p_77018_3_ = 0; + int p_77018_5_ = 16; + int zLevel = 0; + + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV((double)(p_77018_2_ + 0), (double)(p_77018_3_ + p_77018_5_), (double)zLevel, (double)((f2 + (float)p_77018_5_ * f4) * f), (double)((f3 + (float)p_77018_5_) * f1)); + tessellator.addVertexWithUV((double)(p_77018_2_ + p_77018_4_), (double)(p_77018_3_ + p_77018_5_), (double)zLevel, (double)((f2 + (float)p_77018_4_ + (float)p_77018_5_ * f4) * f), (double)((f3 + (float)p_77018_5_) * f1)); + tessellator.addVertexWithUV((double)(p_77018_2_ + p_77018_4_), (double)(p_77018_3_ + 0), (double)zLevel, (double)((f2 + (float)p_77018_4_) * f), (double)((f3 + 0.0F) * f1)); + tessellator.addVertexWithUV((double)(p_77018_2_ + 0), (double)(p_77018_3_ + 0), (double)zLevel, (double)((f2 + 0.0F) * f), (double)((f3 + 0.0F) * f1)); + tessellator.draw(); + } + + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDepthMask(true); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDisable(GL11.GL_ALPHA_TEST); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glDepthFunc(GL11.GL_LEQUAL); + + GL11.glPopMatrix(); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderCore.java b/src/main/java/com/hbm/render/tileentity/RenderCore.java index 2c55d77cf..93fba227e 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCore.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCore.java @@ -41,7 +41,7 @@ public class RenderCore extends TileEntitySpecialRenderer { GL11.glRotatef(RenderManager.instance.playerViewX - 90, 1.0F, 0.0F, 0.0F); GL11.glTranslated(-0.5, -0.5, -0.5); - renderVoid(core, 0, 0, 0); + renderOrb(core, 0, 0, 0); GL11.glPopMatrix(); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 32780c5ac..9c8b7db56 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -278,6 +278,9 @@ public class TileEntityMachineAssembler extends TileEntity implements ISidedInve } removeItems(AssemblerRecipes.getRecipeFromTempate(slots[4]), slots); + + if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_alloyed) + slots[0] = new ItemStack(ModItems.meteorite_sword_machined); } power -= consumption; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 8b425bf98..9405fc144 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -60,10 +60,10 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve public TileEntityMachineChemplant() { slots = new ItemStack[21]; tanks = new FluidTank[4]; - tanks[0] = new FluidTank(FluidType.NONE, 16000, 0); - tanks[1] = new FluidTank(FluidType.NONE, 16000, 1); - tanks[2] = new FluidTank(FluidType.NONE, 16000, 2); - tanks[3] = new FluidTank(FluidType.NONE, 16000, 3); + tanks[0] = new FluidTank(FluidType.NONE, 24000, 0); + tanks[1] = new FluidTank(FluidType.NONE, 24000, 1); + tanks[2] = new FluidTank(FluidType.NONE, 24000, 2); + tanks[3] = new FluidTank(FluidType.NONE, 24000, 3); } @Override @@ -301,6 +301,12 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve tanks[0].loadTank(17, 19, slots); tanks[1].loadTank(18, 20, slots); + + if(slots[17] != null && !(slots[17].getItem() == ModItems.fluid_barrel_infinite || slots[17].getItem() == ModItems.inf_water)) + tanks[0].unloadTank(17, 19, slots); + if(slots[18] != null && !(slots[18].getItem() == ModItems.fluid_barrel_infinite || slots[18].getItem() == ModItems.inf_water)) + tanks[1].unloadTank(18, 20, slots); + tanks[2].unloadTank(9, 11, slots); tanks[3].unloadTank(10, 12, slots); @@ -329,6 +335,9 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve removeItems(MachineRecipes.getChemInputFromTempate(slots[4]), slots); removeFluids(inputs); + + if(slots[0] != null && slots[0].getItem() == ModItems.meteorite_sword_machined) + slots[0] = new ItemStack(ModItems.meteorite_sword_treated); } power -= consumption; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java new file mode 100644 index 000000000..d1fc17588 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineDetector.java @@ -0,0 +1,46 @@ +package com.hbm.tileentity.machine; + +import com.hbm.interfaces.IConsumer; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityMachineDetector extends TileEntity implements IConsumer { + + long power; + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + int meta = this.getBlockMetadata(); + int state = 0; + + if(power > 0) { + state = 1; + power--; + } + + if(meta != state) { + worldObj.setBlockMetadataWithNotify(xCoord, yCoord, zCoord, state, 3); + this.markDirty(); + } + } + } + + @Override + public void setPower(long i) { + power = i; + } + + @Override + public long getPower() { + return power; + } + + @Override + public long getMaxPower() { + return 20; + } + +} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFluidTank.java index fb8d2f887..65aa9e30c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFluidTank.java @@ -28,7 +28,7 @@ public class TileEntityMachineFluidTank extends TileEntityMachineBase implements public List list = new ArrayList(); public TileEntityMachineFluidTank() { - super(7); + super(6); tank = new FluidTank(FluidType.NONE, 256000, 0); } diff --git a/src/main/java/com/hbm/util/ArmorUtil.java b/src/main/java/com/hbm/util/ArmorUtil.java index df2e06767..1aa90fb58 100644 --- a/src/main/java/com/hbm/util/ArmorUtil.java +++ b/src/main/java/com/hbm/util/ArmorUtil.java @@ -213,6 +213,22 @@ public class ArmorUtil { { return true; } + if(checkArmorPiece(player, ModItems.t45_helmet, 3)) + { + return true; + } + if(checkArmorPiece(player, ModItems.ajr_helmet, 3)) + { + return true; + } + if(checkArmorPiece(player, ModItems.bj_helmet, 3)) + { + return true; + } + if(checkArmorPiece(player, ModItems.hev_helmet, 3)) + { + return true; + } return false; } diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index c291c46f5..a168324ab 100755 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -8,7 +8,7 @@ "url": "", "updateUrl": "", "authorList": ["HbMinecraft"], - "credits": "rodolphito, Tamaized, grangerave, Hoboy, HBM", + "credits": "rodolphito, grangerave, Hoboy, Drillgon200, HBM", "logoFile": "", "screenshots": [], "dependencies": []