mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge branch 'HbmMods:master' into master
This commit is contained in:
commit
889cc46486
@ -10,6 +10,11 @@
|
||||
* Rebar placer
|
||||
* Can be configured with different types of concrete, reinforced or not, or even colored
|
||||
* Rebar created with the rebar placer will remember its type and assume it when being filled with liquid concrete
|
||||
* PUREX
|
||||
* Chemplant-like nuclear fuel reprocessing machine
|
||||
* Handles all the nuclear fuel reprocessing that was previously done by the standard centrifuge
|
||||
* All reprocessing recipes now require both kerosene and nitric acid
|
||||
* Also handles the vitrification recipes and the thorium salt reprocessing from the chemical plant
|
||||
|
||||
## Changed
|
||||
* The alternate recipes for nitric acid and xenon gas in the chemical plant now require blueprints
|
||||
|
||||
@ -1015,6 +1015,7 @@ public class ModBlocks {
|
||||
public static Block machine_chemical_plant;
|
||||
public static Block machine_chemfac;
|
||||
public static Block machine_chemical_factory;
|
||||
public static Block machine_purex;
|
||||
public static Block machine_mixer;
|
||||
|
||||
public static Block machine_fluidtank;
|
||||
@ -2245,6 +2246,7 @@ public class ModBlocks {
|
||||
machine_chemical_plant = new MachineChemicalPlant(Material.iron).setBlockName("machine_chemical_plant").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_chemfac = new MachineChemfac(Material.iron).setBlockName("machine_chemfac").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_chemical_factory = new MachineChemicalFactory(Material.iron).setBlockName("machine_chemical_factory").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_purex = new MachinePUREX(Material.iron).setBlockName("machine_purex").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_mixer = new MachineMixer(Material.iron).setBlockName("machine_mixer").setHardness(5.0F).setResistance(30.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
machine_fluidtank = new MachineFluidTank(Material.iron).setBlockName("machine_fluidtank").setHardness(5.0F).setResistance(20.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":machine_fluidtank");
|
||||
machine_bat9000 = new MachineBigAssTank9000(Material.iron).setBlockName("machine_bat9000").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":block_steel");
|
||||
@ -3299,6 +3301,7 @@ public class ModBlocks {
|
||||
register(machine_chemical_plant);
|
||||
register(machine_chemfac);
|
||||
register(machine_chemical_factory);
|
||||
register(machine_purex);
|
||||
register(machine_arc_welder);
|
||||
register(machine_soldering_station);
|
||||
register(machine_arc_furnace);
|
||||
|
||||
54
src/main/java/com/hbm/blocks/machine/MachinePUREX.java
Normal file
54
src/main/java/com/hbm/blocks/machine/MachinePUREX.java
Normal file
@ -0,0 +1,54 @@
|
||||
package com.hbm.blocks.machine;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityMachinePUREX;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class MachinePUREX extends BlockDummyable implements ITooltipProvider {
|
||||
|
||||
public MachinePUREX(Material mat) {
|
||||
super(mat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
if(meta >= 12) return new TileEntityMachinePUREX();
|
||||
if(meta >= 6) return new TileEntityProxyCombo().inventory().power().fluid();
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
return this.standardOpenBehavior(world, x, y, z, player, 0);
|
||||
}
|
||||
|
||||
@Override public int[] getDimensions() { return new int[] {4, 0, 2, 2, 2, 2}; }
|
||||
@Override public int getOffset() { return 2; }
|
||||
|
||||
@Override
|
||||
public void fillSpace(World world, int x, int y, int z, ForgeDirection dir, int o) {
|
||||
super.fillSpace(world, x, y, z, dir, o);
|
||||
|
||||
x += dir.offsetX * o;
|
||||
z += dir.offsetZ * o;
|
||||
|
||||
for(int i = -2; i <= 2; i++) for(int j = -2; j <= 2; j++) {
|
||||
if(Math.abs(i) == 2 || Math.abs(j) == 2) this.makeExtra(world, x + i, y, z + j);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
13
src/main/java/com/hbm/handler/nei/PUREXRecipeHandler.java
Normal file
13
src/main/java/com/hbm/handler/nei/PUREXRecipeHandler.java
Normal file
@ -0,0 +1,13 @@
|
||||
package com.hbm.handler.nei;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.recipes.PUREXRecipes;
|
||||
|
||||
public class PUREXRecipeHandler extends NEIGenericRecipeHandler {
|
||||
|
||||
public PUREXRecipeHandler() {
|
||||
super(ModBlocks.machine_purex.getLocalizedName(), PUREXRecipes.INSTANCE, ModBlocks.machine_purex);
|
||||
}
|
||||
|
||||
@Override public String getRecipeID() { return "ntmPUREX"; }
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package com.hbm.inventory.container;
|
||||
|
||||
import com.hbm.inventory.SlotCraftingOutput;
|
||||
import com.hbm.inventory.SlotNonRetarded;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemBlueprints;
|
||||
import com.hbm.items.machine.ItemMachineUpgrade;
|
||||
import com.hbm.util.InventoryUtil;
|
||||
|
||||
import api.hbm.energymk2.IBatteryItem;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ContainerMachinePUREX extends ContainerBase {
|
||||
|
||||
public ContainerMachinePUREX(InventoryPlayer invPlayer, IInventory chemicalPlant) {
|
||||
super(invPlayer, chemicalPlant);
|
||||
|
||||
// Battery
|
||||
this.addSlotToContainer(new SlotNonRetarded(chemicalPlant, 0, 152, 81));
|
||||
// Schematic
|
||||
this.addSlotToContainer(new SlotNonRetarded(chemicalPlant, 1, 35, 126));
|
||||
// Upgrades
|
||||
this.addSlots(chemicalPlant, 2, 152, 108, 2, 1);
|
||||
// Solid Input
|
||||
this.addSlots(chemicalPlant, 4, 8, 90, 1, 3);
|
||||
// Solid Output
|
||||
this.addOutputSlots(invPlayer.player, chemicalPlant, 7, 80, 36, 3, 2);
|
||||
|
||||
this.playerInv(invPlayer, 8, 174);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack transferStackInSlot(EntityPlayer player, int index) {
|
||||
ItemStack slotOriginal = null;
|
||||
Slot slot = (Slot) this.inventorySlots.get(index);
|
||||
|
||||
if(slot != null && slot.getHasStack()) {
|
||||
ItemStack slotStack = slot.getStack();
|
||||
slotOriginal = slotStack.copy();
|
||||
|
||||
if(index <= tile.getSizeInventory() - 1) {
|
||||
SlotCraftingOutput.checkAchievements(player, slotStack);
|
||||
if(!this.mergeItemStack(slotStack, tile.getSizeInventory(), this.inventorySlots.size(), true)) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
|
||||
if(slotOriginal.getItem() instanceof IBatteryItem || slotOriginal.getItem() == ModItems.battery_creative) {
|
||||
if(!this.mergeItemStack(slotStack, 0, 1, false)) return null;
|
||||
} else if(slotOriginal.getItem() instanceof ItemBlueprints) {
|
||||
if(!this.mergeItemStack(slotStack, 1, 2, false)) return null;
|
||||
} else if(slotOriginal.getItem() instanceof ItemMachineUpgrade) {
|
||||
if(!this.mergeItemStack(slotStack, 2, 4, false)) return null;
|
||||
} else {
|
||||
if(!InventoryUtil.mergeItemStack(this.inventorySlots, slotStack, 4, 7, false)) return null;
|
||||
}
|
||||
}
|
||||
|
||||
if(slotStack.stackSize == 0) {
|
||||
slot.putStack(null);
|
||||
} else {
|
||||
slot.onSlotChanged();
|
||||
}
|
||||
|
||||
slot.onPickupFromSlot(player, slotStack);
|
||||
}
|
||||
|
||||
return slotOriginal;
|
||||
}
|
||||
}
|
||||
126
src/main/java/com/hbm/inventory/gui/GUIMachinePUREX.java
Normal file
126
src/main/java/com/hbm/inventory/gui/GUIMachinePUREX.java
Normal file
@ -0,0 +1,126 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.inventory.container.ContainerMachinePUREX;
|
||||
import com.hbm.inventory.recipes.PUREXRecipes;
|
||||
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||
import com.hbm.items.machine.ItemBlueprints;
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.tileentity.machine.TileEntityMachinePUREX;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.OpenGlHelper;
|
||||
import net.minecraft.client.resources.I18n;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.inventory.Slot;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIMachinePUREX extends GuiInfoContainer {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_purex.png");
|
||||
private TileEntityMachinePUREX purex;
|
||||
|
||||
public GUIMachinePUREX(InventoryPlayer invPlayer, TileEntityMachinePUREX tedf) {
|
||||
super(new ContainerMachinePUREX(invPlayer, tedf));
|
||||
purex = tedf;
|
||||
|
||||
this.xSize = 176;
|
||||
this.ySize = 256;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
super.drawScreen(mouseX, mouseY, f);
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
purex.inputTanks[i].renderTankInfo(this, mouseX, mouseY, guiLeft + 8 + i * 18, guiTop + 18, 16, 52);
|
||||
}
|
||||
purex.outputTanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 116, guiTop + 36, 16, 52);
|
||||
|
||||
this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 152, guiTop + 18, 16, 61, purex.power, purex.maxPower);
|
||||
|
||||
if(guiLeft + 7 <= mouseX && guiLeft + 7 + 18 > mouseX && guiTop + 125 < mouseY && guiTop + 125 + 18 >= mouseY) {
|
||||
if(this.purex.purexModule.recipe != null && PUREXRecipes.INSTANCE.recipeNameMap.containsKey(this.purex.purexModule.recipe)) {
|
||||
GenericRecipe recipe = (GenericRecipe) PUREXRecipes.INSTANCE.recipeNameMap.get(this.purex.purexModule.recipe);
|
||||
this.func_146283_a(recipe.print(), mouseX, mouseY);
|
||||
} else {
|
||||
this.drawCreativeTabHoveringText(EnumChatFormatting.YELLOW + "Click to set recipe", mouseX, mouseY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int x, int y, int button) {
|
||||
super.mouseClicked(x, y, button);
|
||||
|
||||
if(this.checkClick(x, y, 7, 125, 18, 18)) GUIScreenRecipeSelector.openSelector(PUREXRecipes.INSTANCE, purex, purex.purexModule.recipe, 0, ItemBlueprints.grabPool(purex.slots[1]), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int i, int j) {
|
||||
String name = this.purex.hasCustomInventoryName() ? this.purex.getInventoryName() : I18n.format(this.purex.getInventoryName());
|
||||
|
||||
this.fontRendererObj.drawString(name, 70 - this.fontRendererObj.getStringWidth(name) / 2, 6, 4210752);
|
||||
this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerBackgroundLayer(float p_146976_1_, int p_146976_2_, int p_146976_3_) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
int p = (int) (purex.power * 61 / purex.maxPower);
|
||||
drawTexturedModalRect(guiLeft + 152, guiTop + 79 - p, 176, 61 - p, 16, p);
|
||||
|
||||
if(purex.purexModule.progress > 0) {
|
||||
int j = (int) Math.ceil(70 * purex.purexModule.progress);
|
||||
drawTexturedModalRect(guiLeft + 62, guiTop + 126, 176, 61, j, 16);
|
||||
}
|
||||
|
||||
GenericRecipe recipe = PUREXRecipes.INSTANCE.recipeNameMap.get(purex.purexModule.recipe);
|
||||
|
||||
/// LEFT LED
|
||||
if(purex.didProcess) {
|
||||
drawTexturedModalRect(guiLeft + 51, guiTop + 121, 195, 0, 3, 6);
|
||||
} else if(recipe != null) {
|
||||
drawTexturedModalRect(guiLeft + 51, guiTop + 121, 192, 0, 3, 6);
|
||||
}
|
||||
|
||||
/// RIGHT LED
|
||||
if(purex.didProcess) {
|
||||
drawTexturedModalRect(guiLeft + 56, guiTop + 121, 195, 0, 3, 6);
|
||||
} else if(recipe != null && purex.power >= recipe.power) {
|
||||
drawTexturedModalRect(guiLeft + 56, guiTop + 121, 192, 0, 3, 6);
|
||||
}
|
||||
|
||||
this.renderItem(recipe != null ? recipe.getIcon() : TEMPLATE_FOLDER, 8, 126);
|
||||
|
||||
if(recipe != null && recipe.inputItem != null) {
|
||||
for(int i = 0; i < recipe.inputItem.length; i++) {
|
||||
Slot slot = (Slot) this.inventorySlots.inventorySlots.get(purex.purexModule.inputSlots[i]);
|
||||
if(!slot.getHasStack()) this.renderItem(recipe.inputItem[i].extractForCyclingDisplay(20), slot.xDisplayPosition, slot.yDisplayPosition, 10F);
|
||||
}
|
||||
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
OpenGlHelper.glBlendFunc(770, 771, 1, 0);
|
||||
GL11.glColor4f(1F, 1F, 1F, 0.5F);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
this.zLevel = 300F;
|
||||
for(int i = 0; i < recipe.inputItem.length; i++) {
|
||||
Slot slot = (Slot) this.inventorySlots.inventorySlots.get(purex.purexModule.inputSlots[i]);
|
||||
if(!slot.getHasStack()) drawTexturedModalRect(guiLeft + slot.xDisplayPosition, guiTop + slot.yDisplayPosition, slot.xDisplayPosition, slot.yDisplayPosition, 16, 16);
|
||||
}
|
||||
this.zLevel = 0F;
|
||||
GL11.glColor4f(1F, 1F, 1F, 1F);
|
||||
GL11.glDisable(GL11.GL_BLEND);
|
||||
}
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
purex.inputTanks[i].renderTank(guiLeft + 8 + i * 18, guiTop + 70, this.zLevel, 16, 52);
|
||||
}
|
||||
purex.outputTanks[0].renderTank(guiLeft + 116, guiTop + 88, this.zLevel, 16, 52);
|
||||
}
|
||||
}
|
||||
@ -26,7 +26,6 @@ import com.hbm.items.ItemEnums;
|
||||
import com.hbm.items.ItemEnums.EnumAshType;
|
||||
import com.hbm.items.ItemEnums.EnumChunkType;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel;
|
||||
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
|
||||
import com.hbm.items.special.ItemBedrockOreNew;
|
||||
import com.hbm.items.special.ItemBedrockOre.EnumBedrockOre;
|
||||
@ -50,229 +49,6 @@ public class CentrifugeRecipes extends SerializableRecipe {
|
||||
|
||||
boolean lbs = GeneralConfig.enableLBSM && GeneralConfig.enableLBSMSimpleCentrifuge;
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_natural_uranium), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_u238, 1),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_pu239, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 2) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_uranium), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_plutonium, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 2) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_thorium), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_u238, 1),
|
||||
new ItemStack(ModItems.nugget_th232, 1),
|
||||
new ItemStack(ModItems.nugget_u233, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 2) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_mox), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_pu_mix, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nugget_u238, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
|
||||
|
||||
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_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_u233), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_u235, 1),
|
||||
new ItemStack(ModItems.nugget_neptunium, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_u235), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_pu238, 1),
|
||||
new ItemStack(ModItems.nugget_neptunium, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_schrabidium), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_beryllium, 2),
|
||||
new ItemStack(ModItems.nugget_pu239, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 2) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_zfb_mox), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_zirconium, 3),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 1) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_plate_mox), new ItemStack[] {
|
||||
new ItemStack(ModItems.powder_sr90_tiny, 1),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 3),
|
||||
new ItemStack(ModItems.powder_cs137_tiny, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 4) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_plate_pu238be), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_beryllium, 1),
|
||||
new ItemStack(ModItems.nugget_pu238, 1),
|
||||
new ItemStack(ModItems.powder_coal_tiny, 2),
|
||||
new ItemStack(ModItems.nugget_lead, 2) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_plate_pu239), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_pu240, 2),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.powder_cs137_tiny, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_plate_ra226be), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_beryllium, 2),
|
||||
new ItemStack(ModItems.nugget_polonium, 2),
|
||||
new ItemStack(ModItems.powder_coal_tiny, 1),
|
||||
new ItemStack(ModItems.nugget_lead, 1) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_plate_sa326), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_solinium, 1),
|
||||
new ItemStack(ModItems.powder_neodymium_tiny, 1),
|
||||
new ItemStack(ModItems.nugget_tantalium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_plate_u233), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_u235, 1),
|
||||
new ItemStack(ModItems.powder_i131_tiny, 1),
|
||||
new ItemStack(ModItems.powder_sr90_tiny, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.waste_plate_u235), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_neptunium, 1),
|
||||
new ItemStack(ModItems.nugget_pu238, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6) });
|
||||
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.SCHRABIDIUM)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_solinium, 15),
|
||||
new ItemStack(ModItems.nugget_euphemium, 3),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.HES)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_solinium, 17),
|
||||
new ItemStack(ModItems.nugget_euphemium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.MES)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_solinium, 12),
|
||||
new ItemStack(ModItems.nugget_tantalium, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.LES)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_solinium, 9),
|
||||
new ItemStack(ModItems.nugget_tantalium, 9),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.HEN)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_pu239, 12),
|
||||
new ItemStack(ModItems.nugget_technetium, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.MEU)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_pu239, 12),
|
||||
new ItemStack(ModItems.nugget_bismuth, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.MEP)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_pu241, 12),
|
||||
new ItemStack(ModItems.nugget_bismuth, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.LEAD)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_lead, 6),
|
||||
new ItemStack(ModItems.nugget_bismuth, 12),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.BORON)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.powder_coal_tiny, 12),
|
||||
new ItemStack(ModItems.nugget_co60, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.watz_pellet_depleted, EnumWatzType.DU)), new ItemStack[] {
|
||||
new ItemStack(ModItems.ingot_mud, 1),
|
||||
new ItemStack(ModItems.nugget_polonium, 12),
|
||||
new ItemStack(ModItems.nugget_pu238, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2) });
|
||||
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEU)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_u238, 3),
|
||||
new ItemStack(ModItems.nugget_plutonium, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEU233)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_u235, 3),
|
||||
new ItemStack(ModItems.nugget_pu238, 3),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEU235)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_neptunium, 3),
|
||||
new ItemStack(ModItems.nugget_pu238, 3),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEN)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_u238, 3),
|
||||
new ItemStack(ModItems.nugget_pu239, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEN237)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_pu238, 2),
|
||||
new ItemStack(ModItems.nugget_pu239, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MOX)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_u238, 3),
|
||||
new ItemStack(ModItems.nugget_pu240, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEP)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_lead, 2),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEP239)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_pu240, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEP241)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_lead, 3),
|
||||
new ItemStack(ModItems.nugget_zirconium, 2),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.MEA)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_lead, 3),
|
||||
new ItemStack(ModItems.nugget_zirconium, 2),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HEA242)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_lead, 3),
|
||||
new ItemStack(ModItems.nugget_zirconium, 2),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HES326)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_solinium, 3),
|
||||
new ItemStack(ModItems.nugget_lead, 2),
|
||||
new ItemStack(ModItems.nugget_euphemium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.HES327)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_australium, 4),
|
||||
new ItemStack(ModItems.nugget_lead, 1),
|
||||
new ItemStack(ModItems.nugget_euphemium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_AM_MIX)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_am_mix, 9),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_bismuth, 6),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 1) });
|
||||
recipes.put(new ComparableStack(DictFrame.fromOne(ModItems.pwr_fuel_depleted, EnumPWRFuel.BFB_PU241)), new ItemStack[] {
|
||||
new ItemStack(ModItems.nugget_pu241, 9),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_bismuth, 6),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 1) });
|
||||
|
||||
recipes.put(new ComparableStack(ModItems.icf_pellet_depleted), new ItemStack[] {
|
||||
new ItemStack(ModItems.icf_pellet_empty, 1),
|
||||
new ItemStack(ModItems.pellet_charged, 1),
|
||||
|
||||
@ -317,29 +317,6 @@ public class ChemicalPlantRecipes extends GenericRecipes<GenericRecipe> {
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 6_000))
|
||||
.outputItems(new ItemStack(ModItems.powder_balefire))
|
||||
.outputFluids(new FluidStack(Fluids.BALEFIRE, 8_000)));
|
||||
|
||||
this.register(new GenericRecipe("chem.thoriumsalt").setup(100, 10_000).setIcon(ModItems.fluid_icon, Fluids.THORIUM_SALT.getID())
|
||||
.inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000))
|
||||
.inputItems(new OreDictStack(TH232.nugget(), 2))
|
||||
.outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000))
|
||||
.outputItems(
|
||||
new ChanceOutput(new ItemStack(ModItems.nugget_u233, 1), 0.5F),
|
||||
new ChanceOutput(new ItemStack(ModItems.nuclear_waste_tiny, 1), 0.25F)));
|
||||
|
||||
/// VITRIFICATION ///
|
||||
this.register(new GenericRecipe("chem.vitliquid").setup(100, 1_000)
|
||||
.inputItems(new ComparableStack(ModBlocks.sand_lead))
|
||||
.inputFluids(new FluidStack(Fluids.WASTEFLUID, 1_000))
|
||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified)));
|
||||
|
||||
this.register(new GenericRecipe("chem.vitgaseous").setup(100, 1_000)
|
||||
.inputItems(new ComparableStack(ModBlocks.sand_lead))
|
||||
.inputFluids(new FluidStack(Fluids.WASTEGAS, 1_000))
|
||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified)));
|
||||
|
||||
this.register(new GenericRecipe("chem.vitsolid").setup(300, 1_000)
|
||||
.inputItems(new ComparableStack(ModBlocks.sand_lead), new ComparableStack(ModItems.nuclear_waste, 4))
|
||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified, 4)));
|
||||
|
||||
/// OSMIRIDIUM ///
|
||||
this.register(new GenericRecipe("chem.osmiridiumdeath").setup(240, 1_000)
|
||||
|
||||
436
src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java
Normal file
436
src/main/java/com/hbm/inventory/recipes/PUREXRecipes.java
Normal file
@ -0,0 +1,436 @@
|
||||
package com.hbm.inventory.recipes;
|
||||
|
||||
import static com.hbm.inventory.OreDictManager.*;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.inventory.FluidStack;
|
||||
import com.hbm.inventory.RecipesCommon.ComparableStack;
|
||||
import com.hbm.inventory.RecipesCommon.OreDictStack;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||
import com.hbm.inventory.recipes.loader.GenericRecipes;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemPWRFuel.EnumPWRFuel;
|
||||
import com.hbm.items.machine.ItemWatzPellet.EnumWatzType;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class PUREXRecipes extends GenericRecipes<GenericRecipe> {
|
||||
|
||||
public static final PUREXRecipes INSTANCE = new PUREXRecipes();
|
||||
|
||||
@Override public int inputItemLimit() { return 3; }
|
||||
@Override public int inputFluidLimit() { return 3; }
|
||||
@Override public int outputItemLimit() { return 6; }
|
||||
@Override public int outputFluidLimit() { return 1; }
|
||||
|
||||
@Override public String getFileName() { return "hbmPUREX.json"; }
|
||||
@Override public GenericRecipe instantiateRecipe(String name) { return new GenericRecipe(name); }
|
||||
|
||||
@Override
|
||||
public void registerDefaults() {
|
||||
|
||||
long zirnoxPower = 1_000;
|
||||
long platePower = 1_500;
|
||||
long pwrPower = 2_500;
|
||||
long watzPower = 10_000;
|
||||
long vitrification = 1_000;
|
||||
|
||||
// ZIRNOX
|
||||
this.register(new GenericRecipe("purex.zirnoxnu").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_natural_uranium))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u238, 1),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_pu239, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.zirnoxmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_natural_uranium))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u238, 1),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_pu239, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.zirnoxthmeu").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_thorium))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u238, 1),
|
||||
new ItemStack(ModItems.nugget_th232, 1),
|
||||
new ItemStack(ModItems.nugget_u233, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.zirnoxmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_mox))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nugget_u238, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.zirnoxmep").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_plutonium))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 1),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.zirnoxheu233").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_u233))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u235, 1),
|
||||
new ItemStack(ModItems.nugget_neptunium, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.zirnoxheu235").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_u235))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu238, 1),
|
||||
new ItemStack(ModItems.nugget_neptunium, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.zirnoxles").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_schrabidium))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_beryllium, 2),
|
||||
new ItemStack(ModItems.nugget_pu239, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 2))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.zirnoxzfbmox").setup(100, zirnoxPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_zfb_mox))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_zirconium, 3),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 1))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
// Plate Fuel
|
||||
this.register(new GenericRecipe("purex.platemox").setup(100, platePower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_plate_mox))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.powder_sr90_tiny, 1),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 3),
|
||||
new ItemStack(ModItems.powder_cs137_tiny, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 4))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.platepu238be").setup(100, platePower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_plate_pu238be))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_beryllium, 1),
|
||||
new ItemStack(ModItems.nugget_pu238, 1),
|
||||
new ItemStack(ModItems.powder_coal_tiny, 2),
|
||||
new ItemStack(ModItems.nugget_lead, 2))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.platepu239").setup(100, platePower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_plate_pu239))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu240, 2),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.powder_cs137_tiny, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.platera226be").setup(100, platePower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_plate_ra226be))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_beryllium, 2),
|
||||
new ItemStack(ModItems.nugget_polonium, 2),
|
||||
new ItemStack(ModItems.powder_coal_tiny, 1),
|
||||
new ItemStack(ModItems.nugget_lead, 1))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.platesa326").setup(100, platePower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_plate_sa326))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 1),
|
||||
new ItemStack(ModItems.powder_neodymium_tiny, 1),
|
||||
new ItemStack(ModItems.nugget_tantalium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.plateu233").setup(100, platePower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_plate_u233))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u235, 1),
|
||||
new ItemStack(ModItems.powder_i131_tiny, 1),
|
||||
new ItemStack(ModItems.powder_sr90_tiny, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.plateu235").setup(100, platePower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.waste_plate_u235))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_neptunium, 1),
|
||||
new ItemStack(ModItems.nugget_pu238, 1),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
// PWR
|
||||
this.register(new GenericRecipe("purex.pwrmeu").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEU))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
||||
new ItemStack(ModItems.nugget_plutonium, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrheu233").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEU233))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u235, 3),
|
||||
new ItemStack(ModItems.nugget_pu238, 3),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrheu235").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEU235))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_neptunium, 3),
|
||||
new ItemStack(ModItems.nugget_pu238, 3),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrmen").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEN))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
||||
new ItemStack(ModItems.nugget_pu239, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrhen237").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEN237))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu238, 2),
|
||||
new ItemStack(ModItems.nugget_pu239, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrmox").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MOX))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_u238, 3),
|
||||
new ItemStack(ModItems.nugget_pu240, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrmep").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEP))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_lead, 2),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 2),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 3))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrhep239").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEP239))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_pu240, 4),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 5))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrhep241").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEP241))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
||||
new ItemStack(ModItems.nugget_zirconium, 2),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrmea").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.MEA))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
||||
new ItemStack(ModItems.nugget_zirconium, 2),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrhea242").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HEA242))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_lead, 3),
|
||||
new ItemStack(ModItems.nugget_zirconium, 2),
|
||||
new ItemStack(ModItems.nugget_technetium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrhes326").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HES326))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 3),
|
||||
new ItemStack(ModItems.nugget_lead, 2),
|
||||
new ItemStack(ModItems.nugget_euphemium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrhes327").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.HES327))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_australium, 4),
|
||||
new ItemStack(ModItems.nugget_lead, 1),
|
||||
new ItemStack(ModItems.nugget_euphemium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 6))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrbfbam").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.BFB_AM_MIX))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_am_mix, 9),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_bismuth, 6),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 1))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.pwrbfpu241").setup(100, pwrPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.pwr_fuel_depleted, 1, EnumPWRFuel.BFB_PU241))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu241, 9),
|
||||
new ItemStack(ModItems.nugget_pu_mix, 2),
|
||||
new ItemStack(ModItems.nugget_bismuth, 6),
|
||||
new ItemStack(ModItems.nuclear_waste_tiny, 1))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
// Molten Salt
|
||||
this.register(new GenericRecipe("purex.thoriumsalt").setup(100, 10_000).setIcon(ModItems.fluid_icon, Fluids.THORIUM_SALT.getID())
|
||||
.inputFluids(new FluidStack(Fluids.THORIUM_SALT_DEPLETED, 16_000))
|
||||
.inputItems(new OreDictStack(TH232.nugget(), 2))
|
||||
.outputFluids(new FluidStack(Fluids.THORIUM_SALT, 16_000))
|
||||
.outputItems(
|
||||
new ChanceOutput(new ItemStack(ModItems.nugget_u233, 1), 0.5F),
|
||||
new ChanceOutput(new ItemStack(ModItems.nuclear_waste_tiny, 1), 0.25F)));
|
||||
|
||||
// Watz
|
||||
this.register(new GenericRecipe("purex.watzschrab").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.SCHRABIDIUM))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 15),
|
||||
new ItemStack(ModItems.nugget_euphemium, 3),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzhes").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.HES))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 17),
|
||||
new ItemStack(ModItems.nugget_euphemium, 1),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzmes").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MES))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 12),
|
||||
new ItemStack(ModItems.nugget_tantalium, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzles").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.LES))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_solinium, 9),
|
||||
new ItemStack(ModItems.nugget_tantalium, 9),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzhen").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.HEN))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu239, 12),
|
||||
new ItemStack(ModItems.nugget_technetium, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzmeu").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MEU))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu239, 12),
|
||||
new ItemStack(ModItems.nugget_bismuth, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzmep").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.MEP))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_pu241, 12),
|
||||
new ItemStack(ModItems.nugget_bismuth, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzlead").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.LEAD))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_lead, 6),
|
||||
new ItemStack(ModItems.nugget_bismuth, 12),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzboron").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.BORON))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.powder_coal_tiny, 12),
|
||||
new ItemStack(ModItems.nugget_co60, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
this.register(new GenericRecipe("purex.watzdu").setup(60, watzPower).setNameWrapper("purex.recycle")
|
||||
.inputItems(new ComparableStack(ModItems.watz_pellet_depleted, 1, EnumWatzType.DU))
|
||||
.inputFluids(new FluidStack(Fluids.KEROSENE, 500), new FluidStack(Fluids.NITRIC_ACID, 250))
|
||||
.outputItems(new ItemStack(ModItems.nugget_polonium, 12),
|
||||
new ItemStack(ModItems.nugget_pu238, 6),
|
||||
new ItemStack(ModItems.nuclear_waste, 2))
|
||||
.outputFluids(new FluidStack(Fluids.WATZ, 1_000))
|
||||
.setIconToFirstIngredient());
|
||||
|
||||
/// Vitrification
|
||||
this.register(new GenericRecipe("purex.vitliquid").setup(100, vitrification)
|
||||
.inputItems(new ComparableStack(ModBlocks.sand_lead))
|
||||
.inputFluids(new FluidStack(Fluids.WASTEFLUID, 1_000))
|
||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified)));
|
||||
|
||||
this.register(new GenericRecipe("purex.vitgaseous").setup(100, vitrification)
|
||||
.inputItems(new ComparableStack(ModBlocks.sand_lead))
|
||||
.inputFluids(new FluidStack(Fluids.WASTEGAS, 1_000))
|
||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified)));
|
||||
|
||||
this.register(new GenericRecipe("purex.vitsolid").setup(300, vitrification)
|
||||
.inputItems(new ComparableStack(ModBlocks.sand_lead), new ComparableStack(ModItems.nuclear_waste, 4))
|
||||
.outputItems(new ItemStack(ModItems.nuclear_waste_vitrified, 4)));
|
||||
}
|
||||
}
|
||||
@ -21,8 +21,9 @@ import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
public class GenericRecipe {
|
||||
|
||||
|
||||
protected final String name;
|
||||
public String nameWrapper;
|
||||
public AStack[] inputItem;
|
||||
public FluidStack[] inputFluid;
|
||||
public IOutput[] outputItem;
|
||||
@ -51,6 +52,7 @@ public class GenericRecipe {
|
||||
public GenericRecipe setPower(long power) { this.power = power; return this; }
|
||||
public GenericRecipe setup(int duration, long power) { return this.setDuration(duration).setPower(power); }
|
||||
public GenericRecipe setupNamed(int duration, long power) { return this.setDuration(duration).setPower(power).setNamed(); }
|
||||
public GenericRecipe setNameWrapper(String wrapper) { this.nameWrapper = wrapper; return this; }
|
||||
public GenericRecipe setIcon(ItemStack icon) { this.icon = icon; this.writeIcon = true; return this; }
|
||||
public GenericRecipe setIcon(Item item, int meta) { return this.setIcon(new ItemStack(item, 1, meta)); }
|
||||
public GenericRecipe setIcon(Item item) { return this.setIcon(new ItemStack(item)); }
|
||||
@ -59,7 +61,7 @@ public class GenericRecipe {
|
||||
public GenericRecipe setPools(String... pools) { this.blueprintPools = pools; for(String pool : pools) GenericRecipes.addToPool(pool, this); return this; }
|
||||
|
||||
public GenericRecipe inputItems(AStack... input) { this.inputItem = input; for(AStack stack : this.inputItem) if(stack.stacksize > 64) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
|
||||
public GenericRecipe inputItemsEx(AStack... input) { if(GeneralConfig.enableExpensiveMode) return this; this.inputItem = input; for(AStack stack : this.inputItem) if(stack.stacksize > 64) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
|
||||
public GenericRecipe inputItemsEx(AStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputItem = input; for(AStack stack : this.inputItem) if(stack.stacksize > 64) throw new IllegalArgumentException("AStack in " + this.name + " exceeds stack limit!"); return this; }
|
||||
public GenericRecipe inputFluids(FluidStack... input) { this.inputFluid = input; return this; }
|
||||
public GenericRecipe inputFluidsEx(FluidStack... input) { if(!GeneralConfig.enableExpensiveMode) return this; this.inputFluid = input; return this; }
|
||||
public GenericRecipe outputItems(IOutput... output) { this.outputItem = output; return this; }
|
||||
@ -71,6 +73,14 @@ public class GenericRecipe {
|
||||
return this;
|
||||
}
|
||||
|
||||
public GenericRecipe setIconToFirstIngredient() {
|
||||
if(this.inputItem != null) {
|
||||
List<ItemStack> stacks = this.inputItem[0].extractForNEI();
|
||||
if(!stacks.isEmpty()) this.icon = stacks.get(0);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
public ItemStack getIcon() {
|
||||
|
||||
if(icon == null) {
|
||||
@ -93,8 +103,11 @@ public class GenericRecipe {
|
||||
}
|
||||
|
||||
public String getLocalizedName() {
|
||||
if(customLocalization) return I18nUtil.resolveKey(name);
|
||||
return this.getIcon().getDisplayName();
|
||||
String name = null;
|
||||
if(customLocalization) name = I18nUtil.resolveKey(this.name);
|
||||
if(name == null) name = this.getIcon().getDisplayName();
|
||||
if(this.nameWrapper != null) name = I18nUtil.resolveKey(this.nameWrapper, name);
|
||||
return name;
|
||||
}
|
||||
|
||||
public List<String> print() {
|
||||
|
||||
@ -103,6 +103,7 @@ public abstract class GenericRecipes<T extends GenericRecipe> extends Serializab
|
||||
if(obj.has("icon")) recipe.setIcon(this.readItemStack(obj.get("icon").getAsJsonArray()));
|
||||
if(obj.has("named") && obj.get("named").getAsBoolean()) recipe.setNamed();
|
||||
if(obj.has("blueprintpool")) recipe.setPools(obj.get("blueprintpool").getAsString().split(":"));
|
||||
if(obj.has("nameWrapper")) recipe.setNameWrapper(obj.get("nameWrapper").getAsString());
|
||||
|
||||
readExtraData(element, recipe);
|
||||
|
||||
@ -149,8 +150,9 @@ public abstract class GenericRecipes<T extends GenericRecipe> extends Serializab
|
||||
writer.name("icon");
|
||||
this.writeItemStack(recipe.icon, writer);
|
||||
}
|
||||
|
||||
|
||||
if(recipe.customLocalization) writer.name("named").value(true);
|
||||
if(recipe.nameWrapper != null) writer.name("nameWrapper").value(recipe.nameWrapper);
|
||||
if(recipe.blueprintPools != null && recipe.blueprintPools.length > 0) writer.name("blueprintpool").value(String.join(":", recipe.blueprintPools));
|
||||
|
||||
writeExtraData(recipe, writer);
|
||||
|
||||
@ -85,6 +85,7 @@ public abstract class SerializableRecipe {
|
||||
//GENERIC
|
||||
recipeHandlers.add(AssemblyMachineRecipes.INSTANCE);
|
||||
recipeHandlers.add(ChemicalPlantRecipes.INSTANCE);
|
||||
recipeHandlers.add(PUREXRecipes.INSTANCE);
|
||||
|
||||
recipeHandlers.add(new MatDistribution());
|
||||
recipeHandlers.add(new CustomMachineRecipes());
|
||||
|
||||
@ -273,6 +273,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemicalPlant.class, new RenderChemicalPlant());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemfac.class, new RenderChemfac());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineChemicalFactory.class, new RenderChemicalFactory());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachinePUREX.class, new RenderPUREX());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineFluidTank.class, new RenderFluidTank());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineBAT9000.class, new RenderBAT9000());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityMachineOrbus.class, new RenderOrbus());
|
||||
|
||||
@ -32,6 +32,7 @@ public class NEIRegistry {
|
||||
handlers.add(new ReformingHandler());
|
||||
handlers.add(new HydrotreatingHandler());
|
||||
handlers.add(new ChemicalPlantRecipeHandler());
|
||||
handlers.add(new PUREXRecipeHandler());
|
||||
handlers.add(new OreSlopperHandler()); //before acidizing
|
||||
handlers.add(new CrystallizerRecipeHandler());
|
||||
handlers.add(new BookRecipeHandler());
|
||||
|
||||
@ -140,18 +140,19 @@ public class ResourceManager {
|
||||
public static final IModelCustom assembler_cog = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_cog.obj"));
|
||||
public static final IModelCustom assembler_slider = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_slider.obj"));
|
||||
public static final IModelCustom assembler_arm = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/assembler_new_arm.obj"));
|
||||
public static final IModelCustom assembly_machine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/assembly_machine.obj"));
|
||||
public static final IModelCustom assemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/assemfac.obj"));
|
||||
public static final IModelCustom assembly_machine = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/assembly_machine.obj")).asVBO();
|
||||
public static final IModelCustom assemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/assemfac.obj")).asVBO();
|
||||
|
||||
//Chemplant
|
||||
public static final IModelCustom chemplant_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_body.obj"));
|
||||
public static final IModelCustom chemplant_body = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_body.obj")).asVBO();
|
||||
public static final IModelCustom chemplant_spinner = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_spinner.obj"));
|
||||
public static final IModelCustom chemplant_piston = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_piston.obj"));
|
||||
public static final IModelCustom chemplant_fluid = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluid.hmf"));
|
||||
public static final IModelCustom chemplant_fluidcap = AdvancedModelLoader.loadModel(new ResourceLocation(RefStrings.MODID, "models/chemplant_new_fluidcap.hmf"));
|
||||
public static final IModelCustom chemical_plant = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemical_plant.obj"));
|
||||
public static final IModelCustom chemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemfac.obj"));
|
||||
public static final IModelCustom chemical_factory = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemical_factory.obj"));
|
||||
public static final IModelCustom chemical_plant = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemical_plant.obj")).asVBO();
|
||||
public static final IModelCustom chemfac = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemfac.obj")).asVBO();
|
||||
public static final IModelCustom chemical_factory = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/chemical_factory.obj")).asVBO();
|
||||
public static final IModelCustom purex = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/purex.obj")).asVBO();
|
||||
|
||||
//Mixer
|
||||
public static final IModelCustom mixer = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/machines/mixer.obj"));
|
||||
@ -587,6 +588,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation chemical_plant_fluid_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemical_plant_fluid.png");
|
||||
public static final ResourceLocation chemfac_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemfac.png");
|
||||
public static final ResourceLocation chemical_factory_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/chemical_factory.png");
|
||||
public static final ResourceLocation purex_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/purex.png");
|
||||
|
||||
//Mixer
|
||||
public static final ResourceLocation mixer_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/mixer.png");
|
||||
|
||||
29
src/main/java/com/hbm/module/machine/ModuleMachinePUREX.java
Normal file
29
src/main/java/com/hbm/module/machine/ModuleMachinePUREX.java
Normal file
@ -0,0 +1,29 @@
|
||||
package com.hbm.module.machine;
|
||||
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.recipes.PUREXRecipes;
|
||||
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||
|
||||
import api.hbm.energymk2.IEnergyHandlerMK2;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ModuleMachinePUREX extends ModuleMachineBase {
|
||||
|
||||
public ModuleMachinePUREX(int index, IEnergyHandlerMK2 battery, ItemStack[] slots) {
|
||||
super(index, battery, slots);
|
||||
this.inputSlots = new int[3];
|
||||
this.outputSlots = new int[6];
|
||||
this.inputTanks = new FluidTank[3];
|
||||
this.outputTanks = new FluidTank[1];
|
||||
}
|
||||
|
||||
@Override
|
||||
public GenericRecipe getRecipe() {
|
||||
return PUREXRecipes.INSTANCE.recipeNameMap.get(this.recipe);
|
||||
}
|
||||
|
||||
public ModuleMachinePUREX itemInput(int start) { for(int i = 0; i < inputSlots.length; i++) inputSlots[i] = start + i; return this; }
|
||||
public ModuleMachinePUREX itemOutput(int start) { for(int i = 0; i < outputSlots.length; i++) outputSlots[i] = start + i; return this; }
|
||||
public ModuleMachinePUREX fluidInput(FluidTank a, FluidTank b, FluidTank c) { inputTanks[0] = a; inputTanks[1] = b; inputTanks[2] = c; return this; }
|
||||
public ModuleMachinePUREX fluidOutput(FluidTank a) { outputTanks[0] = a; return this; }
|
||||
}
|
||||
82
src/main/java/com/hbm/render/tileentity/RenderPUREX.java
Normal file
82
src/main/java/com/hbm/render/tileentity/RenderPUREX.java
Normal file
@ -0,0 +1,82 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.tileentity.machine.TileEntityMachinePUREX;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.client.IItemRenderer;
|
||||
|
||||
public class RenderPUREX extends TileEntitySpecialRenderer implements IItemRendererProvider {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float interp) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||
GL11.glRotated(90, 0, 1, 0);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
|
||||
switch(tileEntity.getBlockMetadata() - BlockDummyable.offset) {
|
||||
case 2: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
case 4: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||
case 3: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||
case 5: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||
}
|
||||
|
||||
TileEntityMachinePUREX purex = (TileEntityMachinePUREX) tileEntity;
|
||||
float anim = purex.prevAnim + (purex.anim - purex.prevAnim) * interp;
|
||||
|
||||
bindTexture(ResourceManager.purex_tex);
|
||||
ResourceManager.purex.renderPart("Base");
|
||||
if(purex.frame)ResourceManager.purex.renderPart("Frame");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(1.5, 1.25, 0);
|
||||
GL11.glRotated(anim * 45, 0, 0, 1);
|
||||
GL11.glTranslated(-1.5, -1.25, 0);
|
||||
ResourceManager.purex.renderPart("Fan");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(BobMathUtil.sps(anim * 0.25) * 0.5, 0, 0);
|
||||
ResourceManager.purex.renderPart("Pump");
|
||||
GL11.glPopMatrix();
|
||||
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemForRenderer() {
|
||||
return Item.getItemFromBlock(ModBlocks.machine_purex);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IItemRenderer getRenderer() {
|
||||
|
||||
return new ItemRenderBase() {
|
||||
|
||||
public void renderInventory() {
|
||||
GL11.glTranslated(0, -2.5, 0);
|
||||
GL11.glScaled(2.5, 2.5, 2.5);
|
||||
}
|
||||
public void renderCommonWithStack(ItemStack item) {
|
||||
GL11.glScaled(0.75, 0.75, 0.75);
|
||||
GL11.glShadeModel(GL11.GL_SMOOTH);
|
||||
bindTexture(ResourceManager.purex_tex);
|
||||
ResourceManager.purex.renderPart("Base");
|
||||
ResourceManager.purex.renderPart("Frame");
|
||||
ResourceManager.purex.renderPart("Fan");
|
||||
ResourceManager.purex.renderPart("Pump");
|
||||
GL11.glShadeModel(GL11.GL_FLAT);
|
||||
}};
|
||||
}
|
||||
}
|
||||
@ -353,6 +353,7 @@ public class TileMappings {
|
||||
put(TileEntityMachineChemicalPlant.class, "tileentity_chemicalplant");
|
||||
put(TileEntityMachineChemfac.class, "tileentity_chemfac");
|
||||
put(TileEntityMachineChemicalFactory.class, "tileentity_chemicalfactory");
|
||||
put(TileEntityMachinePUREX.class, "tileentity_purex");
|
||||
|
||||
put(TileEntityMachineOilWell.class, "tileentity_derrick");
|
||||
put(TileEntityMachinePumpjack.class, "tileentity_machine_pumpjack");
|
||||
|
||||
@ -0,0 +1,278 @@
|
||||
package com.hbm.tileentity.machine;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.interfaces.IControlReceiver;
|
||||
import com.hbm.inventory.UpgradeManagerNT;
|
||||
import com.hbm.inventory.container.ContainerMachinePUREX;
|
||||
import com.hbm.inventory.fluid.Fluids;
|
||||
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||
import com.hbm.inventory.gui.GUIMachinePUREX;
|
||||
import com.hbm.inventory.recipes.ChemicalPlantRecipes;
|
||||
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemMachineUpgrade;
|
||||
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.module.machine.ModuleMachinePUREX;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.IUpgradeInfoProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.BobMathUtil;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
import com.hbm.util.i18n.I18nUtil;
|
||||
|
||||
import api.hbm.energymk2.IEnergyReceiverMK2;
|
||||
import api.hbm.fluidmk2.IFluidStandardTransceiverMK2;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityMachinePUREX extends TileEntityMachineBase implements IEnergyReceiverMK2, IFluidStandardTransceiverMK2, IUpgradeInfoProvider, IControlReceiver, IGUIProvider {
|
||||
|
||||
public FluidTank[] inputTanks;
|
||||
public FluidTank[] outputTanks;
|
||||
|
||||
public long power;
|
||||
public long maxPower = 1_000_000;
|
||||
public boolean didProcess = false;
|
||||
|
||||
public boolean frame = false;
|
||||
public int anim;
|
||||
public int prevAnim;
|
||||
|
||||
public ModuleMachinePUREX purexModule;
|
||||
public UpgradeManagerNT upgradeManager = new UpgradeManagerNT(this);
|
||||
|
||||
public TileEntityMachinePUREX() {
|
||||
super(13);
|
||||
|
||||
this.inputTanks = new FluidTank[3];
|
||||
this.outputTanks = new FluidTank[1];
|
||||
for(int i = 0; i < 3; i++) {
|
||||
this.inputTanks[i] = new FluidTank(Fluids.NONE, 16_000);
|
||||
}
|
||||
this.outputTanks[0] = new FluidTank(Fluids.NONE, 16_000);
|
||||
|
||||
this.purexModule = new ModuleMachinePUREX(0, this, slots)
|
||||
.itemInput(4).itemOutput(7)
|
||||
.fluidInput(inputTanks[0], inputTanks[1], inputTanks[2]).fluidOutput(outputTanks[0]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "container.machinePUREX";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(maxPower <= 0) this.maxPower = 1_000_000;
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
GenericRecipe recipe = ChemicalPlantRecipes.INSTANCE.recipeNameMap.get(purexModule.recipe);
|
||||
if(recipe != null) {
|
||||
this.maxPower = recipe.power * 100;
|
||||
}
|
||||
this.maxPower = BobMathUtil.max(this.power, this.maxPower, 1_000_000);
|
||||
|
||||
this.power = Library.chargeTEFromItems(slots, 0, power, maxPower);
|
||||
upgradeManager.checkSlots(slots, 2, 3);
|
||||
|
||||
for(DirPos pos : getConPos()) {
|
||||
this.trySubscribe(worldObj, pos);
|
||||
for(FluidTank tank : inputTanks) if(tank.getTankType() != Fluids.NONE) this.trySubscribe(tank.getTankType(), worldObj, pos);
|
||||
for(FluidTank tank : outputTanks) if(tank.getFill() > 0) this.tryProvide(tank, worldObj, pos);
|
||||
}
|
||||
|
||||
double speed = 1D;
|
||||
double pow = 1D;
|
||||
|
||||
speed += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) / 3D;
|
||||
speed += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3);
|
||||
|
||||
pow -= Math.min(upgradeManager.getLevel(UpgradeType.POWER), 3) * 0.25D;
|
||||
pow += Math.min(upgradeManager.getLevel(UpgradeType.SPEED), 3) * 1D;
|
||||
pow += Math.min(upgradeManager.getLevel(UpgradeType.OVERDRIVE), 3) * 10D / 3D;
|
||||
|
||||
this.purexModule.update(speed, pow, true, slots[1]);
|
||||
this.didProcess = this.purexModule.didProcess;
|
||||
if(this.purexModule.markDirty) this.markDirty();
|
||||
|
||||
this.networkPackNT(100);
|
||||
|
||||
} else {
|
||||
|
||||
this.prevAnim = this.anim;
|
||||
if(this.didProcess) this.anim++;
|
||||
|
||||
if(worldObj.getTotalWorldTime() % 20 == 0) {
|
||||
frame = !worldObj.getBlock(xCoord, yCoord + 5, zCoord).isAir(worldObj, xCoord, yCoord + 5, zCoord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DirPos[] getConPos() {
|
||||
return new DirPos[] {
|
||||
new DirPos(xCoord + 2, yCoord, zCoord - 1, Library.POS_X),
|
||||
new DirPos(xCoord + 2, yCoord, zCoord + 0, Library.POS_X),
|
||||
new DirPos(xCoord + 2, yCoord, zCoord + 1, Library.POS_X),
|
||||
new DirPos(xCoord - 2, yCoord, zCoord - 1, Library.NEG_X),
|
||||
new DirPos(xCoord - 2, yCoord, zCoord + 0, Library.NEG_X),
|
||||
new DirPos(xCoord - 2, yCoord, zCoord + 1, Library.NEG_X),
|
||||
new DirPos(xCoord - 1, yCoord, zCoord + 2, Library.POS_Z),
|
||||
new DirPos(xCoord + 0, yCoord, zCoord + 2, Library.POS_Z),
|
||||
new DirPos(xCoord + 1, yCoord, zCoord + 2, Library.POS_Z),
|
||||
new DirPos(xCoord - 1, yCoord, zCoord - 2, Library.NEG_Z),
|
||||
new DirPos(xCoord + 0, yCoord, zCoord - 2, Library.NEG_Z),
|
||||
new DirPos(xCoord + 1, yCoord, zCoord - 2, Library.NEG_Z),
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(ByteBuf buf) {
|
||||
super.serialize(buf);
|
||||
for(FluidTank tank : inputTanks) tank.serialize(buf);
|
||||
for(FluidTank tank : outputTanks) tank.serialize(buf);
|
||||
buf.writeLong(power);
|
||||
buf.writeLong(maxPower);
|
||||
buf.writeBoolean(didProcess);
|
||||
this.purexModule.serialize(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(ByteBuf buf) {
|
||||
super.deserialize(buf);
|
||||
for(FluidTank tank : inputTanks) tank.deserialize(buf);
|
||||
for(FluidTank tank : outputTanks) tank.deserialize(buf);
|
||||
this.power = buf.readLong();
|
||||
this.maxPower = buf.readLong();
|
||||
this.didProcess = buf.readBoolean();
|
||||
this.purexModule.deserialize(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
this.inputTanks[i].readFromNBT(nbt, "i" + i);
|
||||
}
|
||||
this.outputTanks[0].readFromNBT(nbt, "o" + 0);
|
||||
|
||||
this.power = nbt.getLong("power");
|
||||
this.maxPower = nbt.getLong("maxPower");
|
||||
this.purexModule.readFromNBT(nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
for(int i = 0; i < 3; i++) {
|
||||
this.inputTanks[i].writeToNBT(nbt, "i" + i);
|
||||
}
|
||||
this.outputTanks[0].writeToNBT(nbt, "o" + 0);
|
||||
|
||||
nbt.setLong("power", power);
|
||||
nbt.setLong("maxPower", maxPower);
|
||||
this.purexModule.writeToNBT(nbt);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isItemValidForSlot(int slot, ItemStack stack) {
|
||||
if(slot == 0) return true; // battery
|
||||
if(slot == 1 && stack.getItem() == ModItems.blueprints) return true;
|
||||
if(slot >= 2 && slot <= 3 && stack.getItem() instanceof ItemMachineUpgrade) return true; // upgrades
|
||||
if(this.purexModule.isItemValid(slot, stack)) return true; // recipe input crap
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canExtractItem(int i, ItemStack itemStack, int j) {
|
||||
return i >= 7 && i <= 12;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int[] getAccessibleSlotsFromSide(int side) {
|
||||
return new int[] {4, 5, 6, 7, 8, 9, 10, 11, 12};
|
||||
}
|
||||
|
||||
@Override public long getPower() { return power; }
|
||||
@Override public void setPower(long power) { this.power = power; }
|
||||
@Override public long getMaxPower() { return maxPower; }
|
||||
|
||||
@Override public FluidTank[] getReceivingTanks() { return inputTanks; }
|
||||
@Override public FluidTank[] getSendingTanks() { return outputTanks; }
|
||||
@Override public FluidTank[] getAllTanks() { return new FluidTank[] {inputTanks[0], inputTanks[1], inputTanks[2], outputTanks[0]}; }
|
||||
|
||||
@Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return new ContainerMachinePUREX(player.inventory, this); }
|
||||
@Override @SideOnly(Side.CLIENT) public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIMachinePUREX(player.inventory, this); }
|
||||
|
||||
@Override public boolean hasPermission(EntityPlayer player) { return this.isUseableByPlayer(player); }
|
||||
|
||||
@Override
|
||||
public void receiveControl(NBTTagCompound data) {
|
||||
if(data.hasKey("index") && data.hasKey("selection")) {
|
||||
int index = data.getInteger("index");
|
||||
String selection = data.getString("selection");
|
||||
if(index == 0) {
|
||||
this.purexModule.recipe = selection;
|
||||
this.markChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
AxisAlignedBB bb = null;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
if(bb == null) bb = AxisAlignedBB.getBoundingBox(xCoord - 2, yCoord, zCoord - 2, xCoord + 3, yCoord + 5, zCoord + 3);
|
||||
return bb;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public double getMaxRenderDistanceSquared() {
|
||||
return 65536.0D;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canProvideInfo(UpgradeType type, int level, boolean extendedInfo) {
|
||||
return type == UpgradeType.SPEED || type == UpgradeType.POWER || type == UpgradeType.OVERDRIVE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void provideInfo(UpgradeType type, int level, List<String> info, boolean extendedInfo) {
|
||||
info.add(IUpgradeInfoProvider.getStandardLabel(ModBlocks.machine_purex));
|
||||
if(type == UpgradeType.SPEED) {
|
||||
info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_SPEED, "+" + (level * 100 / 3) + "%"));
|
||||
info.add(EnumChatFormatting.RED + I18nUtil.resolveKey(KEY_CONSUMPTION, "+" + (level * 50) + "%"));
|
||||
}
|
||||
if(type == UpgradeType.POWER) {
|
||||
info.add(EnumChatFormatting.GREEN + I18nUtil.resolveKey(KEY_CONSUMPTION, "-" + (level * 25) + "%"));
|
||||
}
|
||||
if(type == UpgradeType.OVERDRIVE) {
|
||||
info.add((BobMathUtil.getBlink() ? EnumChatFormatting.RED : EnumChatFormatting.DARK_GRAY) + "YES");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public HashMap<UpgradeType, Integer> getValidUpgrades() {
|
||||
HashMap<UpgradeType, Integer> upgrades = new HashMap<>();
|
||||
upgrades.put(UpgradeType.SPEED, 3);
|
||||
upgrades.put(UpgradeType.POWER, 3);
|
||||
upgrades.put(UpgradeType.OVERDRIVE, 3);
|
||||
return upgrades;
|
||||
}
|
||||
}
|
||||
@ -3709,6 +3709,8 @@ potion.hbm_stability=Stabilität
|
||||
potion.hbm_taint=Verdorben
|
||||
potion.hbm_telekinesis=! ! !
|
||||
|
||||
purex.recycle=Wiederanreicherung von %s
|
||||
|
||||
radar.clearMap=Karte zurücksetzen
|
||||
radar.detectMissiles=Raketen erkennen
|
||||
radar.detectPlayers=Spieler erkennen
|
||||
|
||||
@ -4767,6 +4767,8 @@ potion.hbm_stability=Stability
|
||||
potion.hbm_taint=Tainted
|
||||
potion.hbm_telekinesis=! ! !
|
||||
|
||||
purex.recycle=Re-enrichment of %s
|
||||
|
||||
radar.clearMap=Clear Map
|
||||
radar.detectMissiles=Detect Missiles
|
||||
radar.detectPlayers=Detect Players
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
Loading…
x
Reference in New Issue
Block a user