diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 595363120..afee6285e 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -79,6 +79,7 @@ public class Fluids { public static FluidType DEATH; //osmiridium solution public static FluidType ETHANOL; public static FluidType HEAVYWATER; + public static FluidType SALIENT; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -168,6 +169,7 @@ public class Fluids { DIESEL_CRACK = new FluidTypeCombustible( "DIESEL_CRACK", 0xf2eed5, 1, 2, 0, EnumSymbol.NONE).setCombustionEnergy(FuelGrade.HIGH, 450_000); AROMATICS = new FluidTypeFlammable( "AROMATICS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); UNSATURATEDS = new FluidTypeFlammable( "UNSATURATEDS", 0xfffeed, 1, 4, 1, EnumSymbol.NONE); + SALIENT = new FluidType( "SALIENT", 0x457F2D, 0, 0, 0, EnumSymbol.NONE); // ^ ^ ^ ^ ^ ^ ^ ^ @@ -205,7 +207,6 @@ public class Fluids { metaOrder.add(COALOIL); metaOrder.add(HOTOIL); metaOrder.add(HOTCRACKOIL); - //metaOrder.add(HOTCOALOIL); metaOrder.add(HEAVYOIL); metaOrder.add(NAPHTHA); metaOrder.add(NAPHTHA_CRACK); @@ -233,6 +234,7 @@ public class Fluids { metaOrder.add(NITAN); metaOrder.add(BALEFIRE); //processing fluids + metaOrder.add(SALIENT); metaOrder.add(ACID); metaOrder.add(UF6); metaOrder.add(PUF6); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index 154123c9a..e88f586eb 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -4,12 +4,17 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineRefinery; +import com.hbm.inventory.fluid.Fluids; import com.hbm.lib.RefStrings; +import com.hbm.packet.NBTControlPacket; +import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.ResourceLocation; public class GUIMachineRefinery extends GuiInfoContainer { @@ -36,6 +41,18 @@ public class GUIMachineRefinery extends GuiInfoContainer { refinery.tanks[4].renderTankInfo(this, mouseX, mouseY, guiLeft + 134, guiTop + 70 - 52, 16, 52); this.drawElectricityInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 70 - 52, 16, 52, refinery.power, refinery.maxPower); } + + @Override + protected void mouseClicked(int x, int y, int i) { + super.mouseClicked(x, y, i); + + if(guiLeft + 64 <= x && guiLeft + 76 > x && guiTop + 20 < y && guiTop + 46 >= y) { + mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F)); + NBTTagCompound data = new NBTTagCompound(); + data.setBoolean("toggle", true); //we only need to send one bit, so boolean it is + PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, refinery.xCoord, refinery.yCoord, refinery.zCoord)); + } + } @Override protected void drawGuiContainerForegroundLayer(int i, int j) { @@ -50,6 +67,9 @@ public class GUIMachineRefinery extends GuiInfoContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); + + if(refinery.tanks[0].getTankType() == Fluids.HOTCRACKOIL) + drawTexturedModalRect(guiLeft + 64, guiTop + 20, 192, 0, 12, 26); int j = (int)refinery.getPowerScaled(52); drawTexturedModalRect(guiLeft + 8, guiTop + 70 - j, 176, 52 - j, 16, j); diff --git a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java index 570d46e5a..1de103212 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java +++ b/src/main/java/com/hbm/inventory/gui/GUIScreenTemplateFolder.java @@ -14,6 +14,7 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemCassette; import com.hbm.items.machine.ItemChemistryTemplate; import com.hbm.items.machine.ItemStamp; +import com.hbm.items.machine.ItemChemistryTemplate.EnumChemistryTemplate; import com.hbm.items.machine.ItemStamp.StampType; import com.hbm.lib.RefStrings; import com.hbm.packet.ItemFolderPacket; @@ -80,7 +81,10 @@ public class GUIScreenTemplateFolder extends GuiScreen { } // Chemistry Templates for(int i = 0; i < ItemChemistryTemplate.EnumChemistryTemplate.values().length; i++) { - allStacks.add(new ItemStack(ModItems.chemistry_template, 1, i)); + EnumChemistryTemplate chem = EnumChemistryTemplate.getEnum(i); + if(!chem.isDisabled()) { + allStacks.add(new ItemStack(ModItems.chemistry_template, 1, i)); + } } } else { diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 760a038bb..3a06bf329 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -14,6 +14,7 @@ import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.init.Blocks; import net.minecraft.init.Items; +import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; public class LiquefactionRecipes { @@ -62,6 +63,12 @@ public class LiquefactionRecipes { return recipes.get(key); } + if(stack.getItem() instanceof ItemFood) { + ItemFood food = (ItemFood) stack.getItem(); + float saturation = food.func_150905_g(stack) * food.func_150906_h(stack) * 20; //food val * saturation mod * 2 (constant) * 10 (quanta) + return new FluidStack(Fluids.SALIENT, (int) saturation); + } + return null; } diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index ea686b182..6504ecde1 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -1190,8 +1190,12 @@ public class MachineRecipes { return null; List list = new ArrayList(); + ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage()); - switch(ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage())) { + if(chem.isDisabled()) + return list; + + switch(chem) { case CC_OIL: list.add(new ItemStack(ModItems.powder_coal, 8)); list.add(new ItemStack(ModItems.oil_tar, 4)); @@ -1381,7 +1385,12 @@ public class MachineRecipes { FluidStack[] input = new FluidStack[2]; - switch(ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage())) { + ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage()); + + if(chem.isDisabled()) + return input; + + switch(chem) { case FP_HEAVYOIL: input[0] = new FluidStack(1000, Fluids.HEAVYOIL); break; @@ -1639,7 +1648,12 @@ public class MachineRecipes { ItemStack[] output = new ItemStack[4]; - switch(ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage())) { + ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage()); + + if(chem.isDisabled()) + return output; + + switch(chem) { case ASPHALT: output[0] = new ItemStack(ModBlocks.asphalt, 4); output[1] = new ItemStack(ModBlocks.asphalt, 4); @@ -1808,7 +1822,12 @@ public class MachineRecipes { FluidStack[] output = new FluidStack[2]; - switch(ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage())) { + ItemChemistryTemplate.EnumChemistryTemplate chem = ItemChemistryTemplate.EnumChemistryTemplate.getEnum(stack.getItemDamage()); + + if(chem.isDisabled()) + return output; + + switch(chem) { case FP_HEAVYOIL: output[0] = new FluidStack(RefineryRecipes.heavy_frac_bitu * 10, Fluids.BITUMEN); output[1] = new FluidStack(RefineryRecipes.heavy_frac_smear * 10, Fluids.SMEAR); diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index cdbd0bc2e..814d963be 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -119,6 +119,10 @@ public class RefineryRecipes { cracking.put(Fluids.KEROSENE, new Pair(new FluidStack(Fluids.PETROLEUM, kero_crack_petro), new FluidStack(Fluids.NONE, 0))); } + public static Quintet getRefinery(FluidType oil) { + return refinery.get(oil); + } + public static Pair getFractions(FluidType oil) { return fractions.get(oil); } diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 3fcd1600f..4dd26b381 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -53,6 +53,7 @@ public class SolidificationRecipes { registerRecipe(LAVA, 1000, Blocks.obsidian); registerRecipe(MERCURY, 125, ModItems.ingot_mercury); registerRecipe(BIOGAS, 250, ModItems.biomass_compressed); + registerRecipe(SALIENT, 1280, new ItemStack(ModItems.bio_wafer, 8)); //4 (food val) * 2 (sat mod) * 2 (constant) * 10 (quanta) * 8 (batch size) registerRecipe(OIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRUDE)); registerRecipe(CRACKOIL, SF_OIL, DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK)); diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 1c1cc6fb2..ec35203ba 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -492,6 +492,7 @@ public class ModItems { public static Item biomass; public static Item biomass_compressed; + public static Item bio_wafer; public static Item coil_copper; public static Item coil_copper_torus; @@ -2938,6 +2939,7 @@ public class ModItems { biomass = new Item().setUnlocalizedName("biomass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass"); biomass_compressed = new Item().setUnlocalizedName("biomass_compressed").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":biomass_compressed"); + bio_wafer = new ItemLemon(4, 2F, false).setUnlocalizedName("bio_wafer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":bio_wafer"); coil_copper = new Item().setUnlocalizedName("coil_copper").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_copper"); coil_copper_torus = new Item().setUnlocalizedName("coil_copper_torus").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":coil_copper_torus"); @@ -5884,6 +5886,8 @@ public class ModItems { //Things that look like rotten flesh but aren't GameRegistry.registerItem(biomass, biomass.getUnlocalizedName()); GameRegistry.registerItem(biomass_compressed, biomass_compressed.getUnlocalizedName()); + //delicious! + GameRegistry.registerItem(bio_wafer, bio_wafer.getUnlocalizedName()); //Nuggets GameRegistry.registerItem(nugget_uranium, nugget_uranium.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java index 2482d9a59..acf16f00b 100644 --- a/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java +++ b/src/main/java/com/hbm/items/machine/ItemChemistryTemplate.java @@ -36,31 +36,31 @@ public class ItemChemistryTemplate extends Item { FP_LIGHTOIL, FR_REOIL, FR_PETROIL, - FC_BITUMEN, - FC_I_NAPHTHA, - FC_GAS_PETROLEUM, - FC_DIESEL_KEROSENE, - FC_KEROSENE_PETROLEUM, - CC_OIL, - CC_I, - CC_HEATING, - CC_HEAVY, - CC_NAPHTHA, - SF_OIL, - SF_HEAVYOIL, - SF_SMEAR, - SF_HEATINGOIL, - SF_RECLAIMED, - SF_PETROIL, - SF_LUBRICANT, - SF_NAPHTHA, - SF_DIESEL, - SF_LIGHTOIL, - SF_KEROSENE, - SF_GAS, - SF_PETROLEUM, - SF_BIOGAS, - SF_BIOFUEL, + FC_BITUMEN(true), + FC_I_NAPHTHA(true), + FC_GAS_PETROLEUM(true), + FC_DIESEL_KEROSENE(true), + FC_KEROSENE_PETROLEUM(true), + CC_OIL(true), + CC_I(true), + CC_HEATING(true), + CC_HEAVY(true), + CC_NAPHTHA(true), + SF_OIL(true), + SF_HEAVYOIL(true), + SF_SMEAR(true), + SF_HEATINGOIL(true), + SF_RECLAIMED(true), + SF_PETROIL(true), + SF_LUBRICANT(true), + SF_NAPHTHA(true), + SF_DIESEL(true), + SF_LIGHTOIL(true), + SF_KEROSENE(true), + SF_GAS(true), + SF_PETROLEUM(true), + SF_BIOGAS(true), + SF_BIOFUEL(true), BP_BIOGAS, BP_BIOFUEL, LPG, @@ -111,6 +111,15 @@ public class ItemChemistryTemplate extends Item { HEAVY_ELECTROLYSIS, DUCRETE; + private boolean disabled = false; + + private EnumChemistryTemplate() { } + + /** Alternate ctor for disabling recipes to prevent recipe shifting armageddon */ + private EnumChemistryTemplate(boolean disabled) { + this.disabled = disabled; + } + public static EnumChemistryTemplate getEnum(int i) { if(i < EnumChemistryTemplate.values().length) return EnumChemistryTemplate.values()[i]; @@ -121,252 +130,183 @@ public class ItemChemistryTemplate extends Item { public String getName() { return this.toString(); } + + public boolean isDisabled() { + return this.disabled; + } } - public ItemChemistryTemplate() - { - this.setHasSubtypes(true); - this.setMaxDamage(0); - } + public ItemChemistryTemplate() { + this.setHasSubtypes(true); + this.setMaxDamage(0); + } - public String getItemStackDisplayName(ItemStack stack) - { - String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); - String s1 = ("" + StatCollector.translateToLocal("chem." + EnumChemistryTemplate.getEnum(stack.getItemDamage()).name())).trim(); + public String getItemStackDisplayName(ItemStack stack) { + EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(stack.getItemDamage()); + + if(enum1.isDisabled()) { + return EnumChatFormatting.RED + "Broken Template" + EnumChatFormatting.RESET; + } else { + String s = ("" + StatCollector.translateToLocal(this.getUnlocalizedName() + ".name")).trim(); + String s1 = ("" + StatCollector.translateToLocal("chem." + enum1.name())).trim(); + + if(s1 != null) { + s = s + " " + s1; + } + + return s; + } + } - if (s1 != null) - { - s = s + " " + s1; - } - - return s; - } - - @Override + @Override @SideOnly(Side.CLIENT) - public void getSubItems(Item item, CreativeTabs tabs, List list) - { - for (int i = 0; i < EnumChemistryTemplate.values().length; ++i) - { - list.add(new ItemStack(item, 1, i)); - } - } - - public static int getProcessTime(ItemStack stack) { - - if(!(stack.getItem() instanceof ItemChemistryTemplate)) - return 100; - - int i = stack.getItemDamage(); - EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(i); - - switch (enum1) { - case FP_HEAVYOIL: - return 50; - case FP_SMEAR: - return 50; - case FP_NAPHTHA: - return 50; - case FP_LIGHTOIL: - return 50; - case FR_REOIL: - return 30; - case FR_PETROIL: - return 30; - case OIL_SAND: - return 200; - case FC_BITUMEN: - return 100; - case FC_I_NAPHTHA: - return 150; - case FC_GAS_PETROLEUM: - return 100; - case FC_DIESEL_KEROSENE: - return 150; - case FC_KEROSENE_PETROLEUM: - return 150; - case CC_OIL: - return 150; - case CC_I: - return 200; - case CC_HEATING: - return 250; - case CC_HEAVY: - return 200; - case CC_NAPHTHA: - return 300; - case ASPHALT: - return 100; - case COOLANT: - return 50; - case CRYOGEL: - return 50; - case DESH: - return 300; - case NITAN: - return 50; - case PEROXIDE: - return 50; - case CIRCUIT_4: - return 200; - case CIRCUIT_5: - return 250; - case SF_OIL: - return 20; - case SF_HEAVYOIL: - return 20; - case SF_SMEAR: - return 20; - case SF_HEATINGOIL: - return 20; - case SF_RECLAIMED: - return 20; - case SF_PETROIL: - return 20; - case SF_LUBRICANT: - return 20; - case SF_NAPHTHA: - return 20; - case SF_DIESEL: - return 20; - case SF_LIGHTOIL: - return 20; - case SF_KEROSENE: - return 20; - case SF_GAS: - return 20; - case SF_PETROLEUM: - return 20; - case SF_BIOGAS: - return 20; - case SF_BIOFUEL: - return 20; - case POLYMER: - return 100; - case DEUTERIUM: - return 200; - case STEAM: - return 20; - case BP_BIOGAS: - return 200; - case BP_BIOFUEL: - return 100; - case LPG: - return 100; - case YELLOWCAKE: - return 250; - case UF6: - return 100; - case PUF6: - return 150; - case SAS3: - return 200; - case DYN_SCHRAB: - return 1*60*20; - case DYN_EUPH: - return 3*60*20; - case DYN_DNT: - return 5*60*20; - case CORDITE: - return 40; - case KEVLAR: - return 40; - case CONCRETE: - return 100; - case CONCRETE_ASBESTOS: - return 100; - case SOLID_FUEL: - return 200; - case ELECTROLYSIS: - return 150; - case XENON: - return 300; - case XENON_OXY: - return 20; - case SATURN: - return 60; - case BALEFIRE: - return 100; - case SCHRABIDIC: - return 100; - case SCHRABIDATE: - return 150; - case COLTAN_CLEANING: - return 60; - case COLTAN_PAIN: - return 120; - case COLTAN_CRYSTAL: - return 80; - case VIT_LIQUID: - return 100; - case VIT_GAS: - return 100; - case TEL: - return 40; - case GASOLINE: - return 40; - case FRACKSOL: - return 20; - case HELIUM3: - return 200; - case OSMIRIDIUM_DEATH: - return 240; - case ETHANOL: - return 50; - case METH: - return 30; - case CO2: - return 60; - case HEAVY_ELECTROLYSIS: - return 150; - case DUCRETE: - return 150; - default: - return 100; - } - } + public void getSubItems(Item item, CreativeTabs tabs, List list) { + for(int i = 0; i < EnumChemistryTemplate.values().length; ++i) { + EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(i); + + if(!enum1.isDisabled()) { + list.add(new ItemStack(item, 1, i)); + } + } + } + + public static int getProcessTime(ItemStack stack) { + + if(!(stack.getItem() instanceof ItemChemistryTemplate)) + return 100; + + int i = stack.getItemDamage(); + EnumChemistryTemplate enum1 = EnumChemistryTemplate.getEnum(i); + + switch(enum1) { + case FP_HEAVYOIL: return 50; + case FP_SMEAR: return 50; + case FP_NAPHTHA: return 50; + case FP_LIGHTOIL: return 50; + case FR_REOIL: return 30; + case FR_PETROIL: return 30; + case OIL_SAND: return 200; + case FC_BITUMEN: return 100; + case FC_I_NAPHTHA: return 150; + case FC_GAS_PETROLEUM: return 100; + case FC_DIESEL_KEROSENE: return 150; + case FC_KEROSENE_PETROLEUM: return 150; + case CC_OIL: return 150; + case CC_I: return 200; + case CC_HEATING: return 250; + case CC_HEAVY: return 200; + case CC_NAPHTHA: return 300; + case ASPHALT: return 100; + case COOLANT: return 50; + case CRYOGEL: return 50; + case DESH: return 300; + case NITAN: return 50; + case PEROXIDE: return 50; + case CIRCUIT_4: return 200; + case CIRCUIT_5: return 250; + case SF_OIL: return 20; + case SF_HEAVYOIL: return 20; + case SF_SMEAR: return 20; + case SF_HEATINGOIL: return 20; + case SF_RECLAIMED: return 20; + case SF_PETROIL: return 20; + case SF_LUBRICANT: return 20; + case SF_NAPHTHA: return 20; + case SF_DIESEL: return 20; + case SF_LIGHTOIL: return 20; + case SF_KEROSENE: return 20; + case SF_GAS: return 20; + case SF_PETROLEUM: return 20; + case SF_BIOGAS: return 20; + case SF_BIOFUEL: return 20; + case POLYMER: return 100; + case DEUTERIUM: return 200; + case STEAM: return 20; + case BP_BIOGAS: return 200; + case BP_BIOFUEL: return 100; + case LPG: return 100; + case YELLOWCAKE: return 250; + case UF6: return 100; + case PUF6: return 150; + case SAS3: return 200; + case DYN_SCHRAB: return 1 * 60 * 20; + case DYN_EUPH: return 3 * 60 * 20; + case DYN_DNT: return 5 * 60 * 20; + case CORDITE: return 40; + case KEVLAR: return 40; + case CONCRETE: return 100; + case CONCRETE_ASBESTOS: return 100; + case SOLID_FUEL: return 200; + case ELECTROLYSIS: return 150; + case XENON: return 300; + case XENON_OXY: return 20; + case SATURN: return 60; + case BALEFIRE: return 100; + case SCHRABIDIC: return 100; + case SCHRABIDATE: return 150; + case COLTAN_CLEANING: return 60; + case COLTAN_PAIN: return 120; + case COLTAN_CRYSTAL: return 80; + case VIT_LIQUID: return 100; + case VIT_GAS: return 100; + case TEL: return 40; + case GASOLINE: return 40; + case FRACKSOL: return 20; + case HELIUM3: return 200; + case OSMIRIDIUM_DEATH: return 240; + case ETHANOL: return 50; + case METH: return 30; + case CO2: return 60; + case HEAVY_ELECTROLYSIS: return 150; + case DUCRETE: return 150; + default: return 100; + } + } @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) - { - - if(!(stack.getItem() instanceof ItemChemistryTemplate)) - return; + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean bool) { + + if(!(stack.getItem() instanceof ItemChemistryTemplate)) + return; + + if(EnumChemistryTemplate.getEnum(stack.getItemDamage()).isDisabled()) { + return; + } + + List stacks = MachineRecipes.getChemInputFromTempate(stack); + FluidStack[] inF = MachineRecipes.getFluidInputFromTempate(stack); + ItemStack[] out = MachineRecipes.getChemOutputFromTempate(stack); + FluidStack[] outF = MachineRecipes.getFluidOutputFromTempate(stack); - List stacks = MachineRecipes.getChemInputFromTempate(stack); - FluidStack[] inF = MachineRecipes.getFluidInputFromTempate(stack); - ItemStack[] out = MachineRecipes.getChemOutputFromTempate(stack); - FluidStack[] outF = MachineRecipes.getFluidOutputFromTempate(stack); - list.add(EnumChatFormatting.YELLOW + I18nUtil.resolveKey("info.templatefolder", I18nUtil.resolveKey(ModItems.template_folder.getUnlocalizedName() + ".name"))); list.add(""); - try { - list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_out_p")); - for(int i = 0; i < 4; i++) - if(out[i] != null) - list.add(out[i].stackSize + "x " + out[i].getDisplayName()); - - for(int i = 0; i < 2; i++) - if(outF[i] != null) - list.add(outF[i].fill + "mB " + I18n.format(outF[i].type.getUnlocalizedName())); - - list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_in_p")); - - if(stacks != null) - for(int i = 0; i < stacks.size(); i++) - list.add(stacks.get(i).stackSize + "x " + stacks.get(i).getDisplayName()); - - for(int i = 0; i < 2; i++) - if(inF[i] != null) - list.add(inF[i].fill + "mB " + I18n.format(inF[i].type.getUnlocalizedName())); - - list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_time")); - list.add(Math.floor((float)(getProcessTime(stack)) / 20 * 100) / 100 + " " + I18nUtil.resolveKey("info.template_seconds")); - } catch(Exception e) { - list.add("###INVALID###"); - list.add("0x334077-0x6A298F-0xDF3795-0x334077"); - } + try { + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_out_p")); + for(int i = 0; i < 4; i++) + if(out[i] != null) + list.add(out[i].stackSize + "x " + out[i].getDisplayName()); + + for(int i = 0; i < 2; i++) + if(outF[i] != null) + list.add(outF[i].fill + "mB " + I18n.format(outF[i].type.getUnlocalizedName())); + + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_in_p")); + + if(stacks != null) + for(int i = 0; i < stacks.size(); i++) + list.add(stacks.get(i).stackSize + "x " + stacks.get(i).getDisplayName()); + + for(int i = 0; i < 2; i++) + if(inF[i] != null) + list.add(inF[i].fill + "mB " + I18n.format(inF[i].type.getUnlocalizedName())); + + list.add(EnumChatFormatting.BOLD + I18nUtil.resolveKey("info.template_time")); + list.add(Math.floor((float) (getProcessTime(stack)) / 20 * 100) / 100 + " " + I18nUtil.resolveKey("info.template_seconds")); + } catch(Exception e) { + list.add("###INVALID###"); + list.add("0x334077-0x6A298F-0xDF3795-0x334077"); + } } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java index 060521c31..865a1d561 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -3,10 +3,12 @@ package com.hbm.tileentity.machine.oil; import java.util.ArrayList; import java.util.List; +import com.hbm.interfaces.IControlReceiver; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidContainerRegistry; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; @@ -15,6 +17,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.Library; import com.hbm.packet.PacketDispatcher; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.Tuple.Quintet; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; @@ -28,8 +31,9 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; -public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource { +public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource, IControlReceiver { public long power = 0; public int sulfur = 0; @@ -174,6 +178,56 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements this.power = nbt.getLong("power"); } + private void refine() { + Quintet refinery = RefineryRecipes.getRefinery(tanks[0].getTankType()); + + if(refinery == null) //usually not possible + return; + + FluidStack[] stacks = new FluidStack[] {refinery.getV(), refinery.getW(), refinery.getX(), refinery.getY()}; + + for(int i = 0; i < stacks.length; i++) + tanks[i + 1].setTankType(stacks[i].type); + + if(power < 5 || tanks[0].getFill() < 100) + return; + + for(int i = 0; i < stacks.length; i++) { + if(tanks[i + 1].getFill() + stacks[i].fill > tanks[i + 1].getMaxFill()) { + return; + } + } + + tanks[0].setFill(tanks[0].getFill() - 100); + + for(int i = 0; i < stacks.length; i++) + tanks[i + 1].setFill(tanks[i + 1].getFill() + stacks[i].fill); + + this.sulfur++; + + if(this.sulfur >= maxSulfur) { + this.sulfur -= maxSulfur; + + ItemStack out = refinery.getZ(); + + if(out != null) { + + if(slots[11] == null) { + slots[11] = out.copy(); + } else { + + if(out.getItem() == slots[11].getItem() && out.getItemDamage() == slots[11].getItemDamage() && slots[11].stackSize + out.stackSize <= slots[11].getMaxStackSize()) { + slots[11].stackSize += out.stackSize; + } + } + } + + this.markDirty(); + } + + this.power -= 5; + } + private void updateConnections() { this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord + 1, Library.POS_X); this.trySubscribe(worldObj, xCoord + 2, yCoord, zCoord - 1, Library.POS_X); @@ -310,4 +364,22 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements public double getMaxRenderDistanceSquared() { return 65536.0D; } + + @Override + public boolean hasPermission(EntityPlayer player) { + return Vec3.createVectorHelper(xCoord - player.posX, yCoord - player.posY, zCoord - player.posZ).lengthVector() < 25; + } + + @Override + public void receiveControl(NBTTagCompound data) { + + if(data.hasKey("toggle")) { + + if(tanks[0].getTankType() == Fluids.HOTOIL) { + tanks[0].setTankType(Fluids.HOTCRACKOIL); + } else { + tanks[0].setTankType(Fluids.HOTOIL); + } + } + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 50433c716..d1f2857f8 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -286,19 +286,15 @@ public abstract class TileEntityOilDrillBase extends TileEntityMachineBase imple @Override public List getFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return this.list1; - if(type.name().equals(tanks[1].getTankType().name())) - return this.list2; + if(type == tanks[0].getTankType()) return this.list1; + if(type == tanks[1].getTankType()) return this.list2; return new ArrayList(); } @Override public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[1].getTankType().name())) - list2.clear(); + if(type == tanks[0].getTankType()) list1.clear(); + if(type == tanks[1].getTankType()) list2.clear(); } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 40134fb9f..54194c347 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -503,6 +503,7 @@ hbmfluid.plasma_ht=Wasserstoff-Tritium-Plasma hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl +hbmfluid.salient=Saftiges Grün hbmfluid.sas3=Schrabidiumtrisulfat hbmfluid.schrabidic=Schrabidische Säure hbmfluid.smear=Industrieöl @@ -854,6 +855,7 @@ item.billet_zfb_am_mix.name=Reaktorfähiges ZFB-Billet item.billet_zfb_bismuth.name=Bismut ZFB-Billet item.billet_zfb_pu241.name=Pu-241 ZFB-Billet item.billet_zirconium.name=Zirkoniumbillet +item.bio_wafer.name=Algenwaffel item.biomass.name=Biomasse item.biomass_compressed.name=Verdichtete Biomasse item.bismuth_pickaxe.name=Bismutspitzhacke diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 508ec94b3..e2ca24333 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -657,6 +657,7 @@ hbmfluid.plasma_ht=Hydrogen-Tritium Plasma hbmfluid.plasma_xm=Xenon-Mercury Plasma hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.salient=Salient Green hbmfluid.sas3=Schrabidium Trisulfide hbmfluid.schrabidic=Schrabidic Acid hbmfluid.smear=Industrial Oil @@ -1020,6 +1021,7 @@ item.billet_zfb_am_mix.name=Reactor Grade Americium ZFB Billet item.billet_zfb_bismuth.name=Bismuth ZFB Billet item.billet_zfb_pu241.name=Pu-241 ZFB Billet item.billet_zirconium.name=Zirconium Billet +item.bio_wafer.name=Algae Wafer item.biomass.name=Biomass item.biomass_compressed.name=Compressed Biomass item.bismuth_pickaxe.name=Bismuth Pickaxe diff --git a/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png index 3ada7e8b8..752d061e5 100644 Binary files a/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png and b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png differ diff --git a/src/main/resources/assets/hbm/textures/items/bio_wafer.png b/src/main/resources/assets/hbm/textures/items/bio_wafer.png new file mode 100644 index 000000000..b25196961 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/items/bio_wafer.png differ