mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
my bals
This commit is contained in:
parent
0c0a3c952b
commit
c6a7d2aba4
@ -9,7 +9,7 @@ import java.util.Map;
|
|||||||
import com.hbm.blocks.ModBlocks;
|
import com.hbm.blocks.ModBlocks;
|
||||||
import com.hbm.handler.imc.ICompatNHNEI;
|
import com.hbm.handler.imc.ICompatNHNEI;
|
||||||
import com.hbm.inventory.gui.GUIITER;
|
import com.hbm.inventory.gui.GUIITER;
|
||||||
import com.hbm.inventory.recipes.FusionRecipes;
|
import com.hbm.inventory.recipes.FusionRecipesLegacy;
|
||||||
import com.hbm.lib.RefStrings;
|
import com.hbm.lib.RefStrings;
|
||||||
|
|
||||||
import codechicken.nei.NEIServerUtils;
|
import codechicken.nei.NEIServerUtils;
|
||||||
@ -67,7 +67,7 @@ public class FusionRecipeHandler extends TemplateRecipeHandler implements ICompa
|
|||||||
|
|
||||||
if(outputId.equals("fusion") && getClass() == FusionRecipeHandler.class) {
|
if(outputId.equals("fusion") && getClass() == FusionRecipeHandler.class) {
|
||||||
|
|
||||||
Map<ItemStack, ItemStack> recipes = FusionRecipes.getRecipes();
|
Map<ItemStack, ItemStack> recipes = FusionRecipesLegacy.getRecipes();
|
||||||
|
|
||||||
for(Map.Entry<ItemStack, ItemStack> recipe : recipes.entrySet()) {
|
for(Map.Entry<ItemStack, ItemStack> recipe : recipes.entrySet()) {
|
||||||
this.arecipes.add(new SmeltingSet(recipe.getKey(), recipe.getValue()));
|
this.arecipes.add(new SmeltingSet(recipe.getKey(), recipe.getValue()));
|
||||||
@ -81,7 +81,7 @@ public class FusionRecipeHandler extends TemplateRecipeHandler implements ICompa
|
|||||||
@Override
|
@Override
|
||||||
public void loadCraftingRecipes(ItemStack result) {
|
public void loadCraftingRecipes(ItemStack result) {
|
||||||
|
|
||||||
Map<ItemStack, ItemStack> recipes = FusionRecipes.getRecipes();
|
Map<ItemStack, ItemStack> recipes = FusionRecipesLegacy.getRecipes();
|
||||||
|
|
||||||
for(Map.Entry<ItemStack, ItemStack> recipe : recipes.entrySet()) {
|
for(Map.Entry<ItemStack, ItemStack> recipe : recipes.entrySet()) {
|
||||||
|
|
||||||
@ -104,7 +104,7 @@ public class FusionRecipeHandler extends TemplateRecipeHandler implements ICompa
|
|||||||
@Override
|
@Override
|
||||||
public void loadUsageRecipes(ItemStack ingredient) {
|
public void loadUsageRecipes(ItemStack ingredient) {
|
||||||
|
|
||||||
Map<ItemStack, ItemStack> recipes = FusionRecipes.getRecipes();
|
Map<ItemStack, ItemStack> recipes = FusionRecipesLegacy.getRecipes();
|
||||||
|
|
||||||
for(Map.Entry<ItemStack, ItemStack> recipe : recipes.entrySet()) {
|
for(Map.Entry<ItemStack, ItemStack> recipe : recipes.entrySet()) {
|
||||||
|
|
||||||
|
|||||||
37
src/main/java/com/hbm/inventory/recipes/FusionRecipe.java
Normal file
37
src/main/java/com/hbm/inventory/recipes/FusionRecipe.java
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
package com.hbm.inventory.recipes;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipe;
|
||||||
|
import com.hbm.util.BobMathUtil;
|
||||||
|
import com.hbm.util.i18n.I18nUtil;
|
||||||
|
|
||||||
|
import net.minecraft.util.EnumChatFormatting;
|
||||||
|
|
||||||
|
public class FusionRecipe extends GenericRecipe {
|
||||||
|
|
||||||
|
// minimum klystron energy to ignite the plasma
|
||||||
|
public long ignitionTemp;
|
||||||
|
// plasma output energy at full blast
|
||||||
|
public long outputTemp;
|
||||||
|
|
||||||
|
public FusionRecipe(String name) { super(name); }
|
||||||
|
|
||||||
|
public FusionRecipe setInputEnergy(long ignitionTemp) { this.ignitionTemp = ignitionTemp; return this; }
|
||||||
|
public FusionRecipe setOutputEnergy(long outputTemp) { this.outputTemp = outputTemp; return this; }
|
||||||
|
|
||||||
|
public List<String> print() {
|
||||||
|
List<String> list = new ArrayList();
|
||||||
|
list.add(EnumChatFormatting.YELLOW + this.getLocalizedName());
|
||||||
|
|
||||||
|
duration(list);
|
||||||
|
power(list);
|
||||||
|
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.recipe.fusionIn") + ": " + BobMathUtil.getShortNumber(ignitionTemp) + "KyU/t");
|
||||||
|
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.recipe.fusionOut") + ": " + BobMathUtil.getShortNumber(outputTemp) + "TU/t");
|
||||||
|
input(list);
|
||||||
|
output(list);
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,83 +1,29 @@
|
|||||||
package com.hbm.inventory.recipes;
|
package com.hbm.inventory.recipes;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import com.hbm.inventory.FluidStack;
|
||||||
import java.util.Map.Entry;
|
|
||||||
|
|
||||||
import com.hbm.inventory.fluid.FluidType;
|
|
||||||
import com.hbm.inventory.fluid.Fluids;
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.inventory.recipes.loader.GenericRecipes;
|
||||||
|
|
||||||
import net.minecraft.item.ItemStack;
|
public class FusionRecipes extends GenericRecipes<FusionRecipe> {
|
||||||
|
|
||||||
public class FusionRecipes {
|
public static final FusionRecipes INSTANCE = new FusionRecipes();
|
||||||
|
|
||||||
public static HashMap<FluidType, Integer> delays = new HashMap();
|
@Override public int inputItemLimit() { return 0; }
|
||||||
static {
|
@Override public int inputFluidLimit() { return 3; }
|
||||||
delays.put(Fluids.PLASMA_DT, 900);
|
@Override public int outputItemLimit() { return 1; }
|
||||||
delays.put(Fluids.PLASMA_DH3, 600);
|
@Override public int outputFluidLimit() { return 11; }
|
||||||
delays.put(Fluids.PLASMA_HD, 1200);
|
|
||||||
delays.put(Fluids.PLASMA_HT, 900);
|
@Override public String getFileName() { return "hbmFusion.json"; }
|
||||||
delays.put(Fluids.PLASMA_XM, 1200);
|
@Override public FusionRecipe instantiateRecipe(String name) { return new FusionRecipe(name); }
|
||||||
delays.put(Fluids.PLASMA_BF, 150);
|
|
||||||
}
|
@Override
|
||||||
|
public void registerDefaults() {
|
||||||
public static int getByproductDelay(FluidType plasma) {
|
|
||||||
Integer delay = delays.get(plasma);
|
|
||||||
return delay != null ? delay : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static HashMap<FluidType, Integer> levels = new HashMap();
|
|
||||||
static {
|
|
||||||
levels.put(Fluids.PLASMA_DT, 1000);
|
|
||||||
levels.put(Fluids.PLASMA_DH3, 2000);
|
|
||||||
levels.put(Fluids.PLASMA_HD, 1000);
|
|
||||||
levels.put(Fluids.PLASMA_HT, 1000);
|
|
||||||
levels.put(Fluids.PLASMA_XM, 3000);
|
|
||||||
levels.put(Fluids.PLASMA_BF, 4000);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getBreedingLevel(FluidType plasma) {
|
|
||||||
Integer level = levels.get(plasma);
|
|
||||||
return level != null ? level : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static HashMap<FluidType, ItemStack> byproducts = new HashMap();
|
|
||||||
static {
|
|
||||||
byproducts.put(Fluids.PLASMA_DT, new ItemStack(ModItems.pellet_charged));
|
|
||||||
byproducts.put(Fluids.PLASMA_DH3, new ItemStack(ModItems.pellet_charged));
|
|
||||||
byproducts.put(Fluids.PLASMA_HD, new ItemStack(ModItems.pellet_charged));
|
|
||||||
byproducts.put(Fluids.PLASMA_HT, new ItemStack(ModItems.pellet_charged));
|
|
||||||
byproducts.put(Fluids.PLASMA_XM, new ItemStack(ModItems.powder_chlorophyte));
|
|
||||||
byproducts.put(Fluids.PLASMA_BF, new ItemStack(ModItems.powder_balefire));
|
|
||||||
}
|
|
||||||
|
|
||||||
public static ItemStack getByproduct(FluidType plasma) {
|
|
||||||
ItemStack byproduct = byproducts.get(plasma);
|
|
||||||
return byproduct != null ? byproduct.copy() : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static HashMap<FluidType, Integer> steamprod = new HashMap();
|
|
||||||
static {
|
|
||||||
steamprod.put(Fluids.PLASMA_DT, 30);
|
|
||||||
steamprod.put(Fluids.PLASMA_DH3, 50);
|
|
||||||
steamprod.put(Fluids.PLASMA_HD, 20);
|
|
||||||
steamprod.put(Fluids.PLASMA_HT, 25);
|
|
||||||
steamprod.put(Fluids.PLASMA_XM, 60);
|
|
||||||
steamprod.put(Fluids.PLASMA_BF, 160);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int getSteamProduction(FluidType plasma) {
|
|
||||||
Integer steam = steamprod.get(plasma);
|
|
||||||
return steam != null ? steam : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static HashMap<ItemStack, ItemStack> getRecipes() {
|
|
||||||
|
|
||||||
HashMap<ItemStack, ItemStack> map = new HashMap();
|
long solenoid = 100_000;
|
||||||
for(Entry<FluidType, ItemStack> entry : byproducts.entrySet()) {
|
|
||||||
map.put(new ItemStack(ModItems.fluid_icon, 1, entry.getKey().getID()), entry.getValue().copy());
|
this.register((FusionRecipe) new FusionRecipe("fus.d-t").setInputEnergy(1_000_000).setOutputEnergy(20_000_000)
|
||||||
}
|
.setPower(solenoid).setDuration(100)
|
||||||
return map;
|
.inputFluids(new FluidStack(Fluids.DEUTERIUM, 10), new FluidStack(Fluids.TRITIUM, 10))
|
||||||
|
.outputFluids(new FluidStack(Fluids.HELIUM4, 1_000)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,83 @@
|
|||||||
|
package com.hbm.inventory.recipes;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
|
import com.hbm.inventory.fluid.FluidType;
|
||||||
|
import com.hbm.inventory.fluid.Fluids;
|
||||||
|
import com.hbm.items.ModItems;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class FusionRecipesLegacy {
|
||||||
|
|
||||||
|
public static HashMap<FluidType, Integer> delays = new HashMap();
|
||||||
|
static {
|
||||||
|
delays.put(Fluids.PLASMA_DT, 900);
|
||||||
|
delays.put(Fluids.PLASMA_DH3, 600);
|
||||||
|
delays.put(Fluids.PLASMA_HD, 1200);
|
||||||
|
delays.put(Fluids.PLASMA_HT, 900);
|
||||||
|
delays.put(Fluids.PLASMA_XM, 1200);
|
||||||
|
delays.put(Fluids.PLASMA_BF, 150);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getByproductDelay(FluidType plasma) {
|
||||||
|
Integer delay = delays.get(plasma);
|
||||||
|
return delay != null ? delay : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HashMap<FluidType, Integer> levels = new HashMap();
|
||||||
|
static {
|
||||||
|
levels.put(Fluids.PLASMA_DT, 1000);
|
||||||
|
levels.put(Fluids.PLASMA_DH3, 2000);
|
||||||
|
levels.put(Fluids.PLASMA_HD, 1000);
|
||||||
|
levels.put(Fluids.PLASMA_HT, 1000);
|
||||||
|
levels.put(Fluids.PLASMA_XM, 3000);
|
||||||
|
levels.put(Fluids.PLASMA_BF, 4000);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getBreedingLevel(FluidType plasma) {
|
||||||
|
Integer level = levels.get(plasma);
|
||||||
|
return level != null ? level : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HashMap<FluidType, ItemStack> byproducts = new HashMap();
|
||||||
|
static {
|
||||||
|
byproducts.put(Fluids.PLASMA_DT, new ItemStack(ModItems.pellet_charged));
|
||||||
|
byproducts.put(Fluids.PLASMA_DH3, new ItemStack(ModItems.pellet_charged));
|
||||||
|
byproducts.put(Fluids.PLASMA_HD, new ItemStack(ModItems.pellet_charged));
|
||||||
|
byproducts.put(Fluids.PLASMA_HT, new ItemStack(ModItems.pellet_charged));
|
||||||
|
byproducts.put(Fluids.PLASMA_XM, new ItemStack(ModItems.powder_chlorophyte));
|
||||||
|
byproducts.put(Fluids.PLASMA_BF, new ItemStack(ModItems.powder_balefire));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemStack getByproduct(FluidType plasma) {
|
||||||
|
ItemStack byproduct = byproducts.get(plasma);
|
||||||
|
return byproduct != null ? byproduct.copy() : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HashMap<FluidType, Integer> steamprod = new HashMap();
|
||||||
|
static {
|
||||||
|
steamprod.put(Fluids.PLASMA_DT, 30);
|
||||||
|
steamprod.put(Fluids.PLASMA_DH3, 50);
|
||||||
|
steamprod.put(Fluids.PLASMA_HD, 20);
|
||||||
|
steamprod.put(Fluids.PLASMA_HT, 25);
|
||||||
|
steamprod.put(Fluids.PLASMA_XM, 60);
|
||||||
|
steamprod.put(Fluids.PLASMA_BF, 160);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getSteamProduction(FluidType plasma) {
|
||||||
|
Integer steam = steamprod.get(plasma);
|
||||||
|
return steam != null ? steam : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HashMap<ItemStack, ItemStack> getRecipes() {
|
||||||
|
|
||||||
|
HashMap<ItemStack, ItemStack> map = new HashMap();
|
||||||
|
for(Entry<FluidType, ItemStack> entry : byproducts.entrySet()) {
|
||||||
|
map.put(new ItemStack(ModItems.fluid_icon, 1, entry.getKey().getID()), entry.getValue().copy());
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -116,32 +116,45 @@ public class GenericRecipe {
|
|||||||
List<String> list = new ArrayList();
|
List<String> list = new ArrayList();
|
||||||
list.add(EnumChatFormatting.YELLOW + this.getLocalizedName());
|
list.add(EnumChatFormatting.YELLOW + this.getLocalizedName());
|
||||||
|
|
||||||
// autoswitch group
|
autoSwitch(list);
|
||||||
|
duration(list);
|
||||||
|
power(list);
|
||||||
|
input(list);
|
||||||
|
output(list);
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void autoSwitch(List<String> list) {
|
||||||
if(this.autoSwitchGroup != null) {
|
if(this.autoSwitchGroup != null) {
|
||||||
String[] lines = I18nUtil.resolveKeyArray("autoswitch", I18nUtil.resolveKey(this.autoSwitchGroup));
|
String[] lines = I18nUtil.resolveKeyArray("autoswitch", I18nUtil.resolveKey(this.autoSwitchGroup));
|
||||||
for(String line : lines) list.add(EnumChatFormatting.GOLD + line);
|
for(String line : lines) list.add(EnumChatFormatting.GOLD + line);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// duration (seconds)
|
|
||||||
|
protected void duration(List<String> list) {
|
||||||
if(duration > 0) {
|
if(duration > 0) {
|
||||||
double seconds = this.duration / 20D;
|
double seconds = this.duration / 20D;
|
||||||
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.recipe.duration") + ": " + seconds + "s");
|
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.recipe.duration") + ": " + seconds + "s");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// power / consumption
|
|
||||||
|
protected void power(List<String> list) {
|
||||||
if(power > 0) {
|
if(power > 0) {
|
||||||
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.recipe.consumption") + ": " + BobMathUtil.getShortNumber(power) + "HE/t");
|
list.add(EnumChatFormatting.RED + I18nUtil.resolveKey("gui.recipe.consumption") + ": " + BobMathUtil.getShortNumber(power) + "HE/t");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// input label + items
|
protected void input(List<String> list) {
|
||||||
list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.recipe.input") + ":");
|
list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.recipe.input") + ":");
|
||||||
if(inputItem != null) for(AStack stack : inputItem) {
|
if(inputItem != null) for(AStack stack : inputItem) {
|
||||||
ItemStack display = stack.extractForCyclingDisplay(20);
|
ItemStack display = stack.extractForCyclingDisplay(20);
|
||||||
list.add(" " + EnumChatFormatting.GRAY + display.stackSize + "x " + display.getDisplayName());
|
list.add(" " + EnumChatFormatting.GRAY + display.stackSize + "x " + display.getDisplayName());
|
||||||
}
|
}
|
||||||
if (inputFluid != null) for (FluidStack fluid : inputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : " " + I18nUtil.resolveKey("gui.recipe.atPressure") + " " + EnumChatFormatting.RED + fluid.pressure + " PU"));
|
if (inputFluid != null) for (FluidStack fluid : inputFluid) list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + (fluid.pressure == 0 ? "" : " " + I18nUtil.resolveKey("gui.recipe.atPressure") + " " + EnumChatFormatting.RED + fluid.pressure + " PU"));
|
||||||
|
}
|
||||||
|
|
||||||
// output label + items
|
protected void output(List<String> list) {
|
||||||
list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.recipe.output") + ":");
|
list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("gui.recipe.output") + ":");
|
||||||
if(outputItem != null) for(IOutput output : outputItem)
|
if(outputItem != null) for(IOutput output : outputItem)
|
||||||
for(String line : output.getLabel()) list.add(" " + line);
|
for(String line : output.getLabel()) list.add(" " + line);
|
||||||
@ -150,8 +163,6 @@ public class GenericRecipe {
|
|||||||
" " + I18nUtil.resolveKey("gui.recipe.atPressure") + " " + EnumChatFormatting.RED + fluid.pressure + " PU";
|
" " + I18nUtil.resolveKey("gui.recipe.atPressure") + " " + EnumChatFormatting.RED + fluid.pressure + " PU";
|
||||||
list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + pressurePart);
|
list.add(" " + EnumChatFormatting.BLUE + fluid.fill + "mB " + fluid.type.getLocalizedName() + pressurePart);
|
||||||
}
|
}
|
||||||
|
|
||||||
return list;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -49,7 +49,7 @@ public abstract class ModuleMachineBase {
|
|||||||
if(recipe == null) return false;
|
if(recipe == null) return false;
|
||||||
|
|
||||||
// auto switch functionality
|
// auto switch functionality
|
||||||
if(recipe.autoSwitchGroup != null && slots[inputSlots[0]] != null) {
|
if(recipe.autoSwitchGroup != null && inputSlots.length > 0 && slots[inputSlots[0]] != null) {
|
||||||
ItemStack itemToSwitchBy = slots[inputSlots[0]];
|
ItemStack itemToSwitchBy = slots[inputSlots[0]];
|
||||||
List<GenericRecipe> recipes = (List<GenericRecipe>) this.getRecipeSet().autoSwitchGroups.get(recipe.autoSwitchGroup);
|
List<GenericRecipe> recipes = (List<GenericRecipe>) this.getRecipeSet().autoSwitchGroups.get(recipe.autoSwitchGroup);
|
||||||
if(recipes != null) for(GenericRecipe nextRec : recipes) {
|
if(recipes != null) for(GenericRecipe nextRec : recipes) {
|
||||||
@ -190,7 +190,7 @@ public abstract class ModuleMachineBase {
|
|||||||
List<GenericRecipe> recipes = (List<GenericRecipe>) this.getRecipeSet().autoSwitchGroups.get(recipe.autoSwitchGroup); // why the FUCK does this need a cast
|
List<GenericRecipe> recipes = (List<GenericRecipe>) this.getRecipeSet().autoSwitchGroups.get(recipe.autoSwitchGroup); // why the FUCK does this need a cast
|
||||||
if(recipes != null) for(GenericRecipe newRec : recipes) {
|
if(recipes != null) for(GenericRecipe newRec : recipes) {
|
||||||
if(newRec.inputItem == null) continue;
|
if(newRec.inputItem == null) continue;
|
||||||
if(inputSlots[0] == slot && newRec.inputItem[0].matchesRecipe(stack, true)) {
|
if(inputSlots.length > 0 && inputSlots[0] == slot && newRec.inputItem[0].matchesRecipe(stack, true)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,28 @@
|
|||||||
|
package com.hbm.module.machine;
|
||||||
|
|
||||||
|
import com.hbm.inventory.fluid.tank.FluidTank;
|
||||||
|
import com.hbm.inventory.recipes.FusionRecipes;
|
||||||
|
import com.hbm.inventory.recipes.loader.GenericRecipes;
|
||||||
|
|
||||||
|
import api.hbm.energymk2.IEnergyHandlerMK2;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
|
public class ModuleMachineFusion extends ModuleMachineBase {
|
||||||
|
|
||||||
|
public ModuleMachineFusion(int index, IEnergyHandlerMK2 battery, ItemStack[] slots) {
|
||||||
|
super(index, battery, slots);
|
||||||
|
this.inputSlots = new int[0];
|
||||||
|
this.outputSlots = new int[1];
|
||||||
|
this.inputTanks = new FluidTank[3];
|
||||||
|
this.outputTanks = new FluidTank[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GenericRecipes getRecipeSet() {
|
||||||
|
return FusionRecipes.INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ModuleMachineFusion itemOutput(int slot) { outputSlots[0] = slot; return this; }
|
||||||
|
public ModuleMachineFusion fluidInput(FluidTank a, FluidTank b, FluidTank c) { inputTanks[0] = a; inputTanks[1] = b; inputTanks[2] = c; return this; }
|
||||||
|
public ModuleMachineFusion fluidOutput(FluidTank a) { outputTanks[0] = a; return this; }
|
||||||
|
}
|
||||||
@ -17,7 +17,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
|
|||||||
import com.hbm.inventory.gui.GUIITER;
|
import com.hbm.inventory.gui.GUIITER;
|
||||||
import com.hbm.inventory.recipes.BreederRecipes;
|
import com.hbm.inventory.recipes.BreederRecipes;
|
||||||
import com.hbm.inventory.recipes.BreederRecipes.BreederRecipe;
|
import com.hbm.inventory.recipes.BreederRecipes.BreederRecipe;
|
||||||
import com.hbm.inventory.recipes.FusionRecipes;
|
import com.hbm.inventory.recipes.FusionRecipesLegacy;
|
||||||
import com.hbm.items.ModItems;
|
import com.hbm.items.ModItems;
|
||||||
import com.hbm.items.special.ItemFusionShield;
|
import com.hbm.items.special.ItemFusionShield;
|
||||||
import com.hbm.lib.Library;
|
import com.hbm.lib.Library;
|
||||||
@ -114,7 +114,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece
|
|||||||
|
|
||||||
if(plasma.getFill() > 0) {
|
if(plasma.getFill() > 0) {
|
||||||
this.totalRuntime++;
|
this.totalRuntime++;
|
||||||
int delay = FusionRecipes.getByproductDelay(plasma.getTankType());
|
int delay = FusionRecipesLegacy.getByproductDelay(plasma.getTankType());
|
||||||
if(delay > 0 && totalRuntime % delay == 0) produceByproduct();
|
if(delay > 0 && totalRuntime % delay == 0) produceByproduct();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int prod = FusionRecipes.getSteamProduction(plasma.getTankType());
|
int prod = FusionRecipesLegacy.getSteamProduction(plasma.getTankType());
|
||||||
|
|
||||||
for(int i = 0; i < 20; i++) {
|
for(int i = 0; i < 20; i++) {
|
||||||
|
|
||||||
@ -288,7 +288,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int level = FusionRecipes.getBreedingLevel(plasma.getTankType());
|
int level = FusionRecipesLegacy.getBreedingLevel(plasma.getTankType());
|
||||||
|
|
||||||
if(out.flux > level) {
|
if(out.flux > level) {
|
||||||
this.progress = 0;
|
this.progress = 0;
|
||||||
@ -337,7 +337,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece
|
|||||||
|
|
||||||
private void produceByproduct() {
|
private void produceByproduct() {
|
||||||
|
|
||||||
ItemStack by = FusionRecipes.getByproduct(plasma.getTankType());
|
ItemStack by = FusionRecipesLegacy.getByproduct(plasma.getTankType());
|
||||||
|
|
||||||
if(by == null)
|
if(by == null)
|
||||||
return;
|
return;
|
||||||
@ -556,7 +556,7 @@ public class TileEntityITER extends TileEntityMachineBase implements IEnergyRece
|
|||||||
@Override
|
@Override
|
||||||
public void provideExtraInfo(NBTTagCompound data) {
|
public void provideExtraInfo(NBTTagCompound data) {
|
||||||
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.isOn && plasma.getFill() > 0);
|
data.setBoolean(CompatEnergyControl.B_ACTIVE, this.isOn && plasma.getFill() > 0);
|
||||||
int output = FusionRecipes.getSteamProduction(plasma.getTankType());
|
int output = FusionRecipesLegacy.getSteamProduction(plasma.getTankType());
|
||||||
data.setDouble("consumption", output * 10);
|
data.setDouble("consumption", output * 10);
|
||||||
data.setDouble("outputmb", output);
|
data.setDouble("outputmb", output);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,12 +2,14 @@ package com.hbm.tileentity.machine.fusion;
|
|||||||
|
|
||||||
import com.hbm.inventory.container.ContainerFusionTorus;
|
import com.hbm.inventory.container.ContainerFusionTorus;
|
||||||
import com.hbm.inventory.gui.GUIFusionTorus;
|
import com.hbm.inventory.gui.GUIFusionTorus;
|
||||||
|
import com.hbm.module.machine.ModuleMachineFusion;
|
||||||
import com.hbm.tileentity.IGUIProvider;
|
import com.hbm.tileentity.IGUIProvider;
|
||||||
import com.hbm.tileentity.machine.albion.TileEntityCooledBase;
|
import com.hbm.tileentity.machine.albion.TileEntityCooledBase;
|
||||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.inventory.Container;
|
import net.minecraft.inventory.Container;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
@ -15,6 +17,9 @@ import net.minecraft.world.World;
|
|||||||
|
|
||||||
public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIProvider {
|
public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIProvider {
|
||||||
|
|
||||||
|
|
||||||
|
public ModuleMachineFusion fusionModule;
|
||||||
|
|
||||||
public TileEntityFusionTorus() {
|
public TileEntityFusionTorus() {
|
||||||
super(3);
|
super(3);
|
||||||
}
|
}
|
||||||
@ -26,17 +31,35 @@ public class TileEntityFusionTorus extends TileEntityCooledBase implements IGUIP
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity() {
|
public void updateEntity() {
|
||||||
|
super.updateEntity();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void serialize(ByteBuf buf) {
|
||||||
|
super.serialize(buf);
|
||||||
|
this.fusionModule.serialize(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deserialize(ByteBuf buf) {
|
||||||
|
super.deserialize(buf);
|
||||||
|
this.fusionModule.deserialize(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getMaxPower() {
|
public long getMaxPower() {
|
||||||
return 0;
|
return 10_000_000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Linearly scales up from 0% to 100% from 0 to 0.5, then stays at 100% */
|
||||||
|
public static double getSpeedScaled(double max, double level) {
|
||||||
|
if(level >= max * 0.5) return 1D;
|
||||||
|
return level / max * 2D;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public DirPos[] getConPos() {
|
public DirPos[] getConPos() {
|
||||||
return null;
|
return new DirPos[0]; // TBI
|
||||||
}
|
}
|
||||||
|
|
||||||
AxisAlignedBB bb = null;
|
AxisAlignedBB bb = null;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user