diff --git a/changelog b/changelog index e60e68ce4..53a3e52b4 100644 --- a/changelog +++ b/changelog @@ -1,36 +1,10 @@ -## Added -* Precision assembler -* Annihilator - ## Changed -* New fusion reactor and particle accelerator parts now have OpenComputers compat -* Irradiation recipe config now has the `fusionOnly` flag, preventing the recipe from being done in the RBMK irradiation channel -* Removed legacy fusion reactor parts from the creative inventory -* Removed the legacy fusion reactor core components -* If a legacy fusion reactor explodes, it is now destroyed forever and cannot be reassembled -* Legacy fusion reactors no longer disassemble when being mined, rather they drop as one block -* Legacy templates are no longer listed in the creative tab -* Removed the old meltdown achievement -* Eating canned fists now hurts -* Due to repeated incidents regarding canned black holes, the mechanics have changed - * Vortices spawned now have a flag set that prevents them from breaking blocks entirely - * Vortices decay 4x faster than those spawned by singularity items, it should last about 2.5 seconds in total - * It will still very much kill you instantly and destroy your items -* Storage crates can no longer be placed into containment boxes -* Expensive mode now has a new microcrafting item, being made from multiple types of plastic -* Fusion reactor parts now have expensive mode recipes -* Both types of blueprint booklets are now obtainable via precision assembler - * The recipes are lengthy, require a lot of power and have a low chance of succeeding - * Recipes require the divine pufferfish, driver of all innovation - * Where can you get this much pufferfish? Go figure it out -* Chance output stacks no longer do an RNG call to determine if the whole stack is provided or none, rather, each single item of the stack has its own RNG call -* Hiperf bedrock ore processing of heavy metals now yields tantalium -* Bedrock coltan is no longer a dedicated bedrock ore type -* Alt fire is now available for 10ga double barrel shotguns, allowing only a single barrel to be fired at once -* The custom mapping function on RoR torches now supports up to 32 characters instead of 15 -* Drainage pipes, flare stacks and the annihilator now have the default fluid priority of LOW, meaning that excess removal using those no longer requires flow control pumps +* After not being part of worldgen for a long time, oily coal is finally being removed +* The rare metal blocks that had been unobtainable and unused for the longest time have been removed +* The schrabidium transmutator's grace period is over, it is finally being destroyed +* Most of the legacy fusion reactor components, which were unobtainable and unusable, have been removed + * The block ID economy is looking better than ever ## Fixed -* Fixed gamebreaking issue causing crashes and world corruption where the multi detonator had its tooltip misspelled -* Fixed panzerschreck equip animation not speeding up with the sawed off mod -* Fixed FENSU not keeping its charge when broken \ No newline at end of file +* Fixed meteors using a nonexistant keepalive timer, causing potential audio flickering in certain cases +* Fixed 528 coltan deposit config misspelling \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 4c3fe0d0e..1d866b3e4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=5526 +mod_build_number=5546 credits=HbMinecraft,\ \ rodolphito (explosion algorithms),\ diff --git a/src/main/java/api/hbm/energymk2/IBatteryItem.java b/src/main/java/api/hbm/energymk2/IBatteryItem.java index d0d5931b7..a8983f984 100644 --- a/src/main/java/api/hbm/energymk2/IBatteryItem.java +++ b/src/main/java/api/hbm/energymk2/IBatteryItem.java @@ -11,8 +11,8 @@ public interface IBatteryItem { public void dischargeBattery(ItemStack stack, long i); public long getCharge(ItemStack stack); public long getMaxCharge(ItemStack stack); - public long getChargeRate(); - public long getDischargeRate(); + public long getChargeRate(ItemStack stack); + public long getDischargeRate(ItemStack stack); /** Returns a string for the NBT tag name of the long storing power */ public default String getChargeTagName() { diff --git a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java index e8c8cf09b..50f74215c 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyProviderMK2.java @@ -43,7 +43,7 @@ public interface IEnergyProviderMK2 extends IEnergyHandlerMK2 { if(te instanceof IEnergyReceiverMK2 && te != this) { IEnergyReceiverMK2 rec = (IEnergyReceiverMK2) te; - if(rec.canConnect(dir.getOpposite())) { + if(rec.canConnect(dir.getOpposite()) && rec.allowDirectProvision()) { long provides = Math.min(this.getPower(), this.getProviderSpeed()); long receives = Math.min(rec.getMaxPower() - rec.getPower(), rec.getReceiverSpeed()); long toTransfer = Math.min(provides, receives); diff --git a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java index 8978d64d4..466b8b277 100644 --- a/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java +++ b/src/main/java/api/hbm/energymk2/IEnergyReceiverMK2.java @@ -31,6 +31,9 @@ public interface IEnergyReceiverMK2 extends IEnergyHandlerMK2 { public default long getReceiverSpeed() { return this.getMaxPower(); } + + /** Whether a provider can provide power by touching the block (i.e. via proxies), bypassing the need for a network entirely */ + public default boolean allowDirectProvision() { return true; } public default void trySubscribe(World world, DirPos pos) { trySubscribe(world, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } diff --git a/src/main/java/api/hbm/energymk2/PowerNetMK2.java b/src/main/java/api/hbm/energymk2/PowerNetMK2.java index 34e8205f6..768ad9a28 100644 --- a/src/main/java/api/hbm/energymk2/PowerNetMK2.java +++ b/src/main/java/api/hbm/energymk2/PowerNetMK2.java @@ -78,7 +78,7 @@ public class PowerNetMK2 extends NodeNet entry : list) { double weight = (double) entry.getValue() / (double) (priorityDemand); - long toSend = (long) Math.max(toTransfer * weight, 0D); + long toSend = (long) Math.min(Math.max(toTransfer * weight, 0D), entry.getValue()); energyUsed += (toSend - entry.getKey().transferPower(toSend)); //leftovers are subtracted from the intended amount to use up } diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index f0bb220e6..e0e4410d5 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -154,8 +154,6 @@ public class ModBlocks { public static Block ore_bedrock_oil; public static Block ore_lignite; public static Block ore_asbestos; - @Deprecated public static Block ore_coal_oil; - @Deprecated public static Block ore_coal_oil_burning; public static Block ore_tikite; @@ -252,11 +250,6 @@ public class ModBlocks { public static Block block_slag; public static Block block_australium; - public static Block block_weidanium; - public static Block block_reiium; - public static Block block_unobtainium; - public static Block block_daffergon; - public static Block block_verticium; public static Block block_cap; @@ -747,18 +740,16 @@ public class ModBlocks { public static Block machine_electric_furnace_off; public static Block machine_electric_furnace_on; - public static Block machine_microwave; - //public static Block machine_deuterium; - - public static Block machine_battery_potato; - public static Block machine_battery; - public static Block machine_lithium_battery; - public static Block machine_schrabidium_battery; - public static Block machine_dineutronium_battery; + public static Block machine_battery_socket; + + @Deprecated public static Block machine_battery_potato; + @Deprecated public static Block machine_battery; + @Deprecated public static Block machine_lithium_battery; + @Deprecated public static Block machine_schrabidium_battery; + @Deprecated public static Block machine_dineutronium_battery; public static Block machine_fensu; - public static final int guiID_machine_fensu = 99; public static Block capacitor_bus; public static Block capacitor_copper; @@ -809,7 +800,6 @@ public class ModBlocks { public static Block conveyor; public static Block conveyor_express; - //public static Block conveyor_classic; public static Block conveyor_double; public static Block conveyor_triple; public static Block conveyor_chute; @@ -834,7 +824,6 @@ public class ModBlocks { public static Block pneumatic_tube_paintable; public static Block fan; - public static Block piston_inserter; public static Block chain; @@ -853,8 +842,8 @@ public class ModBlocks { public static Block trapdoor_steel; public static Block barrel_plastic; - public static Block barrel_corroded; - public static Block barrel_iron; + @Deprecated public static Block barrel_corroded; + @Deprecated public static Block barrel_iron; public static Block barrel_steel; public static Block barrel_tcalloy; public static Block barrel_antimatter; @@ -900,9 +889,6 @@ public class ModBlocks { public static Block pwr_controller; public static Block pwr_block; - @Deprecated public static Block fusion_conductor; - @Deprecated public static Block fusion_center; - @Deprecated public static Block fusion_motor; @Deprecated public static Block fusion_heater; @Deprecated public static Block fusion_hatch; @Deprecated public static Block plasma; // only actually used by the old plasma grenade, will die with the grenade rework @@ -946,8 +932,6 @@ public class ModBlocks { public static Block machine_converter_he_rf; public static Block machine_converter_rf_he; - public static Block machine_schrabidium_transmutator; - public static Block machine_diesel; public static Block machine_combustion_engine; @@ -958,8 +942,6 @@ public class ModBlocks { public static Block field_disturber; public static Block machine_rtg_grey; - public static Block machine_amgen; - public static Block machine_geo; public static Block machine_minirtg; public static Block machine_powerrtg; public static Block machine_radiolysis; @@ -1293,8 +1275,6 @@ public class ModBlocks { ore_beryllium = new BlockGeneric(Material.rock).setBlockName("ore_beryllium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_beryllium"); ore_lignite = new BlockOre(Material.rock).setBlockName("ore_lignite").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_lignite"); ore_asbestos = new BlockOutgas(Material.rock, true, 5, true).setBlockName("ore_asbestos").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_asbestos"); - ore_coal_oil = new BlockCoalOil(Material.rock).setBlockName("ore_coal_oil").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil"); - ore_coal_oil_burning = new BlockCoalBurning(Material.rock).setBlockName("ore_coal_oil_burning").setCreativeTab(MainRegistry.blockTab).setLightLevel(10F/15F).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":ore_coal_oil_burning"); cluster_iron = new BlockCluster(Material.rock).setBlockName("cluster_iron").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_iron"); cluster_titanium = new BlockCluster(Material.rock).setBlockName("cluster_titanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(15.0F).setBlockTextureName(RefStrings.MODID + ":cluster_titanium"); @@ -1473,11 +1453,6 @@ public class ModBlocks { block_slag = new BlockSlag(Material.rock).setBlockName("block_slag").setCreativeTab(MainRegistry.blockTab).setStepSound(Block.soundTypeStone).setHardness(2.0F).setBlockTextureName(RefStrings.MODID + ":block_slag"); block_australium = new BlockBeaconable(Material.iron).setBlockName("block_australium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_australium"); - block_weidanium = new BlockBeaconable(Material.iron).setBlockName("block_weidanium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); - block_reiium = new BlockBeaconable(Material.iron).setBlockName("block_reiium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); - block_unobtainium = new BlockBeaconable(Material.iron).setBlockName("block_unobtainium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); - block_daffergon = new BlockBeaconable(Material.iron).setBlockName("block_daffergon").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); - block_verticium = new BlockBeaconable(Material.iron).setBlockName("block_verticium").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F).setBlockTextureName(RefStrings.MODID + ":block_deprecated"); block_cap = new BlockCap().setBlockName("block_cap").setCreativeTab(MainRegistry.blockTab).setHardness(5.0F).setResistance(10.0F); @@ -1888,6 +1863,7 @@ public class ModBlocks { machine_arc_furnace = new MachineArcFurnaceLarge().setBlockName("machine_arc_furnace").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_microwave = new MachineMicrowave(Material.iron).setBlockName("machine_microwave").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_microwave"); + machine_battery_socket = new MachineBatterySocket().setBlockName("machine_battery_socket").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); machine_battery_potato = new MachineBattery(Material.iron, 10_000).setBlockName("machine_battery_potato").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_battery = new MachineBattery(Material.iron, 1_000_000).setBlockName("machine_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_lithium_battery = new MachineBattery(Material.iron, 50_000_000).setBlockName("machine_lithium_battery").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); @@ -1913,8 +1889,6 @@ public class ModBlocks { field_disturber = new MachineFieldDisturber().setBlockName("field_disturber").setHardness(5.0F).setResistance(200.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":field_disturber"); machine_rtg_grey = new MachineRTG(Material.iron).setBlockName("machine_rtg_grey").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg"); - machine_amgen = new MachineAmgen(Material.iron).setBlockName("machine_amgen").setHardness(5.0F).setResistance(10.0F); - machine_geo = new MachineAmgen(Material.iron).setBlockName("machine_geo").setHardness(5.0F).setResistance(10.0F); machine_minirtg = new MachineMiniRTG(Material.iron).setBlockName("machine_minirtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_cell"); machine_powerrtg = new MachineMiniRTG(Material.iron).setBlockName("machine_powerrtg").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rtg_polonium"); machine_radiolysis = new MachineRadiolysis(Material.iron).setBlockName("machine_radiolysis").setHardness(10.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel_machine"); @@ -2000,8 +1974,8 @@ public class ModBlocks { trapdoor_steel = new BlockNTMTrapdoor(Material.iron).setBlockName("trapdoor_steel").setHardness(3F).setResistance(8.0F).setStepSound(Block.soundTypeMetal).setCreativeTab(MainRegistry.blockTab).setBlockTextureName(RefStrings.MODID + ":trapdoor_steel"); barrel_plastic = new BlockFluidBarrel(Material.iron, 12000).setBlockName("barrel_plastic").setStepSound(Block.soundTypeStone).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_plastic"); - barrel_corroded = new BlockFluidBarrel(Material.iron, 6000).setBlockName("barrel_corroded").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_corroded"); - barrel_iron = new BlockFluidBarrel(Material.iron, 8000).setBlockName("barrel_iron").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_iron"); + barrel_corroded = new BlockFluidBarrel(Material.iron, 6000).setBlockName("barrel_corroded").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barrel_corroded"); + barrel_iron = new BlockFluidBarrel(Material.iron, 8000).setBlockName("barrel_iron").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":barrel_iron"); barrel_steel = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_steel").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_steel"); barrel_tcalloy = new BlockFluidBarrel(Material.iron, 24000).setBlockName("barrel_tcalloy").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_tcalloy"); barrel_antimatter = new BlockFluidBarrel(Material.iron, 16000).setBlockName("barrel_antimatter").setStepSound(Block.soundTypeMetal).setHardness(2.0F).setResistance(5.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":barrel_antimatter"); @@ -2052,9 +2026,6 @@ public class ModBlocks { pwr_controller = new MachinePWRController(Material.iron).setBlockName("pwr_controller").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":pwr_casing_blank"); pwr_block = new BlockPWR(Material.iron).setBlockName("pwr_block").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":pwr_block"); - fusion_conductor = new BlockToolConversionPillar(Material.iron).addVariant("_welded").setBlockName("fusion_conductor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_conductor"); - fusion_center = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_center_top_alt").setBlockName("fusion_center").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_center_side_alt"); - fusion_motor = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_motor_top_alt").setBlockName("fusion_motor").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_motor_side_alt"); fusion_heater = new BlockPillar(Material.iron, RefStrings.MODID + ":fusion_heater_top").setBlockName("fusion_heater").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_heater_side"); fusion_hatch = new FusionHatch(Material.iron).setBlockName("fusion_hatch").setHardness(5.0F).setResistance(10.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":fusion_hatch"); plasma = new BlockPlasma(Material.iron).setBlockName("plasma").setHardness(5.0F).setResistance(6000.0F).setLightLevel(1.0F).setCreativeTab(null).setBlockTextureName(RefStrings.MODID + ":plasma"); @@ -2327,8 +2298,6 @@ public class ModBlocks { machine_waste_drum = new WasteDrum(Material.iron).setBlockName("machine_waste_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":waste_drum"); machine_storage_drum = new StorageDrum(Material.iron).setBlockName("machine_storage_drum").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_storage_drum"); - machine_schrabidium_transmutator = new MachineSchrabidiumTransmutator(Material.iron).setBlockName("machine_schrabidium_transmutator").setHardness(5.0F).setResistance(100.0F).setCreativeTab(MainRegistry.machineTab); - machine_siren = new MachineSiren(Material.iron).setBlockName("machine_siren").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_siren"); machine_spp_bottom = new SPPBottom(Material.iron).setBlockName("machine_spp_bottom").setHardness(5.0F).setResistance(10.0F); @@ -2488,10 +2457,6 @@ public class ModBlocks { //Bedrock ores GameRegistry.registerBlock(ore_bedrock_oil, ore_bedrock_oil.getUnlocalizedName()); - //Nice Meme - GameRegistry.registerBlock(ore_coal_oil, ore_coal_oil.getUnlocalizedName()); - GameRegistry.registerBlock(ore_coal_oil_burning, ore_coal_oil_burning.getUnlocalizedName()); - //Nether Ores GameRegistry.registerBlock(ore_nether_coal, ore_nether_coal.getUnlocalizedName()); GameRegistry.registerBlock(ore_nether_smoldering, ore_nether_smoldering.getUnlocalizedName()); @@ -2656,11 +2621,6 @@ public class ModBlocks { GameRegistry.registerBlock(block_bakelite, block_bakelite.getUnlocalizedName()); GameRegistry.registerBlock(block_rubber, block_rubber.getUnlocalizedName()); GameRegistry.registerBlock(block_australium, ItemOreBlock.class, block_australium.getUnlocalizedName()); - GameRegistry.registerBlock(block_weidanium, ItemOreBlock.class, block_weidanium.getUnlocalizedName()); - GameRegistry.registerBlock(block_reiium, ItemOreBlock.class, block_reiium.getUnlocalizedName()); - GameRegistry.registerBlock(block_unobtainium, ItemOreBlock.class, block_unobtainium.getUnlocalizedName()); - GameRegistry.registerBlock(block_daffergon, ItemOreBlock.class, block_daffergon.getUnlocalizedName()); - GameRegistry.registerBlock(block_verticium, ItemOreBlock.class, block_verticium.getUnlocalizedName()); register(block_cap); GameRegistry.registerBlock(block_lanthanium, block_lanthanium.getUnlocalizedName()); GameRegistry.registerBlock(block_ra226, block_ra226.getUnlocalizedName()); @@ -3159,8 +3119,6 @@ public class ModBlocks { GameRegistry.registerBlock(machine_cyclotron, machine_cyclotron.getUnlocalizedName()); GameRegistry.registerBlock(machine_exposure_chamber, machine_exposure_chamber.getUnlocalizedName()); GameRegistry.registerBlock(machine_rtg_grey, machine_rtg_grey.getUnlocalizedName()); - GameRegistry.registerBlock(machine_geo, machine_geo.getUnlocalizedName()); - GameRegistry.registerBlock(machine_amgen, machine_amgen.getUnlocalizedName()); GameRegistry.registerBlock(machine_minirtg, machine_minirtg.getUnlocalizedName()); GameRegistry.registerBlock(machine_powerrtg, machine_powerrtg.getUnlocalizedName()); GameRegistry.registerBlock(machine_radiolysis, machine_radiolysis.getUnlocalizedName()); @@ -3307,6 +3265,7 @@ public class ModBlocks { register(barrel_steel); register(barrel_tcalloy); register(barrel_antimatter); + register(machine_battery_socket); register(machine_battery_potato); register(machine_battery); register(machine_lithium_battery); @@ -3387,7 +3346,6 @@ public class ModBlocks { register(machine_turbofan); register(machine_turbinegas); register(machine_lpw2); - GameRegistry.registerBlock(machine_schrabidium_transmutator, machine_schrabidium_transmutator.getUnlocalizedName()); GameRegistry.registerBlock(machine_teleporter, machine_teleporter.getUnlocalizedName()); GameRegistry.registerBlock(teleanchor, teleanchor.getUnlocalizedName()); GameRegistry.registerBlock(field_disturber, field_disturber.getUnlocalizedName()); @@ -3451,9 +3409,6 @@ public class ModBlocks { register(pwr_block); //Multiblock Generators - register(fusion_conductor); - GameRegistry.registerBlock(fusion_center, fusion_center.getUnlocalizedName()); - GameRegistry.registerBlock(fusion_motor, fusion_motor.getUnlocalizedName()); GameRegistry.registerBlock(fusion_heater, fusion_heater.getUnlocalizedName()); GameRegistry.registerBlock(fusion_hatch, fusion_hatch.getUnlocalizedName()); GameRegistry.registerBlock(plasma, ItemBlockLore.class, plasma.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockCoalBurning.java b/src/main/java/com/hbm/blocks/generic/BlockCoalBurning.java deleted file mode 100644 index 312c9c310..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockCoalBurning.java +++ /dev/null @@ -1,78 +0,0 @@ -package com.hbm.blocks.generic; - -import java.util.Random; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.item.Item; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class BlockCoalBurning extends BlockOutgas { - - public BlockCoalBurning(Material mat) { - super(mat, false, 1, false); - this.setTickRandomly(true); - } - - @Override - @SideOnly(Side.CLIENT) - public void randomDisplayTick(World world, int x, int y, int z, Random rand) { - super.randomDisplayTick(world, x, y, z, rand); - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - - if(dir == ForgeDirection.DOWN) - continue; - - if(world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).getMaterial() == Material.air) { - - double ix = x + 0.5F + dir.offsetX + rand.nextDouble() - 0.5D; - double iy = y + 0.5F + dir.offsetY + rand.nextDouble() - 0.5D; - double iz = z + 0.5F + dir.offsetZ + rand.nextDouble() - 0.5D; - - if(dir.offsetX != 0) - ix = x + 0.5F + dir.offsetX * 0.5 + rand.nextDouble() * 0.125 * dir.offsetX; - if(dir.offsetY != 0) - iy = y + 0.5F + dir.offsetY * 0.5 + rand.nextDouble() * 0.125 * dir.offsetY; - if(dir.offsetZ != 0) - iz = z + 0.5F + dir.offsetZ * 0.5 + rand.nextDouble() * 0.125 * dir.offsetZ; - - world.spawnParticle("flame", ix, iy, iz, 0.0, 0.0, 0.0); - world.spawnParticle("smoke", ix, iy, iz, 0.0, 0.0, 0.0); - world.spawnParticle("smoke", ix, iy, iz, 0.0, 0.1, 0.0); - } - } - } - - @Override - public Item getItemDropped(int i, Random rand, int j) { - return null; - } - - public void breakBlock(World world, int x, int y, int z, Block block, int i) { - super.breakBlock(world, x, y, z, block, i); - - world.setBlock(x, y, z, Blocks.fire); - - for(int ix = -2; ix <= 2; ix++) { - for(int iy = -2; iy <= 2; iy++) { - for(int iz = -2; iz <= 2; iz++) { - - if(Math.abs(ix + iy + iz) < 5 && world.getBlock(x + ix, y + iy, z + iz) == Blocks.air) { - world.setBlock(x + ix, y + iy, z + iz, this.getGas()); - } - } - } - } - } - - @Override - public void onEntityWalking(World world, int x, int y, int z, Entity entity) { - entity.setFire(3); - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java b/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java deleted file mode 100644 index cb6f4ea7e..000000000 --- a/src/main/java/com/hbm/blocks/generic/BlockCoalOil.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.hbm.blocks.generic; - -import java.util.Random; - -import com.hbm.blocks.ModBlocks; - -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.world.World; - -public class BlockCoalOil extends Block { - - public BlockCoalOil(Material mat) { - super(mat); - } - - @Override - public void updateTick(World world, int x, int y, int z, Random rand) { - world.setBlock(x, y, z, ModBlocks.ore_coal_oil_burning); - } - - @Override - public Item getItemDropped(int i, Random rand, int j) { - return Items.coal; - } - - @Override - public int quantityDropped(Random rand) { - return 2 + rand.nextInt(2); - } -} diff --git a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java index 9fe92c1b9..c5361d9b2 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockOutgas.java +++ b/src/main/java/com/hbm/blocks/generic/BlockOutgas.java @@ -50,7 +50,7 @@ public class BlockOutgas extends BlockOre { if(this == ModBlocks.ancient_scrap) return ModBlocks.gas_radon_tomb; - if(this == ModBlocks.ore_coal_oil_burning || this == ModBlocks.ore_nether_coal) { + if(this == ModBlocks.ore_nether_coal) { return ModBlocks.gas_monoxide; } diff --git a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java index f018659c3..e3945fbad 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java +++ b/src/main/java/com/hbm/blocks/generic/BlockToolConversion.java @@ -152,7 +152,6 @@ public class BlockToolConversion extends BlockMulti implements IToolable, ILookO public static void registerRecipes() { conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.watz_end, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.DURA.bolt(), 4)}, new MetaBlock(ModBlocks.watz_end, 1))); - conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_conductor, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_conductor, 1))); conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.fusion_component, 0)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast())}, new MetaBlock(ModBlocks.fusion_component, 1))); conversions.put(new Pair(ToolType.TORCH, new MetaBlock(ModBlocks.icf_component, 1)), new Pair(new AStack[] {new OreDictStack(OreDictManager.ANY_BISMOIDBRONZE.plateCast())}, new MetaBlock(ModBlocks.icf_component, 2))); conversions.put(new Pair(ToolType.BOLT, new MetaBlock(ModBlocks.icf_component, 3)), new Pair(new AStack[] {new OreDictStack(OreDictManager.STEEL.plateCast()), new OreDictStack(OreDictManager.DURA.bolt(), 4)}, new MetaBlock(ModBlocks.icf_component, 4))); diff --git a/src/main/java/com/hbm/blocks/machine/MachineAmgen.java b/src/main/java/com/hbm/blocks/machine/MachineAmgen.java deleted file mode 100644 index efa23accc..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineAmgen.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineAmgen; - -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.World; - -public class MachineAmgen extends BlockContainer { - - @SideOnly(Side.CLIENT) - private IIcon iconTop; - - public MachineAmgen(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineAmgen(); - } - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":block_deprecated"); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/MachineITER.java b/src/main/java/com/hbm/blocks/machine/MachineITER.java index 3a4aaba1d..02fbb5749 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineITER.java +++ b/src/main/java/com/hbm/blocks/machine/MachineITER.java @@ -18,6 +18,7 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; +@Deprecated public class MachineITER extends BlockDummyable { public MachineITER() { diff --git a/src/main/java/com/hbm/blocks/machine/MachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/blocks/machine/MachineSchrabidiumTransmutator.java deleted file mode 100644 index 04bc79818..000000000 --- a/src/main/java/com/hbm/blocks/machine/MachineSchrabidiumTransmutator.java +++ /dev/null @@ -1,133 +0,0 @@ -package com.hbm.blocks.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.lib.RefStrings; -import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; -import cpw.mods.fml.common.network.internal.FMLNetworkHandler; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.block.BlockContainer; -import net.minecraft.block.material.Material; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.entity.item.EntityItem; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -import java.util.Random; - -public class MachineSchrabidiumTransmutator extends BlockContainer { - - private final Random field_149933_a = new Random(); - private static boolean keepInventory; - - @SideOnly(Side.CLIENT) - //private IIcon iconFront; - private IIcon iconTop; - private IIcon iconBottom; - - @Override - @SideOnly(Side.CLIENT) - public void registerBlockIcons(IIconRegister iconRegister) { - this.iconTop = iconRegister.registerIcon(RefStrings.MODID + (":transmutator_top")); - this.iconBottom = iconRegister.registerIcon(RefStrings.MODID + (":transmutator_bottom")); - this.blockIcon = iconRegister.registerIcon(RefStrings.MODID + ":transmutator_side"); - } - - @Override - @SideOnly(Side.CLIENT) - public IIcon getIcon(int side, int metadata) { - return side == 1 ? this.iconTop : (side == 0 ? this.iconBottom : this.blockIcon); - } - - public MachineSchrabidiumTransmutator(Material p_i45386_1_) { - super(p_i45386_1_); - } - - @Override - public Item getItemDropped(int p_149650_1_, Random p_149650_2_, int p_149650_3_) - { - return Item.getItemFromBlock(ModBlocks.machine_schrabidium_transmutator); - } - - @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { - if(world.isRemote) - { - return true; - } else if(!player.isSneaking()) - { - TileEntityMachineSchrabidiumTransmutator entity = (TileEntityMachineSchrabidiumTransmutator) world.getTileEntity(x, y, z); - if(entity != null) - { - FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z); - } - return true; - } else { - return false; - } - } - - @Override - public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { - return new TileEntityMachineSchrabidiumTransmutator(); - } - - @Override - public void breakBlock(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, Block p_149749_5_, int p_149749_6_) - { - if (!keepInventory) - { - TileEntityMachineSchrabidiumTransmutator tileentityfurnace = (TileEntityMachineSchrabidiumTransmutator)p_149749_1_.getTileEntity(p_149749_2_, p_149749_3_, p_149749_4_); - - if (tileentityfurnace != null) - { - for (int i1 = 0; i1 < tileentityfurnace.getSizeInventory(); ++i1) - { - ItemStack itemstack = tileentityfurnace.getStackInSlot(i1); - - if (itemstack != null) - { - float f = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f1 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - float f2 = this.field_149933_a.nextFloat() * 0.8F + 0.1F; - - while (itemstack.stackSize > 0) - { - int j1 = this.field_149933_a.nextInt(21) + 10; - - if (j1 > itemstack.stackSize) - { - j1 = itemstack.stackSize; - } - - itemstack.stackSize -= j1; - EntityItem entityitem = new EntityItem(p_149749_1_, p_149749_2_ + f, p_149749_3_ + f1, p_149749_4_ + f2, new ItemStack(itemstack.getItem(), j1, itemstack.getItemDamage())); - - if (itemstack.hasTagCompound()) - { - entityitem.getEntityItem().setTagCompound((NBTTagCompound)itemstack.getTagCompound().copy()); - } - - float f3 = 0.05F; - entityitem.motionX = (float)this.field_149933_a.nextGaussian() * f3; - entityitem.motionY = (float)this.field_149933_a.nextGaussian() * f3 + 0.2F; - entityitem.motionZ = (float)this.field_149933_a.nextGaussian() * f3; - p_149749_1_.spawnEntityInWorld(entityitem); - } - } - } - - p_149749_1_.func_147453_f(p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_); - } - } - - super.breakBlock(p_149749_1_, p_149749_2_, p_149749_3_, p_149749_4_, p_149749_5_, p_149749_6_); - } -} diff --git a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java index de5ef940d..ba5865e82 100644 --- a/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java +++ b/src/main/java/com/hbm/blocks/machine/rbmk/RBMKRod.java @@ -1,9 +1,13 @@ package com.hbm.blocks.machine.rbmk; import com.hbm.handler.BossSpawnHandler; +import com.hbm.items.machine.ItemRBMKLid; +import com.hbm.items.machine.ItemRBMKRod; +import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyInventory; import com.hbm.tileentity.machine.rbmk.TileEntityRBMKRod; +import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; @@ -32,7 +36,34 @@ public class RBMKRod extends RBMKBase { @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { BossSpawnHandler.markFBI(player); - return openInv(world, x, y, z, player); + + if(world.isRemote) return true; + + int[] pos = this.findCore(world, x, y, z); + if(pos == null) return false; + + TileEntity te = world.getTileEntity(pos[0], pos[1], pos[2]); + if(!(te instanceof TileEntityRBMKRod)) return false; + TileEntityRBMKRod rbmk = (TileEntityRBMKRod) te; + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemRBMKLid) { + if(!rbmk.hasLid()) return false; + } + + if(player.getHeldItem() != null && player.getHeldItem().getItem() instanceof ItemRBMKRod && rbmk.slots[0] == null) { + rbmk.slots[0] = player.getHeldItem().copy(); + rbmk.slots[0].stackSize = 1; + player.getHeldItem().stackSize--; + world.playSoundEffect(x + 0.5, y + 0.5, z + 0.5, "hbm:item.upgradePlug", 1.0F, 1.0F); + return false; + } + + if(!player.isSneaking()) { + FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, pos[0], pos[1], pos[2]); + return true; + } else { + return true; + } } @Override diff --git a/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java b/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java new file mode 100644 index 000000000..a1030cd99 --- /dev/null +++ b/src/main/java/com/hbm/blocks/network/MachineBatterySocket.java @@ -0,0 +1,51 @@ +package com.hbm.blocks.network; + +import java.util.List; + +import com.hbm.blocks.BlockDummyable; +import com.hbm.blocks.ITooltipProvider; +import com.hbm.tileentity.TileEntityProxyCombo; +import com.hbm.tileentity.machine.storage.TileEntityBatterySocket; + +import net.minecraft.block.material.Material; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class MachineBatterySocket extends BlockDummyable implements ITooltipProvider { + + public MachineBatterySocket() { + super(Material.iron); + } + + @Override + public TileEntity createNewTileEntity(World world, int meta) { + if(meta >= 12) return new TileEntityBatterySocket(); + if(meta >= 6) return new TileEntityProxyCombo().inventory().power().conductor(); + return null; + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + return standardOpenBehavior(world, x, y, z, player, side); + } + + @Override public int[] getDimensions() { return new int[] {1, 0, 1, 0, 1, 0}; } + @Override public int getOffset() { return 0; } + + protected void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) { + super.fillSpace(world, x, y, z, dir, o); + + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + this.makeExtra(world, x - dir.offsetX, y, z - dir.offsetZ); + this.makeExtra(world, x + rot.offsetX, y, z + rot.offsetZ); + this.makeExtra(world, x - dir.offsetX + rot.offsetX, y, z - dir.offsetZ + rot.offsetZ); + } + + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) { + addStandardInfo(stack, player, list, ext); + } +} diff --git a/src/main/java/com/hbm/commands/CommandReloadRecipes.java b/src/main/java/com/hbm/commands/CommandReloadRecipes.java index a07b43848..1c88fa350 100644 --- a/src/main/java/com/hbm/commands/CommandReloadRecipes.java +++ b/src/main/java/com/hbm/commands/CommandReloadRecipes.java @@ -4,7 +4,6 @@ import com.hbm.config.ItemPoolConfigJSON; import com.hbm.inventory.FluidContainerRegistry; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.loader.SerializableRecipe; -import com.hbm.particle.helper.SkeletonCreator; import com.hbm.util.ChatBuilder; import com.hbm.util.DamageResistanceHandler; @@ -34,7 +33,6 @@ public class CommandReloadRecipes extends CommandBase { SerializableRecipe.initialize(); ItemPoolConfigJSON.initialize(); DamageResistanceHandler.init(); - SkeletonCreator.init(); sender.addChatMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Reload complete :)")); } catch(Exception ex) { diff --git a/src/main/java/com/hbm/config/GeneralConfig.java b/src/main/java/com/hbm/config/GeneralConfig.java index 9dc23a824..bf32acb72 100644 --- a/src/main/java/com/hbm/config/GeneralConfig.java +++ b/src/main/java/com/hbm/config/GeneralConfig.java @@ -50,6 +50,7 @@ public class GeneralConfig { public static boolean enable528BosniaSimulator = true; public static boolean enable528NetherBurn = true; public static boolean enable528PressurizedRecipes = true; + public static boolean enable528ExplosiveEnergistics = true; public static int coltanRate = 2; public static boolean enableLBSM = false; @@ -127,11 +128,12 @@ public class GeneralConfig { enable528 = CommonConfig.createConfigBool(config, CATEGORY_528, "enable528Mode", "The central toggle for 528 mode, required TRUE for most subsequent toggles to work.", false); enable528ReasimBoilers = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_forceReasimBoilers", "Keeps the RBMK dial for ReaSim boilers on, preventing use of non-ReaSim boiler columns and forcing the use of steam in-/outlets", true); - enable528ColtanDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanDepsoit", "Enables the coltan deposit. A large amount of coltan will spawn around a single random location in the world.", true); + enable528ColtanDeposit = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanDeposit", "Enables the coltan deposit. A large amount of coltan will spawn around a single random location in the world.", true); enable528ColtanSpawn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableColtanSpawning", "Enables coltan ore as a random spawn in the world. Unlike the deposit option, coltan will not just spawn in one central location.", false); enable528BosniaSimulator = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enableBosniaSimulator", "Enables anti tank mines spawning all over the world.", true); enable528NetherBurn = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528NetherBurn", "Whether players burn in the nether", true); enable528PressurizedRecipes = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528PressurizedRecipes", "Sets some recipes to require pressurized input fluid", true); + enable528ExplosiveEnergistics = CommonConfig.createConfigBool(config, CATEGORY_528, "X528_enable528ExplosiveEnergistics", "Renders AE2 unusable.", true); coltanRate = CommonConfig.createConfigInt(config, CATEGORY_528, "X528_oreColtanFrequency", "Determines how many coltan ore veins are to be expected in a chunk. These values do not affect the frequency in deposits, and only apply if random coltan spanwing is enabled.", 2); final String CATEGORY_LBSM = CommonConfig.CATEGORY_LBSM; @@ -155,7 +157,7 @@ public class GeneralConfig { enableLBSMSafeCrates = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_safeCrates", "When enabled, prevents crates from becoming radioactive", true); enableLBSMSafeMEDrives = CommonConfig.createConfigBool(config, CATEGORY_LBSM, "LBSM_safeMEDrives", "When enabled, prevents ME Drives and Portable Cells from becoming radioactive", true); schrabRate = CommonConfig.createConfigInt(config, CATEGORY_LBSM, "LBSM_schrabOreRate", "Changes the amount of uranium ore needed on average to create one schrabidium ore using nukes. Standard mode value is 100", 20); - + if(enable528) enableLBSM = false; if(!enable528) { @@ -163,6 +165,7 @@ public class GeneralConfig { enable528BosniaSimulator = false; enable528NetherBurn = false; enable528PressurizedRecipes = false; + enable528ExplosiveEnergistics = false; } } } diff --git a/src/main/java/com/hbm/crafting/ConsumableRecipes.java b/src/main/java/com/hbm/crafting/ConsumableRecipes.java index 6c3e6f3b3..07500552b 100644 --- a/src/main/java/com/hbm/crafting/ConsumableRecipes.java +++ b/src/main/java/com/hbm/crafting/ConsumableRecipes.java @@ -187,7 +187,7 @@ public class ConsumableRecipes { //Special Mods CraftingManager.addRecipeAuto(new ItemStack(ModItems.horseshoe_magnet, 1), new Object[] { "L L", "I I", "ILI", 'L', ModItems.lodestone, 'I', IRON.ingot() }); - CraftingManager.addRecipeAuto(new ItemStack(ModItems.industrial_magnet, 1), new Object[] { "SMS", " B ", "SMS", 'S', STEEL.ingot(), 'M', ModItems.horseshoe_magnet, 'B', ModBlocks.fusion_conductor }); + CraftingManager.addRecipeAuto(new ItemStack(ModItems.industrial_magnet, 1), new Object[] { "SMS", " B ", "SMS", 'S', STEEL.ingot(), 'M', ModItems.horseshoe_magnet, 'B', ModBlocks.hadron_coil_alloy }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_container, 1), new Object[] { "HAH", "ACA", "HAH", 'H', ModItems.heart_piece, 'A', AL.ingot(), 'C', ModItems.coin_creeper }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_booster, 1), new Object[] { "GHG", "MCM", "GHG", 'G', GOLD.ingot(), 'H', ModItems.heart_container, 'M', ModItems.morning_glory, 'C', ModItems.coin_maskman }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_fab, 1), new Object[] { "GHG", "MCM", "GHG", 'G', PO210.billet(), 'H', ModItems.heart_booster, 'M', ANY_COKE.gem(), 'C', ModItems.coin_worm }); diff --git a/src/main/java/com/hbm/creativetabs/WeaponTab.java b/src/main/java/com/hbm/creativetabs/WeaponTab.java index 28801e152..c5179a53e 100644 --- a/src/main/java/com/hbm/creativetabs/WeaponTab.java +++ b/src/main/java/com/hbm/creativetabs/WeaponTab.java @@ -14,10 +14,7 @@ public class WeaponTab extends CreativeTabs { @Override public Item getTabIconItem() { - - if(ModItems.gun_maresleg != null) { - return ModItems.gun_maresleg; - } + if(ModItems.gun_greasegun != null) return ModItems.gun_greasegun; return Items.iron_pickaxe; } } diff --git a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java index 155c1e696..89e38718d 100644 --- a/src/main/java/com/hbm/entity/projectile/EntityMeteor.java +++ b/src/main/java/com/hbm/entity/projectile/EntityMeteor.java @@ -30,8 +30,6 @@ public class EntityMeteor extends Entity { this.ignoreFrustumCheck = true; this.isImmuneToFire = true; this.setSize(4F, 4F); - if(worldObj.isRemote) - this.audioFly = MainRegistry.proxy.getLoopedSound("hbm:entity.meteoriteFallingLoop", 0, 0, 0, 1F, 200F, 0.9F + this.rand.nextFloat() * 0.2F, 0); } public List getBlocksInRadius(World world, int x, int y, int z, int radius) { @@ -144,12 +142,14 @@ public class EntityMeteor extends Entity { if(this.audioFly != null) this.audioFly.stopSound(); } else { + + if(this.audioFly == null) this.audioFly = MainRegistry.proxy.getLoopedSound("hbm:entity.meteoriteFallingLoop", 0, 0, 0, 1F, 200F, 0.9F + this.rand.nextFloat() * 0.2F, 10); if(this.audioFly.isPlaying()) { // Update sound this.audioFly.keepAlive(); this.audioFly.updateVolume(1F); - this.audioFly.updatePosition((int) this.posX, (int) this.posY, (int) this.posZ); + this.audioFly.updatePosition((float) this.posX, (float) (this.posY + this.height / 2), (float) this.posZ); } else { // Start playing the sound EntityPlayer player = MainRegistry.proxy.me(); diff --git a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java index 5e6847d61..cafb1a6a5 100644 --- a/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java +++ b/src/main/java/com/hbm/entity/train/EntityRailCarElectric.java @@ -52,7 +52,7 @@ public abstract class EntityRailCarElectric extends EntityRailCarRidable { if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); int powerNeeded = this.getMaxPower() - this.getPower(); - long powerProvided = Math.min(battery.getDischargeRate(), battery.getCharge(stack)); + long powerProvided = Math.min(battery.getDischargeRate(stack), battery.getCharge(stack)); int powerTransfered = (int) Math.min(powerNeeded, powerProvided); if(powerTransfered > 0) { diff --git a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java index fa8d40dba..7301e3721 100644 --- a/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java +++ b/src/main/java/com/hbm/explosion/ExplosionNukeGeneric.java @@ -421,7 +421,6 @@ public class ExplosionNukeGeneric { public static void emp(World world, int x, int y, int z) { if (!world.isRemote) { - Block b = world.getBlock(x,y,z); TileEntity te = world.getTileEntity(x, y, z); if (te != null && te instanceof IEnergyHandlerMK2) { @@ -440,8 +439,6 @@ public class ExplosionNukeGeneric { if(random.nextInt(5) <= 1) world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } - if((b == ModBlocks.fusion_conductor || b == ModBlocks.fusion_motor || b == ModBlocks.fusion_heater) && random.nextInt(10) == 0) - world.setBlock(x, y, z, ModBlocks.block_electrical_scrap); } } diff --git a/src/main/java/com/hbm/handler/nei/AnnihilatorHandler.java b/src/main/java/com/hbm/handler/nei/AnnihilatorHandler.java new file mode 100644 index 000000000..bd7bda01a --- /dev/null +++ b/src/main/java/com/hbm/handler/nei/AnnihilatorHandler.java @@ -0,0 +1,45 @@ +package com.hbm.handler.nei; + +import java.util.Map.Entry; + +import com.hbm.blocks.ModBlocks; +import com.hbm.inventory.recipes.AnnihilatorRecipes; +import com.hbm.items.ModItems; +import com.hbm.util.InventoryUtil; + +import codechicken.nei.NEIServerUtils; +import net.minecraft.item.ItemStack; + +public class AnnihilatorHandler extends NEIUniversalHandler { + + public AnnihilatorHandler() { + super("Annihilator", ModBlocks.machine_annihilator, AnnihilatorRecipes.getRecipes()); + } + + @Override + public String getKey() { + return "ntmAnnihilating"; + } + + @Override + public void loadCraftingRecipes(ItemStack result) { + + outer: for(Entry recipe : recipes.entrySet()) { + ItemStack[][] ins = InventoryUtil.extractObject(recipe.getKey()); + ItemStack[][] outs = InventoryUtil.extractObject(recipe.getValue()); + + for(ItemStack[] array : ins) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + for(ItemStack[] array : outs) for(ItemStack stack : array) if(stack.getItem() == ModItems.item_secret) continue outer; + + match: + for(ItemStack[] array : outs) { + for(ItemStack stack : array) { + if(NEIServerUtils.areStacksSameTypeCrafting(stack, result) && ItemStack.areItemStackTagsEqual(stack, result)) { + this.arecipes.add(new RecipeSet(ins, outs, recipe.getKey())); + break match; + } + } + } + } + } +} diff --git a/src/main/java/com/hbm/handler/nei/VacuumRecipeHandler.java b/src/main/java/com/hbm/handler/nei/VacuumRecipeHandler.java index 527bcc7b5..ff7118dc3 100644 --- a/src/main/java/com/hbm/handler/nei/VacuumRecipeHandler.java +++ b/src/main/java/com/hbm/handler/nei/VacuumRecipeHandler.java @@ -1,12 +1,12 @@ package com.hbm.handler.nei; import com.hbm.blocks.ModBlocks; -import com.hbm.inventory.recipes.RefineryRecipes; +import com.hbm.inventory.recipes.VacuumRefineryRecipes; public class VacuumRecipeHandler extends NEIUniversalHandler { public VacuumRecipeHandler() { - super("Vacuum Refinery", ModBlocks.machine_vacuum_distill, RefineryRecipes.getVacuumRecipe()); + super("Vacuum Refinery", ModBlocks.machine_vacuum_distill, VacuumRefineryRecipes.getVacuumRecipe()); } @Override diff --git a/src/main/java/com/hbm/inventory/OreDictManager.java b/src/main/java/com/hbm/inventory/OreDictManager.java index cb9ceba78..d579b6d56 100644 --- a/src/main/java/com/hbm/inventory/OreDictManager.java +++ b/src/main/java/com/hbm/inventory/OreDictManager.java @@ -259,11 +259,6 @@ public class OreDictManager { * RARE METALS */ public static final DictFrame AUSTRALIUM = new DictFrame("Australium"); - public static final DictFrame REIIUM = new DictFrame("Reiium"); - public static final DictFrame WEIDANIUM = new DictFrame("Weidanium"); - public static final DictFrame UNOBTAINIUM = new DictFrame("Unobtainium"); - public static final DictFrame VERTICIUM = new DictFrame("Verticium"); - public static final DictFrame DAFFERGON = new DictFrame("Daffergon"); /* * RARE EARTHS */ @@ -466,11 +461,6 @@ public class OreDictManager { * RARE METALS */ AUSTRALIUM .nugget(nugget_australium) .billet(billet_australium) .ingot(ingot_australium) .dust(powder_australium) .block(block_australium) .ore(ore_australium); - REIIUM .block(block_reiium); - WEIDANIUM .block(block_weidanium); - UNOBTAINIUM .block(block_unobtainium); - VERTICIUM .block(block_verticium); - DAFFERGON .block(block_daffergon); /* * RARE EARTHS diff --git a/src/main/java/com/hbm/inventory/container/ContainerBatterySocket.java b/src/main/java/com/hbm/inventory/container/ContainerBatterySocket.java new file mode 100644 index 000000000..72ea18661 --- /dev/null +++ b/src/main/java/com/hbm/inventory/container/ContainerBatterySocket.java @@ -0,0 +1,61 @@ +package com.hbm.inventory.container; + +import com.hbm.inventory.SlotNonRetarded; +import com.hbm.tileentity.machine.storage.TileEntityBatterySocket; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.inventory.Slot; +import net.minecraft.item.ItemStack; + +public class ContainerBatterySocket extends Container { + + protected TileEntityBatterySocket socket; + + public ContainerBatterySocket(InventoryPlayer invPlayer, TileEntityBatterySocket tedf) { + this.socket = tedf; + + this.addSlotToContainer(new SlotNonRetarded(socket, 0, 35, 35)); + + for(int i = 0; i < 3; i++) { + for(int j = 0; j < 9; j++) { + this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 99 + i * 18)); + } + } + + for(int i = 0; i < 9; i++) { + this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 157)); + } + } + + @Override + public boolean canInteractWith(EntityPlayer player) { + return socket.isUseableByPlayer(player); + } + + @Override + public ItemStack transferStackInSlot(EntityPlayer player, int index) { + ItemStack copy = null; + Slot slot = (Slot) this.inventorySlots.get(index); + + if(slot != null && slot.getHasStack()) { + ItemStack stack = slot.getStack(); + copy = stack.copy(); + + if(index == 0) { + if(!this.mergeItemStack(stack, 1, this.inventorySlots.size(), true)) return null; + } else { + if(!this.mergeItemStack(stack, 0, 1, false)) return null; + } + + if(stack.stackSize == 0) { + slot.putStack((ItemStack) null); + } else { + slot.onSlotChanged(); + } + } + + return copy; + } +} diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/inventory/container/ContainerMachineSchrabidiumTransmutator.java deleted file mode 100644 index 1d93a0b8c..000000000 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineSchrabidiumTransmutator.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.hbm.inventory.container; - -import com.hbm.inventory.SlotCraftingOutput; -import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; - -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.inventory.Slot; -import net.minecraft.item.ItemStack; - -public class ContainerMachineSchrabidiumTransmutator extends Container { - -private TileEntityMachineSchrabidiumTransmutator nukeBoy; - - public ContainerMachineSchrabidiumTransmutator(InventoryPlayer invPlayer, TileEntityMachineSchrabidiumTransmutator tedf) { - - nukeBoy = tedf; - - this.addSlotToContainer(new Slot(tedf, 0, 44, 63)); - this.addSlotToContainer(new SlotCraftingOutput(invPlayer.player, tedf, 1, 134, 63)); - this.addSlotToContainer(new Slot(tedf, 2, 26, 18)); - this.addSlotToContainer(new Slot(tedf, 3, 8, 108)); - - for(int i = 0; i < 3; i++) - { - for(int j = 0; j < 9; j++) - { - this.addSlotToContainer(new Slot(invPlayer, j + i * 9 + 9, 8 + j * 18, 84 + i * 18 + 56)); - } - } - - for(int i = 0; i < 9; i++) - { - this.addSlotToContainer(new Slot(invPlayer, i, 8 + i * 18, 142 + 56)); - } - } - - @Override - public ItemStack transferStackInSlot(EntityPlayer p_82846_1_, int par2) - { - ItemStack var3 = null; - Slot var4 = (Slot) this.inventorySlots.get(par2); - - if (var4 != null && var4.getHasStack()) - { - ItemStack var5 = var4.getStack(); - var3 = var5.copy(); - - if (par2 <= 3) { - if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) - { - return null; - } - } - else if (!this.mergeItemStack(var5, 0, 1, false)) - { - if (!this.mergeItemStack(var5, 3, 4, false)) - if (!this.mergeItemStack(var5, 2, 3, false)) - return null; - } - - if (var5.stackSize == 0) - { - var4.putStack((ItemStack) null); - } - else - { - var4.onSlotChanged(); - } - } - - return var3; - } - - @Override - public boolean canInteractWith(EntityPlayer player) { - return nukeBoy.isUseableByPlayer(player); - } - - @Override - public void updateProgressBar(int i, int j) { - if(i == 1) - { - nukeBoy.power = j; - } - } -} diff --git a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java index 9d60e8a2a..c968699a0 100644 --- a/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java +++ b/src/main/java/com/hbm/inventory/fluid/tank/FluidTank.java @@ -39,10 +39,10 @@ public class FluidTank implements Cloneable { loadingHandlers.add(new FluidLoaderInfinite()); } - FluidType type; - int fluid; - int maxFluid; - int pressure = 0; + protected FluidType type; + protected int fluid; + protected int maxFluid; + protected int pressure = 0; public FluidTank(FluidType type, int maxFluid) { this.type = type; diff --git a/src/main/java/com/hbm/inventory/gui/GUIBatterySocket.java b/src/main/java/com/hbm/inventory/gui/GUIBatterySocket.java new file mode 100644 index 000000000..f9e0f5585 --- /dev/null +++ b/src/main/java/com/hbm/inventory/gui/GUIBatterySocket.java @@ -0,0 +1,110 @@ +package com.hbm.inventory.gui; + +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.hbm.inventory.container.ContainerBatterySocket; +import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; +import com.hbm.tileentity.machine.storage.TileEntityBatterySocket; +import com.hbm.util.BobMathUtil; +import com.hbm.util.i18n.I18nUtil; + +import api.hbm.energymk2.IBatteryItem; +import net.minecraft.client.Minecraft; +import net.minecraft.client.resources.I18n; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class GUIBatterySocket extends GuiInfoContainer { + + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/storage/gui_battery_socket.png"); + private TileEntityBatterySocket battery; + + public GUIBatterySocket(InventoryPlayer invPlayer, TileEntityBatterySocket tedf) { + super(new ContainerBatterySocket(invPlayer, tedf)); + battery = tedf; + + this.xSize = 176; + this.ySize = 181; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + if(battery.slots[0] != null && battery.slots[0].getItem() instanceof IBatteryItem) { + //this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 52, 52, battery.power, battery.getMaxPower()); + + IBatteryItem item = (IBatteryItem) battery.slots[0].getItem(); + + String deltaText = BobMathUtil.getShortNumber(Math.abs(battery.delta)) + "HE/s"; + + if(battery.delta > 0) deltaText = EnumChatFormatting.GREEN + "+" + deltaText; + else if(battery.delta < 0) deltaText = EnumChatFormatting.RED + "-" + deltaText; + else deltaText = EnumChatFormatting.YELLOW + "+" + deltaText; + + String[] info = { BobMathUtil.getShortNumber(item.getCharge(battery.slots[0])) + "/" + BobMathUtil.getShortNumber(item.getMaxCharge(battery.slots[0])) + "HE", deltaText }; + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 62, guiTop + 69 - 52, 34, 52, mouseX, mouseY, info); + } + + String lang = null; + switch(battery.priority) { + case LOW: lang = "low"; break; + case HIGH: lang = "high"; break; + default: lang = "normal"; break; + } + + List priority = new ArrayList(); + priority.add(I18nUtil.resolveKey("battery.priority." + lang)); + priority.add(I18nUtil.resolveKey("battery.priority.recommended")); + String[] desc = I18nUtil.resolveKeyArray("battery.priority." + lang + ".desc"); + for(String s : desc) priority.add(s); + + this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 152, guiTop + 35, 16, 16, mouseX, mouseY, priority); + } + + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + NBTTagCompound data = new NBTTagCompound(); + + if(this.checkClick(x, y, 106, 16, 18, 18)) { this.click(); data.setBoolean("low", true); } + if(this.checkClick(x, y, 106, 52, 18, 18)) { this.click(); data.setBoolean("high", true); } + if(this.checkClick(x, y, 125, 35, 16, 16)) { this.click(); data.setBoolean("priority", true); } + + if(!data.hasNoTags()) PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, battery.xCoord, battery.yCoord, battery.zCoord)); + } + + @Override + protected void drawGuiContainerForegroundLayer(int i, int j) { + String name = this.battery.hasCustomInventoryName() ? this.battery.getInventoryName() : I18n.format(this.battery.getInventoryName()); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); + this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + Minecraft.getMinecraft().getTextureManager().bindTexture(texture); + drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(battery.slots[0] != null && battery.slots[0].getItem() instanceof IBatteryItem) { + IBatteryItem item = (IBatteryItem) battery.slots[0].getItem(); + long power = item.getCharge(battery.slots[0]); + long maxPower = item.getMaxCharge(battery.slots[0]); + int p = (int) (power * 52 / maxPower); // won't work then flying too close to the sun (the limits of the LONG data type) + drawTexturedModalRect(guiLeft + 62, guiTop + 69 - p, 176, 52 - p, 34, p); + } + + drawTexturedModalRect(guiLeft + 106, guiTop + 16, 176, 52 + battery.redLow * 18, 18, 18); + drawTexturedModalRect(guiLeft + 106, guiTop + 52, 176, 52 + battery.redHigh * 18, 18, 18); + drawTexturedModalRect(guiLeft + 125, guiTop + 35, 194, 52 + battery.priority.ordinal() * 16 - 16, 16, 16); + } +} diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineAnnihilator.java b/src/main/java/com/hbm/inventory/gui/GUIMachineAnnihilator.java index f841ae853..375c35359 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineAnnihilator.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineAnnihilator.java @@ -3,23 +3,30 @@ package com.hbm.inventory.gui; import java.util.Arrays; import java.util.Locale; +import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineAnnihilator; import com.hbm.inventory.fluid.FluidType; import com.hbm.items.machine.IItemFluidIdentifier; import com.hbm.lib.RefStrings; +import com.hbm.packet.PacketDispatcher; +import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.tileentity.machine.TileEntityMachineAnnihilator; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUIMachineAnnihilator extends GuiInfoContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_annihilator.png"); private TileEntityMachineAnnihilator annihilator; + + protected GuiTextField pool; public GUIMachineAnnihilator(InventoryPlayer invPlayer, TileEntityMachineAnnihilator tedf) { super(new ContainerMachineAnnihilator(invPlayer, tedf)); @@ -28,6 +35,26 @@ public class GUIMachineAnnihilator extends GuiInfoContainer { this.xSize = 176; this.ySize = 208; } + + @Override + public void initGui() { + super.initGui(); + + Keyboard.enableRepeatEvents(true); + + this.pool = new GuiTextField(this.fontRendererObj, guiLeft + 31, guiTop + 85, 80, 8); + this.pool.setTextColor(0x00ff00); + this.pool.setDisabledTextColour(0x00ff00); + this.pool.setEnableBackgroundDrawing(false); + this.pool.setMaxStringLength(20); + this.pool.setText("" + annihilator.pool); + } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + this.pool.mouseClicked(x, y, i); + } @Override public void drawScreen(int x, int y, float interp) { @@ -57,5 +84,25 @@ public class GUIMachineAnnihilator extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + this.pool.drawTextBox(); + } + + @Override + protected void keyTyped(char c, int i) { + if(this.pool.textboxKeyTyped(c, i)) { + String text = this.pool.getText(); + NBTTagCompound data = new NBTTagCompound(); + data.setString("pool", text); + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, annihilator.xCoord, annihilator.yCoord, annihilator.zCoord)); + return; + } + super.keyTyped(c, i); + } + + @Override + public void onGuiClosed() { + super.onGuiClosed(); + Keyboard.enableRepeatEvents(false); } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index f30dd2edf..b3aae3272 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -1,11 +1,9 @@ package com.hbm.inventory.gui; -import com.hbm.inventory.FluidStack; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.recipes.RefineryRecipes; -import com.hbm.util.Tuple; +import com.hbm.inventory.recipes.RefineryRecipes.RefineryRecipe; import net.minecraft.client.renderer.OpenGlHelper; -import net.minecraft.item.ItemStack; import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerMachineRefinery; @@ -83,7 +81,7 @@ public class GUIMachineRefinery extends GuiInfoContainer { // pipes - Tuple.Quintet recipe = RefineryRecipes.getRefinery(inputOil.getTankType()); + RefineryRecipe recipe = RefineryRecipes.getRefinery(inputOil.getTankType()); if(recipe == null) { func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); @@ -93,27 +91,27 @@ public class GUIMachineRefinery extends GuiInfoContainer { } else { // Heavy Oil Products - Color color = new Color(recipe.getV().type.getColor()); + Color color = new Color(recipe.outputs[0].type.getColor()); GL11.glEnable(GL11.GL_BLEND); GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); func_146110_a(guiLeft + 52, guiTop + 63, 247, 1, 33, 48, 350, 256); // Naphtha Oil Products - color = new Color(recipe.getW().type.getColor()); + color = new Color(recipe.outputs[1].type.getColor()); GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); func_146110_a(guiLeft + 52, guiTop + 32, 247, 50, 66, 52, 350, 256); // Light Oil Products - color = new Color(recipe.getX().type.getColor()); + color = new Color(recipe.outputs[2].type.getColor()); GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); func_146110_a(guiLeft + 52, guiTop + 24, 247, 145, 86, 35, 350, 256); // Gaseous Products - color = new Color(recipe.getY().type.getColor()); + color = new Color(recipe.outputs[3].type.getColor()); GL11.glColor4f(color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1F); func_146110_a(guiLeft + 36, guiTop + 16, 211, 119, 122, 25, 350, 256); - + GL11.glDisable(GL11.GL_BLEND); GL11.glColor4f(1F, 1F, 1F, 1F); } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/inventory/gui/GUIMachineSchrabidiumTransmutator.java deleted file mode 100644 index aa5c186c0..000000000 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineSchrabidiumTransmutator.java +++ /dev/null @@ -1,60 +0,0 @@ -package com.hbm.inventory.gui; - -import org.lwjgl.opengl.GL11; - -import com.hbm.inventory.container.ContainerMachineSchrabidiumTransmutator; -import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineSchrabidiumTransmutator; - -import net.minecraft.client.Minecraft; -import net.minecraft.client.resources.I18n; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIMachineSchrabidiumTransmutator extends GuiInfoContainer { - - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_transmutator.png"); - private TileEntityMachineSchrabidiumTransmutator diFurnace; - - public GUIMachineSchrabidiumTransmutator(InventoryPlayer invPlayer, TileEntityMachineSchrabidiumTransmutator tedf) { - super(new ContainerMachineSchrabidiumTransmutator(invPlayer, tedf)); - diFurnace = tedf; - - this.xSize = 176; - this.ySize = 222; - } - - @Override - public void drawScreen(int mouseX, int mouseY, float f) { - super.drawScreen(mouseX, mouseY, f); - - this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 106 - 88, 16, 88, diFurnace.power, diFurnace.maxPower); - } - - @Override - protected void drawGuiContainerForegroundLayer(int i, int j) { - String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); - - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752); - this.fontRendererObj.drawString(I18n.format(String.valueOf(diFurnace.getPower()) + " HE"), this.xSize / 2 - this.fontRendererObj.getStringWidth(String.valueOf(diFurnace.getPower()) + " HE") / 2, 16, 4210752); - this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) { - GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - Minecraft.getMinecraft().getTextureManager().bindTexture(texture); - drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - - if(diFurnace.getPower() > 0) { - int i = (int)diFurnace.getPowerScaled(88); - drawTexturedModalRect(guiLeft + 8, guiTop + 106 - i, 176, 88 - i, 16, i); - } - - if(diFurnace.isProcessing()) - { - int j1 = diFurnace.getProgressScaled(66); - drawTexturedModalRect(guiLeft + 64, guiTop + 55, 176, 88, j1, 66); - } - } -} diff --git a/src/main/java/com/hbm/inventory/material/Mats.java b/src/main/java/com/hbm/inventory/material/Mats.java index 7ee7b6990..09c243cb5 100644 --- a/src/main/java/com/hbm/inventory/material/Mats.java +++ b/src/main/java/com/hbm/inventory/material/Mats.java @@ -107,7 +107,7 @@ public class Mats { public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK).m(); public static final NTMMaterial MAT_BISMUTH = makeSmeltable(8300, BI, 0xB200FF, 0xB200FF, 0xB200FF).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); public static final NTMMaterial MAT_ARSENIC = makeSmeltable(3300, AS, 0x6CBABA, 0x242525, 0x558080).setAutogen(NUGGET).m(); - public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setAutogen(NUGGET, DUST, BLOCK).m(); + public static final NTMMaterial MAT_TANTALIUM = makeSmeltable(7300, TA, 0xFFFFFF, 0x1D1D36, 0xA89B74).setAutogen(FRAGMENT, NUGGET, DUST, BLOCK).m(); public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setAutogen(FRAGMENT, NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK).m(); public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setAutogen(FRAGMENT, NUGGET, DUSTTINY, DUST, DENSEWIRE, BLOCK).m(); public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setAutogen(FRAGMENT, NUGGET, DUST, BLOCK).m(); diff --git a/src/main/java/com/hbm/inventory/recipes/AnnihilatorRecipes.java b/src/main/java/com/hbm/inventory/recipes/AnnihilatorRecipes.java index 98b7f205d..2a1ae355d 100644 --- a/src/main/java/com/hbm/inventory/recipes/AnnihilatorRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AnnihilatorRecipes.java @@ -5,41 +5,114 @@ import java.math.BigInteger; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map.Entry; +import static com.hbm.inventory.OreDictManager.*; + import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonWriter; import com.hbm.inventory.RecipesCommon.ComparableStack; +import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.GenericRecipes; import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.ModItems; import com.hbm.items.machine.IItemFluidIdentifier; +import com.hbm.items.machine.ItemBlueprints; +import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.items.machine.ItemCircuit.EnumCircuitType; +import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.util.ItemStackUtil; import com.hbm.util.Tuple.Pair; -import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; public class AnnihilatorRecipes extends SerializableRecipe { public static HashMap recipes = new HashMap(); + + /* + * MILESTONES + * STEEL -> DERRICK (ASSEM) + * SILICON -> CHIPS (PRECASS) + * PLASTIC -> CRACKER, COKER (ASSEM) + * RUBBER -> FRACKER (ASSEM) + * URANIUM -> GASCENT (ASSEM) + * FERRO -> RBMK (ASSEM) + * STRONTIUM -> ATOMIC CLOCK (PRECASS) + * BISMUTH -> BIS CHIPS (PRECASS) + * HARDPLASTIC -> OIL 3.5 (ASSEM) + * TCALLOY -> FUSION, WATZ (ASSEM) + * IONS -> Q CHIPS (PRECASS) PA (ASSEM) + * CHLOROPHYTE -> MHDT, ICF (ASSEM) + * 50BMG -> TURRETS (ASSEM) + * ARTY -> ARTY (ASSEM) + * CONTROLLER -> NUKES (ASSEM) + */ @Override public void registerDefaults() { + + recipes.put(STEEL.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "steel")))); + recipes.put(SI.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip")))); + recipes.put(BI.nugget(), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_bismoid")))); + recipes.put(ModItems.pellet_charged, new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")))); + + recipes.put(U.billet(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "gascent")))); + recipes.put(ANY_PLASTIC.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("512"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "plastic")))); + recipes.put(RUBBER.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("512"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "rubber")))); + recipes.put(FERRO.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "ferrouranium")))); + recipes.put(SR.dust(), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "strontium")))); + recipes.put(ANY_HARDPLASTIC.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "hardplastic")))); + recipes.put(ANY_RESISTANTALLOY.ingot(), new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "tcalloy")))); + recipes.put(ModItems.powder_chlorophyte, new AnnihilatorRecipe(new Pair(new BigInteger("1024"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")))); - recipes.put(Items.iron_ingot, new AnnihilatorRecipe( - new Pair(new BigInteger("128"), new ItemStack(Items.gold_ingot)), - new Pair(new BigInteger("256"), new ItemStack(Items.gold_ingot, 3)), - new Pair(new BigInteger("512"), new ItemStack(Items.gold_ingot, 5)) - )); + recipes.put(new ComparableStack(ModItems.ammo_standard, 1, EnumAmmo.BMG50_FMJ), new AnnihilatorRecipe(new Pair(new BigInteger("256"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "bmg")))); + recipes.put(new ComparableStack(ModItems.ammo_arty, 1, 0), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "arty")))); + recipes.put(new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new AnnihilatorRecipe(new Pair(new BigInteger("128"), ItemBlueprints.make(GenericRecipes.POOL_PREFIX_528 + "controller")))); } @Override public String getFileName() { return "hbmAnnihilator.json"; } @Override public Object getRecipeObject() { return recipes; } @Override public void deleteRecipes() { recipes.clear(); } + + public static HashMap getRecipes() { + + HashMap recipes = new HashMap(); + + for(Entry entry : AnnihilatorRecipes.recipes.entrySet()) { + for(Pair milestone : entry.getValue().milestones) { + + Object input = new ItemStack[1]; + + if(entry.getKey() instanceof Item) input = new ItemStack((Item) entry.getKey()); + if(entry.getKey() instanceof ComparableStack) input = ((ComparableStack) entry.getKey()).toStack(); + if(entry.getKey() instanceof FluidType) input = ItemFluidIcon.make((FluidType) entry.getKey(), 0); + if(entry.getKey() instanceof String) input = new OreDictStack((String) entry.getKey()).extractForNEI(); + + if(input == null) continue; + + if(input instanceof ItemStack) { + ItemStackUtil.addTooltipToStack((ItemStack) input, EnumChatFormatting.RED + String.format(Locale.US, "%,d", milestone.getKey())); + } + if(input instanceof List) { + List list = (List) input; + for(ItemStack stack : list) ItemStackUtil.addTooltipToStack(stack, EnumChatFormatting.RED + String.format(Locale.US, "%,d", milestone.getKey())); + input = new ItemStack[][] { list.toArray(new ItemStack[0]) }; + } + + recipes.put(input, milestone.getValue().copy()); + } + } + + return recipes; + } /** * If prevAmount is null, a payout is guaranteed if the currentAmount matches or exceeds the requirement. diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 99f5fec56..c6a7bf0cf 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -135,11 +135,6 @@ import net.minecraft.item.ItemStack; makeRecipe(new ComparableStack(ModBlocks.machine_turbofan, 1), new AStack[] {!exp ? new OreDictStack(TI.shell(), 8) : new OreDictStack(TI.heavyComp(), 1), new OreDictStack(DURA.pipe(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.turbine_tungsten, 1), new OreDictStack(GOLD.wireDense(), 12), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal()) }, 300); makeRecipe(new ComparableStack(ModBlocks.machine_turbinegas, 1), new AStack[] {!exp ? new OreDictStack(STEEL.shell(), 10) : new OreDictStack(STEEL.heavyComp(), 2), new OreDictStack(GOLD.wireDense(), 12), new OreDictStack(DURA.pipe(), 4), new ComparableStack(ModBlocks.steel_scaffold, 8), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.turbine_tungsten, 3), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.ingot_rubber, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC.ordinal())}, 600); makeRecipe(new ComparableStack(ModBlocks.machine_teleporter, 1), new AStack[] {new OreDictStack(TI.ingot(), 8), new OreDictStack(ALLOY.plate(), 12), new OreDictStack(GOLD.wireFine(), 32), new ComparableStack(ModItems.entanglement_kit, 1), new ComparableStack(ModBlocks.machine_battery, 1) },300); - makeRecipe(new ComparableStack(ModBlocks.machine_schrabidium_transmutator, 1), new AStack[] {new OreDictStack(MAGTUNG.ingot(), 1), !exp ? new OreDictStack(TI.ingot(), 24) : new OreDictStack(TI.heavyComp(), 2), !exp ? new OreDictStack(ALLOY.plate(), 18) : new OreDictStack(ALLOY.heavyComp(), 1), new OreDictStack(STEEL.plateWelded(), 12), new ComparableStack(ModItems.plate_desh, 6), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModBlocks.machine_battery, 5), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED.ordinal()), },500); - makeRecipe(new ComparableStack(ModBlocks.fusion_conductor, 1), new AStack[] {new ComparableStack(ModItems.coil_advanced_alloy, 5), }, 100); - makeRecipe(new ComparableStack(ModBlocks.fusion_center, 1), new AStack[] {new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ALLOY.wireFine(), 24), },200); - makeRecipe(new ComparableStack(ModBlocks.fusion_motor, 1), new AStack[] {new OreDictStack(TI.ingot(), 4), new OreDictStack(STEEL.ingot(), 2), new ComparableStack(ModItems.motor, 4), },250); - makeRecipe(new ComparableStack(ModBlocks.fusion_heater, 4), new AStack[] {new OreDictStack(W.plateWelded(), 2), new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(OreDictManager.getReflector(), 2), new ComparableStack(ModItems.magnetron, 2) }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_element, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)},200); makeRecipe(new ComparableStack(ModBlocks.watz_cooler, 3), new AStack[] {new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2), }, 200); makeRecipe(new ComparableStack(ModBlocks.watz_end, 3), new AStack[] {new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2), }, 100); @@ -193,55 +188,6 @@ import net.minecraft.item.ItemStack; makeRecipe(new ComparableStack(ModBlocks.machine_radar, 1), new AStack[] {new OreDictStack(STEEL.plate(), 8), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(ANY_RUBBER.ingot(), 8), new ComparableStack(ModItems.magnetron, 3), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC.ordinal()), new ComparableStack(ModItems.coil_copper, 12), new ComparableStack(ModItems.crt_display, 4), },300); makeRecipe(new ComparableStack(ModBlocks.machine_radar_large, 1), new AStack[] {new OreDictStack(STEEL.plateWelded(), 6), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(ANY_RUBBER.ingot(), 16), new ComparableStack(ModItems.magnetron, 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_copper, 32), new ComparableStack(ModItems.crt_display, 4), },600); makeRecipe(new ComparableStack(ModBlocks.machine_forcefield, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 8), new ComparableStack(ModItems.plate_desh, 4), new ComparableStack(ModItems.coil_gold_torus, 6), new ComparableStack(ModItems.coil_magnetized_tungsten, 12), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.upgrade_radius, 1), new ComparableStack(ModItems.upgrade_health, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new ComparableStack(ModBlocks.machine_transformer, 1), },1000); - makeRecipe(new ComparableStack(ModItems.mp_thruster_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); - makeRecipe(new ComparableStack(ModItems.mp_thruster_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.coil_tungsten, 1), new OreDictStack(DURA.ingot(), 4), new OreDictStack(STEEL.plate(), 4), },100); - makeRecipe(new ComparableStack(ModItems.mp_thruster_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 4), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.arc_electrode, 4), },100); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 6), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 6), new ComparableStack(ModItems.coil_tungsten, 3), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_solid_hexdecuple, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DURA.ingot(), 12), new ComparableStack(ModItems.coil_tungsten, 6), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_hydrogen_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 4), new OreDictStack(STEEL.plate(), 6), new ComparableStack(ModItems.tank_steel, 1), new OreDictStack(DESH.ingot(), 1), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_short, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModBlocks.pwr_fuel, 1), new OreDictStack(DESH.ingot(), 8), new OreDictStack(BIGMT.plate(), 12), new OreDictStack(CU.plateCast(), 2), new ComparableStack(ModItems.ingot_uranium_fuel, 4), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 16), new OreDictStack(BIGMT.plate(), 24), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_15_balefire_large, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.plate_polymer, 16), new ComparableStack(ModBlocks.pwr_fuel, 2), new OreDictStack(DESH.ingot(), 24), new OreDictStack(BIGMT.plate(), 32), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.ingot_uranium_fuel, 8), new ComparableStack(ModItems.pipes_steel, 2), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 16), new OreDictStack(STEEL.plate(), 12), new OreDictStack(DESH.ingot(), 8), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_dual, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 8), new OreDictStack(STEEL.plate(), 6), new OreDictStack(DESH.ingot(), 4), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_kerosene_triple, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new OreDictStack(STEEL.pipe(), 1), new OreDictStack(W.ingot(), 12), new OreDictStack(STEEL.plate(), 8), new OreDictStack(DESH.ingot(), 6), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 8), new OreDictStack(DURA.ingot(), 16), new OreDictStack(STEEL.plate(), 12), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multi, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 12), new OreDictStack(DURA.ingot(), 18), new OreDictStack(STEEL.plate(), 12), },500); - makeRecipe(new ComparableStack(ModItems.mp_thruster_20_solid_multier, 1), new AStack[] {new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModItems.coil_tungsten, 16), new OreDictStack(DURA.ingot(), 20), new OreDictStack(STEEL.plate(), 12), },500); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(STEEL.plate(), 3), },100); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(AL.plate(), 3), },100); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_xenon, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 3), new OreDictStack(TI.plate(), 12), new OreDictStack(CU.plateCast(), 3), },100); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_long_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(TI.plate(), 24), new OreDictStack(STEEL.plate(), 6), },200); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_long_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 2), new ComparableStack(ModBlocks.steel_scaffold, 6), new OreDictStack(TI.plate(), 24), new OreDictStack(AL.plate(), 6), },200); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(STEEL.plate(), 9), },300); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(AL.plate(), 9), },300); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(IRON.plate(), 9), },300); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(BIGMT.plate(), 9), },300); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 2), new ComparableStack(ModBlocks.steel_scaffold, 12), new OreDictStack(TI.plate(), 48), new OreDictStack(STEEL.plate(), 12), },500); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 2), new ComparableStack(ModBlocks.steel_scaffold, 12), new OreDictStack(TI.plate(), 48), new OreDictStack(AL.plate(), 12), },500); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_hydrogen, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 2), new ComparableStack(ModBlocks.steel_scaffold, 12), new OreDictStack(TI.plate(), 48), new OreDictStack(IRON.plate(), 12), },500); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_10_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModBlocks.steel_scaffold, 9), new OreDictStack(TI.plate(), 36), new OreDictStack(BIGMT.plate(), 9), },500); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_kerosene, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(STEEL.plate(), 16), },600); - makeRecipe(new ComparableStack(ModItems.mp_fuselage_15_20_solid, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new ComparableStack(ModItems.seg_20, 1), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(TI.plate(), 64), new OreDictStack(AL.plate(), 16), },600); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_he, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new OreDictStack(P_RED.dust(), 3), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_buster, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(TI.plate(), 4), new ComparableStack(ModBlocks.det_charge, 1), new ComparableStack(ModBlocks.det_cord, 4), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 6), new OreDictStack(PU239.ingot(), 1), new OreDictStack(OreDictManager.getReflector(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_nuclear_large, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(AL.plate(), 4), new OreDictStack(PU239.ingot(), 2), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit,3, EnumCircuitType.ADVANCED), },300); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_taint, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new ComparableStack(ModItems.bucket_mud, 1), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_10_cloud, 1), new AStack[] {new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.grenade_pink_cloud, 2), },100); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_he, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_incendiary, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 16), new ComparableStack(ModBlocks.det_charge, 2), new OreDictStack(P_RED.dust(), 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC), },200); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_nuclear, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 24), new OreDictStack(TI.plate(), 12), new OreDictStack(PU239.ingot(), 3), new ComparableStack(ModBlocks.det_charge, 6), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ADVANCED), },500); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_n2, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 8), new OreDictStack(TI.plate(), 20), new ComparableStack(ModBlocks.det_charge, 24), new ComparableStack(Blocks.redstone_block, 12), new OreDictStack(MAGTUNG.dust(), 6), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), },400); - makeRecipe(new ComparableStack(ModItems.mp_warhead_15_balefire, 1), new AStack[] {new ComparableStack(ModItems.seg_15, 1), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 6), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), }, 60); - makeRecipe(new ComparableStack(ModItems.fusion_shield_tungsten, 1), new AStack[] {new OreDictStack(W.block(), 32), new OreDictStack(OreDictManager.getReflector(), 96)}, 600); - makeRecipe(new ComparableStack(ModItems.fusion_shield_desh, 1), new AStack[] {new OreDictStack(DESH.block(), 16), new OreDictStack(CO.block(), 16), new OreDictStack(BIGMT.plate(), 96)}, 600); - makeRecipe(new ComparableStack(ModItems.fusion_shield_chlorophyte, 1), new AStack[] {new OreDictStack(W.block(), 16), new OreDictStack(DURA.block(), 16), new OreDictStack(OreDictManager.getReflector(), 48), new ComparableStack(ModItems.powder_chlorophyte, 48)}, 600); makeRecipe(new ComparableStack(ModItems.missile_soyuz, 1), new AStack[] { new OreDictStack(TI.shell(), 32), diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java index 2daebaf5f..d399ba1bd 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblyMachineRecipes.java @@ -55,11 +55,7 @@ public class AssemblyMachineRecipes extends GenericRecipes { @Override public void registerDefaults() { - - // NBTStack test - // this.register(new GenericRecipe("demo1").setup(20, 100).outputItems(BrokenItem.make(ModItems.plate_iron)).inputItems(new OreDictStack(IRON.ingot()))); - // this.register(new GenericRecipe("demo2").setup(20, 100).outputItems(BrokenItem.make(ModItems.plate_gold)).inputItems(new OreDictStack(IRON.ingot()))); - // this.register(new GenericRecipe("demo3").setup(20, 100).outputItems(new ItemStack(Items.iron_ingot)).inputItems(new NBTStack(BrokenItem.make(ModItems.plate_iron)))); + boolean no528 = !GeneralConfig.enable528; // plates and ingots String autoPlate = "autoswitch.plates"; @@ -215,10 +211,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new ComparableStack(ModItems.cap_fritz, 64), new ComparableStack(ModItems.cap_fritz, 64))); this.register(new GenericRecipe("ass.capkorl").setup(10, 100).outputItems(DictFrame.fromOne(ModBlocks.block_cap, EnumCapBlock.KORL)) .inputItems(new ComparableStack(ModItems.cap_korl, 64), new ComparableStack(ModItems.cap_korl, 64))); - /* - this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModBlocks., 1)) - .inputItems()); - */ // machines this.register(new GenericRecipe("ass.shredder").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_shredder, 1)) @@ -233,13 +225,15 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(RUBBER.pipe(), 8), new OreDictStack(PB.plateCast(), 4), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.LEAD_PLATING), new OreDictStack(STEEL.shell(), 4), new OreDictStack(RUBBER.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.precass").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.machine_precass, 1)) - .inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(ZR.ingot(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BASIC), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR_BOARD))); + .inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(ZR.ingot(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR_BOARD)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.STEEL_PLATING), new OreDictStack(ZR.ingot(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CAPACITOR_BOARD))); this.register(new GenericRecipe("ass.centrifuge").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_centrifuge, 1)) .inputItems(new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(STEEL.plate(), 8), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG)) .inputItemsEx(new ComparableStack(ModItems.centrifuge_element, 1), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plateCast(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG))); this.register(new GenericRecipe("ass.gascent").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_gascent, 1)) .inputItems(new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(ANY_PLASTIC.ingot(), 8), new OreDictStack(DESH.ingot(), 2), new OreDictStack(STEEL.plate(), 8), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED.ordinal())) - .inputItemsEx(new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.CIRCUIT))); + .inputItemsEx(new ComparableStack(ModItems.centrifuge_element, 4), new OreDictStack(STEEL.plateWelded(), 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.CIRCUIT)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "gascent")); this.register(new GenericRecipe("ass.arcfurnace").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_arc_furnace, 1)) .inputItems(new OreDictStack(ANY_CONCRETE.any(), 12), new OreDictStack(ANY_PLASTIC.ingot(), 8), new ComparableStack(ModItems.ingot_firebrick, 16),new OreDictStack(STEEL.plateCast(), 8), new ComparableStack(ModBlocks.machine_transformer, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ANALOG.ordinal())) .inputItemsEx(new OreDictStack(ANY_CONCRETE.any(), 12), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.ingot_firebrick, 16), new ComparableStack(ModBlocks.machine_transformer, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG.ordinal()))); @@ -253,40 +247,49 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItems(new ComparableStack(ModItems.rtg_unit, 3), new OreDictStack(STEEL.plate(), 4), new OreDictStack(MINGRADE.wireFine(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4))); this.register(new GenericRecipe("ass.derrick").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_well, 1)) .inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(CU.plateCast(), 2), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.drill_titanium, 1)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.STEEL_PLATING), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.drill_titanium, 1))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.STEEL_PLATING), new OreDictStack(STEEL.pipe(), 4), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.drill_titanium, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "steel")); this.register(new GenericRecipe("ass.pumpjack").setup(400, 100).outputItems(new ItemStack(ModBlocks.machine_pumpjack, 1)) .inputItems(new OreDictStack(DURA.plate(), 8), new OreDictStack(STEEL.plateWelded(), 8), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.motor_desh), new ComparableStack(ModItems.drill_titanium, 1)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.drill_titanium, 1))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.drill_titanium, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "steel")); this.register(new GenericRecipe("ass.fracker").setup(600, 100).outputItems(new ItemStack(ModBlocks.machine_fracking_tower, 1)) .inputItems(new OreDictStack(STEEL.shell(), 24), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModBlocks.concrete_smooth, 64), new ComparableStack(ModItems.drill_titanium), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.plate_desh, 24), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.FERRO_PLATING), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModBlocks.concrete_smooth, 64), new ComparableStack(ModItems.drill_titanium), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.CIRCUIT))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.FERRO_PLATING), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModBlocks.concrete_smooth, 64), new ComparableStack(ModItems.drill_titanium), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.CIRCUIT)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "plastic")); this.register(new GenericRecipe("ass.flarestack").setup(100, 100).outputItems(new ItemStack(ModBlocks.machine_flare, 1)) .inputItems(new OreDictStack(STEEL.plate(), 12), new OreDictStack(CU.plate(), 4), new OreDictStack(STEEL.shell(), 4), new ComparableStack(ModItems.thermo_element, 3)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.thermo_element, 3))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plate(), 4), new ComparableStack(ModItems.thermo_element, 3)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "plastic")); this.register(new GenericRecipe("ass.refinery").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_refinery, 1)) .inputItems(new OreDictStack(STEEL.plateWelded(), 3), new OreDictStack(CU.plate(), 8), new OreDictStack(STEEL.shell(), 4), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ANALOG)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.STEEL_PLATING), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.plate_polymer, 8), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.ANALOG))); this.register(new GenericRecipe("ass.crackingtower").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_catalytic_cracker, 1)) - .inputItems(new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(NB.ingot(), 2), new ComparableStack(ModItems.catalyst_clay, 12)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(NB.ingot(), 4))); + .inputItems(new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(STEEL.shell(), 6), new OreDictStack(DESH.ingot(), 12), new OreDictStack(NB.ingot(), 4)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING), new OreDictStack(ANY_PLASTIC.ingot(), 16), new OreDictStack(NB.ingot(), 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "plastic")); this.register(new GenericRecipe("ass.radiolysis").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_radiolysis, 1)) .inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(PB.plate(), 12), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 8), new ComparableStack(ModItems.thermo_element, 8)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 16), new ComparableStack(ModItems.thermo_element, 8))); this.register(new GenericRecipe("ass.coker").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_coker, 1)) .inputItems(new OreDictStack(STEEL.plateWelded(), 8), new OreDictStack(STEEL.shell(), 4), new OreDictStack(CU.plate(), 8), new OreDictStack(RUBBER.ingot(), 4), new OreDictStack(NB.ingot(), 4)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(NB.ingot(), 4))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(NB.ingot(), 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "rubber")); this.register(new GenericRecipe("ass.vaccumrefinery").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_vacuum_distill, 1)) .inputItems(new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(CU.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.pipe(), 12), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CHIP_BISMOID)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.FERRO_PLATING), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.motor_desh, 3), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP_BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER))); this.register(new GenericRecipe("ass.reformer").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_catalytic_reformer, 1)) .inputItems(new OreDictStack(STEEL.plateCast(), 12), new OreDictStack(CU.plate(), 8), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(STEEL.shell(), 3), new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.motor, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.motor, 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.motor, 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "hardplastic")); this.register(new GenericRecipe("ass.hydrotreater").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_hydrotreater, 1)) .inputItems(new OreDictStack(STEEL.plateWelded(), 8), new OreDictStack(CU.plateCast(), 4), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(STEEL.shell(), 2), new OreDictStack(STEEL.pipe(), 8), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.motor_desh, 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(NB.ingot(), 8), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(DURA.pipe(), 16), new ComparableStack(ModItems.motor_desh, 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "hardplastic")); this.register(new GenericRecipe("ass.pyrooven").setup(300, 100).outputItems(new ItemStack(ModBlocks.machine_pyrooven, 1)) .inputItems(new OreDictStack(STEEL.plateWelded(), 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.ingot_cft, 4), new OreDictStack(CU.pipe(), 12), new ComparableStack(ModItems.motor_desh, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(ANY_HARDPLASTIC.ingot(), 32), new ComparableStack(ModItems.ingot_cft, 4), new ComparableStack(ModItems.motor_bismuth, 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(ANY_HARDPLASTIC.ingot(), 32), new ComparableStack(ModItems.ingot_cft, 4), new ComparableStack(ModItems.motor_bismuth, 4), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "hardplastic")); this.register(new GenericRecipe("ass.liquefactor").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_liquefactor, 1)) .inputItems(new OreDictStack(STEEL.shell(), 4), new OreDictStack(CU.plate(), 12), new OreDictStack(ANY_TAR.any(), 4), new ComparableStack(ModItems.circuit, 12, EnumCircuitType.CAPACITOR), new ComparableStack(ModItems.coil_tungsten, 8)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(ANY_TAR.any(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR))); @@ -433,8 +436,8 @@ public class AssemblyMachineRecipes extends GenericRecipes { // fluid tanks this.register(new GenericRecipe("ass.tank").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_fluidtank, 1)) - .inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(STEEL.shell(), 4), new OreDictStack(ANY_TAR.any(), 4)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.STEEL_PLATING), new OreDictStack(ANY_TAR.any(), 4))); + .inputItems(new OreDictStack(STEEL.plate(), 8), new OreDictStack(STEEL.shell(), 4)) + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.STEEL_PLATING), new OreDictStack(ANY_TAR.any(), 16))); this.register(new GenericRecipe("ass.bat9k").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_bat9000, 1)) .inputItems(new OreDictStack(STEEL.plate(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModBlocks.steel_scaffold, 16), new OreDictStack(ANY_TAR.any(), 16))); @@ -448,29 +451,36 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 32), new OreDictStack(AL.plateWelded(), 16), new OreDictStack(RUBBER.ingot(), 32), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.beamline").setup(200, 100).outputItems(new ItemStack(ModBlocks.pa_beamline, 1)) .inputItems(new OreDictStack(STEEL.plateCast(), 8), new OreDictStack(CU.plate(), 16), new OreDictStack(GOLD.wireDense(), 4)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plate(), 16), new OreDictStack(GOLD.wireDense(), 4))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.STEEL_PLATING), new OreDictStack(CU.plate(), 16), new OreDictStack(GOLD.wireDense(), 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); this.register(new GenericRecipe("ass.rfc").setup(400, 100).outputItems(new ItemStack(ModBlocks.pa_rfc, 1)) .inputItems(new ComparableStack(ModBlocks.pa_beamline, 3), new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(CU.plate(), 64), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.magnetron, 16)) - .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 3), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(CU.plate(), 64), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.magnetron, 16))); + .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 3), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(CU.plate(), 64), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.magnetron, 16)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); this.register(new GenericRecipe("ass.quadrupole").setup(400, 100).outputItems(new ItemStack(ModBlocks.pa_quadrupole, 1)) .inputItems(new ComparableStack(ModBlocks.pa_beamline, 1), new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID)) - .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 1), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 1), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); this.register(new GenericRecipe("ass.dipole").setup(400, 100).outputItems(new ItemStack(ModBlocks.pa_dipole, 1)) .inputItems(new ComparableStack(ModBlocks.pa_beamline, 2), new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID)) - .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 2), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 32), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 2), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 32), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); this.register(new GenericRecipe("ass.source").setup(400, 100).outputItems(new ItemStack(ModBlocks.pa_source, 1)) .inputItems(new ComparableStack(ModBlocks.pa_beamline, 3), new OreDictStack(STEEL.plateCast(), 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.magnetron, 16), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.QUANTUM)) - .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 3), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.magnetron, 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 3), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.magnetron, 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); this.register(new GenericRecipe("ass.detector").setup(400, 100).outputItems(new ItemStack(ModBlocks.pa_detector, 1)) .inputItems(new ComparableStack(ModBlocks.pa_beamline, 3), new OreDictStack(STEEL.plateCast(), 24), new OreDictStack(GOLD.wireDense(), 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM)) - .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 3), new ComparableStack(ModItems.item_expensive, 32, EnumExpensiveType.LEAD_PLATING), new OreDictStack(GOLD.wireDense(), 64), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModBlocks.pa_beamline, 3), new ComparableStack(ModItems.item_expensive, 32, EnumExpensiveType.LEAD_PLATING), new OreDictStack(GOLD.wireDense(), 64), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); this.register(new GenericRecipe("ass.pagold").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.GOLD.ordinal())).inputItems(new OreDictStack(GOLD.wireDense(), 64), new OreDictStack(GOLD.wireDense(), 64))); this.register(new GenericRecipe("ass.panbti").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.NIOBIUM.ordinal())).inputItems(new OreDictStack(NB.wireDense(), 64), new OreDictStack(TI.wireDense(), 64))); this.register(new GenericRecipe("ass.pabscco").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.BSCCO.ordinal())).inputItems(new OreDictStack(BSCCO.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64))); this.register(new GenericRecipe("ass.pachlorophyte").setup(400, 100).outputItems(new ItemStack(ModItems.pa_coil, 1, EnumCoilType.CHLOROPHYTE.ordinal())).inputItems(new OreDictStack(CU.wireDense(), 64), new OreDictStack(CU.wireDense(), 64), new ComparableStack(ModItems.powder_chlorophyte, 16))); this.register(new GenericRecipe("ass.exposurechamber").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_exposure_chamber, 1)) .inputItems(new OreDictStack(AL.plateCast(), 12), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 12), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModBlocks.capacitor_tantalium, 1), new ComparableStack(ModBlocks.glass_quartz, 16)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_HARDPLASTIC.ingot(), 24), new OreDictStack(ALLOY.wireDense(), 32), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chip_quantum")); // reactors this.register(new GenericRecipe("ass.breedingreactor").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_reactor_breeding, 1)) @@ -484,10 +494,12 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.LEAD_PLATING), new OreDictStack(GRAPHITE.ingot(), 16), new OreDictStack(RUBBER.ingot(), 16), new OreDictStack(ANY_CONCRETE.any(), 16), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.CIRCUIT))); this.register(new GenericRecipe("ass.rbmk").setup(100, 100).outputItems(new ItemStack(ModBlocks.rbmk_blank, 1)) .inputItems(new ComparableStack(ModBlocks.concrete_asbestos, 4), new OreDictStack(STEEL.plateCast(), 4), new OreDictStack(CU.plate(), 8), new ComparableStack(ModItems.plate_polymer, 4)) - .inputItemsEx(new ComparableStack(ModBlocks.concrete_asbestos, 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.FERRO_PLATING), new OreDictStack(CU.plate(), 16))); + .inputItemsEx(new ComparableStack(ModBlocks.concrete_asbestos, 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.FERRO_PLATING), new OreDictStack(CU.plate(), 16)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "ferrouranium")); this.register(new GenericRecipe("ass.rbmkautoloader").setup(100, 100).outputItems(new ItemStack(ModBlocks.rbmk_autoloader, 1)) .inputItems(new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(PB.plateCast(), 4), new OreDictStack(B.ingot(), 4), new ComparableStack(ModItems.motor, 3)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.motor_desh, 3))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.motor_desh, 3)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "ferrouranium")); // PWR this.register(new GenericRecipe("ass.pwrfuel").setup(200, 500).outputItems(new ItemStack(ModBlocks.pwr_fuel, 4)) @@ -523,21 +535,22 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ZR.plateWelded(), 1), new ComparableStack(ModItems.billet_ra226be, 3))); // fusion reactor - this.register(new GenericRecipe("ass.fusionconductor").setup(100, 100).outputItems(new ItemStack(ModBlocks.fusion_conductor, 1)) - .inputItems(new ComparableStack(ModItems.coil_advanced_alloy, 5))); - this.register(new GenericRecipe("ass.fusioncore").setup(600, 100).outputItems(new ItemStack(ModBlocks.struct_torus_core, 1)) .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(ANY_HARDPLASTIC.ingot(), 32), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BISMOID)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.PLASTIC), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.PLASTIC), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy")); this.register(new GenericRecipe("ass.fusionbscco").setup(100, 100).outputItems(new ItemStack(ModBlocks.fusion_component, 2, 0)) .inputItems(new OreDictStack(BSCCO.wireDense(), 1), new OreDictStack(CU.pipe(), 1), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 1), new OreDictStack(ANY_PLASTIC.ingot(), 4)) - .inputItemsEx(new OreDictStack(BSCCO.wireDense(), 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.PLASTIC))); + .inputItemsEx(new OreDictStack(BSCCO.wireDense(), 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.PLASTIC)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy")); this.register(new GenericRecipe("ass.fusionblanket").setup(100, 100).outputItems(new ItemStack(ModBlocks.fusion_component, 4, 2)) .inputItems(new OreDictStack(W.plateWelded(), 1), new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(BE.ingot(), 4)) - .inputItemsEx(new OreDictStack(W.plateWelded(), 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(BE.ingot(), 4))); + .inputItemsEx(new OreDictStack(W.plateWelded(), 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.HEAVY_FRAME), new OreDictStack(BE.ingot(), 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy")); this.register(new GenericRecipe("ass.fusionpipes").setup(100, 100).outputItems(new ItemStack(ModBlocks.fusion_component, 4, 3)) .inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 4), new OreDictStack(CU.pipe(), 2), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.PLASTIC), new OreDictStack(CU.pipe(), 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.CIRCUIT))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.PLASTIC), new OreDictStack(CU.pipe(), 4), new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.CIRCUIT)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy")); this.register(new GenericRecipe("ass.fusionklystron").setup(300, 100).outputItems(new ItemStack(ModBlocks.fusion_klystron, 1)) .inputItems(new OreDictStack(W.plateWelded(), 4), new OreDictStack(ANY_RESISTANTALLOY.plateCast(), 16), new OreDictStack(CU.plate(), 32), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(BSCCO.wireDense(), 8), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BISMOID)) @@ -553,7 +566,8 @@ public class AssemblyMachineRecipes extends GenericRecipes { .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.HEAVY_FRAME), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.PLASTIC))); this.register(new GenericRecipe("ass.fusionmhdt").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.fusion_mhdt, 1)) .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), new OreDictStack(CU.plateWelded(), 64), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), new OreDictStack(SBD.wireDense(), 64), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.QUANTUM)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.PLASTIC), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 32), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.QUANTUM))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.FERRO_PLATING), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.PLASTIC), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 32), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.QUANTUM)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.fusioncoupler").setup(300, 100).outputItems(new ItemStack(ModBlocks.fusion_coupler, 1)) .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 4), new OreDictStack(CU.plate(), 32), new OreDictStack(BSCCO.wireDense(), 16), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID)) .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BSCCO.wireDense(), 16), new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.COMPUTER))); @@ -561,62 +575,75 @@ public class AssemblyMachineRecipes extends GenericRecipes { // watz this.register(new GenericRecipe("ass.watzrod").setup(200, 100).outputItems(new ItemStack(ModBlocks.watz_element, 3)) .inputItems(new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(ZR.ingot(), 2), new OreDictStack(BIGMT.ingot(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.ingot(), 6), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(BIGMT.ingot(), 6), new OreDictStack(ANY_HARDPLASTIC.ingot(), 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy")); this.register(new GenericRecipe("ass.watzcooler").setup(200, 100).outputItems(new ItemStack(ModBlocks.watz_cooler, 3)) .inputItems(new OreDictStack(STEEL.plateCast(), 2), new OreDictStack(CU.plateCast(), 4), new OreDictStack(RUBBER.ingot(), 2)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(RUBBER.ingot(), 8))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(RUBBER.ingot(), 8)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy")); this.register(new GenericRecipe("ass.watzcasing").setup(100, 100).outputItems(new ItemStack(ModBlocks.watz_end, 3)) .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded()), new OreDictStack(B.ingot(), 3), new OreDictStack(STEEL.plateWelded(), 2)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_RESISTANTALLOY.plateWelded()))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 6, EnumExpensiveType.LEAD_PLATING), new OreDictStack(ANY_RESISTANTALLOY.plateWelded())) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "tcalloy")); // ICF this.register(new GenericRecipe("ass.icfcell").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CELL.ordinal())) .inputItems(new ComparableStack(ModItems.ingot_cft, 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new ComparableStack(ModBlocks.glass_quartz, 16)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 8), new ComparableStack(ModBlocks.glass_quartz, 16))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 2, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 8), new ComparableStack(ModBlocks.glass_quartz, 16)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfemitter").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.EMITTER.ordinal())) .inputItems(new OreDictStack(W.plateWelded(), 4), new OreDictStack(MAGTUNG.wireDense(), 16)) .inputItemsEx(new OreDictStack(W.plateWelded(), 8), new OreDictStack(MAGTUNG.wireDense(), 16)) - .inputFluids(new FluidStack(Fluids.XENON, 16_000))); + .inputFluids(new FluidStack(Fluids.XENON, 16_000)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfcapacitor").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CAPACITOR.ordinal())) .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 1), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 3, EnumExpensiveType.FERRO_PLATING), new OreDictStack(ND.wireDense(), 16), new OreDictStack(SBD.wireDense(), 2)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfturbo").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.TURBO.ordinal())) .inputItems(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 2), new OreDictStack(DNT.wireDense(), 4), new OreDictStack(SBD.wireDense(), 4)) - .inputItemsEx(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(DNT.wireDense(), 8), new OreDictStack(SBD.wireDense(), 4))); + .inputItemsEx(new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 8), new OreDictStack(DNT.wireDense(), 8), new OreDictStack(SBD.wireDense(), 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfcasing").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.CASING.ordinal())) .inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(BIGMT.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfport").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_laser_component, 1, EnumICFPart.PORT.ordinal())) .inputItems(new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new OreDictStack(ND.wireDense(), 16)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfcontroller").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_controller, 1)) .inputItems(new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 4), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.BRONZE_TUBES), new ComparableStack(ModItems.ingot_cft, 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.item_expensive, 4, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfscaffold").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 0)) .inputItems(new OreDictStack(STEEL.plateWelded(), 4), new OreDictStack(TI.plateWelded(), 2)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 8, EnumExpensiveType.STEEL_PLATING)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfvessel").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 1)) - .inputItems(new ComparableStack(ModItems.ingot_cft, 1), new OreDictStack(CMB.plateCast(), 1), new OreDictStack(W.plateWelded(), 2))); + .inputItems(new ComparableStack(ModItems.ingot_cft, 1), new OreDictStack(CMB.plateCast(), 1), new OreDictStack(W.plateWelded(), 2)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfstructural").setup(200, 100).outputItems(new ItemStack(ModBlocks.icf_component, 1, 3)) .inputItems(new OreDictStack(STEEL.plateWelded(), 2), new OreDictStack(CU.plateWelded(), 2), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 1)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(STEEL.plateWelded(), 8))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 1, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(STEEL.plateWelded(), 8)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfcore").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.struct_icf_core, 1)) .inputItems(new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(ANY_RESISTANTALLOY.plateWelded(), 16), new OreDictStack(ANY_BISMOIDBRONZE.plateCast(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.BISMOID), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.QUANTUM)) - .inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.COMPUTER))); + .inputItemsEx(new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.BRONZE_TUBES), new OreDictStack(CMB.plateWelded(), 16), new OreDictStack(SBD.wireDense(), 32), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.QUANTUM), new ComparableStack(ModItems.item_expensive, 16, EnumExpensiveType.COMPUTER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); this.register(new GenericRecipe("ass.icfpress").setup(200, 100).outputItems(new ItemStack(ModBlocks.machine_icf_press, 1)) - .inputItems(new OreDictStack(GOLD.plateCast(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID))); + .inputItems(new OreDictStack(GOLD.plateCast(), 8), new ComparableStack(ModItems.motor, 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "chlorophyte")); // upgrades - this.register(new GenericRecipe("ass.overdrive1").setup(200, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_1, 1)) - .inputItems(new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(BIGMT.ingot(), 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED))); - this.register(new GenericRecipe("ass.overdrive2").setup(600, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_2, 1)) - .inputItems(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(BIGMT.ingot(), 16), new ComparableStack(ModItems.ingot_cft, 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD))); - this.register(new GenericRecipe("ass.overdrive3").setup(1_200, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_3, 1)) - .inputItems(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(ANY_BISMOIDBRONZE.ingot(), 16), new ComparableStack(ModItems.ingot_cft, 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID))); - /* - this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModBlocks., 1)) - .inputItems()); - */ + if(no528) { + this.register(new GenericRecipe("ass.overdrive1").setup(200, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_1, 1)) + .inputItems(new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(BIGMT.ingot(), 16), new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED))); + this.register(new GenericRecipe("ass.overdrive2").setup(600, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_2, 1)) + .inputItems(new ComparableStack(ModItems.upgrade_overdrive_1, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(BIGMT.ingot(), 16), new ComparableStack(ModItems.ingot_cft, 8), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD))); + this.register(new GenericRecipe("ass.overdrive3").setup(1_200, 100).outputItems(new ItemStack(ModItems.upgrade_overdrive_3, 1)) + .inputItems(new ComparableStack(ModItems.upgrade_overdrive_2, 1), new ComparableStack(ModItems.upgrade_speed_3, 1), new ComparableStack(ModItems.upgrade_effect_3, 1), new OreDictStack(ANY_BISMOIDBRONZE.ingot(), 16), new ComparableStack(ModItems.ingot_cft, 16), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID))); + } // rancid shit mob spawners this.register(new GenericRecipe("ass.chopper").setup(1_200, 100).outputItems(new ItemStack(ModItems.spawn_chopper, 8)) @@ -634,27 +661,38 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.minenaval").setup(300, 100).outputItems(new ItemStack(ModBlocks.mine_naval, 1)) .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.pipe(), 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTICEXPLOSIVE.ingot(), 24))); this.register(new GenericRecipe("ass.gadget").setup(300, 100).outputItems(new ItemStack(ModBlocks.nuke_gadget, 1)) - .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_GRAY, 8))); + .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new ComparableStack(ModItems.fins_flat, 2), new ComparableStack(ModItems.pedestal_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_GRAY, 8)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.littleboy").setup(300, 100).outputItems(new ItemStack(ModBlocks.nuke_boy, 1)) - .inputItems(new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_BLUE, 4))); + .inputItems(new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_BLUE, 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.fatman").setup(300, 100).outputItems(new ItemStack(ModBlocks.nuke_man, 1)) - .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_YELLOW, 6))); + .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_YELLOW, 6)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.ivymike").setup(600, 100).outputItems(new ItemStack(ModBlocks.nuke_mike, 1)) - .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(AL.shell(), 4), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack(KEY_LIGHTGRAY, 16))); + .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(AL.shell(), 4), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack(KEY_LIGHTGRAY, 16)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.tsarbomba").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.nuke_tsar, 1)) - .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_tri_steel, 1), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack(KEY_BLACK, 8))); + .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_tri_steel, 1), new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack(KEY_BLACK, 8)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.ninadidnothingwrong").setup(300, 100).outputItems(new ItemStack(ModBlocks.nuke_prototype, 1)) - .inputItems(new ComparableStack(ModItems.dysfunctional_reactor, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.ingot_euphemium, 3), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED))); + .inputItems(new ComparableStack(ModItems.dysfunctional_reactor, 1), new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.ingot_euphemium, 3), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.fleija").setup(300, 100).outputItems(new ItemStack(ModBlocks.nuke_fleija, 1)) - .inputItems(new OreDictStack(AL.shell(), 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_WHITE, 4))); + .inputItems(new OreDictStack(AL.shell(), 1), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_WHITE, 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.solinium").setup(300, 100).outputItems(new ItemStack(ModBlocks.nuke_solinium, 1)) - .inputItems(new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_GRAY, 8))); + .inputItems(new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_quad_titanium, 1), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_GRAY, 8)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.n2mine").setup(200, 100).outputItems(new ItemStack(ModBlocks.nuke_n2, 1)) - .inputItems(new OreDictStack(STEEL.shell(), 6), new OreDictStack(MAGTUNG.wireFine(), 12), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_GREEN, 8))); + .inputItems(new OreDictStack(STEEL.shell(), 6), new OreDictStack(MAGTUNG.wireFine(), 12), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER), new OreDictStack(KEY_GREEN, 8)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.balefirebomb").setup(400, 100).outputItems(new ItemStack(ModBlocks.nuke_fstbmb, 1)) - .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack(KEY_GRAY, 8))); + .inputItems(new ComparableStack(ModItems.sphere_steel, 1), new OreDictStack(TI.shell(), 6), new ComparableStack(ModItems.fins_big_steel, 1), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack(KEY_GRAY, 8)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.customnuke").setup(300, 100).outputItems(new ItemStack(ModBlocks.nuke_custom, 1)) - .inputItems(new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack(KEY_GRAY, 4))); + .inputItems(new OreDictStack(STEEL.shell(), 2), new ComparableStack(ModItems.fins_small_steel, 1), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CONTROLLER_ADVANCED), new OreDictStack(KEY_GRAY, 4)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.levibomb").setup(200, 100).outputItems(new ItemStack(ModBlocks.float_bomb, 1)) .inputItems(new OreDictStack(TI.plate(), 12), new OreDictStack(SA326.nugget(), 3), new ComparableStack(ModItems.circuit, 4, EnumCircuitType.ADVANCED), new OreDictStack(GOLD.wireDense(), 8))); this.register(new GenericRecipe("ass.endobomb").setup(200, 100).outputItems(new ItemStack(ModBlocks.therm_endo, 1)) @@ -662,11 +700,6 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.exobomb").setup(200, 100).outputItems(new ItemStack(ModBlocks.therm_exo, 1)) .inputItems(new OreDictStack(TI.plate(), 12), new OreDictStack(P_RED.dust(), 32), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.coil_gold, 4))); - /* - this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModItems., 1)) - .inputItems()); - */ - // bomb parts this.register(new GenericRecipe("ass.explosivelenses1").setup(400, 100).outputItems(new ItemStack(ModItems.early_explosive_lenses, 1)) .inputItems(new OreDictStack(AL.plate(), 8), new OreDictStack(GOLD.wireFine(), 16), new ComparableStack(ModBlocks.det_cord, 8), new OreDictStack(CU.plate(), 2), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 20), new OreDictStack(ANY_PLASTIC.ingot(), 4))); @@ -736,32 +769,37 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.bholegrenade").setup(1_200, 100).outputItems(new ItemStack(ModItems.grenade_black_hole, 1)) .inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 6), new OreDictStack(OreDictManager.getReflector(), 3), new ComparableStack(ModItems.coil_magnetized_tungsten, 2), new ComparableStack(ModItems.black_hole, 1))); - /* - this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModBlocks., 1)) - .inputItems()); - */ - // turrets this.register(new GenericRecipe("ass.turretchekhov").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_chekhov, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turretfriendly").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_friendly, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BASIC), new OreDictStack(STEEL.pipe(), 3), new OreDictStack(GUNMETAL.mechanism(), 1), new ComparableStack(ModBlocks.crate_iron, 1), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turretjeremy").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_jeremy, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(STEEL.shell(), 3), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turrettauon").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_tauon, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.battery_lithium, 1), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 16), new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new ComparableStack(ModItems.motor_desh, 1), new OreDictStack(CU.ingot(), 32), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.battery_lithium, 1), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turretrichard").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_richard, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(ANY_PLASTIC.ingot(), 2), new OreDictStack(STEEL.shell(), 8), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.turrethoward").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_howard, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.motor_desh, 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 10), new OreDictStack(WEAPONSTEEL.mechanism(), 3), new ComparableStack(ModBlocks.crate_steel, 1), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.maxwell").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_maxwell, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_lithium_battery, 1), new OreDictStack(STEEL.ingot(), 24), new ComparableStack(ModItems.motor, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 4), new OreDictStack(BIGMT.mechanism(), 3), new ComparableStack(ModItems.magnetron, 16), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 8), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.fritz").setup(200, 100).outputItems(new ItemStack(ModBlocks.turret_fritz, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel))); + .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 16), new ComparableStack(ModItems.motor, 3), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 8), new OreDictStack(GUNMETAL.mechanism(), 3), new ComparableStack(ModBlocks.barrel_steel)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "bmg")); this.register(new GenericRecipe("ass.arty").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_arty, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.ADVANCED), new OreDictStack(STEEL.pipe(), 12), new OreDictStack(WEAPONSTEEL.mechanism(), 16), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "arty")); this.register(new GenericRecipe("ass.himars").setup(1_200, 100).outputItems(new ItemStack(ModBlocks.turret_himars, 1)) - .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1))); + .inputItems(new ComparableStack(ModBlocks.machine_battery, 1), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(STEEL.ingot(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64), new ComparableStack(ModItems.motor_desh, 5), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED), new OreDictStack(BIGMT.mechanism(), 8), new ComparableStack(ModBlocks.machine_radar, 1), new ComparableStack(ModItems.crt_display, 1)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "arty")); this.register(new GenericRecipe("ass.himarssmall").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL)) .inputItems(new OreDictStack(STEEL.plate(), 24), new OreDictStack(ANY_PLASTIC.ingot(), 12), new ComparableStack(ModItems.rocket_fuel, 48), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 48), new ComparableStack(ModItems.circuit, 6, EnumCircuitType.BASIC))); this.register(new GenericRecipe("ass.himarssmallhe").setup(100, 100).outputItems(new ItemStack(ModItems.ammo_himars, 1, ItemAmmoHIMARS.SMALL_HE)) @@ -807,10 +845,12 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.warheadbb3").setup(400, 100).outputItems(new ItemStack(ModItems.warhead_buster_large, 1)) .inputItems(new ComparableStack(ModItems.warhead_generic_large, 1), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8))); this.register(new GenericRecipe("ass.warheadnuke").setup(400, 100).outputItems(new ItemStack(ModItems.warhead_nuclear, 1)) - .inputItems(new OreDictStack(TI.plateCast(), 12), new OreDictStack(PB.plateCast(), 6), new OreDictStack(U235.billet(), 6), new ComparableStack(ModItems.cordite, 12), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER))); + .inputItems(new OreDictStack(TI.plateCast(), 12), new OreDictStack(PB.plateCast(), 6), new OreDictStack(U235.billet(), 6), new ComparableStack(ModItems.cordite, 12), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.warheadthermonuke").setup(600, 100).outputItems(new ItemStack(ModItems.warhead_mirv, 1)) .inputItems(new OreDictStack(TI.plateCast(), 12), new OreDictStack(PB.plateCast(), 6), new OreDictStack(PU239.billet(), 8), new ComparableStack(ModItems.ball_tatb, 12), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER_ADVANCED)) - .inputFluids(new FluidStack(Fluids.DEUTERIUM, 4_000))); + .inputFluids(new FluidStack(Fluids.DEUTERIUM, 4_000)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.warheadvolcano").setup(600, 100).outputItems(new ItemStack(ModItems.warhead_volcano, 1)) .inputItems(new OreDictStack(TI.plateCast(), 12), new OreDictStack(STEEL.plateCast(), 6), new ComparableStack(ModBlocks.det_nuke, 3), new OreDictStack(U238.block(), 24), new ComparableStack(ModItems.circuit, 5, EnumCircuitType.CAPACITOR_BOARD.ordinal()))); this.register(new GenericRecipe("ass.thrusternerva").setup(600, 100).outputItems(new ItemStack(ModItems.thruster_nuclear, 1)) @@ -902,9 +942,11 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.mpw10bus").setup(100, 100).outputItems(new ItemStack(ModItems.mp_warhead_10_buster, 1)) .inputItems(new ComparableStack(ModItems.seg_10, 1), new OreDictStack(WEAPONSTEEL.plate(), 6), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 6), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.BASIC))); this.register(new GenericRecipe("ass.mpw10nukesmall").setup(200, 100).outputItems(new ItemStack(ModItems.mp_warhead_10_nuclear, 1)) - .inputItems(new ComparableStack(ModItems.seg_10, 1), new OreDictStack(WEAPONSTEEL.plate(), 16), new OreDictStack(PU239.billet(), 2), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER))); + .inputItems(new ComparableStack(ModItems.seg_10, 1), new OreDictStack(WEAPONSTEEL.plate(), 16), new OreDictStack(PU239.billet(), 2), new OreDictStack(OreDictManager.getReflector(), 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 4), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.mpw10nukelarge").setup(200, 100).outputItems(new ItemStack(ModItems.mp_warhead_10_nuclear_large, 1)) - .inputItems(new ComparableStack(ModItems.seg_10, 1), new OreDictStack(WEAPONSTEEL.plate(), 16), new OreDictStack(PU239.billet(), 6), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 12), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER))); + .inputItems(new ComparableStack(ModItems.seg_10, 1), new OreDictStack(WEAPONSTEEL.plate(), 16), new OreDictStack(PU239.billet(), 6), new OreDictStack(OreDictManager.getReflector(), 8), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 12), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.mpw10taint").setup(100, 100).outputItems(new ItemStack(ModItems.mp_warhead_10_taint, 1)) .inputItems(new ComparableStack(ModItems.seg_10, 1), new OreDictStack(STEEL.plate(), 12), new ComparableStack(ModBlocks.det_cord, 2), new ComparableStack(ModItems.powder_magic, 12), new OreDictStack(Fluids.WATZ.getDict(1_000), 1))); this.register(new GenericRecipe("ass.mpw10cloud").setup(100, 100).outputItems(new ItemStack(ModItems.mp_warhead_10_cloud, 1)) @@ -914,16 +956,14 @@ public class AssemblyMachineRecipes extends GenericRecipes { this.register(new GenericRecipe("ass.mpw15inc").setup(200, 100).outputItems(new ItemStack(ModItems.mp_warhead_15_incendiary, 1)) .inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(STEEL.plate(), 12), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 8), new OreDictStack(P_RED.dust(), 16), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.BASIC))); this.register(new GenericRecipe("ass.mpw15nuke").setup(400, 100).outputItems(new ItemStack(ModItems.mp_warhead_15_nuclear, 1)) - .inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(WEAPONSTEEL.plate(), 32), new OreDictStack(PU239.billet(), 12), new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.ball_tatb, 24), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER))); + .inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(WEAPONSTEEL.plate(), 32), new OreDictStack(PU239.billet(), 12), new OreDictStack(OreDictManager.getReflector(), 12), new ComparableStack(ModItems.ball_tatb, 24), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CONTROLLER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.mpw15n2").setup(400, 100).outputItems(new ItemStack(ModItems.mp_warhead_15_n2, 1)) - .inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(WEAPONSTEEL.plate(), 32), new ComparableStack(ModItems.ball_tatb, 32), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED))); + .inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(WEAPONSTEEL.plate(), 32), new ComparableStack(ModItems.ball_tatb, 32), new ComparableStack(ModItems.circuit, 8, EnumCircuitType.ADVANCED)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); this.register(new GenericRecipe("ass.mpw15bf").setup(400, 100).outputItems(new ItemStack(ModItems.mp_warhead_15_balefire, 1)) - .inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(WEAPONSTEEL.plate(), 32), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 16), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER))); - - /* - this.register(new GenericRecipe("ass.").setup(, 100).outputItems(new ItemStack(ModItems., 1)) - .inputItems()); - */ + .inputItems(new ComparableStack(ModItems.seg_15, 1), new OreDictStack(WEAPONSTEEL.plate(), 32), new OreDictStack(OreDictManager.getReflector(), 16), new ComparableStack(ModItems.powder_magic, 8), new ComparableStack(ModItems.egg_balefire_shard, 4), new OreDictStack(ANY_HIGHEXPLOSIVE.ingot(), 16), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER)) + .setPools528(GenericRecipes.POOL_PREFIX_528 + "controller")); // weapons this.register(new GenericRecipe("ass.schrabhammer").setup(6_000, 100).outputItems(new ItemStack(ModItems.schrabidium_hammer, 1)) diff --git a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java index b643ac3b7..76dcbcd1a 100644 --- a/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PedestalRecipes.java @@ -56,6 +56,16 @@ public class PedestalRecipes extends SerializableRecipe { new ComparableStack(ModItems.scrap_nuclear), new ComparableStack(ModItems.gun_heavy_revolver), new ComparableStack(ModItems.scrap_nuclear), new ComparableStack(ModBlocks.chain, 16), new OreDictStack(CINNABAR.gem()), new ComparableStack(ModBlocks.chain, 16))); + register(new PedestalRecipe(new ItemStack(ModItems.gun_amat_subtlety), + new OreDictStack(STAR.ingot()), new OreDictStack(AL.plateCast()), new OreDictStack(STAR.ingot()), + new OreDictStack(AL.plateCast()), new ComparableStack(ModItems.gun_amat), new OreDictStack(AL.plateCast()), + new OreDictStack(STAR.ingot()), new OreDictStack(AL.plateCast()), new OreDictStack(STAR.ingot()))); + + register(new PedestalRecipe(new ItemStack(ModItems.gun_amat_penance), + new OreDictStack(STAR.ingot()), new OreDictStack(DURA.plateCast()), new OreDictStack(STAR.ingot()), + new ComparableStack(ModItems.weapon_mod_special, 1, EnumModSpecial.SILENCER), new ComparableStack(ModItems.gun_amat), new ComparableStack(ModItems.weapon_mod_special, 1, EnumModSpecial.FURNITURE_BLACK), + new OreDictStack(STAR.ingot()), new OreDictStack(DURA.plateCast()), new OreDictStack(STAR.ingot()))); + register(new PedestalRecipe(new ItemStack(ModItems.gun_flamer_daybreaker), new OreDictStack(GOLD.plateCast()), new ComparableStack(ModItems.canned_conserve, 1, EnumFoodType.JIZZ), new OreDictStack(GOLD.plateCast()), new OreDictStack(P_WHITE.ingot()), new ComparableStack(ModItems.gun_flamer), new OreDictStack(P_WHITE.ingot()), diff --git a/src/main/java/com/hbm/inventory/recipes/PrecAssRecipes.java b/src/main/java/com/hbm/inventory/recipes/PrecAssRecipes.java index dde88894e..6c06125da 100644 --- a/src/main/java/com/hbm/inventory/recipes/PrecAssRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/PrecAssRecipes.java @@ -16,6 +16,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import net.minecraft.init.Items; +import net.minecraft.item.Item; import net.minecraft.item.ItemFishFood.FishType; import net.minecraft.item.ItemStack; @@ -51,7 +52,8 @@ public class PrecAssRecipes extends GenericRecipes { .inputItems(new ComparableStack(ModItems.circuit, 4, EnumCircuitType.SILICON), new ComparableStack(ModItems.plate_polymer, 8), new OreDictStack(ANY_BISMOID.nugget(), 2), - new OreDictStack(GOLD.wireFine(), 4)).setPools(POOL_PREFIX_528 + "chip_bismoid"), + new OreDictStack(GOLD.wireFine(), 4)) + .inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 1_000)).setPools(POOL_PREFIX_528 + "chip_bismoid"), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_BISMOID), 50, GeneralConfig.enableExpensiveMode ? 10 : 75); registerPair(new GenericRecipe("precass.chip_quantum").setup(300, 20_000L) @@ -59,9 +61,17 @@ public class PrecAssRecipes extends GenericRecipes { new OreDictStack(BSCCO.wireDense(), 2), new OreDictStack(ANY_HARDPLASTIC.ingot(), 8), new ComparableStack(ModItems.pellet_charged, 4), - new OreDictStack(GOLD.wireFine(), 8)).setPools(POOL_PREFIX_528 + "chip_quantum"), + new OreDictStack(GOLD.wireFine(), 8)) + .inputFluids(new FluidStack(Fluids.HELIUM4, 4_000)).setPools(POOL_PREFIX_528 + "chip_quantum"), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_QUANTUM), 50, GeneralConfig.enableExpensiveMode ? 10 : 50); + registerPair(new GenericRecipe("precass.atomic_clock").setup(200, 2_000L) + .inputItems(new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CHIP), + new OreDictStack(ANY_PLASTIC.ingot(), 4), + new OreDictStack(ZR.wireFine(), 8), + new OreDictStack(SR.dust(), 1)).setPools(POOL_PREFIX_528 + "strontium"), + DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ATOMIC_CLOCK), 50, GeneralConfig.enableExpensiveMode ? 10 : 50); + registerPair(new GenericRecipe("precass.controller").setup(400, 15_000L) .inputItems(new ComparableStack(ModItems.circuit, 32, EnumCircuitType.CHIP), new ComparableStack(ModItems.circuit, 32, EnumCircuitType.CAPACITOR), @@ -79,7 +89,7 @@ public class PrecAssRecipes extends GenericRecipes { new ComparableStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER_CHASSIS), new ComparableStack(ModItems.upgrade_speed_3), new OreDictStack(PB.wireFine(), 24)) - .inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 1_000)), + .inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 4_000)), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER_ADVANCED), 10, GeneralConfig.enableExpensiveMode ? 33 : 75); registerPair(new GenericRecipe("precass.controller_quantum").setup(600, 250_000) @@ -89,8 +99,43 @@ public class PrecAssRecipes extends GenericRecipes { new ComparableStack(ModItems.circuit, 2, EnumCircuitType.CONTROLLER_ADVANCED), new ComparableStack(ModItems.upgrade_overdrive_1), new OreDictStack(PB.wireFine(), 32)) - .inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL, 1_000)), + .inputFluids(new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 6_000)), DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER_QUANTUM), 5, GeneralConfig.enableExpensiveMode ? 10 : 50); + + addFirstUpgrade(ModItems.upgrade_speed_1, ModItems.upgrade_speed_2, "precass.upgrade_speed_ii"); + addSecondUpgrade(ModItems.upgrade_speed_2, ModItems.upgrade_speed_3, "precass.upgrade_speed_iii"); + addFirstUpgrade(ModItems.upgrade_effect_1, ModItems.upgrade_effect_2, "precass.upgrade_effect_ii"); + addSecondUpgrade(ModItems.upgrade_effect_2, ModItems.upgrade_effect_3, "precass.upgrade_effect_iii"); + addFirstUpgrade(ModItems.upgrade_power_1, ModItems.upgrade_power_2, "precass.upgrade_power_ii"); + addSecondUpgrade(ModItems.upgrade_power_2, ModItems.upgrade_power_3, "precass.upgrade_power_iii"); + addFirstUpgrade(ModItems.upgrade_fortune_1, ModItems.upgrade_fortune_2, "precass.upgrade_fortune_ii"); + addSecondUpgrade(ModItems.upgrade_fortune_2, ModItems.upgrade_fortune_3, "precass.upgrade_fortune_iii"); + addFirstUpgrade(ModItems.upgrade_afterburn_1, ModItems.upgrade_afterburn_2, "precass.upgrade_ab_ii"); + addSecondUpgrade(ModItems.upgrade_afterburn_2, ModItems.upgrade_afterburn_3, "precass.upgrade_ab_iii"); + + registerPair(new GenericRecipe("precass.upgrade_overdive_i").setup(200, 1_000) + .inputItems(new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(BIGMT.ingot(), 16), + new OreDictStack(ANY_HARDPLASTIC.ingot(), 16), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.ADVANCED)), + new ItemStack(ModItems.upgrade_overdrive_1), 10, GeneralConfig.enableExpensiveMode ? 10 : 50); + registerPair(new GenericRecipe("precass.upgrade_overdive_ii").setup(600, 5_000) + .inputItems(new ComparableStack(ModItems.upgrade_overdrive_1, 1), + new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(BIGMT.ingot(), 16), + new ComparableStack(ModItems.ingot_cft, 8), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_BOARD)), + new ItemStack(ModItems.upgrade_overdrive_2), 10, GeneralConfig.enableExpensiveMode ? 10 : 50); + registerPair(new GenericRecipe("precass.upgrade_overdive_iii").setup(1_200, 100_000) + .inputItems(new ComparableStack(ModItems.upgrade_overdrive_2, 1), + new ComparableStack(ModItems.upgrade_speed_3, 1), + new ComparableStack(ModItems.upgrade_effect_3, 1), + new OreDictStack(ANY_BISMOIDBRONZE.ingot(), 16), + new ComparableStack(ModItems.ingot_cft, 16), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.BISMOID)), + new ItemStack(ModItems.upgrade_overdrive_3), 5, GeneralConfig.enableExpensiveMode ? 10 : 50); } int min = 1_200; @@ -114,6 +159,25 @@ public class PrecAssRecipes extends GenericRecipes { )); } + public void addFirstUpgrade(Item lower, Item higher, String name) { + + registerPair(new GenericRecipe(name).setup(300, 10_000) + .inputItems(new ComparableStack(ModItems.circuit, 8, EnumCircuitType.CHIP), + new ComparableStack(ModItems.circuit, 4, EnumCircuitType.CAPACITOR_TANTALIUM), + new ComparableStack(lower), new OreDictStack(ANY_PLASTIC.ingot(), 4)), + new ItemStack(higher), 15, 25); // upgrades are now actually valuable + } + + public void addSecondUpgrade(Item lower, Item higher, String name) { + + registerPair(new GenericRecipe(name).setup(400, 25_000) + .inputItems(new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CHIP), + new ComparableStack(ModItems.circuit, 16, EnumCircuitType.CAPACITOR_TANTALIUM), + new ComparableStack(lower), new OreDictStack(RUBBER.ingot(), 4)) + .inputFluids(new FluidStack(Fluids.SOLVENT, 500)), + new ItemStack(higher), 5, 10); // admittedly this one's just me being a dick + } + /** Registers a generic pair of faulty product and recycling of broken items. */ public void registerPair(GenericRecipe recipe, ItemStack output, int chance, int reclaim) { recipe.outputItems(new ChanceOutputMulti( diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index edf2d005b..411902bb4 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -1,23 +1,26 @@ package com.hbm.inventory.recipes; +import java.io.IOException; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.ItemStackUtil; -import com.hbm.util.Tuple.Quartet; -import com.hbm.util.Tuple.Quintet; import net.minecraft.item.ItemStack; -public class RefineryRecipes { +public class RefineryRecipes extends SerializableRecipe { /// fractions in percent /// public static final int oil_frac_heavy = 50; @@ -38,102 +41,109 @@ public class RefineryRecipes { public static final int crackds_frac_aroma = 15; public static final int crackds_frac_unsat = 15; - public static final int vac_frac_heavy = 40; - public static final int vac_frac_reform = 25; - public static final int vac_frac_light = 20; - public static final int vac_frac_sour = 15; + private static Map recipes = new HashMap(); - private static Map> refinery = new HashMap(); - private static Map> vacuum = new HashMap(); - - public static HashMap getRefineryRecipe() { - - HashMap recipes = new HashMap(); - - for(Entry> recipe : refinery.entrySet()) { - - Quintet fluids = recipe.getValue(); - - recipes.put(ItemFluidIcon.make(recipe.getKey(), 1000), - new ItemStack[] { - ItemFluidIcon.make(fluids.getV().type, fluids.getV().fill * 10), - ItemFluidIcon.make(fluids.getW().type, fluids.getW().fill * 10), - ItemFluidIcon.make(fluids.getX().type, fluids.getX().fill * 10), - ItemFluidIcon.make(fluids.getY().type, fluids.getY().fill * 10), - ItemStackUtil.carefulCopy(fluids.getZ()) }); - } - - return recipes; - } - - public static HashMap getVacuumRecipe() { - - HashMap recipes = new HashMap(); - - for(Entry> recipe : vacuum.entrySet()) { - - Quartet fluids = recipe.getValue(); - - recipes.put(ItemFluidIcon.make(recipe.getKey(), 1000, 2), - new ItemStack[] { - ItemFluidIcon.make(fluids.getW().type, fluids.getW().fill * 10), - ItemFluidIcon.make(fluids.getX().type, fluids.getX().fill * 10), - ItemFluidIcon.make(fluids.getY().type, fluids.getY().fill * 10), - ItemFluidIcon.make(fluids.getZ().type, fluids.getZ().fill * 10) }); - } - - return recipes; - } - - public static void registerRefinery() { - refinery.put(Fluids.HOTOIL, new Quintet( + @Override + public void registerDefaults() { + recipes.put(Fluids.HOTOIL, new RefineryRecipe( new FluidStack(Fluids.HEAVYOIL, oil_frac_heavy), new FluidStack(Fluids.NAPHTHA, oil_frac_naph), new FluidStack(Fluids.LIGHTOIL, oil_frac_light), new FluidStack(Fluids.PETROLEUM, oil_frac_petro), new ItemStack(ModItems.sulfur) )); - refinery.put(Fluids.HOTCRACKOIL, new Quintet( + recipes.put(Fluids.HOTCRACKOIL, new RefineryRecipe( new FluidStack(Fluids.NAPHTHA_CRACK, crack_frac_naph), new FluidStack(Fluids.LIGHTOIL_CRACK, crack_frac_light), new FluidStack(Fluids.AROMATICS, crack_frac_aroma), new FluidStack(Fluids.UNSATURATEDS, crack_frac_unsat), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK) )); - refinery.put(Fluids.HOTOIL_DS, new Quintet( + recipes.put(Fluids.HOTOIL_DS, new RefineryRecipe( new FluidStack(Fluids.HEAVYOIL, oilds_frac_heavy), new FluidStack(Fluids.NAPHTHA_DS, oilds_frac_naph), new FluidStack(Fluids.LIGHTOIL_DS, oilds_frac_light), new FluidStack(Fluids.UNSATURATEDS, oilds_frac_unsat), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN) )); - refinery.put(Fluids.HOTCRACKOIL_DS, new Quintet( + recipes.put(Fluids.HOTCRACKOIL_DS, new RefineryRecipe( new FluidStack(Fluids.NAPHTHA_DS, crackds_frac_naph), new FluidStack(Fluids.LIGHTOIL_DS, crackds_frac_light), new FluidStack(Fluids.AROMATICS, crackds_frac_aroma), new FluidStack(Fluids.UNSATURATEDS, crackds_frac_unsat), DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN) )); + } + + public static RefineryRecipe getRefinery(FluidType oil) { + return recipes.get(oil); + } - vacuum.put(Fluids.OIL, new Quartet( - new FluidStack(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy), - new FluidStack(Fluids.REFORMATE, vac_frac_reform), - new FluidStack(Fluids.LIGHTOIL_VACUUM, vac_frac_light), - new FluidStack(Fluids.SOURGAS, vac_frac_sour) - )); - vacuum.put(Fluids.OIL_DS, new Quartet( - new FluidStack(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy), - new FluidStack(Fluids.REFORMATE, vac_frac_reform), - new FluidStack(Fluids.LIGHTOIL_VACUUM, vac_frac_light), - new FluidStack(Fluids.REFORMGAS, vac_frac_sour) - )); + @Override public String getFileName() { return "hbmRefinery.json"; } + @Override public Object getRecipeObject() { return recipes; } + @Override public void deleteRecipes() { recipes.clear(); } + + @Override public String getComment() { + return "Inputs always assume 100mB, input ammount cannot be changed."; + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = recipe.getAsJsonObject(); + + FluidType type = Fluids.fromName(obj.get("input").getAsString()); + FluidStack o0 = this.readFluidStack(obj.get("output0").getAsJsonArray()); + FluidStack o1 = this.readFluidStack(obj.get("output1").getAsJsonArray()); + FluidStack o2 = this.readFluidStack(obj.get("output2").getAsJsonArray()); + FluidStack o3 = this.readFluidStack(obj.get("output3").getAsJsonArray()); + ItemStack solid = this.readItemStack(obj.get("solid").getAsJsonArray()); + + recipes.put(type, new RefineryRecipe(o0, o1, o2, o3, solid)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry rec = (Entry) recipe; + + writer.name("input").value(rec.getKey().getName()); + + for(int i = 0; i < 4; i++) { + writer.name("output" + i); + this.writeFluidStack(rec.getValue().outputs[i], writer); + } + + writer.name("solid"); + this.writeItemStack(rec.getValue().solid, writer); } - public static Quintet getRefinery(FluidType oil) { - return refinery.get(oil); + public static HashMap getRefineryRecipe() { + + HashMap recipes = new HashMap(); + + for(Entry recipe : RefineryRecipes.recipes.entrySet()) { + + RefineryRecipe fluids = recipe.getValue(); + + recipes.put(ItemFluidIcon.make(recipe.getKey(), 1000), + new ItemStack[] { + ItemFluidIcon.make(fluids.outputs[0].type, fluids.outputs[0].fill * 10), + ItemFluidIcon.make(fluids.outputs[1].type, fluids.outputs[1].fill * 10), + ItemFluidIcon.make(fluids.outputs[2].type, fluids.outputs[2].fill * 10), + ItemFluidIcon.make(fluids.outputs[3].type, fluids.outputs[3].fill * 10), + ItemStackUtil.carefulCopy(fluids.solid) }); + } + + return recipes; } - public static Quartet getVacuum(FluidType oil) { - return vacuum.get(oil); + public static class RefineryRecipe { + + public FluidStack[] outputs; + public ItemStack solid; + + public RefineryRecipe(FluidStack f0, FluidStack f1, FluidStack f2, FluidStack f3, ItemStack f4) { + this.outputs = new FluidStack[] {f0, f1, f2, f3}; + this.solid = f4; + } } } diff --git a/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java index 65c17f845..5f03dcd54 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolderingRecipes.java @@ -32,6 +32,7 @@ public class SolderingRecipes extends SerializableRecipe { public void registerDefaults() { boolean lbsm = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCrafting; + boolean no528 = !GeneralConfig.enable528; /* * CIRCUITS @@ -108,7 +109,7 @@ public class SolderingRecipes extends SerializableRecipe { * COMPUTERS */ - if(!GeneralConfig.enable528) { + if(no528) { recipes.add(new SolderingRecipe(new ItemStack(ModItems.circuit, 1, EnumCircuitType.CONTROLLER.ordinal()), 400, 15_000, new FluidStack(Fluids.PERFLUOROMETHYL, 1_000), new AStack[] { @@ -187,16 +188,18 @@ public class SolderingRecipes extends SerializableRecipe { new AStack[] {} )); - addFirstUpgrade(ModItems.upgrade_speed_1, ModItems.upgrade_speed_2); - addSecondUpgrade(ModItems.upgrade_speed_2, ModItems.upgrade_speed_3); - addFirstUpgrade(ModItems.upgrade_effect_1, ModItems.upgrade_effect_2); - addSecondUpgrade(ModItems.upgrade_effect_2, ModItems.upgrade_effect_3); - addFirstUpgrade(ModItems.upgrade_power_1, ModItems.upgrade_power_2); - addSecondUpgrade(ModItems.upgrade_power_2, ModItems.upgrade_power_3); - addFirstUpgrade(ModItems.upgrade_fortune_1, ModItems.upgrade_fortune_2); - addSecondUpgrade(ModItems.upgrade_fortune_2, ModItems.upgrade_fortune_3); - addFirstUpgrade(ModItems.upgrade_afterburn_1, ModItems.upgrade_afterburn_2); - addSecondUpgrade(ModItems.upgrade_afterburn_2, ModItems.upgrade_afterburn_3); + if(no528) { + addFirstUpgrade(ModItems.upgrade_speed_1, ModItems.upgrade_speed_2); + addSecondUpgrade(ModItems.upgrade_speed_2, ModItems.upgrade_speed_3); + addFirstUpgrade(ModItems.upgrade_effect_1, ModItems.upgrade_effect_2); + addSecondUpgrade(ModItems.upgrade_effect_2, ModItems.upgrade_effect_3); + addFirstUpgrade(ModItems.upgrade_power_1, ModItems.upgrade_power_2); + addSecondUpgrade(ModItems.upgrade_power_2, ModItems.upgrade_power_3); + addFirstUpgrade(ModItems.upgrade_fortune_1, ModItems.upgrade_fortune_2); + addSecondUpgrade(ModItems.upgrade_fortune_2, ModItems.upgrade_fortune_3); + addFirstUpgrade(ModItems.upgrade_afterburn_1, ModItems.upgrade_afterburn_2); + addSecondUpgrade(ModItems.upgrade_afterburn_2, ModItems.upgrade_afterburn_3); + } } public static void addFirstUpgrade(Item lower, Item higher) { diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 4e7aed3ad..8013d1003 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -64,7 +64,7 @@ public class SolidificationRecipes extends SerializableRecipe { registerRecipe(WATER, 1000, Blocks.ice); registerRecipe(LAVA, 1000, Blocks.obsidian); registerRecipe(MERCURY, 125, ModItems.ingot_mercury); - registerRecipe(BIOGAS, 250, ModItems.biomass_compressed); + registerRecipe(BIOGAS, 250, new ItemStack(ModItems.biomass_compressed, 4)); registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size) registerRecipe(ENDERJUICE, 100, Items.ender_pearl); registerRecipe(WATZ, 1000, ModItems.ingot_mud); diff --git a/src/main/java/com/hbm/inventory/recipes/VacuumRefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/VacuumRefineryRecipes.java new file mode 100644 index 000000000..74e8c64d5 --- /dev/null +++ b/src/main/java/com/hbm/inventory/recipes/VacuumRefineryRecipes.java @@ -0,0 +1,108 @@ +package com.hbm.inventory.recipes; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map.Entry; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; +import com.hbm.inventory.FluidStack; +import com.hbm.inventory.fluid.FluidType; +import com.hbm.inventory.fluid.Fluids; +import com.hbm.inventory.recipes.loader.SerializableRecipe; +import com.hbm.items.machine.ItemFluidIcon; + +import net.minecraft.item.ItemStack; + +public class VacuumRefineryRecipes extends SerializableRecipe { + + public static final int vac_frac_heavy = 40; + public static final int vac_frac_reform = 25; + public static final int vac_frac_light = 20; + public static final int vac_frac_sour = 15; + + public static HashMap recipes = new HashMap(); + + @Override + public void registerDefaults() { + + recipes.put(Fluids.OIL, new VacuumRefineryRecipe( + new FluidStack(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy), + new FluidStack(Fluids.REFORMATE, vac_frac_reform), + new FluidStack(Fluids.LIGHTOIL_VACUUM, vac_frac_light), + new FluidStack(Fluids.SOURGAS, vac_frac_sour) + )); + recipes.put(Fluids.OIL_DS, new VacuumRefineryRecipe( + new FluidStack(Fluids.HEAVYOIL_VACUUM, vac_frac_heavy), + new FluidStack(Fluids.REFORMATE, vac_frac_reform), + new FluidStack(Fluids.LIGHTOIL_VACUUM, vac_frac_light), + new FluidStack(Fluids.REFORMGAS, vac_frac_sour) + )); + } + + public static VacuumRefineryRecipe getVacuum(FluidType oil) { + return recipes.get(oil); + } + + @Override public String getFileName() { return "hbmVacRefinery.json"; } + @Override public Object getRecipeObject() { return recipes; } + @Override public void deleteRecipes() { recipes.clear(); } + + @Override public String getComment() { + return "Inputs always assume 100mB, input ammount cannot be changed."; + } + + @Override + public void readRecipe(JsonElement recipe) { + JsonObject obj = recipe.getAsJsonObject(); + + FluidType type = Fluids.fromName(obj.get("input").getAsString()); + FluidStack o0 = this.readFluidStack(obj.get("output0").getAsJsonArray()); + FluidStack o1 = this.readFluidStack(obj.get("output1").getAsJsonArray()); + FluidStack o2 = this.readFluidStack(obj.get("output2").getAsJsonArray()); + FluidStack o3 = this.readFluidStack(obj.get("output3").getAsJsonArray()); + + recipes.put(type, new VacuumRefineryRecipe(o0, o1, o2, o3)); + } + + @Override + public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { + Entry rec = (Entry) recipe; + + writer.name("input").value(rec.getKey().getName()); + + for(int i = 0; i < 4; i++) { + writer.name("output" + i); + this.writeFluidStack(rec.getValue().outputs[i], writer); + } + } + + public static HashMap getVacuumRecipe() { + + HashMap recipes = new HashMap(); + + for(Entry recipe : VacuumRefineryRecipes.recipes.entrySet()) { + + VacuumRefineryRecipe fluids = recipe.getValue(); + + recipes.put(ItemFluidIcon.make(recipe.getKey(), 1000, 2), + new ItemStack[] { + ItemFluidIcon.make(fluids.outputs[0].type, fluids.outputs[0].fill * 10), + ItemFluidIcon.make(fluids.outputs[1].type, fluids.outputs[1].fill * 10), + ItemFluidIcon.make(fluids.outputs[2].type, fluids.outputs[2].fill * 10), + ItemFluidIcon.make(fluids.outputs[3].type, fluids.outputs[3].fill * 10) }); + } + + return recipes; + } + + public static class VacuumRefineryRecipe { + + public FluidStack[] outputs; + + public VacuumRefineryRecipe(FluidStack f0, FluidStack f1, FluidStack f2, FluidStack f3) { + this.outputs = new FluidStack[] {f0, f1, f2, f3}; + } + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java index 159d987b0..eab7c3543 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipe.java @@ -59,7 +59,18 @@ public class GenericRecipe { public GenericRecipe setIcon(Item item) { return this.setIcon(new ItemStack(item)); } public GenericRecipe setIcon(Block block) { return this.setIcon(new ItemStack(block)); } public GenericRecipe setNamed() { this.customLocalization = true; return this; } - public GenericRecipe setPools(String... pools) { this.blueprintPools = pools; for(String pool : pools) GenericRecipes.addToPool(pool, this); return this; } + + public GenericRecipe setPools(String... pools) { + this.blueprintPools = pools; + for(String pool : pools) { + if(!GeneralConfig.enable528 && pool.startsWith(GenericRecipes.POOL_PREFIX_528)) throw new IllegalArgumentException("Tried initializing a recipe's default blueprint pool with a 528 blueprint - this is not allowed."); + GenericRecipes.addToPool(pool, this); + } + return this; + } + /** Only for recipe configs - same as regular except the anti 528 check doesn't exist */ + public GenericRecipe setPoolsAllow528(String... pools) { this.blueprintPools = pools; for(String pool : pools) GenericRecipes.addToPool(pool, this); return this; } + public GenericRecipe setPools528(String... pools) { if(GeneralConfig.enable528) { this.blueprintPools = pools; for(String pool : pools) GenericRecipes.addToPool(pool, this); } return this; } public GenericRecipe setGroup(String autoSwitch, GenericRecipes set) { this.autoSwitchGroup = autoSwitch; set.addToGroup(autoSwitch, this); return this; } public GenericRecipe inputItems(AStack... input) { this.inputItem = input; for(AStack stack : this.inputItem) if(stack.stacksize > 64) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; } diff --git a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java index 288da9a29..0394807eb 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/GenericRecipes.java @@ -118,7 +118,7 @@ public abstract class GenericRecipes extends Serializab if(obj.has("icon")) recipe.setIcon(this.readItemStack(obj.get("icon").getAsJsonArray())); if(obj.has("named") && obj.get("named").getAsBoolean()) recipe.setNamed(); - if(obj.has("blueprintpool")) recipe.setPools(obj.get("blueprintpool").getAsString().split(":")); + if(obj.has("blueprintpool")) recipe.setPoolsAllow528(obj.get("blueprintpool").getAsString().split(":")); if(obj.has("nameWrapper")) recipe.setNameWrapper(obj.get("nameWrapper").getAsString()); if(obj.has("autoSwitchGroup")) recipe.setGroup(obj.get("autoSwitchGroup").getAsString(), this); diff --git a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java index 0dd33edd2..dd7279516 100644 --- a/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java +++ b/src/main/java/com/hbm/inventory/recipes/loader/SerializableRecipe.java @@ -59,6 +59,8 @@ public abstract class SerializableRecipe { recipeHandlers.add(new CrucibleRecipes()); recipeHandlers.add(new CentrifugeRecipes()); recipeHandlers.add(new CrystallizerRecipes()); + recipeHandlers.add(new RefineryRecipes()); + recipeHandlers.add(new VacuumRefineryRecipes()); recipeHandlers.add(new FractionRecipes()); recipeHandlers.add(new CrackingRecipes()); recipeHandlers.add(new ReformingRecipes()); diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index a59094921..706fe43b1 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -224,8 +224,8 @@ public class ItemPoolsLegacy { weighted(ModItems.cell_antimatter, 0, 1, 1, 1), weighted(ModItems.powder_neodymium, 0, 1, 1, 1), weighted(ModItems.powder_niobium, 0, 1, 1, 1), - weighted(ModBlocks.fusion_conductor, 0, 2, 4, 5), - weighted(ModBlocks.fusion_heater, 0, 1, 3, 5), + weighted(ModItems.wire_dense, Mats.MAT_ALLOY.id, 2, 4, 5), + weighted(ModItems.wire_dense, Mats.MAT_GOLD.id, 1, 3, 5), weighted(ModBlocks.pwr_fuel, 0, 1, 2, 5), weighted(ModBlocks.block_tungsten, 0, 3, 8, 5), weighted(ModBlocks.red_wire_coated, 0, 4, 8, 5), diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index c2893c0e5..06dfd4ad2 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -1627,33 +1627,34 @@ public class ModItems { public static Item custom_schrab; public static Item custom_fall; - public static Item battery_generic; - public static Item battery_advanced; - public static Item battery_lithium; - public static Item battery_schrabidium; - public static Item battery_spark; - public static Item battery_trixite; + @Deprecated public static Item battery_generic; + @Deprecated public static Item battery_advanced; + @Deprecated public static Item battery_lithium; + @Deprecated public static Item battery_schrabidium; + @Deprecated public static Item battery_spark; + @Deprecated public static Item battery_trixite; + @Deprecated public static Item battery_red_cell; + @Deprecated public static Item battery_red_cell_6; + @Deprecated public static Item battery_red_cell_24; + @Deprecated public static Item battery_advanced_cell; + @Deprecated public static Item battery_advanced_cell_4; + @Deprecated public static Item battery_advanced_cell_12; + @Deprecated public static Item battery_lithium_cell; + @Deprecated public static Item battery_lithium_cell_3; + @Deprecated public static Item battery_lithium_cell_6; + @Deprecated public static Item battery_schrabidium_cell; + @Deprecated public static Item battery_schrabidium_cell_2; + @Deprecated public static Item battery_schrabidium_cell_4; + @Deprecated public static Item battery_spark_cell_6; + @Deprecated public static Item battery_spark_cell_25; + @Deprecated public static Item battery_spark_cell_100; + @Deprecated public static Item battery_spark_cell_1000; + @Deprecated public static Item battery_spark_cell_2500; + @Deprecated public static Item battery_spark_cell_10000; + @Deprecated public static Item battery_spark_cell_power; + + public static Item battery_pack; public static Item battery_creative; - - public static Item battery_red_cell; - public static Item battery_red_cell_6; - public static Item battery_red_cell_24; - public static Item battery_advanced_cell; - public static Item battery_advanced_cell_4; - public static Item battery_advanced_cell_12; - public static Item battery_lithium_cell; - public static Item battery_lithium_cell_3; - public static Item battery_lithium_cell_6; - public static Item battery_schrabidium_cell; - public static Item battery_schrabidium_cell_2; - public static Item battery_schrabidium_cell_4; - public static Item battery_spark_cell_6; - public static Item battery_spark_cell_25; - public static Item battery_spark_cell_100; - public static Item battery_spark_cell_1000; - public static Item battery_spark_cell_2500; - public static Item battery_spark_cell_10000; - public static Item battery_spark_cell_power; public static Item cube_power; public static Item battery_sc_uranium; @@ -3868,33 +3869,34 @@ public class ModItems { custom_schrab = new ItemCustomLore().setUnlocalizedName("custom_schrab").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_schrab"); custom_fall = new ItemCustomLore().setUnlocalizedName("custom_fall").setMaxStackSize(1).setCreativeTab(MainRegistry.nukeTab).setTextureName(RefStrings.MODID + ":custom_fall"); - battery_generic = new ItemBattery(5000, 100, 100).setUnlocalizedName("battery_generic").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_generic_new"); - battery_advanced = new ItemBattery(20000, 500, 500).setUnlocalizedName("battery_advanced").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_new"); - battery_lithium = new ItemBattery(250000, 1000, 1000).setUnlocalizedName("battery_lithium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium"); - battery_schrabidium = new ItemBattery(1000000, 5000, 5000).setUnlocalizedName("battery_schrabidium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_new"); - battery_spark = new ItemBattery(100000000, 2000000, 2000000).setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark"); - battery_trixite = new ItemBattery(5000000, 40000, 200000).setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_trixite"); + battery_generic = new ItemBattery(5000, 100, 100).setUnlocalizedName("battery_generic").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_generic_new"); + battery_advanced = new ItemBattery(20000, 500, 500).setUnlocalizedName("battery_advanced").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_advanced_new"); + battery_lithium = new ItemBattery(250000, 1000, 1000).setUnlocalizedName("battery_lithium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_lithium"); + battery_schrabidium = new ItemBattery(1000000, 5000, 5000).setUnlocalizedName("battery_schrabidium").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_schrabidium_new"); + battery_spark = new ItemBattery(100000000, 2000000, 2000000).setUnlocalizedName("battery_spark").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark"); + battery_trixite = new ItemBattery(5000000, 40000, 200000).setUnlocalizedName("battery_trixite").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_trixite"); + battery_red_cell = new ItemBattery(15000, 100, 100).setUnlocalizedName("battery_red_cell").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell"); + battery_red_cell_6 = new ItemBattery(15000 * 6, 100, 100).setUnlocalizedName("battery_red_cell_6").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell_6"); + battery_red_cell_24 = new ItemBattery(15000 * 24, 100, 100).setUnlocalizedName("battery_red_cell_24").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_red_cell_24"); + battery_advanced_cell = new ItemBattery(60000, 500, 500).setUnlocalizedName("battery_advanced_cell").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_advanced_cell"); + battery_advanced_cell_4 = new ItemBattery(60000 * 4, 500, 500).setUnlocalizedName("battery_advanced_cell_4").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_advanced_cell_4"); + battery_advanced_cell_12 = new ItemBattery(60000 * 12, 500, 500).setUnlocalizedName("battery_advanced_cell_12").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_advanced_cell_12"); + battery_lithium_cell = new ItemBattery(750000, 1000, 1000).setUnlocalizedName("battery_lithium_cell").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_lithium_cell"); + battery_lithium_cell_3 = new ItemBattery(750000 * 3, 1000, 1000).setUnlocalizedName("battery_lithium_cell_3").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_lithium_cell_3"); + battery_lithium_cell_6 = new ItemBattery(750000 * 6, 1000, 1000).setUnlocalizedName("battery_lithium_cell_6").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_lithium_cell_6"); + battery_schrabidium_cell = new ItemBattery(3000000, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell"); + battery_schrabidium_cell_2 = new ItemBattery(3000000 * 2, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell_2").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell_2"); + battery_schrabidium_cell_4 = new ItemBattery(3000000 * 4, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell_4").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell_4"); + battery_spark_cell_6 = new ItemBattery(100000000L * 6L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_6").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_6"); + battery_spark_cell_25 = new ItemBattery(100000000L * 25L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_25").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_25"); + battery_spark_cell_100 = new ItemBattery(100000000L * 100L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_100").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_100"); + battery_spark_cell_1000 = new ItemBattery(100000000L * 1000L, 20000000, 20000000).setUnlocalizedName("battery_spark_cell_1000").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_1000"); + battery_spark_cell_2500 = new ItemBattery(100000000L * 2500L, 20000000, 20000000).setUnlocalizedName("battery_spark_cell_2500").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_2500"); + battery_spark_cell_10000 = new ItemBattery(100000000L * 10000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_10000").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_10000"); + battery_spark_cell_power = new ItemBattery(100000000L * 1000000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(null).setTextureName(RefStrings.MODID + ":battery_spark_cell_power"); + + battery_pack = new ItemBatteryPack().setUnlocalizedName("battery_pack").setTextureName(RefStrings.MODID + ":battery_generic_new"); battery_creative = new Item().setUnlocalizedName("battery_creative").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_creative_new"); - - battery_red_cell = new ItemBattery(15000, 100, 100).setUnlocalizedName("battery_red_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell"); - battery_red_cell_6 = new ItemBattery(15000 * 6, 100, 100).setUnlocalizedName("battery_red_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell_6"); - battery_red_cell_24 = new ItemBattery(15000 * 24, 100, 100).setUnlocalizedName("battery_red_cell_24").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_red_cell_24"); - battery_advanced_cell = new ItemBattery(60000, 500, 500).setUnlocalizedName("battery_advanced_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell"); - battery_advanced_cell_4 = new ItemBattery(60000 * 4, 500, 500).setUnlocalizedName("battery_advanced_cell_4").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell_4"); - battery_advanced_cell_12 = new ItemBattery(60000 * 12, 500, 500).setUnlocalizedName("battery_advanced_cell_12").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_advanced_cell_12"); - battery_lithium_cell = new ItemBattery(750000, 1000, 1000).setUnlocalizedName("battery_lithium_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell"); - battery_lithium_cell_3 = new ItemBattery(750000 * 3, 1000, 1000).setUnlocalizedName("battery_lithium_cell_3").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell_3"); - battery_lithium_cell_6 = new ItemBattery(750000 * 6, 1000, 1000).setUnlocalizedName("battery_lithium_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_lithium_cell_6"); - battery_schrabidium_cell = new ItemBattery(3000000, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell"); - battery_schrabidium_cell_2 = new ItemBattery(3000000 * 2, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell_2").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell_2"); - battery_schrabidium_cell_4 = new ItemBattery(3000000 * 4, 5000, 5000).setUnlocalizedName("battery_schrabidium_cell_4").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_schrabidium_cell_4"); - battery_spark_cell_6 = new ItemBattery(100000000L * 6L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_6").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_6"); - battery_spark_cell_25 = new ItemBattery(100000000L * 25L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_25").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_25"); - battery_spark_cell_100 = new ItemBattery(100000000L * 100L, 2000000, 2000000).setUnlocalizedName("battery_spark_cell_100").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_100"); - battery_spark_cell_1000 = new ItemBattery(100000000L * 1000L, 20000000, 20000000).setUnlocalizedName("battery_spark_cell_1000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_1000"); - battery_spark_cell_2500 = new ItemBattery(100000000L * 2500L, 20000000, 20000000).setUnlocalizedName("battery_spark_cell_2500").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_2500"); - battery_spark_cell_10000 = new ItemBattery(100000000L * 10000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_10000").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_10000"); - battery_spark_cell_power = new ItemBattery(100000000L * 1000000L, 200000000, 200000000).setUnlocalizedName("battery_spark_cell_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_spark_cell_power"); cube_power = new ItemBattery(1000000000000000000L, 1000000000000000L, 1000000000000000L).setUnlocalizedName("cube_power").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":cube_power"); battery_sc_uranium = new ItemSelfcharger(5).setUnlocalizedName("battery_sc_uranium").setMaxStackSize(1).setCreativeTab(MainRegistry.controlTab).setTextureName(RefStrings.MODID + ":battery_sc_uranium"); @@ -5700,8 +5702,11 @@ public class ModItems { GameRegistry.registerItem(battery_spark_cell_2500, battery_spark_cell_2500.getUnlocalizedName()); GameRegistry.registerItem(battery_spark_cell_10000, battery_spark_cell_10000.getUnlocalizedName()); GameRegistry.registerItem(battery_spark_cell_power, battery_spark_cell_power.getUnlocalizedName()); - GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); + + GameRegistry.registerItem(battery_pack, battery_pack.getUnlocalizedName()); GameRegistry.registerItem(battery_creative, battery_creative.getUnlocalizedName()); + GameRegistry.registerItem(cube_power, cube_power.getUnlocalizedName()); + GameRegistry.registerItem(battery_potato, battery_potato.getUnlocalizedName()); GameRegistry.registerItem(battery_potatos, battery_potatos.getUnlocalizedName()); GameRegistry.registerItem(battery_sc_uranium, battery_sc_uranium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java index d5368b5f3..bfc6ba444 100644 --- a/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java +++ b/src/main/java/com/hbm/items/armor/ArmorFSBPowered.java @@ -117,12 +117,12 @@ public class ArmorFSBPowered extends ArmorFSB implements IBatteryItem { } @Override - public long getChargeRate() { + public long getChargeRate(ItemStack stack) { return chargeRate; } @Override - public long getDischargeRate() { + public long getDischargeRate(ItemStack stack) { return 0; } diff --git a/src/main/java/com/hbm/items/machine/ItemBattery.java b/src/main/java/com/hbm/items/machine/ItemBattery.java index fe31ec3b9..fa9fa8cb8 100644 --- a/src/main/java/com/hbm/items/machine/ItemBattery.java +++ b/src/main/java/com/hbm/items/machine/ItemBattery.java @@ -111,12 +111,12 @@ public class ItemBattery extends Item implements IBatteryItem { } @Override - public long getChargeRate() { + public long getChargeRate(ItemStack stack) { return chargeRate; } @Override - public long getDischargeRate() { + public long getDischargeRate(ItemStack stack) { return dischargeRate; } diff --git a/src/main/java/com/hbm/items/machine/ItemBatteryPack.java b/src/main/java/com/hbm/items/machine/ItemBatteryPack.java new file mode 100644 index 000000000..ba4f95f75 --- /dev/null +++ b/src/main/java/com/hbm/items/machine/ItemBatteryPack.java @@ -0,0 +1,158 @@ +package com.hbm.items.machine; + +import java.util.List; + +import com.hbm.interfaces.IOrderedEnum; +import com.hbm.items.ItemEnumMulti; +import com.hbm.lib.RefStrings; +import com.hbm.main.MainRegistry; +import com.hbm.util.BobMathUtil; +import com.hbm.util.EnumUtil; + +import api.hbm.energymk2.IBatteryItem; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.util.ResourceLocation; + +public class ItemBatteryPack extends ItemEnumMulti implements IBatteryItem { + + public ItemBatteryPack() { + super(EnumBatteryPack.class, true, false); + this.setMaxStackSize(1); + this.setCreativeTab(MainRegistry.controlTab); + } + + public static enum EnumBatteryPack { + REDSTONE ("battery_redstone", 100L), + LEAD ("battery_lead", 1_000L), + LITHIUM ("battery_lithium", 10_000L), + SODIUM ("battery_sodium", 50_000L), + SCHRABIDIUM ("battery_schrabidium", 250_000L), + QUANTUM ("battery_quantum", 1_000_000L); + + public ResourceLocation texture; + public long capacity; + public long chargeRate; + public long dischargeRate; + + private EnumBatteryPack(String tex, long dischargeRate) { + this(tex, dischargeRate * 20 * 60 * 15, dischargeRate * 10, dischargeRate); + } + + private EnumBatteryPack(String tex, long capacity, long chargeRate, long dischargeRate) { + this.texture = new ResourceLocation(RefStrings.MODID, "textures/models/machines/" + tex + ".png"); + this.capacity = capacity; + this.chargeRate = chargeRate; + this.dischargeRate = dischargeRate; + } + } + + @Override + public void chargeBattery(ItemStack stack, long i) { + if(stack.hasTagCompound()) { + stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") + i); + } else { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("charge", i); + } + } + + @Override + public void setCharge(ItemStack stack, long i) { + if(stack.hasTagCompound()) { + stack.stackTagCompound.setLong("charge", i); + } else { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("charge", i); + } + } + + @Override + public void dischargeBattery(ItemStack stack, long i) { + if(stack.hasTagCompound()) { + stack.stackTagCompound.setLong("charge", stack.stackTagCompound.getLong("charge") - i); + } else { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("charge", this.getMaxCharge(stack) - i); + } + } + + @Override + public long getCharge(ItemStack stack) { + if(stack.hasTagCompound()) { + return stack.stackTagCompound.getLong("charge"); + } else { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("charge", getMaxCharge(stack)); + return stack.stackTagCompound.getLong("charge"); + } + } + + @Override + public long getMaxCharge(ItemStack stack) { + EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, stack.getItemDamage()); + return pack.capacity; + } + + @Override + public long getChargeRate(ItemStack stack) { + EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, stack.getItemDamage()); + return pack.chargeRate; + } + + @Override + public long getDischargeRate(ItemStack stack) { + EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, stack.getItemDamage()); + return pack.dischargeRate; + } + + @Override public boolean showDurabilityBar(ItemStack stack) { return true; } + @Override public double getDurabilityForDisplay(ItemStack stack) { return 1D - (double) getCharge(stack) / (double) getMaxCharge(stack); } + + @Override + public void addInformation(ItemStack itemstack, EntityPlayer player, List list, boolean bool) { + long maxCharge = this.getMaxCharge(itemstack); + long chargeRate = this.getChargeRate(itemstack); + long dischargeRate = this.getDischargeRate(itemstack); + long charge = maxCharge; + + if(itemstack.hasTagCompound()) charge = getCharge(itemstack); + + list.add(EnumChatFormatting.GREEN + "Energy stored: " + BobMathUtil.getShortNumber(charge) + "/" + BobMathUtil.getShortNumber(maxCharge) + "HE"); + list.add(EnumChatFormatting.YELLOW + "Charge rate: " + BobMathUtil.getShortNumber(chargeRate) + "HE/t"); + list.add(EnumChatFormatting.YELLOW + "Discharge rate: " + BobMathUtil.getShortNumber(dischargeRate) + "HE/t"); + list.add(EnumChatFormatting.GOLD + "Time for full charge: " + (maxCharge / chargeRate / 20 / 60D) + "min"); + list.add(EnumChatFormatting.GOLD + "Charge lasts for: " + (maxCharge / dischargeRate / 20 / 60D) + "min"); + } + + public static ItemStack makeEmptyBattery(ItemStack stack) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("charge", 0); + return stack; + } + + public static ItemStack makeFullBattery(ItemStack stack) { + stack.stackTagCompound = new NBTTagCompound(); + stack.stackTagCompound.setLong("charge", ((ItemBatteryPack) stack.getItem()).getMaxCharge(stack)); + return stack; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + + Enum[] order = theEnum.getEnumConstants(); + if(order[0] instanceof IOrderedEnum) order = ((IOrderedEnum) order[0]).getOrder(); + + for(int i = 0; i < order.length; i++) { + list.add(makeEmptyBattery(new ItemStack(item, 1, order[i].ordinal()))); + list.add(makeFullBattery(new ItemStack(item, 1, order[i].ordinal()))); + } + } +} diff --git a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java index f41ec69eb..bbeb85104 100644 --- a/src/main/java/com/hbm/items/machine/ItemFluidIcon.java +++ b/src/main/java/com/hbm/items/machine/ItemFluidIcon.java @@ -51,6 +51,7 @@ public class ItemFluidIcon extends Item { } public static ItemStack addQuantity(ItemStack stack, int i) { + if(i <= 0) return stack; if(!stack.hasTagCompound()) stack.stackTagCompound = new NBTTagCompound(); stack.getTagCompound().setInteger("fill", i); return stack; diff --git a/src/main/java/com/hbm/items/machine/ItemMold.java b/src/main/java/com/hbm/items/machine/ItemMold.java index 7d6b0a092..b9b9cc43c 100644 --- a/src/main/java/com/hbm/items/machine/ItemMold.java +++ b/src/main/java/com/hbm/items/machine/ItemMold.java @@ -187,7 +187,9 @@ public class ItemMold extends Item { if(!ores.isEmpty()) { //prioritize NTM items for(ItemStack ore : ores) { - if(Item.itemRegistry.getNameForObject(ore.getItem()).startsWith(RefStrings.MODID)) { + String registry = Item.itemRegistry.getNameForObject(ore.getItem()); + if(registry.startsWith(RefStrings.MODID)) { + if(registry.contains("fragment")) continue; // deprioritize fragments ItemStack copy = ore.copy(); copy.stackSize = this.amount; return copy; diff --git a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java index 419f5401d..635df6cb1 100644 --- a/src/main/java/com/hbm/items/machine/ItemSelfcharger.java +++ b/src/main/java/com/hbm/items/machine/ItemSelfcharger.java @@ -43,12 +43,12 @@ public class ItemSelfcharger extends Item implements IBatteryItem { } @Override - public long getChargeRate() { + public long getChargeRate(ItemStack stack) { return 0; } @Override - public long getDischargeRate() { + public long getDischargeRate(ItemStack stack) { return charge; } diff --git a/src/main/java/com/hbm/items/special/ItemGlitch.java b/src/main/java/com/hbm/items/special/ItemGlitch.java index 0031aecdb..024b970d7 100644 --- a/src/main/java/com/hbm/items/special/ItemGlitch.java +++ b/src/main/java/com/hbm/items/special/ItemGlitch.java @@ -243,6 +243,6 @@ public class ItemGlitch extends Item implements IBatteryItem { @Override public void dischargeBattery(ItemStack stack, long i) { } @Override public long getCharge(ItemStack stack) { return 200; } @Override public long getMaxCharge(ItemStack stack) { return 200; } - @Override public long getChargeRate() { return 0; } - @Override public long getDischargeRate() { return 200; } + @Override public long getChargeRate(ItemStack stack) { return 0; } + @Override public long getDischargeRate(ItemStack stack) { return 200; } } diff --git a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java index 943dfd7ab..e3c7f431d 100644 --- a/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemSwordAbilityPower.java @@ -111,12 +111,12 @@ public class ItemSwordAbilityPower extends ItemSwordAbility implements IBatteryI } @Override - public long getChargeRate() { + public long getChargeRate(ItemStack stack) { return chargeRate; } @Override - public long getDischargeRate() { + public long getDischargeRate(ItemStack stack) { return 0; } diff --git a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java index c0c025d35..73166f49e 100644 --- a/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java +++ b/src/main/java/com/hbm/items/tool/ItemToolAbilityPower.java @@ -107,12 +107,12 @@ public class ItemToolAbilityPower extends ItemToolAbility implements IBatteryIte } @Override - public long getChargeRate() { + public long getChargeRate(ItemStack stack) { return chargeRate; } @Override - public long getDischargeRate() { + public long getDischargeRate(ItemStack stack) { return 0; } diff --git a/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunDrill.java b/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunDrill.java index 084ace60b..d32f93802 100644 --- a/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunDrill.java +++ b/src/main/java/com/hbm/items/weapon/sedna/impl/ItemGunDrill.java @@ -133,6 +133,6 @@ public class ItemGunDrill extends ItemGunBaseNT implements IFillableItem, IBatte return 0; } - @Override public long getChargeRate() { return 50_000; } - @Override public long getDischargeRate() { return 0; } + @Override public long getChargeRate(ItemStack stack) { return 50_000; } + @Override public long getDischargeRate(ItemStack stack) { return 0; } } diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 9f0510e48..d6071cefc 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -305,8 +305,11 @@ public class HbmWorldGen implements IWorldGenerator { if(world.getBlock(x, g - 1, z).canPlaceTorchOnTop(world, x, g - 1, z)) { world.setBlock(x, g, z, ModBlocks.mine_ap); - TileEntityLandmine landmine = (TileEntityLandmine) world.getTileEntity(x, g, z); - landmine.waitingForPlayer = true; + TileEntity tile = world.getTileEntity(x, g, z); + if(tile instanceof TileEntityLandmine) { + TileEntityLandmine landmine = (TileEntityLandmine) tile; + landmine.waitingForPlayer = true; + } if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned landmine at " + x + " " + g + " " + z); break; } @@ -323,8 +326,11 @@ public class HbmWorldGen implements IWorldGenerator { world.setBlock(x, y, z, ModBlocks.lantern_behemoth, 12, 3); MultiblockHandlerXR.fillSpace(world, x, y, z, new int[] {4, 0, 0, 0, 0, 0}, ModBlocks.lantern_behemoth, ForgeDirection.NORTH); - TileEntityLanternBehemoth lantern = (TileEntityLanternBehemoth) world.getTileEntity(x, y, z); - lantern.isBroken = true; + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof TileEntityLanternBehemoth) { + TileEntityLanternBehemoth lantern = (TileEntityLanternBehemoth) tile; + lantern.isBroken = true; + } if(rand.nextInt(2) == 0) { LootGenerator.setBlock(world, x, y, z - 2); @@ -342,8 +348,11 @@ public class HbmWorldGen implements IWorldGenerator { int y = world.getHeightValue(x, z); if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, ModBlocks.mine_he); - TileEntityLandmine landmine = (TileEntityLandmine) world.getTileEntity(x, y, z); - landmine.waitingForPlayer = true; + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof TileEntityLandmine) { + TileEntityLandmine landmine = (TileEntityLandmine) tile; + landmine.waitingForPlayer = true; + } } } @@ -373,10 +382,10 @@ public class HbmWorldGen implements IWorldGenerator { if(world.getBlock(x, y + 1, z).canPlaceTorchOnTop(world, x, y + 1, z)) { world.setBlock(x, y, z, ModBlocks.soyuz_capsule, 3, 2); - - TileEntitySoyuzCapsule cap = (TileEntitySoyuzCapsule)world.getTileEntity(x, y, z); - - if(cap != null) { + TileEntity tile = world.getTileEntity(x, y, z); + + if(tile instanceof TileEntitySoyuzCapsule) { + TileEntitySoyuzCapsule cap = (TileEntitySoyuzCapsule) tile; cap.setInventorySlotContents(rand.nextInt(cap.getSizeInventory()), new ItemStack(ModItems.record_glass)); } @@ -420,33 +429,36 @@ public class HbmWorldGen implements IWorldGenerator { if(world.getBlock(x, y - 1, z).canPlaceTorchOnTop(world, x, y - 1, z)) { world.setBlock(x, y, z, ModBlocks.safe, rand.nextInt(4) + 2, 2); - TileEntitySafe safe = (TileEntitySafe) world.getTileEntity(x, y, z); - - switch(rand.nextInt(10)) { - case 0: case 1: case 2: case 3: - safe.setMod(1); - WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_RUSTY), safe, rand.nextInt(4) + 3); - break; - case 4: case 5: case 6: - safe.setMod(0.1); - WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_STANDARD), safe, rand.nextInt(3) + 2); - break; - case 7: case 8: - safe.setMod(0.02); - WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_REINFORCED), safe, rand.nextInt(3) + 1); - break; - case 9: - safe.setMod(0.0); - WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_UNBREAKABLE), safe, rand.nextInt(2) + 1); - break; + + TileEntity tile = world.getTileEntity(x, y, z); + if(tile instanceof TileEntitySafe) { + TileEntitySafe safe = (TileEntitySafe) tile; + + switch(rand.nextInt(10)) { + case 0: case 1: case 2: case 3: + safe.setMod(1); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_RUSTY), safe, rand.nextInt(4) + 3); + break; + case 4: case 5: case 6: + safe.setMod(0.1); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_STANDARD), safe, rand.nextInt(3) + 2); + break; + case 7: case 8: + safe.setMod(0.02); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_REINFORCED), safe, rand.nextInt(3) + 1); + break; + case 9: + safe.setMod(0.0); + WeightedRandomChestContent.generateChestContents(rand, ItemPool.getPool(ItemPoolsSingle.POOL_VAULT_UNBREAKABLE), safe, rand.nextInt(2) + 1); + break; + } + + safe.setPins(rand.nextInt(999) + 1); + safe.lock(); + + if(rand.nextInt(10) < 3) safe.fillWithSpiders(); // 30% chance; those safes have been sitting there for ages, they gotta have some spiders in them } - safe.setPins(rand.nextInt(999) + 1); - safe.lock(); - - if(rand.nextInt(10) < 3) // 30% chance; those safes have been sitting there for ages, they gotta have some spiders in them - safe.fillWithSpiders(); - if(GeneralConfig.enableDebugMode) MainRegistry.logger.info("[Debug] Successfully spawned safe at " + x + " " + (y + 1) +" " + z); } diff --git a/src/main/java/com/hbm/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 5512310a8..72c4f8f89 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -244,7 +244,7 @@ public class Library { long batMax = battery.getMaxCharge(slots[index]); long batCharge = battery.getCharge(slots[index]); - long batRate = battery.getChargeRate(); + long batRate = battery.getChargeRate(slots[index]); long toCharge = Math.min(Math.min(power, batRate), batMax - batCharge); power -= toCharge; @@ -264,7 +264,7 @@ public class Library { IBatteryItem battery = (IBatteryItem) slots[index].getItem(); long batCharge = battery.getCharge(slots[index]); - long batRate = battery.getDischargeRate(); + long batRate = battery.getDischargeRate(slots[index]); long toDischarge = Math.min(Math.min((maxPower - power), batRate), batCharge); battery.dischargeBattery(slots[index], toDischarge); diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 93c6325d8..e12427a86 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (5526)"; + public static final String VERSION = "1.0.27 BETA (5546)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index fa3544020..47bb3e5d9 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -306,6 +306,7 @@ public class ClientProxy extends ServerProxy { ClientRegistry.bindTileEntitySpecialRenderer(TileEntityFF.class, new RenderForceField()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityForceField.class, new RenderMachineForceField()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFENSU.class, new RenderFENSU()); + ClientRegistry.bindTileEntitySpecialRenderer(TileEntityBatterySocket.class, new RenderBatterySocket()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineLargeTurbine.class, new RenderBigTurbine()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineReactorBreeding.class, new RenderBreeder()); ClientRegistry.bindTileEntitySpecialRenderer(TileEntitySolarBoiler.class, new RenderSolarBoiler()); @@ -541,6 +542,7 @@ public class ClientProxy extends ServerProxy { MinecraftForgeClient.registerItemRenderer(ModItems.missile_doomsday_rusted, new ItemRenderMissileGeneric(RenderMissileType.TYPE_NUCLEAR)); MinecraftForgeClient.registerItemRenderer(ModItems.missile_shuttle, new ItemRenderMissileGeneric(RenderMissileType.TYPE_ROBIN)); + MinecraftForgeClient.registerItemRenderer(ModItems.battery_pack, new ItemRenderBatteryPack()); //templates MinecraftForgeClient.registerItemRenderer(ModItems.assembly_template, new ItemRenderTemplate()); MinecraftForgeClient.registerItemRenderer(ModItems.chemistry_template, new ItemRenderTemplate()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 30b1dc27d..876a18718 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -2,7 +2,6 @@ package com.hbm.main; import com.hbm.blocks.BlockEnums.DecoCabinetEnum; import com.hbm.blocks.BlockEnums.LightstoneType; -import com.hbm.blocks.BlockEnums.EnumAbsorberTier; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockConcreteColoredExt.EnumConcreteType; import com.hbm.blocks.generic.BlockGenericStairs; @@ -666,17 +665,17 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.spikes, 4), new Object[] { "BBB", "BBB", "TTT", 'B', STEEL.bolt(), 'T', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModItems.custom_fall, 1), new Object[] { "IIP", "CHW", "IIP", 'I', ANY_RUBBER.ingot(), 'P', BIGMT.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'H', STEEL.shell(), 'W', ModItems.coil_copper }); addRecipeAuto(new ItemStack(ModBlocks.machine_controller, 1), new Object[] { "TDT", "DCD", "TDT", 'T', ANY_RESISTANTALLOY.ingot(), 'D', ModItems.crt_display, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED) }); - addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', U238.billet(), 'C', ModBlocks.crate_steel }); + addRecipeAuto(new ItemStack(ModItems.containment_box, 1), new Object[] { "LUL", "UCU", "LUL", 'L', PB.plate(), 'U', FERRO.ingot(), 'C', ModBlocks.crate_steel }); addRecipeAuto(new ItemStack(ModItems.casing_bag, 1), new Object[] { " L ", "LGL", " L ", 'L', Items.leather, 'G', GUNMETAL.plate() }); addRecipeAuto(new ItemStack(ModItems.casing_bag, 1), new Object[] { " L ", "LGL", " L ", 'L', ANY_RUBBER.ingot(), 'G', GUNMETAL.plate() }); addRecipeAuto(new ItemStack(ModItems.ammo_bag, 1), new Object[] { "LLL", "MGM", "LLL", 'L', Items.leather, 'G', WEAPONSTEEL.plate(), 'M', WEAPONSTEEL.mechanism() }); addRecipeAuto(new ItemStack(ModItems.ammo_bag, 1), new Object[] { "LLL", "MGM", "LLL", 'L', ANY_RUBBER.ingot(), 'G', WEAPONSTEEL.plate(), 'M', WEAPONSTEEL.mechanism() }); - addRecipeAuto(new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.BASE.ordinal()),new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() }); - addRecipeAuto(new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.RED.ordinal()),new Object[] { "ICI", "CPC", "ICI", 'I', TI.ingot(), 'C', COAL.dust(),'P', new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.BASE.ordinal()) }); - addRecipeAuto(new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.GREEN.ordinal()),new Object[] { "ICI", "CPC", "ICI", 'I', ANY_PLASTIC.ingot(), 'C', ModItems.powder_desh_mix,'P', new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.RED.ordinal()) }); - addRecipeAuto(new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.PINK.ordinal()), new Object[] { "ICI", "CPC", "ICI", 'I', BIGMT.ingot(), 'C', ModItems.powder_nitan_mix,'P', new ItemStack(ModBlocks.rad_absorber, 1, EnumAbsorberTier.GREEN.ordinal()) }); - addRecipeAuto(new ItemStack(ModBlocks.decon, 1), new Object[] { "BGB", "SAS", "BSB", 'B', BE.ingot(), 'G', Blocks.iron_bars, 'S', STEEL.ingot(), 'A', new ItemStack(ModBlocks.rad_absorber)}); + addRecipeAuto(new ItemStack(ModBlocks.absorber, 1), new Object[] { "ICI", "CPC", "ICI", 'I', CU.ingot(), 'C', COAL.dust(), 'P', PB.dust() }); + addRecipeAuto(new ItemStack(ModBlocks.absorber_red, 1), new Object[] { "ICI", "CPC", "ICI", 'I', TI.ingot(), 'C', COAL.dust(), 'P', ModBlocks.absorber }); + addRecipeAuto(new ItemStack(ModBlocks.absorber_green, 1), new Object[] { "ICI", "CPC", "ICI", 'I', ANY_PLASTIC.ingot(), 'C', ModItems.powder_desh_mix, 'P', ModBlocks.absorber_red }); + addRecipeAuto(new ItemStack(ModBlocks.absorber_pink, 1), new Object[] { "ICI", "CPC", "ICI", 'I', BIGMT.ingot(), 'C', ModItems.powder_nitan_mix, 'P', ModBlocks.absorber_green }); + addRecipeAuto(new ItemStack(ModBlocks.decon, 1), new Object[] { "BGB", "SAS", "BSB", 'B', BE.ingot(), 'G', Blocks.iron_bars, 'S', STEEL.ingot(), 'A', ModBlocks.absorber }); addRecipeAuto(new ItemStack(ModBlocks.machine_minirtg, 1), new Object[] { "LLL", "PPP", "TRT", 'L', PB.plate(), 'P', PU238.billet(), 'T', ModItems.thermo_element, 'R', ModItems.rtg_unit }); addRecipeAuto(new ItemStack(ModBlocks.machine_powerrtg, 1), new Object[] { "SRS", "PTP", "SRS", 'S', STAR.ingot(), 'R', ModItems.rtg_unit, 'P', PO210.billet(), 'T', TS.dust() }); @@ -767,11 +766,9 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.dfc_emitter, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModItems.crystal_xen, 'L', ModItems.sat_head_laser }); addRecipeAuto(new ItemStack(ModBlocks.dfc_receiver, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModBlocks.machine_transformer_dnt, 'X', ModBlocks.block_dineutronium, 'L', STEEL.shell() }); addRecipeAuto(new ItemStack(ModBlocks.dfc_injector, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', CMB.plate(), 'T', ModBlocks.machine_fluidtank, 'X', ModItems.motor, 'L', STEEL.pipe() }); - addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModBlocks.fusion_conductor, 'L', ModItems.crystal_xen }); + addRecipeAuto(new ItemStack(ModBlocks.dfc_stabilizer, 1), new Object[] { "SDS", "TXL", "SDS", 'S', OSMIRIDIUM.plateWelded(), 'D', ModItems.plate_desh, 'T', ModItems.singularity_spark, 'X', ModBlocks.hadron_coil_alloy, 'L', ModItems.crystal_xen }); addRecipeAuto(new ItemStack(ModBlocks.barrel_plastic, 1), new Object[] { "IPI", "I I", "IPI", 'I', ModItems.plate_polymer, 'P', AL.plate() }); - addRecipeAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { "IPI", "I I", "IPI", 'I', IRON.plate(), 'P', IRON.ingot() }); - addShapelessAuto(new ItemStack(ModBlocks.barrel_iron, 1), new Object[] { ModBlocks.barrel_corroded, ANY_TAR.any() }); - addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "ITI", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot(), 'T', ANY_TAR.any() }); + addRecipeAuto(new ItemStack(ModBlocks.barrel_steel, 1), new Object[] { "IPI", "I I", "IPI", 'I', STEEL.plate(), 'P', STEEL.ingot() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_tcalloy, 1), new Object[] { "IPI", "I I", "IPI", 'I', "ingotTcAlloy", 'P', TI.plate() }); addRecipeAuto(new ItemStack(ModBlocks.barrel_antimatter, 1), new Object[] { "IPI", "IBI", "IPI", 'I', BIGMT.plate(), 'P', ModItems.coil_advanced_torus, 'B', ModItems.battery_sc_technetium }); addRecipeAuto(new ItemStack(ModBlocks.tesla, 1), new Object[] { "CCC", "PIP", "WTW", 'C', ModItems.coil_copper, 'I', IRON.ingot(), 'P', ANY_PLASTIC.ingot(), 'T', ModBlocks.machine_transformer, 'W', KEY_PLANKS }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index ca2a7fcc8..7080fc9d2 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -552,7 +552,6 @@ public class MainRegistry { MagicRecipes.register(); LemegetonRecipes.register(); SILEXRecipes.register(); - RefineryRecipes.registerRefinery(); GasCentrifugeRecipes.register(); CustomMachineConfigJSON.initialize(); @@ -1456,6 +1455,19 @@ public class MainRegistry { ignoreMappings.add("hbm:item.multitool_decon"); ignoreMappings.add("hbm:tile.struct_iter_core"); ignoreMappings.add("hbm:tile.struct_plasma_core"); + ignoreMappings.add("hbm:tile.machine_amgen"); + ignoreMappings.add("hbm:tile.machine_geo"); + ignoreMappings.add("hbm:tile.ore_coal_oil"); + ignoreMappings.add("hbm:tile.ore_coal_oil_burning"); + ignoreMappings.add("hbm:tile.block_weidanium"); + ignoreMappings.add("hbm:tile.block_reiium"); + ignoreMappings.add("hbm:tile.block_unobtainium"); + ignoreMappings.add("hbm:tile.block_daffergon"); + ignoreMappings.add("hbm:tile.block_verticium"); + ignoreMappings.add("hbm:tile.machine_schrabidium_transmutator"); + ignoreMappings.add("hbm:tile.fusion_conductor"); + ignoreMappings.add("hbm:tile.fusion_center"); + ignoreMappings.add("hbm:tile.fusion_motor"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/main/ModEventHandler.java b/src/main/java/com/hbm/main/ModEventHandler.java index 39027aaa8..18cc855fb 100644 --- a/src/main/java/com/hbm/main/ModEventHandler.java +++ b/src/main/java/com/hbm/main/ModEventHandler.java @@ -13,6 +13,10 @@ import com.hbm.entity.mob.*; import com.hbm.entity.projectile.EntityBulletBaseMK4; import com.hbm.entity.projectile.EntityBurningFOEQ; import com.hbm.entity.train.EntityRailCarBase; +import com.hbm.explosion.vanillant.ExplosionVNT; +import com.hbm.explosion.vanillant.standard.EntityProcessorCrossSmooth; +import com.hbm.explosion.vanillant.standard.ExplosionEffectWeapon; +import com.hbm.explosion.vanillant.standard.PlayerProcessorStandard; import com.hbm.extprop.HbmLivingProps; import com.hbm.extprop.HbmPlayerProps; import com.hbm.handler.ArmorModHandler; @@ -1177,12 +1181,30 @@ public class ModEventHandler { } @SubscribeEvent - public void onClickSign(PlayerInteractEvent event) { + public void onClickBlock(PlayerInteractEvent event) { int x = event.x; - int y = event.z; - int z = event.y; + int y = event.y; + int z = event.z; World world = event.world; + + if(GeneralConfig.enable528ExplosiveEnergistics && !world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK) { + Block b = world.getBlock(x, y, z); + String name = Block.blockRegistry.getNameForObject(b); + if(name != null && name.startsWith("appliedenergistics2")) { + world.func_147480_a(x, y, z, false); + ExplosionVNT vnt = new ExplosionVNT(world, x + 0.5, y + 0.5, z + 0.5, 5, null); + vnt.setEntityProcessor(new EntityProcessorCrossSmooth(1, 20).setupPiercing(5, 0.2F)); + vnt.setPlayerProcessor(new PlayerProcessorStandard()); + vnt.setSFX(new ExplosionEffectWeapon(10, 2.5F, 1F)); + vnt.explode(); + event.setCanceled(true); + } + } + + x = event.x; + y = event.z; + z = event.y; if(!world.isRemote && event.action == Action.RIGHT_CLICK_BLOCK && world.getTileEntity(x, y, z) instanceof TileEntitySign) { diff --git a/src/main/java/com/hbm/main/ModEventHandlerClient.java b/src/main/java/com/hbm/main/ModEventHandlerClient.java index daa28d1b3..375110439 100644 --- a/src/main/java/com/hbm/main/ModEventHandlerClient.java +++ b/src/main/java/com/hbm/main/ModEventHandlerClient.java @@ -1408,7 +1408,7 @@ public class ModEventHandlerClient { case 2: main.splashText = "All answers are popbob!"; break; case 3: main.splashText = "None may enter The Orb!"; break; case 4: main.splashText = "Wacarb was here"; break; - case 5: main.splashText = "SpongeBoy me Bob I am overdosing on keramine agagagagaga"; break; + case 5: main.splashText = "SpongeBoy me Bob I am overdosing on ketamine agagagagaga"; break; case 6: main.splashText = EnumChatFormatting.RED + "I know where you live, " + System.getProperty("user.name"); break; case 7: main.splashText = "Nice toes, now hand them over."; break; case 8: main.splashText = "I smell burnt toast!"; break; diff --git a/src/main/java/com/hbm/main/NEIRegistry.java b/src/main/java/com/hbm/main/NEIRegistry.java index 682d83f00..755dda1fd 100644 --- a/src/main/java/com/hbm/main/NEIRegistry.java +++ b/src/main/java/com/hbm/main/NEIRegistry.java @@ -15,6 +15,7 @@ public class NEIRegistry { if(!handlers.isEmpty()) return handlers; + handlers.add(new AnnihilatorHandler()); handlers.add(new AnvilRecipeHandler()); handlers.add(new SmithingRecipeHandler()); handlers.add(new PressRecipeHandler()); diff --git a/src/main/java/com/hbm/main/ResourceManager.java b/src/main/java/com/hbm/main/ResourceManager.java index 8e9d147db..a0f97f3b6 100644 --- a/src/main/java/com/hbm/main/ResourceManager.java +++ b/src/main/java/com/hbm/main/ResourceManager.java @@ -270,6 +270,7 @@ public class ResourceManager { public static final IModelCustom watz_pump = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/watz_pump.obj")).asVBO(); //FENSU + public static final IModelCustom battery_socket = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/battery.obj")).asVBO(); public static final IModelCustom fensu = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/fensu.obj")).asVBO(); //Radar @@ -737,6 +738,7 @@ public class ResourceManager { public static final ResourceLocation watz_pump_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/watz_pump.png"); //FENSU + public static final ResourceLocation battery_socket_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/battery_socket.png"); public static final ResourceLocation fensu_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/fensu.png"); //Radar diff --git a/src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java b/src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java index 7f41feeb1..7183c202b 100644 --- a/src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/toserver/AuxButtonPacket.java @@ -2,6 +2,7 @@ package com.hbm.packet.toserver; import com.hbm.config.MobConfig; import com.hbm.entity.mob.EntityDuck; +import com.hbm.interfaces.NotableComments; import com.hbm.items.weapon.ItemCustomMissilePart.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityTickingBase; @@ -25,6 +26,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.Vec3; +@NotableComments @Deprecated //use the NBT control packet instead public class AuxButtonPacket implements IMessage { @@ -34,13 +36,9 @@ public class AuxButtonPacket implements IMessage { int value; int id; - public AuxButtonPacket() - { - - } + public AuxButtonPacket() { } - public AuxButtonPacket(int x, int y, int z, int value, int id) - { + public AuxButtonPacket(int x, int y, int z, int value, int id) { this.x = x; this.y = y; this.z = z; @@ -77,58 +75,45 @@ public class AuxButtonPacket implements IMessage { //try { TileEntity te = p.worldObj.getTileEntity(m.x, m.y, m.z); - if (te instanceof TileEntityForceField) { + if(te instanceof TileEntityForceField) { TileEntityForceField field = (TileEntityForceField)te; - field.isOn = !field.isOn; } - if (te instanceof TileEntityMachineMissileAssembly) { + if(te instanceof TileEntityMachineMissileAssembly) { TileEntityMachineMissileAssembly assembly = (TileEntityMachineMissileAssembly)te; - assembly.construct(); } - if (te instanceof TileEntityLaunchTable) { + if(te instanceof TileEntityLaunchTable) { TileEntityLaunchTable launcher = (TileEntityLaunchTable)te; - launcher.padSize = PartSize.values()[m.value]; } - if (te instanceof TileEntityCoreEmitter) { + if(te instanceof TileEntityCoreEmitter) { TileEntityCoreEmitter core = (TileEntityCoreEmitter)te; - - if(m.id == 0) { - core.watts = m.value; - } - if(m.id == 1) { - core.isOn = !core.isOn; - } + if(m.id == 0) core.watts = m.value; + if(m.id == 1) core.isOn = !core.isOn; } - if (te instanceof TileEntityCoreStabilizer) { + if(te instanceof TileEntityCoreStabilizer) { TileEntityCoreStabilizer core = (TileEntityCoreStabilizer)te; - - if(m.id == 0) { - core.watts = m.value; - } + if(m.id == 0) core.watts = m.value; } - if (te instanceof TileEntityBarrel) { + if(te instanceof TileEntityBarrel) { TileEntityBarrel barrel = (TileEntityBarrel)te; - barrel.mode = (short) ((barrel.mode + 1) % barrel.modes); barrel.markDirty(); } - if (te instanceof TileEntityMachineBattery) { + if(te instanceof TileEntityMachineBattery) { TileEntityMachineBattery bat = (TileEntityMachineBattery)te; if(m.id == 0) { bat.redLow = (short) ((bat.redLow + 1) % 4); bat.markDirty(); } - if(m.id == 1) { bat.redHigh = (short) ((bat.redHigh + 1) % 4); bat.markDirty(); @@ -136,26 +121,22 @@ public class AuxButtonPacket implements IMessage { if(m.id == 2) { switch(bat.priority) { - case LOW: bat.priority = ConnectionPriority.NORMAL; break; - case NORMAL: bat.priority = ConnectionPriority.HIGH; break; - case HIGH: bat.priority = ConnectionPriority.LOW; break; + case LOW: bat.priority = ConnectionPriority.NORMAL; break; + case NORMAL: bat.priority = ConnectionPriority.HIGH; break; + case HIGH: bat.priority = ConnectionPriority.LOW; break; } bat.markDirty(); } } - if (te instanceof TileEntitySoyuzLauncher) { + if(te instanceof TileEntitySoyuzLauncher) { TileEntitySoyuzLauncher launcher = (TileEntitySoyuzLauncher)te; - - if(m.id == 0) - launcher.mode = (byte) m.value; - if(m.id == 1) - launcher.startCountdown(); + if(m.id == 0) launcher.mode = (byte) m.value; + if(m.id == 1) launcher.startCountdown(); } - if (te instanceof TileEntityMachineMiningLaser) { + if(te instanceof TileEntityMachineMiningLaser) { TileEntityMachineMiningLaser laser = (TileEntityMachineMiningLaser)te; - laser.isOn = !laser.isOn; } diff --git a/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java b/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java new file mode 100644 index 000000000..bde3cbeac --- /dev/null +++ b/src/main/java/com/hbm/render/item/ItemRenderBatteryPack.java @@ -0,0 +1,28 @@ +package com.hbm.render.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; +import com.hbm.main.ResourceManager; +import com.hbm.util.EnumUtil; + +import net.minecraft.client.Minecraft; +import net.minecraft.item.ItemStack; + +public class ItemRenderBatteryPack extends ItemRenderBase { + + @Override + public void renderInventory() { + GL11.glTranslated(0, -3, 0); + GL11.glScaled(5, 5, 5); + } + + @Override + public void renderCommonWithStack(ItemStack item) { + EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, item.getItemDamage()); + GL11.glShadeModel(GL11.GL_SMOOTH); + Minecraft.getMinecraft().getTextureManager().bindTexture(pack.texture); + ResourceManager.battery_socket.renderPart("Battery"); + GL11.glShadeModel(GL11.GL_FLAT); + } +} diff --git a/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java b/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java new file mode 100644 index 000000000..66a69928d --- /dev/null +++ b/src/main/java/com/hbm/render/tileentity/RenderBatterySocket.java @@ -0,0 +1,71 @@ +package com.hbm.render.tileentity; + +import org.lwjgl.opengl.GL11; + +import com.hbm.blocks.ModBlocks; +import com.hbm.items.machine.ItemBatteryPack.EnumBatteryPack; +import com.hbm.main.ResourceManager; +import com.hbm.render.item.ItemRenderBase; +import com.hbm.tileentity.machine.storage.TileEntityBatterySocket; +import com.hbm.util.EnumUtil; + +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.Item; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.client.IItemRenderer; + +public class RenderBatterySocket extends TileEntitySpecialRenderer implements IItemRendererProvider { + + @Override + public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float interp) { + GL11.glPushMatrix(); + GL11.glTranslated(x + 0.5, y, z + 0.5); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_CULL_FACE); + + switch(tile.getBlockMetadata() - 10) { + case 2: GL11.glRotatef(90, 0F, 1F, 0F); break; + case 4: GL11.glRotatef(180, 0F, 1F, 0F); break; + case 3: GL11.glRotatef(270, 0F, 1F, 0F); break; + case 5: GL11.glRotatef(0, 0F, 1F, 0F); break; + } + + GL11.glTranslated(-0.5, 0, 0.5); + + TileEntityBatterySocket socket = (TileEntityBatterySocket) tile; + + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.battery_socket_tex); + ResourceManager.battery_socket.renderPart("Socket"); + + if(socket.renderPack >= 0) { + EnumBatteryPack pack = EnumUtil.grabEnumSafely(EnumBatteryPack.class, socket.renderPack); + bindTexture(pack.texture); + ResourceManager.battery_socket.renderPart("Battery"); + } + + GL11.glShadeModel(GL11.GL_FLAT); + + GL11.glPopMatrix(); + } + + @Override + public Item getItemForRenderer() { + return Item.getItemFromBlock(ModBlocks.machine_battery_socket); + } + + @Override + public IItemRenderer getRenderer() { + return new ItemRenderBase() { + public void renderInventory() { + GL11.glTranslated(0, -2, 0); + GL11.glScaled(5, 5, 5); + } + public void renderCommon() { + GL11.glShadeModel(GL11.GL_SMOOTH); + bindTexture(ResourceManager.battery_socket_tex); + ResourceManager.battery_socket.renderPart("Socket"); + GL11.glShadeModel(GL11.GL_FLAT); + }}; + } +} diff --git a/src/main/java/com/hbm/saveddata/AnnihilatorSavedData.java b/src/main/java/com/hbm/saveddata/AnnihilatorSavedData.java index 303e7f7ce..5304ad557 100644 --- a/src/main/java/com/hbm/saveddata/AnnihilatorSavedData.java +++ b/src/main/java/com/hbm/saveddata/AnnihilatorSavedData.java @@ -101,8 +101,8 @@ public class AnnihilatorSavedData extends WorldSavedData { ItemStack dictPayout = null; List oreDict = ItemStackUtil.getOreDictNames(stack); - for(String name : oreDict) if(name != null && !name.isEmpty()) { - ItemStack payout = poolInstance.increment(name, stack.stackSize, alwaysPayOut); // because some assholes pollute the ore dict with crap values + for(String name : oreDict) if(name != null && !name.isEmpty()) { // because some assholes pollute the ore dict with crap values + ItemStack payout = poolInstance.increment(name, stack.stackSize, alwaysPayOut); if(payout != null) dictPayout = payout; } @@ -161,10 +161,8 @@ public class AnnihilatorSavedData extends WorldSavedData { } catch(Throwable ex) { } // because world data can be dented to all fucking hell and back } - /** So we want to avoid NBTTagCompounds because the keys are basically useless here and Strings are heavy as shit. - * So what do? Shrimple, we use NBTTagLists. However, Mojang never expected lists to use different types, even though - * implementing a list like that would be really easy, so we just break down absolutely all information we have into - * byte arrays because the NBTTagList can handle those. God I hate this. */ + /** Originally this uses NBTTagLists which broke down everything into byte arrays. It probably worked, but my stupid ass + * defined some NBT crap in the upper levels wrong so nothing worked, and this got rewritten too. Well at least now it does. */ public void serializeKey(NBTTagCompound nbt, Object key) { if(key instanceof Item) { // 0 Item item = (Item) key; @@ -182,7 +180,7 @@ public class AnnihilatorSavedData extends WorldSavedData { if(key instanceof FluidType) { // 2 FluidType type = (FluidType) key; nbt.setByte("key", (byte) 2); - nbt.setString("fluid", type.getUnlocalizedName()); + nbt.setString("fluid", type.getName()); } if(key instanceof String) { // 3 @@ -204,7 +202,7 @@ public class AnnihilatorSavedData extends WorldSavedData { if(key == 2) { // fluidtype return Fluids.fromName(nbt.getString("fluid")); } - if(key == 3) { + if(key == 3) { // strong return nbt.getString("dict"); } // i feel filthy diff --git a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java index dc30ea5b3..3f36eab8d 100644 --- a/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java +++ b/src/main/java/com/hbm/tileentity/TileEntityProxyCombo.java @@ -6,6 +6,7 @@ import com.hbm.handler.CompatHandler.OCComponent; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.tank.FluidTank; +import api.hbm.energymk2.IEnergyConductorMK2; import api.hbm.energymk2.IEnergyReceiverMK2; import api.hbm.fluidmk2.IFluidConnectorMK2; import api.hbm.fluidmk2.IFluidReceiverMK2; @@ -31,11 +32,12 @@ import net.minecraftforge.common.util.ForgeDirection; @Optional.Interface(iface = "com.hbm.handler.CompatHandler.OCComponent", modid = "opencomputers"), @Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "opencomputers") }) -public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, ISidedInventory, IFluidReceiverMK2, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent, IRORValueProvider, IRORInteractive { +public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergyReceiverMK2, IEnergyConductorMK2, ISidedInventory, IFluidReceiverMK2, IHeatSource, ICrucibleAcceptor, SimpleComponent, OCComponent, IRORValueProvider, IRORInteractive { TileEntity tile; boolean inventory; boolean power; + boolean conductor; boolean fluid; boolean heat; public boolean moltenMetal; @@ -56,11 +58,15 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.inventory = true; return this; } - + public TileEntityProxyCombo power() { this.power = true; return this; } + public TileEntityProxyCombo conductor() { + this.conductor = true; + return this; + } public TileEntityProxyCombo moltenMetal() { this.moltenMetal = true; return this; @@ -141,13 +147,21 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy @Override public boolean canConnect(ForgeDirection dir) { - if(!power) - return false; - - if(getCoreObject() instanceof IEnergyReceiverMK2) { + if(power && getCoreObject() instanceof IEnergyReceiverMK2) { return ((IEnergyReceiverMK2)getCoreObject()).canConnect(dir); } + if(conductor && getCoreObject() instanceof IEnergyConductorMK2) { + return ((IEnergyConductorMK2)getCoreObject()).canConnect(dir); + } + + return true; + } + + @Override + public boolean allowDirectProvision() { + if(!power) return false; + if(getCoreObject() instanceof IEnergyReceiverMK2) return ((IEnergyReceiverMK2)getCoreObject()).allowDirectProvision(); return true; } @@ -402,6 +416,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy this.inventory = nbt.getBoolean("inv"); this.power = nbt.getBoolean("power"); + this.conductor = nbt.getBoolean("conductor"); this.fluid = nbt.getBoolean("fluid"); this.moltenMetal = nbt.getBoolean("metal"); this.heat = nbt.getBoolean("heat"); @@ -416,6 +431,7 @@ public class TileEntityProxyCombo extends TileEntityProxyBase implements IEnergy nbt.setBoolean("inv", inventory); nbt.setBoolean("power", power); + nbt.setBoolean("conductor", conductor); nbt.setBoolean("fluid", fluid); nbt.setBoolean("metal", moltenMetal); nbt.setBoolean("heat", heat); diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 8da9a1a55..a4cbb8014 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -81,6 +81,7 @@ public class TileMappings { put(TileEntityDecoPoleTop.class, "tileentity_poletop"); put(TileEntityDecoPoleSatelliteReceiver.class, "tileentity_satellitereceicer"); put(TileEntityMachineBattery.class, "tileentity_battery"); + put(TileEntityBatterySocket.class, "tileentity_battery_socket"); put(TileEntityCapacitor.class, "tileentity_capacitor"); put(TileEntityMachineWoodBurner.class, "tileentity_wood_burner"); put(TileEntityRedBarrel.class, "tileentity_barrel"); @@ -95,7 +96,6 @@ public class TileMappings { put(TileEntityCrashedBomb.class, "tileentity_crashed_balefire"); put(TileEntityConverterHeRf.class, "tileentity_converter_herf"); put(TileEntityConverterRfHe.class, "tileentity_converter_rfhe"); - put(TileEntityMachineSchrabidiumTransmutator.class, "tileentity_schrabidium_transmutator"); put(TileEntityMachineDiesel.class, "tileentity_diesel_generator"); put(TileEntityMachineShredder.class, "tileentity_machine_shredder"); put(TileEntityMachineTeleporter.class, "tileentity_teleblock"); @@ -154,7 +154,6 @@ public class TileMappings { put(TileEntityCoreInjector.class, "tileentity_v0_injector"); put(TileEntityCoreStabilizer.class, "tileentity_v0_stabilizer"); put(TileEntityCore.class, "tileentity_v0"); - put(TileEntityMachineAmgen.class, "tileentity_amgen"); put(TileEntityMachineHephaestus.class, "tileentity_hephaestus"); put(TileEntityGeysir.class, "tileentity_geysir"); put(TileEntityMachineMissileAssembly.class, "tileentity_missile_assembly"); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java index 5cde6c932..887b6643b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityCharger.java @@ -46,7 +46,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - charge += Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate()); + charge += Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate(stack)); } } } @@ -129,7 +129,7 @@ public class TileEntityCharger extends TileEntityLoadedBase implements IEnergyRe if(stack != null && stack.getItem() instanceof IBatteryItem) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - long toCharge = Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate()); + long toCharge = Math.min(battery.getMaxCharge(stack) - battery.getCharge(stack), battery.getChargeRate(null)); toCharge = Math.min(toCharge, Math.max(power / 5, 1)); battery.chargeBattery(stack, toCharge); power -= toCharge; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java index 18a936742..84f5e2253 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITER.java @@ -6,7 +6,6 @@ import java.util.List; import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionNT; import com.hbm.explosion.ExplosionNT.ExAttrib; -import com.hbm.handler.CompatHandler; import com.hbm.handler.threading.PacketThreading; import com.hbm.inventory.container.ContainerITER; import com.hbm.inventory.fluid.FluidType; @@ -33,15 +32,10 @@ import api.hbm.fluid.IFluidStandardTransceiver; import api.hbm.redstoneoverradio.IRORInteractive; import api.hbm.redstoneoverradio.IRORValueProvider; import api.hbm.tile.IInfoProviderEC; -import cpw.mods.fml.common.Optional; import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import io.netty.buffer.ByteBuf; -import li.cil.oc.api.machine.Arguments; -import li.cil.oc.api.machine.Callback; -import li.cil.oc.api.machine.Context; -import li.cil.oc.api.network.SimpleComponent; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; @@ -51,8 +45,8 @@ import net.minecraft.util.Vec3; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -@Optional.InterfaceList({@Optional.Interface(iface = "li.cil.oc.api.network.SimpleComponent", modid = "OpenComputers")}) -public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, SimpleComponent, CompatHandler.OCComponent, IFluidCopiable, IRORValueProvider, IRORInteractive { +@Deprecated +public class TileEntityITER extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiver, IGUIProvider, IInfoProviderEC, IFluidCopiable, IRORValueProvider, IRORInteractive { public long power; public static final long maxPower = 10000000; @@ -522,100 +516,6 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece data.setDouble("outputmb", output); } - - @Override - @Optional.Method(modid = "OpenComputers") - public String getComponentName() { - return "ntm_fusion"; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getEnergyInfo(Context context, Arguments args) { - return new Object[] {getPower(), getMaxPower()}; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] isActive(Context context, Arguments args) { - return new Object[] {isOn}; - } - - @Callback(direct = true, limit = 4) - @Optional.Method(modid = "OpenComputers") - public Object[] setActive(Context context, Arguments args) { - isOn = args.checkBoolean(0); - return new Object[] {}; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getFluid(Context context, Arguments args) { - return new Object[] { - tanks[0].getFill(), tanks[0].getMaxFill(), - tanks[1].getFill(), tanks[1].getMaxFill(), - plasma.getFill(), plasma.getMaxFill(), plasma.getTankType().getUnlocalizedName() - }; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getPlasmaTemp(Context context, Arguments args) { - return new Object[] {plasma.getTankType().temperature}; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getMaxTemp(Context context, Arguments args) { - if (slots[3] != null && (slots[3].getItem() instanceof ItemFusionShield)) - return new Object[] {((ItemFusionShield) slots[3].getItem()).maxTemp}; - return new Object[] {"N/A"}; - } - - @Callback(direct = true) - @Optional.Method(modid = "OpenComputers") - public Object[] getBlanketDamage(Context context, Arguments args) { - if (slots[3] != null && (slots[3].getItem() instanceof ItemFusionShield)) - return new Object[]{ItemFusionShield.getShieldDamage(slots[3]), ((ItemFusionShield)slots[3].getItem()).maxDamage}; - return new Object[] {"N/A", "N/A"}; - } - - @Override - @Optional.Method(modid = "OpenComputers") - public String[] methods() { - return new String[] { - "getEnergyInfo", - "isActive", - "setActive", - "getFluid", - "getPlasmaTemp", - "getMaxTemp", - "getBlanketDamage" - }; - } - - @Override - @Optional.Method(modid = "OpenComputers") - public Object[] invoke(String method, Context context, Arguments args) throws Exception { - switch (method) { - case ("getEnergyInfo"): - return getEnergyInfo(context, args); - case ("isActive"): - return isActive(context, args); - case ("setActive"): - return setActive(context, args); - case ("getFluid"): - return getFluid(context, args); - case ("getPlasmaTemp"): - return getPlasmaTemp(context, args); - case ("getMaxTemp"): - return getMaxTemp(context, args); - case ("getBlanketDamage"): - return getBlanketDamage(context, args); - } - throw new NoSuchMethodException(); - } - @Override public FluidTank getTankToPaste() { return null; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java b/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java index 901cc4195..9126601be 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityITERStruct.java @@ -1,17 +1,7 @@ package com.hbm.tileentity.machine; -import com.hbm.blocks.BlockDummyable; -import com.hbm.blocks.ModBlocks; -import com.hbm.blocks.machine.MachineITER; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.block.Block; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityITERStruct extends TileEntity { +@Deprecated +public class TileEntityITERStruct { public static final int[][][] layout = new int[][][] { @@ -122,66 +112,4 @@ public class TileEntityITERStruct extends TileEntity { new int[] {0,0,0,0,0,0,1,1,1,0,0,0,0,0,0} } }; - - int age; - - @Override - public void updateEntity() { - - if(worldObj.isRemote) - return; - - age++; - - if(age < 20) - return; - - age = 0; - - for(int y = 0; y < 5; y++) { - for(int x = 0; x < layout[0].length; x++) { - for(int z = 0; z < layout[0][0].length; z++) { - - int ly = y > 2 ? 4 - y : y; - - int width = 7; - - if(x == width && y == 0 && z == width) - continue; - - int b = layout[ly][x][z]; - Block block = worldObj.getBlock(xCoord + x - width, yCoord + y, zCoord + z - width); - int meta = worldObj.getBlockMetadata(xCoord + x - width, yCoord + y, zCoord + z - width); - - switch(b) { - case 1: if(block != ModBlocks.fusion_conductor || meta != 1) { return; } break; - case 2: if(block != ModBlocks.fusion_center) { return; } break; - case 3: if(block != ModBlocks.fusion_motor) { return; } break; - case 4: if(block != ModBlocks.reinforced_glass) { return; } break; - } - } - } - } - - for(int x = -2; x <= 2; x++) - for(int y = 1; y <= 3; y++) - for(int z = -2; z <= 2; z++) - worldObj.setBlockToAir(xCoord + x, yCoord + y, zCoord + z); - - BlockDummyable.safeRem = true; - worldObj.setBlock(xCoord, yCoord + 2, zCoord, ModBlocks.iter, 12, 3); - ((MachineITER)ModBlocks.iter).fillSpace(worldObj, xCoord, yCoord, zCoord, ForgeDirection.UNKNOWN, 0); - BlockDummyable.safeRem = false; - } - - @Override - public AxisAlignedBB getRenderBoundingBox() { - return TileEntity.INFINITE_EXTENT_AABB; - } - - @Override - @SideOnly(Side.CLIENT) - public double getMaxRenderDistanceSquared() { - return 65536.0D; - } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java deleted file mode 100644 index 7777ac492..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAmgen.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.blocks.ModBlocks; -import com.hbm.tileentity.TileEntityLoadedBase; -import com.hbm.util.CompatEnergyControl; - -import api.hbm.energymk2.IEnergyProviderMK2; -import api.hbm.tile.IInfoProviderEC; -import net.minecraft.block.Block; -import net.minecraft.init.Blocks; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityMachineAmgen extends TileEntityLoadedBase implements IEnergyProviderMK2, IInfoProviderEC { - - public long power; - public long maxPower = 500; - protected long output = 0; - - @Override - public void updateEntity() { - - if(!worldObj.isRemote) { - - this.output = 0; - - Block block = worldObj.getBlock(xCoord, yCoord, zCoord); - - if(block == ModBlocks.machine_geo) { - this.checkGeoInteraction(xCoord, yCoord + 1, zCoord); - this.checkGeoInteraction(xCoord, yCoord - 1, zCoord); - } - - this.power += this.output; - if(power > maxPower) - power = maxPower; - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.tryProvide(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - } - } - - private void checkGeoInteraction(int x, int y, int z) { - - Block b = worldObj.getBlock(x, y, z); - - if(b == ModBlocks.geysir_water) { - this.output += 75; - } else if(b == ModBlocks.geysir_chlorine) { - this.output += 100; - } else if(b == ModBlocks.geysir_vapor) { - this.output += 50; - } else if(b == ModBlocks.geysir_nether) { - this.output += 500; - } else if(b == Blocks.lava) { - this.output += 100; - - if(worldObj.rand.nextInt(6000) == 0) { - worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.obsidian); - } - } else if(b == Blocks.flowing_lava) { - this.output += 25; - - if(worldObj.rand.nextInt(3000) == 0) { - worldObj.setBlock(xCoord, yCoord - 1, zCoord, Blocks.cobblestone); - } - } - } - - @Override - public long getPower() { - return power; - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getMaxPower() { - return this.maxPower; - } - - @Override - public void provideExtraInfo(NBTTagCompound data) { - data.setBoolean(CompatEnergyControl.B_ACTIVE, this.output > 0); - data.setDouble(CompatEnergyControl.D_OUTPUT_HE, this.output); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAnnihilator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAnnihilator.java index dd6a92d1d..4fbcf5282 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAnnihilator.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAnnihilator.java @@ -2,6 +2,7 @@ package com.hbm.tileentity.machine; import java.math.BigInteger; +import com.hbm.interfaces.IControlReceiver; import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.container.ContainerMachineAnnihilator; import com.hbm.inventory.fluid.FluidType; @@ -30,7 +31,7 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineAnnihilator extends TileEntityMachineBase implements IFluidStandardReceiverMK2, IGUIProvider { +public class TileEntityMachineAnnihilator extends TileEntityMachineBase implements IFluidStandardReceiverMK2, IControlReceiver, IGUIProvider { public String pool = "Recycling"; public int timer; @@ -132,6 +133,8 @@ public class TileEntityMachineAnnihilator extends TileEntityMachineBase implemen if(pool != null) { this.monitorBigInt = pool.items.get(type); if(this.monitorBigInt == null) this.monitorBigInt = BigInteger.ZERO; + } else { + this.monitorBigInt = BigInteger.ZERO; } } @@ -214,6 +217,22 @@ public class TileEntityMachineAnnihilator extends TileEntityMachineBase implemen @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachineAnnihilator(player.inventory, this); } @Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachineAnnihilator(player.inventory, this); } + @Override + public boolean hasPermission(EntityPlayer player) { + return this.isUseableByPlayer(player); + } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("pool")) { + String pool = data.getString("pool"); + if(pool != null && !pool.isEmpty()) { + this.pool = pool; + this.markChanged(); + } + } + } + AxisAlignedBB bb = null; @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java index 3ae1e58a6..a650d536b 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineArcFurnaceLarge.java @@ -279,11 +279,13 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl if(slots[q] == null) continue; ArcFurnaceRecipe recipe = ArcFurnaceRecipes.getOutput(slots[q], this.liquidMode); if(recipe == null) continue; + int max = this.getMaxInputSize(); + int recipeMax = this.liquidMode ? max : slots[q].getMaxStackSize() / recipe.solidOutput.stackSize; + max = Math.min(max, recipeMax); // add to existing stacks for(int i /* ingredient */ = 5; i < 25; i++) { if(slots[i] == null) continue; - int max = this.getMaxInputSize(); if(!slots[q].isItemEqual(slots[i])) continue; int toMove = BobMathUtil.min(slots[i].getMaxStackSize() - slots[i].stackSize, slots[q].stackSize, max - slots[i].stackSize); if(toMove > 0) { @@ -297,7 +299,6 @@ public class TileEntityMachineArcFurnaceLarge extends TileEntityMachineBase impl // add to empty slot if(slots[q] != null) for(int i /* ingredient */ = 5; i < 25; i++) { if(slots[i] != null) continue; - int max = this.getMaxInputSize(); int toMove = Math.min(max, slots[q].stackSize); slots[i] = slots[q].copy(); slots[i].stackSize = toMove; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java deleted file mode 100644 index 206645805..000000000 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSchrabidiumTransmutator.java +++ /dev/null @@ -1,264 +0,0 @@ -package com.hbm.tileentity.machine; - -import com.hbm.config.VersatileConfig; -import com.hbm.inventory.OreDictManager; -import com.hbm.inventory.container.ContainerMachineSchrabidiumTransmutator; -import com.hbm.inventory.gui.GUIMachineSchrabidiumTransmutator; -import com.hbm.inventory.recipes.MachineRecipes; -import com.hbm.items.ModItems; -import com.hbm.lib.Library; -import com.hbm.main.MainRegistry; -import com.hbm.sound.AudioWrapper; -import com.hbm.tileentity.IGUIProvider; -import com.hbm.tileentity.TileEntityMachineBase; - -import api.hbm.energymk2.IBatteryItem; -import api.hbm.energymk2.IEnergyReceiverMK2; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import io.netty.buffer.ByteBuf; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public class TileEntityMachineSchrabidiumTransmutator extends TileEntityMachineBase implements IEnergyReceiverMK2, IGUIProvider { - - public long power = 0; - public int process = 0; - public static final long maxPower = 5000000; - public static final int processSpeed = 6000; - - private AudioWrapper audio; - - private static final int[] slots_io = new int[] { 0, 1, 2, 3 }; - - public TileEntityMachineSchrabidiumTransmutator() { - super(4); - } - - @Override - public String getName() { - return "container.machine_schrabidium_transmutator"; - } - - @Override - public boolean isItemValidForSlot(int i, ItemStack stack) { - switch (i) { - case 0: - if (MachineRecipes.mODE(stack, OreDictManager.U.ingot())) - return true; - break; - case 2: - if (stack.getItem() == ModItems.redcoil_capacitor || stack.getItem() == ModItems.euphemium_capacitor) - return true; - break; - case 3: - if (stack.getItem() instanceof IBatteryItem) - return true; - break; - } - return false; - } - - @Override - public void readFromNBT(NBTTagCompound nbt) { - super.readFromNBT(nbt); - - power = nbt.getLong("power"); - process = nbt.getInteger("process"); - } - - @Override - public void writeToNBT(NBTTagCompound nbt) { - super.writeToNBT(nbt); - nbt.setLong("power", power); - nbt.setInteger("process", process); - } - - @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) { - return slots_io; - } - - @Override - public boolean canExtractItem(int i, ItemStack stack, int j) { - - if(stack.getItem() == ModItems.euphemium_capacitor) return false; - - if(i == 2 && stack.getItem() != null && (stack.getItem() == ModItems.redcoil_capacitor && stack.getItemDamage() == stack.getMaxDamage())) { - return true; - } - - if(i == 1) { - return true; - } - - if(i == 3) { - if(stack.getItem() instanceof IBatteryItem && ((IBatteryItem) stack.getItem()).getCharge(stack) == 0) - return true; - } - - return false; - } - - public long getPowerScaled(long i) { - return (power * i) / maxPower; - } - - public int getProgressScaled(int i) { - return (process * i) / processSpeed; - } - - public boolean canProcess() { - if (power >= 4990000 && slots[0] != null && MachineRecipes.mODE(slots[0], OreDictManager.U.ingot()) && slots[2] != null - && (slots[2].getItem() == ModItems.redcoil_capacitor && slots[2].getItemDamage() < slots[2].getMaxDamage() || slots[2].getItem() == ModItems.euphemium_capacitor) - && (slots[1] == null || (slots[1] != null && slots[1].getItem() == VersatileConfig.getTransmutatorItem() - && slots[1].stackSize < slots[1].getMaxStackSize()))) { - return true; - } - return false; - } - - public boolean isProcessing() { - return process > 0; - } - - public void process() { - process++; - - if (process >= processSpeed) { - - power = 0; - process = 0; - - slots[0].stackSize--; - if (slots[0].stackSize <= 0) { - slots[0] = null; - } - - if (slots[1] == null) { - slots[1] = new ItemStack(VersatileConfig.getTransmutatorItem()); - } else { - slots[1].stackSize++; - } - if (slots[2] != null && slots[2].getItem() == ModItems.redcoil_capacitor) { - slots[2].setItemDamage(slots[2].getItemDamage() + 1); - } - - this.worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "ambient.weather.thunder", 10000.0F, - 0.8F + this.worldObj.rand.nextFloat() * 0.2F); - } - } - - @Override - public void updateEntity() { - - if (!worldObj.isRemote) { - - this.updateConnections(); - - power = Library.chargeTEFromItems(slots, 3, power, maxPower); - - if(canProcess()) { - process(); - } else { - process = 0; - } - - this.networkPackNT(50); - - } else { - - if(process > 0) { - - if(audio == null) { - audio = createAudioLoop(); - audio.startSound(); - } else if(!audio.isPlaying()) { - audio = rebootAudio(audio); - } - audio.updateVolume(getVolume(1F)); - } else { - - if(audio != null) { - audio.stopSound(); - audio = null; - } - } - } - } - - @Override - public void serialize(ByteBuf buf) { - super.serialize(buf); - buf.writeLong(this.power); - buf.writeInt(this.process); - } - - @Override - public void deserialize(ByteBuf buf) { - super.deserialize(buf); - this.power = buf.readLong(); - this.process = buf.readInt(); - } - - @Override - public AudioWrapper createAudioLoop() { - return MainRegistry.proxy.getLoopedSound("hbm:weapon.tauChargeLoop", xCoord, yCoord, zCoord, 1.0F, 10F, 1.0F); - } - - private void updateConnections() { - - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - this.trySubscribe(worldObj, xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ, dir); - } - - @Override - public void onChunkUnload() { - - if(audio != null) { - audio.stopSound(); - audio = null; - } - } - - @Override - public void invalidate() { - - super.invalidate(); - - if(audio != null) { - audio.stopSound(); - audio = null; - } - } - - @Override - public void setPower(long i) { - power = i; - } - - @Override - public long getPower() { - return power; - } - - @Override - public long getMaxPower() { - return maxPower; - } - - @Override - public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new ContainerMachineSchrabidiumTransmutator(player.inventory, this); - } - - @Override - @SideOnly(Side.CLIENT) - public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { - return new GUIMachineSchrabidiumTransmutator(player.inventory, this); - } -} diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index 69cfd4533..e29fa6012 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -40,7 +40,7 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public long power; public static final long maxPower = 100000; - public static final int usageBase = 500; + public static final int usageBase = 250; public int usage; public int progress; public static final int processTimeBase = 100; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index e7ce296c2..770183b46 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -20,13 +20,13 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineRefinery; import com.hbm.inventory.recipes.RefineryRecipes; +import com.hbm.inventory.recipes.RefineryRecipes.RefineryRecipe; import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.*; import com.hbm.util.ParticleUtil; -import com.hbm.util.Tuple.Quintet; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IEnergyReceiverMK2; @@ -266,13 +266,13 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements } private void refine() { - Quintet refinery = RefineryRecipes.getRefinery(tanks[0].getTankType()); + RefineryRecipe refinery = RefineryRecipes.getRefinery(tanks[0].getTankType()); if(refinery == null) { for(int i = 1; i < 5; i++) tanks[i].setTankType(Fluids.NONE); return; } - FluidStack[] stacks = new FluidStack[] {refinery.getV(), refinery.getW(), refinery.getX(), refinery.getY()}; + FluidStack[] stacks = refinery.outputs; for(int i = 0; i < stacks.length; i++) tanks[i + 1].setTankType(stacks[i].type); @@ -294,7 +294,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements if(this.sulfur >= maxSulfur) { this.sulfur -= maxSulfur; - ItemStack out = refinery.getZ(); + ItemStack out = refinery.solid; if(out != null) { diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index 5cf61f101..626be09c2 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -39,7 +39,7 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public long power; public static final long maxPower = 100000; - public static final int usageBase = 500; + public static final int usageBase = 250; public int usage; public int progress; public static final int processTimeBase = 100; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 3653b2138..97689217e 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -6,7 +6,8 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineVacuumDistill; -import com.hbm.inventory.recipes.RefineryRecipes; +import com.hbm.inventory.recipes.VacuumRefineryRecipes; +import com.hbm.inventory.recipes.VacuumRefineryRecipes.VacuumRefineryRecipe; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.sound.AudioWrapper; @@ -14,7 +15,6 @@ import com.hbm.tileentity.IFluidCopiable; import com.hbm.tileentity.IGUIProvider; import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; -import com.hbm.util.Tuple.Quartet; import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energymk2.IEnergyReceiverMK2; @@ -155,13 +155,13 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem } private void refine() { - Quartet refinery = RefineryRecipes.getVacuum(tanks[0].getTankType()); + VacuumRefineryRecipe refinery = VacuumRefineryRecipes.getVacuum(tanks[0].getTankType()); if(refinery == null) { for(int i = 1; i < 5; i++) tanks[i].setTankType(Fluids.NONE); return; } - FluidStack[] stacks = new FluidStack[] {refinery.getW(), refinery.getX(), refinery.getY(), refinery.getZ()}; + FluidStack[] stacks = refinery.outputs; for(int i = 0; i < stacks.length; i++) tanks[i + 1].setTankType(stacks[i].type); if(power < 10_000) return; diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java new file mode 100644 index 000000000..f354405f6 --- /dev/null +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBatterySocket.java @@ -0,0 +1,279 @@ +package com.hbm.tileentity.machine.storage; + +import com.hbm.interfaces.IControlReceiver; +import com.hbm.inventory.container.ContainerBatterySocket; +import com.hbm.inventory.gui.GUIBatterySocket; +import com.hbm.items.ModItems; +import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.uninos.UniNodespace; +import com.hbm.util.EnumUtil; +import com.hbm.util.fauxpointtwelve.BlockPos; +import com.hbm.util.fauxpointtwelve.DirPos; + +import api.hbm.energymk2.IBatteryItem; +import api.hbm.energymk2.IEnergyConductorMK2; +import api.hbm.energymk2.IEnergyProviderMK2; +import api.hbm.energymk2.IEnergyReceiverMK2; +import api.hbm.energymk2.Nodespace; +import api.hbm.energymk2.Nodespace.PowerNode; +import io.netty.buffer.ByteBuf; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.Container; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; + +public class TileEntityBatterySocket extends TileEntityMachineBase implements IEnergyConductorMK2, IEnergyProviderMK2, IEnergyReceiverMK2, IControlReceiver, IGUIProvider { + + public long[] log = new long[20]; + public long delta = 0; + public byte lastRedstone = 0; + public long prevPowerState = 0; + + public static final int mode_input = 0; + public static final int mode_buffer = 1; + public static final int mode_output = 2; + public static final int mode_none = 3; + public short redLow = 0; + public short redHigh = 2; + public ConnectionPriority priority = ConnectionPriority.LOW; + + public int renderPack = -1; + + protected PowerNode node; + + public TileEntityBatterySocket() { + super(1); + } + + @Override public String getName() { return "container.batterySocket"; } + + @Override + public void updateEntity() { + + if(!worldObj.isRemote) { + + if(priority == null || priority.ordinal() == 0 || priority.ordinal() == 4) { + priority = ConnectionPriority.LOW; + } + + long prevPower = this.getPower(); + + if(this.node == null || this.node.expired) { + + this.node = (PowerNode) UniNodespace.getNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER); + + if(this.node == null || this.node.expired) { + this.node = this.createNode(); + UniNodespace.createNode(worldObj, this.node); + } + } + + if(this.node != null && this.node.hasValidNet()) switch(this.getRelevantMode(false)) { + case mode_input: this.node.net.removeProvider(this); this.node.net.addReceiver(this); break; + case mode_output: this.node.net.addProvider(this); this.node.net.removeReceiver(this); break; + case mode_buffer: this.node.net.addProvider(this); this.node.net.addReceiver(this); break; + case mode_none: this.node.net.removeProvider(this); this.node.net.removeReceiver(this); break; + } + + byte comp = this.getComparatorPower(); + if(comp != this.lastRedstone) this.markDirty(); + this.lastRedstone = comp; + + long avg = (this.getPower() + prevPower) / 2; + this.delta = avg - this.log[0]; + + for(int i = 1; i < this.log.length; i++) { + this.log[i - 1] = this.log[i]; + } + + this.log[19] = avg; + + prevPowerState = this.getPower(); + + this.networkPackNT(100); + } + } + + @Override + public PowerNode createNode() { + return new PowerNode(this.getPortPos()).setConnections(this.getConPos()); + } + + public byte getComparatorPower() { + double frac = (double) this.getPower() / (double) this.getMaxPower() * 15D; + return (byte) (MathHelper.clamp_int((int) frac + 1, 0, 15)); //to combat eventual rounding errors with the FEnSU's stupid maxPower + } + + @Override + public void invalidate() { + super.invalidate(); + + if(!worldObj.isRemote) { + if(this.node != null) { + UniNodespace.destroyNode(worldObj, xCoord, yCoord, zCoord, Nodespace.THE_POWER_PROVIDER); + } + } + } + + @Override + public void serialize(ByteBuf buf) { + super.serialize(buf); + + int renderPack = -1; + if(slots[0] != null && slots[0].getItem() == ModItems.battery_pack) { + renderPack = slots[0].getItemDamage(); + } + + buf.writeInt(renderPack); + buf.writeLong(delta); + buf.writeShort(redLow); + buf.writeShort(redHigh); + buf.writeByte(priority.ordinal()); + } + + @Override + public void deserialize(ByteBuf buf) { + super.deserialize(buf); + + renderPack = buf.readInt(); + delta = buf.readLong(); + redLow = buf.readShort(); + redHigh = buf.readShort(); + priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, buf.readByte()); + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.redLow = nbt.getShort("redLow"); + this.redHigh = nbt.getShort("redHigh"); + this.lastRedstone = nbt.getByte("lastRedstone"); + this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, nbt.getByte("priority")); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setShort("redLow", redLow); + nbt.setShort("redHigh", redHigh); + nbt.setByte("lastRedstone", lastRedstone); + nbt.setByte("priority", (byte) this.priority.ordinal()); + } + + @Override + public boolean canExtractItem(int i, ItemStack stack, int j) { + if(stack.getItem() instanceof IBatteryItem) { + if(i == mode_input && ((IBatteryItem)stack.getItem()).getCharge(stack) == 0) return true; + if(i == mode_output && ((IBatteryItem)stack.getItem()).getCharge(stack) == ((IBatteryItem)stack.getItem()).getMaxCharge(stack)) return true; + } + return false; + } + + @Override + public boolean isItemValidForSlot(int i, ItemStack stack) { + return stack.getItem() instanceof IBatteryItem; + } + + @Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] {0}; } + + @Override + public long getPower() { + if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0; + return ((IBatteryItem) slots[0].getItem()).getCharge(slots[0]); + } + + @Override + public void setPower(long power) { + if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return; + ((IBatteryItem) slots[0].getItem()).setCharge(slots[0], power); + } + + @Override + public long getMaxPower() { + if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0; + return ((IBatteryItem) slots[0].getItem()).getMaxCharge(slots[0]); + } + + @Override public boolean allowDirectProvision() { return false; } + @Override public ConnectionPriority getPriority() { return this.priority; } + + @Override public long getProviderSpeed() { + if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0; + int mode = this.getRelevantMode(true); + return mode == mode_output || mode == mode_buffer ? ((IBatteryItem) slots[0].getItem()).getDischargeRate(slots[0]) : 0; + } + + @Override public long getReceiverSpeed() { + if(slots[0] == null || !(slots[0].getItem() instanceof IBatteryItem)) return 0; + int mode = this.getRelevantMode(true); + return mode == mode_input || mode == mode_buffer ? ((IBatteryItem) slots[0].getItem()).getChargeRate(slots[0]) : 0; + } + + public BlockPos[] getPortPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new BlockPos[] { + new BlockPos(xCoord, yCoord, zCoord), + new BlockPos(xCoord - dir.offsetX, yCoord, zCoord - dir.offsetZ), + new BlockPos(xCoord + rot.offsetX, yCoord, zCoord + rot.offsetZ), + new BlockPos(xCoord - dir.offsetX + rot.offsetX, yCoord, zCoord - dir.offsetZ + rot.offsetZ) + }; + } + + public DirPos[] getConPos() { + ForgeDirection dir = ForgeDirection.getOrientation(this.getBlockMetadata() - 10); + ForgeDirection rot = dir.getRotation(ForgeDirection.UP); + return new DirPos[] { + new DirPos(xCoord + dir.offsetX, yCoord, zCoord + dir.offsetZ, dir), + new DirPos(xCoord + dir.offsetX + rot.offsetX, yCoord, zCoord + dir.offsetZ + rot.offsetZ, dir), + + new DirPos(xCoord - dir.offsetX * 2, yCoord, zCoord - dir.offsetZ * 2, dir.getOpposite()), + new DirPos(xCoord - dir.offsetX * 2 + rot.offsetX, yCoord, zCoord - dir.offsetZ * 2 + rot.offsetZ, dir.getOpposite()), + + new DirPos(xCoord + rot.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2, rot), + new DirPos(xCoord + rot.offsetX * 2 - dir.offsetX, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ, rot), + + new DirPos(xCoord - rot.offsetX, yCoord, zCoord - rot.offsetZ, rot.getOpposite()), + new DirPos(xCoord - rot.offsetX - dir.offsetX, yCoord, zCoord - rot.offsetZ - dir.offsetZ, rot.getOpposite()) + }; + } + + private short modeCache = 0; + + public short getRelevantMode(boolean useCache) { + if(useCache) return this.modeCache; + boolean powered = false; + for(BlockPos pos : getPortPos()) if(worldObj.isBlockIndirectlyGettingPowered(pos.getX(), pos.getY(), pos.getZ())) { powered = true; break; } + this.modeCache = powered ? this.redHigh : this.redLow; + return this.modeCache; + } + + @Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerBatterySocket(player.inventory, this); } + @Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIBatterySocket(player.inventory, this); } + + @Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); } + + @Override + public void receiveControl(NBTTagCompound data) { + if(data.hasKey("low")) { + this.redLow++; + if(this.redLow > 3) this.redLow = 0; + } + if(data.hasKey("high")) { + this.redHigh++; + if(this.redHigh > 3) this.redHigh = 0; + } + if(data.hasKey("priority")) { + int ordinal = this.priority.ordinal(); + ordinal++; + if(ordinal > ConnectionPriority.HIGH.ordinal()) ordinal = ConnectionPriority.LOW.ordinal(); + this.priority = EnumUtil.grabEnumSafely(ConnectionPriority.class, ordinal); + } + } +} diff --git a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index a2984cb93..3c0a726bb 100644 --- a/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -245,10 +245,6 @@ public class TileEntityMachineBattery extends TileEntityMachineBase implements I } } - public void onNodeDestroyedCallback() { - this.node = null; - } - @Override public void invalidate() { super.invalidate(); diff --git a/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java b/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java index 03a3879b9..1123bac7a 100644 --- a/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java +++ b/src/main/java/com/hbm/tileentity/network/TileEntityPneumoTube.java @@ -47,6 +47,7 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP public byte sendOrder = 0; public byte receiveOrder = 0; public int soundDelay = 0; + public int sendCounter = 0; public FluidTank compair; @@ -113,7 +114,7 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP if(sendFrom instanceof IInventory) { PneumaticNetwork net = node.net; - if(net.send((IInventory) sendFrom, this, this.insertionDir.getOpposite(), sendOrder, receiveOrder, getRangeFromPressure(compair.getPressure()))) { + if(net.send((IInventory) sendFrom, this, this.insertionDir.getOpposite(), sendOrder, receiveOrder, getRangeFromPressure(compair.getPressure()), sendCounter)) { this.compair.setFill(this.compair.getFill() - 50); if(this.soundDelay <= 0 && !this.muffled) { @@ -121,6 +122,8 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP this.soundDelay = 20; } } + + this.sendCounter++; } } } @@ -229,6 +232,7 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP this.sendOrder = nbt.getByte("sendOrder"); this.receiveOrder = nbt.getByte("receiveOrder"); + this.sendCounter = nbt.getInteger("sendCounter"); this.whitelist = nbt.getBoolean("whitelist"); this.redstone = nbt.getBoolean("redstone"); @@ -244,6 +248,7 @@ public class TileEntityPneumoTube extends TileEntityMachineBase implements IGUIP nbt.setByte("sendOrder", sendOrder); nbt.setByte("receiveOrder", receiveOrder); + nbt.setInteger("sendCounter", sendCounter); nbt.setBoolean("whitelist", whitelist); nbt.setBoolean("redstone", redstone); diff --git a/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java b/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java index 336fbf86d..c07254103 100644 --- a/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java +++ b/src/main/java/com/hbm/uninos/networkproviders/PneumaticNetwork.java @@ -31,7 +31,6 @@ public class PneumaticNetwork extends NodeNet { public static final byte RECEIVE_RANDOM = 1; public Random rand = new Random(); - public int nextReceiver = 0; protected static final int timeout = 1_000; public static final int ITEMS_PER_TRANSFER = 64; @@ -53,7 +52,7 @@ public class PneumaticNetwork extends NodeNet { receivers.entrySet().removeIf(x -> { return (timestamp - x.getValue().getY() > timeout) || NodeNet.isBadLink(x.getKey()); }); } - public boolean send(IInventory source, TileEntityPneumoTube tube, ForgeDirection accessDir, int sendOrder, int receiveOrder, int maxRange) { + public boolean send(IInventory source, TileEntityPneumoTube tube, ForgeDirection accessDir, int sendOrder, int receiveOrder, int maxRange, int nextReceiver) { // turns out there may be a short time window where the cleanup hasn't happened yet, but chunkloading has already caused tiles to go invalid // so we just run it again here, just to be sure. @@ -76,7 +75,6 @@ public class PneumaticNetwork extends NodeNet { int index = nextReceiver % receivers.size(); Entry> chosenReceiverEntry = null; - nextReceiver++; if(receiveOrder == RECEIVE_ROBIN) chosenReceiverEntry = receiverList.get(index); if(receiveOrder == RECEIVE_RANDOM) chosenReceiverEntry = receiverList.get(rand.nextInt(receiverList.size())); diff --git a/src/main/java/com/hbm/util/CompatEnergyControl.java b/src/main/java/com/hbm/util/CompatEnergyControl.java index 353557637..b74fd9a32 100644 --- a/src/main/java/com/hbm/util/CompatEnergyControl.java +++ b/src/main/java/com/hbm/util/CompatEnergyControl.java @@ -36,7 +36,7 @@ public class CompatEnergyControl { /** Standardized discharge for IBatteryItem, returns the amount that was removed */ public static double dischargeItem(ItemStack stack, double needed) { IBatteryItem battery = (IBatteryItem) stack.getItem(); - long toDischarge = Math.min(battery.getDischargeRate(), Math.min(battery.getCharge(stack), (long) needed)); + long toDischarge = Math.min(battery.getDischargeRate(stack), Math.min(battery.getCharge(stack), (long) needed)); battery.dischargeBattery(stack, toDischarge); return toDischarge; } diff --git a/src/main/java/com/hbm/util/DamageResistanceHandler.java b/src/main/java/com/hbm/util/DamageResistanceHandler.java index 2c059c5b0..adb9973d2 100644 --- a/src/main/java/com/hbm/util/DamageResistanceHandler.java +++ b/src/main/java/com/hbm/util/DamageResistanceHandler.java @@ -122,9 +122,9 @@ public class DamageResistanceHandler { entityStats.put(EntityCreeper.class, new ResistanceStats().addCategory(CATEGORY_EXPLOSION, 2F, 0.25F)); itemStats.put(ModItems.jackt, new ResistanceStats() - .addCategory(CATEGORY_PHYSICAL, 5F, 0.5F)); + .addCategory(CATEGORY_PHYSICAL, 1F, 0.25F)); itemStats.put(ModItems.jackt2, new ResistanceStats() - .addCategory(CATEGORY_PHYSICAL, 5F, 0.5F)); + .addCategory(CATEGORY_PHYSICAL, 3F, 0.35F)); registerSet(ModItems.steel_helmet, ModItems.steel_plate, ModItems.steel_legs, ModItems.steel_boots, new ResistanceStats()); registerSet(ModItems.titanium_helmet, ModItems.titanium_plate, ModItems.titanium_legs, ModItems.titanium_boots, new ResistanceStats()); diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship.java b/src/main/java/com/hbm/world/dungeon/Spaceship.java index 4ab3bba36..c07dbc600 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship.java @@ -496,10 +496,10 @@ public class Spaceship extends WorldGenerator world.setBlock(x + 2, y + -2, z + 27, Blocks.air, 0, 3); world.setBlock(x + 3, y + -2, z + 27, Block3, 0, 3); world.setBlock(x + 4, y + -2, z + 27, Block3, 0, 3); - world.setBlock(x + 5, y + -2, z + 27, ModBlocks.fusion_conductor); + world.setBlock(x + 5, y + -2, z + 27, ModBlocks.hadron_coil_alloy); world.setBlock(x + 6, y + -2, z + 27, Blocks.air, 0, 3); world.setBlock(x + 7, y + -2, z + 27, Blocks.air, 0, 3); - world.setBlock(x + 8, y + -2, z + 27, ModBlocks.fusion_conductor); + world.setBlock(x + 8, y + -2, z + 27, ModBlocks.hadron_coil_alloy); world.setBlock(x + 9, y + -2, z + 27, Block3, 0, 3); world.setBlock(x + 10, y + -2, z + 27, Block3, 0, 3); world.setBlock(x + 11, y + -2, z + 27, Blocks.air, 0, 3); diff --git a/src/main/java/com/hbm/world/dungeon/Spaceship2.java b/src/main/java/com/hbm/world/dungeon/Spaceship2.java index d94cb01ae..9ca224e60 100644 --- a/src/main/java/com/hbm/world/dungeon/Spaceship2.java +++ b/src/main/java/com/hbm/world/dungeon/Spaceship2.java @@ -14,7 +14,7 @@ import net.minecraft.world.World; public class Spaceship2 { Block Block1 = ModBlocks.deco_tungsten; - Block Block2 = ModBlocks.fusion_conductor; + Block Block2 = ModBlocks.hadron_coil_alloy; Block Block3 = ModBlocks.deco_steel; Block Block4 = ModBlocks.fusion_heater; Block Block5 = ModBlocks.block_meteor; diff --git a/src/main/java/com/hbm/world/gen/component/SiloComponent.java b/src/main/java/com/hbm/world/gen/component/SiloComponent.java index bfee7327c..b7787dc48 100644 --- a/src/main/java/com/hbm/world/gen/component/SiloComponent.java +++ b/src/main/java/com/hbm/world/gen/component/SiloComponent.java @@ -412,7 +412,7 @@ public class SiloComponent extends Component { placeBlockAtCurrentPosition(world, Blocks.heavy_weighted_pressure_plate, 0, 34, 22, 18, box); placeBlockAtCurrentPosition(world, ModBlocks.capacitor_copper, decoE, 36, 21, 16, box); placeBlockAtCurrentPosition(world, ModBlocks.deco_steel, 0, 36, 21, 17, box); - placeBlockAtCurrentPosition(world, ModBlocks.fusion_conductor, 0, 36, 21, 19, box); + placeBlockAtCurrentPosition(world, ModBlocks.hadron_coil_alloy, 0, 36, 21, 19, box); fillWithMetadataBlocks(world, box, 36, 22, 16, 36, 23, 16, ModBlocks.tape_recorder, decoE); placeBlockAtCurrentPosition(world, ModBlocks.deco_computer, decoModelW, 36, 22, 17, box); fillWithMetadataBlocks(world, box, 36, 21, 18, 36, 23, 18, ModBlocks.tape_recorder, decoE); diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 71a3e764e..e0441e724 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -615,7 +615,7 @@ chem.CIRCUIT_5=High Performance Circuit Production chem.CO2=Carbon Dioxide Production chem.COALGAS_LEADED=Leaded Coal Gasoline Mixing chem.COLTAN_CLEANING=Coltan Purifying -chem.COLTAN_CRYSTAL=Tantalium Crystallizing +chem.COLTAN_CRYSTAL=Tantalum Crystallizing chem.COLTAN_PAIN=Pandemonium(III)tantalite Production chem.CONCRETE=Concrete Production chem.CONCRETE_ASBESTOS=Asbestos Concrete Production @@ -2474,7 +2474,7 @@ item.circuit.basic.name=Integrated Circuit Board item.circuit.bismoid.name=Versatile Circuit Board item.circuit.capacitor.name=Capacitor item.circuit.capacitor_board.name=Capacitor Board -item.circuit.capacitor_tantalium.name=Tantalium Capacitor +item.circuit.capacitor_tantalium.name=Tantalum Capacitor item.circuit.chip.name=Microchip item.circuit.chip_bismoid.name=Versatile Integrated Circuit item.circuit.chip_quantum.name=Solid State Quantum Processor @@ -2916,7 +2916,7 @@ item.geiger_counter.name=Handheld Geiger Counter item.gem_alexandrite.name=Alexandrite item.gem_rad.name=Radioactive Gem item.gem_sodalite.name=Sodalite -item.gem_tantalium.name=Tantalium Polycrystal +item.gem_tantalium.name=Tantalum Polycrystal item.gem_tantalium.desc='Tantalum' item.gem_tantalium.desc.P11=AKA Tantalum. item.gem_volcanic.name=Volcanic Gem @@ -3216,7 +3216,7 @@ item.ingot_sr90.name=Strontium-90 Ingot item.ingot_starmetal.name=§9Starmetal Ingot§r item.ingot_steel.name=Steel Ingot item.ingot_steel_dusted.name=Dusted Steel Ingot -item.ingot_tantalium.name=Tantalium Ingot +item.ingot_tantalium.name=Tantalum Ingot item.ingot_tantalium.desc='Tantalum' item.ingot_tantalium.desc.P11=AKA Tantalum. item.ingot_tcalloy.name=Technetium Steel Ingot @@ -3688,9 +3688,7 @@ item.nugget_schrabidium_fuel.name=Nugget of Schrabidium Fuel item.nugget_silicon.name=Silicon Nugget item.nugget_solinium.name=Solinium Nugget item.nugget_sr90.name=Strontium-90 Nugget -item.nugget_tantalium.name=Tantalium Nugget -item.nugget_tantalium.desc='Tantalum' -item.nugget_tantalium.desc.P11=AKA Tantalum. +item.nugget_tantalium.name=Tantalum Nugget item.nugget_technetium.name=Technetium-99 Nugget item.nugget_th232.name=Thorium-232 Nugget item.nugget_thorium_fuel.name=Nugget of Thorium Fuel @@ -4067,7 +4065,7 @@ item.powder_sr90_tiny.name=Tiny Pile of Strontium-90 Powder item.powder_steel.name=Steel Powder item.powder_steel_tiny.name=Tiny Pile of Steel Powder item.powder_strontium.name=Strontium Powder -item.powder_tantalium.name=Tantalium Powder +item.powder_tantalium.name=Tantalum Powder item.powder_tantalium.desc='Tantalum' item.powder_tantalium.desc.P11=AKA Tantalum. item.powder_tcalloy.name=Technetium Steel Powder @@ -5190,7 +5188,7 @@ tile.block_solinium.name=Block of Solinium tile.block_starmetal.name=§9Block of Starmetal§r tile.block_steel.name=Block of Steel tile.block_sulfur.name=Block of Sulfur -tile.block_tantalium.name=Block of Tantalium +tile.block_tantalium.name=Block of Tantalum tile.block_tcalloy.name=Block of Technetium Steel tile.block_thorium.name=Block of Thorium-232 tile.block_thorium_fuel.name=Block of Thorium Fuel @@ -5272,7 +5270,7 @@ tile.capacitor_copper.name=Copper Capacitor tile.capacitor_gold.name=Golden Capacitor tile.capacitor_niobium.name=Niobium Capacitor tile.capacitor_schrabidate.name=Schrabidate Capacitor -tile.capacitor_tantalium.name=Tantalium Capacitor +tile.capacitor_tantalium.name=Tantalum Capacitor tile.capacitor.desc=Input: Top$Output: Bottom, via Capacitor Bus tile.charge_c4.name=Demolition Charge tile.charge_dynamite.name=Time Bomb diff --git a/src/main/resources/assets/hbm/lang/ru_RU.lang b/src/main/resources/assets/hbm/lang/ru_RU.lang index 959e9b80d..972dc397d 100644 --- a/src/main/resources/assets/hbm/lang/ru_RU.lang +++ b/src/main/resources/assets/hbm/lang/ru_RU.lang @@ -142,7 +142,7 @@ analyze.noInfo=Нет информации. armor.blastProtection=Модификатор урона %s от взрывов armor.cap=Максимальное значение урона %s armor.damageModifier=Модификатор урона %s против %s -armor.dash=Даёт %s рывков +armor.dash=Дополнительных рывков: %s armor.electricJetpack=Ионный реактивный ранец armor.explosionImmune=Не может получить никакого урона, кроме как от взрывов armor.fasterReload=Быстрая перезарядка @@ -714,10 +714,8 @@ commands.satellite.should_be_run_as_player=Команда должна быть container.ammoBag=Сумка для боеприпасов -container.amsBase=Основание АМС [Декор] -container.amsEmitter=Излучатель АМС [Декор] -container.amsLimiter=Стабилизатор АМС [Декор] container.anvil=Наковальня %s уровня +container.annihilator=Переработчик container.arcFurnace=Дуговая печь container.armorTable=Стол модификации брони container.ashpit=Зольник @@ -814,7 +812,7 @@ container.machineLiquefactor=Разжижитель container.machineMixer=Промышленный смеситель container.machinePUREX=Пьюрекс container.machineOreSlopper=П.Б.Р. -container.machinePrecAss=Прецизионная сборочная машина +container.machinePrecAss=Прецизионная машина container.machinePyroOven=Пиролизная печь container.machineRefinery=Нефтеперерабатывающий завод container.machineRotaryFurnace=Роторная печь @@ -1262,6 +1260,17 @@ foundry.inverted=Инвертирован редстоуном foundry.invertFilter=Инвертированный фильтр foundry.noCast=Литейная форма не установлена! +fus.bf=Плазма (жар-пламя) +fus.cl=Плазма (хлор) +fus.dd=Плазма (дейтерий) +fus.dhc=Плазма (дейтерированный углеводород) +fus.do=Плазма (дейтерий + кислород) +fus.dt=Плазма (дейтерий + тритий) +fus.h3=Плазма (гелий-3) +fus.stellar=Плазма (звёздная) +fus.tcl=Плазма (хлор + тритий) +fus.th4=Плазма (гелий-4 + тритий) + geiger.chunkRad=Текущий уровень радиации в чанке: geiger.envRad=Общее радиационное заражение среды: geiger.playerRad=Уровень радиоактивного заражения игрока: @@ -1511,7 +1520,7 @@ hbmfluid.coalgas=Угольный газ hbmfluid.coalgas_leaded=Этилированный угольный газ hbmfluid.coaloil=Фотоген hbmfluid.colloid=Коллоидный раствор -hbmfluid.concrete=Жидкий бетон +hbmfluid.concrete=Цементный раствор hbmfluid.coolant=Хладагент hbmfluid.coolant_hot=Горячий хладагент hbmfluid.crackoil=Крекированная нефть @@ -1619,7 +1628,7 @@ hbmfluid.solvent=Растворитель hbmfluid.sourgas=Кислый газ hbmfluid.spentsteam=Пар низкого давления hbmfluid.steam=Пар -hbmfluid.stellar_flux=Звёздный поток +hbmfluid.stellar_flux=Звёздная материя hbmfluid.sulfuric_acid=Серная кислота hbmfluid.sunfloweroil=Подсолнечное масло hbmfluid.superhotsteam=Перегретый пар @@ -2290,7 +2299,7 @@ item.bedrock_ore.type.light.name=Лёгкая металлическая item.bedrock_ore.type.nonmetal.name=Неметаллическая item.bedrock_ore.type.rare.name=Редкоземельная item.bedrock_ore_base.name=Необработанная бедроковая руда -item.bedrock_ore_fragment.name=Фрагмент от %s руда +item.bedrock_ore_fragment.name=Фрагмент (%s) item.beta.name=БЕТА-ФУНКЦИИ item.big_sword.name=Большой меч item.billet_actinium.name=Заготовка актиния-227 @@ -2471,7 +2480,7 @@ item.canned_bark.desc=Очень хрустящие! item.canned_beef.name=Консервированная говядина item.canned_beef.desc=Несколько веков назад для этого умерла корова. item.canned_bhole.name=Консервированная чёрная дыра -item.canned_bhole.desc=Сингулярность это ням ням в моём там там +item.canned_bhole.desc=Сделано из настоящих сингулярностей. Нет, правда. item.canned_cheese.name=Консервированный плавленый сыр item.canned_cheese.desc=Это сыр? Это резиновый цемент? Кто знает. Кого волнует. item.canned_chinese.name=Консервированная китайская еда @@ -2479,7 +2488,7 @@ item.canned_chinese.desc=В Китае китайскую еду называю item.canned_diesel.name=Консервированное дизельное топливо item.canned_diesel.desc=У меня постепенно заканчиваются шутки для этого. item.canned_fist.name=Консервированный кулак -item.canned_fist.desc=Yowser! +item.canned_fist.desc=ow item.canned_fried.name=Консервированная жареная курица item.canned_fried.desc=Даже банка глубокой прожарки! item.canned_hotdogs.name=Консервированные хот-доги @@ -3504,6 +3513,7 @@ item.item_expensive.computer.name=Мейнфрейм item.item_expensive.ferro_plating.name=Армированные ферроурановые панели item.item_expensive.heavy_frame.name=Тяжёлый каркас item.item_expensive.lead_plating.name=Радиационно-стойкое покрытие +item.item_expensive.plastic.name=Пластиковые панели item.item_expensive.steel_plating.name=Стальная обшивка с болтовым соединением item.item_secret.aberrator.name=Часть Аберратора item.item_secret.canister.name=Композит SB-26 @@ -4147,7 +4157,7 @@ item.pile_rod_source.name=Радий-226-Бериллевый источник item.pile_rod_source.desc=§d[Источник нейтронов] item.pile_rod_uranium.name=Урановый стержень "Чикагской поленницы" item.pile_rod_uranium.desc=§a[Активное топливо]$§eПКМ ручной дрелью, чтобы взять образец ядра стержня -item.pill_iodine.name=Таблетка иода +item.pill_iodine.name=Таблетка йода item.pill_iodine.desc=Убирает негативные эффекты item.pill_herbal.name=Травяная паста item.pill_herbal.desc=Эффективное средство против болезни лёгких $и небольшого радиационного отравления.$Имеет побочные эффекты. @@ -4268,11 +4278,11 @@ item.powder_fire.name=Красный фосфор item.powder_fire.desc=Используется в многоцелевых бомбах:$Зажигательные бомбы - это весело! item.powder_flux.name=Флюс item.powder_gold.name=Золотой порошок -item.powder_i131.name=Порошок иода-131 -item.powder_i131_tiny.name=Кучка порошка иода-131 +item.powder_i131.name=Порошок йода-131 +item.powder_i131_tiny.name=Кучка порошка йода-131 item.powder_ice.name=Крио-порошок item.powder_impure_osmiridium.name=Порошок загрязнённого осмиридия -item.powder_iodine.name=Порошок иода +item.powder_iodine.name=Порошок йода item.powder_iron.name=Железный порошок item.powder_lanthanium.name=Лантановый порошок item.powder_lanthanium_tiny.name=Кучка лантанового порошка @@ -5964,6 +5974,7 @@ tile.lightstone_bricks_stairs.name=Ступеньки из светлокаме tile.lox_barrel.name=Бочка с жидким кислородом tile.machine_amgen.name=Генератор на фоновой радиации tile.machine_ammo_press.name=Пресс для патронов +tile.machine_annihilator.name=Переработчик tile.machine_arc_furnace.name=Электрическая дуговая печь tile.machine_arc_furnace_off.name=Дуговая печь tile.machine_arc_furnace_on.name=Дуговая печь @@ -6497,8 +6508,8 @@ tile.sat_radar.name=Спутник с радиолокационным зонд tile.sat_resonator.name=Спутник с Зен-Резонатором (Декор) tile.sat_scanner.name=Спутник с модулем глубинно-ресурсного сканирования (Декор) tile.schrabidic_block.name=Шрабидиевая кислота -tile.seal_controller.name=Открыватель люка пусковой щахты -tile.seal_frame.name=Рама люка пусковой щахты +tile.seal_controller.name=Открыватель люка пусковой шахты +tile.seal_frame.name=Рама люка пусковой шахты tile.seal_hatch.name=Люк пусковой шахты tile.sellafield.0.name=Селлафит tile.sellafield.1.name=Горячий селлафит @@ -6786,3 +6797,11 @@ desc.gui.upgrade.speed= * §4Скорость§r: Стакается до 3-х + + + + + + + + diff --git a/src/main/resources/assets/hbm/lang/zh_CN.lang b/src/main/resources/assets/hbm/lang/zh_CN.lang index a665c7e0e..4360f4d66 100644 --- a/src/main/resources/assets/hbm/lang/zh_CN.lang +++ b/src/main/resources/assets/hbm/lang/zh_CN.lang @@ -606,9 +606,6 @@ commands.satellite.not_a_satellite=持有的物品不是卫星! commands.satellite.satellite_descended=卫星成功降落。 commands.satellite.satellite_orbited=卫星发射。 commands.satellite.should_be_run_as_player=此命令应该由玩家运行! -container.amsBase=AMS基座(装饰) -container.amsEmitter=AMS发射极(装饰) -container.amsLimiter=AMS稳能器(装饰) container.anvil=%s级砧 container.arcFurnace=电弧炉 container.armorTable=装甲改装台 @@ -2063,7 +2060,7 @@ item.canned_bark.desc=更加的“松”脆! item.canned_beef.name=牛肉罐头 item.canned_beef.desc=几个世纪前,一头牛为此而死。 item.canned_bhole.name=黑洞罐头 -item.canned_bhole.desc=奇点是我肚肚里的美味! +item.canned_bhole.desc=“甄选自100%天然奇点” item.canned_cheese.name=融化奶酪罐头 item.canned_cheese.desc=是奶酪吗?是橡胶水泥吗?谁知道,谁在乎。 item.canned_chinese.name=中餐罐头 @@ -6348,7 +6345,7 @@ item.broken_item.prefix=破损 %s item.circuit.numitron.name=七段式白炽灯显示器 tile.red_cable_box.name=紫铜盒式电缆 container.fusionBreeder=聚变反应堆增殖舱 -container.fusionKlystron=调速管 +container.fusionKlystron=速调管 container.fusionTorus=聚变反应堆容器 fus.bf=野火等离子体 fus.cl=氯等离子体 @@ -6361,9 +6358,10 @@ fus.stellar=星流浆等离子体 fus.tcl=氚-氯等离子体 fus.th4=氚-氦4等离子体 gui.recipe.fusionFlux=中子通量输出 -gui.recipe.fusionIn=调速管能量输出 +gui.recipe.fusionIn=速调管能量输入 gui.recipe.fusionOut=等离子体能量输出 hbmfluid.dhc=氘代烃 +precass.recycle=回收率 %s tile.fusion_boiler.name=聚变反应堆锅炉 tile.fusion_boiler.desc=使用来自聚变反应堆的等离子体能量$将水加热成密度极高的蒸汽。 tile.fusion_breeder.name=聚变反应堆增殖舱 @@ -6372,11 +6370,11 @@ tile.fusion_collector.name=聚变反应堆收集室 tile.fusion_collector.desc=可通过与主机连接提升副产物产量 tile.fusion_component.name=BSCCO超导线圈 tile.fusion_component.blanket.name=聚变反应堆内部覆层 -tile.fusion_component.bscco_welded.name=BSCCO超导线圈(焊接) +tile.fusion_component.bscco_welded.name=BSCCO超导线圈 (焊接) tile.fusion_component.motor.name=聚变反应堆线路管道 tile.fusion_coupler.name=聚变反应堆等离子体耦合器 tile.fusion_coupler.desc=将等离子体输出的能量转化为调速管能量。$可以用于点燃第二个等离子体容器中的等离子体。 -tile.fusion_klystron.name=调速管 +tile.fusion_klystron.name=速调管 tile.fusion_klystron.desc=聚变反应堆的动力源。$使用压缩空气进行冷却。 tile.fusion_mhdt.name=磁流体涡轮发电机 tile.fusion_mhdt.desc=直接将等离子体能量转化成电力。$效率要比传统锅炉高。$需要冷却! @@ -6385,3 +6383,10 @@ tile.fusion_torus.desc=聚变反应堆主要部件。$需要调速管输入能 tile.struct_torus_core.name=聚变反应堆容器核心组件 turret.arty.artillery_rocket=§e火炮模式$最低射程: 250m$最大射程: 5,000m turret.arty.manual_rocket=§e手动模式$射程: 5,000m +container.annihilator=歼灭者 +container.machinePrecAss=精密装配机 +item.item_expensive.plastic.name=塑料板 +tile.machine_annihilator.name=歼灭者 +tile.machine_precass.name=精密装配机 +tile.wand_structure.load.name=结构加载方块 +tile.wand_structure.save.name=结构保存方块 diff --git a/src/main/resources/assets/hbm/models/machines/battery.obj b/src/main/resources/assets/hbm/models/machines/battery.obj new file mode 100644 index 000000000..c37a7ffbc --- /dev/null +++ b/src/main/resources/assets/hbm/models/machines/battery.obj @@ -0,0 +1,1020 @@ +# Blender v2.79 (sub 0) OBJ File: 'battery.blend' +# www.blender.org +o Battery +v 0.687500 1.875000 -0.875000 +v 0.875000 1.875000 -0.687500 +v 0.000000 1.875000 -0.187500 +v -0.875000 1.875000 -0.187500 +v 0.875000 0.125000 -0.187500 +v 0.875000 1.875000 -0.187500 +v 0.687500 1.875000 0.875000 +v 0.875000 1.875000 0.687500 +v 0.875000 0.125000 0.687500 +v 0.687500 0.125000 0.875000 +v 0.000000 1.875000 0.687500 +v 0.187500 1.875000 0.875000 +v 0.875000 1.875000 0.187500 +v 0.687500 1.875000 0.000000 +v 0.687500 0.125000 0.000000 +v 0.875000 0.125000 0.187500 +v 0.187500 0.125000 0.875000 +v 0.000000 0.125000 0.687500 +v 0.000000 0.125000 0.187500 +v 0.187500 0.125000 0.000000 +v 0.187500 1.875000 0.000000 +v 0.000000 1.875000 0.187500 +v 0.687500 0.125000 -0.875000 +v 0.875000 0.125000 -0.687500 +v -0.187500 1.875000 -0.875000 +v 0.000000 0.125000 -0.187500 +v 0.000000 0.125000 -0.687500 +v 0.187500 0.125000 -0.875000 +v 0.187500 1.875000 -0.875000 +v 0.000000 1.875000 -0.687500 +v -0.187500 1.875000 0.875000 +v -0.187500 0.125000 0.875000 +v -0.875000 1.875000 0.687500 +v -0.687500 1.875000 0.875000 +v -0.187500 1.875000 0.000000 +v -0.187500 0.125000 0.000000 +v -0.687500 0.125000 0.875000 +v -0.875000 0.125000 0.687500 +v -0.875000 0.125000 0.187500 +v -0.687500 0.125000 0.000000 +v -0.687500 1.875000 0.000000 +v -0.875000 1.875000 0.187500 +v -0.187500 0.125000 -0.875000 +v -0.875000 0.125000 -0.187500 +v -0.875000 0.125000 -0.687500 +v -0.687500 0.125000 -0.875000 +v -0.687500 1.875000 -0.875000 +v -0.875000 1.875000 -0.687500 +v -0.937500 1.625000 0.687500 +v -0.687500 1.625000 0.937500 +v 0.687500 1.625000 0.937500 +v 0.937500 1.625000 0.687500 +v -0.687500 1.625000 -0.937500 +v -0.937500 1.625000 -0.687500 +v 0.937500 1.625000 -0.687500 +v 0.687500 1.625000 -0.937500 +v 0.687500 1.375000 -0.937500 +v 0.937500 1.375000 -0.687500 +v -0.937500 1.375000 -0.687500 +v -0.687500 1.375000 -0.937500 +v 0.937500 1.375000 0.687500 +v 0.687500 1.375000 0.937500 +v -0.687500 1.375000 0.937500 +v -0.937500 1.375000 0.687500 +v -0.937500 0.625000 0.687500 +v -0.687500 0.625000 0.937500 +v 0.687500 0.625000 0.937500 +v 0.937500 0.625000 0.687500 +v -0.687500 0.625000 -0.937500 +v -0.937500 0.625000 -0.687500 +v 0.937500 0.625000 -0.687500 +v 0.687500 0.625000 -0.937500 +v 0.687500 0.375000 -0.937500 +v 0.937500 0.375000 -0.687500 +v -0.937500 0.375000 -0.687500 +v -0.687500 0.375000 -0.937500 +v 0.937500 0.375000 0.687500 +v 0.687500 0.375000 0.937500 +v -0.687500 0.375000 0.937500 +v -0.937500 0.375000 0.687500 +vt 0.597561 0.617647 +vt 0.731707 0.661765 +vt 0.695122 0.823529 +vt 0.560976 0.617647 +vt 0.597561 0.205882 +vt 0.597561 0.617647 +vt 1.000000 0.205882 +vt 0.963415 0.617647 +vt 0.963415 0.205882 +vt 0.731707 0.044118 +vt 0.695122 0.205882 +vt 0.560976 0.161765 +vt 0.695122 0.205882 +vt 0.560976 0.161765 +vt 0.597561 -0.000000 +vt 0.560976 0.205882 +vt 0.463415 0.617647 +vt 0.463415 0.205882 +vt 0.560976 0.617647 +vt 1.000000 0.617647 +vt 0.963415 0.205882 +vt 1.000000 0.205882 +vt 0.865854 0.617647 +vt 0.829268 0.205882 +vt 0.865854 0.205882 +vt 0.731707 0.617647 +vt 0.731707 0.205882 +vt 0.597561 0.205882 +vt 0.695122 0.205882 +vt 0.731707 0.617647 +vt 0.695122 0.617647 +vt 0.829268 0.617647 +vt 0.731707 0.205882 +vt 0.829268 0.205882 +vt 0.560976 0.205882 +vt 0.597561 0.617647 +vt 0.560976 0.617647 +vt 0.560976 0.161765 +vt 0.597561 0.000000 +vt 0.560976 0.661765 +vt 0.695122 0.617647 +vt 0.731707 0.779412 +vt 0.865854 0.617647 +vt 0.963415 0.205882 +vt 0.963415 0.617647 +vt 0.865854 0.617647 +vt 0.865854 0.205882 +vt 0.731707 0.617647 +vt 0.597561 0.205882 +vt 1.000000 0.205882 +vt 0.963415 0.617647 +vt 0.963415 0.205882 +vt 0.597561 0.617647 +vt 0.560976 0.205882 +vt 0.597561 0.205882 +vt 0.463415 0.617647 +vt 0.463415 0.205882 +vt 0.560976 0.661765 +vt 0.731707 0.779412 +vt 1.000000 0.617647 +vt 1.000000 0.205882 +vt 0.829268 0.205882 +vt 0.865854 0.205882 +vt 0.695122 0.205882 +vt 0.731707 0.617647 +vt 0.695122 0.617647 +vt 0.560976 0.044118 +vt 0.695122 -0.000000 +vt 0.731707 0.161765 +vt 0.865854 0.617647 +vt 0.829268 0.617647 +vt 0.731707 0.205882 +vt 0.829268 0.205882 +vt 0.731707 0.779412 +vt 0.597561 0.823529 +vt 0.560976 0.661765 +vt 0.865854 0.205882 +vt 0.463415 0.882353 +vt 0.414634 0.558824 +vt 0.463415 0.558824 +vt 0.097561 0.500000 +vt 0.365854 0.941176 +vt 0.414634 0.058824 +vt 0.365854 0.441176 +vt 0.048780 0.382353 +vt 0.097561 1.000000 +vt 0.365854 1.000000 +vt 0.097561 0.441176 +vt 0.414634 0.500000 +vt 0.365854 0.500000 +vt 0.414634 0.941176 +vt 0.463415 0.941176 +vt 0.048780 0.941176 +vt 0.097561 0.941176 +vt 0.048780 0.500000 +vt 0.000000 0.558824 +vt 0.000000 0.500000 +vt 0.048780 0.882353 +vt 0.000000 0.882353 +vt 0.463415 0.882353 +vt 0.414634 0.558824 +vt 0.463415 0.558824 +vt 0.097561 0.500000 +vt 0.365854 0.941176 +vt 0.414634 0.058824 +vt 0.365854 0.441176 +vt 0.048780 0.382353 +vt 0.097561 1.000000 +vt 0.365854 1.000000 +vt 0.097561 0.441176 +vt 0.414634 0.500000 +vt 0.365854 0.500000 +vt 0.414634 0.941176 +vt 0.463415 0.941176 +vt 0.048780 0.941176 +vt 0.097561 0.941176 +vt 0.048780 0.500000 +vt 0.000000 0.558824 +vt 0.000000 0.500000 +vt 0.048780 0.882353 +vt 0.000000 0.882353 +vt 0.597561 0.823529 +vt 0.560976 0.779412 +vt 0.560976 0.661765 +vt 0.695122 0.617647 +vt 0.731707 0.779412 +vt 0.560976 0.205882 +vt 1.000000 0.617647 +vt 0.560976 0.044118 +vt 0.597561 -0.000000 +vt 0.695122 -0.000000 +vt 0.731707 0.161765 +vt 0.695122 -0.000000 +vt 0.731707 0.044118 +vt 0.731707 0.161765 +vt 0.560976 0.044118 +vt 0.963415 0.617647 +vt 0.829268 0.617647 +vt 0.695122 0.000000 +vt 0.731707 0.044118 +vt 0.731707 0.161765 +vt 0.560976 0.044118 +vt 0.695122 0.823529 +vt 0.597561 0.823529 +vt 0.560976 0.779412 +vt 0.731707 0.661765 +vt 1.000000 0.617647 +vt 0.560976 0.617647 +vt 0.695122 0.823529 +vt 0.597561 0.823529 +vt 0.560976 0.779412 +vt 0.731707 0.661765 +vt 0.829268 0.617647 +vt 0.731707 0.205882 +vt 0.560976 0.161765 +vt 0.597561 -0.000000 +vt 0.731707 0.044118 +vt 0.731707 0.661765 +vt 0.695122 0.823529 +vt 0.560976 0.779412 +vt 0.414634 0.882353 +vt 0.048780 0.558824 +vt 0.048780 0.058824 +vt 0.097561 -0.000000 +vt 0.365854 -0.000000 +vt 0.414634 0.382353 +vt 0.414634 0.441176 +vt 0.048780 1.000000 +vt 0.414634 0.882353 +vt 0.048780 0.558824 +vt 0.048780 0.058824 +vt 0.097561 -0.000000 +vt 0.365854 -0.000000 +vt 0.414634 0.382353 +vt 0.414634 0.441176 +vt 0.048780 1.000000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.0000 0.7071 +vn -0.7071 0.0000 0.7071 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 0.0000 1.0000 +vn -0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 -0.7071 +vn 1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn -1.0000 0.0000 0.0000 +s off +f 8/1/1 14/2/1 22/3/1 +f 35/4/2 26/5/2 3/6/2 +f 20/7/3 3/8/3 26/9/3 +f 20/10/4 16/11/4 10/12/4 +f 24/13/4 15/14/4 26/15/4 +f 10/16/5 12/17/5 17/18/5 +f 10/16/2 8/1/2 7/19/2 +f 12/20/3 18/21/3 17/22/3 +f 22/23/6 20/24/6 19/25/6 +f 14/26/7 16/11/7 15/27/7 +f 16/11/8 8/1/8 9/28/8 +f 27/29/7 25/30/7 30/31/7 +f 29/32/9 23/33/9 28/34/9 +f 15/35/2 6/36/2 14/37/2 +f 27/29/4 36/38/4 44/39/4 +f 14/40/1 2/41/1 29/42/1 +f 42/43/10 38/44/10 33/45/10 +f 30/46/6 28/34/6 27/47/6 +f 1/48/7 24/13/7 23/33/7 +f 24/13/8 6/36/8 5/49/8 +f 40/50/3 4/51/3 44/52/3 +f 11/53/2 32/54/2 18/55/2 +f 32/54/5 34/56/5 37/57/5 +f 35/58/1 30/31/1 47/59/1 +f 34/60/3 38/44/3 37/61/3 +f 42/43/6 40/62/6 39/63/6 +f 19/64/7 35/65/7 22/66/7 +f 37/67/4 39/68/4 36/69/4 +f 48/70/10 44/52/10 4/51/10 +f 47/71/9 43/72/9 46/73/9 +f 41/74/1 33/75/1 31/76/1 +f 48/70/6 46/73/6 45/77/6 +f 60/78/9 56/79/9 57/80/9 +f 52/81/1 56/79/1 54/82/1 +f 60/83/4 58/84/4 62/85/4 +f 64/86/10 54/82/10 59/87/10 +f 58/84/8 52/81/8 61/88/8 +f 58/84/7 56/89/7 55/90/7 +f 54/91/6 60/78/6 59/92/6 +f 64/86/3 50/93/3 49/94/3 +f 52/95/2 62/96/2 61/97/2 +f 62/96/5 50/98/5 63/99/5 +f 76/100/9 72/101/9 73/102/9 +f 68/103/1 72/101/1 70/104/1 +f 76/105/4 74/106/4 78/107/4 +f 80/108/10 70/104/10 75/109/10 +f 74/106/8 68/103/8 77/110/8 +f 74/106/7 72/111/7 71/112/7 +f 70/113/6 76/100/6 75/114/6 +f 80/108/3 66/115/3 65/116/3 +f 68/117/2 78/118/2 77/119/2 +f 78/118/5 66/120/5 79/121/5 +f 22/3/1 11/122/1 12/123/1 +f 12/123/1 7/124/1 8/1/1 +f 8/1/1 13/125/1 14/2/1 +f 14/2/1 21/126/1 22/3/1 +f 22/3/1 12/123/1 8/1/1 +f 35/4/2 36/127/2 26/5/2 +f 20/7/3 21/128/3 3/8/3 +f 10/12/4 17/129/4 18/130/4 +f 18/130/4 19/131/4 20/10/4 +f 20/10/4 15/132/4 16/11/4 +f 16/11/4 9/28/4 10/12/4 +f 10/12/4 18/130/4 20/10/4 +f 26/15/4 27/133/4 28/134/4 +f 28/134/4 23/135/4 24/13/4 +f 24/13/4 5/49/4 15/14/4 +f 15/14/4 20/136/4 26/15/4 +f 26/15/4 28/134/4 24/13/4 +f 10/16/5 7/19/5 12/17/5 +f 10/16/2 9/28/2 8/1/2 +f 12/20/3 11/137/3 18/21/3 +f 22/23/6 21/138/6 20/24/6 +f 14/26/7 13/125/7 16/11/7 +f 16/11/8 13/125/8 8/1/8 +f 27/29/7 43/72/7 25/30/7 +f 29/32/9 1/48/9 23/33/9 +f 15/35/2 5/49/2 6/36/2 +f 44/39/4 45/139/4 46/140/4 +f 46/140/4 43/141/4 27/29/4 +f 27/29/4 26/5/4 36/38/4 +f 36/38/4 40/142/4 44/39/4 +f 44/39/4 46/140/4 27/29/4 +f 29/42/1 30/143/1 3/144/1 +f 3/144/1 21/145/1 14/40/1 +f 14/40/1 6/36/1 2/41/1 +f 2/41/1 1/146/1 29/42/1 +f 29/42/1 3/144/1 14/40/1 +f 42/43/10 39/63/10 38/44/10 +f 30/46/6 29/32/6 28/34/6 +f 1/48/7 2/41/7 24/13/7 +f 24/13/8 2/41/8 6/36/8 +f 40/50/3 41/147/3 4/51/3 +f 11/53/2 31/148/2 32/54/2 +f 32/54/5 31/148/5 34/56/5 +f 47/59/1 48/149/1 4/150/1 +f 4/150/1 41/151/1 35/58/1 +f 35/58/1 3/6/1 30/31/1 +f 30/31/1 25/152/1 47/59/1 +f 47/59/1 4/150/1 35/58/1 +f 34/60/3 33/45/3 38/44/3 +f 42/43/6 41/153/6 40/62/6 +f 19/64/7 36/154/7 35/65/7 +f 36/69/4 19/64/4 18/55/4 +f 18/55/4 32/155/4 37/67/4 +f 37/67/4 38/156/4 39/68/4 +f 39/68/4 40/157/4 36/69/4 +f 36/69/4 18/55/4 37/67/4 +f 48/70/10 45/77/10 44/52/10 +f 47/71/9 25/30/9 43/72/9 +f 31/76/1 11/53/1 22/66/1 +f 22/66/1 35/158/1 41/74/1 +f 41/74/1 42/159/1 33/75/1 +f 33/75/1 34/160/1 31/76/1 +f 31/76/1 22/66/1 41/74/1 +f 48/70/6 47/71/6 46/73/6 +f 60/78/9 53/161/9 56/79/9 +f 54/82/1 49/94/1 50/98/1 +f 50/98/1 51/162/1 52/81/1 +f 52/81/1 55/90/1 56/79/1 +f 56/79/1 53/161/1 54/82/1 +f 54/82/1 50/98/1 52/81/1 +f 62/85/4 63/163/4 64/164/4 +f 64/164/4 59/165/4 60/83/4 +f 60/83/4 57/166/4 58/84/4 +f 58/84/4 61/88/4 62/85/4 +f 62/85/4 64/164/4 60/83/4 +f 64/86/10 49/94/10 54/82/10 +f 58/84/8 55/90/8 52/81/8 +f 58/84/7 57/167/7 56/89/7 +f 54/91/6 53/161/6 60/78/6 +f 64/86/3 63/168/3 50/93/3 +f 52/95/2 51/162/2 62/96/2 +f 62/96/5 51/162/5 50/98/5 +f 76/100/9 69/169/9 72/101/9 +f 70/104/1 65/116/1 66/120/1 +f 66/120/1 67/170/1 68/103/1 +f 68/103/1 71/112/1 72/101/1 +f 72/101/1 69/169/1 70/104/1 +f 70/104/1 66/120/1 68/103/1 +f 78/107/4 79/171/4 80/172/4 +f 80/172/4 75/173/4 76/105/4 +f 76/105/4 73/174/4 74/106/4 +f 74/106/4 77/110/4 78/107/4 +f 78/107/4 80/172/4 76/105/4 +f 80/108/10 65/116/10 70/104/10 +f 74/106/8 71/112/8 68/103/8 +f 74/106/7 73/175/7 72/111/7 +f 70/113/6 69/169/6 76/100/6 +f 80/108/3 79/176/3 66/115/3 +f 68/117/2 67/170/2 78/118/2 +f 78/118/5 67/170/5 66/120/5 +o Socket +v -1.000000 0.000000 1.000000 +v 1.000000 0.000000 1.000000 +v -1.000000 0.000000 -1.000000 +v 1.000000 0.000000 -1.000000 +v -0.875000 0.250000 0.875000 +v 0.875000 0.250000 0.875000 +v -0.875000 0.250000 -0.875000 +v 0.875000 0.250000 -0.875000 +v -1.000000 0.250000 -1.000000 +v -1.000000 0.250000 1.000000 +v 1.000000 0.250000 1.000000 +v 1.000000 0.250000 -1.000000 +v 1.000000 0.750000 -0.250000 +v 1.000000 0.250000 -0.250000 +v 1.000000 0.750000 -0.750000 +v 1.000000 0.250000 -0.750000 +v 0.875000 0.750000 -0.750000 +v 0.875000 0.750000 -0.250000 +v 0.875000 0.250000 -0.250000 +v 0.875000 0.250000 -0.750000 +v -0.875000 0.125000 -0.875000 +v -0.875000 0.125000 0.875000 +v 0.875000 0.125000 0.875000 +v 0.875000 0.125000 -0.875000 +v 1.000000 0.750000 0.750000 +v 1.000000 0.250000 0.750000 +v 1.000000 0.750000 0.250000 +v 1.000000 0.250000 0.250000 +v 0.875000 0.750000 0.250000 +v 0.875000 0.750000 0.750000 +v 0.875000 0.250000 0.750000 +v 0.875000 0.250000 0.250000 +v -1.000000 0.750000 0.250000 +v -1.000000 0.250000 0.250000 +v -1.000000 0.750000 0.750000 +v -1.000000 0.250000 0.750000 +v -0.875000 0.750000 0.750000 +v -0.875000 0.750000 0.250000 +v -0.875000 0.250000 0.250000 +v -0.875000 0.250000 0.750000 +v -1.000000 0.750000 -0.750000 +v -1.000000 0.250000 -0.750000 +v -1.000000 0.750000 -0.250000 +v -1.000000 0.250000 -0.250000 +v -0.875000 0.750000 -0.250000 +v -0.875000 0.750000 -0.750000 +v -0.875000 0.250000 -0.750000 +v -0.875000 0.250000 -0.250000 +v -0.250000 0.750000 -1.000000 +v -0.250000 0.250000 -1.000000 +v -0.750000 0.750000 -1.000000 +v -0.750000 0.250000 -1.000000 +v -0.750000 0.750000 -0.875000 +v -0.250000 0.750000 -0.875000 +v -0.250000 0.250000 -0.875000 +v -0.750000 0.250000 -0.875000 +v 0.750000 0.750000 -1.000000 +v 0.750000 0.250000 -1.000000 +v 0.250000 0.750000 -1.000000 +v 0.250000 0.250000 -1.000000 +v 0.250000 0.750000 -0.875000 +v 0.750000 0.750000 -0.875000 +v 0.750000 0.250000 -0.875000 +v 0.250000 0.250000 -0.875000 +v 0.250000 0.750000 1.000000 +v 0.250000 0.250000 1.000000 +v 0.750000 0.750000 1.000000 +v 0.750000 0.250000 1.000000 +v 0.750000 0.750000 0.875000 +v 0.250000 0.750000 0.875000 +v 0.250000 0.250000 0.875000 +v 0.750000 0.250000 0.875000 +v -0.750000 0.750000 1.000000 +v -0.750000 0.250000 1.000000 +v -0.250000 0.750000 1.000000 +v -0.250000 0.250000 1.000000 +v -0.250000 0.750000 0.875000 +v -0.750000 0.750000 0.875000 +v -0.750000 0.250000 0.875000 +v -0.250000 0.250000 0.875000 +v 0.562500 1.875000 -0.562500 +v 0.312500 1.875000 -0.562500 +v 0.562500 1.875000 -0.312500 +v 0.312500 1.875000 -0.312500 +v -0.843750 1.937500 0.500000 +v 0.312500 1.875000 0.562500 +v 0.562500 1.875000 0.562500 +v 0.312500 1.875000 0.312500 +v 0.562500 1.875000 0.312500 +v 0.312500 2.000000 0.312500 +v 0.312500 2.000000 0.562500 +v 0.562500 2.000000 0.562500 +v 0.562500 2.000000 0.312500 +v 0.312500 2.000000 -0.562500 +v 0.312500 2.000000 -0.312500 +v 0.562500 2.000000 -0.312500 +v 0.562500 2.000000 -0.562500 +v -0.312500 1.875000 -0.562500 +v -0.562500 1.875000 -0.562500 +v -0.312500 1.875000 -0.312500 +v -0.562500 1.875000 -0.312500 +v -0.562500 1.875000 0.562500 +v -0.312500 1.875000 0.562500 +v -0.562500 1.875000 0.312500 +v -0.312500 1.875000 0.312500 +v -0.562500 2.000000 0.312500 +v -0.562500 2.000000 0.562500 +v -0.312500 2.000000 0.562500 +v -0.312500 2.000000 0.312500 +v -0.562500 2.000000 -0.562500 +v -0.562500 2.000000 -0.312500 +v -0.312500 2.000000 -0.312500 +v -0.312500 2.000000 -0.562500 +v 0.843750 1.937500 0.500000 +v -0.843750 1.937500 0.375000 +v 0.843750 1.937500 0.375000 +v 0.968750 1.812500 0.500000 +v 0.968750 1.812500 0.375000 +v 0.968750 0.750000 0.500000 +v 0.968750 0.750000 0.375000 +v -0.968750 1.811500 0.500000 +v -0.968750 1.811500 0.375000 +v -0.968750 0.749000 0.500000 +v -0.968750 0.749000 0.375000 +v -0.843750 1.937500 -0.375000 +v 0.843750 1.937500 -0.375000 +v -0.843750 1.937500 -0.500000 +v 0.843750 1.937500 -0.500000 +v 0.968750 1.812500 -0.375000 +v 0.968750 1.812500 -0.500000 +v 0.968750 0.750000 -0.375000 +v 0.968750 0.750000 -0.500000 +v -0.968750 1.811500 -0.375000 +v -0.968750 1.811500 -0.500000 +v -0.968750 0.749000 -0.375000 +v -0.968750 0.749000 -0.500000 +v -0.968750 0.749000 -0.500000 +v -0.968750 0.749000 -0.375000 +v -0.968750 1.811500 -0.500000 +v -0.968750 1.811500 -0.375000 +v 0.968750 0.750000 -0.500000 +v 0.968750 0.750000 -0.375000 +v 0.968750 1.812500 -0.500000 +v 0.968750 1.812500 -0.375000 +v 0.843750 1.937500 -0.500000 +v -0.843750 1.937500 -0.500000 +v 0.843750 1.937500 -0.375000 +v -0.843750 1.937500 -0.375000 +v -0.968750 0.749000 0.375000 +v -0.968750 0.749000 0.500000 +v -0.968750 1.811500 0.375000 +v -0.968750 1.811500 0.500000 +v 0.968750 0.750000 0.375000 +v 0.968750 0.750000 0.500000 +v 0.968750 1.812500 0.375000 +v 0.968750 1.812500 0.500000 +v 0.843750 1.937500 0.375000 +v -0.843750 1.937500 0.375000 +v 0.843750 1.937500 0.500000 +v -0.843750 1.937500 0.500000 +vt 0.486486 0.055556 +vt 0.054054 0.500000 +vt 0.054054 0.055556 +vt 0.945946 -0.000000 +vt 0.567568 0.027778 +vt 0.567568 -0.000000 +vt 0.540541 0.500000 +vt 0.486486 0.500000 +vt 0.000000 0.055556 +vt 0.054054 0.555556 +vt 0.486486 0.000000 +vt 0.459459 0.972222 +vt 0.054054 1.000000 +vt 0.081081 0.972222 +vt 0.081081 0.583333 +vt 0.486486 0.555556 +vt 0.459459 0.583333 +vt 0.486486 1.000000 +vt 0.594595 0.444444 +vt 0.702703 0.555556 +vt 0.594595 0.555556 +vt 0.702703 0.583333 +vt 0.594595 0.694444 +vt 0.594595 0.583333 +vt 0.945946 0.416667 +vt 0.567568 0.416667 +vt 0.810811 0.555556 +vt 0.486486 0.583333 +vt 0.486486 0.555556 +vt 0.567568 0.444444 +vt 0.945946 0.444444 +vt 0.972973 0.416667 +vt 0.945946 0.027778 +vt 0.972973 0.027778 +vt 0.540541 0.027778 +vt 0.540541 0.416667 +vt 0.594595 0.444444 +vt 0.702703 0.555556 +vt 0.594595 0.555556 +vt 0.702703 0.583333 +vt 0.594595 0.694444 +vt 0.594595 0.583333 +vt 0.810811 0.555556 +vt 0.486486 0.583333 +vt 0.486486 0.555556 +vt 0.594595 0.444444 +vt 0.702703 0.555556 +vt 0.594595 0.555556 +vt 0.702703 0.583333 +vt 0.594595 0.694444 +vt 0.594595 0.583333 +vt 0.810811 0.555556 +vt 0.486486 0.583333 +vt 0.486486 0.555556 +vt 0.594595 0.444444 +vt 0.702703 0.555556 +vt 0.594595 0.555556 +vt 0.702703 0.583333 +vt 0.594595 0.694444 +vt 0.594595 0.583333 +vt 0.810811 0.555556 +vt 0.486486 0.583333 +vt 0.486486 0.555556 +vt 0.594595 0.444444 +vt 0.702703 0.555556 +vt 0.594595 0.555556 +vt 0.702703 0.583333 +vt 0.594595 0.694444 +vt 0.594595 0.583333 +vt 0.810811 0.555556 +vt 0.486486 0.583333 +vt 0.486486 0.555556 +vt 0.594595 0.444444 +vt 0.702703 0.555556 +vt 0.594595 0.555556 +vt 0.702703 0.583333 +vt 0.594595 0.694444 +vt 0.594595 0.583333 +vt 0.810811 0.555556 +vt 0.486486 0.583333 +vt 0.486486 0.555556 +vt 0.594595 0.444444 +vt 0.702703 0.555556 +vt 0.594595 0.555556 +vt 0.702703 0.583333 +vt 0.594595 0.694444 +vt 0.594595 0.583333 +vt 0.810811 0.555556 +vt 0.486486 0.583333 +vt 0.486486 0.555556 +vt 0.594595 0.444444 +vt 0.702703 0.555556 +vt 0.594595 0.555556 +vt 0.702703 0.583333 +vt 0.594595 0.694444 +vt 0.594595 0.583333 +vt 0.810811 0.555556 +vt 0.486486 0.583333 +vt 0.486486 0.555556 +vt 0.918919 0.500000 +vt 0.864865 0.527778 +vt 0.864865 0.500000 +vt 0.810811 0.527778 +vt 0.864865 0.583333 +vt 0.810811 0.583333 +vt 0.810811 0.527778 +vt 0.864865 0.583333 +vt 0.810811 0.583333 +vt 0.918919 0.500000 +vt 0.864865 0.527778 +vt 0.864865 0.500000 +vt 0.810811 0.500000 +vt 0.756757 0.527778 +vt 0.756757 0.500000 +vt 0.972973 0.500000 +vt 0.918919 0.527778 +vt 0.810811 0.500000 +vt 0.756757 0.527778 +vt 0.756757 0.500000 +vt 0.972973 0.500000 +vt 0.918919 0.527778 +vt 0.918919 0.500000 +vt 0.864865 0.527778 +vt 0.864865 0.500000 +vt 0.810811 0.527778 +vt 0.864865 0.583333 +vt 0.810811 0.583333 +vt 0.810811 0.527778 +vt 0.864865 0.583333 +vt 0.810811 0.583333 +vt 0.918919 0.500000 +vt 0.864865 0.527778 +vt 0.864865 0.500000 +vt 0.810811 0.500000 +vt 0.756757 0.527778 +vt 0.756757 0.500000 +vt 0.972973 0.500000 +vt 0.918919 0.527778 +vt 0.810811 0.500000 +vt 0.756757 0.527778 +vt 0.756757 0.500000 +vt 0.972973 0.500000 +vt 0.918919 0.527778 +vt 0.972973 0.263889 +vt 1.000000 0.638889 +vt 0.972973 0.638889 +vt 1.000000 0.236111 +vt 1.000000 0.263889 +vt 0.972973 0.236111 +vt 1.000000 0.000000 +vt 0.972973 0.666667 +vt 1.000000 0.666667 +vt 0.972973 0.902778 +vt 0.972973 0.263889 +vt 1.000000 0.638889 +vt 0.972973 0.638889 +vt 1.000000 0.236111 +vt 1.000000 0.263889 +vt 0.972973 0.236111 +vt 1.000000 0.000000 +vt 0.972973 0.666667 +vt 1.000000 0.666667 +vt 0.972973 0.902778 +vt 0.810811 0.444444 +vt 0.864865 0.444444 +vt 0.810811 0.444444 +vt 0.864865 0.444444 +vt 0.864865 0.444444 +vt 0.864865 0.444444 +vt 0.972973 0.902778 +vt 1.000000 0.666667 +vt 0.972973 0.666667 +vt 1.000000 0.638889 +vt 0.972973 0.638889 +vt 1.000000 0.000000 +vt 0.972973 0.236111 +vt 1.000000 0.236111 +vt 0.972973 0.263889 +vt 1.000000 0.263889 +vt 0.972973 0.902778 +vt 1.000000 0.666667 +vt 0.972973 0.666667 +vt 1.000000 0.638889 +vt 0.972973 0.638889 +vt 1.000000 0.000000 +vt 0.972973 0.236111 +vt 1.000000 0.236111 +vt 0.972973 0.263889 +vt 1.000000 0.263889 +vt 0.540541 0.055556 +vt 0.000000 0.500000 +vt 0.054054 0.000000 +vt 0.702703 0.444444 +vt 0.702703 0.694444 +vt 0.810811 0.583333 +vt 0.702703 0.444444 +vt 0.702703 0.694444 +vt 0.810811 0.583333 +vt 0.702703 0.444444 +vt 0.702703 0.694444 +vt 0.810811 0.583333 +vt 0.702703 0.444444 +vt 0.702703 0.694444 +vt 0.810811 0.583333 +vt 0.702703 0.444444 +vt 0.702703 0.694444 +vt 0.810811 0.583333 +vt 0.702703 0.444444 +vt 0.702703 0.694444 +vt 0.810811 0.583333 +vt 0.702703 0.444444 +vt 0.702703 0.694444 +vt 0.810811 0.583333 +vt 0.702703 0.444444 +vt 0.702703 0.694444 +vt 0.810811 0.583333 +vt 0.972973 0.527778 +vt 0.972973 0.527778 +vt 0.972973 0.527778 +vt 0.972973 0.527778 +vt 0.972973 0.000000 +vt 1.000000 0.902778 +vt 0.972973 0.000000 +vt 1.000000 0.902778 +vt 0.810811 0.444444 +vt 0.810811 0.444444 +vt 1.000000 0.902778 +vt 0.972973 0.000000 +vt 1.000000 0.902778 +vt 0.972973 0.000000 +vn 0.0000 -1.0000 0.0000 +vn -1.0000 0.0000 0.0000 +vn 0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn 1.0000 0.0000 0.0000 +vn 0.0000 1.0000 0.0000 +vn 0.7071 0.7071 0.0000 +vn -0.7099 0.7043 0.0000 +vn 0.7099 -0.7043 0.0000 +vn -0.7071 -0.7071 0.0000 +s off +f 83/177/11 82/178/11 81/179/11 +f 88/180/12 103/181/12 86/182/12 +f 83/177/13 92/183/13 84/184/13 +f 82/178/14 90/185/14 81/179/14 +f 84/184/15 91/186/15 82/178/15 +f 81/179/12 89/187/12 83/177/12 +f 87/188/16 90/189/16 85/190/16 +f 85/190/16 91/186/16 86/191/16 +f 86/191/16 92/192/16 88/193/16 +f 88/193/16 89/194/16 87/188/16 +f 94/195/15 95/196/15 93/197/15 +f 97/198/12 99/199/12 98/200/12 +f 103/181/16 101/201/16 102/202/16 +f 95/196/16 98/200/16 93/197/16 +f 96/203/13 97/198/13 95/196/13 +f 93/197/14 99/204/14 94/205/14 +f 85/206/15 101/201/15 87/207/15 +f 87/208/14 104/209/14 88/210/14 +f 86/211/13 102/202/13 85/212/13 +f 106/213/15 107/214/15 105/215/15 +f 109/216/12 111/217/12 110/218/12 +f 107/214/16 110/218/16 105/215/16 +f 108/219/13 109/216/13 107/214/13 +f 105/215/14 111/220/14 106/221/14 +f 114/222/12 115/223/12 113/224/12 +f 117/225/15 119/226/15 118/227/15 +f 115/223/16 118/227/16 113/224/16 +f 116/228/14 117/225/14 115/223/14 +f 113/224/13 119/229/13 114/230/13 +f 122/231/12 123/232/12 121/233/12 +f 125/234/15 127/235/15 126/236/15 +f 123/232/16 126/236/16 121/233/16 +f 124/237/14 125/234/14 123/232/14 +f 121/233/13 127/238/13 122/239/13 +f 130/240/13 131/241/13 129/242/13 +f 133/243/14 135/244/14 134/245/14 +f 131/241/16 134/245/16 129/242/16 +f 132/246/12 133/243/12 131/241/12 +f 129/242/15 135/247/15 130/248/15 +f 138/249/13 139/250/13 137/251/13 +f 141/252/14 143/253/14 142/254/14 +f 139/250/16 142/254/16 137/251/16 +f 140/255/12 141/252/12 139/250/12 +f 137/251/15 143/256/15 138/257/15 +f 146/258/14 147/259/14 145/260/14 +f 149/261/13 151/262/13 150/263/13 +f 147/259/16 150/263/16 145/260/16 +f 148/264/15 149/261/15 147/259/15 +f 145/260/12 151/265/12 146/266/12 +f 154/267/14 155/268/14 153/269/14 +f 157/270/13 159/271/13 158/272/13 +f 155/268/16 158/272/16 153/269/16 +f 156/273/15 157/270/15 155/268/15 +f 153/269/12 159/274/12 154/275/12 +f 162/276/13 177/277/13 161/278/13 +f 176/279/16 174/280/16 175/281/16 +f 172/282/16 170/283/16 171/284/16 +f 168/285/13 173/286/13 169/287/13 +f 167/288/14 171/289/14 166/290/14 +f 169/287/15 172/282/15 167/288/15 +f 166/291/12 170/292/12 168/285/12 +f 163/293/14 175/294/14 164/295/14 +f 161/278/15 176/279/15 163/293/15 +f 164/296/12 174/297/12 162/276/12 +f 179/298/13 193/299/13 178/300/13 +f 192/301/16 190/302/16 191/303/16 +f 188/304/16 186/305/16 187/306/16 +f 184/307/13 189/308/13 185/309/13 +f 183/310/14 187/311/14 182/312/14 +f 185/309/15 188/304/15 183/310/15 +f 182/313/12 186/314/12 184/307/12 +f 180/315/14 191/316/14 181/317/14 +f 178/300/15 192/301/15 180/315/15 +f 181/318/12 190/319/12 179/298/12 +f 194/320/16 195/321/16 165/322/16 +f 194/320/17 198/323/17 196/324/17 +f 197/325/15 200/326/15 198/323/15 +f 195/321/18 201/327/18 165/322/18 +f 202/328/12 203/329/12 201/327/12 +f 206/330/16 207/331/16 205/332/16 +f 206/330/17 210/333/17 208/334/17 +f 209/335/15 212/336/15 210/333/15 +f 207/331/18 213/337/18 205/332/18 +f 214/338/12 215/339/12 213/337/12 +f 169/287/11 166/340/11 168/341/11 +f 185/309/11 182/342/11 184/343/11 +f 180/315/11 179/344/11 178/300/11 +f 163/293/11 162/345/11 161/278/11 +f 218/346/15 219/347/15 220/348/15 +f 220/348/19 226/349/19 228/350/19 +f 221/351/12 224/352/12 223/353/12 +f 223/353/20 227/354/20 225/355/20 +f 226/349/11 227/354/11 228/350/11 +f 230/356/15 231/357/15 232/358/15 +f 232/358/19 238/359/19 240/360/19 +f 233/361/12 236/362/12 235/363/12 +f 235/363/20 239/364/20 237/365/20 +f 238/359/11 239/364/11 240/360/11 +f 83/177/11 84/184/11 82/178/11 +f 88/180/12 104/209/12 103/181/12 +f 83/177/13 89/366/13 92/183/13 +f 82/178/14 91/367/14 90/185/14 +f 84/184/15 92/192/15 91/186/15 +f 81/179/12 90/368/12 89/187/12 +f 87/188/16 89/194/16 90/189/16 +f 85/190/16 90/189/16 91/186/16 +f 86/191/16 91/186/16 92/192/16 +f 88/193/16 92/192/16 89/194/16 +f 94/195/15 96/369/15 95/196/15 +f 97/198/12 100/370/12 99/199/12 +f 103/181/16 104/209/16 101/201/16 +f 95/196/16 97/198/16 98/200/16 +f 96/203/13 100/371/13 97/198/13 +f 93/197/14 98/200/14 99/204/14 +f 85/206/15 102/202/15 101/201/15 +f 87/208/14 101/201/14 104/209/14 +f 86/211/13 103/181/13 102/202/13 +f 106/213/15 108/372/15 107/214/15 +f 109/216/12 112/373/12 111/217/12 +f 107/214/16 109/216/16 110/218/16 +f 108/219/13 112/374/13 109/216/13 +f 105/215/14 110/218/14 111/220/14 +f 114/222/12 116/375/12 115/223/12 +f 117/225/15 120/376/15 119/226/15 +f 115/223/16 117/225/16 118/227/16 +f 116/228/14 120/377/14 117/225/14 +f 113/224/13 118/227/13 119/229/13 +f 122/231/12 124/378/12 123/232/12 +f 125/234/15 128/379/15 127/235/15 +f 123/232/16 125/234/16 126/236/16 +f 124/237/14 128/380/14 125/234/14 +f 121/233/13 126/236/13 127/238/13 +f 130/240/13 132/381/13 131/241/13 +f 133/243/14 136/382/14 135/244/14 +f 131/241/16 133/243/16 134/245/16 +f 132/246/12 136/383/12 133/243/12 +f 129/242/15 134/245/15 135/247/15 +f 138/249/13 140/384/13 139/250/13 +f 141/252/14 144/385/14 143/253/14 +f 139/250/16 141/252/16 142/254/16 +f 140/255/12 144/386/12 141/252/12 +f 137/251/15 142/254/15 143/256/15 +f 146/258/14 148/387/14 147/259/14 +f 149/261/13 152/388/13 151/262/13 +f 147/259/16 149/261/16 150/263/16 +f 148/264/15 152/389/15 149/261/15 +f 145/260/12 150/263/12 151/265/12 +f 154/267/14 156/390/14 155/268/14 +f 157/270/13 160/391/13 159/271/13 +f 155/268/16 157/270/16 158/272/16 +f 156/273/15 160/392/15 157/270/15 +f 153/269/12 158/272/12 159/274/12 +f 162/276/13 174/297/13 177/277/13 +f 176/279/16 177/277/16 174/280/16 +f 172/282/16 173/286/16 170/283/16 +f 168/285/13 170/292/13 173/286/13 +f 167/288/14 172/282/14 171/289/14 +f 169/287/15 173/286/15 172/282/15 +f 166/291/12 171/393/12 170/292/12 +f 163/293/14 176/279/14 175/294/14 +f 161/278/15 177/277/15 176/279/15 +f 164/296/12 175/394/12 174/297/12 +f 179/298/13 190/319/13 193/299/13 +f 192/301/16 193/299/16 190/302/16 +f 188/304/16 189/308/16 186/305/16 +f 184/307/13 186/314/13 189/308/13 +f 183/310/14 188/304/14 187/311/14 +f 185/309/15 189/308/15 188/304/15 +f 182/313/12 187/395/12 186/314/12 +f 180/315/14 192/301/14 191/316/14 +f 178/300/15 193/299/15 192/301/15 +f 181/318/12 191/396/12 190/319/12 +f 194/320/16 196/324/16 195/321/16 +f 194/320/17 197/325/17 198/323/17 +f 197/325/15 199/397/15 200/326/15 +f 195/321/18 202/328/18 201/327/18 +f 202/328/12 204/398/12 203/329/12 +f 206/330/16 208/334/16 207/331/16 +f 206/330/17 209/335/17 210/333/17 +f 209/335/15 211/399/15 212/336/15 +f 207/331/18 214/338/18 213/337/18 +f 214/338/12 216/400/12 215/339/12 +f 169/287/11 167/288/11 166/340/11 +f 185/309/11 183/310/11 182/342/11 +f 180/315/11 181/401/11 179/344/11 +f 163/293/11 164/402/11 162/345/11 +f 218/346/15 217/403/15 219/347/15 +f 220/348/19 219/347/19 226/349/19 +f 221/351/12 222/404/12 224/352/12 +f 223/353/20 224/352/20 227/354/20 +f 226/349/11 225/355/11 227/354/11 +f 230/356/15 229/405/15 231/357/15 +f 232/358/19 231/357/19 238/359/19 +f 233/361/12 234/406/12 236/362/12 +f 235/363/20 236/362/20 239/364/20 +f 238/359/11 237/365/11 239/364/11 diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_center_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/fusion_center_side_alt.png deleted file mode 100644 index 677b7bc2f..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_center_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_center_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/fusion_center_top_alt.png deleted file mode 100644 index e96673aa0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_center_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side.png b/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side.png deleted file mode 100644 index 82452e86d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png b/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png deleted file mode 100644 index adbd7c637..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_side_welded.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_top.png b/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_top.png deleted file mode 100644 index d6ac6b063..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_top_welded.png b/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_top_welded.png deleted file mode 100644 index 8257cb294..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_conductor_top_welded.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_motor_side_alt.png b/src/main/resources/assets/hbm/textures/blocks/fusion_motor_side_alt.png deleted file mode 100644 index ea91ee2f2..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_motor_side_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/fusion_motor_top_alt.png b/src/main/resources/assets/hbm/textures/blocks/fusion_motor_top_alt.png deleted file mode 100644 index 919f0a7b7..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/fusion_motor_top_alt.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_amgen_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_amgen_side.png deleted file mode 100644 index 374d34705..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_amgen_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_amgen_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_amgen_top.png deleted file mode 100644 index 2f4c6a554..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_amgen_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_cmb_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_cmb_side.png deleted file mode 100644 index 5c18f09ad..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_cmb_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_cmb_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_cmb_top.png deleted file mode 100644 index 4fc11aecc..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_cmb_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_geo_side.png b/src/main/resources/assets/hbm/textures/blocks/machine_geo_side.png deleted file mode 100644 index f386be03e..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_geo_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/machine_geo_top.png b/src/main/resources/assets/hbm/textures/blocks/machine_geo_top.png deleted file mode 100644 index 3c72964a0..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/machine_geo_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/struct_iter_core.png b/src/main/resources/assets/hbm/textures/blocks/struct_iter_core.png deleted file mode 100644 index f83c09527..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/struct_iter_core.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/struct_plasma_core.png b/src/main/resources/assets/hbm/textures/blocks/struct_plasma_core.png deleted file mode 100644 index 2748efbfb..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/struct_plasma_core.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/test_ct.1.png b/src/main/resources/assets/hbm/textures/blocks/test_ct.1.png deleted file mode 100644 index babc7c961..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/test_ct.1.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/test_ct.1_ct.png b/src/main/resources/assets/hbm/textures/blocks/test_ct.1_ct.png deleted file mode 100644 index 3edb8dd35..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/test_ct.1_ct.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/test_ct.png b/src/main/resources/assets/hbm/textures/blocks/test_ct.png deleted file mode 100644 index 95f7f1d8d..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/test_ct.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/test_ct_ct.png b/src/main/resources/assets/hbm/textures/blocks/test_ct_ct.png deleted file mode 100644 index 034f720e2..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/test_ct_ct.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/test_rail.png b/src/main/resources/assets/hbm/textures/blocks/test_rail.png deleted file mode 100644 index 7dd9344ff..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/test_rail.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/transmutator_bottom.png b/src/main/resources/assets/hbm/textures/blocks/transmutator_bottom.png deleted file mode 100644 index 03e57ddf7..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/transmutator_bottom.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/transmutator_side.png b/src/main/resources/assets/hbm/textures/blocks/transmutator_side.png deleted file mode 100644 index daa0d5a08..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/transmutator_side.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/blocks/transmutator_top.png b/src/main/resources/assets/hbm/textures/blocks/transmutator_top.png deleted file mode 100644 index fef402116..000000000 Binary files a/src/main/resources/assets/hbm/textures/blocks/transmutator_top.png and /dev/null differ diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png index a04e3e7a7..871440cc4 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_mixer.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/storage/gui_battery_socket.png b/src/main/resources/assets/hbm/textures/gui/storage/gui_battery_socket.png new file mode 100644 index 000000000..9a0371157 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/storage/gui_battery_socket.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_base.png b/src/main/resources/assets/hbm/textures/models/machines/battery_base.png new file mode 100644 index 000000000..a0b8e6447 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/battery_base.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_lead.png b/src/main/resources/assets/hbm/textures/models/machines/battery_lead.png new file mode 100644 index 000000000..2f3ab9483 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/battery_lead.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_lithium.png b/src/main/resources/assets/hbm/textures/models/machines/battery_lithium.png new file mode 100644 index 000000000..1a93d3c72 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/battery_lithium.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_quantum.png b/src/main/resources/assets/hbm/textures/models/machines/battery_quantum.png new file mode 100644 index 000000000..66e455f24 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/battery_quantum.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_redstone.png b/src/main/resources/assets/hbm/textures/models/machines/battery_redstone.png new file mode 100644 index 000000000..e02f7a937 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/battery_redstone.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_schrabidium.png b/src/main/resources/assets/hbm/textures/models/machines/battery_schrabidium.png new file mode 100644 index 000000000..da4a3637a Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/battery_schrabidium.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_socket.png b/src/main/resources/assets/hbm/textures/models/machines/battery_socket.png new file mode 100644 index 000000000..58a9779a7 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/battery_socket.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/battery_sodium.png b/src/main/resources/assets/hbm/textures/models/machines/battery_sodium.png new file mode 100644 index 000000000..75e7e5d31 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/machines/battery_sodium.png differ