Merge branch 'master' into moige

This commit is contained in:
George Paton 2025-02-03 10:44:17 +11:00
commit c49161ab39
68 changed files with 10195 additions and 10714 deletions

View File

@ -1,8 +1,25 @@
## Added
* Bauxite processing
* Bauxite is now processed by mixing it with lye, and then fractioning it into sodium aluminate and red mud
* Red mud can now be turned into cement
* Sodium aluminate can either be processed directly into aluminium in a rotary furnace, or turned into alumina with fluorite to be used in an electrolyzer
* Standard aluminium ore is now "aluminium-bearing ore" which drops cryolite, which can either be smelted into aluminium like normal or combination smelted into aluminium and lye
* Particle accelerator
* Should be about finished now
* Recipes should now be doable
* Added recipes to all the components
* Changed the dipole mechanic from a momentum penalty to a power draw penalty for smaller accelerator rings
* Added explicit compressor recipes for perfluoromethyl in order to change the standard compression speed of 100 ticks to 50
* All the parts have tooltips, you'll figure it out
## Changed ## Changed
* Blast doors will now pulverize any block that gets in their way during closing * Blast doors will now pulverize any block that gets in their way during closing
* The nuclear and RTG furnaces will be retired, their recipes have been removed but they remain operational for now * The nuclear and RTG furnaces will be retired, their recipes have been removed but they remain operational for now
* Changed the magnetron recipe to be 3 copper plates and 4 tungsten wires
* Added recipes to some secret ammo types
## Fixed ## Fixed
* Fixed the CCGT's steam output breaking as soon as the steam buffer runs full * Fixed the CCGT's steam output breaking as soon as the steam buffer runs full
* Fixed crash caused by mobs holding belt-fed guns * Fixed crash caused by mobs holding belt-fed guns
* Fixed boiler heat input being way too low due to operation order (diffusion was applied AFTER the input heat was capped) * Fixed boiler heat input being way too low due to operation order (diffusion was applied AFTER the input heat was capped)
* Fixed stinger playing its lockon sound on the wrong side

View File

@ -1,6 +1,6 @@
mod_version=1.0.27 mod_version=1.0.27
# Empty build number makes a release type # Empty build number makes a release type
mod_build_number=5224 mod_build_number=5229
credits=HbMinecraft,\ credits=HbMinecraft,\
\ rodolphito (explosion algorithms),\ \ rodolphito (explosion algorithms),\
@ -38,7 +38,7 @@ credits=HbMinecraft,\
\ VT-6/24 (models, textures),\ \ VT-6/24 (models, textures),\
\ Nos (models),\ \ Nos (models),\
\ Minecreep (models),\ \ Minecreep (models),\
\ 70k (textures, glyphid AI, strand caster, electrolyzer changes),\ \ 70k (textures, glyphid AI, strand caster, electrolyzer changes, cryolite),\
\ haru315 (spiral point algorithm),\ \ haru315 (spiral point algorithm),\
\ Sten89 (models),\ \ Sten89 (models),\
\ Pixelguru26 (textures),\ \ Pixelguru26 (textures),\

View File

@ -1,15 +1,20 @@
package com.hbm.blocks.machine.albion; package com.hbm.blocks.machine.albion;
import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.machine.albion.TileEntityPABeamline; import com.hbm.tileentity.machine.albion.TileEntityPABeamline;
import net.minecraft.block.material.Material; 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.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
public class BlockPABeamline extends BlockDummyable { public class BlockPABeamline extends BlockDummyable implements ITooltipProvider {
public BlockPABeamline() { public BlockPABeamline() {
super(Material.iron); super(Material.iron);
@ -25,4 +30,9 @@ public class BlockPABeamline extends BlockDummyable {
@Override public int[] getDimensions() { return new int[] {0, 0, 0, 0, 1, 1}; } @Override public int[] getDimensions() { return new int[] {0, 0, 0, 0, 1, 1}; }
@Override public int getOffset() { return 0; } @Override public int getOffset() { return 0; }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
} }

View File

@ -1,6 +1,9 @@
package com.hbm.blocks.machine.albion; package com.hbm.blocks.machine.albion;
import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPADetector;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class BlockPADetector extends BlockDummyable { public class BlockPADetector extends BlockDummyable implements ITooltipProvider {
public BlockPADetector() { public BlockPADetector() {
super(Material.iron); super(Material.iron);
@ -48,4 +52,9 @@ public class BlockPADetector extends BlockDummyable {
this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX, y, z - rot.offsetZ * 4 + dir.offsetZ); this.makeExtra(world, x - rot.offsetX * 4 + dir.offsetX, y, z - rot.offsetZ * 4 + dir.offsetZ);
this.makeExtra(world, x - rot.offsetX * 4 - dir.offsetX, y, z - rot.offsetZ * 4 - dir.offsetZ); this.makeExtra(world, x - rot.offsetX * 4 - dir.offsetX, y, z - rot.offsetZ * 4 - dir.offsetZ);
} }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
} }

View File

@ -1,6 +1,9 @@
package com.hbm.blocks.machine.albion; package com.hbm.blocks.machine.albion;
import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPADipole;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class BlockPADipole extends BlockDummyable { public class BlockPADipole extends BlockDummyable implements ITooltipProvider {
public BlockPADipole() { public BlockPADipole() {
super(Material.iron); super(Material.iron);
@ -49,4 +53,9 @@ public class BlockPADipole extends BlockDummyable {
this.makeExtra(world, x, y + 1, z + 1); this.makeExtra(world, x, y + 1, z + 1);
this.makeExtra(world, x, y + 1, z - 1); this.makeExtra(world, x, y + 1, z - 1);
} }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
} }

View File

@ -1,6 +1,9 @@
package com.hbm.blocks.machine.albion; package com.hbm.blocks.machine.albion;
import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPAQuadrupole;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class BlockPAQuadrupole extends BlockDummyable { public class BlockPAQuadrupole extends BlockDummyable implements ITooltipProvider {
public BlockPAQuadrupole() { public BlockPAQuadrupole() {
super(Material.iron); super(Material.iron);
@ -45,4 +49,9 @@ public class BlockPAQuadrupole extends BlockDummyable {
this.makeExtra(world, x, y + 1, z); this.makeExtra(world, x, y + 1, z);
this.makeExtra(world, x, y - 1, z); this.makeExtra(world, x, y - 1, z);
} }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
} }

View File

@ -1,6 +1,9 @@
package com.hbm.blocks.machine.albion; package com.hbm.blocks.machine.albion;
import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPARFC;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class BlockPARFC extends BlockDummyable { public class BlockPARFC extends BlockDummyable implements ITooltipProvider {
public BlockPARFC() { public BlockPARFC() {
super(Material.iron); super(Material.iron);
@ -48,4 +52,9 @@ public class BlockPARFC extends BlockDummyable {
this.makeExtra(world, x - dir.offsetX * 3, y - 1, z - dir.offsetZ * 3); this.makeExtra(world, x - dir.offsetX * 3, y - 1, z - dir.offsetZ * 3);
this.makeExtra(world, x, y - 1, z); this.makeExtra(world, x, y - 1, z);
} }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
} }

View File

@ -1,6 +1,9 @@
package com.hbm.blocks.machine.albion; package com.hbm.blocks.machine.albion;
import java.util.List;
import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.BlockDummyable;
import com.hbm.blocks.ITooltipProvider;
import com.hbm.lib.RefStrings; import com.hbm.lib.RefStrings;
import com.hbm.main.MainRegistry; import com.hbm.main.MainRegistry;
import com.hbm.tileentity.TileEntityProxyCombo; import com.hbm.tileentity.TileEntityProxyCombo;
@ -8,11 +11,12 @@ import com.hbm.tileentity.machine.albion.TileEntityPASource;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
public class BlockPASource extends BlockDummyable { public class BlockPASource extends BlockDummyable implements ITooltipProvider {
public BlockPASource() { public BlockPASource() {
super(Material.iron); super(Material.iron);
@ -50,4 +54,9 @@ public class BlockPASource extends BlockDummyable {
this.makeExtra(world, x - dir.offsetX + rot.offsetX * 2, y, z - dir.offsetZ + rot.offsetZ * 2); this.makeExtra(world, x - dir.offsetX + rot.offsetX * 2, y, z - dir.offsetZ + rot.offsetZ * 2);
this.makeExtra(world, x - dir.offsetX - rot.offsetX * 2, y, z - dir.offsetZ - rot.offsetZ * 2); this.makeExtra(world, x - dir.offsetX - rot.offsetX * 2, y, z - dir.offsetZ - rot.offsetZ * 2);
} }
@Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
addStandardInfo(stack, player, list, ext);
}
} }

View File

@ -21,11 +21,11 @@ import net.minecraft.item.ItemStack;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
public class SmeltingRecipes { public class SmeltingRecipes {
public static void AddSmeltingRec() public static void AddSmeltingRec()
{ {
GameRegistry.addSmelting(ModItems.glyphid_meat, new ItemStack(ModItems.glyphid_meat_grilled), 1.0F); GameRegistry.addSmelting(ModItems.glyphid_meat, new ItemStack(ModItems.glyphid_meat_grilled), 1.0F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_thorium), new ItemStack(ModItems.ingot_th232), 3.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_thorium), new ItemStack(ModItems.ingot_th232), 3.0F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium), new ItemStack(ModItems.ingot_uranium), 6.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium), new ItemStack(ModItems.ingot_uranium), 6.0F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium_scorched), new ItemStack(ModItems.ingot_uranium), 6.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_uranium_scorched), new ItemStack(ModItems.ingot_uranium), 6.0F);
@ -36,7 +36,7 @@ public class SmeltingRecipes {
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_copper), new ItemStack(ModItems.ingot_copper), 2.5F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_copper), new ItemStack(ModItems.ingot_copper), 2.5F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_tungsten), new ItemStack(ModItems.ingot_tungsten), 6.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_tungsten), new ItemStack(ModItems.ingot_tungsten), 6.0F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_tungsten), new ItemStack(ModItems.ingot_tungsten), 12.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_nether_tungsten), new ItemStack(ModItems.ingot_tungsten), 12.0F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_aluminium), new ItemStack(ModItems.ingot_aluminium), 2.5F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_aluminium), DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.CRYOLITE, 1), 2.5F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_lead), new ItemStack(ModItems.ingot_lead), 3.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_lead), new ItemStack(ModItems.ingot_lead), 3.0F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_beryllium), new ItemStack(ModItems.ingot_beryllium), 2.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_beryllium), new ItemStack(ModItems.ingot_beryllium), 2.0F);
GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_schrabidium), new ItemStack(ModItems.ingot_schrabidium), 128.0F); GameRegistry.addSmelting(Item.getItemFromBlock(ModBlocks.ore_schrabidium), new ItemStack(ModItems.ingot_schrabidium), 128.0F);
@ -46,7 +46,7 @@ public class SmeltingRecipes {
GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.IRON), new ItemStack(Items.iron_ingot, 16), 10.0F); GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.IRON), new ItemStack(Items.iron_ingot, 16), 10.0F);
GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.COPPER), new ItemStack(ModItems.ingot_copper, 16), 10.0F); GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.COPPER), new ItemStack(ModItems.ingot_copper, 16), 10.0F);
GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.ALUMINIUM), new ItemStack(ModItems.ingot_aluminium, 16), 10.0F); GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.ALUMINIUM), DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.CRYOLITE, 16), 10.0F);
GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.RAREEARTH), DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE, 16), 10.0F); GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.RAREEARTH), DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE, 16), 10.0F);
GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.COBALT), new ItemStack(ModItems.ingot_cobalt, 4), 10.0F); GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.ore_meteor, EnumMeteorType.COBALT), new ItemStack(ModItems.ingot_cobalt, 4), 10.0F);
@ -119,7 +119,7 @@ public class SmeltingRecipes {
GameRegistry.addSmelting(ModItems.rag_piss, new ItemStack(ModItems.rag), 0.1F); GameRegistry.addSmelting(ModItems.rag_piss, new ItemStack(ModItems.rag), 0.1F);
GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.TOBACCO), DictFrame.fromOne(ModItems.plant_item, EnumPlantType.TOBACCO), 0.1F); GameRegistry.addSmelting(DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.TOBACCO), DictFrame.fromOne(ModItems.plant_item, EnumPlantType.TOBACCO), 0.1F);
GameRegistry.addSmelting(ModItems.ball_fireclay, new ItemStack(ModItems.ingot_firebrick), 0.1F); GameRegistry.addSmelting(ModItems.ball_fireclay, new ItemStack(ModItems.ingot_firebrick), 0.1F);
//GameRegistry.addSmelting(Items.bone, new ItemStack(Items.slime_ball, 3), 0.0F); //GameRegistry.addSmelting(Items.bone, new ItemStack(Items.slime_ball, 3), 0.0F);
//GameRegistry.addSmelting(new ItemStack(Items.dye, 1, 15), new ItemStack(Items.slime_ball, 1), 0.0F); //GameRegistry.addSmelting(new ItemStack(Items.dye, 1, 15), new ItemStack(Items.slime_ball, 1), 0.0F);
GameRegistry.addSmelting(new ItemStack(Blocks.gravel, 1), new ItemStack(Blocks.cobblestone, 1), 0.0F); GameRegistry.addSmelting(new ItemStack(Blocks.gravel, 1), new ItemStack(Blocks.cobblestone, 1), 0.0F);
@ -133,7 +133,7 @@ public class SmeltingRecipes {
GameRegistry.addSmelting(new ItemStack(ModBlocks.sand_lead), new ItemStack(ModBlocks.glass_lead), 0.25F); GameRegistry.addSmelting(new ItemStack(ModBlocks.sand_lead), new ItemStack(ModBlocks.glass_lead), 0.25F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.ash_digamma), new ItemStack(ModBlocks.glass_ash), 10F); GameRegistry.addSmelting(new ItemStack(ModBlocks.ash_digamma), new ItemStack(ModBlocks.glass_ash), 10F);
GameRegistry.addSmelting(new ItemStack(ModBlocks.basalt), new ItemStack(ModBlocks.basalt_smooth), 0.1F); GameRegistry.addSmelting(new ItemStack(ModBlocks.basalt), new ItemStack(ModBlocks.basalt_smooth), 0.1F);
GameRegistry.addSmelting(ModItems.ingot_schraranium, new ItemStack(ModItems.nugget_schrabidium, 1), 2.0F); GameRegistry.addSmelting(ModItems.ingot_schraranium, new ItemStack(ModItems.nugget_schrabidium, 1), 2.0F);
GameRegistry.addSmelting(ModItems.lodestone, new ItemStack(ModItems.crystal_iron, 1), 5.0F); GameRegistry.addSmelting(ModItems.lodestone, new ItemStack(ModItems.crystal_iron, 1), 5.0F);
@ -169,14 +169,14 @@ public class SmeltingRecipes {
GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 0.0F); GameRegistry.addSmelting(ModItems.ingot_meteorite_forged, ItemHot.heatUp(new ItemStack(ModItems.ingot_meteorite_forged)), 0.0F);
GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 0.0F); GameRegistry.addSmelting(ModItems.blade_meteorite, ItemHot.heatUp(new ItemStack(ModItems.blade_meteorite)), 0.0F);
GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 0.0F); GameRegistry.addSmelting(ModItems.meteorite_sword, ItemHot.heatUp(new ItemStack(ModItems.meteorite_sword_seared)), 0.0F);
GameRegistry.addSmelting(new ItemStack(ModItems.scrap_plastic, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.ingot_polymer), 0.1F); GameRegistry.addSmelting(new ItemStack(ModItems.scrap_plastic, 1, OreDictionary.WILDCARD_VALUE), new ItemStack(ModItems.ingot_polymer), 0.1F);
for(EnumBedrockOre ore : EnumBedrockOre.values()) { for(EnumBedrockOre ore : EnumBedrockOre.values()) {
int i = ore.ordinal(); int i = ore.ordinal();
GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock, 1, i), new ItemStack(Blocks.cobblestone, 16), 0.1F); GameRegistry.addSmelting(new ItemStack(ModItems.ore_bedrock, 1, i), new ItemStack(Blocks.cobblestone, 16), 0.1F);
} }
for(int i = 0; i < 10; i++) for(int i = 0; i < 10; i++)
GameRegistry.addSmelting(new ItemStack(ModItems.ingot_steel_dusted, 1, i), ItemHot.heatUp(new ItemStack(ModItems.ingot_steel_dusted, 1, i)), 1.0F); GameRegistry.addSmelting(new ItemStack(ModItems.ingot_steel_dusted, 1, i), ItemHot.heatUp(new ItemStack(ModItems.ingot_steel_dusted, 1, i)), 1.0F);
} }

View File

@ -158,8 +158,6 @@ public class WeaponRecipes {
//Ammo assemblies //Ammo assemblies
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_flechette, 1), new Object[] { " L ", " L ", "LLL", 'L', PB.nugget() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.pellet_claws, 1), new Object[] { " X ", "X X", " XX", 'X', STEEL.plate() });
CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', GOLD.wireFine(), 'P', STEEL.plate(), 'S', STEEL.shell(), 'E', ModItems.ball_tatb }); CraftingManager.addRecipeAuto(new ItemStack(ModItems.assembly_nuke, 1), new Object[] { " WP", "SEP", " WP", 'W', GOLD.wireFine(), 'P', STEEL.plate(), 'S', STEEL.shell(), 'E', ModItems.ball_tatb });
//240mm Shells //240mm Shells

View File

@ -0,0 +1,37 @@
package com.hbm.handler.nei;
import java.util.Locale;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes;
import com.hbm.inventory.recipes.ParticleAcceleratorRecipes.ParticleAcceleratorRecipe;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
public class ParticleAcceleratorHandler extends NEIUniversalHandler {
public ParticleAcceleratorHandler() {
super(ModBlocks.pa_detector.getLocalizedName(), ModBlocks.pa_detector, ParticleAcceleratorRecipes.getRecipes());
}
@Override
public String getKey() {
return "ntmParticleAccelerator";
}
@Override
public void drawExtras(int recipe) {
RecipeSet rec = (RecipeSet) this.arecipes.get(recipe);
ParticleAcceleratorRecipe paRecipe = ParticleAcceleratorRecipes.getOutput(rec.input[0].item, rec.input[1].item);
if(paRecipe != null) {
FontRenderer fontRenderer = Minecraft.getMinecraft().fontRenderer;
String momentum = "Momentum: " + String.format(Locale.US, "%,d", paRecipe.momentum);
int side = 8;
fontRenderer.drawString(momentum, side, 52, 0x404040);
}
}
}

View File

@ -48,7 +48,7 @@ import net.minecraftforge.oredict.OreDictionary.OreRegisterEvent;
//the more i optimize this, the more it starts looking like gregtech //the more i optimize this, the more it starts looking like gregtech
@NotableComments @NotableComments
public class OreDictManager { public class OreDictManager {
/** Alternate, additional names for ore dict registration. Used mostly for DictGroups */ /** Alternate, additional names for ore dict registration. Used mostly for DictGroups */
private static final HashMap<String, HashSet<String>> reRegistration = new HashMap(); private static final HashMap<String, HashSet<String>> reRegistration = new HashMap();
@ -70,7 +70,7 @@ public class OreDictManager {
public static final String KEY_SAPLING = "treeSapling"; public static final String KEY_SAPLING = "treeSapling";
public static final String KEY_SAND = "sand"; public static final String KEY_SAND = "sand";
public static final String KEY_COBBLESTONE = "cobblestone"; public static final String KEY_COBBLESTONE = "cobblestone";
public static final String KEY_BLACK = "dyeBlack"; public static final String KEY_BLACK = "dyeBlack";
public static final String KEY_RED = "dyeRed"; public static final String KEY_RED = "dyeRed";
public static final String KEY_GREEN = "dyeGreen"; public static final String KEY_GREEN = "dyeGreen";
@ -155,45 +155,45 @@ public class OreDictManager {
/* /*
* STABLE * STABLE
*/ */
/** TITANIUM */ /** TITANIUM */
public static final DictFrame TI = new DictFrame("Titanium"); public static final DictFrame TI = new DictFrame("Titanium");
/** COPPER */ /** COPPER */
public static final DictFrame CU = new DictFrame("Copper"); public static final DictFrame CU = new DictFrame("Copper");
public static final DictFrame MINGRADE = new DictFrame("Mingrade"); public static final DictFrame MINGRADE = new DictFrame("Mingrade");
public static final DictFrame ALLOY = new DictFrame("AdvancedAlloy"); public static final DictFrame ALLOY = new DictFrame("AdvancedAlloy");
/** TUNGSTEN */ /** TUNGSTEN */
public static final DictFrame W = new DictFrame("Tungsten"); public static final DictFrame W = new DictFrame("Tungsten");
/** ALUMINUM */ /** ALUMINUM */
public static final DictFrame AL = new DictFrame("Aluminum"); public static final DictFrame AL = new DictFrame("Aluminum");
public static final DictFrame STEEL = new DictFrame("Steel"); public static final DictFrame STEEL = new DictFrame("Steel");
/** TECHNETIUM STEEL */ /** TECHNETIUM STEEL */
public static final DictFrame TCALLOY = new DictFrame("TcAlloy"); public static final DictFrame TCALLOY = new DictFrame("TcAlloy");
/** CADMIUM STEEL */ /** CADMIUM STEEL */
public static final DictFrame CDALLOY = new DictFrame("CdAlloy"); public static final DictFrame CDALLOY = new DictFrame("CdAlloy");
/** BISMUTH BRONZE */ /** BISMUTH BRONZE */
public static final DictFrame BBRONZE = new DictFrame("BismuthBronze"); public static final DictFrame BBRONZE = new DictFrame("BismuthBronze");
/** ARSENIC BRONZE */ /** ARSENIC BRONZE */
public static final DictFrame ABRONZE = new DictFrame("ArsenicBronze"); public static final DictFrame ABRONZE = new DictFrame("ArsenicBronze");
/** BISMUTH STRONTIUM CALCIUM COPPER OXIDE */ /** BISMUTH STRONTIUM CALCIUM COPPER OXIDE */
public static final DictFrame BSCCO = new DictFrame("BSCCO"); public static final DictFrame BSCCO = new DictFrame("BSCCO");
/** LEAD */ /** LEAD */
public static final DictFrame PB = new DictFrame("Lead"); public static final DictFrame PB = new DictFrame("Lead");
public static final DictFrame BI = new DictFrame("Bismuth"); public static final DictFrame BI = new DictFrame("Bismuth");
public static final DictFrame AS = new DictFrame("Arsenic"); public static final DictFrame AS = new DictFrame("Arsenic");
public static final DictFrame CA = new DictFrame("Calcium"); public static final DictFrame CA = new DictFrame("Calcium");
public static final DictFrame CD = new DictFrame("Cadmium"); public static final DictFrame CD = new DictFrame("Cadmium");
/** TANTALUM */ /** TANTALUM */
public static final DictFrame TA = new DictFrame("Tantalum"); public static final DictFrame TA = new DictFrame("Tantalum");
public static final DictFrame COLTAN = new DictFrame("Coltan"); public static final DictFrame COLTAN = new DictFrame("Coltan");
/** NIOBIUM */ /** NIOBIUM */
public static final DictFrame NB = new DictFrame("Niobium"); public static final DictFrame NB = new DictFrame("Niobium");
/** BERYLLIUM */ /** BERYLLIUM */
public static final DictFrame BE = new DictFrame("Beryllium"); public static final DictFrame BE = new DictFrame("Beryllium");
/** COBALT */ /** COBALT */
public static final DictFrame CO = new DictFrame("Cobalt"); public static final DictFrame CO = new DictFrame("Cobalt");
/** BORON */ /** BORON */
public static final DictFrame B = new DictFrame("Boron"); public static final DictFrame B = new DictFrame("Boron");
/** SILICON */ /** SILICON */
public static final DictFrame SI = new DictFrame("Silicon"); public static final DictFrame SI = new DictFrame("Silicon");
public static final DictFrame GRAPHITE = new DictFrame("Graphite"); public static final DictFrame GRAPHITE = new DictFrame("Graphite");
public static final DictFrame CARBON = new DictFrame("Carbon"); public static final DictFrame CARBON = new DictFrame("Carbon");
@ -221,11 +221,11 @@ public class OreDictManager {
/* /*
* DUST AND GEM ORES * DUST AND GEM ORES
*/ */
/** SULFUR */ /** SULFUR */
public static final DictFrame S = new DictFrame("Sulfur"); public static final DictFrame S = new DictFrame("Sulfur");
/** SALTPETER/NITER */ /** SALTPETER/NITER */
public static final DictFrame KNO = new DictFrame("Saltpeter"); public static final DictFrame KNO = new DictFrame("Saltpeter");
/** FLUORITE */ /** FLUORITE */
public static final DictFrame F = new DictFrame("Fluorite"); public static final DictFrame F = new DictFrame("Fluorite");
public static final DictFrame LIGNITE = new DictFrame("Lignite"); public static final DictFrame LIGNITE = new DictFrame("Lignite");
public static final DictFrame COALCOKE = new DictFrame("CoalCoke"); public static final DictFrame COALCOKE = new DictFrame("CoalCoke");
@ -241,10 +241,12 @@ public class OreDictManager {
public static final DictFrame MALACHITE = new DictFrame("Malachite"); public static final DictFrame MALACHITE = new DictFrame("Malachite");
public static final DictFrame LIMESTONE = new DictFrame("Limestone"); public static final DictFrame LIMESTONE = new DictFrame("Limestone");
public static final DictFrame SLAG = new DictFrame("Slag"); public static final DictFrame SLAG = new DictFrame("Slag");
public static final DictFrame BAUXITE = new DictFrame("Bauxite");
public static final DictFrame CRYOLITE = new DictFrame("Cryolite");
/* /*
* HAZARDS, MISC * HAZARDS, MISC
*/ */
/** LITHIUM */ /** LITHIUM */
public static final DictFrame LI = new DictFrame("Lithium"); public static final DictFrame LI = new DictFrame("Lithium");
/** SODIUM */ /** SODIUM */
public static final DictFrame NA = new DictFrame("Sodium"); public static final DictFrame NA = new DictFrame("Sodium");
@ -266,28 +268,28 @@ public class OreDictManager {
* RARE EARTHS * RARE EARTHS
*/ */
public static final DictFrame RAREEARTH = new DictFrame("RareEarth"); public static final DictFrame RAREEARTH = new DictFrame("RareEarth");
/** LANTHANUM */ /** LANTHANUM */
public static final DictFrame LA = new DictFrame("Lanthanum"); public static final DictFrame LA = new DictFrame("Lanthanum");
/** ZIRCONIUM */ /** ZIRCONIUM */
public static final DictFrame ZR = new DictFrame("Zirconium"); public static final DictFrame ZR = new DictFrame("Zirconium");
/** NEODYMIUM */ /** NEODYMIUM */
public static final DictFrame ND = new DictFrame("Neodymium"); public static final DictFrame ND = new DictFrame("Neodymium");
/** CERIUM */ /** CERIUM */
public static final DictFrame CE = new DictFrame("Cerium"); public static final DictFrame CE = new DictFrame("Cerium");
/* /*
* NITAN * NITAN
*/ */
/** IODINE */ /** IODINE */
public static final DictFrame I = new DictFrame("Iodine"); public static final DictFrame I = new DictFrame("Iodine");
/** ASTATINE */ /** ASTATINE */
public static final DictFrame AT = new DictFrame("Astatine"); public static final DictFrame AT = new DictFrame("Astatine");
/** CAESIUM */ /** CAESIUM */
public static final DictFrame CS = new DictFrame("Caesium"); public static final DictFrame CS = new DictFrame("Caesium");
/** STRONTIUM */ /** STRONTIUM */
public static final DictFrame ST = new DictFrame("Strontium"); public static final DictFrame ST = new DictFrame("Strontium");
/** BROMINE */ /** BROMINE */
public static final DictFrame BR = new DictFrame("Bromine"); public static final DictFrame BR = new DictFrame("Bromine");
/** TENNESSINE */ /** TENNESSINE */
public static final DictFrame TS = new DictFrame("Tennessine") ; public static final DictFrame TS = new DictFrame("Tennessine") ;
/* /*
* FISSION FRAGMENTS * FISSION FRAGMENTS
@ -298,12 +300,12 @@ public class OreDictManager {
public static final DictFrame XE135 = new DictFrame("Xenon135", "Xe135"); public static final DictFrame XE135 = new DictFrame("Xenon135", "Xe135");
public static final DictFrame CS137 = new DictFrame("Caesium137", "Cs137"); public static final DictFrame CS137 = new DictFrame("Caesium137", "Cs137");
public static final DictFrame AT209 = new DictFrame("Astatine209", "At209"); public static final DictFrame AT209 = new DictFrame("Astatine209", "At209");
/* /*
* COLLECTIONS * COLLECTIONS
*/ */
/** Any form of elastic polymer */ /** Any form of elastic polymer */
public static final DictGroup ANY_RUBBER = new DictGroup("AnyRubber", LATEX, RUBBER); public static final DictGroup ANY_RUBBER = new DictGroup("AnyRubber", LATEX, RUBBER);
/** Any post oil polymer like teflon ("polymer") or bakelite */ /** Any post oil polymer like teflon ("polymer") or bakelite */
public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just the secondary prefix, and that shape prefixes are applicable public static final DictGroup ANY_PLASTIC = new DictGroup("AnyPlastic", POLYMER, BAKELITE); //using the Any prefix means that it's just the secondary prefix, and that shape prefixes are applicable
/** Any post vacuum polymer like PET or PVC */ /** Any post vacuum polymer like PET or PVC */
@ -327,7 +329,7 @@ public class OreDictManager {
public static final DictFrame ANY_BISMOID = new DictFrame("AnyBismoid"); public static final DictFrame ANY_BISMOID = new DictFrame("AnyBismoid");
public static final DictFrame ANY_ASH = new DictFrame("Ash"); public static final DictFrame ANY_ASH = new DictFrame("Ash");
public static void registerOres() { public static void registerOres() {
/* /*
@ -341,7 +343,7 @@ public class OreDictManager {
QUARTZ.dust(powder_quartz); QUARTZ.dust(powder_quartz);
DIAMOND.dust(powder_diamond).ore(gravel_diamond, ore_sellafield_diamond); DIAMOND.dust(powder_diamond).ore(gravel_diamond, ore_sellafield_diamond);
EMERALD.dust(powder_emerald).ore(ore_sellafield_emerald); EMERALD.dust(powder_emerald).ore(ore_sellafield_emerald);
/* /*
* RADIOACTIVE * RADIOACTIVE
*/ */
@ -373,7 +375,7 @@ public class OreDictManager {
SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium); SRN .rad(HazardRegistry.sr) .blinding(50F) .ingot(ingot_schraranium) .block(block_schraranium);
GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336); GH336 .rad(HazardRegistry.gh336) .nugget(nugget_gh336) .billet(billet_gh336) .ingot(ingot_gh336);
MUD .rad(HazardRegistry.mud) .ingot(ingot_mud); MUD .rad(HazardRegistry.mud) .ingot(ingot_mud);
/* /*
* STABLE * STABLE
*/ */
@ -444,8 +446,10 @@ public class OreDictManager {
HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE)); HEMATITE .ore(fromOne(stone_resource, EnumStoneType.HEMATITE));
MALACHITE .ingot(DictFrame.fromOne(chunk_ore, EnumChunkType.MALACHITE)) .ore(fromOne(stone_resource, EnumStoneType.MALACHITE)); MALACHITE .ingot(DictFrame.fromOne(chunk_ore, EnumChunkType.MALACHITE)) .ore(fromOne(stone_resource, EnumStoneType.MALACHITE));
LIMESTONE .dust(powder_limestone) .ore(fromOne(stone_resource, EnumStoneType.LIMESTONE)); LIMESTONE .dust(powder_limestone) .ore(fromOne(stone_resource, EnumStoneType.LIMESTONE));
BAUXITE .gem(fromOne(stone_resource, EnumStoneType.BAUXITE));
CRYOLITE .crystal(fromOne(chunk_ore, EnumChunkType.CRYOLITE));
SLAG .block(block_slag); SLAG .block(block_slag);
/* /*
* HAZARDS, MISC * HAZARDS, MISC
*/ */
@ -457,7 +461,7 @@ public class OreDictManager {
*/ */
P_WHITE .hot(5) .ingot(ingot_phosphorus) .block(block_white_phosphorus); P_WHITE .hot(5) .ingot(ingot_phosphorus) .block(block_white_phosphorus);
P_RED .dust(powder_fire) .block(block_red_phosphorus); P_RED .dust(powder_fire) .block(block_red_phosphorus);
/* /*
* RARE METALS * RARE METALS
*/ */
@ -476,7 +480,7 @@ public class OreDictManager {
ZR .nugget(nugget_zirconium) .ingot(ingot_zirconium) .billet(billet_zirconium) .dust(powder_zirconium) .block(block_zirconium) .ore(ore_depth_zirconium); ZR .nugget(nugget_zirconium) .ingot(ingot_zirconium) .billet(billet_zirconium) .dust(powder_zirconium) .block(block_zirconium) .ore(ore_depth_zirconium);
ND .nugget(fragment_neodymium) .dustSmall(powder_neodymium_tiny) .dust(powder_neodymium) .ore(ore_depth_nether_neodymium) .oreNether(ore_depth_nether_neodymium); ND .nugget(fragment_neodymium) .dustSmall(powder_neodymium_tiny) .dust(powder_neodymium) .ore(ore_depth_nether_neodymium) .oreNether(ore_depth_nether_neodymium);
CE .nugget(fragment_cerium) .dustSmall(powder_cerium_tiny) .dust(powder_cerium); CE .nugget(fragment_cerium) .dustSmall(powder_cerium_tiny) .dust(powder_cerium);
/* /*
* NITAN * NITAN
*/ */
@ -496,7 +500,7 @@ public class OreDictManager {
XE135 .rad(HazardRegistry.xe135) .hot(10F) .dustSmall(powder_xe135_tiny) .dust(powder_xe135); XE135 .rad(HazardRegistry.xe135) .hot(10F) .dustSmall(powder_xe135_tiny) .dust(powder_xe135);
CS137 .rad(HazardRegistry.cs137) .hot(3F) .hydro(3F) .dustSmall(powder_cs137_tiny) .dust(powder_cs137); CS137 .rad(HazardRegistry.cs137) .hot(3F) .hydro(3F) .dustSmall(powder_cs137_tiny) .dust(powder_cs137);
AT209 .rad(HazardRegistry.at209) .hot(20F) .dust(powder_at209); AT209 .rad(HazardRegistry.at209) .hot(20F) .dust(powder_at209);
/* /*
* COLLECTIONS * COLLECTIONS
*/ */
@ -566,7 +570,7 @@ public class OreDictManager {
if(mat.autogen.contains(MaterialShapes.STOCK)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.STOCK.name() + name, new ItemStack(ModItems.part_stock, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.STOCK)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.STOCK.name() + name, new ItemStack(ModItems.part_stock, 1, mat.id));
if(mat.autogen.contains(MaterialShapes.GRIP)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.GRIP.name() + name, new ItemStack(ModItems.part_grip, 1, mat.id)); if(mat.autogen.contains(MaterialShapes.GRIP)) for(String name : mat.names) OreDictionary.registerOre(MaterialShapes.GRIP.name() + name, new ItemStack(ModItems.part_grip, 1, mat.id));
} }
for(EnumBedrockOre ore : EnumBedrockOre.values()) { for(EnumBedrockOre ore : EnumBedrockOre.values()) {
OreDictionary.registerOre("ore" + ore.oreName, new ItemStack(ModItems.ore_enriched, 1, ore.ordinal())); OreDictionary.registerOre("ore" + ore.oreName, new ItemStack(ModItems.ore_enriched, 1, ore.ordinal()));
} }
@ -574,17 +578,17 @@ public class OreDictManager {
OreDictionary.registerOre("itemRubber", ingot_rubber); OreDictionary.registerOre("itemRubber", ingot_rubber);
OreDictionary.registerOre("coalCoke", fromOne(coke, EnumCokeType.COAL)); OreDictionary.registerOre("coalCoke", fromOne(coke, EnumCokeType.COAL));
for(String name : new String[] {"fuelCoke", "coke"}) { for(String name : new String[] {"fuelCoke", "coke"}) {
OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.COAL)); OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.COAL));
OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.LIGNITE)); OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.LIGNITE));
OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.PETROLEUM)); OreDictionary.registerOre(name, fromOne(coke, EnumCokeType.PETROLEUM));
} }
OreDictionary.registerOre("briquetteCoal", fromOne(briquette, EnumBriquetteType.COAL)); OreDictionary.registerOre("briquetteCoal", fromOne(briquette, EnumBriquetteType.COAL));
OreDictionary.registerOre("briquetteLignite", fromOne(briquette, EnumBriquetteType.LIGNITE)); OreDictionary.registerOre("briquetteLignite", fromOne(briquette, EnumBriquetteType.LIGNITE));
OreDictionary.registerOre("briquetteWood", fromOne(briquette, EnumBriquetteType.WOOD)); OreDictionary.registerOre("briquetteWood", fromOne(briquette, EnumBriquetteType.WOOD));
OreDictionary.registerOre(getReflector(), neutron_reflector); OreDictionary.registerOre(getReflector(), neutron_reflector);
OreDictionary.registerOre("logWood", pink_log); OreDictionary.registerOre("logWood", pink_log);
@ -595,13 +599,13 @@ public class OreDictManager {
OreDictionary.registerOre("slabWoodPink", pink_slab); OreDictionary.registerOre("slabWoodPink", pink_slab);
OreDictionary.registerOre("stairWood", pink_stairs); OreDictionary.registerOre("stairWood", pink_stairs);
OreDictionary.registerOre("stairWoodPink", pink_stairs); OreDictionary.registerOre("stairWoodPink", pink_stairs);
String[] dyes = { "Black", "Red", "Green", "Brown", "Blue", "Purple", "Cyan", "LightGray", "Gray", "Pink", "Lime", "Yellow", "LightBlue", "Magenta", "Orange", "White" }; String[] dyes = { "Black", "Red", "Green", "Brown", "Blue", "Purple", "Cyan", "LightGray", "Gray", "Pink", "Lime", "Yellow", "LightBlue", "Magenta", "Orange", "White" };
for(int i = 0; i < 16; i++) { for(int i = 0; i < 16; i++) {
String dyeName = "dye" + dyes[i]; String dyeName = "dye" + dyes[i];
OreDictionary.registerOre(dyeName, new ItemStack(ModItems.chemical_dye, 1, i)); OreDictionary.registerOre(dyeName, new ItemStack(ModItems.chemical_dye, 1, i));
OreDictionary.registerOre(dyeName, new ItemStack(ModItems.crayon, 1, i)); OreDictionary.registerOre(dyeName, new ItemStack(ModItems.crayon, 1, i));
} }
OreDictionary.registerOre("dye", new ItemStack(chemical_dye, 1, OreDictionary.WILDCARD_VALUE)); OreDictionary.registerOre("dye", new ItemStack(chemical_dye, 1, OreDictionary.WILDCARD_VALUE));
@ -651,7 +655,7 @@ public class OreDictManager {
OreDictionary.registerOre("container1000lubricant", bdcl); OreDictionary.registerOre("container1000lubricant", bdcl);
OreDictionary.registerOre("itemSilicon", billet_silicon); OreDictionary.registerOre("itemSilicon", billet_silicon);
for(NTMMaterial mat : Mats.orderedList) { for(NTMMaterial mat : Mats.orderedList) {
if(mat.autogen.contains(MaterialShapes.FRAGMENT)) { if(mat.autogen.contains(MaterialShapes.FRAGMENT)) {
String name = mat.names[0]; String name = mat.names[0];
@ -663,15 +667,15 @@ public class OreDictManager {
else MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), new ItemStack(ModItems.nothing)); else MineralRecipes.add9To1(mat.make(ModItems.bedrock_ore_fragment), new ItemStack(ModItems.nothing));
} }
} }
MaterialShapes.registerCompatShapes(); MaterialShapes.registerCompatShapes();
compensateMojangSpaghettiBullshit(); compensateMojangSpaghettiBullshit();
} }
public static String getReflector() { public static String getReflector() {
return GeneralConfig.enableReflectorCompat ? "plateDenseLead" : "plateTungCar"; //let's just mangle the name into "tungCar" so that it can't conflict with anything ever return GeneralConfig.enableReflectorCompat ? "plateDenseLead" : "plateTungCar"; //let's just mangle the name into "tungCar" so that it can't conflict with anything ever
} }
public static void registerGroups() { public static void registerGroups() {
ANY_RUBBER.addPrefix(INGOT, true); ANY_RUBBER.addPrefix(INGOT, true);
ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true).addPrefix(GRIP, true).addPrefix(STOCK, true); ANY_PLASTIC.addPrefix(INGOT, true).addPrefix(DUST, true).addPrefix(BLOCK, true).addPrefix(GRIP, true).addPrefix(STOCK, true);
@ -681,24 +685,24 @@ public class OreDictManager {
ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(CASTPLATE, true).addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true); ANY_BISMOIDBRONZE.addPrefix(INGOT, true).addPrefix(CASTPLATE, true).addPrefix(LIGHTBARREL, true).addPrefix(HEAVYBARREL, true).addPrefix(LIGHTRECEIVER, true).addPrefix(HEAVYRECEIVER, true);
ANY_TAR.addPrefix(ANY, false); ANY_TAR.addPrefix(ANY, false);
} }
private static boolean recursionBrake = false; private static boolean recursionBrake = false;
@SubscribeEvent @SubscribeEvent
public void onRegisterOre(OreRegisterEvent event) { public void onRegisterOre(OreRegisterEvent event) {
if(recursionBrake) return; if(recursionBrake) return;
recursionBrake = true; recursionBrake = true;
HashSet<String> strings = reRegistration.get(event.Name); HashSet<String> strings = reRegistration.get(event.Name);
if(strings != null) { if(strings != null) {
for(String name : strings) { for(String name : strings) {
OreDictionary.registerOre(name, event.Ore); OreDictionary.registerOre(name, event.Ore);
MainRegistry.logger.info("Re-registration for " + event.Name + " to " + name); MainRegistry.logger.info("Re-registration for " + event.Name + " to " + name);
} }
} }
recursionBrake = false; recursionBrake = false;
if(event.Name.startsWith("ingot") || event.Name.startsWith("ore") || event.Name.startsWith("plate") || event.Name.startsWith("block")) { if(event.Name.startsWith("ingot") || event.Name.startsWith("ore") || event.Name.startsWith("plate") || event.Name.startsWith("block")) {
@ -707,7 +711,7 @@ public class OreDictManager {
} }
public static final HashSet<ComparableStack> arcSmeltable = new HashSet(); public static final HashSet<ComparableStack> arcSmeltable = new HashSet();
/** Vanilla item ore dict registration events never actually register in the ODM because vanilla items are registered so early that the ODM event handler doesn't exist yet. */ /** Vanilla item ore dict registration events never actually register in the ODM because vanilla items are registered so early that the ODM event handler doesn't exist yet. */
public static void compensateMojangSpaghettiBullshit() { public static void compensateMojangSpaghettiBullshit() {
@ -730,12 +734,12 @@ public class OreDictManager {
arcSmeltable.add(new ComparableStack(Items.brick)); arcSmeltable.add(new ComparableStack(Items.brick));
arcSmeltable.add(new ComparableStack(Items.netherbrick)); arcSmeltable.add(new ComparableStack(Items.netherbrick));
} }
public static class DictFrame { public static class DictFrame {
public String[] mats; public String[] mats;
float hazMult = 1.0F; float hazMult = 1.0F;
List<HazardEntry> hazards = new ArrayList(); List<HazardEntry> hazards = new ArrayList();
public DictFrame(String... mats) { public DictFrame(String... mats) {
this.mats = mats; this.mats = mats;
} }
@ -772,14 +776,14 @@ public class OreDictManager {
public String stock() { return STOCK.name() + mats[0]; } public String stock() { return STOCK.name() + mats[0]; }
public String grip() { return GRIP.name() + mats[0]; } public String grip() { return GRIP.name() + mats[0]; }
public String[] all(MaterialShapes shape) { return appendToAll(shape.prefixes); } public String[] all(MaterialShapes shape) { return appendToAll(shape.prefixes); }
/** Returns cast (triple) plates if 528 mode is enabled or normal plates if not */ /** Returns cast (triple) plates if 528 mode is enabled or normal plates if not */
public String plate528() { return GeneralConfig.enable528 ? plateCast() : plate(); } public String plate528() { return GeneralConfig.enable528 ? plateCast() : plate(); }
private String[] appendToAll(String... prefix) { private String[] appendToAll(String... prefix) {
String[] names = new String[mats.length * prefix.length]; String[] names = new String[mats.length * prefix.length];
for(int i = 0; i < mats.length; i++) { for(int i = 0; i < mats.length; i++) {
for(int j = 0; j < prefix.length; j++) { for(int j = 0; j < prefix.length; j++) {
names[i * prefix.length + j] = prefix[j] + mats[i]; names[i * prefix.length + j] = prefix[j] + mats[i];
@ -793,12 +797,12 @@ public class OreDictManager {
public DictFrame blinding(float time) { return this.haz(new HazardEntry(HazardRegistry.BLINDING, time)); } public DictFrame blinding(float time) { return this.haz(new HazardEntry(HazardRegistry.BLINDING, time)); }
public DictFrame asbestos(float asb) { return this.haz(new HazardEntry(HazardRegistry.ASBESTOS, asb)); } public DictFrame asbestos(float asb) { return this.haz(new HazardEntry(HazardRegistry.ASBESTOS, asb)); }
public DictFrame hydro(float h) { return this.haz(new HazardEntry(HazardRegistry.HYDROACTIVE, h)); } public DictFrame hydro(float h) { return this.haz(new HazardEntry(HazardRegistry.HYDROACTIVE, h)); }
public DictFrame haz(HazardEntry hazard) { public DictFrame haz(HazardEntry hazard) {
hazards.add(hazard); hazards.add(hazard);
return this; return this;
} }
/** Returns an ItemStack composed of the supplied item with the meta being the enum's ordinal. Purely syntactic candy */ /** Returns an ItemStack composed of the supplied item with the meta being the enum's ordinal. Purely syntactic candy */
public static ItemStack fromOne(Item item, Enum en) { public static ItemStack fromOne(Item item, Enum en) {
return new ItemStack(item, 1, en.ordinal()); return new ItemStack(item, 1, en.ordinal());
@ -816,7 +820,7 @@ public class OreDictManager {
public static Object[] fromAll(Item item, Class<? extends Enum> en) { public static Object[] fromAll(Item item, Class<? extends Enum> en) {
Enum[] vals = en.getEnumConstants(); Enum[] vals = en.getEnumConstants();
Object[] stacks = new Object[vals.length]; Object[] stacks = new Object[vals.length];
for(int i = 0; i < vals.length; i++) { for(int i = 0; i < vals.length; i++) {
stacks[i] = new ItemStack(item, 1, vals[i].ordinal()); stacks[i] = new ItemStack(item, 1, vals[i].ordinal());
} }
@ -825,13 +829,13 @@ public class OreDictManager {
public static Object[] fromAll(Block block, Class<? extends Enum> en) { public static Object[] fromAll(Block block, Class<? extends Enum> en) {
Enum[] vals = en.getEnumConstants(); Enum[] vals = en.getEnumConstants();
Object[] stacks = new Object[vals.length]; Object[] stacks = new Object[vals.length];
for(int i = 0; i < vals.length; i++) { for(int i = 0; i < vals.length; i++) {
stacks[i] = new ItemStack(block, 1, vals[i].ordinal()); stacks[i] = new ItemStack(block, 1, vals[i].ordinal());
} }
return stacks; return stacks;
} }
public DictFrame any(Object... thing) { public DictFrame any(Object... thing) {
return makeObject(ANY, thing); return makeObject(ANY, thing);
} }
@ -871,7 +875,7 @@ public class OreDictManager {
hazMult = HazardRegistry.billet; hazMult = HazardRegistry.billet;
return makeObject(BILLET, billet); return makeObject(BILLET, billet);
} }
public DictFrame block(Object... block) { public DictFrame block(Object... block) {
hazMult = HazardRegistry.block; hazMult = HazardRegistry.block;
return makeObject(BLOCK, block); return makeObject(BLOCK, block);
@ -886,17 +890,17 @@ public class OreDictManager {
} }
public DictFrame makeObject(MaterialShapes shape, Object... objects) { public DictFrame makeObject(MaterialShapes shape, Object... objects) {
String tag = shape.name(); String tag = shape.name();
for(Object o : objects) { for(Object o : objects) {
if(o instanceof Item) registerStack(tag, new ItemStack((Item) o)); if(o instanceof Item) registerStack(tag, new ItemStack((Item) o));
if(o instanceof Block) registerStack(tag, new ItemStack((Block) o)); if(o instanceof Block) registerStack(tag, new ItemStack((Block) o));
if(o instanceof ItemStack) registerStack(tag, (ItemStack) o); if(o instanceof ItemStack) registerStack(tag, (ItemStack) o);
} }
return this; return this;
} }
public DictFrame makeItem(String tag, Item... items) { public DictFrame makeItem(String tag, Item... items) {
for(Item i : items) registerStack(tag, new ItemStack(i)); for(Item i : items) registerStack(tag, new ItemStack(i));
return this; return this;
@ -909,26 +913,26 @@ public class OreDictManager {
for(Block b : blocks) registerStack(tag, new ItemStack(b)); for(Block b : blocks) registerStack(tag, new ItemStack(b));
return this; return this;
} }
public static void registerHazards(List<HazardEntry> hazards, float hazMult, String dictKey) { public static void registerHazards(List<HazardEntry> hazards, float hazMult, String dictKey) {
if(!hazards.isEmpty() && hazMult > 0F) { if(!hazards.isEmpty() && hazMult > 0F) {
HazardData data = new HazardData().setMutex(0b1); HazardData data = new HazardData().setMutex(0b1);
for(HazardEntry hazard : hazards) { for(HazardEntry hazard : hazards) {
data.addEntry(hazard.clone(hazMult)); data.addEntry(hazard.clone(hazMult));
} }
HazardSystem.register(dictKey, data); HazardSystem.register(dictKey, data);
} }
} }
public void registerStack(String tag, ItemStack stack) { public void registerStack(String tag, ItemStack stack) {
for(String mat : mats) { for(String mat : mats) {
OreDictionary.registerOre(tag + mat, stack); OreDictionary.registerOre(tag + mat, stack);
registerHazards(hazards, hazMult, tag + mat); registerHazards(hazards, hazMult, tag + mat);
} }
/* /*
* Fix for a small oddity in nuclearcraft: many radioactive elements do not have an ore prefix and the sizes * Fix for a small oddity in nuclearcraft: many radioactive elements do not have an ore prefix and the sizes
* seem generally inconsistent (TH and U are 20 "tiny"s per ingot while boron is 12), so we assume those to be ingots. * seem generally inconsistent (TH and U are 20 "tiny"s per ingot while boron is 12), so we assume those to be ingots.
@ -940,12 +944,12 @@ public class OreDictManager {
} }
} }
} }
public static class DictGroup { public static class DictGroup {
private String groupName; private String groupName;
private HashSet<String> names = new HashSet(); private HashSet<String> names = new HashSet();
public DictGroup(String groupName) { public DictGroup(String groupName) {
this.groupName = groupName; this.groupName = groupName;
} }
@ -957,7 +961,7 @@ public class OreDictManager {
this(groupName); this(groupName);
this.addFrames(frames); this.addFrames(frames);
} }
public DictGroup addNames(String... names) { public DictGroup addNames(String... names) {
for(String mat : names) this.names.add(mat); for(String mat : names) this.names.add(mat);
return this; return this;
@ -966,22 +970,22 @@ public class OreDictManager {
for(DictFrame frame : frames) this.addNames(frame.mats); for(DictFrame frame : frames) this.addNames(frame.mats);
return this; return this;
} }
/** /**
* Will add a reregistration entry for every mat name of every added DictFrame for the given prefix * Will add a reregistration entry for every mat name of every added DictFrame for the given prefix
* @param prefix The prefix of both the input and result of the reregistration * @param prefix The prefix of both the input and result of the reregistration
* @return * @return
*/ */
public DictGroup addPrefix(MaterialShapes shape, boolean inputPrefix) { public DictGroup addPrefix(MaterialShapes shape, boolean inputPrefix) {
String prefix = shape.name(); String prefix = shape.name();
String group = prefix + groupName; String group = prefix + groupName;
for(String name : names) { for(String name : names) {
String original = (inputPrefix ? prefix : "") + name; String original = (inputPrefix ? prefix : "") + name;
addReRegistration(original, group); addReRegistration(original, group);
} }
return this; return this;
} }
/** /**
@ -991,12 +995,12 @@ public class OreDictManager {
* @return * @return
*/ */
public DictGroup addFixed(String prefix, String original) { public DictGroup addFixed(String prefix, String original) {
String group = prefix + groupName; String group = prefix + groupName;
addReRegistration(original, group); addReRegistration(original, group);
return this; return this;
} }
public String any() { return ANY.name() + groupName; } public String any() { return ANY.name() + groupName; }
public String nugget() { return NUGGET.name() + groupName; } public String nugget() { return NUGGET.name() + groupName; }
public String tiny() { return TINY.name() + groupName; } public String tiny() { return TINY.name() + groupName; }
@ -1023,16 +1027,16 @@ public class OreDictManager {
public String stock() { return STOCK.name() + groupName; } public String stock() { return STOCK.name() + groupName; }
public String grip() { return GRIP.name() + groupName; } public String grip() { return GRIP.name() + groupName; }
} }
private static void addReRegistration(String original, String additional) { private static void addReRegistration(String original, String additional) {
HashSet<String> strings = reRegistration.get(original); HashSet<String> strings = reRegistration.get(original);
if(strings == null) if(strings == null)
strings = new HashSet(); strings = new HashSet();
strings.add(additional); strings.add(additional);
reRegistration.put(original, strings); reRegistration.put(original, strings);
} }
} }

View File

@ -183,6 +183,10 @@ public class Fluids {
public static FluidType STELLAR_FLUX; public static FluidType STELLAR_FLUX;
public static FluidType VITRIOL; public static FluidType VITRIOL;
public static FluidType SLOP; public static FluidType SLOP;
public static FluidType LYE;
public static FluidType SODIUM_ALUMINATE;
public static FluidType BAUXITE_SOLUTION;
public static FluidType ALUMINA;
/* Lagacy names for compatibility purposes */ /* Lagacy names for compatibility purposes */
@Deprecated public static FluidType ACID; //JAOPCA uses this, apparently @Deprecated public static FluidType ACID; //JAOPCA uses this, apparently
@ -390,7 +394,11 @@ public class Fluids {
LEAD_HOT = new FluidType("LEAD_HOT", 0x776563, 4, 0, 0, EnumSymbol.NONE).setTemp(1500).addTraits(LIQUID, VISCOUS); LEAD_HOT = new FluidType("LEAD_HOT", 0x776563, 4, 0, 0, EnumSymbol.NONE).setTemp(1500).addTraits(LIQUID, VISCOUS);
PERFLUOROMETHYL = new FluidType("PERFLUOROMETHYL", 0xBDC8DC, 1, 0, 1, EnumSymbol.NONE).setTemp(15).addTraits(LIQUID); PERFLUOROMETHYL = new FluidType("PERFLUOROMETHYL", 0xBDC8DC, 1, 0, 1, EnumSymbol.NONE).setTemp(15).addTraits(LIQUID);
PERFLUOROMETHYL_COLD = new FluidType("PERFLUOROMETHYL_COLD",0x99DADE, 1, 0, 1, EnumSymbol.NONE).setTemp(-150).addTraits(LIQUID); PERFLUOROMETHYL_COLD = new FluidType("PERFLUOROMETHYL_COLD",0x99DADE, 1, 0, 1, EnumSymbol.NONE).setTemp(-150).addTraits(LIQUID);
PERFLUOROMETHYL_HOT = new FluidType(146, "PERFLUOROMETHYL_HOT",0xB899DE, 1, 0, 1, EnumSymbol.NONE).setTemp(250).addTraits(LIQUID); PERFLUOROMETHYL_HOT = new FluidType("PERFLUOROMETHYL_HOT",0xB899DE, 1, 0, 1, EnumSymbol.NONE).setTemp(250).addTraits(LIQUID);
LYE = new FluidType("LYE", 0xFFECCC, 3, 0, 1, EnumSymbol.ACID).addTraits(new FT_Corrosive(40), LIQUID);
SODIUM_ALUMINATE = new FluidType("SODIUM_ALUMINATE", 0xFFD191, 3, 0, 1, EnumSymbol.ACID).addTraits(new FT_Corrosive(30), LIQUID);
BAUXITE_SOLUTION = new FluidType("BAUXITE_SOLUTION", 0xE2560F, 3, 0, 3, EnumSymbol.ACID).addTraits(new FT_Corrosive(40), LIQUID, VISCOUS);
ALUMINA = new FluidType(150,"ALUMINA", 0xDDFFFF, 0, 0, 0, EnumSymbol.NONE).addTraits(LIQUID);
// ^ ^ ^ ^ ^ ^ ^ ^ // ^ ^ ^ ^ ^ ^ ^ ^
//ADD NEW FLUIDS HERE //ADD NEW FLUIDS HERE
@ -534,8 +542,12 @@ public class Fluids {
metaOrder.add(POTASSIUM_CHLORIDE); metaOrder.add(POTASSIUM_CHLORIDE);
metaOrder.add(CALCIUM_CHLORIDE); metaOrder.add(CALCIUM_CHLORIDE);
metaOrder.add(CALCIUM_SOLUTION); metaOrder.add(CALCIUM_SOLUTION);
metaOrder.add(SODIUM_ALUMINATE);
metaOrder.add(BAUXITE_SOLUTION);
metaOrder.add(ALUMINA);
//solutions and working fluids //solutions and working fluids
metaOrder.add(FRACKSOL); metaOrder.add(FRACKSOL);
metaOrder.add(LYE);
//the fun guys //the fun guys
metaOrder.add(PHOSGENE); metaOrder.add(PHOSGENE);
metaOrder.add(MUSTARDGAS); metaOrder.add(MUSTARDGAS);

View File

@ -38,7 +38,7 @@ public class GUIPADetector extends GuiInfoContainer {
protected void drawGuiContainerForegroundLayer( int i, int j) { protected void drawGuiContainerForegroundLayer( int i, int j) {
String name = this.source.hasCustomInventoryName() ? this.source.getInventoryName() : I18n.format(this.source.getInventoryName()); String name = this.source.hasCustomInventoryName() ? this.source.getInventoryName() : I18n.format(this.source.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 9, 6, 4210752); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 9, 4, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
this.fontRendererObj.drawString(EnumChatFormatting.AQUA + "/123K", 136, 22, 4210752); this.fontRendererObj.drawString(EnumChatFormatting.AQUA + "/123K", 136, 22, 4210752);

View File

@ -1,5 +1,7 @@
package com.hbm.inventory.gui; package com.hbm.inventory.gui;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale; import java.util.Locale;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@ -9,6 +11,7 @@ import com.hbm.lib.RefStrings;
import com.hbm.packet.PacketDispatcher; import com.hbm.packet.PacketDispatcher;
import com.hbm.packet.toserver.NBTControlPacket; import com.hbm.packet.toserver.NBTControlPacket;
import com.hbm.tileentity.machine.albion.TileEntityPASource; import com.hbm.tileentity.machine.albion.TileEntityPASource;
import com.hbm.util.I18nUtil;
import net.minecraft.client.Minecraft; import net.minecraft.client.Minecraft;
import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.audio.PositionedSoundRecord;
@ -39,7 +42,11 @@ public class GUIPASource extends GuiInfoContainer {
source.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 36, 16, 52); source.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 36, 16, 52);
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 18, 16, 52, source.power, source.getMaxPower()); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 18, 16, 52, source.power, source.getMaxPower());
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 105, guiTop + 18, 10, 10, mouseX, mouseY, "Last momentum: " + source.lastSpeed); List<String> info = new ArrayList();
info.add(EnumChatFormatting.BLUE + "Last momentum: " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", source.lastSpeed));
String[] message = I18nUtil.resolveKeyArray("pa." + this.source.state.name().toLowerCase(Locale.US) + ".desc");
for(String s : message) info.add(EnumChatFormatting.YELLOW + s);
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 105, guiTop + 18, 10, 10, mouseX, mouseY, info);
this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 105, guiTop + 30, 10, 10, mouseX, mouseY, EnumChatFormatting.RED + "Cancel operation"); this.drawCustomInfoStat(mouseX, mouseY, guiLeft + 105, guiTop + 30, 10, 10, mouseX, mouseY, EnumChatFormatting.RED + "Cancel operation");
} }
@ -59,7 +66,7 @@ public class GUIPASource extends GuiInfoContainer {
protected void drawGuiContainerForegroundLayer( int i, int j) { protected void drawGuiContainerForegroundLayer( int i, int j) {
String name = this.source.hasCustomInventoryName() ? this.source.getInventoryName() : I18n.format(this.source.getInventoryName()); String name = this.source.hasCustomInventoryName() ? this.source.getInventoryName() : I18n.format(this.source.getInventoryName());
this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 9, 6, 4210752); this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2 - 9, 4, 4210752);
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
this.fontRendererObj.drawString(EnumChatFormatting.AQUA + "/123K", 136, 22, 4210752); this.fontRendererObj.drawString(EnumChatFormatting.AQUA + "/123K", 136, 22, 4210752);

View File

@ -21,6 +21,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.Mats.MaterialStack;
import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumAshType;
import com.hbm.items.ItemEnums.EnumCasingType; import com.hbm.items.ItemEnums.EnumCasingType;
@ -44,7 +45,7 @@ public class MatDistribution extends SerializableRecipe {
registerEntry(Blocks.golden_rail, MAT_GOLD, INGOT.q(6, 6), MAT_REDSTONE, DUST.q(1, 6)); registerEntry(Blocks.golden_rail, MAT_GOLD, INGOT.q(6, 6), MAT_REDSTONE, DUST.q(1, 6));
registerEntry(Blocks.detector_rail, MAT_IRON, INGOT.q(6, 6), MAT_REDSTONE, DUST.q(1, 6)); registerEntry(Blocks.detector_rail, MAT_IRON, INGOT.q(6, 6), MAT_REDSTONE, DUST.q(1, 6));
registerEntry(Items.minecart, MAT_IRON, INGOT.q(5)); registerEntry(Items.minecart, MAT_IRON, INGOT.q(5));
//castables //castables
registerEntry(ModItems.blade_titanium, MAT_TITANIUM, INGOT.q(2)); registerEntry(ModItems.blade_titanium, MAT_TITANIUM, INGOT.q(2));
registerEntry(ModItems.blade_tungsten, MAT_TUNGSTEN, INGOT.q(2)); registerEntry(ModItems.blade_tungsten, MAT_TUNGSTEN, INGOT.q(2));
@ -62,15 +63,15 @@ public class MatDistribution extends SerializableRecipe {
registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL_STEEL), MAT_WEAPONSTEEL, PLATE.q(1, 4)); registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.SMALL_STEEL), MAT_WEAPONSTEEL, PLATE.q(1, 4));
registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE), MAT_GUNMETAL, PLATE.q(1, 2)); registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE), MAT_GUNMETAL, PLATE.q(1, 2));
registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE_STEEL), MAT_WEAPONSTEEL, PLATE.q(1, 2)); registerEntry(DictFrame.fromOne(ModItems.casing, EnumCasingType.LARGE_STEEL), MAT_WEAPONSTEEL, PLATE.q(1, 2));
registerEntry(Items.minecart, MAT_IRON, INGOT.q(5));
registerEntry(DictFrame.fromOne(ModItems.chunk_ore, ItemEnums.EnumChunkType.CRYOLITE), MAT_ALUMINIUM, INGOT.q(1), MAT_SODIUM, INGOT.q(1));
//actual ores //actual ores
if(!Compat.isModLoaded(Compat.MOD_GT6)) { if(!Compat.isModLoaded(Compat.MOD_GT6)) {
registerOre(OreDictManager.IRON.ore(), MAT_IRON, INGOT.q(2), MAT_TITANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.IRON.ore(), MAT_IRON, INGOT.q(2), MAT_TITANIUM, NUGGET.q(3), MAT_STONE, QUART.q(1));
registerOre(OreDictManager.TI.ore(), MAT_TITANIUM, INGOT.q(2), MAT_IRON, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.TI.ore(), MAT_TITANIUM, INGOT.q(2), MAT_IRON, NUGGET.q(3), MAT_STONE, QUART.q(1));
registerOre(OreDictManager.W.ore(), MAT_TUNGSTEN, INGOT.q(2), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.W.ore(), MAT_TUNGSTEN, INGOT.q(2), MAT_STONE, QUART.q(1));
registerOre(OreDictManager.AL.ore(), MAT_ALUMINIUM, INGOT.q(2), MAT_STONE, QUART.q(1));
} }
registerOre(OreDictManager.COAL.ore(), MAT_CARBON, GEM.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.COAL.ore(), MAT_CARBON, GEM.q(3), MAT_STONE, QUART.q(1));
registerOre(OreDictManager.GOLD.ore(), MAT_GOLD, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.GOLD.ore(), MAT_GOLD, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1));
registerOre(OreDictManager.U.ore(), MAT_URANIUM, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1)); registerOre(OreDictManager.U.ore(), MAT_URANIUM, INGOT.q(2), MAT_LEAD, NUGGET.q(3), MAT_STONE, QUART.q(1));
@ -83,7 +84,7 @@ public class MatDistribution extends SerializableRecipe {
registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(1)); registerOre(OreDictManager.HEMATITE.ore(), MAT_HEMATITE, INGOT.q(1));
registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(6)); registerOre(OreDictManager.MALACHITE.ore(), MAT_MALACHITE, INGOT.q(6));
registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10)); registerEntry(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.LIMESTONE), MAT_FLUX, DUST.q(10));
registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1)); registerEntry(ModItems.powder_flux, MAT_FLUX, DUST.q(1));
registerEntry(new ItemStack(Items.coal, 1, 1), MAT_CARBON, NUGGET.q(3)); registerEntry(new ItemStack(Items.coal, 1, 1), MAT_CARBON, NUGGET.q(3));
@ -92,7 +93,7 @@ public class MatDistribution extends SerializableRecipe {
registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL), MAT_CARBON, NUGGET.q(2)); registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.COAL), MAT_CARBON, NUGGET.q(2));
registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC), MAT_CARBON, NUGGET.q(1)); registerEntry(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.MISC), MAT_CARBON, NUGGET.q(1));
} }
public static void registerEntry(Object key, Object... matDef) { public static void registerEntry(Object key, Object... matDef) {
ComparableStack comp = null; ComparableStack comp = null;
@ -100,32 +101,32 @@ public class MatDistribution extends SerializableRecipe {
if(key instanceof Block) comp = new ComparableStack((Block) key); if(key instanceof Block) comp = new ComparableStack((Block) key);
if(key instanceof ItemStack) comp = new ComparableStack((ItemStack) key); if(key instanceof ItemStack) comp = new ComparableStack((ItemStack) key);
if(key instanceof ComparableStack) comp = (ComparableStack) key; if(key instanceof ComparableStack) comp = (ComparableStack) key;
if(comp == null) return; if(comp == null) return;
if(matDef.length % 2 == 1) return; if(matDef.length % 2 == 1) return;
List<MaterialStack> stacks = new ArrayList(); List<MaterialStack> stacks = new ArrayList();
for(int i = 0; i < matDef.length; i += 2) { for(int i = 0; i < matDef.length; i += 2) {
stacks.add(new MaterialStack((NTMMaterial) matDef[i], (int) matDef[i + 1])); stacks.add(new MaterialStack((NTMMaterial) matDef[i], (int) matDef[i + 1]));
} }
if(stacks.isEmpty()) return; if(stacks.isEmpty()) return;
materialEntries.put(comp, stacks); materialEntries.put(comp, stacks);
} }
public static void registerOre(String key, Object... matDef) { public static void registerOre(String key, Object... matDef) {
if(matDef.length % 2 == 1) return; if(matDef.length % 2 == 1) return;
List<MaterialStack> stacks = new ArrayList(); List<MaterialStack> stacks = new ArrayList();
for(int i = 0; i < matDef.length; i += 2) { for(int i = 0; i < matDef.length; i += 2) {
stacks.add(new MaterialStack((NTMMaterial) matDef[i], (int) matDef[i + 1])); stacks.add(new MaterialStack((NTMMaterial) matDef[i], (int) matDef[i + 1]));
} }
if(stacks.isEmpty()) return; if(stacks.isEmpty()) return;
materialOreEntries.put(key, stacks); materialOreEntries.put(key, stacks);
} }
@ -190,7 +191,7 @@ public class MatDistribution extends SerializableRecipe {
Mats.materialEntries.clear(); Mats.materialEntries.clear();
Mats.materialOreEntries.clear(); Mats.materialOreEntries.clear();
} }
@Override @Override
public String getComment() { public String getComment() {
return "Defines a set of items that can be smelted. Smelting generated from the ore dictionary (prefix + material) is auto-generated and cannot be " return "Defines a set of items that can be smelted. Smelting generated from the ore dictionary (prefix + material) is auto-generated and cannot be "

View File

@ -33,19 +33,19 @@ public class Mats {
public static HashMap<String, NTMMaterial> matByName = new HashMap(); public static HashMap<String, NTMMaterial> matByName = new HashMap();
public static HashMap<ComparableStack, List<MaterialStack>> materialEntries = new HashMap(); public static HashMap<ComparableStack, List<MaterialStack>> materialEntries = new HashMap();
public static HashMap<String, List<MaterialStack>> materialOreEntries = new HashMap(); public static HashMap<String, List<MaterialStack>> materialOreEntries = new HashMap();
/* /*
* ItemStacks are saved with their metadata being truncated to a short, so the max meta is 32767 * ItemStacks are saved with their metadata being truncated to a short, so the max meta is 32767
* Format for elements: Atomic number *100, plus the last two digits of the mass number. Mass number is 0 for generic/undefined/mixed materials. * Format for elements: Atomic number *100, plus the last two digits of the mass number. Mass number is 0 for generic/undefined/mixed materials.
* Vanilla numbers are in vanilla space (0-29), basic alloys use alloy space (30-99) * Vanilla numbers are in vanilla space (0-29), basic alloys use alloy space (30-99)
*/ */
/* Vanilla Space, up to 30 materials, */ /* Vanilla Space, up to 30 materials, */
public static final int _VS = 0; public static final int _VS = 0;
/* Alloy Space, up to 70 materials. Use >20_000 as an extension.*/ /* Alloy Space, up to 70 materials. Use >20_000 as an extension.*/
public static final int _AS = 30; public static final int _AS = 30;
public static final int _ES = 20_000; public static final int _ES = 20_000;
//Vanilla and vanilla-like //Vanilla and vanilla-like
public static final NTMMaterial MAT_WOOD = makeNonSmeltable(_VS + 03, WOOD, 0x896727, 0x281E0B, 0x896727).setAutogen(STOCK, GRIP).n(); public static final NTMMaterial MAT_WOOD = makeNonSmeltable(_VS + 03, WOOD, 0x896727, 0x281E0B, 0x896727).setAutogen(STOCK, GRIP).n();
public static final NTMMaterial MAT_IVORY = makeNonSmeltable(_VS + 04, BONE, 0xFFFEEE, 0x797870, 0xEDEBCA).setAutogen(GRIP).n(); public static final NTMMaterial MAT_IVORY = makeNonSmeltable(_VS + 04, BONE, 0xFFFEEE, 0x797870, 0xEDEBCA).setAutogen(GRIP).n();
@ -67,6 +67,8 @@ public class Mats {
public static final NTMMaterial MAT_PIGIRON = makeSmeltable(2603, df("PigIron"), 0xFF8B59).m(); public static final NTMMaterial MAT_PIGIRON = makeSmeltable(2603, df("PigIron"), 0xFF8B59).m();
public static final NTMMaterial MAT_METEORICIRON = makeSmeltable(2604, df("MeteoricIron"), 0x715347).m(); public static final NTMMaterial MAT_METEORICIRON = makeSmeltable(2604, df("MeteoricIron"), 0x715347).m();
public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m(); public static final NTMMaterial MAT_MALACHITE = makeAdditive( 2901, MALACHITE, 0xA2F0C8, 0x227048, 0x61AF87).m();
public static final NTMMaterial MAT_BAUXITE = makeNonSmeltable(2902, BAUXITE, 0xF4BA30, 0xAA320A, 0xE2560F).setAutogen(FRAGMENT).n();
public static final NTMMaterial MAT_CRYOLITE = makeNonSmeltable(2903, CRYOLITE, 0xCBC2A4, 0x8B711F, 0x8B701A).setAutogen(FRAGMENT).n();
//Radioactive //Radioactive
public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m(); public static final NTMMaterial MAT_URANIUM = makeSmeltable(9200, U, 0xC1C7BD, 0x2B3227, 0x9AA196).setAutogen(FRAGMENT, NUGGET, BILLET, DUST, BLOCK).m();
@ -99,7 +101,7 @@ public class Mats {
//Base metals //Base metals
public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setAutogen(FRAGMENT, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m(); public static final NTMMaterial MAT_TITANIUM = makeSmeltable(2200, TI, 0xF7F3F2, 0x4F4C4B, 0xA99E79).setAutogen(FRAGMENT, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, BLOCK, HEAVY_COMPONENT).m();
public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); public static final NTMMaterial MAT_COPPER = makeSmeltable(2900, CU, 0xFDCA88, 0x601E0D, 0xC18336).setAutogen(FRAGMENT, WIRE, DUST, PLATE, DENSEWIRE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m();
public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setAutogen(FRAGMENT, WIRE, BOLT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m(); public static final NTMMaterial MAT_TUNGSTEN = makeSmeltable(7400, W, 0x868686, 0x000000, 0x977474).setAutogen(FRAGMENT, WIRE, BOLT, DUST, DENSEWIRE, CASTPLATE, WELDEDPLATE, BLOCK, HEAVY_COMPONENT).m();
public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m(); public static final NTMMaterial MAT_ALUMINIUM = makeSmeltable(1300, AL, 0xFFFFFF, 0x344550, 0xD0B8EB).setAutogen(FRAGMENT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT).m();
public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m(); public static final NTMMaterial MAT_LEAD = makeSmeltable(8200, PB, 0xA6A6B2, 0x03030F, 0x646470).setAutogen(FRAGMENT, NUGGET, WIRE, BOLT, DUST, PLATE, CASTPLATE, PIPE, BLOCK, HEAVY_COMPONENT).m();
@ -131,7 +133,7 @@ public class Mats {
public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setAutogen(FRAGMENT, NUGGET, BILLET).m(); public static final NTMMaterial MAT_SILICON = makeSmeltable(1400, SI, 0xD1D7DF, 0x1A1A3D, 0x878B9E).setAutogen(FRAGMENT, NUGGET, BILLET).m();
public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setAutogen(FRAGMENT, BLOCK).n(); public static final NTMMaterial MAT_ASBESTOS = makeSmeltable(1401, ASBESTOS, 0xD8D9CF, 0x616258, 0xB0B3A8).setAutogen(FRAGMENT, BLOCK).n();
public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setAutogen(NUGGET, CASTPLATE, WELDEDPLATE).m(); public static final NTMMaterial MAT_OSMIRIDIUM = makeSmeltable(7699, OSMIRIDIUM, 0xDBE3EF, 0x7891BE, 0xACBDD9).setAutogen(NUGGET, CASTPLATE, WELDEDPLATE).m();
//Alloys //Alloys
public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setAutogen(DUSTTINY, BOLT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m(); public static final NTMMaterial MAT_STEEL = makeSmeltable(_AS + 0, STEEL, 0xAFAFAF, 0x0F0F0F, 0x4A4A4A).setAutogen(DUSTTINY, BOLT, WIRE, DUST, PLATE, CASTPLATE, WELDEDPLATE, SHELL, PIPE, BLOCK, HEAVY_COMPONENT, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, GRIP).m();
public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setAutogen(WIRE, DUST, BLOCK).m(); public static final NTMMaterial MAT_MINGRADE = makeSmeltable(_AS + 1, MINGRADE, 0xFFBA7D, 0xAF1700, 0xE44C0F).setAutogen(WIRE, DUST, BLOCK).m();
@ -154,7 +156,7 @@ public class Mats {
public static final NTMMaterial MAT_GUNMETAL = makeSmeltable(_AS + 19, GUNMETAL, 0xFFEF3F, 0xAD3600, 0xF9C62C).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); public static final NTMMaterial MAT_GUNMETAL = makeSmeltable(_AS + 19, GUNMETAL, 0xFFEF3F, 0xAD3600, 0xF9C62C).setAutogen(LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n();
public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setAutogen(SHELL, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n(); public static final NTMMaterial MAT_WEAPONSTEEL = makeSmeltable(_AS + 20, WEAPONSTEEL, 0xA0A0A0, 0x000000, 0x808080).setAutogen(SHELL, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).n();
public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setAutogen(PLATE, CASTPLATE, SHELL, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m(); public static final NTMMaterial MAT_SATURN = makeSmeltable(_AS + 4, BIGMT, 0x3AC4DA, 0x09282C, 0x30A4B7).setAutogen(PLATE, CASTPLATE, SHELL, BLOCK, LIGHTBARREL, HEAVYBARREL, LIGHTRECEIVER, HEAVYRECEIVER, MECHANISM, STOCK, GRIP).m();
//Extension //Extension
public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setAutogen(FRAGMENT).n(); public static final NTMMaterial MAT_RAREEARTH = makeNonSmeltable(_ES + 00, RAREEARTH, 0xC1BDBD, 0x384646, 0x7B7F7F).setAutogen(FRAGMENT).n();
public static final NTMMaterial MAT_POLYMER = makeNonSmeltable(_ES + 01, POLYMER, 0x363636, 0x040404, 0x272727).setAutogen(STOCK, GRIP).n(); public static final NTMMaterial MAT_POLYMER = makeNonSmeltable(_ES + 01, POLYMER, 0x363636, 0x040404, 0x272727).setAutogen(STOCK, GRIP).n();
@ -162,52 +164,52 @@ public class Mats {
public static final NTMMaterial MAT_RUBBER = makeNonSmeltable(_ES + 03, RUBBER, 0x817F75, 0x0F0D03, 0x4B4A3F).setAutogen(PIPE, GRIP).n(); public static final NTMMaterial MAT_RUBBER = makeNonSmeltable(_ES + 03, RUBBER, 0x817F75, 0x0F0D03, 0x4B4A3F).setAutogen(PIPE, GRIP).n();
public static final NTMMaterial MAT_HARDPLASTIC = makeNonSmeltable(_ES + 04, PC, 0xEDE7C4, 0x908A67, 0xE1DBB8).setAutogen(STOCK, GRIP).n(); public static final NTMMaterial MAT_HARDPLASTIC = makeNonSmeltable(_ES + 04, PC, 0xEDE7C4, 0x908A67, 0xE1DBB8).setAutogen(STOCK, GRIP).n();
public static final NTMMaterial MAT_PVC = makeNonSmeltable(_ES + 05, PVC, 0xFCFCFC, 0x9F9F9F, 0xF0F0F0).setAutogen(STOCK, GRIP).n(); public static final NTMMaterial MAT_PVC = makeNonSmeltable(_ES + 05, PVC, 0xFCFCFC, 0x9F9F9F, 0xF0F0F0).setAutogen(STOCK, GRIP).n();
public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); } public static NTMMaterial makeSmeltable(int id, DictFrame dict, int color) { return makeSmeltable(id, dict, color, color, color); }
public static NTMMaterial make(int id, DictFrame dict) { public static NTMMaterial make(int id, DictFrame dict) {
return new NTMMaterial(id, dict); return new NTMMaterial(id, dict);
} }
public static NTMMaterial makeSmeltable(int id, DictFrame dict, int solidColorLight, int solidColorDark, int moltenColor) { public static NTMMaterial makeSmeltable(int id, DictFrame dict, int solidColorLight, int solidColorDark, int moltenColor) {
return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.SMELTABLE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor); return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.SMELTABLE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor);
} }
public static NTMMaterial makeAdditive(int id, DictFrame dict, int solidColorLight, int solidColorDark, int moltenColor) { public static NTMMaterial makeAdditive(int id, DictFrame dict, int solidColorLight, int solidColorDark, int moltenColor) {
return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.ADDITIVE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor); return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.ADDITIVE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor);
} }
public static NTMMaterial makeNonSmeltable(int id, DictFrame dict, int solidColorLight, int solidColorDark, int moltenColor) { public static NTMMaterial makeNonSmeltable(int id, DictFrame dict, int solidColorLight, int solidColorDark, int moltenColor) {
return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.NOT_SMELTABLE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor); return new NTMMaterial(id, dict).smeltable(SmeltingBehavior.NOT_SMELTABLE).setSolidColor(solidColorLight, solidColorDark).setMoltenColor(moltenColor);
} }
public static DictFrame df(String string) { public static DictFrame df(String string) {
return new DictFrame(string); return new DictFrame(string);
} }
/** will not respect stacksizes - all stacks will be treated as a singular */ /** will not respect stacksizes - all stacks will be treated as a singular */
public static List<MaterialStack> getMaterialsFromItem(ItemStack stack) { public static List<MaterialStack> getMaterialsFromItem(ItemStack stack) {
List<MaterialStack> list = new ArrayList(); List<MaterialStack> list = new ArrayList();
List<String> names = ItemStackUtil.getOreDictNames(stack); List<String> names = ItemStackUtil.getOreDictNames(stack);
if(!names.isEmpty()) { if(!names.isEmpty()) {
outer: outer:
for(String name : names) { for(String name : names) {
List<MaterialStack> oreEntries = materialOreEntries.get(name); List<MaterialStack> oreEntries = materialOreEntries.get(name);
if(oreEntries != null) { if(oreEntries != null) {
list.addAll(oreEntries); list.addAll(oreEntries);
break outer; break outer;
} }
for(Entry<String, MaterialShapes> prefixEntry : prefixByName.entrySet()) { for(Entry<String, MaterialShapes> prefixEntry : prefixByName.entrySet()) {
String prefix = prefixEntry.getKey(); String prefix = prefixEntry.getKey();
if(name.startsWith(prefix)) { if(name.startsWith(prefix)) {
String materialName = name.substring(prefix.length()); String materialName = name.substring(prefix.length());
NTMMaterial material = matByName.get(materialName); NTMMaterial material = matByName.get(materialName);
if(material != null && (material.smeltsInto.smeltable == SmeltingBehavior.SMELTABLE || material.smeltsInto.smeltable == SmeltingBehavior.ADDITIVE)) { if(material != null && (material.smeltsInto.smeltable == SmeltingBehavior.SMELTABLE || material.smeltsInto.smeltable == SmeltingBehavior.ADDITIVE)) {
list.add(new MaterialStack(material, prefixEntry.getValue().q(1))); list.add(new MaterialStack(material, prefixEntry.getValue().q(1)));
break outer; break outer;
@ -216,17 +218,17 @@ public class Mats {
} }
} }
} }
List<MaterialStack> entries = materialEntries.get(new ComparableStack(stack).makeSingular()); List<MaterialStack> entries = materialEntries.get(new ComparableStack(stack).makeSingular());
if(entries != null) { if(entries != null) {
entries.forEach(x -> { if(x != null) list.add(x); }); entries.forEach(x -> { if(x != null) list.add(x); });
} }
if(stack.getItem() == ModItems.scraps) { if(stack.getItem() == ModItems.scraps) {
list.add(ItemScraps.getMats(stack)); list.add(ItemScraps.getMats(stack));
} }
return list; return list;
} }
@ -236,28 +238,28 @@ public class Mats {
baseMats.forEach(x -> smelting.add(new MaterialStack(x.material.smeltsInto, (int) (x.amount * x.material.convOut / x.material.convIn)))); baseMats.forEach(x -> smelting.add(new MaterialStack(x.material.smeltsInto, (int) (x.amount * x.material.convOut / x.material.convIn))));
return smelting; return smelting;
} }
public static class MaterialStack { public static class MaterialStack {
//final fields to prevent accidental changing //final fields to prevent accidental changing
public final NTMMaterial material; public final NTMMaterial material;
public int amount; public int amount;
public MaterialStack(NTMMaterial material, int amount) { public MaterialStack(NTMMaterial material, int amount) {
this.material = material; this.material = material;
this.amount = amount; this.amount = amount;
} }
public MaterialStack copy() { public MaterialStack copy() {
return new MaterialStack(material, amount); return new MaterialStack(material, amount);
} }
} }
public static String formatAmount(int amount, boolean showInMb) { public static String formatAmount(int amount, boolean showInMb) {
if(showInMb) return (amount * 2) + "mB"; if(showInMb) return (amount * 2) + "mB";
String format = ""; String format = "";
int blocks = amount / BLOCK.q(1); int blocks = amount / BLOCK.q(1);
amount -= BLOCK.q(blocks); amount -= BLOCK.q(blocks);
int ingots = amount / INGOT.q(1); int ingots = amount / INGOT.q(1);
@ -265,12 +267,12 @@ public class Mats {
int nuggets = amount / NUGGET.q(1); int nuggets = amount / NUGGET.q(1);
amount -= NUGGET.q(nuggets); amount -= NUGGET.q(nuggets);
int quanta = amount; int quanta = amount;
if(blocks > 0) format += (blocks == 1 ? I18nUtil.resolveKey("matshape.block", blocks) : I18nUtil.resolveKey("matshape.blocks", blocks)) + " "; if(blocks > 0) format += (blocks == 1 ? I18nUtil.resolveKey("matshape.block", blocks) : I18nUtil.resolveKey("matshape.blocks", blocks)) + " ";
if(ingots > 0) format += (ingots == 1 ? I18nUtil.resolveKey("matshape.ingot", ingots) : I18nUtil.resolveKey("matshape.ingots", ingots)) + " "; if(ingots > 0) format += (ingots == 1 ? I18nUtil.resolveKey("matshape.ingot", ingots) : I18nUtil.resolveKey("matshape.ingots", ingots)) + " ";
if(nuggets > 0) format += (nuggets == 1 ? I18nUtil.resolveKey("matshape.nugget", nuggets) : I18nUtil.resolveKey("matshape.nuggets", nuggets)) + " "; if(nuggets > 0) format += (nuggets == 1 ? I18nUtil.resolveKey("matshape.nugget", nuggets) : I18nUtil.resolveKey("matshape.nuggets", nuggets)) + " ";
if(quanta > 0) format += (quanta == 1 ? I18nUtil.resolveKey("matshape.quantum", quanta) : I18nUtil.resolveKey("matshape.quanta", quanta)) + " "; if(quanta > 0) format += (quanta == 1 ? I18nUtil.resolveKey("matshape.quantum", quanta) : I18nUtil.resolveKey("matshape.quanta", quanta)) + " ";
return format.trim(); return format.trim();
} }
} }

View File

@ -32,6 +32,7 @@ import com.hbm.items.ItemGenericPart.EnumPartType;
import com.hbm.items.machine.ItemAssemblyTemplate; import com.hbm.items.machine.ItemAssemblyTemplate;
import com.hbm.items.machine.ItemCircuit.EnumCircuitType; import com.hbm.items.machine.ItemCircuit.EnumCircuitType;
import com.hbm.items.machine.ItemDrillbit.EnumDrillType; import com.hbm.items.machine.ItemDrillbit.EnumDrillType;
import com.hbm.items.machine.ItemPACoil.EnumCoilType;
import com.hbm.items.machine.ItemPistons.EnumPistonType; import com.hbm.items.machine.ItemPistons.EnumPistonType;
import com.hbm.items.weapon.ItemAmmoHIMARS; import com.hbm.items.weapon.ItemAmmoHIMARS;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo; import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
@ -107,7 +108,7 @@ public class AssemblerRecipes extends SerializableRecipe {
makeRecipe(new ComparableStack(ModItems.tritium_deuterium_cake, 1), new AStack[] {new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.cell_tritium, 2), new OreDictStack(LI.ingot(), 4), },150); makeRecipe(new ComparableStack(ModItems.tritium_deuterium_cake, 1), new AStack[] {new ComparableStack(ModItems.cell_deuterium, 6), new ComparableStack(ModItems.cell_tritium, 2), new OreDictStack(LI.ingot(), 4), },150);
makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50); makeRecipe(new ComparableStack(ModItems.pellet_cluster, 1), new AStack[] {new OreDictStack(STEEL.plate(), 4), new ComparableStack(Blocks.tnt, 1), }, 50);
makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50); makeRecipe(new ComparableStack(ModItems.pellet_buckshot, 1), new AStack[] {new OreDictStack(PB.nugget(), 6), }, 50);
makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(ALLOY.plate(), 3), new OreDictStack(W.wireFine(), 1), new ComparableStack(ModItems.coil_tungsten, 1), },100); makeRecipe(new ComparableStack(ModItems.magnetron, 1), new AStack[] {new OreDictStack(CU.plate(), 3), new OreDictStack(W.wireFine(), 4), }, 40);
makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new OreDictStack(ALLOY.wireFine(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200); makeRecipe(new ComparableStack(ModItems.redcoil_capacitor, 1), new AStack[] {new OreDictStack(GOLD.plate(), 3), new ComparableStack(ModItems.fuse, 1), new OreDictStack(ALLOY.wireFine(), 4), new ComparableStack(ModItems.coil_advanced_alloy, 6), new ComparableStack(Blocks.redstone_block, 2), },200);
makeRecipe(new ComparableStack(ModItems.part_lithium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_lithium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(LI.dust(), 1), },50);
makeRecipe(new ComparableStack(ModItems.part_beryllium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50); makeRecipe(new ComparableStack(ModItems.part_beryllium, 8), new AStack[] {new OreDictStack(ANY_RUBBER.ingot(), 1), new OreDictStack(BE.dust(), 1), },50);
@ -548,14 +549,6 @@ public class AssemblerRecipes extends SerializableRecipe {
new OreDictStack(STEEL.pipe(), 24), new OreDictStack(STEEL.pipe(), 24),
new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4) new OreDictStack(Fluids.LUBRICANT.getDict(1_000), 4)
}, 600); }, 600);
makeRecipe(new ComparableStack(ModItems.pellet_chlorophyte, 2), new AStack[] {
new ComparableStack(ModItems.powder_chlorophyte, 1),
new OreDictStack(PB.nugget(), 12),
}, 50);
makeRecipe(new ComparableStack(ModItems.pellet_canister, 2), new AStack[] {
new OreDictStack(IRON.ingot(), 3),
}, 50);
makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_cyclotron, 1), new AStack[] {
new ComparableStack(ModBlocks.machine_lithium_battery, 3), new ComparableStack(ModBlocks.machine_lithium_battery, 3),
@ -946,6 +939,50 @@ public class AssemblerRecipes extends SerializableRecipe {
new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC) new ComparableStack(ModItems.circuit, 8, EnumCircuitType.BASIC)
}, 200); }, 200);
makeRecipe(new ComparableStack(ModItems.pa_coil, 1, EnumCoilType.GOLD), new AStack[] { new OreDictStack(GOLD.wireDense(), 128) }, 400);
makeRecipe(new ComparableStack(ModItems.pa_coil, 1, EnumCoilType.NIOBIUM), new AStack[] { new OreDictStack(NB.wireDense(), 64), new OreDictStack(TI.wireDense(), 64) }, 400);
makeRecipe(new ComparableStack(ModItems.pa_coil, 1, EnumCoilType.BSCCO), new AStack[] { new OreDictStack(BSCCO.wireDense(), 64), new OreDictStack(ANY_PLASTIC.ingot(), 64) }, 400);
makeRecipe(new ComparableStack(ModItems.pa_coil, 1, EnumCoilType.CHLOROPHYTE), new AStack[] { new OreDictStack(CU.wireDense(), 128), new ComparableStack(ModItems.powder_chlorophyte, 16) }, 400);
makeRecipe(new ComparableStack(ModBlocks.pa_beamline), new AStack[] {
new OreDictStack(STEEL.plateCast(), 8),
new OreDictStack(CU.plate(), 16),
new OreDictStack(GOLD.wireDense(), 4)
}, 200);
makeRecipe(new ComparableStack(ModBlocks.pa_rfc), new AStack[] {
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),
}, 400);
makeRecipe(new ComparableStack(ModBlocks.pa_quadrupole), new AStack[] {
new ComparableStack(ModBlocks.pa_beamline, 1),
new OreDictStack(STEEL.plateCast(), 16),
new OreDictStack(ANY_HARDPLASTIC.ingot(), 16),
new ComparableStack(ModItems.circuit, 1, EnumCircuitType.BISMOID),
}, 400);
makeRecipe(new ComparableStack(ModBlocks.pa_dipole), new AStack[] {
new ComparableStack(ModBlocks.pa_beamline, 2),
new OreDictStack(STEEL.plateCast(), 16),
new OreDictStack(ANY_HARDPLASTIC.ingot(), 32),
new ComparableStack(ModItems.circuit, 4, EnumCircuitType.BISMOID),
}, 400);
makeRecipe(new ComparableStack(ModBlocks.pa_source), new AStack[] {
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),
}, 400);
makeRecipe(new ComparableStack(ModBlocks.pa_detector), new AStack[] {
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),
}, 400);
makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] { makeRecipe(new ComparableStack(ModBlocks.machine_exposure_chamber, 1), new AStack[] {
!exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1), !exp ? new OreDictStack(AL.plateCast(), 12) : new OreDictStack(AL.heavyComp(), 1),
new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4), new OreDictStack(ANY_RESISTANTALLOY.ingot(), 4),

View File

@ -22,6 +22,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.material.MaterialShapes; import com.hbm.inventory.material.MaterialShapes;
import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums;
import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumAshType;
import com.hbm.items.ItemEnums.EnumChunkType; import com.hbm.items.ItemEnums.EnumChunkType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
@ -46,21 +47,21 @@ public class CentrifugeRecipes extends SerializableRecipe {
@Override @Override
public void registerDefaults() { public void registerDefaults() {
boolean lbs = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCentrifuge; boolean lbs = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCentrifuge;
recipes.put(new ComparableStack(ModItems.waste_natural_uranium), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_natural_uranium), new ItemStack[] {
new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.nugget_u238, 1),
new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.nugget_pu_mix, 2),
new ItemStack(ModItems.nugget_pu239, 1), new ItemStack(ModItems.nugget_pu239, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 2) }); new ItemStack(ModItems.nuclear_waste_tiny, 2) });
recipes.put(new ComparableStack(ModItems.waste_uranium), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_uranium), new ItemStack[] {
new ItemStack(ModItems.nugget_pu_mix, 2), new ItemStack(ModItems.nugget_pu_mix, 2),
new ItemStack(ModItems.nugget_plutonium, 1), new ItemStack(ModItems.nugget_plutonium, 1),
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 2) }); new ItemStack(ModItems.nuclear_waste_tiny, 2) });
recipes.put(new ComparableStack(ModItems.waste_thorium), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_thorium), new ItemStack[] {
new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.nugget_u238, 1),
new ItemStack(ModItems.nugget_th232, 1), new ItemStack(ModItems.nugget_th232, 1),
@ -72,73 +73,73 @@ public class CentrifugeRecipes extends SerializableRecipe {
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nugget_u238, 1), new ItemStack(ModItems.nugget_u238, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) }); new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_plutonium), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_plutonium), new ItemStack[] {
new ItemStack(ModItems.nugget_pu_mix, 1), new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_pu_mix, 1), new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) }); new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_u233), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_u233), new ItemStack[] {
new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.nugget_u235, 1),
new ItemStack(ModItems.nugget_neptunium, 1), new ItemStack(ModItems.nugget_neptunium, 1),
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) }); new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_u235), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_u235), new ItemStack[] {
new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu238, 1),
new ItemStack(ModItems.nugget_neptunium, 1), new ItemStack(ModItems.nugget_neptunium, 1),
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 3) }); new ItemStack(ModItems.nuclear_waste_tiny, 3) });
recipes.put(new ComparableStack(ModItems.waste_schrabidium), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_schrabidium), new ItemStack[] {
new ItemStack(ModItems.nugget_beryllium, 2), new ItemStack(ModItems.nugget_beryllium, 2),
new ItemStack(ModItems.nugget_pu239, 1), new ItemStack(ModItems.nugget_pu239, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 1), new ItemStack(ModItems.nuclear_waste_tiny, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 2) }); new ItemStack(ModItems.nuclear_waste_tiny, 2) });
recipes.put(new ComparableStack(ModItems.waste_zfb_mox), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_zfb_mox), new ItemStack[] {
new ItemStack(ModItems.nugget_zirconium, 3), new ItemStack(ModItems.nugget_zirconium, 3),
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.nugget_pu_mix, 1), new ItemStack(ModItems.nugget_pu_mix, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 1) }); new ItemStack(ModItems.nuclear_waste_tiny, 1) });
recipes.put(new ComparableStack(ModItems.waste_plate_mox), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_plate_mox), new ItemStack[] {
new ItemStack(ModItems.powder_sr90_tiny, 1), new ItemStack(ModItems.powder_sr90_tiny, 1),
new ItemStack(ModItems.nugget_pu_mix, 3), new ItemStack(ModItems.nugget_pu_mix, 3),
new ItemStack(ModItems.powder_cs137_tiny, 1), new ItemStack(ModItems.powder_cs137_tiny, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 4) }); new ItemStack(ModItems.nuclear_waste_tiny, 4) });
recipes.put(new ComparableStack(ModItems.waste_plate_pu238be), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_plate_pu238be), new ItemStack[] {
new ItemStack(ModItems.nugget_beryllium, 1), new ItemStack(ModItems.nugget_beryllium, 1),
new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu238, 1),
new ItemStack(ModItems.powder_coal_tiny, 2), new ItemStack(ModItems.powder_coal_tiny, 2),
new ItemStack(ModItems.nugget_lead, 2) }); new ItemStack(ModItems.nugget_lead, 2) });
recipes.put(new ComparableStack(ModItems.waste_plate_pu239), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_plate_pu239), new ItemStack[] {
new ItemStack(ModItems.nugget_pu240, 2), new ItemStack(ModItems.nugget_pu240, 2),
new ItemStack(ModItems.nugget_technetium, 1), new ItemStack(ModItems.nugget_technetium, 1),
new ItemStack(ModItems.powder_cs137_tiny, 1), new ItemStack(ModItems.powder_cs137_tiny, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 5) }); new ItemStack(ModItems.nuclear_waste_tiny, 5) });
recipes.put(new ComparableStack(ModItems.waste_plate_ra226be), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_plate_ra226be), new ItemStack[] {
new ItemStack(ModItems.nugget_beryllium, 2), new ItemStack(ModItems.nugget_beryllium, 2),
new ItemStack(ModItems.nugget_polonium, 2), new ItemStack(ModItems.nugget_polonium, 2),
new ItemStack(ModItems.powder_coal_tiny, 1), new ItemStack(ModItems.powder_coal_tiny, 1),
new ItemStack(ModItems.nugget_lead, 1) }); new ItemStack(ModItems.nugget_lead, 1) });
recipes.put(new ComparableStack(ModItems.waste_plate_sa326), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_plate_sa326), new ItemStack[] {
new ItemStack(ModItems.nugget_solinium, 1), new ItemStack(ModItems.nugget_solinium, 1),
new ItemStack(ModItems.powder_neodymium_tiny, 1), new ItemStack(ModItems.powder_neodymium_tiny, 1),
new ItemStack(ModItems.nugget_tantalium, 1), new ItemStack(ModItems.nugget_tantalium, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 6) }); new ItemStack(ModItems.nuclear_waste_tiny, 6) });
recipes.put(new ComparableStack(ModItems.waste_plate_u233), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_plate_u233), new ItemStack[] {
new ItemStack(ModItems.nugget_u235, 1), new ItemStack(ModItems.nugget_u235, 1),
new ItemStack(ModItems.powder_i131_tiny, 1), new ItemStack(ModItems.powder_i131_tiny, 1),
new ItemStack(ModItems.powder_sr90_tiny, 1), new ItemStack(ModItems.powder_sr90_tiny, 1),
new ItemStack(ModItems.nuclear_waste_tiny, 6) }); new ItemStack(ModItems.nuclear_waste_tiny, 6) });
recipes.put(new ComparableStack(ModItems.waste_plate_u235), new ItemStack[] { recipes.put(new ComparableStack(ModItems.waste_plate_u235), new ItemStack[] {
new ItemStack(ModItems.nugget_neptunium, 1), new ItemStack(ModItems.nugget_neptunium, 1),
new ItemStack(ModItems.nugget_pu238, 1), new ItemStack(ModItems.nugget_pu238, 1),
@ -283,7 +284,7 @@ public class CentrifugeRecipes extends SerializableRecipe {
new ItemStack(ModItems.powder_boron_tiny, 2), new ItemStack(ModItems.powder_boron_tiny, 2),
new ItemStack(ModItems.powder_niobium_tiny, 2), new ItemStack(ModItems.powder_niobium_tiny, 2),
new ItemStack(ModItems.nugget_zirconium, 3) }); new ItemStack(ModItems.nugget_zirconium, 3) });
ArrayList<ItemStack> naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria"); ArrayList<ItemStack> naquadriaNuggets = OreDictionary.getOres("nuggetNaquadria");
if(naquadriaNuggets.size() != 0) { if(naquadriaNuggets.size() != 0) {
ItemStack nuggetNQR = naquadriaNuggets.get(0); ItemStack nuggetNQR = naquadriaNuggets.get(0);
@ -300,195 +301,195 @@ public class CentrifugeRecipes extends SerializableRecipe {
new ItemStack(ModItems.nugget_euphemium, 6), new ItemStack(ModItems.nugget_euphemium, 6),
new ItemStack(ModItems.nuclear_waste, 2) }); new ItemStack(ModItems.nuclear_waste, 2) });
} }
recipes.put(new OreDictStack(COAL.ore()), new ItemStack[] { recipes.put(new OreDictStack(COAL.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_coal, 2), new ItemStack(ModItems.powder_coal, 2),
new ItemStack(ModItems.powder_coal, 2), new ItemStack(ModItems.powder_coal, 2),
new ItemStack(ModItems.powder_coal, 2), new ItemStack(ModItems.powder_coal, 2),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(LIGNITE.ore()), new ItemStack[] { recipes.put(new OreDictStack(LIGNITE.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_lignite, 2), new ItemStack(ModItems.powder_lignite, 2),
new ItemStack(ModItems.powder_lignite, 2), new ItemStack(ModItems.powder_lignite, 2),
new ItemStack(ModItems.powder_lignite, 2), new ItemStack(ModItems.powder_lignite, 2),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(IRON.ore()), new ItemStack[] { recipes.put(new OreDictStack(IRON.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_iron, 1),
new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_iron, 1),
new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_iron, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(GOLD.ore()), new ItemStack[] { recipes.put(new OreDictStack(GOLD.ore()), new ItemStack[] {
lbs ? new ItemStack(ModItems.powder_gold, 2) : new ItemStack(ModItems.powder_gold, 1), lbs ? new ItemStack(ModItems.powder_gold, 2) : new ItemStack(ModItems.powder_gold, 1),
new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_gold, 1),
lbs ? new ItemStack(ModItems.nugget_bismuth, 1) : new ItemStack(ModItems.powder_gold, 1), lbs ? new ItemStack(ModItems.nugget_bismuth, 1) : new ItemStack(ModItems.powder_gold, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(DIAMOND.ore()), new ItemStack[] { recipes.put(new OreDictStack(DIAMOND.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1),
new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1),
new ItemStack(ModItems.powder_diamond, 1), new ItemStack(ModItems.powder_diamond, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(EMERALD.ore()), new ItemStack[] { recipes.put(new OreDictStack(EMERALD.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_emerald, 1), new ItemStack(ModItems.powder_emerald, 1),
new ItemStack(ModItems.powder_emerald, 1), new ItemStack(ModItems.powder_emerald, 1),
new ItemStack(ModItems.powder_emerald, 1), new ItemStack(ModItems.powder_emerald, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(TI.ore()), new ItemStack[] { recipes.put(new OreDictStack(TI.ore()), new ItemStack[] {
lbs ? new ItemStack(ModItems.powder_titanium, 2) : new ItemStack(ModItems.powder_titanium, 1), lbs ? new ItemStack(ModItems.powder_titanium, 2) : new ItemStack(ModItems.powder_titanium, 1),
lbs ? new ItemStack(ModItems.powder_titanium, 2) : new ItemStack(ModItems.powder_titanium, 1), lbs ? new ItemStack(ModItems.powder_titanium, 2) : new ItemStack(ModItems.powder_titanium, 1),
new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_iron, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(NETHERQUARTZ.ore()), new ItemStack[] { recipes.put(new OreDictStack(NETHERQUARTZ.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_quartz, 1),
new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_quartz, 1),
new ItemStack(ModItems.powder_lithium_tiny, 1), new ItemStack(ModItems.powder_lithium_tiny, 1),
new ItemStack(Blocks.netherrack, 1) }); new ItemStack(Blocks.netherrack, 1) });
recipes.put(new OreDictStack(W.ore()), new ItemStack[] { recipes.put(new OreDictStack(W.ore()), new ItemStack[] {
lbs ? new ItemStack(ModItems.powder_tungsten, 2) : new ItemStack(ModItems.powder_tungsten, 1), lbs ? new ItemStack(ModItems.powder_tungsten, 2) : new ItemStack(ModItems.powder_tungsten, 1),
new ItemStack(ModItems.powder_tungsten, 1), new ItemStack(ModItems.powder_tungsten, 1),
new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_iron, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(CU.ore()), new ItemStack[] { recipes.put(new OreDictStack(CU.ore()), new ItemStack[] {
lbs ? new ItemStack(ModItems.powder_copper, 2) : new ItemStack(ModItems.powder_copper, 1), lbs ? new ItemStack(ModItems.powder_copper, 2) : new ItemStack(ModItems.powder_copper, 1),
new ItemStack(ModItems.powder_copper, 1), new ItemStack(ModItems.powder_copper, 1),
new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_gold, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(AL.ore()), new ItemStack[] { recipes.put(new OreDictStack(AL.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_aluminium, 1), new ItemStack(ModItems.chunk_ore, 2, ItemEnums.EnumChunkType.CRYOLITE.ordinal()),
new ItemStack(ModItems.powder_aluminium, 1), new ItemStack(ModItems.powder_titanium, 1),
new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_iron, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(PB.ore()), new ItemStack[] { recipes.put(new OreDictStack(PB.ore()), new ItemStack[] {
lbs ? new ItemStack(ModItems.powder_lead, 2) : new ItemStack(ModItems.powder_lead, 1), lbs ? new ItemStack(ModItems.powder_lead, 2) : new ItemStack(ModItems.powder_lead, 1),
lbs ? new ItemStack(ModItems.nugget_bismuth, 1) : new ItemStack(ModItems.powder_lead, 1), lbs ? new ItemStack(ModItems.nugget_bismuth, 1) : new ItemStack(ModItems.powder_lead, 1),
new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_gold, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(SA326.ore()), new ItemStack[] { recipes.put(new OreDictStack(SA326.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_schrabidium, 1), new ItemStack(ModItems.powder_schrabidium, 1),
new ItemStack(ModItems.powder_schrabidium, 1), new ItemStack(ModItems.powder_schrabidium, 1),
new ItemStack(ModItems.nugget_solinium, 1), new ItemStack(ModItems.nugget_solinium, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack("oreRareEarth"), new ItemStack[] { recipes.put(new OreDictStack("oreRareEarth"), new ItemStack[] {
new ItemStack(ModItems.powder_desh_mix, 1), new ItemStack(ModItems.powder_desh_mix, 1),
new ItemStack(ModItems.nugget_zirconium, 1), new ItemStack(ModItems.nugget_zirconium, 1),
new ItemStack(ModItems.nugget_zirconium, 1), new ItemStack(ModItems.nugget_zirconium, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(PU.ore()), new ItemStack[] { recipes.put(new OreDictStack(PU.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_plutonium, 1),
new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_plutonium, 1),
new ItemStack(ModItems.nugget_polonium, 3), new ItemStack(ModItems.nugget_polonium, 3),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(U.ore()), new ItemStack[] { recipes.put(new OreDictStack(U.ore()), new ItemStack[] {
lbs ? new ItemStack(ModItems.powder_uranium, 2) : new ItemStack(ModItems.powder_uranium, 1), lbs ? new ItemStack(ModItems.powder_uranium, 2) : new ItemStack(ModItems.powder_uranium, 1),
lbs ? new ItemStack(ModItems.nugget_technetium, 2) : new ItemStack(ModItems.powder_uranium, 1), lbs ? new ItemStack(ModItems.nugget_technetium, 2) : new ItemStack(ModItems.powder_uranium, 1),
lbs ? new ItemStack(ModItems.nugget_ra226, 2) : new ItemStack(ModItems.nugget_ra226, 1), lbs ? new ItemStack(ModItems.nugget_ra226, 2) : new ItemStack(ModItems.nugget_ra226, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
for(String ore : OreDictManager.TH232.all(MaterialShapes.ORE)) recipes.put(new OreDictStack(ore), new ItemStack[] { for(String ore : OreDictManager.TH232.all(MaterialShapes.ORE)) recipes.put(new OreDictStack(ore), new ItemStack[] {
new ItemStack(ModItems.powder_thorium, 1), new ItemStack(ModItems.powder_thorium, 1),
new ItemStack(ModItems.powder_thorium, 1), new ItemStack(ModItems.powder_thorium, 1),
new ItemStack(ModItems.powder_uranium, 1), new ItemStack(ModItems.powder_uranium, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(BE.ore()), new ItemStack[] { recipes.put(new OreDictStack(BE.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_beryllium, 1), new ItemStack(ModItems.powder_beryllium, 1),
new ItemStack(ModItems.powder_beryllium, 1), new ItemStack(ModItems.powder_beryllium, 1),
new ItemStack(ModItems.powder_emerald, 1), new ItemStack(ModItems.powder_emerald, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(F.ore()), new ItemStack[] { recipes.put(new OreDictStack(F.ore()), new ItemStack[] {
new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3),
new ItemStack(ModItems.fluorite, 3), new ItemStack(ModItems.fluorite, 3),
new ItemStack(ModItems.gem_sodalite, 1), new ItemStack(ModItems.gem_sodalite, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new OreDictStack(REDSTONE.ore()), new ItemStack[] { recipes.put(new OreDictStack(REDSTONE.ore()), new ItemStack[] {
new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3),
new ItemStack(Items.redstone, 3), new ItemStack(Items.redstone, 3),
lbs ? new ItemStack(ModItems.ingot_mercury, 3) : new ItemStack(ModItems.ingot_mercury, 1), lbs ? new ItemStack(ModItems.ingot_mercury, 3) : new ItemStack(ModItems.ingot_mercury, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new ComparableStack(ModBlocks.ore_tikite), new ItemStack[] { recipes.put(new ComparableStack(ModBlocks.ore_tikite), new ItemStack[] {
new ItemStack(ModItems.powder_plutonium, 1), new ItemStack(ModItems.powder_plutonium, 1),
new ItemStack(ModItems.powder_cobalt, 2), new ItemStack(ModItems.powder_cobalt, 2),
new ItemStack(ModItems.powder_niobium, 2), new ItemStack(ModItems.powder_niobium, 2),
new ItemStack(Blocks.end_stone, 1) }); new ItemStack(Blocks.end_stone, 1) });
recipes.put(new OreDictStack(LAPIS.ore()), new ItemStack[] { recipes.put(new OreDictStack(LAPIS.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_lapis, 6), new ItemStack(ModItems.powder_lapis, 6),
new ItemStack(ModItems.powder_cobalt_tiny, 1), new ItemStack(ModItems.powder_cobalt_tiny, 1),
new ItemStack(ModItems.gem_sodalite, 1), new ItemStack(ModItems.gem_sodalite, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new ComparableStack(ModBlocks.block_euphemium_cluster), new ItemStack[] { recipes.put(new ComparableStack(ModBlocks.block_euphemium_cluster), new ItemStack[] {
new ItemStack(ModItems.nugget_euphemium, 7), new ItemStack(ModItems.nugget_euphemium, 7),
new ItemStack(ModItems.powder_schrabidium, 4), new ItemStack(ModItems.powder_schrabidium, 4),
new ItemStack(ModItems.ingot_starmetal, 2), new ItemStack(ModItems.ingot_starmetal, 2),
new ItemStack(ModItems.nugget_solinium, 2) }); new ItemStack(ModItems.nugget_solinium, 2) });
recipes.put(new ComparableStack(ModBlocks.ore_nether_fire), new ItemStack[] { recipes.put(new ComparableStack(ModBlocks.ore_nether_fire), new ItemStack[] {
new ItemStack(Items.blaze_powder, 2), new ItemStack(Items.blaze_powder, 2),
new ItemStack(ModItems.powder_fire, 2), new ItemStack(ModItems.powder_fire, 2),
new ItemStack(ModItems.ingot_phosphorus), new ItemStack(ModItems.ingot_phosphorus),
new ItemStack(Blocks.netherrack) }); new ItemStack(Blocks.netherrack) });
recipes.put(new OreDictStack(CO.ore()), new ItemStack[] { recipes.put(new OreDictStack(CO.ore()), new ItemStack[] {
new ItemStack(ModItems.powder_cobalt, 2), new ItemStack(ModItems.powder_cobalt, 2),
new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_iron, 1),
new ItemStack(ModItems.powder_copper, 1), new ItemStack(ModItems.powder_copper, 1),
new ItemStack(Blocks.gravel, 1) }); new ItemStack(Blocks.gravel, 1) });
recipes.put(new ComparableStack(ModItems.powder_tektite), new ItemStack[] { recipes.put(new ComparableStack(ModItems.powder_tektite), new ItemStack[] {
new ItemStack(ModItems.powder_meteorite_tiny, 1), new ItemStack(ModItems.powder_meteorite_tiny, 1),
new ItemStack(ModItems.powder_paleogenite_tiny, 1), new ItemStack(ModItems.powder_paleogenite_tiny, 1),
new ItemStack(ModItems.powder_meteorite_tiny, 1), new ItemStack(ModItems.powder_meteorite_tiny, 1),
new ItemStack(ModItems.dust, 6) }); new ItemStack(ModItems.dust, 6) });
recipes.put(new ComparableStack(ModBlocks.block_slag), new ItemStack[] { recipes.put(new ComparableStack(ModBlocks.block_slag), new ItemStack[] {
new ItemStack(Blocks.gravel, 1), new ItemStack(Blocks.gravel, 1),
new ItemStack(ModItems.powder_fire, 1), new ItemStack(ModItems.powder_fire, 1),
new ItemStack(ModItems.powder_calcium), new ItemStack(ModItems.powder_calcium),
new ItemStack(ModItems.dust) }); new ItemStack(ModItems.dust) });
recipes.put(new ComparableStack(ModItems.powder_ash, 1, EnumAshType.COAL.ordinal()), new ItemStack[] { recipes.put(new ComparableStack(ModItems.powder_ash, 1, EnumAshType.COAL.ordinal()), new ItemStack[] {
new ItemStack(ModItems.powder_coal_tiny, 2), new ItemStack(ModItems.powder_coal_tiny, 2),
new ItemStack(ModItems.powder_boron_tiny, 1), new ItemStack(ModItems.powder_boron_tiny, 1),
new ItemStack(ModItems.dust_tiny, 6)}); new ItemStack(ModItems.dust_tiny, 6)});
for(EnumBedrockOre ore : EnumBedrockOre.values()) { for(EnumBedrockOre ore : EnumBedrockOre.values()) {
int i = ore.ordinal(); int i = ore.ordinal();
recipes.put(new ComparableStack(ModItems.ore_bedrock, 1, i), new ItemStack[] { recipes.put(new ComparableStack(ModItems.ore_bedrock, 1, i), new ItemStack[] {
new ItemStack(ModItems.ore_centrifuged, 1, i), new ItemStack(ModItems.ore_centrifuged, 1, i),
new ItemStack(ModItems.ore_centrifuged, 1, i), new ItemStack(ModItems.ore_centrifuged, 1, i),
new ItemStack(ModItems.ore_centrifuged, 1, i), new ItemStack(ModItems.ore_centrifuged, 1, i),
new ItemStack(ModItems.ore_centrifuged, 1, i) }); new ItemStack(ModItems.ore_centrifuged, 1, i) });
recipes.put(new ComparableStack(ModItems.ore_cleaned, 1, i), new ItemStack[] { recipes.put(new ComparableStack(ModItems.ore_cleaned, 1, i), new ItemStack[] {
new ItemStack(ModItems.ore_separated, 1, i), new ItemStack(ModItems.ore_separated, 1, i),
new ItemStack(ModItems.ore_separated, 1, i), new ItemStack(ModItems.ore_separated, 1, i),
new ItemStack(ModItems.ore_separated, 1, i), new ItemStack(ModItems.ore_separated, 1, i),
new ItemStack(ModItems.ore_separated, 1, i) }); new ItemStack(ModItems.ore_separated, 1, i) });
recipes.put(new ComparableStack(ModItems.ore_purified, 1, i), new ItemStack[] { recipes.put(new ComparableStack(ModItems.ore_purified, 1, i), new ItemStack[] {
new ItemStack(ModItems.ore_enriched, 1, i), new ItemStack(ModItems.ore_enriched, 1, i),
new ItemStack(ModItems.ore_enriched, 1, i), new ItemStack(ModItems.ore_enriched, 1, i),
new ItemStack(ModItems.ore_enriched, 1, i), new ItemStack(ModItems.ore_enriched, 1, i),
new ItemStack(ModItems.ore_enriched, 1, i) }); new ItemStack(ModItems.ore_enriched, 1, i) });
EnumByproduct tier1 = ore.byproducts[0]; EnumByproduct tier1 = ore.byproducts[0];
ItemStack by1 = tier1 == null ? new ItemStack(ModItems.dust) : DictFrame.fromOne(ModItems.ore_byproduct, tier1, 1); ItemStack by1 = tier1 == null ? new ItemStack(ModItems.dust) : DictFrame.fromOne(ModItems.ore_byproduct, tier1, 1);
recipes.put(new ComparableStack(ModItems.ore_nitrated, 1, i), new ItemStack[] { recipes.put(new ComparableStack(ModItems.ore_nitrated, 1, i), new ItemStack[] {
@ -496,7 +497,7 @@ public class CentrifugeRecipes extends SerializableRecipe {
new ItemStack(ModItems.ore_nitrocrystalline, 1, i), new ItemStack(ModItems.ore_nitrocrystalline, 1, i),
ItemStackUtil.carefulCopy(by1), ItemStackUtil.carefulCopy(by1),
ItemStackUtil.carefulCopy(by1) }); ItemStackUtil.carefulCopy(by1) });
EnumByproduct tier2 = ore.byproducts[1]; EnumByproduct tier2 = ore.byproducts[1];
ItemStack by2 = tier2 == null ? new ItemStack(ModItems.dust) : DictFrame.fromOne(ModItems.ore_byproduct, tier2, 1); ItemStack by2 = tier2 == null ? new ItemStack(ModItems.dust) : DictFrame.fromOne(ModItems.ore_byproduct, tier2, 1);
recipes.put(new ComparableStack(ModItems.ore_deepcleaned, 1, i), new ItemStack[] { recipes.put(new ComparableStack(ModItems.ore_deepcleaned, 1, i), new ItemStack[] {
@ -504,7 +505,7 @@ public class CentrifugeRecipes extends SerializableRecipe {
new ItemStack(ModItems.ore_enriched, 1, i), new ItemStack(ModItems.ore_enriched, 1, i),
ItemStackUtil.carefulCopy(by2), ItemStackUtil.carefulCopy(by2),
ItemStackUtil.carefulCopy(by2) }); ItemStackUtil.carefulCopy(by2) });
EnumByproduct tier3 = ore.byproducts[2]; EnumByproduct tier3 = ore.byproducts[2];
ItemStack by3 = tier3 == null ? new ItemStack(ModItems.dust) : DictFrame.fromOne(ModItems.ore_byproduct, tier3, 1); ItemStack by3 = tier3 == null ? new ItemStack(ModItems.dust) : DictFrame.fromOne(ModItems.ore_byproduct, tier3, 1);
recipes.put(new ComparableStack(ModItems.ore_seared, 1, i), new ItemStack[] { recipes.put(new ComparableStack(ModItems.ore_seared, 1, i), new ItemStack[] {
@ -513,7 +514,7 @@ public class CentrifugeRecipes extends SerializableRecipe {
ItemStackUtil.carefulCopy(by3), ItemStackUtil.carefulCopy(by3),
ItemStackUtil.carefulCopy(by3) }); ItemStackUtil.carefulCopy(by3) });
} }
for(BedrockOreType type : BedrockOreType.values()) { for(BedrockOreType type : BedrockOreType.values()) {
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), new ItemStack(Blocks.gravel)}); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new ItemStack[] {ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type), new ItemStack(Blocks.gravel)});
@ -536,20 +537,20 @@ public class CentrifugeRecipes extends SerializableRecipe {
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductSolvent1, 1), ItemBedrockOreNew.extract(type.byproductSolvent2, 1), ItemBedrockOreNew.extract(type.byproductSolvent3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.SOLVENT_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductSolvent1, 1), ItemBedrockOreNew.extract(type.byproductSolvent2, 1), ItemBedrockOreNew.extract(type.byproductSolvent3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)});
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductRad1, 1), ItemBedrockOreNew.extract(type.byproductRad2, 1), ItemBedrockOreNew.extract(type.byproductRad3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)}); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_WASHED, type)), new ItemStack[] {ItemBedrockOreNew.extract(type.byproductRad1, 1), ItemBedrockOreNew.extract(type.byproductRad2, 1), ItemBedrockOreNew.extract(type.byproductRad3, 1), ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)});
} }
List<ItemStack> quartz = OreDictionary.getOres("crystalCertusQuartz"); List<ItemStack> quartz = OreDictionary.getOres("crystalCertusQuartz");
if(quartz != null && !quartz.isEmpty()) { if(quartz != null && !quartz.isEmpty()) {
ItemStack qItem = quartz.get(0).copy(); ItemStack qItem = quartz.get(0).copy();
qItem.stackSize = 2; qItem.stackSize = 2;
recipes.put(new OreDictStack("oreCertusQuartz"), new ItemStack[] { recipes.put(new OreDictStack("oreCertusQuartz"), new ItemStack[] {
qItem.copy(), qItem.copy(),
qItem.copy(), qItem.copy(),
qItem.copy(), qItem.copy(),
qItem.copy() }); qItem.copy() });
} }
recipes.put(new ComparableStack(Items.blaze_rod), new ItemStack[] {new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.blaze_powder, 1), new ItemStack(ModItems.powder_fire, 1), new ItemStack(ModItems.powder_fire, 1) }); recipes.put(new ComparableStack(Items.blaze_rod), new ItemStack[] {new ItemStack(Items.blaze_powder, 1), new ItemStack(Items.blaze_powder, 1), new ItemStack(ModItems.powder_fire, 1), new ItemStack(ModItems.powder_fire, 1) });
recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 1), new ItemStack(ModItems.nugget_uranium, 3), new ItemStack(ModItems.nugget_neptunium, 2) }); recipes.put(new ComparableStack(ModItems.ingot_schraranium), new ItemStack[] { new ItemStack(ModItems.nugget_schrabidium, 2), new ItemStack(ModItems.nugget_schrabidium, 1), new ItemStack(ModItems.nugget_uranium, 3), new ItemStack(ModItems.nugget_neptunium, 2) });
@ -568,7 +569,7 @@ public class CentrifugeRecipes extends SerializableRecipe {
recipes.put(new ComparableStack(ModItems.crystal_niter), new ItemStack[] { new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_niter), new ItemStack[] { new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.niter, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) });
recipes.put(new ComparableStack(ModItems.crystal_copper), new ItemStack[] { new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.powder_cobalt_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_copper), new ItemStack[] { new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.powder_copper, 2), new ItemStack(ModItems.sulfur, 1), new ItemStack(ModItems.powder_cobalt_tiny, 1) });
recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ItemStack[] { new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ItemStack[] { new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_tungsten, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) });
recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ItemStack[] { new ItemStack(ModItems.powder_aluminium, 2), new ItemStack(ModItems.powder_aluminium, 2), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ItemStack[] { new ItemStack(ModItems.chunk_ore, 3, ItemEnums.EnumChunkType.CRYOLITE.ordinal()), new ItemStack(ModItems.powder_titanium, 1), new ItemStack(ModItems.powder_iron, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) });
recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.gem_sodalite, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_fluorite), new ItemStack[] { new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.fluorite, 4), new ItemStack(ModItems.gem_sodalite, 2), new ItemStack(ModItems.powder_lithium_tiny, 1) });
recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ItemStack[] { new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ItemStack[] { new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_beryllium, 2), new ItemStack(ModItems.powder_quartz, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) });
recipes.put(new ComparableStack(ModItems.crystal_lead), new ItemStack[] { new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_lead), new ItemStack[] { new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_lead, 2), new ItemStack(ModItems.powder_gold, 1), new ItemStack(ModItems.powder_lithium_tiny, 1) });
@ -581,44 +582,44 @@ public class CentrifugeRecipes extends SerializableRecipe {
recipes.put(new ComparableStack(ModItems.crystal_starmetal), new ItemStack[] { new ItemStack(ModItems.powder_dura_steel, 3), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_astatine, 2), new ItemStack(ModItems.ingot_mercury, 5) }); recipes.put(new ComparableStack(ModItems.crystal_starmetal), new ItemStack[] { new ItemStack(ModItems.powder_dura_steel, 3), new ItemStack(ModItems.powder_cobalt, 3), new ItemStack(ModItems.powder_astatine, 2), new ItemStack(ModItems.ingot_mercury, 5) });
recipes.put(new ComparableStack(ModItems.crystal_cobalt), new ItemStack[] { new ItemStack(ModItems.powder_cobalt, 2), new ItemStack(ModItems.powder_iron, 3), new ItemStack(ModItems.powder_copper, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) }); recipes.put(new ComparableStack(ModItems.crystal_cobalt), new ItemStack[] { new ItemStack(ModItems.powder_cobalt, 2), new ItemStack(ModItems.powder_iron, 3), new ItemStack(ModItems.powder_copper, 3), new ItemStack(ModItems.powder_lithium_tiny, 1) });
} }
@Override @Override
public void registerPost() { public void registerPost() {
if(!IMCCentrifuge.buffer.isEmpty()) { if(!IMCCentrifuge.buffer.isEmpty()) {
recipes.putAll(IMCCentrifuge.buffer); recipes.putAll(IMCCentrifuge.buffer);
MainRegistry.logger.info("Fetched " + IMCCentrifuge.buffer.size() + " IMC centrifuge recipes!"); MainRegistry.logger.info("Fetched " + IMCCentrifuge.buffer.size() + " IMC centrifuge recipes!");
IMCCentrifuge.buffer.clear(); IMCCentrifuge.buffer.clear();
} }
} }
public static ItemStack[] getOutput(ItemStack stack) { public static ItemStack[] getOutput(ItemStack stack) {
if(stack == null || stack.getItem() == null) if(stack == null || stack.getItem() == null)
return null; return null;
ComparableStack comp = new ComparableStack(stack).makeSingular(); ComparableStack comp = new ComparableStack(stack).makeSingular();
if(recipes.containsKey(comp)) if(recipes.containsKey(comp))
return RecipesCommon.copyStackArray(recipes.get(comp)); return RecipesCommon.copyStackArray(recipes.get(comp));
for(Entry<AStack, ItemStack[]> entry : recipes.entrySet()) { for(Entry<AStack, ItemStack[]> entry : recipes.entrySet()) {
if(entry.getKey().isApplicable(stack)) { if(entry.getKey().isApplicable(stack)) {
return RecipesCommon.copyStackArray(entry.getValue()); return RecipesCommon.copyStackArray(entry.getValue());
} }
} }
return null; return null;
} }
public static HashMap getRecipes() { public static HashMap getRecipes() {
HashMap<Object, Object[]> recipes = new HashMap<Object, Object[]>(); HashMap<Object, Object[]> recipes = new HashMap<Object, Object[]>();
for(Entry<AStack, ItemStack[]> entry : CentrifugeRecipes.recipes.entrySet()) { for(Entry<AStack, ItemStack[]> entry : CentrifugeRecipes.recipes.entrySet()) {
recipes.put(entry.getKey(), entry.getValue()); recipes.put(entry.getKey(), entry.getValue());
} }
return recipes; return recipes;
} }

View File

@ -26,7 +26,7 @@ import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class ChemplantRecipes extends SerializableRecipe { public class ChemplantRecipes extends SerializableRecipe {
/** /**
* Nice order: The order in which the ChemRecipe are added to the recipes list * Nice order: The order in which the ChemRecipe are added to the recipes list
* Meta order: Fixed using the id param, saved in indexMapping * Meta order: Fixed using the id param, saved in indexMapping
@ -34,13 +34,13 @@ public class ChemplantRecipes extends SerializableRecipe {
public static HashMap<Integer, ChemRecipe> indexMapping = new HashMap(); public static HashMap<Integer, ChemRecipe> indexMapping = new HashMap();
public static List<ChemRecipe> recipes = new ArrayList(); public static List<ChemRecipe> recipes = new ArrayList();
@Override @Override
public void registerDefaults() { public void registerDefaults() {
//6-30, formerly oil cracking, coal liquefaction and solidifciation //6-30, formerly oil cracking, coal liquefaction and solidifciation
registerOtherOil(); registerOtherOil();
recipes.add(new ChemRecipe(36, "COOLANT", 50) recipes.add(new ChemRecipe(36, "COOLANT", 50)
.inputItems(new OreDictStack(KNO.dust())) .inputItems(new OreDictStack(KNO.dust()))
.inputFluids(new FluidStack(Fluids.WATER, 1800)) .inputFluids(new FluidStack(Fluids.WATER, 1800))
@ -99,7 +99,7 @@ public class ChemplantRecipes extends SerializableRecipe {
new FluidStack(Fluids.XYLENE, 500), new FluidStack(Fluids.XYLENE, 500),
new FluidStack(Fluids.OXYGEN, 100)) new FluidStack(Fluids.OXYGEN, 100))
.outputItems(new ItemStack(ModItems.ingot_pet)));*/ .outputItems(new ItemStack(ModItems.ingot_pet)));*/
//Laminate Glass going here //Laminate Glass going here
recipes.add(new ChemRecipe(97, "LAMINATE", 100) recipes.add(new ChemRecipe(97, "LAMINATE", 100)
.inputFluids( .inputFluids(
@ -374,7 +374,7 @@ public class ChemplantRecipes extends SerializableRecipe {
recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200) recipes.add(new ChemRecipe(101, "CC_CENTRIFUGE", 200)
.inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000)) .inputFluids(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 500), new FluidStack(Fluids.SULFURIC_ACID, 8_000))
.outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250))); .outputFluids(new FluidStack(Fluids.POTASSIUM_CHLORIDE, 250), new FluidStack(Fluids.CALCIUM_CHLORIDE, 250)));
recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60) recipes.add(new ChemRecipe(102, "THORIUM_SALT", 60)
.inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000)) .inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000))
.inputItems(new OreDictStack(TH232.nugget(), 2)) .inputItems(new OreDictStack(TH232.nugget(), 2))
@ -411,7 +411,7 @@ public class ChemplantRecipes extends SerializableRecipe {
.inputFluids(new FluidStack(1000, Fluids.BITUMEN)) .inputFluids(new FluidStack(1000, Fluids.BITUMEN))
.outputItems(new ItemStack(ModBlocks.asphalt, 16))); .outputItems(new ItemStack(ModBlocks.asphalt, 16)));
} }
public static class ChemRecipe { public static class ChemRecipe {
public int listing; public int listing;
@ -422,49 +422,49 @@ public class ChemplantRecipes extends SerializableRecipe {
public ItemStack[] outputs; public ItemStack[] outputs;
public FluidStack[] outputFluids; public FluidStack[] outputFluids;
private int duration; private int duration;
public ChemRecipe(int index, String name, int duration) { public ChemRecipe(int index, String name, int duration) {
this.id = index; this.id = index;
this.name = name; this.name = name;
this.duration = duration; this.duration = duration;
this.listing = recipes.size(); this.listing = recipes.size();
this.inputs = new AStack[4]; this.inputs = new AStack[4];
this.outputs = new ItemStack[4]; this.outputs = new ItemStack[4];
this.inputFluids = new FluidStack[2]; this.inputFluids = new FluidStack[2];
this.outputFluids = new FluidStack[2]; this.outputFluids = new FluidStack[2];
if(!indexMapping.containsKey(id)) { if(!indexMapping.containsKey(id)) {
indexMapping.put(id, this); indexMapping.put(id, this);
} else { } else {
throw new IllegalStateException("Chemical plant recipe " + name + " has been registered with duplicate id " + id + " used by " + indexMapping.get(id).name + "!"); throw new IllegalStateException("Chemical plant recipe " + name + " has been registered with duplicate id " + id + " used by " + indexMapping.get(id).name + "!");
} }
} }
public ChemRecipe inputItems(AStack... in) { public ChemRecipe inputItems(AStack... in) {
for(int i = 0; i < in.length; i++) this.inputs[i] = in[i]; for(int i = 0; i < in.length; i++) this.inputs[i] = in[i];
return this; return this;
} }
public ChemRecipe inputFluids(FluidStack... in) { public ChemRecipe inputFluids(FluidStack... in) {
for(int i = 0; i < in.length; i++) this.inputFluids[i] = in[i]; for(int i = 0; i < in.length; i++) this.inputFluids[i] = in[i];
return this; return this;
} }
public ChemRecipe outputItems(ItemStack... out) { public ChemRecipe outputItems(ItemStack... out) {
for(int i = 0; i < out.length; i++) this.outputs[i] = out[i]; for(int i = 0; i < out.length; i++) this.outputs[i] = out[i];
return this; return this;
} }
public ChemRecipe outputFluids(FluidStack... out) { public ChemRecipe outputFluids(FluidStack... out) {
for(int i = 0; i < out.length; i++) this.outputFluids[i] = out[i]; for(int i = 0; i < out.length; i++) this.outputFluids[i] = out[i];
return this; return this;
} }
public int getId() { public int getId() {
return this.id; return this.id;
} }
public int getDuration() { public int getDuration() {
return this.duration; return this.duration;
} }
@ -486,7 +486,7 @@ public class ChemplantRecipes extends SerializableRecipe {
int id = obj.get("id").getAsInt(); int id = obj.get("id").getAsInt();
String name = obj.get("name").getAsString(); String name = obj.get("name").getAsString();
int duration = obj.get("duration").getAsInt(); int duration = obj.get("duration").getAsInt();
recipes.add(new ChemRecipe(id, name, duration) recipes.add(new ChemRecipe(id, name, duration)
.inputFluids( this.readFluidArray( (JsonArray) obj.get("fluidInput"))) .inputFluids( this.readFluidArray( (JsonArray) obj.get("fluidInput")))
.inputItems( this.readAStackArray( (JsonArray) obj.get("itemInput"))) .inputItems( this.readAStackArray( (JsonArray) obj.get("itemInput")))
@ -522,7 +522,7 @@ public class ChemplantRecipes extends SerializableRecipe {
ex.printStackTrace(); ex.printStackTrace();
} }
} }
public String getComment() { public String getComment() {
return "Rules: All in- and output arrays need to be present, even if empty. IDs need to be unique, but not sequential. It's safe if you add your own" return "Rules: All in- and output arrays need to be present, even if empty. IDs need to be unique, but not sequential. It's safe if you add your own"
+ " recipes starting with ID 1000. Template order depends on the order of the recipes in this JSON file. The 'name' field is responsible for" + " recipes starting with ID 1000. Template order depends on the order of the recipes in this JSON file. The 'name' field is responsible for"

View File

@ -24,7 +24,7 @@ import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class CokerRecipes extends SerializableRecipe { public class CokerRecipes extends SerializableRecipe {
private static HashMap<FluidType, Triplet<Integer, ItemStack, FluidStack>> recipes = new HashMap(); private static HashMap<FluidType, Triplet<Integer, ItemStack, FluidStack>> recipes = new HashMap();
@Override @Override
@ -58,7 +58,7 @@ public class CokerRecipes extends SerializableRecipe {
registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER); registerSFAuto(WOODOIL, 340_000L, new ItemStack(Items.coal, 1, 1), GAS_COKER);
registerRecipe(WATZ, 4_000, new ItemStack(ModItems.ingot_mud, 4), null); registerRecipe(WATZ, 4_000, new ItemStack(ModItems.ingot_mud, 4), null);
registerRecipe(REDMUD, 1_000, new ItemStack(Items.iron_ingot, 1), new FluidStack(MERCURY, 50)); registerRecipe(REDMUD, 450, new ItemStack(Items.iron_ingot, 1), new FluidStack(MERCURY, 50));
registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600)); registerRecipe(BITUMEN, 16_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_600));
registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200)); registerRecipe(LUBRICANT, 12_000, DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM), new FluidStack(OIL_COKER, 1_200));
registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100)); registerRecipe(CALCIUM_SOLUTION, 125, new ItemStack(ModItems.powder_calcium), new FluidStack(SPENTSTEAM, 100));
@ -74,17 +74,17 @@ public class CokerRecipes extends SerializableRecipe {
private static void registerSFAuto(FluidType fluid, long tuPerSF, ItemStack fuel, FluidType type) { private static void registerSFAuto(FluidType fluid, long tuPerSF, ItemStack fuel, FluidType type) {
long tuFlammable = fluid.hasTrait(FT_Flammable.class) ? fluid.getTrait(FT_Flammable.class).getHeatEnergy() : 0; long tuFlammable = fluid.hasTrait(FT_Flammable.class) ? fluid.getTrait(FT_Flammable.class).getHeatEnergy() : 0;
long tuCombustible = fluid.hasTrait(FT_Combustible.class) ? fluid.getTrait(FT_Combustible.class).getCombustionEnergy() : 0; long tuCombustible = fluid.hasTrait(FT_Combustible.class) ? fluid.getTrait(FT_Combustible.class).getCombustionEnergy() : 0;
long tuPerBucket = Math.max(tuFlammable, tuCombustible); long tuPerBucket = Math.max(tuFlammable, tuCombustible);
double penalty = 1;//1.1D; //no penalty double penalty = 1;//1.1D; //no penalty
int mB = (int) (tuPerSF * 1000L * penalty / tuPerBucket); int mB = (int) (tuPerSF * 1000L * penalty / tuPerBucket);
if(mB > 10_000) mB -= (mB % 1000); if(mB > 10_000) mB -= (mB % 1000);
else if(mB > 1_000) mB -= (mB % 100); else if(mB > 1_000) mB -= (mB % 100);
else if(mB > 100) mB -= (mB % 10); else if(mB > 100) mB -= (mB % 10);
FluidStack byproduct = type == null ? null : new FluidStack(type, Math.max(10, mB / 10)); FluidStack byproduct = type == null ? null : new FluidStack(type, Math.max(10, mB / 10));
registerRecipe(fluid, mB, fuel, byproduct); registerRecipe(fluid, mB, fuel, byproduct);
@ -92,28 +92,28 @@ public class CokerRecipes extends SerializableRecipe {
private static void registerRecipe(FluidType type, int quantity, ItemStack output, FluidStack byproduct) { private static void registerRecipe(FluidType type, int quantity, ItemStack output, FluidStack byproduct) {
recipes.put(type, new Triplet(quantity, output, byproduct)); recipes.put(type, new Triplet(quantity, output, byproduct));
} }
public static Triplet<Integer, ItemStack, FluidStack> getOutput(FluidType type) { public static Triplet<Integer, ItemStack, FluidStack> getOutput(FluidType type) {
return recipes.get(type); return recipes.get(type);
} }
public static HashMap<ItemStack, ItemStack[]> getRecipes() { public static HashMap<ItemStack, ItemStack[]> getRecipes() {
HashMap<ItemStack, ItemStack[]> recipes = new HashMap<ItemStack, ItemStack[]>(); HashMap<ItemStack, ItemStack[]> recipes = new HashMap<ItemStack, ItemStack[]>();
for(Entry<FluidType, Triplet<Integer, ItemStack, FluidStack>> entry : CokerRecipes.recipes.entrySet()) { for(Entry<FluidType, Triplet<Integer, ItemStack, FluidStack>> entry : CokerRecipes.recipes.entrySet()) {
FluidType type = entry.getKey(); FluidType type = entry.getKey();
int amount = entry.getValue().getX(); int amount = entry.getValue().getX();
ItemStack out = entry.getValue().getY().copy(); ItemStack out = entry.getValue().getY().copy();
FluidStack byproduct = entry.getValue().getZ(); FluidStack byproduct = entry.getValue().getZ();
if(out != null && byproduct != null) recipes.put(ItemFluidIcon.make(type, amount), new ItemStack[] {out, ItemFluidIcon.make(byproduct)}); if(out != null && byproduct != null) recipes.put(ItemFluidIcon.make(type, amount), new ItemStack[] {out, ItemFluidIcon.make(byproduct)});
if(out != null && byproduct == null) recipes.put(ItemFluidIcon.make(type, amount), new ItemStack[] {out}); if(out != null && byproduct == null) recipes.put(ItemFluidIcon.make(type, amount), new ItemStack[] {out});
if(out == null && byproduct != null) recipes.put(ItemFluidIcon.make(type, amount), new ItemStack[] {ItemFluidIcon.make(byproduct)}); if(out == null && byproduct != null) recipes.put(ItemFluidIcon.make(type, amount), new ItemStack[] {ItemFluidIcon.make(byproduct)});
} }
return recipes; return recipes;
} }

View File

@ -9,8 +9,6 @@ import static com.hbm.inventory.OreDictManager.*;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter; import com.google.gson.stream.JsonWriter;
import com.hbm.blocks.BlockEnums.EnumStoneType;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidStack;
import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.OreDictManager.DictFrame;
import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.AStack;
@ -18,6 +16,7 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.RecipesCommon.OreDictStack; import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums;
import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumAshType;
import com.hbm.items.ItemEnums.EnumBriquetteType; import com.hbm.items.ItemEnums.EnumBriquetteType;
import com.hbm.items.ItemEnums.EnumCokeType; import com.hbm.items.ItemEnums.EnumCokeType;
@ -42,7 +41,7 @@ public class CombinationRecipes extends SerializableRecipe {
recipes.put(COAL.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(COAL.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 100)));
recipes.put(COAL.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(COAL.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 100)));
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.COAL)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 150))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.COAL)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.COAL), new FluidStack(Fluids.COALCREOSOTE, 150)));
recipes.put(LIGNITE.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(LIGNITE.gem(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50)));
recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50))); recipes.put(LIGNITE.dust(), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 50)));
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.briquette, EnumBriquetteType.LIGNITE)), new Pair(DictFrame.fromOne(ModItems.coke, EnumCokeType.LIGNITE), new FluidStack(Fluids.COALCREOSOTE, 100)));
@ -52,7 +51,7 @@ public class CombinationRecipes extends SerializableRecipe {
recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100))); recipes.put(CINNABAR.crystal(), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.MERCURY, 100)));
recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(new ComparableStack(Items.glowstone_dust), new Pair(new ItemStack(ModItems.sulfur), new FluidStack(Fluids.CHLORINE, 100)));
recipes.put(SODALITE.gem(), new Pair(new ItemStack(ModItems.powder_sodium), new FluidStack(Fluids.CHLORINE, 100))); recipes.put(SODALITE.gem(), new Pair(new ItemStack(ModItems.powder_sodium), new FluidStack(Fluids.CHLORINE, 100)));
recipes.put(new ComparableStack(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE)), new Pair(new ItemStack(ModItems.ingot_aluminium, 2), new FluidStack(Fluids.REDMUD, 250))); recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, ItemEnums.EnumChunkType.CRYOLITE)), new Pair(new ItemStack(ModItems.powder_aluminium, 1), new FluidStack(Fluids.LYE, 150)));
recipes.put(NA.dust(), new Pair(null, new FluidStack(Fluids.SODIUM, 100))); recipes.put(NA.dust(), new Pair(null, new FluidStack(Fluids.SODIUM, 100)));
recipes.put(LIMESTONE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CARBONDIOXIDE, 50))); recipes.put(LIMESTONE.dust(), new Pair(new ItemStack(ModItems.powder_calcium), new FluidStack(Fluids.CARBONDIOXIDE, 50)));
@ -67,7 +66,7 @@ public class CombinationRecipes extends SerializableRecipe {
recipes.put(new ComparableStack(Items.reeds), new Pair(new ItemStack(Items.sugar, 2), new FluidStack(Fluids.ETHANOL, 50))); recipes.put(new ComparableStack(Items.reeds), new Pair(new ItemStack(Items.sugar, 2), new FluidStack(Fluids.ETHANOL, 50)));
recipes.put(new ComparableStack(Blocks.clay), new Pair(new ItemStack(Blocks.brick_block, 1), null)); recipes.put(new ComparableStack(Blocks.clay), new Pair(new ItemStack(Blocks.brick_block, 1), null));
for(BedrockOreType type : BedrockOreType.values()) { for(BedrockOreType type : BedrockOreType.values()) {
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50)));
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50)));
@ -76,21 +75,21 @@ public class CombinationRecipes extends SerializableRecipe {
recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50))); recipes.put(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.RAD_BYPRODUCT, type)), new Pair(ItemBedrockOreNew.make(BedrockOreGrade.RAD_ROASTED, type), new FluidStack(Fluids.VITRIOL, 50)));
} }
} }
public static Pair<ItemStack, FluidStack> getOutput(ItemStack stack) { public static Pair<ItemStack, FluidStack> getOutput(ItemStack stack) {
if(stack == null || stack.getItem() == null) if(stack == null || stack.getItem() == null)
return null; return null;
ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage());
if(recipes.containsKey(comp)) { if(recipes.containsKey(comp)) {
Pair<ItemStack, FluidStack> out = recipes.get(comp); Pair<ItemStack, FluidStack> out = recipes.get(comp);
return new Pair(out.getKey() == null ? null : out.getKey().copy(), out.getValue()); return new Pair(out.getKey() == null ? null : out.getKey().copy(), out.getValue());
} }
String[] dictKeys = comp.getDictKeys(); String[] dictKeys = comp.getDictKeys();
for(String key : dictKeys) { for(String key : dictKeys) {
if(recipes.containsKey(key)) { if(recipes.containsKey(key)) {
@ -98,19 +97,19 @@ public class CombinationRecipes extends SerializableRecipe {
return new Pair(out.getKey() == null ? null : out.getKey().copy(), out.getValue()); return new Pair(out.getKey() == null ? null : out.getKey().copy(), out.getValue());
} }
} }
return null; return null;
} }
public static HashMap getRecipes() { public static HashMap getRecipes() {
HashMap<Object, Object[]> recipes = new HashMap<Object, Object[]>(); HashMap<Object, Object[]> recipes = new HashMap<Object, Object[]>();
for(Entry<Object, Pair<ItemStack, FluidStack>> entry : CombinationRecipes.recipes.entrySet()) { for(Entry<Object, Pair<ItemStack, FluidStack>> entry : CombinationRecipes.recipes.entrySet()) {
Object key = entry.getKey(); Object key = entry.getKey();
Pair<ItemStack, FluidStack> val = entry.getValue(); Pair<ItemStack, FluidStack> val = entry.getValue();
Object o = key instanceof String ? new OreDictStack((String) key) : key; Object o = key instanceof String ? new OreDictStack((String) key) : key;
if(val.getKey() != null && val.getValue() != null) { if(val.getKey() != null && val.getValue() != null) {
recipes.put(o, new ItemStack[] {val.getKey(), ItemFluidIcon.make(val.getValue())}); recipes.put(o, new ItemStack[] {val.getKey(), ItemFluidIcon.make(val.getValue())});
} else if(val.getKey() != null) { } else if(val.getKey() != null) {
@ -119,7 +118,7 @@ public class CombinationRecipes extends SerializableRecipe {
recipes.put(o, new ItemStack[] {ItemFluidIcon.make(val.getValue())}); recipes.put(o, new ItemStack[] {ItemFluidIcon.make(val.getValue())});
} }
} }
return recipes; return recipes;
} }
@ -139,10 +138,10 @@ public class CombinationRecipes extends SerializableRecipe {
AStack in = this.readAStack(obj.get("input").getAsJsonArray()); AStack in = this.readAStack(obj.get("input").getAsJsonArray());
FluidStack fluid = null; FluidStack fluid = null;
ItemStack out = null; ItemStack out = null;
if(obj.has("fluid")) fluid = this.readFluidStack(obj.get("fluid").getAsJsonArray()); if(obj.has("fluid")) fluid = this.readFluidStack(obj.get("fluid").getAsJsonArray());
if(obj.has("output")) out = this.readItemStack(obj.get("output").getAsJsonArray()); if(obj.has("output")) out = this.readItemStack(obj.get("output").getAsJsonArray());
if(in instanceof ComparableStack) { if(in instanceof ComparableStack) {
recipes.put(((ComparableStack) in).makeSingular(), new Pair(out, fluid)); recipes.put(((ComparableStack) in).makeSingular(), new Pair(out, fluid));
} else if(in instanceof OreDictStack) { } else if(in instanceof OreDictStack) {
@ -157,7 +156,7 @@ public class CombinationRecipes extends SerializableRecipe {
Pair<ItemStack, FluidStack> Pair = rec.getValue(); Pair<ItemStack, FluidStack> Pair = rec.getValue();
ItemStack output = Pair.key; ItemStack output = Pair.key;
FluidStack fluid = Pair.value; FluidStack fluid = Pair.value;
writer.name("input"); writer.name("input");
if(in instanceof String) { if(in instanceof String) {
this.writeAStack(new OreDictStack((String) in), writer); this.writeAStack(new OreDictStack((String) in), writer);

View File

@ -27,7 +27,8 @@ public class CompressorRecipes extends SerializableRecipe {
recipes.put(new Pair(Fluids.BLOOD, 3), new CompressorRecipe(1_000, new FluidStack(Fluids.HEAVYOIL, 250, 0), 200)); recipes.put(new Pair(Fluids.BLOOD, 3), new CompressorRecipe(1_000, new FluidStack(Fluids.HEAVYOIL, 250, 0), 200));
recipes.put(new Pair(Fluids.PERFLUOROMETHYL, 1), new CompressorRecipe(1_000, new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 1_000, 0), 100)); recipes.put(new Pair(Fluids.PERFLUOROMETHYL, 0), new CompressorRecipe(1_000, new FluidStack(Fluids.PERFLUOROMETHYL, 1_000, 1), 50));
recipes.put(new Pair(Fluids.PERFLUOROMETHYL, 1), new CompressorRecipe(1_000, new FluidStack(Fluids.PERFLUOROMETHYL_COLD, 1_000, 0), 50));
} }
public static HashMap getRecipes() { public static HashMap getRecipes() {

View File

@ -48,7 +48,7 @@ import net.minecraftforge.oredict.OreDictionary;
//This time we're doing this right //This time we're doing this right
//...right? //...right?
public class CrystallizerRecipes extends SerializableRecipe { public class CrystallizerRecipes extends SerializableRecipe {
//'Object' is either a ComparableStack or the key for the ore dict //'Object' is either a ComparableStack or the key for the ore dict
private static HashMap<Pair<Object, FluidType>, CrystallizerRecipe> recipes = new HashMap(); private static HashMap<Pair<Object, FluidType>, CrystallizerRecipe> recipes = new HashMap();
private static HashMap<Object, Integer> amounts = new HashMap(); // for use in the partitioner private static HashMap<Object, Integer> amounts = new HashMap(); // for use in the partitioner
@ -83,12 +83,13 @@ public class CrystallizerRecipes extends SerializableRecipe {
registerRecipe(LI.ore(), new CrystallizerRecipe(ModItems.crystal_lithium, baseTime), sulfur); registerRecipe(LI.ore(), new CrystallizerRecipe(ModItems.crystal_lithium, baseTime), sulfur);
//registerRecipe(STAR.ore(), new CrystallizerRecipe(ModItems.crystal_starmetal, baseTime), sulfur); //registerRecipe(STAR.ore(), new CrystallizerRecipe(ModItems.crystal_starmetal, baseTime), sulfur);
registerRecipe(CO.ore(), new CrystallizerRecipe(ModItems.crystal_cobalt, baseTime), sulfur); registerRecipe(CO.ore(), new CrystallizerRecipe(ModItems.crystal_cobalt, baseTime), sulfur);
registerRecipe(new ComparableStack(ModItems.powder_calcium), new CrystallizerRecipe(new ItemStack(ModItems.powder_cement, 8), utilityTime), new FluidStack(Fluids.REDMUD, 75));
registerRecipe(MALACHITE.ingot(), new CrystallizerRecipe(ItemScraps.create(new MaterialStack(Mats.MAT_COPPER, MaterialShapes.INGOT.q(1))), 300), new FluidStack(Fluids.SULFURIC_ACID, 250)); registerRecipe(MALACHITE.ingot(), new CrystallizerRecipe(ItemScraps.create(new MaterialStack(Mats.MAT_COPPER, MaterialShapes.INGOT.q(1))), 300), new FluidStack(Fluids.SULFURIC_ACID, 250));
registerRecipe("oreRareEarth", new CrystallizerRecipe(ModItems.crystal_rare, baseTime), sulfur); registerRecipe("oreRareEarth", new CrystallizerRecipe(ModItems.crystal_rare, baseTime), sulfur);
registerRecipe("oreCinnabar", new CrystallizerRecipe(ModItems.crystal_cinnebar, baseTime)); registerRecipe("oreCinnabar", new CrystallizerRecipe(ModItems.crystal_cinnebar, baseTime));
registerRecipe(new ComparableStack(ModBlocks.ore_nether_fire), new CrystallizerRecipe(ModItems.crystal_phosphorus, baseTime)); registerRecipe(new ComparableStack(ModBlocks.ore_nether_fire), new CrystallizerRecipe(ModItems.crystal_phosphorus, baseTime));
registerRecipe(new ComparableStack(ModBlocks.ore_tikite), new CrystallizerRecipe(ModItems.crystal_trixite, baseTime), sulfur); registerRecipe(new ComparableStack(ModBlocks.ore_tikite), new CrystallizerRecipe(ModItems.crystal_trixite, baseTime), sulfur);
registerRecipe(new ComparableStack(ModBlocks.gravel_diamond), new CrystallizerRecipe(ModItems.crystal_diamond, baseTime)); registerRecipe(new ComparableStack(ModBlocks.gravel_diamond), new CrystallizerRecipe(ModItems.crystal_diamond, baseTime));
@ -111,7 +112,7 @@ public class CrystallizerRecipes extends SerializableRecipe {
registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CrystallizerRecipe(new ItemStack(ModItems.powder_cadmium), 100).setReq(10), new FluidStack(Fluids.RADIOSOLVENT, 250)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.plant_item, EnumPlantType.MUSTARDWILLOW)), new CrystallizerRecipe(new ItemStack(ModItems.powder_cadmium), 100).setReq(10), new FluidStack(Fluids.RADIOSOLVENT, 250));
registerRecipe(new ComparableStack(ModItems.scrap_oil), new CrystallizerRecipe(new ItemStack(ModItems.nugget_arsenic), 100).setReq(16), new FluidStack(Fluids.RADIOSOLVENT, 100)); registerRecipe(new ComparableStack(ModItems.scrap_oil), new CrystallizerRecipe(new ItemStack(ModItems.nugget_arsenic), 100).setReq(16), new FluidStack(Fluids.RADIOSOLVENT, 100));
registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE)), new CrystallizerRecipe(new ItemStack(ModItems.ingot_cft), baseTime).setReq(4), new FluidStack(Fluids.XYLENE, 1_000)); registerRecipe(new ComparableStack(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE)), new CrystallizerRecipe(new ItemStack(ModItems.ingot_cft), baseTime).setReq(4), new FluidStack(Fluids.XYLENE, 1_000));
registerRecipe(DIAMOND.dust(), new CrystallizerRecipe(Items.diamond, utilityTime)); registerRecipe(DIAMOND.dust(), new CrystallizerRecipe(Items.diamond, utilityTime));
registerRecipe(EMERALD.dust(), new CrystallizerRecipe(Items.emerald, utilityTime)); registerRecipe(EMERALD.dust(), new CrystallizerRecipe(Items.emerald, utilityTime));
registerRecipe(LAPIS.dust(), new CrystallizerRecipe(new ItemStack(Items.dye, 1, 4), utilityTime)); registerRecipe(LAPIS.dust(), new CrystallizerRecipe(new ItemStack(Items.dye, 1, 4), utilityTime));
@ -121,10 +122,10 @@ public class CrystallizerRecipes extends SerializableRecipe {
registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, utilityTime), new FluidStack(Fluids.FISHOIL, 250)); registerRecipe(CD.dust(), new CrystallizerRecipe(ModItems.ingot_rubber, utilityTime), new FluidStack(Fluids.FISHOIL, 250));
registerRecipe(LATEX.ingot(), new CrystallizerRecipe(ModItems.ingot_rubber, mixingTime), new FluidStack(Fluids.SOURGAS, 25)); registerRecipe(LATEX.ingot(), new CrystallizerRecipe(ModItems.ingot_rubber, mixingTime), new FluidStack(Fluids.SOURGAS, 25));
registerRecipe(new ComparableStack(ModItems.powder_sawdust), new CrystallizerRecipe(ModItems.cordite, mixingTime), new FluidStack(Fluids.NITROGLYCERIN, 250)); registerRecipe(new ComparableStack(ModItems.powder_sawdust), new CrystallizerRecipe(ModItems.cordite, mixingTime), new FluidStack(Fluids.NITROGLYCERIN, 250));
registerRecipe(new ComparableStack(ModItems.meteorite_sword_treated), new CrystallizerRecipe(ModItems.meteorite_sword_etched, baseTime)); registerRecipe(new ComparableStack(ModItems.meteorite_sword_treated), new CrystallizerRecipe(ModItems.meteorite_sword_etched, baseTime));
registerRecipe(new ComparableStack(ModItems.powder_impure_osmiridium), new CrystallizerRecipe(ModItems.crystal_osmiridium, baseTime), new FluidStack(Fluids.SCHRABIDIC, 1_000)); registerRecipe(new ComparableStack(ModItems.powder_impure_osmiridium), new CrystallizerRecipe(ModItems.crystal_osmiridium, baseTime), new FluidStack(Fluids.SCHRABIDIC, 1_000));
for(int i = 0; i < ScrapType.values().length; i++) { for(int i = 0; i < ScrapType.values().length; i++) {
registerRecipe(new ComparableStack(ModItems.scrap_plastic, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.circuit_star_piece, 1, i), baseTime)); registerRecipe(new ComparableStack(ModItems.scrap_plastic, 1, i), new CrystallizerRecipe(new ItemStack(ModItems.circuit_star_piece, 1, i), baseTime));
} }
@ -132,9 +133,9 @@ public class CrystallizerRecipes extends SerializableRecipe {
FluidStack nitric = new FluidStack(Fluids.NITRIC_ACID, 500); FluidStack nitric = new FluidStack(Fluids.NITRIC_ACID, 500);
FluidStack organic = new FluidStack(Fluids.SOLVENT, 500); FluidStack organic = new FluidStack(Fluids.SOLVENT, 500);
FluidStack hiperf = new FluidStack(Fluids.RADIOSOLVENT, 500); FluidStack hiperf = new FluidStack(Fluids.RADIOSOLVENT, 500);
int oreTime = 200; int oreTime = 200;
for(EnumBedrockOre ore : EnumBedrockOre.values()) { for(EnumBedrockOre ore : EnumBedrockOre.values()) {
int i = ore.ordinal(); int i = ore.ordinal();
@ -150,7 +151,7 @@ public class CrystallizerRecipes extends SerializableRecipe {
for(BedrockOreType type : BedrockOreType.values()) { for(BedrockOreType type : BedrockOreType.values()) {
registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type), washing), new FluidStack(Fluids.WATER, 250));
registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type), washing), new FluidStack(Fluids.WATER, 250)); registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.BASE_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE_WASHED, type), washing), new FluidStack(Fluids.WATER, 250));
registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type), bedrock), new FluidStack(Fluids.SULFURIC_ACID, 250)); registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type), bedrock), new FluidStack(Fluids.SULFURIC_ACID, 250));
registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type), bedrock), new FluidStack(Fluids.SULFURIC_ACID, 250)); registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_ROASTED, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SULFURIC, type), bedrock), new FluidStack(Fluids.SULFURIC_ACID, 250));
@ -197,10 +198,10 @@ public class CrystallizerRecipes extends SerializableRecipe {
registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NOSOLVENT, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary);
registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_RAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary);
registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary); registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_NORAD, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.PRIMARY_SECOND, type), bedrock), secondary);
registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type), bedrock).setReq(64), new FluidStack(Fluids.NITRIC_ACID, 1000)); registerRecipe(new ComparableStack(ItemBedrockOreNew.make(BedrockOreGrade.CRUMBS, type)), new CrystallizerRecipe(ItemBedrockOreNew.make(BedrockOreGrade.BASE, type), bedrock).setReq(64), new FluidStack(Fluids.NITRIC_ACID, 1000));
} }
FluidStack[] dyes = new FluidStack[] {new FluidStack(Fluids.WOODOIL, 100), new FluidStack(Fluids.FISHOIL, 100)}; FluidStack[] dyes = new FluidStack[] {new FluidStack(Fluids.WOODOIL, 100), new FluidStack(Fluids.FISHOIL, 100)};
for(FluidStack dye : dyes) { for(FluidStack dye : dyes) {
registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), mixingTime), dye); registerRecipe(COAL.dust(), new CrystallizerRecipe(DictFrame.fromOne(ModItems.chemical_dye, EnumChemDye.BLACK, 4), mixingTime), dye);
@ -220,7 +221,7 @@ public class CrystallizerRecipes extends SerializableRecipe {
registerRecipe(KEY_SAND, new CrystallizerRecipe(Blocks.clay, 20), new FluidStack(Fluids.COLLOID, 1_000)); registerRecipe(KEY_SAND, new CrystallizerRecipe(Blocks.clay, 20), new FluidStack(Fluids.COLLOID, 1_000));
registerRecipe(new ComparableStack(ModBlocks.sand_quartz), new CrystallizerRecipe(new ItemStack(ModItems.ball_dynamite, 16), 20), new FluidStack(Fluids.NITROGLYCERIN, 1_000)); registerRecipe(new ComparableStack(ModBlocks.sand_quartz), new CrystallizerRecipe(new ItemStack(ModItems.ball_dynamite, 16), 20), new FluidStack(Fluids.NITROGLYCERIN, 1_000));
registerRecipe(NETHERQUARTZ.dust(), new CrystallizerRecipe(new ItemStack(ModItems.ball_dynamite, 4), 20), new FluidStack(Fluids.NITROGLYCERIN, 250)); registerRecipe(NETHERQUARTZ.dust(), new CrystallizerRecipe(new ItemStack(ModItems.ball_dynamite, 4), 20), new FluidStack(Fluids.NITROGLYCERIN, 250));
/// COMPAT CERTUS QUARTZ /// /// COMPAT CERTUS QUARTZ ///
List<ItemStack> quartz = OreDictionary.getOres("crystalCertusQuartz"); List<ItemStack> quartz = OreDictionary.getOres("crystalCertusQuartz");
if(quartz != null && !quartz.isEmpty()) { if(quartz != null && !quartz.isEmpty()) {
@ -234,69 +235,69 @@ public class CrystallizerRecipes extends SerializableRecipe {
if(dustWhitePhosphorus != null && !dustWhitePhosphorus.isEmpty()) { if(dustWhitePhosphorus != null && !dustWhitePhosphorus.isEmpty()) {
registerRecipe(P_WHITE.dust(), new CrystallizerRecipe(new ItemStack(ModItems.ingot_phosphorus), utilityTime), new FluidStack(Fluids.AROMATICS, 50)); registerRecipe(P_WHITE.dust(), new CrystallizerRecipe(new ItemStack(ModItems.ingot_phosphorus), utilityTime), new FluidStack(Fluids.AROMATICS, 50));
} }
if(!IMCCrystallizer.buffer.isEmpty()) { if(!IMCCrystallizer.buffer.isEmpty()) {
recipes.putAll(IMCCrystallizer.buffer); recipes.putAll(IMCCrystallizer.buffer);
MainRegistry.logger.info("Fetched " + IMCCrystallizer.buffer.size() + " IMC crystallizer recipes!"); MainRegistry.logger.info("Fetched " + IMCCrystallizer.buffer.size() + " IMC crystallizer recipes!");
IMCCrystallizer.buffer.clear(); IMCCrystallizer.buffer.clear();
} }
} }
public static CrystallizerRecipe getOutput(ItemStack stack, FluidType type) { public static CrystallizerRecipe getOutput(ItemStack stack, FluidType type) {
if(stack == null || stack.getItem() == null) if(stack == null || stack.getItem() == null)
return null; return null;
ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage());
Pair compKey = new Pair(comp, type); Pair compKey = new Pair(comp, type);
if(recipes.containsKey(compKey)) return recipes.get(compKey); if(recipes.containsKey(compKey)) return recipes.get(compKey);
String[] dictKeys = comp.getDictKeys(); String[] dictKeys = comp.getDictKeys();
for(String key : dictKeys) { for(String key : dictKeys) {
Pair dictKey = new Pair(key, type); Pair dictKey = new Pair(key, type);
if(recipes.containsKey(dictKey)) return recipes.get(dictKey); if(recipes.containsKey(dictKey)) return recipes.get(dictKey);
} }
comp.meta = OreDictionary.WILDCARD_VALUE; comp.meta = OreDictionary.WILDCARD_VALUE;
if(recipes.containsKey(compKey)) return recipes.get(compKey); if(recipes.containsKey(compKey)) return recipes.get(compKey);
return null; return null;
} }
public static int getAmount(ItemStack stack) { public static int getAmount(ItemStack stack) {
if(stack == null || stack.getItem() == null) if(stack == null || stack.getItem() == null)
return 0; return 0;
ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); ComparableStack comp = new ComparableStack(stack.getItem(), 1, stack.getItemDamage());
if(amounts.containsKey(comp)) return amounts.get(comp); if(amounts.containsKey(comp)) return amounts.get(comp);
String[] dictKeys = comp.getDictKeys(); String[] dictKeys = comp.getDictKeys();
for(String key : dictKeys) { for(String key : dictKeys) {
if(amounts.containsKey(key)) return amounts.get(key); if(amounts.containsKey(key)) return amounts.get(key);
} }
comp.meta = OreDictionary.WILDCARD_VALUE; comp.meta = OreDictionary.WILDCARD_VALUE;
if(amounts.containsKey(comp)) return amounts.get(comp); if(amounts.containsKey(comp)) return amounts.get(comp);
return 0; return 0;
} }
public static HashMap getRecipes() { public static HashMap getRecipes() {
HashMap<Object, Object> recipes = new HashMap<Object, Object>(); HashMap<Object, Object> recipes = new HashMap<Object, Object>();
for(Entry<Pair<Object, FluidType>, CrystallizerRecipe> entry : CrystallizerRecipes.recipes.entrySet()) { for(Entry<Pair<Object, FluidType>, CrystallizerRecipe> entry : CrystallizerRecipes.recipes.entrySet()) {
CrystallizerRecipe recipe = entry.getValue(); CrystallizerRecipe recipe = entry.getValue();
Pair<Object, FluidType> key = entry.getKey(); Pair<Object, FluidType> key = entry.getKey();
Object input = key.getKey(); Object input = key.getKey();
FluidType acid = key.getValue(); FluidType acid = key.getValue();
if(input instanceof String) { if(input instanceof String) {
OreDictStack stack = new OreDictStack((String) input, recipe.itemAmount); OreDictStack stack = new OreDictStack((String) input, recipe.itemAmount);
recipes.put(new Object[] {ItemFluidIcon.make(acid, recipe.acidAmount), stack}, recipe.output); recipes.put(new Object[] {ItemFluidIcon.make(acid, recipe.acidAmount), stack}, recipe.output);
@ -308,34 +309,34 @@ public class CrystallizerRecipes extends SerializableRecipe {
recipes.put(new Object[] {ItemFluidIcon.make(acid, recipe.acidAmount), stack}, recipe.output); recipes.put(new Object[] {ItemFluidIcon.make(acid, recipe.acidAmount), stack}, recipe.output);
} }
} }
return recipes; return recipes;
} }
public static void registerRecipe(Object input, CrystallizerRecipe recipe) { public static void registerRecipe(Object input, CrystallizerRecipe recipe) {
registerRecipe(input, recipe, new FluidStack(Fluids.PEROXIDE, 500)); registerRecipe(input, recipe, new FluidStack(Fluids.PEROXIDE, 500));
} }
public static void registerRecipe(Object input, CrystallizerRecipe recipe, FluidStack stack) { public static void registerRecipe(Object input, CrystallizerRecipe recipe, FluidStack stack) {
recipe.acidAmount = stack.fill; recipe.acidAmount = stack.fill;
recipes.put(new Pair(input, stack.type), recipe); recipes.put(new Pair(input, stack.type), recipe);
amounts.put(input, recipe.itemAmount); amounts.put(input, recipe.itemAmount);
} }
public static class CrystallizerRecipe { public static class CrystallizerRecipe {
public int acidAmount; public int acidAmount;
public int itemAmount = 1; public int itemAmount = 1;
public int duration; public int duration;
public ItemStack output; public ItemStack output;
public CrystallizerRecipe(Block output, int duration) { this(new ItemStack(output), duration); } public CrystallizerRecipe(Block output, int duration) { this(new ItemStack(output), duration); }
public CrystallizerRecipe(Item output, int duration) { this(new ItemStack(output), duration); } public CrystallizerRecipe(Item output, int duration) { this(new ItemStack(output), duration); }
public CrystallizerRecipe setReq(int amount) { public CrystallizerRecipe setReq(int amount) {
this.itemAmount = amount; this.itemAmount = amount;
return this; return this;
} }
public CrystallizerRecipe(ItemStack output, int duration) { public CrystallizerRecipe(ItemStack output, int duration) {
this.output = output; this.output = output;
this.duration = duration; this.duration = duration;
@ -361,7 +362,7 @@ public class CrystallizerRecipes extends SerializableRecipe {
AStack input = this.readAStack(obj.get("input").getAsJsonArray()); AStack input = this.readAStack(obj.get("input").getAsJsonArray());
FluidStack fluid = this.readFluidStack(obj.get("fluid").getAsJsonArray()); FluidStack fluid = this.readFluidStack(obj.get("fluid").getAsJsonArray());
int duration = obj.get("duration").getAsInt(); int duration = obj.get("duration").getAsInt();
CrystallizerRecipe cRecipe = new CrystallizerRecipe(output, duration).setReq(input.stacksize); CrystallizerRecipe cRecipe = new CrystallizerRecipe(output, duration).setReq(input.stacksize);
input.stacksize = 1; input.stacksize = 1;
cRecipe.acidAmount = fluid.fill; cRecipe.acidAmount = fluid.fill;

View File

@ -19,7 +19,7 @@ import com.hbm.items.machine.ItemFluidIcon;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class ElectrolyserFluidRecipes extends SerializableRecipe { public class ElectrolyserFluidRecipes extends SerializableRecipe {
public static HashMap<FluidType, ElectrolysisRecipe> recipes = new HashMap(); public static HashMap<FluidType, ElectrolysisRecipe> recipes = new HashMap();
@Override @Override
@ -28,27 +28,29 @@ public class ElectrolyserFluidRecipes extends SerializableRecipe {
recipes.put(Fluids.HEAVYWATER, new ElectrolysisRecipe(2_000, new FluidStack(Fluids.DEUTERIUM, 200), new FluidStack(Fluids.OXYGEN, 200), 10)); recipes.put(Fluids.HEAVYWATER, new ElectrolysisRecipe(2_000, new FluidStack(Fluids.DEUTERIUM, 200), new FluidStack(Fluids.OXYGEN, 200), 10));
recipes.put(Fluids.VITRIOL, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.SULFURIC_ACID, 500), new FluidStack(Fluids.CHLORINE, 500), new ItemStack(ModItems.powder_iron), new ItemStack(ModItems.ingot_mercury))); recipes.put(Fluids.VITRIOL, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.SULFURIC_ACID, 500), new FluidStack(Fluids.CHLORINE, 500), new ItemStack(ModItems.powder_iron), new ItemStack(ModItems.ingot_mercury)));
recipes.put(Fluids.SLOP, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.MERCURY, 250), new FluidStack(Fluids.NONE, 0), new ItemStack(ModItems.niter, 2), new ItemStack(ModItems.powder_limestone, 2), new ItemStack(ModItems.sulfur))); recipes.put(Fluids.SLOP, new ElectrolysisRecipe(1_000, new FluidStack(Fluids.MERCURY, 250), new FluidStack(Fluids.NONE, 0), new ItemStack(ModItems.niter, 2), new ItemStack(ModItems.powder_limestone, 2), new ItemStack(ModItems.sulfur)));
recipes.put(Fluids.REDMUD, new ElectrolysisRecipe(450, new FluidStack(Fluids.MERCURY, 150), new FluidStack(Fluids.LYE, 50), new ItemStack(ModItems.powder_titanium, 3), new ItemStack(ModItems.powder_iron, 3), new ItemStack(ModItems.powder_aluminium, 2)));
recipes.put(Fluids.ALUMINA, new ElectrolysisRecipe(200, new FluidStack(Fluids.CARBONDIOXIDE, 100), new FluidStack(Fluids.NONE, 0),40, new ItemStack(ModItems.powder_aluminium, 7), new ItemStack(ModItems.fluorite, 2)));
recipes.put(Fluids.POTASSIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.NONE, 0), new ItemStack(ModItems.dust))); recipes.put(Fluids.POTASSIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.NONE, 0), new ItemStack(ModItems.dust)));
recipes.put(Fluids.CALCIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125))); recipes.put(Fluids.CALCIUM_CHLORIDE, new ElectrolysisRecipe(250, new FluidStack(Fluids.CHLORINE, 125), new FluidStack(Fluids.CALCIUM_SOLUTION, 125)));
} }
public static HashMap getRecipes() { public static HashMap getRecipes() {
HashMap<Object, Object[]> recipes = new HashMap<Object, Object[]>(); HashMap<Object, Object[]> recipes = new HashMap<Object, Object[]>();
for(Entry<FluidType, ElectrolysisRecipe> entry : ElectrolyserFluidRecipes.recipes.entrySet()) { for(Entry<FluidType, ElectrolysisRecipe> entry : ElectrolyserFluidRecipes.recipes.entrySet()) {
ElectrolysisRecipe recipe = entry.getValue(); ElectrolysisRecipe recipe = entry.getValue();
FluidStack input = new FluidStack(entry.getKey(), recipe.amount); FluidStack input = new FluidStack(entry.getKey(), recipe.amount);
List outputs = new ArrayList(); List outputs = new ArrayList();
if(recipe.output1.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output1)); if(recipe.output1.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output1));
if(recipe.output2.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output2)); if(recipe.output2.type != Fluids.NONE) outputs.add(ItemFluidIcon.make(recipe.output2));
for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct); for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct);
recipes.put(ItemFluidIcon.make(input), outputs.toArray()); recipes.put(ItemFluidIcon.make(input), outputs.toArray());
} }
return recipes; return recipes;
} }
public static ElectrolysisRecipe getRecipe(FluidType type) { public static ElectrolysisRecipe getRecipe(FluidType type) {
@ -79,30 +81,30 @@ public class ElectrolyserFluidRecipes extends SerializableRecipe {
FluidStack input = this.readFluidStack(obj.get("input").getAsJsonArray()); FluidStack input = this.readFluidStack(obj.get("input").getAsJsonArray());
FluidStack output1 = this.readFluidStack(obj.get("output1").getAsJsonArray()); FluidStack output1 = this.readFluidStack(obj.get("output1").getAsJsonArray());
FluidStack output2 = this.readFluidStack(obj.get("output2").getAsJsonArray()); FluidStack output2 = this.readFluidStack(obj.get("output2").getAsJsonArray());
int duration = 20; int duration = 20;
if(obj.has("duraion")) duration = obj.get("duration").getAsInt(); if(obj.has("duraion")) duration = obj.get("duration").getAsInt();
ItemStack[] byproducts = new ItemStack[0]; ItemStack[] byproducts = new ItemStack[0];
if(obj.has("byproducts")) byproducts = this.readItemStackArray(obj.get("byproducts").getAsJsonArray()); if(obj.has("byproducts")) byproducts = this.readItemStackArray(obj.get("byproducts").getAsJsonArray());
recipes.put(input.type, new ElectrolysisRecipe(input.fill, output1, output2, duration, byproducts)); recipes.put(input.type, new ElectrolysisRecipe(input.fill, output1, output2, duration, byproducts));
} }
@Override @Override
public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { public void writeRecipe(Object recipe, JsonWriter writer) throws IOException {
Entry<FluidType, ElectrolysisRecipe> rec = (Entry) recipe; Entry<FluidType, ElectrolysisRecipe> rec = (Entry) recipe;
writer.name("input"); this.writeFluidStack(new FluidStack(rec.getKey(), rec.getValue().amount), writer); writer.name("input"); this.writeFluidStack(new FluidStack(rec.getKey(), rec.getValue().amount), writer);
writer.name("output1"); this.writeFluidStack(rec.getValue().output1, writer); writer.name("output1"); this.writeFluidStack(rec.getValue().output1, writer);
writer.name("output2"); this.writeFluidStack(rec.getValue().output2, writer); writer.name("output2"); this.writeFluidStack(rec.getValue().output2, writer);
if(rec.getValue().byproduct != null && rec.getValue().byproduct.length > 0) { if(rec.getValue().byproduct != null && rec.getValue().byproduct.length > 0) {
writer.name("byproducts").beginArray(); writer.name("byproducts").beginArray();
for(ItemStack stack : rec.getValue().byproduct) this.writeItemStack(stack, writer); for(ItemStack stack : rec.getValue().byproduct) this.writeItemStack(stack, writer);
writer.endArray(); writer.endArray();
} }
writer.name("duration").value(rec.getValue().duration); writer.name("duration").value(rec.getValue().duration);
} }
@ -112,7 +114,7 @@ public class ElectrolyserFluidRecipes extends SerializableRecipe {
public int amount; public int amount;
public ItemStack[] byproduct; public ItemStack[] byproduct;
public int duration; public int duration;
public ElectrolysisRecipe(int amount, FluidStack output1, FluidStack output2, ItemStack... byproduct) { public ElectrolysisRecipe(int amount, FluidStack output1, FluidStack output2, ItemStack... byproduct) {
this.output1 = output1; this.output1 = output1;
this.output2 = output2; this.output2 = output2;

View File

@ -16,6 +16,7 @@ import com.hbm.inventory.material.MaterialShapes;
import com.hbm.inventory.material.Mats; import com.hbm.inventory.material.Mats;
import com.hbm.inventory.material.Mats.MaterialStack; import com.hbm.inventory.material.Mats.MaterialStack;
import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemFluidIcon;
import com.hbm.items.machine.ItemScraps; import com.hbm.items.machine.ItemScraps;
@ -29,7 +30,7 @@ import com.hbm.util.Tuple.*;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class ElectrolyserMetalRecipes extends SerializableRecipe { public class ElectrolyserMetalRecipes extends SerializableRecipe {
public static HashMap<AStack, ElectrolysisMetalRecipe> recipes = new HashMap(); public static HashMap<AStack, ElectrolysisMetalRecipe> recipes = new HashMap();
@Override @Override
@ -39,99 +40,101 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe {
new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_gold), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_gold), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_GOLD, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_GOLD, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_lithium_tiny, 3), new ItemStack(ModItems.powder_lithium_tiny, 3),
new ItemStack(ModItems.ingot_mercury, 2))); new ItemStack(ModItems.ingot_mercury, 2)));
recipes.put(new ComparableStack(ModItems.crystal_uranium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_uranium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_RADIUM, MaterialShapes.NUGGET.q(4)), new MaterialStack(Mats.MAT_RADIUM, MaterialShapes.NUGGET.q(4)),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_thorium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_thorium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_THORIUM, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_THORIUM, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_plutonium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_plutonium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_POLONIUM, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_POLONIUM, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_titanium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_titanium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_TITANIUM, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_copper), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_copper), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_COPPER, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_COPPER, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_LEAD, MaterialShapes.NUGGET.q(4)), new MaterialStack(Mats.MAT_LEAD, MaterialShapes.NUGGET.q(4)),
new ItemStack(ModItems.powder_lithium_tiny, 3), new ItemStack(ModItems.powder_lithium_tiny, 3),
new ItemStack(ModItems.sulfur, 2))); new ItemStack(ModItems.sulfur, 2)));
recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_tungsten), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_TUNGSTEN, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_TUNGSTEN, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_aluminium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_ALUMINIUM, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_ALUMINIUM, MaterialShapes.INGOT.q(2)),
new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.chunk_ore, 4, ItemEnums.EnumChunkType.CRYOLITE.ordinal()),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_beryllium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_BERYLLIUM, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_BERYLLIUM, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_LEAD, MaterialShapes.NUGGET.q(4)), new MaterialStack(Mats.MAT_LEAD, MaterialShapes.NUGGET.q(4)),
new ItemStack(ModItems.powder_lithium_tiny, 3), new ItemStack(ModItems.powder_lithium_tiny, 3),
new ItemStack(ModItems.powder_quartz, 2))); new ItemStack(ModItems.powder_quartz, 2)));
recipes.put(new ComparableStack(ModItems.crystal_lead), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_lead), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_LEAD, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_GOLD, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_GOLD, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_schraranium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.NUGGET.q(5)), new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.NUGGET.q(5)),
new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.NUGGET.q(2)), new MaterialStack(Mats.MAT_URANIUM, MaterialShapes.NUGGET.q(2)),
new ItemStack(ModItems.nugget_neptunium, 2))); new ItemStack(ModItems.nugget_neptunium, 2)));
recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_schrabidium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_SCHRABIDIUM, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
recipes.put(new ComparableStack(ModItems.crystal_rare), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_rare), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_ZIRCONIUM, MaterialShapes.NUGGET.q(6)), new MaterialStack(Mats.MAT_ZIRCONIUM, MaterialShapes.NUGGET.q(6)),
new MaterialStack(Mats.MAT_BORON, MaterialShapes.NUGGET.q(2)), new MaterialStack(Mats.MAT_BORON, MaterialShapes.NUGGET.q(2)),
new ItemStack(ModItems.powder_desh_mix, 3))); new ItemStack(ModItems.powder_desh_mix, 3)));
recipes.put(new ComparableStack(ModItems.crystal_trixite), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_trixite), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(3)), new MaterialStack(Mats.MAT_PLUTONIUM, MaterialShapes.INGOT.q(3)),
new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(4)), new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(4)),
new ItemStack(ModItems.powder_niobium, 4), new ItemStack(ModItems.powder_niobium, 4),
new ItemStack(ModItems.powder_nitan_mix, 2))); new ItemStack(ModItems.powder_nitan_mix, 2)));
recipes.put(new ComparableStack(ModItems.crystal_lithium), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_lithium), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_LITHIUM, MaterialShapes.INGOT.q(6)), new MaterialStack(Mats.MAT_LITHIUM, MaterialShapes.INGOT.q(6)),
new MaterialStack(Mats.MAT_BORON, MaterialShapes.INGOT.q(2)), new MaterialStack(Mats.MAT_BORON, MaterialShapes.INGOT.q(2)),
new ItemStack(ModItems.powder_quartz, 2), new ItemStack(ModItems.powder_quartz, 2),
new ItemStack(ModItems.fluorite, 2))); new ItemStack(ModItems.fluorite, 2)));
recipes.put(new ComparableStack(ModItems.crystal_starmetal), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_starmetal), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_DURA, MaterialShapes.INGOT.q(4)), new MaterialStack(Mats.MAT_DURA, MaterialShapes.INGOT.q(4)),
new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(4)), new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(4)),
new ItemStack(ModItems.powder_astatine, 3), new ItemStack(ModItems.powder_astatine, 3),
new ItemStack(ModItems.ingot_mercury, 8))); new ItemStack(ModItems.ingot_mercury, 8)));
recipes.put(new ComparableStack(ModItems.crystal_cobalt), new ElectrolysisMetalRecipe( recipes.put(new ComparableStack(ModItems.crystal_cobalt), new ElectrolysisMetalRecipe(
new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(3)), new MaterialStack(Mats.MAT_COBALT, MaterialShapes.INGOT.q(3)),
new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(4)), new MaterialStack(Mats.MAT_IRON, MaterialShapes.INGOT.q(4)),
new ItemStack(ModItems.powder_copper, 4), new ItemStack(ModItems.powder_copper, 4),
new ItemStack(ModItems.powder_lithium_tiny, 3))); new ItemStack(ModItems.powder_lithium_tiny, 3)));
for(BedrockOreType type : BedrockOreType.values()) { for(BedrockOreType type : BedrockOreType.values()) {
ArrayList<Pair<Object, Integer>> productsF = new ArrayList<>(); ArrayList<Pair<Object, Integer>> productsF = new ArrayList<>();
productsF.add(new Pair(type.primary1, 8)); productsF.add(new Pair(type.primary1, 8));
@ -166,7 +169,7 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe {
continue; continue;
} }
} }
if(product.getKey() instanceof BedrockOreOutput) solidProducts.add(ItemBedrockOreNew.extract((BedrockOreOutput) product.getKey(), product.getValue())); if(product.getKey() instanceof BedrockOreOutput) solidProducts.add(ItemBedrockOreNew.extract((BedrockOreOutput) product.getKey(), product.getValue()));
if(product.getKey() instanceof ItemStack) solidProducts.add(((ItemStack) product.getKey()).copy()); if(product.getKey() instanceof ItemStack) solidProducts.add(((ItemStack) product.getKey()).copy());
} }
@ -178,39 +181,39 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe {
20, 20,
solidProducts.toArray(new ItemStack[0])); solidProducts.toArray(new ItemStack[0]));
} }
public static ElectrolysisMetalRecipe getRecipe(ItemStack stack) { public static ElectrolysisMetalRecipe getRecipe(ItemStack stack) {
if(stack == null || stack.getItem() == null) return null; if(stack == null || stack.getItem() == null) return null;
ComparableStack comp = new ComparableStack(stack).makeSingular(); ComparableStack comp = new ComparableStack(stack).makeSingular();
if(recipes.containsKey(comp)) return recipes.get(comp); if(recipes.containsKey(comp)) return recipes.get(comp);
List<String> names = ItemStackUtil.getOreDictNames(stack); List<String> names = ItemStackUtil.getOreDictNames(stack);
for(String name : names) { for(String name : names) {
OreDictStack ore = new OreDictStack(name); OreDictStack ore = new OreDictStack(name);
if(recipes.containsKey(ore)) return recipes.get(ore); if(recipes.containsKey(ore)) return recipes.get(ore);
} }
return null; return null;
} }
public static HashMap getRecipes() { public static HashMap getRecipes() {
HashMap<Object[], Object[]> recipes = new HashMap<Object[], Object[]>(); HashMap<Object[], Object[]> recipes = new HashMap<Object[], Object[]>();
for(Entry<AStack, ElectrolysisMetalRecipe> entry : ElectrolyserMetalRecipes.recipes.entrySet()) { for(Entry<AStack, ElectrolysisMetalRecipe> entry : ElectrolyserMetalRecipes.recipes.entrySet()) {
ElectrolysisMetalRecipe recipe = entry.getValue(); ElectrolysisMetalRecipe recipe = entry.getValue();
Object[] input = new Object[] { entry.getKey().copy(), ItemFluidIcon.make(Fluids.NITRIC_ACID, 100) }; Object[] input = new Object[] { entry.getKey().copy(), ItemFluidIcon.make(Fluids.NITRIC_ACID, 100) };
List outputs = new ArrayList(); List outputs = new ArrayList();
if(recipe.output1 != null) outputs.add(ItemScraps.create(recipe.output1, true)); if(recipe.output1 != null) outputs.add(ItemScraps.create(recipe.output1, true));
if(recipe.output2 != null) outputs.add(ItemScraps.create(recipe.output2, true)); if(recipe.output2 != null) outputs.add(ItemScraps.create(recipe.output2, true));
for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct); for(ItemStack byproduct : recipe.byproduct) outputs.add(byproduct);
recipes.put(input, outputs.toArray()); recipes.put(input, outputs.toArray());
} }
return recipes; return recipes;
} }
@ -232,7 +235,7 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe {
@Override @Override
public void readRecipe(JsonElement recipe) { public void readRecipe(JsonElement recipe) {
JsonObject obj = (JsonObject) recipe; JsonObject obj = (JsonObject) recipe;
AStack input = this.readAStack(obj.get("input").getAsJsonArray()); AStack input = this.readAStack(obj.get("input").getAsJsonArray());
MaterialStack output1 = null; MaterialStack output1 = null;
@ -251,22 +254,22 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe {
int amount2 = out2.get(1).getAsInt(); int amount2 = out2.get(1).getAsInt();
output2 = new MaterialStack(Mats.matByName.get(name2), amount2); output2 = new MaterialStack(Mats.matByName.get(name2), amount2);
} }
ItemStack[] byproducts = new ItemStack[0]; ItemStack[] byproducts = new ItemStack[0];
if(obj.has("byproducts")) byproducts = this.readItemStackArray(obj.get("byproducts").getAsJsonArray()); if(obj.has("byproducts")) byproducts = this.readItemStackArray(obj.get("byproducts").getAsJsonArray());
int duration = 600; int duration = 600;
if(obj.has("duration")) duration = obj.get("duration").getAsInt(); if(obj.has("duration")) duration = obj.get("duration").getAsInt();
recipes.put(input, new ElectrolysisMetalRecipe(output1, output2, duration, byproducts)); recipes.put(input, new ElectrolysisMetalRecipe(output1, output2, duration, byproducts));
} }
@Override @Override
public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { public void writeRecipe(Object recipe, JsonWriter writer) throws IOException {
Entry<AStack, ElectrolysisMetalRecipe> rec = (Entry) recipe; Entry<AStack, ElectrolysisMetalRecipe> rec = (Entry) recipe;
writer.name("input"); this.writeAStack(rec.getKey(), writer); writer.name("input"); this.writeAStack(rec.getKey(), writer);
if(rec.getValue().output1 != null) { if(rec.getValue().output1 != null) {
writer.name("output1"); writer.name("output1");
writer.beginArray(); writer.beginArray();
@ -284,23 +287,23 @@ public class ElectrolyserMetalRecipes extends SerializableRecipe {
writer.endArray(); writer.endArray();
writer.setIndent(" "); writer.setIndent(" ");
} }
if(rec.getValue().byproduct != null && rec.getValue().byproduct.length > 0) { if(rec.getValue().byproduct != null && rec.getValue().byproduct.length > 0) {
writer.name("byproducts").beginArray(); writer.name("byproducts").beginArray();
for(ItemStack stack : rec.getValue().byproduct) this.writeItemStack(stack, writer); for(ItemStack stack : rec.getValue().byproduct) this.writeItemStack(stack, writer);
writer.endArray(); writer.endArray();
} }
writer.name("duration").value(rec.getValue().duration); writer.name("duration").value(rec.getValue().duration);
} }
public static class ElectrolysisMetalRecipe { public static class ElectrolysisMetalRecipe {
public MaterialStack output1; public MaterialStack output1;
public MaterialStack output2; public MaterialStack output2;
public ItemStack[] byproduct; public ItemStack[] byproduct;
public int duration; public int duration;
public ElectrolysisMetalRecipe(MaterialStack output1, MaterialStack output2, ItemStack... byproduct) { public ElectrolysisMetalRecipe(MaterialStack output1, MaterialStack output2, ItemStack... byproduct) {
this.output1 = output1; this.output1 = output1;
this.output2 = output2; this.output2 = output2;

View File

@ -20,7 +20,7 @@ import net.minecraft.item.ItemStack;
public class FractionRecipes extends SerializableRecipe { public class FractionRecipes extends SerializableRecipe {
private static Map<FluidType, Pair<FluidStack, FluidStack>> fractions = new HashMap(); private static Map<FluidType, Pair<FluidStack, FluidStack>> fractions = new HashMap();
@Override @Override
public void registerDefaults() { public void registerDefaults() {
fractions.put(Fluids.HEAVYOIL, new Pair(new FluidStack(Fluids.BITUMEN, 30), new FluidStack(Fluids.SMEAR, 70))); fractions.put(Fluids.HEAVYOIL, new Pair(new FluidStack(Fluids.BITUMEN, 30), new FluidStack(Fluids.SMEAR, 70)));
@ -41,38 +41,39 @@ public class FractionRecipes extends SerializableRecipe {
fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25))); fractions.put(Fluids.NAPHTHA_COKER, new Pair(new FluidStack(Fluids.NAPHTHA_CRACK, 75), new FluidStack(Fluids.LIGHTOIL_CRACK, 25)));
fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75))); fractions.put(Fluids.GAS_COKER, new Pair(new FluidStack(Fluids.AROMATICS, 25), new FluidStack(Fluids.CARBONDIOXIDE, 75)));
fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50))); fractions.put(Fluids.CHLOROCALCITE_MIX, new Pair(new FluidStack(Fluids.CHLOROCALCITE_CLEANED, 50), new FluidStack(Fluids.COLLOID, 50)));
fractions.put(Fluids.BAUXITE_SOLUTION, new Pair(new FluidStack(Fluids.REDMUD, 50), new FluidStack(Fluids.SODIUM_ALUMINATE, 50)));
} }
public static Pair<FluidStack, FluidStack> getFractions(FluidType oil) { public static Pair<FluidStack, FluidStack> getFractions(FluidType oil) {
return fractions.get(oil); return fractions.get(oil);
} }
public static HashMap<Object, Object> getFractionRecipesForNEI() { public static HashMap<Object, Object> getFractionRecipesForNEI() {
HashMap<Object, Object> recipes = new HashMap(); HashMap<Object, Object> recipes = new HashMap();
for(Entry<FluidType, Pair<FluidStack, FluidStack>> recipe : fractions.entrySet()) { for(Entry<FluidType, Pair<FluidStack, FluidStack>> recipe : fractions.entrySet()) {
ItemStack[] out = new ItemStack[] { ItemStack[] out = new ItemStack[] {
ItemFluidIcon.make(recipe.getValue().getKey()), ItemFluidIcon.make(recipe.getValue().getKey()),
ItemFluidIcon.make(recipe.getValue().getValue()) ItemFluidIcon.make(recipe.getValue().getValue())
}; };
recipes.put(ItemFluidIcon.make(recipe.getKey(), 100), out); recipes.put(ItemFluidIcon.make(recipe.getKey(), 100), out);
} }
return recipes; return recipes;
} }
@Override @Override
public String getFileName() { public String getFileName() {
return "hbmFractions.json"; return "hbmFractions.json";
} }
@Override @Override
public String getComment() { public String getComment() {
return "Inputs are always 100mB, set output quantities accordingly."; return "Inputs are always 100mB, set output quantities accordingly.";
} }
@Override @Override
public Object getRecipeObject() { public Object getRecipeObject() {
return fractions; return fractions;
@ -82,7 +83,7 @@ public class FractionRecipes extends SerializableRecipe {
public void deleteRecipes() { public void deleteRecipes() {
fractions.clear(); fractions.clear();
} }
@Override @Override
public void readRecipe(JsonElement recipe) { public void readRecipe(JsonElement recipe) {
JsonObject obj = (JsonObject) recipe; JsonObject obj = (JsonObject) recipe;
@ -90,14 +91,14 @@ public class FractionRecipes extends SerializableRecipe {
FluidType input = Fluids.fromName(obj.get("input").getAsString()); FluidType input = Fluids.fromName(obj.get("input").getAsString());
FluidStack output1 = this.readFluidStack(obj.get("output1").getAsJsonArray()); FluidStack output1 = this.readFluidStack(obj.get("output1").getAsJsonArray());
FluidStack output2 = this.readFluidStack(obj.get("output2").getAsJsonArray()); FluidStack output2 = this.readFluidStack(obj.get("output2").getAsJsonArray());
fractions.put(input, new Pair(output1, output2)); fractions.put(input, new Pair(output1, output2));
} }
@Override @Override
public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { public void writeRecipe(Object recipe, JsonWriter writer) throws IOException {
Entry<FluidType, Pair<FluidStack, FluidStack>> rec = (Entry<FluidType, Pair<FluidStack, FluidStack>>) recipe; Entry<FluidType, Pair<FluidStack, FluidStack>> rec = (Entry<FluidType, Pair<FluidStack, FluidStack>>) recipe;
writer.name("input").value(rec.getKey().getName()); writer.name("input").value(rec.getKey().getName());
writer.name("output1"); this.writeFluidStack(rec.getValue().getKey(), writer); writer.name("output1"); this.writeFluidStack(rec.getValue().getKey(), writer);
writer.name("output2"); this.writeFluidStack(rec.getValue().getValue(), writer); writer.name("output2"); this.writeFluidStack(rec.getValue().getValue(), writer);

View File

@ -12,6 +12,8 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.stream.JsonWriter; import com.google.gson.stream.JsonWriter;
import com.hbm.blocks.BlockEnums;
import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidStack;
import com.hbm.inventory.RecipesCommon.AStack; import com.hbm.inventory.RecipesCommon.AStack;
import com.hbm.inventory.RecipesCommon.ComparableStack; import com.hbm.inventory.RecipesCommon.ComparableStack;
@ -19,6 +21,7 @@ import com.hbm.inventory.RecipesCommon.OreDictStack;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.ItemEnums.EnumAshType; import com.hbm.items.ItemEnums.EnumAshType;
import com.hbm.items.machine.ItemFluidIcon; import com.hbm.items.machine.ItemFluidIcon;
@ -30,7 +33,7 @@ import net.minecraftforge.oredict.OreDictionary;
public class MixerRecipes extends SerializableRecipe { public class MixerRecipes extends SerializableRecipe {
public static HashMap<FluidType, MixerRecipe[]> recipes = new HashMap(); public static HashMap<FluidType, MixerRecipe[]> recipes = new HashMap();
@Override @Override
public void registerDefaults() { public void registerDefaults() {
register(Fluids.COOLANT, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.WATER, 1_800)).setSolid(new OreDictStack(KNO.dust()))); register(Fluids.COOLANT, new MixerRecipe(2_000, 50).setStack1(new FluidStack(Fluids.WATER, 1_800)).setSolid(new OreDictStack(KNO.dust())));
@ -59,7 +62,7 @@ public class MixerRecipes extends SerializableRecipe {
register(Fluids.NITRIC_ACID, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust()))); register(Fluids.NITRIC_ACID, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new OreDictStack(KNO.dust())));
register(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250))); register(Fluids.RADIOSOLVENT, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.REFORMGAS, 750)).setStack2(new FluidStack(Fluids.CHLORINE, 250)));
register(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.PEROXIDE, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged))); register(Fluids.SCHRABIDIC, new MixerRecipe(16_000, 100).setStack1(new FluidStack(Fluids.SAS3, 8_000)).setStack2(new FluidStack(Fluids.PEROXIDE, 6_000)).setSolid(new ComparableStack(ModItems.pellet_charged)));
register(Fluids.PETROIL, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.RECLAIMED, 800)).setStack2(new FluidStack(Fluids.LUBRICANT, 200))); register(Fluids.PETROIL, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.RECLAIMED, 800)).setStack2(new FluidStack(Fluids.LUBRICANT, 200)));
register(Fluids.LUBRICANT, register(Fluids.LUBRICANT,
new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.HEATINGOIL, 500)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500)), new MixerRecipe(1_000, 20).setStack1(new FluidStack(Fluids.HEATINGOIL, 500)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500)),
@ -71,7 +74,7 @@ public class MixerRecipes extends SerializableRecipe {
register(Fluids.NITROGLYCERIN, register(Fluids.NITROGLYCERIN,
new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1_000)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 1_000)), new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1_000)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 1_000)),
new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 500))); new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.FISHOIL, 500)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 500)));
register(Fluids.THORIUM_SALT, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.CHLORINE, 1000)).setSolid(new OreDictStack(TH232.dust()))); register(Fluids.THORIUM_SALT, new MixerRecipe(1_000, 30).setStack1(new FluidStack(Fluids.CHLORINE, 1000)).setSolid(new OreDictStack(TH232.dust())));
register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500))); register(Fluids.SYNGAS, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.COALOIL, 500)).setStack2(new FluidStack(Fluids.STEAM, 500)));
@ -86,36 +89,41 @@ public class MixerRecipes extends SerializableRecipe {
register(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.DIESEL_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100)));
register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.DIESEL_CRACK_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.DIESEL_CRACK, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100)));
register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100))); register(Fluids.KEROSENE_REFORM, new MixerRecipe(1_000, 50).setStack1(new FluidStack(Fluids.KEROSENE, 900)).setStack2(new FluidStack(Fluids.REFORMATE, 100)));
register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust()))); register(Fluids.CHLOROCALCITE_SOLUTION, new MixerRecipe(500, 50).setStack1(new FluidStack(Fluids.WATER, 250)).setStack2(new FluidStack(Fluids.NITRIC_ACID, 250)).setSolid(new OreDictStack(CHLOROCALCITE.dust())));
register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new ComparableStack(ModItems.powder_flux))); register(Fluids.CHLOROCALCITE_MIX, new MixerRecipe(1000, 50).setStack1(new FluidStack(Fluids.CHLOROCALCITE_SOLUTION, 500)).setStack2(new FluidStack(Fluids.SULFURIC_ACID, 500)).setSolid(new ComparableStack(ModItems.powder_flux)));
register(Fluids.PHEROMONE_M, new MixerRecipe(2000, 10).setStack1(new FluidStack(Fluids.PHEROMONE, 1500)).setStack2(new FluidStack(Fluids.BLOOD, 500)).setSolid(new ComparableStack(ModItems.pill_herbal))); register(Fluids.PHEROMONE_M, new MixerRecipe(2000, 10).setStack1(new FluidStack(Fluids.PHEROMONE, 1500)).setStack2(new FluidStack(Fluids.BLOOD, 500)).setSolid(new ComparableStack(ModItems.pill_herbal)));
register(Fluids.BAUXITE_SOLUTION, new MixerRecipe(300, 80).setStack1(new FluidStack(Fluids.LYE, 50)).setSolid(new ComparableStack(ModBlocks.stone_resource, 1, BlockEnums.EnumStoneType.BAUXITE.ordinal())));
register(Fluids.LYE, new MixerRecipe(50, 100).setStack1(new FluidStack(Fluids.WATER, 500)).setSolid(new ComparableStack(ModItems.powder_ash, 2, EnumAshType.WOOD)));
register(Fluids.ALUMINA, new MixerRecipe(200, 40).setStack1(new FluidStack(Fluids.SODIUM_ALUMINATE, 150)).setSolid(new OreDictStack(F.dust(), 3)),
new MixerRecipe(300, 40).setStack1(new FluidStack(Fluids.SODIUM_ALUMINATE, 150)).setSolid(new ComparableStack(DictFrame.fromOne(ModItems.chunk_ore, ItemEnums.EnumChunkType.CRYOLITE))));
register(Fluids.PERFLUOROMETHYL, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1000)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500)).setSolid(new OreDictStack(F.dust()))); register(Fluids.PERFLUOROMETHYL, new MixerRecipe(1000, 20).setStack1(new FluidStack(Fluids.PETROLEUM, 1000)).setStack2(new FluidStack(Fluids.UNSATURATEDS, 500)).setSolid(new OreDictStack(F.dust())));
} }
public static void register(FluidType type, MixerRecipe... rec) { public static void register(FluidType type, MixerRecipe... rec) {
recipes.put(type, rec); recipes.put(type, rec);
} }
public static MixerRecipe[] getOutput(FluidType type) { public static MixerRecipe[] getOutput(FluidType type) {
return recipes.get(type); return recipes.get(type);
} }
public static MixerRecipe getOutput(FluidType type, int index) { public static MixerRecipe getOutput(FluidType type, int index) {
MixerRecipe[] recs = recipes.get(type); MixerRecipe[] recs = recipes.get(type);
if(recs == null) return null; if(recs == null) return null;
return recs[index % recs.length]; return recs[index % recs.length];
} }
@Override @Override
public String getFileName() { public String getFileName() {
return "hbmMixer.json"; return "hbmMixer.json";
} }
@Override @Override
public Object getRecipeObject() { public Object getRecipeObject() {
return recipes; return recipes;
@ -125,43 +133,43 @@ public class MixerRecipes extends SerializableRecipe {
public void deleteRecipes() { public void deleteRecipes() {
recipes.clear(); recipes.clear();
} }
@Override @Override
public void readRecipe(JsonElement recipe) { public void readRecipe(JsonElement recipe) {
JsonObject obj = (JsonObject) recipe; JsonObject obj = (JsonObject) recipe;
FluidType outputType = Fluids.fromName(obj.get("outputType").getAsString()); FluidType outputType = Fluids.fromName(obj.get("outputType").getAsString());
JsonArray recipeArray = obj.get("recipes").getAsJsonArray(); JsonArray recipeArray = obj.get("recipes").getAsJsonArray();
MixerRecipe[] array = new MixerRecipe[recipeArray.size()]; MixerRecipe[] array = new MixerRecipe[recipeArray.size()];
for(int i = 0; i < recipeArray.size(); i++) { for(int i = 0; i < recipeArray.size(); i++) {
JsonObject sub = recipeArray.get(i).getAsJsonObject(); JsonObject sub = recipeArray.get(i).getAsJsonObject();
MixerRecipe mix = new MixerRecipe(sub.get("outputAmount").getAsInt(), sub.get("duration").getAsInt()); MixerRecipe mix = new MixerRecipe(sub.get("outputAmount").getAsInt(), sub.get("duration").getAsInt());
if(sub.has("input1")) mix.setStack1(this.readFluidStack(sub.get("input1").getAsJsonArray())); if(sub.has("input1")) mix.setStack1(this.readFluidStack(sub.get("input1").getAsJsonArray()));
if(sub.has("input2")) mix.setStack2(this.readFluidStack(sub.get("input2").getAsJsonArray())); if(sub.has("input2")) mix.setStack2(this.readFluidStack(sub.get("input2").getAsJsonArray()));
if(sub.has("solidInput")) mix.setSolid(this.readAStack(sub.get("solidInput").getAsJsonArray())); if(sub.has("solidInput")) mix.setSolid(this.readAStack(sub.get("solidInput").getAsJsonArray()));
array[i] = mix; array[i] = mix;
} }
recipes.put(outputType, array); recipes.put(outputType, array);
} }
@Override @Override
public void writeRecipe(Object recipe, JsonWriter writer) throws IOException { public void writeRecipe(Object recipe, JsonWriter writer) throws IOException {
Entry<FluidType, MixerRecipe[]> rec = (Entry<FluidType, MixerRecipe[]>) recipe; Entry<FluidType, MixerRecipe[]> rec = (Entry<FluidType, MixerRecipe[]>) recipe;
MixerRecipe[] recipes = rec.getValue(); MixerRecipe[] recipes = rec.getValue();
writer.name("outputType").value(rec.getKey().getName()); writer.name("outputType").value(rec.getKey().getName());
writer.name("recipes").beginArray(); writer.name("recipes").beginArray();
for(MixerRecipe mix : recipes) { for(MixerRecipe mix : recipes) {
writer.beginObject(); writer.beginObject();
writer.name("duration").value(mix.processTime); writer.name("duration").value(mix.processTime);
writer.name("outputAmount").value(mix.output); writer.name("outputAmount").value(mix.output);
if(mix.input1 != null) { writer.name("input1"); this.writeFluidStack(mix.input1, writer); } if(mix.input1 != null) { writer.name("input1"); this.writeFluidStack(mix.input1, writer); }
if(mix.input2 != null) { writer.name("input2"); this.writeFluidStack(mix.input2, writer); } if(mix.input2 != null) { writer.name("input2"); this.writeFluidStack(mix.input2, writer); }
if(mix.solidInput != null) { writer.name("solidInput"); this.writeAStack(mix.solidInput, writer); } if(mix.solidInput != null) { writer.name("solidInput"); this.writeAStack(mix.solidInput, writer); }
@ -171,36 +179,36 @@ public class MixerRecipes extends SerializableRecipe {
} }
public static HashMap getRecipes() { public static HashMap getRecipes() {
HashMap<Object[], Object> recipes = new HashMap<Object[], Object>(); HashMap<Object[], Object> recipes = new HashMap<Object[], Object>();
for(Entry<FluidType, MixerRecipe[]> entry : MixerRecipes.recipes.entrySet()) { for(Entry<FluidType, MixerRecipe[]> entry : MixerRecipes.recipes.entrySet()) {
FluidType type = entry.getKey(); FluidType type = entry.getKey();
MixerRecipe[] recs = entry.getValue(); MixerRecipe[] recs = entry.getValue();
for(MixerRecipe recipe : recs) { for(MixerRecipe recipe : recs) {
FluidStack output = new FluidStack(type, recipe.output); FluidStack output = new FluidStack(type, recipe.output);
List<Object> objects = new ArrayList(); List<Object> objects = new ArrayList();
if(recipe.input1 != null) objects.add(ItemFluidIcon.make(recipe.input1)); if(recipe.input1 != null) objects.add(ItemFluidIcon.make(recipe.input1));
if(recipe.input2 != null) objects.add(ItemFluidIcon.make(recipe.input2)); if(recipe.input2 != null) objects.add(ItemFluidIcon.make(recipe.input2));
if(recipe.solidInput != null) objects.add(recipe.solidInput); if(recipe.solidInput != null) objects.add(recipe.solidInput);
recipes.put(objects.toArray(), ItemFluidIcon.make(output)); recipes.put(objects.toArray(), ItemFluidIcon.make(output));
} }
} }
return recipes; return recipes;
} }
public static class MixerRecipe { public static class MixerRecipe {
public FluidStack input1; public FluidStack input1;
public FluidStack input2; public FluidStack input2;
public AStack solidInput; public AStack solidInput;
public int processTime; public int processTime;
public int output; public int output;
protected MixerRecipe(int output, int processTime) { protected MixerRecipe(int output, int processTime) {
this.output = output; this.output = output;
this.processTime = processTime; this.processTime = processTime;

View File

@ -2,6 +2,7 @@ package com.hbm.inventory.recipes;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
@ -12,7 +13,6 @@ import com.hbm.inventory.RecipesCommon.ComparableStack;
import com.hbm.inventory.recipes.loader.SerializableRecipe; import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -26,65 +26,65 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe {
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_hydrogen), new ComparableStack(ModItems.particle_hydrogen),
new ComparableStack(ModItems.particle_copper), new ComparableStack(ModItems.particle_copper),
900, 300,
new ItemStack(ModItems.particle_aproton), new ItemStack(ModItems.particle_amat),
new ItemStack(ModItems.particle_aelectron) null
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_amat), new ComparableStack(ModItems.particle_amat),
new ComparableStack(ModItems.particle_amat), new ComparableStack(ModItems.particle_amat),
900, 400,
new ItemStack(ModItems.particle_aschrab), new ItemStack(ModItems.particle_aschrab),
new ItemStack(ModItems.particle_empty) null
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_aschrab), new ComparableStack(ModItems.particle_aschrab),
new ComparableStack(ModItems.particle_aschrab), new ComparableStack(ModItems.particle_aschrab),
100000, 10_000,
new ItemStack(ModItems.particle_dark), new ItemStack(ModItems.particle_dark),
new ItemStack(ModItems.particle_empty) null
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_hydrogen), new ComparableStack(ModItems.particle_hydrogen),
new ComparableStack(ModItems.particle_amat), new ComparableStack(ModItems.particle_amat),
2000, 2_500,
new ItemStack(ModItems.particle_muon), new ItemStack(ModItems.particle_muon),
new ItemStack(ModItems.particle_empty) null
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_hydrogen), new ComparableStack(ModItems.particle_hydrogen),
new ComparableStack(ModItems.particle_lead), new ComparableStack(ModItems.particle_lead),
5000, 6_500,
new ItemStack(ModItems.particle_higgs), new ItemStack(ModItems.particle_higgs),
new ItemStack(ModItems.particle_empty) null
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_muon), new ComparableStack(ModItems.particle_muon),
new ComparableStack(ModItems.particle_higgs), new ComparableStack(ModItems.particle_higgs),
2000, 5_000,
new ItemStack(ModItems.particle_tachyon), new ItemStack(ModItems.particle_tachyon),
new ItemStack(ModItems.particle_empty) null
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_muon), new ComparableStack(ModItems.particle_muon),
new ComparableStack(ModItems.particle_dark), new ComparableStack(ModItems.particle_dark),
100000, 12_500,
new ItemStack(ModItems.particle_strange), new ItemStack(ModItems.particle_strange),
new ItemStack(ModItems.particle_empty) null
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_strange), new ComparableStack(ModItems.particle_strange),
new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.powder_magic),
500000, 12_500,
new ItemStack(ModItems.particle_sparkticle), new ItemStack(ModItems.particle_sparkticle),
new ItemStack(ModItems.dust) new ItemStack(ModItems.dust)
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(ModItems.particle_sparkticle), new ComparableStack(ModItems.particle_sparkticle),
new ComparableStack(ModItems.particle_higgs), new ComparableStack(ModItems.particle_higgs),
1000000, 70_000,
new ItemStack(ModItems.particle_digamma), new ItemStack(ModItems.particle_digamma),
new ItemStack(ModItems.particle_empty) null
)); ));
recipes.add(new ParticleAcceleratorRecipe( recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(Items.chicken), new ComparableStack(Items.chicken),
@ -93,21 +93,13 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe {
new ItemStack(ModItems.nugget), new ItemStack(ModItems.nugget),
new ItemStack(ModItems.nugget) new ItemStack(ModItems.nugget)
)); ));
recipes.add(new ParticleAcceleratorRecipe(
new ComparableStack(Blocks.sand),
new ComparableStack(Blocks.sand),
10,
new ItemStack(ModItems.static_sandwich),
new ItemStack(ModItems.static_sandwich)
));
} }
public ParticleAcceleratorRecipe getOutput(ItemStack input1, ItemStack input2, int momentum) { public static ParticleAcceleratorRecipe getOutput(ItemStack input1, ItemStack input2) {
for(ParticleAcceleratorRecipe recipe : recipes) { for(ParticleAcceleratorRecipe recipe : recipes) {
if(momentum >= recipe.momentum && if(((recipe.input1.matchesRecipe(input1, true) && recipe.input2.matchesRecipe(input2, true)) ||
((recipe.input1.matchesRecipe(input1, true) && recipe.input2.matchesRecipe(input2, true)) ||
(recipe.input1.matchesRecipe(input2, true) && recipe.input2.matchesRecipe(input1, true)))) { (recipe.input1.matchesRecipe(input2, true) && recipe.input2.matchesRecipe(input1, true)))) {
return recipe; return recipe;
} }
@ -116,6 +108,20 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe {
return null; return null;
} }
public static HashMap getRecipes() {
HashMap<Object[], Object> recipes = new HashMap<Object[], Object>();
for(ParticleAcceleratorRecipe entry : ParticleAcceleratorRecipes.recipes) {
List<ItemStack> outputs = new ArrayList();
if(entry.output1 != null) outputs.add(entry.output1);
if(entry.output2 != null) outputs.add(entry.output2);
recipes.put(new Object[] {entry.input1, entry.input2}, outputs.toArray(new ItemStack[0]));
}
return recipes;
}
public static class ParticleAcceleratorRecipe { public static class ParticleAcceleratorRecipe {
public AStack input1; public AStack input1;
public AStack input2; public AStack input2;
@ -176,7 +182,7 @@ public class ParticleAcceleratorRecipes extends SerializableRecipe {
writer.name("outputs").beginArray(); writer.name("outputs").beginArray();
this.writeItemStack(rec.output1, writer); this.writeItemStack(rec.output1, writer);
this.writeItemStack(rec.output2, writer); if(rec.output2 != null) this.writeItemStack(rec.output2, writer);
writer.endArray(); writer.endArray();
} }
} }

View File

@ -18,6 +18,8 @@ import com.hbm.inventory.recipes.loader.SerializableRecipe;
import com.hbm.items.ItemEnums.EnumSecretType; import com.hbm.items.ItemEnums.EnumSecretType;
import com.hbm.items.food.ItemConserve.EnumFoodType; import com.hbm.items.food.ItemConserve.EnumFoodType;
import com.hbm.items.ModItems; import com.hbm.items.ModItems;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmo;
import com.hbm.items.weapon.sedna.factory.GunFactory.EnumAmmoSecret;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -71,6 +73,17 @@ public class PedestalRecipes extends SerializableRecipe {
new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(STAR.block(), 64), new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(BSCCO.ingot(), 16), new OreDictStack(STAR.block(), 64), new OreDictStack(BSCCO.ingot(), 16),
new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL)) new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL), new ComparableStack(ModItems.item_secret, 2, EnumSecretType.CONTROLLER), new ComparableStack(ModItems.item_secret, 4, EnumSecretType.SELENIUM_STEEL))
.extra(PedestalExtraCondition.FULL_MOON)); .extra(PedestalExtraCondition.FULL_MOON));
recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_SM.ordinal()),
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1),
new ComparableStack(ModItems.powder_magic), new ComparableStack(ModBlocks.moon_turf), new ComparableStack(ModItems.powder_magic),
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1))
.extra(PedestalExtraCondition.FULL_MOON));
recipes.add(new PedestalRecipe(new ItemStack(ModItems.ammo_secret, 1, EnumAmmoSecret.FOLLY_NUKE.ordinal()),
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1),
new ComparableStack(ModItems.powder_magic), new ComparableStack(ModItems.ammo_standard, 4, EnumAmmo.NUKE_HIGH), new ComparableStack(ModItems.powder_magic),
new OreDictStack(STAR.ingot(), 1), new ComparableStack(ModItems.powder_magic), new OreDictStack(STAR.ingot(), 1))
.extra(PedestalExtraCondition.FULL_MOON));
} }
@Override @Override

View File

@ -29,7 +29,7 @@ import com.hbm.items.machine.ItemScraps;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class RotaryFurnaceRecipes extends SerializableRecipe { public class RotaryFurnaceRecipes extends SerializableRecipe {
public static List<RotaryFurnaceRecipe> recipes = new ArrayList(); public static List<RotaryFurnaceRecipe> recipes = new ArrayList();
@Override @Override
@ -37,7 +37,7 @@ public class RotaryFurnaceRecipes extends SerializableRecipe {
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 100, 100, new OreDictStack(IRON.ingot()), new OreDictStack(COAL.gem()))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 100, 100, new OreDictStack(IRON.ingot()), new OreDictStack(COAL.gem())));
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 100, 100, new OreDictStack(IRON.ingot()), new OreDictStack(ANY_COKE.gem()))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(1)), 100, 100, new OreDictStack(IRON.ingot()), new OreDictStack(ANY_COKE.gem())));
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(2)), 200, 25, new OreDictStack(IRON.fragment(), 9), new OreDictStack(COAL.gem()))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(2)), 200, 25, new OreDictStack(IRON.fragment(), 9), new OreDictStack(COAL.gem())));
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(3)), 200, 25, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem()))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(3)), 200, 25, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem())));
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(4)), 400, 25, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem()), new ComparableStack(ModItems.powder_flux))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_STEEL, INGOT.q(4)), 400, 25, new OreDictStack(IRON.fragment(), 9), new OreDictStack(ANY_COKE.gem()), new ComparableStack(ModItems.powder_flux)));
@ -47,43 +47,45 @@ public class RotaryFurnaceRecipes extends SerializableRecipe {
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_GUNMETAL, INGOT.q(4)), 200, 100, new OreDictStack(CU.ingot(), 3), new OreDictStack(AL.ingot(), 1))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_GUNMETAL, INGOT.q(4)), 200, 100, new OreDictStack(CU.ingot(), 3), new OreDictStack(AL.ingot(), 1)));
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_WEAPONSTEEL, INGOT.q(1)), 200, 400, new FluidStack(Fluids.GAS_COKER, 100), new OreDictStack(STEEL.ingot(), 1), new ComparableStack(ModItems.powder_flux, 2))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_WEAPONSTEEL, INGOT.q(1)), 200, 400, new FluidStack(Fluids.GAS_COKER, 100), new OreDictStack(STEEL.ingot(), 1), new ComparableStack(ModItems.powder_flux, 2)));
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_SATURN, INGOT.q(2)), 200, 400, new FluidStack(Fluids.REFORMGAS, 250), new OreDictStack(DURA.dust(), 4), new OreDictStack(CU.dust()))); recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_SATURN, INGOT.q(2)), 200, 400, new FluidStack(Fluids.REFORMGAS, 250), new OreDictStack(DURA.dust(), 4), new OreDictStack(CU.dust())));
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_ALUMINIUM, INGOT.q(2)), 100, 400, new FluidStack(Fluids.SODIUM_ALUMINATE, 150)));
recipes.add(new RotaryFurnaceRecipe(new MaterialStack(MAT_ALUMINIUM, INGOT.q(3)), 40, 200, new FluidStack(Fluids.SODIUM_ALUMINATE, 150), new ComparableStack(ModItems.powder_flux, 2)));
} }
public static HashMap getRecipes() { public static HashMap getRecipes() {
HashMap<Object, Object> recipes = new HashMap<Object, Object>(); HashMap<Object, Object> recipes = new HashMap<Object, Object>();
for(RotaryFurnaceRecipe recipe : RotaryFurnaceRecipes.recipes) { for(RotaryFurnaceRecipe recipe : RotaryFurnaceRecipes.recipes) {
int size = recipe.ingredients.length + (recipe.fluid != null ? 1 : 0); int size = recipe.ingredients.length + (recipe.fluid != null ? 1 : 0);
Object[] array = new Object[size]; Object[] array = new Object[size];
for(int i = 0; i < recipe.ingredients.length; i++) { for(int i = 0; i < recipe.ingredients.length; i++) {
array[i] = recipe.ingredients[i]; array[i] = recipe.ingredients[i];
} }
if(recipe.fluid != null) array[size - 1] = ItemFluidIcon.make(recipe.fluid); if(recipe.fluid != null) array[size - 1] = ItemFluidIcon.make(recipe.fluid);
recipes.put(array, ItemScraps.create(recipe.output, true)); recipes.put(array, ItemScraps.create(recipe.output, true));
} }
return recipes; return recipes;
} }
public static RotaryFurnaceRecipe getRecipe(ItemStack... inputs) { public static RotaryFurnaceRecipe getRecipe(ItemStack... inputs) {
outer: outer:
for(RotaryFurnaceRecipe recipe : recipes) { for(RotaryFurnaceRecipe recipe : recipes) {
List<AStack> recipeList = new ArrayList(); List<AStack> recipeList = new ArrayList();
for(AStack ingredient : recipe.ingredients) recipeList.add(ingredient); for(AStack ingredient : recipe.ingredients) recipeList.add(ingredient);
for(int i = 0; i < inputs.length; i++) { for(int i = 0; i < inputs.length; i++) {
ItemStack inputStack = inputs[i]; ItemStack inputStack = inputs[i];
if(inputStack != null) { if(inputStack != null) {
boolean hasMatch = false; boolean hasMatch = false;
Iterator<AStack> iterator = recipeList.iterator(); Iterator<AStack> iterator = recipeList.iterator();
@ -102,10 +104,10 @@ public class RotaryFurnaceRecipes extends SerializableRecipe {
} }
} }
} }
if(recipeList.isEmpty()) return recipe; if(recipeList.isEmpty()) return recipe;
} }
return null; return null;
} }
@ -127,34 +129,34 @@ public class RotaryFurnaceRecipes extends SerializableRecipe {
@Override @Override
public void readRecipe(JsonElement recipe) { public void readRecipe(JsonElement recipe) {
JsonObject obj = (JsonObject) recipe; JsonObject obj = (JsonObject) recipe;
AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray()); AStack[] inputs = this.readAStackArray(obj.get("inputs").getAsJsonArray());
FluidStack fluid = obj.has("fluid") ? this.readFluidStack(obj.get("fluid").getAsJsonArray()) : null; FluidStack fluid = obj.has("fluid") ? this.readFluidStack(obj.get("fluid").getAsJsonArray()) : null;
JsonArray array = obj.get("output").getAsJsonArray(); JsonArray array = obj.get("output").getAsJsonArray();
MaterialStack stack = new MaterialStack(Mats.matByName.get(array.get(0).getAsString()), array.get(1).getAsInt()); MaterialStack stack = new MaterialStack(Mats.matByName.get(array.get(0).getAsString()), array.get(1).getAsInt());
int duration = obj.get("duration").getAsInt(); int duration = obj.get("duration").getAsInt();
int steam = obj.get("steam").getAsInt(); int steam = obj.get("steam").getAsInt();
recipes.add(new RotaryFurnaceRecipe(stack, duration, steam, fluid, inputs)); recipes.add(new RotaryFurnaceRecipe(stack, duration, steam, fluid, inputs));
} }
@Override @Override
public void writeRecipe(Object obj, JsonWriter writer) throws IOException { public void writeRecipe(Object obj, JsonWriter writer) throws IOException {
RotaryFurnaceRecipe recipe = (RotaryFurnaceRecipe) obj; RotaryFurnaceRecipe recipe = (RotaryFurnaceRecipe) obj;
writer.name("inputs").beginArray(); writer.name("inputs").beginArray();
for(AStack aStack : recipe.ingredients) { for(AStack aStack : recipe.ingredients) {
this.writeAStack(aStack, writer); this.writeAStack(aStack, writer);
} }
writer.endArray(); writer.endArray();
if(recipe.fluid != null) { if(recipe.fluid != null) {
writer.name("fluid"); writer.name("fluid");
this.writeFluidStack(recipe.fluid, writer); this.writeFluidStack(recipe.fluid, writer);
} }
writer.name("output").beginArray(); writer.name("output").beginArray();
writer.setIndent(""); writer.setIndent("");
writer.value(recipe.output.material.names[0]).value(recipe.output.amount); writer.value(recipe.output.material.names[0]).value(recipe.output.amount);
@ -164,15 +166,15 @@ public class RotaryFurnaceRecipes extends SerializableRecipe {
writer.name("duration").value(recipe.duration); writer.name("duration").value(recipe.duration);
writer.name("steam").value(recipe.steam); writer.name("steam").value(recipe.steam);
} }
public static class RotaryFurnaceRecipe { public static class RotaryFurnaceRecipe {
public AStack[] ingredients; public AStack[] ingredients;
public FluidStack fluid; public FluidStack fluid;
public MaterialStack output; public MaterialStack output;
public int duration; public int duration;
public int steam; public int steam;
public RotaryFurnaceRecipe(MaterialStack output, int duration, int steam, FluidStack fluid, AStack... ingredients) { public RotaryFurnaceRecipe(MaterialStack output, int duration, int steam, FluidStack fluid, AStack... ingredients) {
this.ingredients = ingredients; this.ingredients = ingredients;
this.fluid = fluid; this.fluid = fluid;
@ -180,7 +182,7 @@ public class RotaryFurnaceRecipes extends SerializableRecipe {
this.duration = duration; this.duration = duration;
this.steam = steam; this.steam = steam;
} }
public RotaryFurnaceRecipe(MaterialStack output, int duration, int steam, AStack... ingredients) { public RotaryFurnaceRecipe(MaterialStack output, int duration, int steam, AStack... ingredients) {
this(output, duration, steam, null, ingredients); this(output, duration, steam, null, ingredients);
} }

View File

@ -28,7 +28,7 @@ public class SILEXRecipes {
private static HashMap<Object, SILEXRecipe> recipes = new HashMap(); private static HashMap<Object, SILEXRecipe> recipes = new HashMap();
private static HashMap<ComparableStack, ComparableStack> itemTranslation = new HashMap(); private static HashMap<ComparableStack, ComparableStack> itemTranslation = new HashMap();
private static HashMap<String, String> dictTranslation = new HashMap(); private static HashMap<String, String> dictTranslation = new HashMap();
public static void register() { public static void register() {
itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.UF6.getID()), new ComparableStack(ModItems.ingot_uranium)); itemTranslation.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.UF6.getID()), new ComparableStack(ModItems.ingot_uranium));
@ -37,12 +37,12 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_u235), 1) .addOut(new ItemStack(ModItems.nugget_u235), 1)
.addOut(new ItemStack(ModItems.nugget_u238), 11) .addOut(new ItemStack(ModItems.nugget_u238), 11)
); );
recipes.put(new ComparableStack(ModItems.ingot_pu_mix), new SILEXRecipe(900, 100, 2) recipes.put(new ComparableStack(ModItems.ingot_pu_mix), new SILEXRecipe(900, 100, 2)
.addOut(new ItemStack(ModItems.nugget_pu239), 6) .addOut(new ItemStack(ModItems.nugget_pu239), 6)
.addOut(new ItemStack(ModItems.nugget_pu240), 3) .addOut(new ItemStack(ModItems.nugget_pu240), 3)
); );
recipes.put(new ComparableStack(ModItems.ingot_am_mix), new SILEXRecipe(900, 100, 2) recipes.put(new ComparableStack(ModItems.ingot_am_mix), new SILEXRecipe(900, 100, 2)
.addOut(new ItemStack(ModItems.nugget_am241), 3) .addOut(new ItemStack(ModItems.nugget_am241), 3)
.addOut(new ItemStack(ModItems.nugget_am242), 6) .addOut(new ItemStack(ModItems.nugget_am242), 6)
@ -67,20 +67,20 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_australium_lesser), 5) .addOut(new ItemStack(ModItems.nugget_australium_lesser), 5)
.addOut(new ItemStack(ModItems.nugget_australium_greater), 1) .addOut(new ItemStack(ModItems.nugget_australium_greater), 1)
); );
recipes.put(new ComparableStack(ModItems.crystal_schraranium), new SILEXRecipe(900, 100, 3) recipes.put(new ComparableStack(ModItems.crystal_schraranium), new SILEXRecipe(900, 100, 3)
.addOut(new ItemStack(ModItems.nugget_schrabidium), 5) .addOut(new ItemStack(ModItems.nugget_schrabidium), 5)
.addOut(new ItemStack(ModItems.nugget_uranium), 2) .addOut(new ItemStack(ModItems.nugget_uranium), 2)
.addOut(new ItemStack(ModItems.nugget_neptunium), 2) .addOut(new ItemStack(ModItems.nugget_neptunium), 2)
); );
recipes.put(new ComparableStack(ModBlocks.ore_tikite), new SILEXRecipe(900, 100, EnumWavelengths.UV) recipes.put(new ComparableStack(ModBlocks.ore_tikite), new SILEXRecipe(900, 100, EnumWavelengths.UV)
.addOut(new ItemStack(ModItems.powder_plutonium), 2) .addOut(new ItemStack(ModItems.powder_plutonium), 2)
.addOut(new ItemStack(ModItems.powder_cobalt), 3) .addOut(new ItemStack(ModItems.powder_cobalt), 3)
.addOut(new ItemStack(ModItems.powder_niobium), 3) .addOut(new ItemStack(ModItems.powder_niobium), 3)
.addOut(new ItemStack(ModItems.powder_nitan_mix), 2) .addOut(new ItemStack(ModItems.powder_nitan_mix), 2)
); );
recipes.put(new ComparableStack(ModItems.crystal_trixite), new SILEXRecipe(1200, 100, EnumWavelengths.UV) recipes.put(new ComparableStack(ModItems.crystal_trixite), new SILEXRecipe(1200, 100, EnumWavelengths.UV)
.addOut(new ItemStack(ModItems.powder_plutonium), 2) .addOut(new ItemStack(ModItems.powder_plutonium), 2)
.addOut(new ItemStack(ModItems.powder_cobalt), 3) .addOut(new ItemStack(ModItems.powder_cobalt), 3)
@ -100,151 +100,161 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.powder_impure_osmiridium), 1) .addOut(new ItemStack(ModItems.powder_impure_osmiridium), 1)
); );
recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.VITRIOL.getID()), new SILEXRecipe(1000, 1000, EnumWavelengths.IR) recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.VITRIOL.getID()), new SILEXRecipe(1000, 300, EnumWavelengths.IR)
.addOut(new ItemStack(ModItems.powder_bromine), 5) .addOut(new ItemStack(ModItems.powder_bromine), 5)
.addOut(new ItemStack(ModItems.powder_iodine), 5) .addOut(new ItemStack(ModItems.powder_iodine), 5)
.addOut(new ItemStack(ModItems.powder_iron), 5) .addOut(new ItemStack(ModItems.powder_iron), 5)
.addOut(new ItemStack(ModItems.sulfur), 15) .addOut(new ItemStack(ModItems.sulfur), 15)
); );
recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.REDMUD.getID()), new SILEXRecipe(300, 50, EnumWavelengths.VISIBLE)
.addOut(new ItemStack(ModItems.powder_aluminium), 10)
.addOut(new ItemStack(ModItems.powder_neodymium_tiny, 3), 5)
.addOut(new ItemStack(ModItems.powder_boron_tiny, 3), 5)
.addOut(new ItemStack(ModItems.nugget_zirconium), 5)
.addOut(new ItemStack(ModItems.powder_iron), 20)
.addOut(new ItemStack(ModItems.powder_titanium), 15)
.addOut(new ItemStack(ModItems.powder_sodium), 10)
);
for(int i = 0; i < 5; i++) { for(int i = 0; i < 5; i++) {
// UEU // // UEU //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100, 1) //NU and MEU will breed more plutonium due to their higher concentrations of U-238 recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i), new SILEXRecipe(600, 100, 1) //NU and MEU will breed more plutonium due to their higher concentrations of U-238
.addOut(new ItemStack(ModItems.nugget_uranium), 86 - i * 11) //NU is unenriched to the point where it'll always be lower burnup; so more Pu239 for longer .addOut(new ItemStack(ModItems.nugget_uranium), 86 - i * 11) //NU is unenriched to the point where it'll always be lower burnup; so more Pu239 for longer
.addOut(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3) .addOut(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 2 + 5 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 2 + 5 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_ueu, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_uranium), 86 - i * 11) .addOut(new ItemStack(ModItems.nugget_uranium), 86 - i * 11)
.addOut(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3) .addOut(i < 2 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 10 + i * 3)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 2 + 3 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 1 + 5 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 1 + 5 * i) );
// MEU // // MEU //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_uranium_fuel), 84 - i * 16) .addOut(new ItemStack(ModItems.nugget_uranium_fuel), 84 - i * 16)
.addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4) .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_meu, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_uranium_fuel), 83 - i * 16) .addOut(new ItemStack(ModItems.nugget_uranium_fuel), 83 - i * 16)
.addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4) .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 4)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 7 * i) );
// HEU233 // // HEU233 //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_u233), 90 - i * 20) .addOut(new ItemStack(ModItems.nugget_u233), 90 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu233, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_u233), 89 - i * 20) .addOut(new ItemStack(ModItems.nugget_u233), 89 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM233.ordinal()), 4 + 8 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM233.ordinal()), 6 + 12 * i) );
// HEU235 // // HEU235 //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_u235), 90 - i * 20) .addOut(new ItemStack(ModItems.nugget_u235), 90 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_heu235, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_u235), 89 - i * 20) .addOut(new ItemStack(ModItems.nugget_u235), 89 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.URANIUM235.ordinal()), 4 + 8 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 6 + 12 * i) );
// TH232 // // TH232 //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_thorium_fuel), 84 - i * 20) .addOut(new ItemStack(ModItems.nugget_thorium_fuel), 84 - i * 20)
.addOut(new ItemStack(ModItems.nugget_u233), 6 + i * 4) .addOut(new ItemStack(ModItems.nugget_u233), 6 + i * 4)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_thmeu, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_thorium_fuel), 83 - i * 20) .addOut(new ItemStack(ModItems.nugget_thorium_fuel), 83 - i * 20)
.addOut(new ItemStack(ModItems.nugget_u233), 6 + i * 4) .addOut(new ItemStack(ModItems.nugget_u233), 6 + i * 4)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.THORIUM.ordinal()), 10 + 16 * i) );
// LEP // // LEP //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_plutonium_fuel), 84 - i * 14) .addOut(new ItemStack(ModItems.nugget_plutonium_fuel), 84 - i * 14)
.addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2) .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_lep, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_plutonium_fuel), 83 - i * 14) .addOut(new ItemStack(ModItems.nugget_plutonium_fuel), 83 - i * 14)
.addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2) .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 7 + 8 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 3 + 4 * i) );
// MEP // // MEP //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_pu_mix), 85 - i * 20) .addOut(new ItemStack(ModItems.nugget_pu_mix), 85 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_mep, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_pu_mix), 84 - i * 20) .addOut(new ItemStack(ModItems.nugget_pu_mix), 84 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 10 + 10 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 5 + 5 * i) );
// HEP239 // // HEP239 //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_pu239), 85 - i * 20) .addOut(new ItemStack(ModItems.nugget_pu239), 85 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep239, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_pu239), 84 - i * 20) .addOut(new ItemStack(ModItems.nugget_pu239), 84 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 15 + 20 * i) );
// HEP241 // // HEP241 //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_pu241), 85 - i * 20) .addOut(new ItemStack(ModItems.nugget_pu241), 85 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i + 5), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_hep241, 1, i + 5), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_pu241), 84 - i * 20) .addOut(new ItemStack(ModItems.nugget_pu241), 84 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), 15 + 20 * i) );
// MEN // // MEN //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_neptunium_fuel), 84 - i * 14) .addOut(new ItemStack(ModItems.nugget_neptunium_fuel), 84 - i * 14)
.addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2) .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_men, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_neptunium_fuel), 83 - i * 14) .addOut(new ItemStack(ModItems.nugget_neptunium_fuel), 83 - i * 14)
.addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2) .addOut(i < 1 ? new ItemStack(ModItems.nugget_pu239) : new ItemStack(ModItems.nugget_pu_mix), 6 + i * 2)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 7 * i) );
// HEN // // HEN //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_hen, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_hen, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_neptunium), 90 - i * 20) .addOut(new ItemStack(ModItems.nugget_neptunium), 90 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_hen, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_hen, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_neptunium), 89 - i * 20) .addOut(new ItemStack(ModItems.nugget_neptunium), 89 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.NEPTUNIUM.ordinal()), 4 + 8 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 6 + 12 * i) );
// MOX // // MOX //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20) .addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20)
@ -253,7 +263,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i) );
//TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) //Plutonium processing isn't possible w/o fucking up the NEI handler or removing xenon recipes.put(new ComparableStack(ModItems.rbmk_pellet_mox, 1, i + 5), new SILEXRecipe(600, 100, 1) //Plutonium processing isn't possible w/o fucking up the NEI handler or removing xenon
.addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20) //To prevent people from taking advantage of differing waste types, conform to the latter .addOut(new ItemStack(ModItems.nugget_mox_fuel), 84 - i * 20) //To prevent people from taking advantage of differing waste types, conform to the latter
@ -262,33 +272,33 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.URANIUM235.ordinal()), 3 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), 3 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), 2 + 3 * i) );
// LEAUS // // LEAUS //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20) .addOut(new ItemStack(ModItems.nugget_australium_lesser), 90 - i * 20)
.addOut(new ItemStack(ModItems.nugget_lead), 6 + 12 * i) .addOut(new ItemStack(ModItems.nugget_lead), 6 + 12 * i)
.addOut(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i) ); .addOut(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_leaus, 1, i + 5), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20) .addOut(new ItemStack(ModItems.nugget_australium_lesser), 89 - i * 20)
.addOut(new ItemStack(ModItems.nugget_lead), 6 + 12 * i) .addOut(new ItemStack(ModItems.nugget_lead), 6 + 12 * i)
.addOut(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i) ); .addOut(new ItemStack(ModItems.nugget_pb209), 4 + 8 * i) );
// HEAUS // // HEAUS //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_australium_greater), 90 - i * 20) .addOut(new ItemStack(ModItems.nugget_australium_greater), 90 - i * 20)
.addOut(new ItemStack(ModItems.nugget_au198), 5 + 10 * i) .addOut(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)
.addOut(new ItemStack(Items.gold_nugget), 3 + 6 * i) .addOut(new ItemStack(Items.gold_nugget), 3 + 6 * i)
.addOut(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i) ); .addOut(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i + 5), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_heaus, 1, i + 5), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_australium_greater), 89 - i * 20) .addOut(new ItemStack(ModItems.nugget_australium_greater), 89 - i * 20)
.addOut(new ItemStack(ModItems.nugget_au198), 5 + 10 * i) .addOut(new ItemStack(ModItems.nugget_au198), 5 + 10 * i)
.addOut(new ItemStack(Items.gold_nugget), 3 + 6 * i) .addOut(new ItemStack(Items.gold_nugget), 3 + 6 * i)
.addOut(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i) ); .addOut(new ItemStack(ModItems.nugget_pb209), 2 + 4 * i) );
// LES // // LES //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_les, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_les, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_les), 90 - i * 20) .addOut(new ItemStack(ModItems.nugget_les), 90 - i * 20)
@ -297,7 +307,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i) );
//TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly
recipes.put(new ComparableStack(ModItems.rbmk_pellet_les, 1, i + 5), new SILEXRecipe(600, 100, 2) //I'd rather not fuck up the NEI handler, so six items it is recipes.put(new ComparableStack(ModItems.rbmk_pellet_les, 1, i + 5), new SILEXRecipe(600, 100, 2) //I'd rather not fuck up the NEI handler, so six items it is
.addOut(new ItemStack(ModItems.nugget_les), 90 - i * 20) //Just bullshit something about "not enough np237 for extractable amounts of xe135" .addOut(new ItemStack(ModItems.nugget_les), 90 - i * 20) //Just bullshit something about "not enough np237 for extractable amounts of xe135"
@ -305,8 +315,8 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.NEPTUNIUM.ordinal()), 2 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 1 + 2 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 8 * i) );
// MES // // MES //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20) .addOut(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20)
@ -315,7 +325,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i) );
//TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly
recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i + 5), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_mes, 1, i + 5), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20) //ditto .addOut(new ItemStack(ModItems.nugget_schrabidium_fuel), 90 - i * 20) //ditto
@ -324,7 +334,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 1 + 3 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 2 + 4 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 4 + 6 * i) );
// HES // // HES //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_hes), 90 - i * 20) .addOut(new ItemStack(ModItems.nugget_hes), 90 - i * 20)
@ -333,7 +343,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 2 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 2 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i) );
//TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly //TODO: Readd xenon processing if/when the NEI handler can display more than 6 outputs properly
recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i + 5), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_hes, 1, i + 5), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_hes), 90 - i * 20) //ditto .addOut(new ItemStack(ModItems.nugget_hes), 90 - i * 20) //ditto
@ -342,17 +352,17 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 2 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_long_tiny, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), 2 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i) .addOut(new ItemStack(ModItems.nuclear_waste_short_tiny, 1, ItemWasteShort.WasteClass.SCHRABIDIUM.ordinal()), 4 + 6 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 2 + 4 * i) );
// BALEFIRE // // BALEFIRE //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i), new SILEXRecipe(400, 100, 3) recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire, 1, i), new SILEXRecipe(400, 100, 3)
.addOut(new ItemStack(ModItems.powder_balefire), 90 - i * 20) .addOut(new ItemStack(ModItems.powder_balefire), 90 - i * 20)
.addOut(new ItemStack(ModItems.nuclear_waste_tiny), 10 + 20 * i) ); .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 10 + 20 * i) );
// FLASHGOLD // // FLASHGOLD //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_balefire_gold, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_au198), 90 - 20 * i) .addOut(new ItemStack(ModItems.nugget_au198), 90 - 20 * i)
.addOut(new ItemStack(ModItems.powder_balefire), 10 + 20 * i) ); .addOut(new ItemStack(ModItems.powder_balefire), 10 + 20 * i) );
// FLASHLEAD // // FLASHLEAD //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_flashlead, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_flashlead, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_au198), 44 - 10 * i) .addOut(new ItemStack(ModItems.nugget_au198), 44 - 10 * i)
@ -360,14 +370,14 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_bismuth), 1 + 6 * i) .addOut(new ItemStack(ModItems.nugget_bismuth), 1 + 6 * i)
.addOut(new ItemStack(ModItems.nugget_mercury), 1 + 6 * i) .addOut(new ItemStack(ModItems.nugget_mercury), 1 + 6 * i)
.addOut(new ItemStack(ModItems.nugget_gh336), 10 + 8 * i) ); //Reimumunch .addOut(new ItemStack(ModItems.nugget_gh336), 10 + 8 * i) ); //Reimumunch
// POBE // // POBE //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_po210be, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_po210be, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_polonium), 45 - 10 * i) .addOut(new ItemStack(ModItems.nugget_polonium), 45 - 10 * i)
.addOut(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i) .addOut(new ItemStack(ModItems.nugget_beryllium), 45 - 10 * i)
.addOut(new ItemStack(ModItems.nugget_lead), 5 + 10 * i) .addOut(new ItemStack(ModItems.nugget_lead), 5 + 10 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) );
// PUBE // // PUBE //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_pu238), 45 - 10 * i) .addOut(new ItemStack(ModItems.nugget_pu238), 45 - 10 * i)
@ -375,7 +385,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i) .addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i + 5), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_pu238be, 1, i + 5), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 1) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 1)
.addOut(new ItemStack(ModItems.nugget_pu238), 44 - 10 * i) .addOut(new ItemStack(ModItems.nugget_pu238), 44 - 10 * i)
@ -383,7 +393,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i) .addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)
.addOut(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i) .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 2 + 5 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) );
// RABE // // RABE //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i), new SILEXRecipe(600, 100, 1) recipes.put(new ComparableStack(ModItems.rbmk_pellet_ra226be, 1, i), new SILEXRecipe(600, 100, 1)
.addOut(new ItemStack(ModItems.nugget_ra226), 45 - 10 * i) .addOut(new ItemStack(ModItems.nugget_ra226), 45 - 10 * i)
@ -391,7 +401,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i) .addOut(new ItemStack(ModItems.nugget_lead), 3 + 5 * i)
.addOut(new ItemStack(ModItems.nugget_polonium), 2 + 5 * i) .addOut(new ItemStack(ModItems.nugget_polonium), 2 + 5 * i)
.addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) ); .addOut(new ItemStack(ModItems.powder_coal_tiny), 5 + 10 * i) );
// DRX // // DRX //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i), new SILEXRecipe(600, 100, 4) recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i), new SILEXRecipe(600, 100, 4)
.addOut(new ItemStack(ModItems.undefined), 1) .addOut(new ItemStack(ModItems.undefined), 1)
@ -400,7 +410,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.undefined), 1) .addOut(new ItemStack(ModItems.undefined), 1)
.addOut(new ItemStack(ModItems.undefined), 1) .addOut(new ItemStack(ModItems.undefined), 1)
.addOut(new ItemStack(ModItems.undefined), 1) ); .addOut(new ItemStack(ModItems.undefined), 1) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i + 5), new SILEXRecipe(600, 100, 4) recipes.put(new ComparableStack(ModItems.rbmk_pellet_drx, 1, i + 5), new SILEXRecipe(600, 100, 4)
.addOut(new ItemStack(ModItems.undefined), 1) .addOut(new ItemStack(ModItems.undefined), 1)
.addOut(new ItemStack(ModItems.undefined), 1) .addOut(new ItemStack(ModItems.undefined), 1)
@ -408,41 +418,41 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.undefined), 1) .addOut(new ItemStack(ModItems.undefined), 1)
.addOut(new ItemStack(ModItems.undefined), 1) .addOut(new ItemStack(ModItems.undefined), 1)
.addOut(new ItemStack(ModItems.undefined), 1) ); .addOut(new ItemStack(ModItems.undefined), 1) );
// ZFB BI // // ZFB BI //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_uranium), 50 - i * 10) .addOut(new ItemStack(ModItems.nugget_uranium), 50 - i * 10)
.addOut(new ItemStack(ModItems.nugget_pu241), 50 - i * 10) .addOut(new ItemStack(ModItems.nugget_pu241), 50 - i * 10)
.addOut(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20) .addOut(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20)
.addOut(new ItemStack(ModItems.nugget_zirconium), 150) ); .addOut(new ItemStack(ModItems.nugget_zirconium), 150) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i + 5), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_bismuth, 1, i + 5), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 3) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 3)
.addOut(new ItemStack(ModItems.nugget_uranium), 50 - i * 10) .addOut(new ItemStack(ModItems.nugget_uranium), 50 - i * 10)
.addOut(new ItemStack(ModItems.nugget_pu241), 50 - i * 10) .addOut(new ItemStack(ModItems.nugget_pu241), 50 - i * 10)
.addOut(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20) .addOut(new ItemStack(ModItems.nugget_bismuth), 50 + i * 20)
.addOut(new ItemStack(ModItems.nugget_zirconium), 147) ); .addOut(new ItemStack(ModItems.nugget_zirconium), 147) );
// ZFB PU-241 // // ZFB PU-241 //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_u235), 50 - i * 10) .addOut(new ItemStack(ModItems.nugget_u235), 50 - i * 10)
.addOut(new ItemStack(ModItems.nugget_pu240), 50 - i * 10) .addOut(new ItemStack(ModItems.nugget_pu240), 50 - i * 10)
.addOut(new ItemStack(ModItems.nugget_pu241), 50 + i * 20) .addOut(new ItemStack(ModItems.nugget_pu241), 50 + i * 20)
.addOut(new ItemStack(ModItems.nugget_zirconium), 150) ); .addOut(new ItemStack(ModItems.nugget_zirconium), 150) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i + 5), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_pu241, 1, i + 5), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 3) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 3)
.addOut(new ItemStack(ModItems.nugget_u235), 50 - i * 10) .addOut(new ItemStack(ModItems.nugget_u235), 50 - i * 10)
.addOut(new ItemStack(ModItems.nugget_pu240), 50 - i * 10) .addOut(new ItemStack(ModItems.nugget_pu240), 50 - i * 10)
.addOut(new ItemStack(ModItems.nugget_pu241), 50 + i * 20) .addOut(new ItemStack(ModItems.nugget_pu241), 50 + i * 20)
.addOut(new ItemStack(ModItems.nugget_zirconium), 147) ); .addOut(new ItemStack(ModItems.nugget_zirconium), 147) );
// ZFB RG-AM // // ZFB RG-AM //
recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.nugget_pu241), 100 - i * 20) .addOut(new ItemStack(ModItems.nugget_pu241), 100 - i * 20)
.addOut(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20) .addOut(new ItemStack(ModItems.nugget_am_mix), 50 + i * 20)
.addOut(new ItemStack(ModItems.nugget_zirconium), 150) ); .addOut(new ItemStack(ModItems.nugget_zirconium), 150) );
recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i + 5), new SILEXRecipe(600, 100, 2) recipes.put(new ComparableStack(ModItems.rbmk_pellet_zfb_am_mix, 1, i + 5), new SILEXRecipe(600, 100, 2)
.addOut(new ItemStack(ModItems.powder_xe135_tiny), 3) .addOut(new ItemStack(ModItems.powder_xe135_tiny), 3)
.addOut(new ItemStack(ModItems.nugget_pu241), 100 - i * 20) .addOut(new ItemStack(ModItems.nugget_pu241), 100 - i * 20)
@ -503,7 +513,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_bismuth), 10) .addOut(new ItemStack(ModItems.nugget_bismuth), 10)
.addOut(new ItemStack(ModItems.nuclear_waste_tiny), 29) .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 29)
); );
recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), new SILEXRecipe(900, 100, 1) recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM239.ordinal()), new SILEXRecipe(900, 100, 1)
.addOut(new ItemStack(ModItems.nugget_pu240), 10) .addOut(new ItemStack(ModItems.nugget_pu240), 10)
.addOut(new ItemStack(ModItems.nugget_pu241), 25) .addOut(new ItemStack(ModItems.nugget_pu241), 25)
@ -519,7 +529,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_u238), 3) .addOut(new ItemStack(ModItems.nugget_u238), 3)
.addOut(new ItemStack(ModItems.nuclear_waste_tiny), 39) .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 39)
); );
recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), new SILEXRecipe(900, 100, 1) recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM240.ordinal()), new SILEXRecipe(900, 100, 1)
.addOut(new ItemStack(ModItems.nugget_pu241), 15) .addOut(new ItemStack(ModItems.nugget_pu241), 15)
.addOut(new ItemStack(ModItems.nugget_neptunium), 5) .addOut(new ItemStack(ModItems.nugget_neptunium), 5)
@ -536,7 +546,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_u238), 3) .addOut(new ItemStack(ModItems.nugget_u238), 3)
.addOut(new ItemStack(ModItems.nuclear_waste_tiny), 36) .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 36)
); );
recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), new SILEXRecipe(900, 100, 2) recipes.put(new ComparableStack(ModItems.nuclear_waste_short, 1, ItemWasteShort.WasteClass.PLUTONIUM241.ordinal()), new SILEXRecipe(900, 100, 2)
.addOut(new ItemStack(ModItems.nugget_am241), 25) .addOut(new ItemStack(ModItems.nugget_am241), 25)
.addOut(new ItemStack(ModItems.nugget_am242), 35) .addOut(new ItemStack(ModItems.nugget_am242), 35)
@ -591,7 +601,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.nugget_lead), 45) .addOut(new ItemStack(ModItems.nugget_lead), 45)
.addOut(new ItemStack(ModItems.nuclear_waste_tiny), 17) .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 17)
); );
recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), new SILEXRecipe(900, 100, 1) recipes.put(new ComparableStack(ModItems.nuclear_waste_long, 1, ItemWasteLong.WasteClass.SCHRABIDIUM.ordinal()), new SILEXRecipe(900, 100, 1)
.addOut(new ItemStack(ModItems.nugget_solinium), 25) .addOut(new ItemStack(ModItems.nugget_solinium), 25)
.addOut(new ItemStack(ModItems.nugget_euphemium), 18) .addOut(new ItemStack(ModItems.nugget_euphemium), 18)
@ -623,7 +633,7 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.dust_tiny), 20) .addOut(new ItemStack(ModItems.dust_tiny), 20)
.addOut(new ItemStack(ModItems.nuclear_waste_tiny), 32) .addOut(new ItemStack(ModItems.nuclear_waste_tiny), 32)
); );
recipes.put(new ComparableStack(ModItems.fallout, 1), new SILEXRecipe(900, 100, 2) recipes.put(new ComparableStack(ModItems.fallout, 1), new SILEXRecipe(900, 100, 2)
.addOut(new ItemStack(ModItems.dust_tiny), 90) .addOut(new ItemStack(ModItems.dust_tiny), 90)
.addOut(new ItemStack(ModItems.nugget_co60), 2) .addOut(new ItemStack(ModItems.nugget_co60), 2)
@ -632,14 +642,14 @@ public class SILEXRecipes {
.addOut(new ItemStack(ModItems.powder_cs137_tiny), 3) .addOut(new ItemStack(ModItems.powder_cs137_tiny), 3)
.addOut(new ItemStack(ModItems.nugget_au198), 1) .addOut(new ItemStack(ModItems.nugget_au198), 1)
); );
recipes.put(new ComparableStack(Blocks.gravel, 1), new SILEXRecipe(1000, 250, EnumWavelengths.VISIBLE) recipes.put(new ComparableStack(Blocks.gravel, 1), new SILEXRecipe(1000, 250, EnumWavelengths.VISIBLE)
.addOut(new ItemStack(Items.flint), 80) .addOut(new ItemStack(Items.flint), 80)
.addOut(new ItemStack(ModItems.powder_boron), 5) .addOut(new ItemStack(ModItems.powder_boron), 5)
.addOut(new ItemStack(ModItems.powder_lithium), 10) .addOut(new ItemStack(ModItems.powder_lithium), 10)
.addOut(new ItemStack(ModItems.fluorite), 5) .addOut(new ItemStack(ModItems.fluorite), 5)
); );
recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.FULLERENE.getID()), recipes.put(new ComparableStack(ModItems.fluid_icon, 1, Fluids.FULLERENE.getID()),
new SILEXRecipe(1_000, 1_000, EnumWavelengths.VISIBLE).addOut(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE), 1)); new SILEXRecipe(1_000, 1_000, EnumWavelengths.VISIBLE).addOut(DictFrame.fromOne(ModItems.powder_ash, EnumAshType.FULLERENE), 1));
} }
@ -652,19 +662,19 @@ public class SILEXRecipes {
tinyWasteTranslation.put(ModItems.nuclear_waste_short_depleted_tiny, ModItems.nuclear_waste_short_depleted); tinyWasteTranslation.put(ModItems.nuclear_waste_short_depleted_tiny, ModItems.nuclear_waste_short_depleted);
tinyWasteTranslation.put(ModItems.nuclear_waste_long_depleted_tiny, ModItems.nuclear_waste_long_depleted); tinyWasteTranslation.put(ModItems.nuclear_waste_long_depleted_tiny, ModItems.nuclear_waste_long_depleted);
} }
public static SILEXRecipe getOutput(ItemStack stack) { public static SILEXRecipe getOutput(ItemStack stack) {
if(stack == null || stack.getItem() == null) if(stack == null || stack.getItem() == null)
return null; return null;
ComparableStack comp = translateItem(stack); ComparableStack comp = translateItem(stack);
if(recipes.containsKey(comp)) if(recipes.containsKey(comp))
return recipes.get(comp); return recipes.get(comp);
String[] dictKeys = comp.getDictKeys(); String[] dictKeys = comp.getDictKeys();
for(String key : dictKeys) { for(String key : dictKeys) {
String translation = translateDict(key); String translation = translateDict(key);
if(recipes.containsKey(translation)) if(recipes.containsKey(translation))
@ -680,54 +690,54 @@ public class SILEXRecipes {
SILEXRecipe tinyVersion = new SILEXRecipe(fluidProduced, result.fluidConsumed, result.laserStrength); SILEXRecipe tinyVersion = new SILEXRecipe(fluidProduced, result.fluidConsumed, result.laserStrength);
// Shared ownership shouldn't be an issue since the resulting recipe isn't modified by the caller // Shared ownership shouldn't be an issue since the resulting recipe isn't modified by the caller
tinyVersion.outputs = result.outputs; tinyVersion.outputs = result.outputs;
// TODO: Cache? Might break saving recipes, IDK // TODO: Cache? Might break saving recipes, IDK
// recipes.put(comp, tinyVersion); // recipes.put(comp, tinyVersion);
return tinyVersion; return tinyVersion;
} }
} }
return null; return null;
} }
public static ComparableStack translateItem(ItemStack stack) { public static ComparableStack translateItem(ItemStack stack) {
ComparableStack orig = new ComparableStack(stack.getItem(), 1, stack.getItemDamage()); ComparableStack orig = new ComparableStack(stack.getItem(), 1, stack.getItemDamage());
ComparableStack translation = itemTranslation.get(orig); ComparableStack translation = itemTranslation.get(orig);
if(translation != null) if(translation != null)
return translation; return translation;
return orig; return orig;
} }
public static String translateDict(String key) { public static String translateDict(String key) {
String translation = dictTranslation.get(key); String translation = dictTranslation.get(key);
if(translation != null) if(translation != null)
return translation; return translation;
return key; return key;
} }
public static List<Object> getAllIngredients() { public static List<Object> getAllIngredients() {
List<Object> ing = new ArrayList(); List<Object> ing = new ArrayList();
for(Entry<Object, SILEXRecipe> entry : SILEXRecipes.recipes.entrySet()) ing.add(entry.getKey()); for(Entry<Object, SILEXRecipe> entry : SILEXRecipes.recipes.entrySet()) ing.add(entry.getKey());
for(Entry<ComparableStack, ComparableStack> entry : SILEXRecipes.itemTranslation.entrySet()) ing.add(entry.getKey()); for(Entry<ComparableStack, ComparableStack> entry : SILEXRecipes.itemTranslation.entrySet()) ing.add(entry.getKey());
for(Entry<String, String> entry : SILEXRecipes.dictTranslation.entrySet()) ing.add(entry.getKey()); for(Entry<String, String> entry : SILEXRecipes.dictTranslation.entrySet()) ing.add(entry.getKey());
return ing; return ing;
} }
public static Map<Object, SILEXRecipe> getRecipes() { public static Map<Object, SILEXRecipe> getRecipes() {
Map<Object, SILEXRecipe> recipes = new HashMap<Object, SILEXRecipe>(); Map<Object, SILEXRecipe> recipes = new HashMap<Object, SILEXRecipe>();
List<Object> ing = getAllIngredients(); List<Object> ing = getAllIngredients();
for(Object ingredient : ing) { for(Object ingredient : ing) {
if(ingredient instanceof String) { if(ingredient instanceof String) {
List<ItemStack> ingredients = OreDictionary.getOres((String)ingredient); List<ItemStack> ingredients = OreDictionary.getOres((String)ingredient);
if(ingredients.size() > 0) { if(ingredients.size() > 0) {
@ -735,41 +745,41 @@ public class SILEXRecipes {
if(output != null) if(output != null)
recipes.put(ingredients, output); recipes.put(ingredients, output);
} }
} else if(ingredient instanceof ComparableStack) { } else if(ingredient instanceof ComparableStack) {
SILEXRecipe output = getOutput(((ComparableStack) ingredient).toStack()); SILEXRecipe output = getOutput(((ComparableStack) ingredient).toStack());
if(output != null) if(output != null)
recipes.put(((ComparableStack)ingredient).toStack(), output); recipes.put(((ComparableStack)ingredient).toStack(), output);
} }
} }
return recipes; return recipes;
} }
public static class SILEXRecipe { public static class SILEXRecipe {
public int fluidProduced; public int fluidProduced;
public int fluidConsumed; public int fluidConsumed;
public EnumWavelengths laserStrength; public EnumWavelengths laserStrength;
public List<WeightedRandomObject> outputs = new ArrayList(); public List<WeightedRandomObject> outputs = new ArrayList();
public SILEXRecipe(int fluidProduced, int fluidConsumed, EnumWavelengths laserStrength) { public SILEXRecipe(int fluidProduced, int fluidConsumed, EnumWavelengths laserStrength) {
this.fluidProduced = fluidProduced; this.fluidProduced = fluidProduced;
this.fluidConsumed = fluidConsumed; this.fluidConsumed = fluidConsumed;
this.laserStrength = laserStrength; this.laserStrength = laserStrength;
} }
public SILEXRecipe(int fluidProduced, int fluidConsumed, int laserStrength) { public SILEXRecipe(int fluidProduced, int fluidConsumed, int laserStrength) {
this(fluidProduced, fluidConsumed, EnumWavelengths.values()[laserStrength]); this(fluidProduced, fluidConsumed, EnumWavelengths.values()[laserStrength]);
} }
public SILEXRecipe addOut(ItemStack stack, int weight) { public SILEXRecipe addOut(ItemStack stack, int weight) {
return addOut(new WeightedRandomObject(stack, weight)); return addOut(new WeightedRandomObject(stack, weight));
} }
public SILEXRecipe addOut(WeightedRandomObject entry) { public SILEXRecipe addOut(WeightedRandomObject entry) {
outputs.add(entry); outputs.add(entry);
return this; return this;
} }
} }
} }

View File

@ -33,24 +33,24 @@ public class ShredderRecipes extends SerializableRecipe {
public static HashMap<ComparableStack, ItemStack> shredderRecipes = new HashMap(); public static HashMap<ComparableStack, ItemStack> shredderRecipes = new HashMap();
public static HashMap<Object, Object> neiShredderRecipes; public static HashMap<Object, Object> neiShredderRecipes;
@Override @Override
public void registerPost() { public void registerPost() {
String[] names = OreDictionary.getOreNames(); String[] names = OreDictionary.getOreNames();
for(int i = 0; i < names.length; i++) { for(int i = 0; i < names.length; i++) {
String name = names[i]; String name = names[i];
//if the dict contains invalid names, skip //if the dict contains invalid names, skip
if(name == null || name.isEmpty()) if(name == null || name.isEmpty())
continue; continue;
if(name.contains("Any")) continue; if(name.contains("Any")) continue;
List<ItemStack> matches = OreDictionary.getOres(name); List<ItemStack> matches = OreDictionary.getOres(name);
//if the name isn't assigned to an ore, also skip //if the name isn't assigned to an ore, also skip
if(matches == null || matches.isEmpty()) if(matches == null || matches.isEmpty())
continue; continue;
@ -63,23 +63,23 @@ public class ShredderRecipes extends SerializableRecipe {
generateRecipes("crystal", name, matches, 1); generateRecipes("crystal", name, matches, 1);
//2 ingot units, any //2 ingot units, any
generateRecipes("ore", name, matches, 2); generateRecipes("ore", name, matches, 2);
if(name.length() > 5 && name.substring(0, 5).equals("block")) { if(name.length() > 5 && name.substring(0, 5).equals("block")) {
ItemStack dust = getDustByName(name.substring(5)); ItemStack dust = getDustByName(name.substring(5));
if(dust != null && dust.getItem() != ModItems.scrap) { if(dust != null && dust.getItem() != ModItems.scrap) {
dust.stackSize = 9; dust.stackSize = 9;
if(getIngotOrGemByName(name.substring(5)) == null) if(getIngotOrGemByName(name.substring(5)) == null)
dust.stackSize = 4; dust.stackSize = 4;
for(ItemStack stack : matches) { for(ItemStack stack : matches) {
putIfValid(stack, dust, name); putIfValid(stack, dust, name);
} }
} }
} }
if(name.length() > 7 && name.substring(0, 8).equals("dustTiny")) { if(name.length() > 7 && name.substring(0, 8).equals("dustTiny")) {
for(ItemStack stack : matches) { for(ItemStack stack : matches) {
putIfValid(stack, new ItemStack(ModItems.dust_tiny), name); putIfValid(stack, new ItemStack(ModItems.dust_tiny), name);
@ -91,40 +91,40 @@ public class ShredderRecipes extends SerializableRecipe {
} }
} }
} }
@Untested @Untested
private static void generateRecipes(String prefix, String name, List<ItemStack> matches, int outCount) { private static void generateRecipes(String prefix, String name, List<ItemStack> matches, int outCount) {
int len = prefix.length(); int len = prefix.length();
if(name.length() > len && name.substring(0, len).equals(prefix)) { if(name.length() > len && name.substring(0, len).equals(prefix)) {
String matName = name.substring(len); String matName = name.substring(len);
ItemStack dust = getDustByName(matName); ItemStack dust = getDustByName(matName);
if(dust != null && dust.getItem() != ModItems.scrap) { if(dust != null && dust.getItem() != ModItems.scrap) {
dust.stackSize = outCount; dust.stackSize = outCount;
for(ItemStack stack : matches) { for(ItemStack stack : matches) {
putIfValid(stack, dust, name); putIfValid(stack, dust, name);
} }
} }
} }
} }
private static void putIfValid(ItemStack in, ItemStack dust, String name) { private static void putIfValid(ItemStack in, ItemStack dust, String name) {
if(in != null) { if(in != null) {
if(in.getItem() != null) { if(in.getItem() != null) {
setRecipe(new ComparableStack(in), dust); setRecipe(new ComparableStack(in), dust);
} else { } else {
MainRegistry.logger.error("Ore dict entry '" + name + "' has a null item in its stack! How does that even happen?"); MainRegistry.logger.error("Ore dict entry '" + name + "' has a null item in its stack! How does that even happen?");
Thread.currentThread().dumpStack(); Thread.currentThread().dumpStack();
} }
} else { } else {
MainRegistry.logger.error("Ore dict entry '" + name + "' has a null stack!"); MainRegistry.logger.error("Ore dict entry '" + name + "' has a null stack!");
Thread.currentThread().dumpStack(); Thread.currentThread().dumpStack();
@ -209,15 +209,16 @@ public class ShredderRecipes extends SerializableRecipe {
ShredderRecipes.setRecipe(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), new ItemStack(ModItems.powder_desh_mix)); ShredderRecipes.setRecipe(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), new ItemStack(ModItems.powder_desh_mix));
ShredderRecipes.setRecipe(Blocks.sand, new ItemStack(ModItems.dust, 2)); ShredderRecipes.setRecipe(Blocks.sand, new ItemStack(ModItems.dust, 2));
ShredderRecipes.setRecipe(ModBlocks.block_slag, new ItemStack(ModItems.powder_cement, 4)); ShredderRecipes.setRecipe(ModBlocks.block_slag, new ItemStack(ModItems.powder_cement, 4));
ShredderRecipes.setRecipe(ModBlocks.ore_aluminium, DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.CRYOLITE, 2));
List<ItemStack> logs = OreDictionary.getOres("logWood"); List<ItemStack> logs = OreDictionary.getOres("logWood");
List<ItemStack> planks = OreDictionary.getOres("plankWood"); List<ItemStack> planks = OreDictionary.getOres("plankWood");
List<ItemStack> saplings = OreDictionary.getOres("treeSapling"); List<ItemStack> saplings = OreDictionary.getOres("treeSapling");
for(ItemStack log : logs) ShredderRecipes.setRecipe(log, new ItemStack(ModItems.powder_sawdust, 4)); for(ItemStack log : logs) ShredderRecipes.setRecipe(log, new ItemStack(ModItems.powder_sawdust, 4));
for(ItemStack plank : planks) ShredderRecipes.setRecipe(plank, new ItemStack(ModItems.powder_sawdust, 1)); for(ItemStack plank : planks) ShredderRecipes.setRecipe(plank, new ItemStack(ModItems.powder_sawdust, 1));
for(ItemStack sapling : saplings) ShredderRecipes.setRecipe(sapling, new ItemStack(Items.stick, 1)); for(ItemStack sapling : saplings) ShredderRecipes.setRecipe(sapling, new ItemStack(Items.stick, 1));
for(EnumBedrockOre ore : EnumBedrockOre.values()) { for(EnumBedrockOre ore : EnumBedrockOre.values()) {
int i = ore.ordinal(); int i = ore.ordinal();
ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock, 1, i), new ItemStack(ModItems.ore_enriched, 1, i)); ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_bedrock, 1, i), new ItemStack(ModItems.ore_enriched, 1, i));
@ -230,7 +231,7 @@ public class ShredderRecipes extends SerializableRecipe {
ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_deepcleaned, 1, i), new ItemStack(ModItems.ore_enriched, 1, i)); ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_deepcleaned, 1, i), new ItemStack(ModItems.ore_enriched, 1, i));
ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_seared, 1, i), new ItemStack(ModItems.ore_enriched, 1, i)); ShredderRecipes.setRecipe(new ItemStack(ModItems.ore_seared, 1, i), new ItemStack(ModItems.ore_enriched, 1, i));
} }
for(int i = 0; i < 5; i++) ShredderRecipes.setRecipe(new ItemStack(Items.skull, 1, i), new ItemStack(ModItems.biomass, 4)); for(int i = 0; i < 5; i++) ShredderRecipes.setRecipe(new ItemStack(Items.skull, 1, i), new ItemStack(ModItems.biomass, 4));
/* Crystal processing */ /* Crystal processing */
@ -295,7 +296,7 @@ public class ShredderRecipes extends SerializableRecipe {
ShredderRecipes.setRecipe(new ItemStack(ModBlocks.sellafield, 1, 3), new ItemStack(ModItems.scrap_nuclear, 5)); ShredderRecipes.setRecipe(new ItemStack(ModBlocks.sellafield, 1, 3), new ItemStack(ModItems.scrap_nuclear, 5));
ShredderRecipes.setRecipe(new ItemStack(ModBlocks.sellafield, 1, 4), new ItemStack(ModItems.scrap_nuclear, 7)); ShredderRecipes.setRecipe(new ItemStack(ModBlocks.sellafield, 1, 4), new ItemStack(ModItems.scrap_nuclear, 7));
ShredderRecipes.setRecipe(new ItemStack(ModBlocks.sellafield, 1, 5), new ItemStack(ModItems.scrap_nuclear, 15)); ShredderRecipes.setRecipe(new ItemStack(ModBlocks.sellafield, 1, 5), new ItemStack(ModItems.scrap_nuclear, 15));
/* Fracking debris scrapping */ /* Fracking debris scrapping */
ShredderRecipes.setRecipe(ModBlocks.dirt_dead, new ItemStack(ModItems.scrap_oil, 1)); ShredderRecipes.setRecipe(ModBlocks.dirt_dead, new ItemStack(ModItems.scrap_oil, 1));
ShredderRecipes.setRecipe(ModBlocks.dirt_oily, new ItemStack(ModItems.scrap_oil, 1)); ShredderRecipes.setRecipe(ModBlocks.dirt_oily, new ItemStack(ModItems.scrap_oil, 1));
@ -335,13 +336,13 @@ public class ShredderRecipes extends SerializableRecipe {
ShredderRecipes.setRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, i), new ItemStack(Items.clay_ball, 4)); ShredderRecipes.setRecipe(new ItemStack(Blocks.stained_hardened_clay, 1, i), new ItemStack(Items.clay_ball, 4));
ShredderRecipes.setRecipe(new ItemStack(Blocks.wool, 1, i), new ItemStack(Items.string, 4)); ShredderRecipes.setRecipe(new ItemStack(Blocks.wool, 1, i), new ItemStack(Items.string, 4));
} }
/* Shredding bobbleheads */ /* Shredding bobbleheads */
for(int i = 0; i < BobbleType.values().length; i++) { for(int i = 0; i < BobbleType.values().length; i++) {
BobbleType type = BobbleType.values()[i]; BobbleType type = BobbleType.values()[i];
ShredderRecipes.setRecipe(new ItemStack(ModBlocks.bobblehead, 1, i), new ItemStack(ModItems.scrap_plastic, 1, type.scrap.ordinal())); ShredderRecipes.setRecipe(new ItemStack(ModBlocks.bobblehead, 1, i), new ItemStack(ModItems.scrap_plastic, 1, type.scrap.ordinal()));
} }
/* Debris shredding */ /* Debris shredding */
ShredderRecipes.setRecipe(ModItems.debris_concrete, new ItemStack(ModItems.scrap_nuclear, 2)); ShredderRecipes.setRecipe(ModItems.debris_concrete, new ItemStack(ModItems.scrap_nuclear, 2));
ShredderRecipes.setRecipe(ModItems.debris_shrapnel, new ItemStack(ModItems.powder_steel_tiny, 5)); ShredderRecipes.setRecipe(ModItems.debris_shrapnel, new ItemStack(ModItems.powder_steel_tiny, 5));
@ -349,96 +350,96 @@ public class ShredderRecipes extends SerializableRecipe {
ShredderRecipes.setRecipe(ModItems.debris_element, new ItemStack(ModItems.scrap_nuclear, 4)); ShredderRecipes.setRecipe(ModItems.debris_element, new ItemStack(ModItems.scrap_nuclear, 4));
ShredderRecipes.setRecipe(ModItems.debris_metal, new ItemStack(ModItems.powder_steel_tiny, 3)); ShredderRecipes.setRecipe(ModItems.debris_metal, new ItemStack(ModItems.powder_steel_tiny, 3));
ShredderRecipes.setRecipe(ModItems.debris_graphite, new ItemStack(ModItems.powder_coal, 1)); ShredderRecipes.setRecipe(ModItems.debris_graphite, new ItemStack(ModItems.powder_coal, 1));
/* GC COMPAT */ /* GC COMPAT */
Block gcMoonBlock = Compat.tryLoadBlock(Compat.MOD_GCC, "moonBlock"); Block gcMoonBlock = Compat.tryLoadBlock(Compat.MOD_GCC, "moonBlock");
if(gcMoonBlock != null && gcMoonBlock != Blocks.air) { if(gcMoonBlock != null && gcMoonBlock != Blocks.air) {
ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 3), new ItemStack(ModBlocks.moon_turf)); //Moon dirt ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 3), new ItemStack(ModBlocks.moon_turf)); //Moon dirt
ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 5), new ItemStack(ModBlocks.moon_turf)); //Moon topsoil ShredderRecipes.setRecipe(new ItemStack(gcMoonBlock, 1, 5), new ItemStack(ModBlocks.moon_turf)); //Moon topsoil
} }
/* AR COMPAT */ /* AR COMPAT */
Block arMoonTurf = Compat.tryLoadBlock(Compat.MOD_AR, "turf"); Block arMoonTurf = Compat.tryLoadBlock(Compat.MOD_AR, "turf");
if(arMoonTurf != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf if(arMoonTurf != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurf, new ItemStack(ModBlocks.moon_turf)); //i assume it's moon turf
Block arMoonTurfDark = Compat.tryLoadBlock(Compat.MOD_AR, "turfDark"); Block arMoonTurfDark = Compat.tryLoadBlock(Compat.MOD_AR, "turfDark");
if(arMoonTurfDark != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds if(arMoonTurfDark != null && gcMoonBlock != Blocks.air) ShredderRecipes.setRecipe(arMoonTurfDark, new ItemStack(ModBlocks.moon_turf)); //probably moon dirt? would have helped if i had ever played AR for more than 5 seconds
} }
/** /**
* Returns scrap when no dust is found, for quickly adding recipes * Returns scrap when no dust is found, for quickly adding recipes
* @param name * @param name
* @return * @return
*/ */
public static ItemStack getDustByName(String name) { public static ItemStack getDustByName(String name) {
List<ItemStack> matches = OreDictionary.getOres("dust" + name); List<ItemStack> matches = OreDictionary.getOres("dust" + name);
if(matches != null && !matches.isEmpty()) if(matches != null && !matches.isEmpty())
return matches.get(0).copy(); return matches.get(0).copy();
return new ItemStack(ModItems.scrap); return new ItemStack(ModItems.scrap);
} }
/** /**
* Returns null when no ingot or gem is found, for deciding whether the block shredding output should be 9 or 4 dusts * Returns null when no ingot or gem is found, for deciding whether the block shredding output should be 9 or 4 dusts
* @param name * @param name
* @return * @return
*/ */
public static ItemStack getIngotOrGemByName(String name) { public static ItemStack getIngotOrGemByName(String name) {
List<ItemStack> matches = OreDictionary.getOres("ingot" + name); List<ItemStack> matches = OreDictionary.getOres("ingot" + name);
if(matches != null && !matches.isEmpty()) if(matches != null && !matches.isEmpty())
return matches.get(0).copy(); return matches.get(0).copy();
matches = OreDictionary.getOres("gem" + name); matches = OreDictionary.getOres("gem" + name);
if(matches != null && !matches.isEmpty()) if(matches != null && !matches.isEmpty())
return matches.get(0).copy(); return matches.get(0).copy();
return null; return null;
} }
public static void setRecipe(Item in, ItemStack out) { public static void setRecipe(Item in, ItemStack out) {
setRecipe(new ComparableStack(in), out); setRecipe(new ComparableStack(in), out);
} }
public static void setRecipe(Block in, ItemStack out) { public static void setRecipe(Block in, ItemStack out) {
setRecipe(new ComparableStack(in), out); setRecipe(new ComparableStack(in), out);
} }
public static void setRecipe(ItemStack in, ItemStack out) { public static void setRecipe(ItemStack in, ItemStack out) {
setRecipe(new ComparableStack(in), out); setRecipe(new ComparableStack(in), out);
} }
public static void setRecipe(ComparableStack in, ItemStack out) { public static void setRecipe(ComparableStack in, ItemStack out) {
if(!shredderRecipes.containsKey(in)) { if(!shredderRecipes.containsKey(in)) {
shredderRecipes.put(in, out); shredderRecipes.put(in, out);
} }
} }
public static Map<Object, Object> getShredderRecipes() { public static Map<Object, Object> getShredderRecipes() {
//convert the map only once to save on processing power (might be more ram intensive but that can't be THAT bad, right?) //convert the map only once to save on processing power (might be more ram intensive but that can't be THAT bad, right?)
if(neiShredderRecipes == null) if(neiShredderRecipes == null)
neiShredderRecipes = new HashMap(shredderRecipes); neiShredderRecipes = new HashMap(shredderRecipes);
return neiShredderRecipes; return neiShredderRecipes;
} }
public static ItemStack getShredderResult(ItemStack stack) { public static ItemStack getShredderResult(ItemStack stack) {
if(stack == null || stack.getItem() == null) if(stack == null || stack.getItem() == null)
return new ItemStack(ModItems.scrap); return new ItemStack(ModItems.scrap);
ComparableStack comp = new ComparableStack(stack).makeSingular(); ComparableStack comp = new ComparableStack(stack).makeSingular();
ItemStack sta = shredderRecipes.get(comp); ItemStack sta = shredderRecipes.get(comp);
if(sta == null) { if(sta == null) {
comp.meta = OreDictionary.WILDCARD_VALUE; comp.meta = OreDictionary.WILDCARD_VALUE;
sta = shredderRecipes.get(comp); sta = shredderRecipes.get(comp);
} }
return sta == null ? new ItemStack(ModItems.scrap) : sta; return sta == null ? new ItemStack(ModItems.scrap) : sta;
} }

View File

@ -55,12 +55,12 @@ public class SolidificationRecipes extends SerializableRecipe {
//in the event that these compounds are STILL too useless, add unsat + gas -> kerosene recipe for all those missile junkies //in the event that these compounds are STILL too useless, add unsat + gas -> kerosene recipe for all those missile junkies
//aromatics can be idfk wax or soap or sth, perhaps artificial lubricant? //aromatics can be idfk wax or soap or sth, perhaps artificial lubricant?
//on that note, add more leaded variants //on that note, add more leaded variants
private static HashMap<FluidType, Pair<Integer, ItemStack>> recipes = new HashMap(); private static HashMap<FluidType, Pair<Integer, ItemStack>> recipes = new HashMap();
@Override @Override
public void registerDefaults() { public void registerDefaults() {
registerRecipe(WATER, 1000, Blocks.ice); registerRecipe(WATER, 1000, Blocks.ice);
registerRecipe(LAVA, 1000, Blocks.obsidian); registerRecipe(LAVA, 1000, Blocks.obsidian);
registerRecipe(MERCURY, 125, ModItems.ingot_mercury); registerRecipe(MERCURY, 125, ModItems.ingot_mercury);
@ -68,7 +68,7 @@ public class SolidificationRecipes extends SerializableRecipe {
registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size) 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(ENDERJUICE, 100, Items.ender_pearl);
registerRecipe(WATZ, 1000, ModItems.ingot_mud); registerRecipe(WATZ, 1000, ModItems.ingot_mud);
registerRecipe(REDMUD, 1000, Items.iron_ingot); registerRecipe(REDMUD, 450, Items.iron_ingot);
registerRecipe(SODIUM, 100, ModItems.powder_sodium); registerRecipe(SODIUM, 100, ModItems.powder_sodium);
registerRecipe(LEAD, 100, ModItems.ingot_lead); registerRecipe(LEAD, 100, ModItems.ingot_lead);
registerRecipe(SLOP, 250, ModBlocks.ore_oil_sand); registerRecipe(SLOP, 250, ModBlocks.ore_oil_sand);
@ -84,7 +84,7 @@ public class SolidificationRecipes extends SerializableRecipe {
registerRecipe(LUBRICANT, SF_LUBE, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN)); registerRecipe(LUBRICANT, SF_LUBE, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.PARAFFIN));
registerRecipe(BALEFIRE, 250, ModItems.solid_fuel_bf); registerRecipe(BALEFIRE, 250, ModItems.solid_fuel_bf);
registerSFAuto(SMEAR); registerSFAuto(SMEAR);
registerSFAuto(HEATINGOIL); registerSFAuto(HEATINGOIL);
registerSFAuto(HEATINGOIL_VACUUM); registerSFAuto(HEATINGOIL_VACUUM);
@ -114,7 +114,7 @@ public class SolidificationRecipes extends SerializableRecipe {
registerSFAuto(REFORMATE); registerSFAuto(REFORMATE);
registerSFAuto(XYLENE); registerSFAuto(XYLENE);
registerSFAuto(BALEFIRE, 24_000_000L, ModItems.solid_fuel_bf); //holy shit this is energy dense*/ registerSFAuto(BALEFIRE, 24_000_000L, ModItems.solid_fuel_bf); //holy shit this is energy dense*/
} }
private static void registerSFAuto(FluidType fluid) { private static void registerSFAuto(FluidType fluid) {
@ -123,13 +123,13 @@ public class SolidificationRecipes extends SerializableRecipe {
private static void registerSFAuto(FluidType fluid, long tuPerSF, Item fuel) { private static void registerSFAuto(FluidType fluid, long tuPerSF, Item fuel) {
long tuPerBucket = fluid.getTrait(FT_Flammable.class).getHeatEnergy(); long tuPerBucket = fluid.getTrait(FT_Flammable.class).getHeatEnergy();
double penalty = 1.25D; double penalty = 1.25D;
int mB = (int) (tuPerSF * 1000L * penalty / tuPerBucket); int mB = (int) (tuPerSF * 1000L * penalty / tuPerBucket);
if(mB > 10_000) mB -= (mB % 1000); if(mB > 10_000) mB -= (mB % 1000);
else if(mB > 1_000) mB -= (mB % 100); else if(mB > 1_000) mB -= (mB % 100);
else if(mB > 100) mB -= (mB % 10); else if(mB > 100) mB -= (mB % 10);
mB = Math.max(mB, 1); mB = Math.max(mB, 1);
registerRecipe(fluid, mB, fuel); registerRecipe(fluid, mB, fuel);
@ -140,24 +140,24 @@ public class SolidificationRecipes extends SerializableRecipe {
private static void registerRecipe(FluidType type, int quantity, ItemStack output) { private static void registerRecipe(FluidType type, int quantity, ItemStack output) {
recipes.put(type, new Pair<Integer, ItemStack>(quantity, output)); recipes.put(type, new Pair<Integer, ItemStack>(quantity, output));
} }
public static Pair<Integer, ItemStack> getOutput(FluidType type) { public static Pair<Integer, ItemStack> getOutput(FluidType type) {
return recipes.get(type); return recipes.get(type);
} }
public static HashMap<ItemStack, ItemStack> getRecipes() { public static HashMap<ItemStack, ItemStack> getRecipes() {
HashMap<ItemStack, ItemStack> recipes = new HashMap<ItemStack, ItemStack>(); HashMap<ItemStack, ItemStack> recipes = new HashMap<ItemStack, ItemStack>();
for(Entry<FluidType, Pair<Integer, ItemStack>> entry : SolidificationRecipes.recipes.entrySet()) { for(Entry<FluidType, Pair<Integer, ItemStack>> entry : SolidificationRecipes.recipes.entrySet()) {
FluidType type = entry.getKey(); FluidType type = entry.getKey();
int amount = entry.getValue().getKey(); int amount = entry.getValue().getKey();
ItemStack out = entry.getValue().getValue().copy(); ItemStack out = entry.getValue().getValue().copy();
recipes.put(ItemFluidIcon.make(type, amount), out); recipes.put(ItemFluidIcon.make(type, amount), out);
} }
return recipes; return recipes;
} }

View File

@ -43,7 +43,6 @@ public class AnvilRecipes extends SerializableRecipe {
public static void register() { public static void register() {
registerSmithing(); registerSmithing();
registerConstruction();
} }
@Override public String getFileName() { return "hbmAnvil.json"; } @Override public String getFileName() { return "hbmAnvil.json"; }
@ -598,7 +597,6 @@ public class AnvilRecipes extends SerializableRecipe {
constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2)); constructionRecipes.add(new AnvilConstructionRecipe(new AStack[]{new ComparableStack(ModItems.mold_base), new OreDictStack(STEEL.ingot(), 4)}, new AnvilOutput(new ItemStack(ModItems.mold, 1, 28))).setTier(2));
pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1); pullFromAssembler(new ComparableStack(ModItems.pellet_buckshot), 1);
pullFromAssembler(new ComparableStack(ModItems.pellet_canister), 1);
} }
public static void registerConstructionUpgrades() { public static void registerConstructionUpgrades() {

View File

@ -51,7 +51,9 @@ public class ItemEnums {
} }
public static enum EnumChunkType { public static enum EnumChunkType {
RARE, MALACHITE RARE,
MALACHITE,
CRYOLITE
} }
public static enum EnumAchievementType { public static enum EnumAchievementType {

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +1,14 @@
package com.hbm.items.machine; package com.hbm.items.machine;
import java.util.List; import java.util.List;
import java.util.Locale;
import com.hbm.items.ItemEnumMulti; import com.hbm.items.ItemEnumMulti;
import com.hbm.util.EnumUtil; import com.hbm.util.EnumUtil;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
public class ItemPACoil extends ItemEnumMulti { public class ItemPACoil extends ItemEnumMulti {
@ -16,30 +18,33 @@ public class ItemPACoil extends ItemEnumMulti {
} }
public static enum EnumCoilType { public static enum EnumCoilType {
GOLD(0, 10_000, 0, 10_000, 0.99D), GOLD(0, 2_200, 0, 2_200, 15),
NIOBIUM(5_000, 100_000, 5_000, 100_000, 0.999D), NIOBIUM(1_500, 8_400, 1_500, 8_400, 21),
BSCCO(50_000, 500_000, 50_000, 500_000, 0.99975D); BSCCO(7_500, 15_000, 7_500, 15_000, 27),
CHLOROPHYTE(14_500, 75_000, 14_500, 75_000, 51);
public int quadMin; public int quadMin;
public int quadMax; public int quadMax;
public int diMin; public int diMin;
public int diMax; public int diMax;
public double diMult; public int diDistMin;
private EnumCoilType(int quadMin, int quadMax, int diMin, int diMax, double diMult) { private EnumCoilType(int quadMin, int quadMax, int diMin, int diMax, int diDistMin) {
this.quadMin = quadMin; this.quadMin = quadMin;
this.quadMax = quadMax; this.quadMax = quadMax;
this.diMin = diMin; this.diMin = diMin;
this.diMax = diMax; this.diMax = diMax;
this.diMult = diMult; this.diDistMin = diDistMin;
} }
} }
@Override @Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
EnumCoilType type = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage()); EnumCoilType type = EnumUtil.grabEnumSafely(theEnum, stack.getItemDamage());
list.add("Quadrupole operational range: " + type.quadMin + " - " + type.quadMax); list.add(EnumChatFormatting.BLUE + "Quadrupole operational range: " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", type.quadMin) + " - " + String.format(Locale.US, "%,d", type.quadMax));
list.add("Dipole operational range: " + type.diMin + " - " + type.diMax); list.add(EnumChatFormatting.BLUE + "Dipole operational range: " + EnumChatFormatting.RESET + String.format(Locale.US, "%,d", type.diMin) + " - " + String.format(Locale.US, "%,d", type.diMax));
list.add("Dipole momentum multiplier: x" + type.diMult); list.add(EnumChatFormatting.BLUE + "Dipole minimum side length: " + EnumChatFormatting.RESET + type.diDistMin);
list.add(EnumChatFormatting.RED + "Minimums not met result in a power draw penalty!");
list.add(EnumChatFormatting.RED + "Maximums exceeded result in the particle crashing!");
} }
} }

View File

@ -34,7 +34,7 @@ public class ItemBedrockOreNew extends Item {
public IIcon[] icons = new IIcon[BedrockOreType.values().length * BedrockOreGrade.values().length]; public IIcon[] icons = new IIcon[BedrockOreType.values().length * BedrockOreGrade.values().length];
public IIcon[] overlays = new IIcon[ProcessingTrait.values().length]; public IIcon[] overlays = new IIcon[ProcessingTrait.values().length];
public ItemBedrockOreNew() { public ItemBedrockOreNew() {
this.setHasSubtypes(true); this.setHasSubtypes(true);
this.setMaxDamage(0); this.setMaxDamage(0);
@ -44,10 +44,10 @@ public class ItemBedrockOreNew extends Item {
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister reg) { public void registerIcons(IIconRegister reg) {
if(reg instanceof TextureMap) { if(reg instanceof TextureMap) {
TextureMap map = (TextureMap) reg; TextureMap map = (TextureMap) reg;
for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i]; for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i];
for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j]; for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j];
String placeholderName = RefStrings.MODID + ":bedrock_ore_" + grade.prefix + "_" + type.suffix + "-" + (i * BedrockOreType.values().length + j); String placeholderName = RefStrings.MODID + ":bedrock_ore_" + grade.prefix + "_" + type.suffix + "-" + (i * BedrockOreType.values().length + j);
@ -57,7 +57,7 @@ public class ItemBedrockOreNew extends Item {
} }
} }
} }
for(int i = 0; i < overlays.length; i++) { for(int i = 0; i < overlays.length; i++) {
ProcessingTrait trait = ProcessingTrait.values()[i]; ProcessingTrait trait = ProcessingTrait.values()[i];
overlays[i] = reg.registerIcon(RefStrings.MODID + ":bedrock_ore_overlay." + trait.name().toLowerCase(Locale.US)); overlays[i] = reg.registerIcon(RefStrings.MODID + ":bedrock_ore_overlay." + trait.name().toLowerCase(Locale.US));
@ -67,7 +67,7 @@ public class ItemBedrockOreNew extends Item {
@Override @Override
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void getSubItems(Item item, CreativeTabs tab, List list) { public void getSubItems(Item item, CreativeTabs tab, List list) {
for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j]; for(int j = 0; j < BedrockOreType.values().length; j++) { BedrockOreType type = BedrockOreType.values()[j];
for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i]; for(int i = 0; i < BedrockOreGrade.values().length; i++) { BedrockOreGrade grade = BedrockOreGrade.values()[i];
list.add(this.make(grade, type)); list.add(this.make(grade, type));
@ -80,7 +80,7 @@ public class ItemBedrockOreNew extends Item {
public boolean requiresMultipleRenderPasses() { public boolean requiresMultipleRenderPasses() {
return true; return true;
} }
@Override @Override
public int getRenderPasses(int metadata) { public int getRenderPasses(int metadata) {
return 1 + this.getGrade(metadata).traits.length; return 1 + this.getGrade(metadata).traits.length;
@ -105,15 +105,15 @@ public class ItemBedrockOreNew extends Item {
String type = StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".type." + this.getType(meta).suffix + ".name"); String type = StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".type." + this.getType(meta).suffix + ".name");
return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".grade." + this.getGrade(meta).name().toLowerCase(Locale.US) + ".name", type); return StatCollector.translateToLocalFormatted(this.getUnlocalizedNameInefficiently(stack) + ".grade." + this.getGrade(meta).name().toLowerCase(Locale.US) + ".name", type);
} }
@Override @Override
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) {
for(ProcessingTrait trait : this.getGrade(stack.getItemDamage()).traits) { for(ProcessingTrait trait : this.getGrade(stack.getItemDamage()).traits) {
list.add(I18nUtil.resolveKey(this.getUnlocalizedNameInefficiently(stack) + ".trait." + trait.name().toLowerCase(Locale.US))); list.add(I18nUtil.resolveKey(this.getUnlocalizedNameInefficiently(stack) + ".trait." + trait.name().toLowerCase(Locale.US)));
} }
} }
public static class BedrockOreOutput { public static class BedrockOreOutput {
public NTMMaterial mat; public NTMMaterial mat;
public int amount; public int amount;
@ -122,21 +122,21 @@ public class ItemBedrockOreNew extends Item {
this.amount = amount; this.amount = amount;
} }
} }
public static BedrockOreOutput o(NTMMaterial mat, int amount) { public static BedrockOreOutput o(NTMMaterial mat, int amount) {
return new BedrockOreOutput(mat, amount); return new BedrockOreOutput(mat, amount);
} }
public static enum BedrockOreType { public static enum BedrockOreType {
// primary sulfuric solvent radsolvent // primary sulfuric solvent radsolvent
LIGHT_METAL( 0xFFFFFF, 0x353535, "light", o(MAT_IRON, 9), o(MAT_COPPER, 9), o(MAT_TITANIUM, 9), o(MAT_ALUMINIUM, 5), o(MAT_ALUMINIUM, 4), o(MAT_CHLOROCALCITE, 5), o(MAT_LITHIUM, 5), o(MAT_SODIUM, 3), o(MAT_CHLOROCALCITE, 6), o(MAT_LITHIUM, 6), o(MAT_SODIUM, 6)), LIGHT_METAL( 0xFFFFFF, 0x353535, "light", o(MAT_IRON, 9), o(MAT_COPPER, 9), o(MAT_TITANIUM, 6), o(MAT_BAUXITE, 9), o(MAT_CRYOLITE, 3), o(MAT_CHLOROCALCITE, 5), o(MAT_LITHIUM, 5), o(MAT_SODIUM, 3), o(MAT_CHLOROCALCITE, 6), o(MAT_LITHIUM, 6), o(MAT_SODIUM, 6)),
HEAVY_METAL( 0x868686, 0x000000, "heavy", o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 2), o(MAT_GOLD, 2), o(MAT_BERYLLIUM, 3), o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 5), o(MAT_BISMUTH, 1), o(MAT_BISMUTH, 1), o(MAT_GOLD, 6)), HEAVY_METAL( 0x868686, 0x000000, "heavy", o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 2), o(MAT_GOLD, 2), o(MAT_BERYLLIUM, 3), o(MAT_TUNGSTEN, 9), o(MAT_LEAD, 9), o(MAT_GOLD, 5), o(MAT_BISMUTH, 1), o(MAT_BISMUTH, 1), o(MAT_GOLD, 6)),
RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", o(MAT_COBALT, 5), o(MAT_RAREEARTH, 5),o(MAT_BORON, 5), o(MAT_LANTHANIUM, 3), o(MAT_NIOBIUM, 4), o(MAT_NEODYMIUM, 3), o(MAT_STRONTIUM, 3), o(MAT_ZIRCONIUM, 3), o(MAT_NIOBIUM, 5), o(MAT_NEODYMIUM, 5), o(MAT_STRONTIUM, 3)), RARE_EARTH( 0xE6E6B6, 0x1C1C00, "rare", o(MAT_COBALT, 5), o(MAT_RAREEARTH, 5),o(MAT_BORON, 5), o(MAT_LANTHANIUM, 3), o(MAT_NIOBIUM, 4), o(MAT_NEODYMIUM, 3), o(MAT_STRONTIUM, 3), o(MAT_ZIRCONIUM, 3), o(MAT_NIOBIUM, 5), o(MAT_NEODYMIUM, 5), o(MAT_STRONTIUM, 3)),
ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", o(MAT_URANIUM, 4), o(MAT_THORIUM, 4), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_TECHNETIUM, 1), o(MAT_TECHNETIUM, 1), o(MAT_U238, 1)), ACTINIDE( 0xC1C7BD, 0x2B3227, "actinide", o(MAT_URANIUM, 4), o(MAT_THORIUM, 4), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_RADIUM, 2), o(MAT_RADIUM, 2), o(MAT_POLONIUM, 2), o(MAT_TECHNETIUM, 1), o(MAT_TECHNETIUM, 1), o(MAT_U238, 1)),
NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", o(MAT_COAL, 9), o(MAT_SULFUR, 9), o(MAT_LIGNITE, 9), o(MAT_KNO, 6), o(MAT_FLUORITE, 6), o(MAT_PHOSPHORUS, 5), o(MAT_FLUORITE, 6), o(MAT_SULFUR, 6), o(MAT_CHLOROCALCITE, 6), o(MAT_SILICON, 2), o(MAT_SILICON, 2)), NON_METAL( 0xAFAFAF, 0x0F0F0F, "nonmetal", o(MAT_COAL, 9), o(MAT_SULFUR, 9), o(MAT_LIGNITE, 9), o(MAT_KNO, 6), o(MAT_FLUORITE, 6), o(MAT_PHOSPHORUS, 5), o(MAT_FLUORITE, 6), o(MAT_SULFUR, 6), o(MAT_CHLOROCALCITE, 6), o(MAT_SILICON, 2), o(MAT_SILICON, 2)),
CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", o(MAT_REDSTONE, 9), o(MAT_CINNABAR, 4), o(MAT_SODALITE, 9), o(MAT_ASBESTOS, 6), o(MAT_DIAMOND, 3), o(MAT_CINNABAR, 3), o(MAT_ASBESTOS, 5), o(MAT_EMERALD, 3), o(MAT_BORAX, 3), o(MAT_MOLYSITE, 3), o(MAT_SODALITE, 9)); CRYSTALLINE( 0xE2FFFA, 0x1E8A77, "crystal", o(MAT_REDSTONE, 9), o(MAT_CINNABAR, 4), o(MAT_SODALITE, 9), o(MAT_ASBESTOS, 6), o(MAT_DIAMOND, 3), o(MAT_CINNABAR, 3), o(MAT_ASBESTOS, 5), o(MAT_EMERALD, 3), o(MAT_BORAX, 3), o(MAT_MOLYSITE, 3), o(MAT_SODALITE, 9));
//sediment //sediment
public int light; public int light;
public int dark; public int dark;
public String suffix; public String suffix;
@ -144,7 +144,7 @@ public class ItemBedrockOreNew extends Item {
public BedrockOreOutput byproductAcid1, byproductAcid2, byproductAcid3; public BedrockOreOutput byproductAcid1, byproductAcid2, byproductAcid3;
public BedrockOreOutput byproductSolvent1, byproductSolvent2, byproductSolvent3; public BedrockOreOutput byproductSolvent1, byproductSolvent2, byproductSolvent3;
public BedrockOreOutput byproductRad1, byproductRad2, byproductRad3; public BedrockOreOutput byproductRad1, byproductRad2, byproductRad3;
private BedrockOreType(int light, int dark, String suffix, BedrockOreOutput p1, BedrockOreOutput p2, BedrockOreOutput bA1, BedrockOreOutput bA2, BedrockOreOutput bA3, BedrockOreOutput bS1, BedrockOreOutput bS2, BedrockOreOutput bS3, BedrockOreOutput bR1, BedrockOreOutput bR2, BedrockOreOutput bR3) { private BedrockOreType(int light, int dark, String suffix, BedrockOreOutput p1, BedrockOreOutput p2, BedrockOreOutput bA1, BedrockOreOutput bA2, BedrockOreOutput bA3, BedrockOreOutput bS1, BedrockOreOutput bS2, BedrockOreOutput bS3, BedrockOreOutput bR1, BedrockOreOutput bR2, BedrockOreOutput bR3) {
this.light = light; this.light = light;
this.dark = dark; this.dark = dark;
@ -155,14 +155,14 @@ public class ItemBedrockOreNew extends Item {
this.byproductRad1 = bR1; this.byproductRad2 = bR2; this.byproductRad3 = bR3; this.byproductRad1 = bR1; this.byproductRad2 = bR2; this.byproductRad3 = bR3;
} }
} }
public static MaterialStack toFluid(BedrockOreOutput o, double amount) { public static MaterialStack toFluid(BedrockOreOutput o, double amount) {
if(o.mat != null && o.mat.smeltable == SmeltingBehavior.SMELTABLE) { if(o.mat != null && o.mat.smeltable == SmeltingBehavior.SMELTABLE) {
return new MaterialStack(o.mat, (int) Math.ceil(MaterialShapes.FRAGMENT.q(o.amount) * amount)); return new MaterialStack(o.mat, (int) Math.ceil(MaterialShapes.FRAGMENT.q(o.amount) * amount));
} }
return null; return null;
} }
public static ItemStack extract(BedrockOreOutput o, double amount) { public static ItemStack extract(BedrockOreOutput o, double amount) {
return new ItemStack(ModItems.bedrock_ore_fragment, Math.min((int) Math.ceil(o.amount * amount), 64), o.mat.id); return new ItemStack(ModItems.bedrock_ore_fragment, Math.min((int) Math.ceil(o.amount * amount), 64), o.mat.id);
} }
@ -179,7 +179,7 @@ public class ItemBedrockOreNew extends Item {
public static final int roasted = 0xCFCFCF; public static final int roasted = 0xCFCFCF;
public static final int arc = 0xC3A2A2; public static final int arc = 0xC3A2A2;
public static final int washed = 0xDBE2CB; public static final int washed = 0xDBE2CB;
public static enum ProcessingTrait { public static enum ProcessingTrait {
ROASTED, ROASTED,
ARC, ARC,
@ -189,7 +189,7 @@ public class ItemBedrockOreNew extends Item {
SOLVENT, SOLVENT,
RAD RAD
} }
public static enum BedrockOreGrade { public static enum BedrockOreGrade {
BASE(none, "base"), //from the slopper BASE(none, "base"), //from the slopper
BASE_ROASTED(roasted, "base", ROASTED), //optional combination oven step, yields vitriol BASE_ROASTED(roasted, "base", ROASTED), //optional combination oven step, yields vitriol
@ -205,45 +205,45 @@ public class ItemBedrockOreNew extends Item {
PRIMARY_FIRST(0xFFD3D4, "primary", CENTRIFUGED), //higher first material yield PRIMARY_FIRST(0xFFD3D4, "primary", CENTRIFUGED), //higher first material yield
PRIMARY_SECOND(0xD3FFEB, "primary", CENTRIFUGED), //higher second material yield PRIMARY_SECOND(0xD3FFEB, "primary", CENTRIFUGED), //higher second material yield
CRUMBS(none, "crumbs", CENTRIFUGED), //endpoint for primary, recycling CRUMBS(none, "crumbs", CENTRIFUGED), //endpoint for primary, recycling
SULFURIC_BYPRODUCT(none, "sulfuric", CENTRIFUGED, SULFURIC), //from centrifuging SULFURIC_BYPRODUCT(none, "sulfuric", CENTRIFUGED, SULFURIC), //from centrifuging
SULFURIC_ROASTED(roasted, "sulfuric", ROASTED, SULFURIC), //comboven again SULFURIC_ROASTED(roasted, "sulfuric", ROASTED, SULFURIC), //comboven again
SULFURIC_ARC(arc, "sulfuric", ARC, SULFURIC), //alternate step SULFURIC_ARC(arc, "sulfuric", ARC, SULFURIC), //alternate step
SULFURIC_WASHED(washed, "sulfuric", WASHED, SULFURIC), //sulfuric endpoint SULFURIC_WASHED(washed, "sulfuric", WASHED, SULFURIC), //sulfuric endpoint
SOLVENT_BYPRODUCT(none, "solvent", CENTRIFUGED, SOLVENT), //from centrifuging SOLVENT_BYPRODUCT(none, "solvent", CENTRIFUGED, SOLVENT), //from centrifuging
SOLVENT_ROASTED(roasted, "solvent", ROASTED, SOLVENT), //comboven again SOLVENT_ROASTED(roasted, "solvent", ROASTED, SOLVENT), //comboven again
SOLVENT_ARC(arc, "solvent", ARC, SOLVENT), //alternate step SOLVENT_ARC(arc, "solvent", ARC, SOLVENT), //alternate step
SOLVENT_WASHED(washed, "solvent", WASHED, SOLVENT), //solvent endpoint SOLVENT_WASHED(washed, "solvent", WASHED, SOLVENT), //solvent endpoint
RAD_BYPRODUCT(none, "rad", CENTRIFUGED, RAD), //from centrifuging RAD_BYPRODUCT(none, "rad", CENTRIFUGED, RAD), //from centrifuging
RAD_ROASTED(roasted, "rad", ROASTED, RAD), //comboven again RAD_ROASTED(roasted, "rad", ROASTED, RAD), //comboven again
RAD_ARC(arc, "rad", ARC, RAD), //alternate step RAD_ARC(arc, "rad", ARC, RAD), //alternate step
RAD_WASHED(washed, "rad", WASHED, RAD); //rad endpoint RAD_WASHED(washed, "rad", WASHED, RAD); //rad endpoint
public int tint; public int tint;
public String prefix; public String prefix;
public ProcessingTrait[] traits; public ProcessingTrait[] traits;
private BedrockOreGrade(int tint, String prefix, ProcessingTrait... traits) { private BedrockOreGrade(int tint, String prefix, ProcessingTrait... traits) {
this.tint = tint; this.tint = tint;
this.prefix = prefix; this.prefix = prefix;
this.traits = traits; this.traits = traits;
} }
} }
public static ItemStack make(BedrockOreGrade grade, BedrockOreType type) { public static ItemStack make(BedrockOreGrade grade, BedrockOreType type) {
return make(grade, type, 1); return make(grade, type, 1);
} }
public static ItemStack make(BedrockOreGrade grade, BedrockOreType type, int amount) { public static ItemStack make(BedrockOreGrade grade, BedrockOreType type, int amount) {
return new ItemStack(ModItems.bedrock_ore, amount, grade.ordinal() << 4 | type.ordinal()); return new ItemStack(ModItems.bedrock_ore, amount, grade.ordinal() << 4 | type.ordinal());
} }
public BedrockOreGrade getGrade(int meta) { public BedrockOreGrade getGrade(int meta) {
return EnumUtil.grabEnumSafely(BedrockOreGrade.class, meta >> 4); return EnumUtil.grabEnumSafely(BedrockOreGrade.class, meta >> 4);
} }
public BedrockOreType getType(int meta) { public BedrockOreType getType(int meta) {
return EnumUtil.grabEnumSafely(BedrockOreType.class, meta & 15); return EnumUtil.grabEnumSafely(BedrockOreType.class, meta & 15);
} }

View File

@ -771,26 +771,27 @@ public class Orchestras {
public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA_STINGER = (stack, ctx) -> { public static BiConsumer<ItemStack, LambdaContext> ORCHESTRA_STINGER = (stack, ctx) -> {
EntityLivingBase entity = ctx.entity; EntityLivingBase entity = ctx.entity;
if(entity.worldObj.isRemote) return;
AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex); AnimType type = ItemGunBaseNT.getLastAnim(stack, ctx.configIndex);
int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex); int timer = ItemGunBaseNT.getAnimTimer(stack, ctx.configIndex);
AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity); if(entity.worldObj.isRemote) {
if(ItemGunStinger.getLockonProgress(stack) > 0 && !ItemGunStinger.getIsLockedOn(stack)) { AudioWrapper runningAudio = ItemGunBaseNT.loopedSounds.get(entity);
//start sound if(ItemGunStinger.getLockonProgress(stack) > 0 && !ItemGunStinger.getIsLockedOn(stack)) {
if(runningAudio == null || !runningAudio.isPlaying()) { //start sound
AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.lockon", (float) entity.posX, (float) entity.posY, (float) entity.posZ, 1F, 15F, 1F, 10); if(runningAudio == null || !runningAudio.isPlaying()) {
ItemGunBaseNT.loopedSounds.put(entity, audio); AudioWrapper audio = MainRegistry.proxy.getLoopedSound("hbm:weapon.fire.lockon", (float) entity.posX, (float) entity.posY, (float) entity.posZ, 1F, 15F, 1F, 10);
audio.startSound(); ItemGunBaseNT.loopedSounds.put(entity, audio);
audio.startSound();
}
//keepalive
if(runningAudio != null && runningAudio.isPlaying()) {
runningAudio.keepAlive();
runningAudio.updatePosition((float) entity.posX, (float) entity.posY, (float) entity.posZ);
}
} else {
//stop sound due to timeout
if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound();
} }
//keepalive
if(runningAudio != null && runningAudio.isPlaying()) {
runningAudio.keepAlive();
runningAudio.updatePosition((float) entity.posX, (float) entity.posY, (float) entity.posZ);
}
} else {
//stop sound due to timeout
if(runningAudio != null && runningAudio.isPlaying()) runningAudio.stopSound();
} }
if(type == AnimType.RELOAD) { if(type == AnimType.RELOAD) {

View File

@ -3,7 +3,7 @@ package com.hbm.lib;
public class RefStrings { public class RefStrings {
public static final String MODID = "hbm"; public static final String MODID = "hbm";
public static final String NAME = "Hbm's Nuclear Tech Mod"; public static final String NAME = "Hbm's Nuclear Tech Mod";
public static final String VERSION = "1.0.27 BETA (5224)"; public static final String VERSION = "1.0.27 BETA (5229)";
//HBM's Beta Naming Convention: //HBM's Beta Naming Convention:
//V T (X) //V T (X)
//V -> next release version //V -> next release version

View File

@ -1639,6 +1639,10 @@ public class MainRegistry {
ignoreMappings.add("hbm:item.assembly_calamity"); ignoreMappings.add("hbm:item.assembly_calamity");
ignoreMappings.add("hbm:item.assembly_lacunae"); ignoreMappings.add("hbm:item.assembly_lacunae");
ignoreMappings.add("hbm:item.assembly_luna"); ignoreMappings.add("hbm:item.assembly_luna");
ignoreMappings.add("hbm:item.pellet_chlorophyte");
ignoreMappings.add("hbm:item.pellet_canister");
ignoreMappings.add("hbm:item.pellet_claws");
ignoreMappings.add("hbm:item.pellet_flechette");
/// REMAP /// /// REMAP ///
remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses);

View File

@ -69,6 +69,7 @@ public class NEIRegistry {
handlers.add(new RotaryFurnaceHandler()); handlers.add(new RotaryFurnaceHandler());
handlers.add(new AmmoPressHandler()); handlers.add(new AmmoPressHandler());
handlers.add(new CompressorHandler()); handlers.add(new CompressorHandler());
handlers.add(new ParticleAcceleratorHandler());
//this shit comes last //this shit comes last
handlers.add(new FluidRecipeHandler()); handlers.add(new FluidRecipeHandler());

View File

@ -19,7 +19,9 @@ public class TileEntityPABeamline extends TileEntity implements IParticleUser {
} }
@Override @Override
public void onEnter(Particle particle, ForgeDirection dir) { } public void onEnter(Particle particle, ForgeDirection dir) {
particle.addDistance(3);
}
@Override @Override
public BlockPos getExitPos(Particle particle) { public BlockPos getExitPos(Particle particle) {

View File

@ -49,6 +49,10 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
public long getMaxPower() { public long getMaxPower() {
return 1_000_000; return 1_000_000;
} }
@Override public boolean isItemValidForSlot(int slot, ItemStack stack) { return slot == 1 || slot == 2; }
@Override public boolean canExtractItem(int slot, ItemStack stack, int side) { return slot == 3 || slot == 4; }
@Override public int[] getAccessibleSlotsFromSide(int side) { return new int[] { 1, 2, 3, 4 }; }
AxisAlignedBB bb = null; AxisAlignedBB bb = null;
@ -107,7 +111,7 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
(recipe.input1.matchesRecipe(particle.input2, true) && recipe.input2.matchesRecipe(particle.input1, true)))) { (recipe.input1.matchesRecipe(particle.input2, true) && recipe.input2.matchesRecipe(particle.input1, true)))) {
if(canAccept(recipe)) { if(canAccept(recipe)) {
if(recipe.output1.getItem().hasContainerItem(recipe.output1)) this.decrStackSize(1, 1); if(recipe.output1.getItem().hasContainerItem(recipe.output1)) this.decrStackSize(1, 1);
if(recipe.output2.getItem().hasContainerItem(recipe.output2)) this.decrStackSize(2, 1); if(recipe.output2 != null && recipe.output2.getItem().hasContainerItem(recipe.output2)) this.decrStackSize(2, 1);
if(slots[3] == null) { if(slots[3] == null) {
slots[3] = recipe.output1.copy(); slots[3] = recipe.output1.copy();
@ -115,10 +119,12 @@ public class TileEntityPADetector extends TileEntityCooledBase implements IGUIPr
slots[3].stackSize += recipe.output1.stackSize; slots[3].stackSize += recipe.output1.stackSize;
} }
if(slots[4] == null) { if(recipe.output2 != null) {
slots[4] = recipe.output2.copy(); if(slots[4] == null) {
} else { slots[4] = recipe.output2.copy();
slots[4].stackSize += recipe.output2.stackSize; } else {
slots[4].stackSize += recipe.output2.stackSize;
}
} }
} }
particle.crash(PAState.SUCCESS); particle.crash(PAState.SUCCESS);

View File

@ -40,7 +40,7 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
@Override @Override
public long getMaxPower() { public long getMaxPower() {
return 1_000_000; return 5_000_000;
} }
@Override @Override
@ -70,7 +70,8 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
int mult = 1; int mult = 1;
if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) { if(slots[1] != null && slots[1].getItem() == ModItems.pa_coil) {
type = EnumUtil.grabEnumSafely(EnumCoilType.class, slots[1].getItemDamage()); type = EnumUtil.grabEnumSafely(EnumCoilType.class, slots[1].getItemDamage());
mult = type.diMin > particle.momentum ? 5 : 1; if(type.diMin > particle.momentum) mult *= 5;
if(type.diDistMin > particle.distanceTraveled) mult *= 5;
} }
if(!isCool()) particle.crash(PAState.CRASH_NOCOOL); if(!isCool()) particle.crash(PAState.CRASH_NOCOOL);
@ -79,8 +80,8 @@ public class TileEntityPADipole extends TileEntityCooledBase implements IGUIProv
if(type != null && type.diMax < particle.momentum) particle.crash(PAState.CRASH_OVERSPEED); if(type != null && type.diMax < particle.momentum) particle.crash(PAState.CRASH_OVERSPEED);
if(particle.invalid) return; if(particle.invalid) return;
particle.momentum *= type.diMult; particle.resetDistance();
this.power -= this.usage * mult; this.power -= this.usage * mult;
} }

View File

@ -62,7 +62,8 @@ public class TileEntityPAQuadrupole extends TileEntityCooledBase implements IGUI
if(type != null && type.quadMax < particle.momentum) particle.crash(PAState.CRASH_OVERSPEED); if(type != null && type.quadMax < particle.momentum) particle.crash(PAState.CRASH_OVERSPEED);
if(particle.invalid) return; if(particle.invalid) return;
particle.addDistance(3);
particle.focus(focusGain); particle.focus(focusGain);
this.power -= this.usage * mult; this.power -= this.usage * mult;
} }

View File

@ -51,7 +51,8 @@ public class TileEntityPARFC extends TileEntityCooledBase implements IGUIProvide
if(this.power < this.usage) particle.crash(PAState.CRASH_NOPOWER); if(this.power < this.usage) particle.crash(PAState.CRASH_NOPOWER);
if(particle.invalid) return; if(particle.invalid) return;
particle.addDistance(9);
particle.momentum += this.momentumGain; particle.momentum += this.momentumGain;
particle.defocus(defocusGain); particle.defocus(defocusGain);
this.power -= this.usage; this.power -= this.usage;

View File

@ -127,7 +127,7 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
super.serialize(buf); super.serialize(buf);
buf.writeInt(debugSpeed); buf.writeInt(debugSpeed);
buf.writeByte((byte) this.state.ordinal()); buf.writeByte((byte) this.state.ordinal());
buf.writeInt(particle != null ? particle.momentum : 0); buf.writeInt(this.lastSpeed);
} }
@Override @Override
@ -135,10 +135,7 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
super.deserialize(buf); super.deserialize(buf);
debugSpeed = buf.readInt(); debugSpeed = buf.readInt();
state = EnumUtil.grabEnumSafely(PAState.class, buf.readByte()); state = EnumUtil.grabEnumSafely(PAState.class, buf.readByte());
int lastSpeed = buf.readInt(); this.lastSpeed = buf.readInt();
if(lastSpeed != 0) {
this.lastSpeed = lastSpeed;
}
} }
@Override @Override
@ -243,7 +240,8 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
public ForgeDirection dir; public ForgeDirection dir;
public int momentum; public int momentum;
public int defocus; public int defocus;
public static final int maxDefocus = 100; public int distanceTraveled;
public static final int maxDefocus = 1000;
public boolean invalid = false; public boolean invalid = false;
public ItemStack input1; public ItemStack input1;
@ -268,8 +266,12 @@ public class TileEntityPASource extends TileEntityCooledBase implements IGUIProv
this.x = pos.getX(); this.x = pos.getX();
this.y = pos.getY(); this.y = pos.getY();
this.z = pos.getZ(); this.z = pos.getZ();
this.source.lastSpeed = this.momentum;
} }
public void addDistance(int dist) { this.distanceTraveled += dist; }
public void resetDistance() { this.distanceTraveled = 0; }
public void defocus(int amount) { public void defocus(int amount) {
this.defocus += amount; this.defocus += amount;
if(this.defocus > this.maxDefocus) this.crash(PAState.CRASH_DEFOCUS); if(this.defocus > this.maxDefocus) this.crash(PAState.CRASH_DEFOCUS);

View File

@ -405,6 +405,10 @@ container.nukeSolinium=Die Blauspülung
container.nukeTsar=Tsar Bombe container.nukeTsar=Tsar Bombe
container.oilWell=Ölbohrturm container.oilWell=Ölbohrturm
container.orbus=Schwerer Magnetischer Lagerbehälter container.orbus=Schwerer Magnetischer Lagerbehälter
container.paDetector=Detektor
container.paDipole=Dipol
container.paQuadrupole=Quad.
container.paSource=Teilchenquelle
container.plasmaHeater=Plasmaerhitzer container.plasmaHeater=Plasmaerhitzer
container.press=Befeuerte Presse container.press=Befeuerte Presse
container.puf6_tank=PuF6 Tank container.puf6_tank=PuF6 Tank
@ -872,6 +876,7 @@ hbmmat.cobalt=Kobalt
hbmmat.cobalt60=Kobalt-60 hbmmat.cobalt60=Kobalt-60
hbmmat.coltan=Coltan hbmmat.coltan=Coltan
hbmmat.copper=Kupfer hbmmat.copper=Kupfer
hbmmat.cryolite=Kryolith
hbmmat.desh=Desh hbmmat.desh=Desh
hbmmat.diamond=Diamant hbmmat.diamond=Diamant
hbmmat.dineutronium=Dineutronium hbmmat.dineutronium=Dineutronium
@ -1723,7 +1728,8 @@ item.chopper_head.name=Jagdschrauber Cockpit
item.chopper_tail.name=Jagdschrauber Heck item.chopper_tail.name=Jagdschrauber Heck
item.chopper_torso.name=Jagdschrauber Rumpf item.chopper_torso.name=Jagdschrauber Rumpf
item.chopper_wing.name=Jagdschrauber Seitentragfläche item.chopper_wing.name=Jagdschrauber Seitentragfläche
item.chunk_ore.malachite.name=Malachit-Brocken item.chunk_ore.cryolite.name=Kryolithbrocken
item.chunk_ore.malachite.name=Malachitbrocken
item.chunk_ore.rare.name=Seltenerdenerz-Brocken item.chunk_ore.rare.name=Seltenerdenerz-Brocken
item.cigarette.name=FFI-Markenzigarette item.cigarette.name=FFI-Markenzigarette
item.cinnebar.name=Zinnober item.cinnebar.name=Zinnober
@ -2939,6 +2945,10 @@ item.ore_seared.name=Geätztes %serz
item.ore_separated.name=Separiertes %serz item.ore_separated.name=Separiertes %serz
item.overfuse.name=Singularitätsschraubenzieher item.overfuse.name=Singularitätsschraubenzieher
item.oxy_mask.name=Sauerstoffmaske item.oxy_mask.name=Sauerstoffmaske
item.pa_coil.bscco.name=Große BSCCO-Spule
item.pa_coil.chlorophyte.name=Große Grünalgenspule
item.pa_coil.gold.name=Große Goldspule
item.pa_coil.niobium.name=Große NbTi-Spule
item.paa_boots.name=PaA-"olle Latschen" item.paa_boots.name=PaA-"olle Latschen"
item.paa_legs.name=PaA-Beinverstärkungsschienen item.paa_legs.name=PaA-Beinverstärkungsschienen
item.paa_plate.name=PaA-Brustschutzplatte item.paa_plate.name=PaA-Brustschutzplatte
@ -4646,7 +4656,7 @@ tile.oil_duct_solid.name=Verstärktes Ölrohr
tile.oil_pipe.name=Rohölrohr tile.oil_pipe.name=Rohölrohr
tile.oil_spill.name=Ölteppich tile.oil_spill.name=Ölteppich
tile.ore_alexandrite.name=Alexandriterz tile.ore_alexandrite.name=Alexandriterz
tile.ore_aluminium.name=Aluminiumerz tile.ore_aluminium.name=Aluminiumhaltiges Erz
tile.ore_asbestos.name=Asbesterz tile.ore_asbestos.name=Asbesterz
tile.ore_australium.name=Australisches Erz tile.ore_australium.name=Australisches Erz
tile.ore_basalt_asbestos.name=Asbestreicher Basalt tile.ore_basalt_asbestos.name=Asbestreicher Basalt

View File

@ -414,14 +414,14 @@ book_lore.bf_bomb_2.page.1=And yet I can't even blame them. Swirlmat makes no go
book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters. book_lore.bf_bomb_2.page.2=Even worse, this thing is an energy source. The existence of our sample is a violation of ALARA: the lab was vacated when it arrived, and the only person brave enough (one Dr. Melfyn) donned a level A hazmat just to carry it 20 meters.
book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy book_lore.bf_bomb_2.page.3=The empirical data isn't better, as we're breaking the first law of thermodynamics with how much energy it radiates. Being anywhere near that thing - even behind a meter of lead - was terrifying. We sprinted out of the chamber upon conclusion of the spectroscopy
book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be book_lore.bf_bomb_2.page.4=and we got nothing new out of it. Those idiots in the science team, god, did not even waver after all that. Sitting through those "discussions" was horrible; that quack of a head researcher even rumored that the test ban would be lifted, that we could be
book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison. book_lore.bf_bomb_2.page.5=building bombs out of the shit in the coming weeks, who in their right mind would work on that? Hell, the one sane assistant (an Andrew) nicknamed it "balefire" - because burning to death on a funeral pyre would be painless by comparison.
book_lore.bf_bomb_3.name=Private Notes book_lore.bf_bomb_3.name=Private Notes
book_lore.bf_bomb_3.author=M. Porter book_lore.bf_bomb_3.author=M. Porter
book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze book_lore.bf_bomb_3.page.0=The team and I have made some breakthroughs. Emphasis on the separation - isolating myself from the more devout has made working there so much more bearable. While we still have no idea about the actual properties of balefire (it's difficult to analyze
book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some book_lore.bf_bomb_3.page.1=a sample that fries your equipment) its interactions with other matter has proved fruitful. Notably, they synthesized a "gaseous" form: Andrew, of all people, informed me that it was really a colloid consisting of microscopic balefire particles, suspended in some
book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into book_lore.bf_bomb_3.page.2=noble gas. Each particle is enveloped by a positively-charged 'bubble' of ionized gas, preventing it from settling. Who could've guessed that fatal gamma radiation had a benefit? Not me. $ I'm choosing not to think about how they transformed the sample into
book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off. book_lore.bf_bomb_3.page.3=particulate, but I can't understate the utility of this gaseous balefire - it's made it much safer to experiment on. $ Speaking of safety, the head researcher (in an act of callous disregard) made a discovery that also nearly took his head off.
book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through book_lore.bf_bomb_3.page.4=He decided to get "dirty" by letting a cell of our new colloid interact directly with some very expensive antimatter: the resulting explosion turned the table it was on into a piece of radiation-bleached slag, carved a near-perfect hemisphere through
book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people... book_lore.bf_bomb_3.page.5=the top, and gave the head a healthy dose of ARS. I guess we know how to make it explode now, but god, some people...
@ -808,6 +808,10 @@ container.nukeSolinium=The Blue Rinse
container.nukeTsar=Tsar Bomba container.nukeTsar=Tsar Bomba
container.oilWell=Oil Derrick container.oilWell=Oil Derrick
container.orbus=Heavy Antimatter Storage container.orbus=Heavy Antimatter Storage
container.paDetector=Detector
container.paDipole=Dipole
container.paQuadrupole=Quad.
container.paSource=Particle Source
container.plasmaHeater=Plasma Heater container.plasmaHeater=Plasma Heater
container.press=Burner Press container.press=Burner Press
container.puf6_tank=PuF6 Tank container.puf6_tank=PuF6 Tank
@ -1404,10 +1408,12 @@ hbm.key.toggleHUD=Toggle HUD
hbm.key.trainInv=Train Inventory hbm.key.trainInv=Train Inventory
hbm.key.reload=Reload hbm.key.reload=Reload
hbmfluid.alumina=Alumina
hbmfluid.amat=Antimatter hbmfluid.amat=Antimatter
hbmfluid.aromatics=Aromatic Hydrocarbons hbmfluid.aromatics=Aromatic Hydrocarbons
hbmfluid.aschrab=Antischrabidium hbmfluid.aschrab=Antischrabidium
hbmfluid.balefire=BF Rocket Fuel hbmfluid.balefire=BF Rocket Fuel
hbmfluid.bauxite_solution=Bauxite Solution
hbmfluid.biofuel=Biofuel hbmfluid.biofuel=Biofuel
hbmfluid.biogas=Biogas hbmfluid.biogas=Biogas
hbmfluid.bitumen=Bitumen hbmfluid.bitumen=Bitumen
@ -1474,6 +1480,7 @@ hbmfluid.lightoil_ds=Desulfurized Light Oil
hbmfluid.lightoil_vacuum=Vacuum Light Oil hbmfluid.lightoil_vacuum=Vacuum Light Oil
hbmfluid.lpg=LPG hbmfluid.lpg=LPG
hbmfluid.lubricant=Engine Lubricant hbmfluid.lubricant=Engine Lubricant
hbmfluid.lye=Lye
hbmfluid.mercury=Mercury hbmfluid.mercury=Mercury
hbmfluid.mug=Mug Root Beer hbmfluid.mug=Mug Root Beer
hbmfluid.mug_hot=Hot Mug Root Beer hbmfluid.mug_hot=Hot Mug Root Beer
@ -1526,6 +1533,7 @@ hbmfluid.smoke_leaded=Leaded Smoke
hbmfluid.smoke_poison=Poison Smoke hbmfluid.smoke_poison=Poison Smoke
hbmfluid.sodium=Liquid Sodium hbmfluid.sodium=Liquid Sodium
hbmfluid.sodium_hot=Hot Liquid Sodium hbmfluid.sodium_hot=Hot Liquid Sodium
hbmfluid.sodium_aluminate=Sodium Aluminate
hbmfluid.solvent=Solvent hbmfluid.solvent=Solvent
hbmfluid.sourgas=Sour Gas hbmfluid.sourgas=Sour Gas
hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.spentsteam=Low-Pressure Steam
@ -1571,6 +1579,7 @@ hbmmat.arsenic=Arsenic
hbmmat.arsenicbronze=Arsenic Bronze hbmmat.arsenicbronze=Arsenic Bronze
hbmmat.asbestos=Asbestos hbmmat.asbestos=Asbestos
hbmmat.bakelite=Bakelite hbmmat.bakelite=Bakelite
hbmmat.bauxite=Bauxite
hbmmat.beryllium=Beryllium hbmmat.beryllium=Beryllium
hbmmat.bismuth=Bismuth hbmmat.bismuth=Bismuth
hbmmat.bismuthbronze=Bismuth Bronze hbmmat.bismuthbronze=Bismuth Bronze
@ -1591,6 +1600,7 @@ hbmmat.cobalt=Cobalt
hbmmat.cobalt60=Cobalt-60 hbmmat.cobalt60=Cobalt-60
hbmmat.coltan=Coltan hbmmat.coltan=Coltan
hbmmat.copper=Copper hbmmat.copper=Copper
hbmmat.cryolite=Cryolite
hbmmat.desh=Desh hbmmat.desh=Desh
hbmmat.diamond=Diamond hbmmat.diamond=Diamond
hbmmat.dineutronium=Dineutronium hbmmat.dineutronium=Dineutronium
@ -2494,6 +2504,7 @@ item.chopper_torso.name=Hunter Chopper Body
item.chopper_wing.name=Hunter Chopper Wing item.chopper_wing.name=Hunter Chopper Wing
item.chunk_ore.malachite.name=Malachite Chunk item.chunk_ore.malachite.name=Malachite Chunk
item.chunk_ore.rare.name=Rare Earth Ore Chunk item.chunk_ore.rare.name=Rare Earth Ore Chunk
item.chunk_ore.cryolite.name=Cryolite Chunk
item.cigarette.name=FFI-Brand Cigarette item.cigarette.name=FFI-Brand Cigarette
item.cinnebar.name=Cinnabar item.cinnebar.name=Cinnabar
item.circuit.advanced.name=Military Grade Circuit Board item.circuit.advanced.name=Military Grade Circuit Board
@ -3787,6 +3798,7 @@ item.overfuse.name=Singularity Screwdriver
item.overfuse.desc=Say what? item.overfuse.desc=Say what?
item.oxy_mask.name=Oxygen Mask item.oxy_mask.name=Oxygen Mask
item.pa_coil.bscco.name=Large BSCCO Coil item.pa_coil.bscco.name=Large BSCCO Coil
item.pa_coil.chlorophyte.name=Large Chlorophyte Coil
item.pa_coil.gold.name=Large Gold Coil item.pa_coil.gold.name=Large Gold Coil
item.pa_coil.niobium.name=Large NbTi Coil item.pa_coil.niobium.name=Large NbTi Coil
item.paa_boots.name=PaA "good ol' shoes" item.paa_boots.name=PaA "good ol' shoes"
@ -4832,16 +4844,27 @@ itemGroup.tabTest=Nuclear Tech Mod Test Tab
itemGroup.tabWeapon=NTM Weapons and Turrets itemGroup.tabWeapon=NTM Weapons and Turrets
pa.idle=Idle pa.idle=Idle
pa.idle.desc=Idle
pa.running=Running pa.running=Running
pa.running.desc=Running
pa.success=Success pa.success=Success
pa.success.desc=Success
pa.pause_unloaded=Paused pa.pause_unloaded=Paused
pa.pause_unloaded.desc=The particle has entered an$unloaded chunk. The operation has$been suspended, until both the$particle and the particle source$are loaded.
pa.crash_defocus=Defocus! pa.crash_defocus=Defocus!
pa.crash_defocus.desc=The particle has lost focus.$Ensure the accelerator has enough quadrupole magnets.
pa.crash_derail=Derail! pa.crash_derail=Derail!
pa.crash_derail.desc=The particle has left the accelerator.$Ensure no parts are missing,$and that dipoles are configured correctly.
pa.crash_cannot_enter=Denied! pa.crash_cannot_enter=Denied!
pa.crash_cannot_enter.desc=The particle tried to enter$part of the accelerator, but couldn't.$Ensure all parts are oriented correctly.
pa.crash_nocool=No cooling! pa.crash_nocool=No cooling!
pa.crash_nocool.desc=The particle has entered an uncooled$part of the accelerator. Ensure all cooled$parts are connected and filled$with cold perfluoroethyl.
pa.crash_nopower=No power! pa.crash_nopower=No power!
pa.crash_nopower.desc=The particle has entered an unpowered$part of the accelerator. Ensure all parts$receive power, and that the$power supply is sufficient.
pa.crash_nocoil=No coils! pa.crash_nocoil=No coils!
pa.crash_nocoil.desc=The particle has entered a dipole$or quadrupole which lacks coils.$Install coils to allow this part to work.
pa.crash_overspeed=Overspeed! pa.crash_overspeed=Overspeed!
pa.crash_overspeed.desc=The particle has entered a dipole$or quadrupole, while its speed exceeded$the coil's rating. Install higher$tier coils, or configure the dipoles$to leave the accelerator ring sooner.
potion.hbm_bang=! ! ! potion.hbm_bang=! ! !
potion.hbm_death=Astolfization potion.hbm_death=Astolfization
@ -5193,7 +5216,7 @@ tile.cm_engine.bismuth.name=Bismuth Motor Block
tile.cm_engine.desh.name=Desh Motor Block tile.cm_engine.desh.name=Desh Motor Block
tile.cm_engine.standard.name=Motor Block tile.cm_engine.standard.name=Motor Block
tile.cm_flux.name=Neutron Flux Receiver tile.cm_flux.name=Neutron Flux Receiver
tile.cm_heat.name=Heat receiver tile.cm_heat.name=Heat Receiver
tile.cm_port.alloy.name=Advanced Alloy Port tile.cm_port.alloy.name=Advanced Alloy Port
tile.cm_port.desh.name=Desh Port tile.cm_port.desh.name=Desh Port
tile.cm_port.steel.name=Steel Port tile.cm_port.steel.name=Steel Port
@ -5759,7 +5782,7 @@ tile.oil_duct_solid.name=Coated Oil Pipe
tile.oil_pipe.name=Crude Oil Extraction Pipe tile.oil_pipe.name=Crude Oil Extraction Pipe
tile.oil_spill.name=Oil Spill tile.oil_spill.name=Oil Spill
tile.ore_alexandrite.name=Alexandrite Ore tile.ore_alexandrite.name=Alexandrite Ore
tile.ore_aluminium.name=Aluminium Ore tile.ore_aluminium.name=Aluminium-Bearing Ore
tile.ore_asbestos.name=Asbestos Ore tile.ore_asbestos.name=Asbestos Ore
tile.ore_australium.name=Australian Ore tile.ore_australium.name=Australian Ore
tile.ore_basalt_asbestos.name=Asbestos-Rich Basalt tile.ore_basalt_asbestos.name=Asbestos-Rich Basalt
@ -5846,11 +5869,17 @@ tile.ore_verticium.name=Dollar Green Mineral
tile.ore_volcano.name=Geothermal Vent tile.ore_volcano.name=Geothermal Vent
tile.ore_weidanium.name=Weidite tile.ore_weidanium.name=Weidite
tile.pa_beamline.name=Beamline tile.pa_beamline.name=Beamline
tile.pa_beamline.desc=Optional part, connects different accelerator parts.$Also allows to cheaply extend the ring's size,$for meeting dipole coil size requirements.
tile.pa_detector.name=Particle Detector tile.pa_detector.name=Particle Detector
tile.pa_detector.desc=Requires cooling!$Accepts particles and performs the recipe.$Recipes may require containers (particle capsules).$Particle needs a defocus of 0 to be accepted.
tile.pa_dipole.name=Dipole Magnets tile.pa_dipole.name=Dipole Magnets
tile.pa_dipole.desc=Requires cooling!$Redirects particles based on momentum.$Has outputs for below threshold,$above threshold and above threshold$with restone applied.$Requires large coils to work.
tile.pa_quadrupole.name=Quadrupole Magnets tile.pa_quadrupole.name=Quadrupole Magnets
tile.pa_quadrupole.desc=Requires cooling!$Reduces particle defocus by 100 points.$Requires large coils to work.
tile.pa_rfc.name=RF Cavity tile.pa_rfc.name=RF Cavity
tile.pa_rfc.desc=Requires cooling!$Accelerates particles by 100 points,$and adds 100 points of defocus.$The particle will crash when reaching points of 1000 defocus.
tile.pa_source.name=Particle Source tile.pa_source.name=Particle Source
tile.pa_source.desc=Requires cooling!$Uses two items to create a particle.
tile.part_emitter.name=Deco Particle Emitter tile.part_emitter.name=Deco Particle Emitter
tile.pedestal.name=Pedestal tile.pedestal.name=Pedestal
tile.pink_barrel.name=Kerosene Barrel tile.pink_barrel.name=Kerosene Barrel

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 595 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB