diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java index 86cf6a951..cd3b03b38 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineRefinery.java @@ -28,9 +28,9 @@ public class ContainerMachineRefinery extends Container { this.addSlotToContainer(new Slot(tedf, 3, 80, 90)); //Heavy Oil Output this.addSlotToContainer(new SlotMachineOutput(tedf, 4, 80, 108)); - //Nahptha Input + //Naphtha Input this.addSlotToContainer(new Slot(tedf, 5, 98, 90)); - //Nahptha Output + //Naphtha Output this.addSlotToContainer(new SlotMachineOutput(tedf, 6, 98, 108)); //Light Oil Input this.addSlotToContainer(new Slot(tedf, 7, 116, 90)); diff --git a/src/main/java/com/hbm/inventory/fluid/Fluids.java b/src/main/java/com/hbm/inventory/fluid/Fluids.java index 523522dfd..286b81c7e 100644 --- a/src/main/java/com/hbm/inventory/fluid/Fluids.java +++ b/src/main/java/com/hbm/inventory/fluid/Fluids.java @@ -97,13 +97,18 @@ public class Fluids { public static FluidType COALCREOSOTE; public static FluidType SEEDSLURRY; public static FluidType NITRIC_ACID; - public static FluidType SOLVENT; //oranic solvent in fact - public static FluidType BLOOD; //BLOOD ORB! BLOOD ORB! BLOOD ORB! + public static FluidType SOLVENT; //oranic solvent in fact + public static FluidType BLOOD; //BLOOD ORB! BLOOD ORB! BLOOD ORB! public static FluidType BLOOD_HOT; public static FluidType SYNGAS; public static FluidType OXYHYDROGEN; public static FluidType RADIOSOLVENT; - public static FluidType CHLORINE; //everone's favorite! + public static FluidType CHLORINE; //everone's favorite! + public static FluidType HEAVYOIL_VACUUM; + public static FluidType REFORMATE; + public static FluidType LIGHTOIL_VACUUM; + public static FluidType SOURGAS; + public static FluidType XYLENE; private static final HashMap idMapping = new HashMap(); private static final HashMap nameMapping = new HashMap(); @@ -223,7 +228,12 @@ public class Fluids { SYNGAS = new FluidType("SYNGAS", 0x131313, 1, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); OXYHYDROGEN = new FluidType("OXYHYDROGEN", 0x483FC1, 0, 4, 2, EnumSymbol.NONE).addTraits(GASEOUS); RADIOSOLVENT = new FluidType("RADIOSOLVENT", 0xA4D7DD, 3, 3, 0, EnumSymbol.NONE).addTraits(LIQUID, LEADCON, new FT_Corrosive(50), new FT_VentRadiation(0.01F)); - CHLORINE = new FluidType(89, "CHLORINE", 0xBAB572, 4, 0, 0, EnumSymbol.OXIDIZER).addTraits(GASEOUS, new FT_Corrosive(25), new FT_Poison(true, 1)); + CHLORINE = new FluidType("CHLORINE", 0xBAB572, 4, 0, 0, EnumSymbol.OXIDIZER).addTraits(GASEOUS, new FT_Corrosive(25), new FT_Poison(true, 1)); + HEAVYOIL_VACUUM = new FluidType("HEAVYOIL_VACUUM", 0x131214, 2, 1, 0, EnumSymbol.NONE).addTraits(LIQUID); + REFORMATE = new FluidType("REFORMATE", 0x835472, 2, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); + LIGHTOIL_VACUUM = new FluidType("LIGHTOIL_VACUUM", 0x8C8851, 1, 2, 0, EnumSymbol.NONE).addTraits(LIQUID); + SOURGAS = new FluidType("SOURGAS", 0xC9BE0D, 4, 4, 0, EnumSymbol.ACID).addTraits(GASEOUS, new FT_Corrosive(10)); + XYLENE = new FluidType(94, "XYLENE", 0x5C4E76, 2, 3, 0, EnumSymbol.NONE).addTraits(LIQUID); // ^ ^ ^ ^ ^ ^ ^ ^ @@ -268,10 +278,13 @@ public class Fluids { metaOrder.add(HOTOIL); metaOrder.add(HOTCRACKOIL); metaOrder.add(HEAVYOIL); + metaOrder.add(HEAVYOIL_VACUUM); metaOrder.add(NAPHTHA); metaOrder.add(NAPHTHA_CRACK); + metaOrder.add(REFORMATE); metaOrder.add(LIGHTOIL); metaOrder.add(LIGHTOIL_CRACK); + metaOrder.add(LIGHTOIL_VACUUM); metaOrder.add(BITUMEN); metaOrder.add(SMEAR); metaOrder.add(HEATINGOIL); @@ -279,11 +292,13 @@ public class Fluids { metaOrder.add(LUBRICANT); metaOrder.add(GAS); metaOrder.add(PETROLEUM); + metaOrder.add(SOURGAS); metaOrder.add(LPG); metaOrder.add(SYNGAS); metaOrder.add(OXYHYDROGEN); metaOrder.add(AROMATICS); metaOrder.add(UNSATURATEDS); + metaOrder.add(XYLENE); metaOrder.add(DIESEL); metaOrder.add(DIESEL_CRACK); metaOrder.add(KEROSENE); diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineVacuumDistill.java b/src/main/java/com/hbm/inventory/gui/GUIMachineVacuumDistill.java index ccc063692..c8f7ab740 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineVacuumDistill.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineVacuumDistill.java @@ -40,7 +40,7 @@ public class GUIMachineVacuumDistill extends GuiInfoContainer { protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.refinery.hasCustomInventoryName() ? this.refinery.getInventoryName() : I18n.format(this.refinery.getInventoryName()); - this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 6, 0xffffff); + this.fontRendererObj.drawString(name, this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, 5, 0xffffff); this.fontRendererObj.drawString(I18n.format("container.inventory"), 8, this.ySize - 96 + 2, 4210752); } @@ -51,9 +51,9 @@ public class GUIMachineVacuumDistill extends GuiInfoContainer { drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); int j = (int) (refinery.power * 54 / refinery.maxPower); - drawTexturedModalRect(guiLeft + 8, guiTop + 70 - j, 176, 52 - j, 16, j); + drawTexturedModalRect(guiLeft + 26, guiTop + 70 - j, 176, 52 - j, 16, j); - refinery.tanks[0].renderTank(guiLeft + 26, guiTop + 70, this.zLevel, 34, 52); + refinery.tanks[0].renderTank(guiLeft + 44, guiTop + 70, this.zLevel, 16, 52); refinery.tanks[1].renderTank(guiLeft + 80, guiTop + 70, this.zLevel, 16, 52); refinery.tanks[2].renderTank(guiLeft + 98, guiTop + 70, this.zLevel, 16, 52); refinery.tanks[3].renderTank(guiLeft + 116, guiTop + 70, this.zLevel, 16, 52); diff --git a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java index 4283ffccc..310914410 100644 --- a/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/FractionRecipes.java @@ -36,6 +36,8 @@ public class FractionRecipes extends SerializableRecipe { public static final int coal_frac_oil = 70; public static final int creo_frac_coaloil = 10; public static final int creo_frac_bitu = 90; + public static final int reform_frac_arom = 40; + public static final int reform_frac_xyle = 60; private static Map> fractions = new HashMap(); @@ -49,6 +51,7 @@ public class FractionRecipes extends SerializableRecipe { fractions.put(Fluids.LIGHTOIL_CRACK, new Pair(new FluidStack(Fluids.KEROSENE, lcrack_frac_kero), new FluidStack(Fluids.PETROLEUM, lcrack_frac_petro))); fractions.put(Fluids.COALOIL, new Pair(new FluidStack(Fluids.COALGAS, coal_frac_coalgas), new FluidStack(Fluids.OIL, coal_frac_oil))); fractions.put(Fluids.COALCREOSOTE, new Pair(new FluidStack(Fluids.COALOIL, creo_frac_coaloil), new FluidStack(Fluids.BITUMEN, creo_frac_bitu))); + fractions.put(Fluids.REFORMATE, new Pair(new FluidStack(Fluids.AROMATICS, reform_frac_arom), new FluidStack(Fluids.XYLENE, reform_frac_xyle))); } public static Pair getFractions(FluidType oil) { diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index 0b61e4e37..e041649d6 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -344,6 +344,8 @@ public class ModItems { public static Item ingot_polymer; public static Item ingot_bakelite; public static Item ingot_rubber; + public static Item ingot_pet; + public static Item ingot_pvc; public static Item ingot_fiberglass; public static Item ingot_asbestos; @@ -1232,6 +1234,7 @@ public class ModItems { public static Item ballistite; public static Item ball_dynamite; public static Item ball_tnt; + public static Item ball_tatb; public static Item ball_fireclay; public static Item pellet_cluster; @@ -2818,6 +2821,8 @@ public class ModItems { ingot_polymer = new ItemCustomLore().setUnlocalizedName("ingot_polymer").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_polymer"); ingot_bakelite = new ItemCustomLore().setUnlocalizedName("ingot_bakelite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_bakelite"); ingot_rubber = new ItemCustomLore().setUnlocalizedName("ingot_rubber").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_rubber"); + ingot_pet = new ItemCustomLore().setUnlocalizedName("ingot_pet").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pet"); + ingot_pvc = new ItemCustomLore().setUnlocalizedName("ingot_pvc").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_pvc"); ingot_desh = new ItemCustomLore().setUnlocalizedName("ingot_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_desh"); nugget_desh = new ItemCustomLore().setUnlocalizedName("nugget_desh").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_desh"); ingot_dineutronium = new ItemCustomLore().setUnlocalizedName("ingot_dineutronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_dineutronium"); @@ -4058,6 +4063,7 @@ public class ModItems { ballistite = new Item().setUnlocalizedName("ballistite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ballistite"); ball_dynamite = new Item().setUnlocalizedName("ball_dynamite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_dynamite"); ball_tnt = new Item().setUnlocalizedName("ball_tnt").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_tnt"); + ball_tatb = new Item().setUnlocalizedName("ball_tatb").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_tatb"); ball_fireclay = new Item().setUnlocalizedName("ball_fireclay").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ball_fireclay"); pellet_gas = new ItemCustomLore().setUnlocalizedName("pellet_gas").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":pellet_gas"); magnetron = new ItemCustomLore().setUnlocalizedName("magnetron").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":magnetron_alt"); @@ -5908,6 +5914,8 @@ public class ModItems { GameRegistry.registerItem(ingot_polymer, ingot_polymer.getUnlocalizedName()); GameRegistry.registerItem(ingot_bakelite, ingot_bakelite.getUnlocalizedName()); GameRegistry.registerItem(ingot_rubber, ingot_rubber.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pet, ingot_pet.getUnlocalizedName()); + GameRegistry.registerItem(ingot_pvc, ingot_pvc.getUnlocalizedName()); GameRegistry.registerItem(ingot_schraranium, ingot_schraranium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidium, ingot_schrabidium.getUnlocalizedName()); GameRegistry.registerItem(ingot_schrabidate, ingot_schrabidate.getUnlocalizedName()); @@ -6148,6 +6156,7 @@ public class ModItems { GameRegistry.registerItem(ballistite, ballistite.getUnlocalizedName()); GameRegistry.registerItem(ball_dynamite, ball_dynamite.getUnlocalizedName()); GameRegistry.registerItem(ball_tnt, ball_tnt.getUnlocalizedName()); + GameRegistry.registerItem(ball_tatb, ball_tatb.getUnlocalizedName()); GameRegistry.registerItem(ball_fireclay, ball_fireclay.getUnlocalizedName()); //Ores diff --git a/src/main/java/com/hbm/render/entity/projectile/RenderChemical.java b/src/main/java/com/hbm/render/entity/projectile/RenderChemical.java index fc6fa00af..aa6fab526 100644 --- a/src/main/java/com/hbm/render/entity/projectile/RenderChemical.java +++ b/src/main/java/com/hbm/render/entity/projectile/RenderChemical.java @@ -1,6 +1,7 @@ package com.hbm.render.entity.projectile; import java.awt.Color; +import java.util.Random; import org.lwjgl.opengl.GL11; @@ -89,13 +90,18 @@ public class RenderChemical extends Render { Tessellator tess = Tessellator.instance; GL11.glRotatef(180.0F - this.renderManager.playerViewY, 0.0F, 1.0F, 0.0F); GL11.glRotatef(-this.renderManager.playerViewX, 1.0F, 0.0F, 0.0F); + + Random rand = new Random(chem.getEntityId()); + int i = rand.nextInt(2); + int j = rand.nextInt(2); + tess.startDrawingQuads(); tess.setNormal(0.0F, 1.0F, 0.0F); tess.setColorRGBA_I(color, (int) Math.max(127 * (1 - exp), 0)); - tess.addVertexWithUV(-size, -size, 0.0D, 1, 1); - tess.addVertexWithUV(size, -size, 0.0D, 0, 1); - tess.addVertexWithUV(size, size, 0.0D, 0, 0); - tess.addVertexWithUV(-size, size, 0.0D, 1, 0); + tess.addVertexWithUV(-size, -size, 0.0D, 1 - i, 1 - j); + tess.addVertexWithUV(size, -size, 0.0D, i, 1 - j); + tess.addVertexWithUV(size, size, 0.0D, i, j); + tess.addVertexWithUV(-size, size, 0.0D, 1 - i, j); tess.draw(); GL11.glDepthMask(true); diff --git a/src/main/java/com/hbm/render/tileentity/RenderCatalyticReformer.java b/src/main/java/com/hbm/render/tileentity/RenderCatalyticReformer.java index 3c7954f3c..bd66409ad 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderCatalyticReformer.java +++ b/src/main/java/com/hbm/render/tileentity/RenderCatalyticReformer.java @@ -4,16 +4,27 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; +import com.hbm.items.ModItems; +import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.item.ItemRenderBase; +import com.hbm.render.util.HorsePronter; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.IItemRenderer; public class RenderCatalyticReformer extends TileEntitySpecialRenderer implements IItemRendererProvider { + private static ResourceLocation extra = new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png"); + @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float f) { @@ -34,6 +45,37 @@ public class RenderCatalyticReformer extends TileEntitySpecialRenderer implement ResourceManager.catalytic_reformer.renderAll(); GL11.glShadeModel(GL11.GL_FLAT); + /// rapidly spinning dicks /// + GL11.glTranslated(-1.125, 1.375, 1); + double s = 0.125D; + GL11.glScaled(s, s, s); + GL11.glRotated(System.currentTimeMillis() / 5D % 360D, 0, -1, 0); + GL11.glTranslated(0, 0.1, -0.5); + + this.bindTexture(extra); + HorsePronter.reset(); + double r = 60; + HorsePronter.pose(HorsePronter.id_body, 0, -r, 0); + HorsePronter.pose(HorsePronter.id_tail, 0, 45, 90); + HorsePronter.pose(HorsePronter.id_lbl, 0, -90 + r, 35); + HorsePronter.pose(HorsePronter.id_rbl, 0, -90 + r, -35); + HorsePronter.pose(HorsePronter.id_lfl, 0, r - 10, 5); + HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5); + HorsePronter.pose(HorsePronter.id_head, 0, r, 0); + HorsePronter.enableHorn(); + HorsePronter.enableWings(); + HorsePronter.pront(); + + ItemStack stack = new ItemStack(ModItems.cigarette); + double scale = 0.25; + GL11.glTranslated(0.02, 1.13, -0.42); + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(60, 0, 0, -1); + bindTexture(TextureMap.locationItemsTexture); + IIcon icon = stack.getIconIndex(); + ItemRenderer.renderItemIn2D(Tessellator.instance, icon.getMaxU(), icon.getMinV(), icon.getMinU(), icon.getMaxV(), icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } @@ -47,8 +89,8 @@ public class RenderCatalyticReformer extends TileEntitySpecialRenderer implement public IItemRenderer getRenderer() { return new ItemRenderBase() { public void renderInventory() { - GL11.glTranslated(0, -4, 0); - GL11.glScaled(3, 3, 3); + GL11.glTranslated(0, -3, 0); + GL11.glScaled(3.5, 3.5, 3.5); } public void renderCommon() { GL11.glScaled(0.5, 0.5, 0.5); diff --git a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java index 89465b88b..26a0d0625 100644 --- a/src/main/java/com/hbm/render/tileentity/RendererObjTester.java +++ b/src/main/java/com/hbm/render/tileentity/RendererObjTester.java @@ -6,12 +6,19 @@ import org.lwjgl.BufferUtils; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; +import com.hbm.items.ModItems; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.util.HorsePronter; + +import net.minecraft.client.renderer.ItemRenderer; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.IIcon; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.model.AdvancedModelLoader; import net.minecraftforge.client.model.IModelCustom; @@ -35,8 +42,9 @@ public class RendererObjTester extends TileEntitySpecialRenderer { GL11.glPushMatrix(); GL11.glTranslated(x + 0.5, y, z + 0.5); GL11.glEnable(GL11.GL_LIGHTING); - - this.bindTexture(HorsePronter.tex_demohorse); + + GL11.glTranslated(0, 0, 0.75); + this.bindTexture(new ResourceLocation(RefStrings.MODID, "textures/models/horse/dyx.png")); HorsePronter.reset(); //HorsePronter.pose(HorsePronter.id_lfl, 0, System.currentTimeMillis() % 360 / 10D, 0); double r = 60; @@ -48,8 +56,23 @@ public class RendererObjTester extends TileEntitySpecialRenderer { HorsePronter.pose(HorsePronter.id_rfl, 0, r - 10, -5); HorsePronter.pose(HorsePronter.id_head, 0, r, 0); HorsePronter.enableHorn(); + HorsePronter.enableWings(); HorsePronter.pront(); + ItemStack stack = new ItemStack(ModItems.cigarette); + double scale = 0.25; + GL11.glTranslated(0.02, 1.13, -0.42); + GL11.glScaled(scale, scale, scale); + GL11.glRotated(90, 0, -1, 0); + GL11.glRotated(60, 0, 0, -1); + bindTexture(TextureMap.locationItemsTexture); + IIcon icon = stack.getIconIndex(); + float f14 = icon.getMinU(); + float f15 = icon.getMaxU(); + float f4 = icon.getMinV(); + float f5 = icon.getMaxV(); + ItemRenderer.renderItemIn2D(Tessellator.instance, f15, f4, f14, f5, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/util/HorsePronter.java b/src/main/java/com/hbm/render/util/HorsePronter.java index e47629125..6cba0146c 100644 --- a/src/main/java/com/hbm/render/util/HorsePronter.java +++ b/src/main/java/com/hbm/render/util/HorsePronter.java @@ -71,6 +71,17 @@ public class HorsePronter { enableWings(); } + public static void poseStandardSit() { + double r = 60; + pose(HorsePronter.id_body, 0, -r, 0); + pose(HorsePronter.id_tail, 0, 45, 90); + pose(HorsePronter.id_lbl, 0, -90 + r, 35); + pose(HorsePronter.id_rbl, 0, -90 + r, -35); + pose(HorsePronter.id_lfl, 0, r - 10, 5); + pose(HorsePronter.id_rfl, 0, r - 10, -5); + pose(HorsePronter.id_head, 0, r, 0); + } + public static void pose(int id, double yaw, double pitch, double roll) { pose[id].xCoord = yaw; pose[id].yCoord = pitch; @@ -80,6 +91,7 @@ public class HorsePronter { public static void pront() { GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_CULL_FACE); doTransforms(id_body); horse.renderPart("Body"); @@ -100,7 +112,8 @@ public class HorsePronter { horse.renderPart("LeftWing"); horse.renderPart("RightWing"); } - + + GL11.glEnable(GL11.GL_CULL_FACE); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java index 98264f867..da23b73fe 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineVacuumDistill.java @@ -1,11 +1,15 @@ package com.hbm.tileentity.machine.oil; import com.hbm.inventory.container.ContainerMachineVacuumDistill; +import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.gui.GUIMachineVacuumDistill; +import com.hbm.lib.Library; import com.hbm.tileentity.IGUIProvider; +import com.hbm.tileentity.IPersistentNBT; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.util.fauxpointtwelve.DirPos; import api.hbm.energy.IEnergyUser; import api.hbm.fluid.IFluidStandardTransceiver; @@ -14,10 +18,12 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.AxisAlignedBB; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; -public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IGUIProvider { +public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implements IEnergyUser, IFluidStandardTransceiver, IPersistentNBT, IGUIProvider { public long power; public static final long maxPower = 1_000_000; @@ -29,10 +35,10 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem this.tanks = new FluidTank[5]; this.tanks[0] = new FluidTank(Fluids.OIL, 64_000); - this.tanks[1] = new FluidTank(Fluids.HEAVYOIL, 24_000); - this.tanks[2] = new FluidTank(Fluids.NAPHTHA, 24_000); - this.tanks[3] = new FluidTank(Fluids.LIGHTOIL, 24_000); - this.tanks[4] = new FluidTank(Fluids.PETROLEUM, 24_000); + this.tanks[1] = new FluidTank(Fluids.HEAVYOIL_VACUUM, 24_000); + this.tanks[2] = new FluidTank(Fluids.REFORMATE, 24_000); + this.tanks[3] = new FluidTank(Fluids.LIGHTOIL_VACUUM, 24_000); + this.tanks[4] = new FluidTank(Fluids.SOURGAS, 24_000); } @Override @@ -43,6 +49,99 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem @Override public void updateEntity() { + if(!worldObj.isRemote) { + + this.updateConnections(); + power = Library.chargeTEFromItems(slots, 0, power, maxPower); + tanks[0].loadTank(1, 2, slots); + + refine(); + + tanks[1].unloadTank(3, 4, slots); + tanks[2].unloadTank(5, 6, slots); + tanks[3].unloadTank(7, 8, slots); + tanks[4].unloadTank(9, 10, slots); + + for(DirPos pos : getConPos()) { + for(int i = 1; i < 5; i++) { + if(tanks[i].getFill() > 0) { + this.sendFluid(tanks[i].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + } + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", this.power); + for(int i = 0; i < 5; i++) tanks[i].writeToNBT(data, "" + i); + this.networkPack(data, 150); + } + } + + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + for(int i = 0; i < 5; i++) tanks[i].readFromNBT(nbt, "" + i); + } + + private void refine() { + + if(power < 10_000) return; + if(tanks[0].getFill() < 100) return; + if(tanks[1].getFill() + 40 > tanks[1].getMaxFill()) return; + if(tanks[2].getFill() + 25 > tanks[2].getMaxFill()) return; + if(tanks[3].getFill() + 15 > tanks[3].getMaxFill()) return; + if(tanks[4].getFill() + 10 > tanks[4].getMaxFill()) return; + + power -= 10_000; + tanks[0].setFill(tanks[0].getFill() - 100); + tanks[1].setFill(tanks[1].getFill() + 40); + tanks[2].setFill(tanks[2].getFill() + 25); + tanks[3].setFill(tanks[3].getFill() + 15); + tanks[4].setFill(tanks[4].getFill() + 10); + } + + private void updateConnections() { + for(DirPos pos : getConPos()) { + this.trySubscribe(worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + this.trySubscribe(tanks[0].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); + } + } + + public DirPos[] getConPos() { + return new DirPos[] { + new DirPos(xCoord + 2, yCoord, zCoord + 1, 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 - 1, Library.NEG_X), + new DirPos(xCoord + 1, 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 - 1, yCoord, zCoord - 2, Library.NEG_Z) + }; + } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + power = nbt.getLong("power"); + tanks[0].readFromNBT(nbt, "input"); + tanks[1].readFromNBT(nbt, "heavy"); + tanks[2].readFromNBT(nbt, "naphtha"); + tanks[3].readFromNBT(nbt, "light"); + tanks[4].readFromNBT(nbt, "petroleum"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + nbt.setLong("power", power); + tanks[0].writeToNBT(nbt, "input"); + tanks[1].writeToNBT(nbt, "heavy"); + tanks[2].writeToNBT(nbt, "naphtha"); + tanks[3].writeToNBT(nbt, "light"); + tanks[4].writeToNBT(nbt, "petroleum"); } AxisAlignedBB bb = null; @@ -87,17 +186,36 @@ public class TileEntityMachineVacuumDistill extends TileEntityMachineBase implem @Override public FluidTank[] getAllTanks() { - return null; + return tanks; } @Override public FluidTank[] getSendingTanks() { - return null; + return new FluidTank[] {tanks[1], tanks[2], tanks[3], tanks[4]}; } @Override public FluidTank[] getReceivingTanks() { - return null; + return new FluidTank[] {tanks[0]}; + } + + @Override + public boolean canConnect(FluidType type, ForgeDirection dir) { + return dir != ForgeDirection.UNKNOWN && dir != ForgeDirection.DOWN; + } + + @Override + public void writeNBT(NBTTagCompound nbt) { + if(tanks[0].getFill() == 0 && tanks[1].getFill() == 0 && tanks[2].getFill() == 0 && tanks[3].getFill() == 0 && tanks[4].getFill() == 0) return; + NBTTagCompound data = new NBTTagCompound(); + for(int i = 0; i < 5; i++) this.tanks[i].writeToNBT(data, "" + i); + nbt.setTag(NBT_PERSISTENT_KEY, data); + } + + @Override + public void readNBT(NBTTagCompound nbt) { + NBTTagCompound data = nbt.getCompoundTag(NBT_PERSISTENT_KEY); + for(int i = 0; i < 5; i++) this.tanks[i].readFromNBT(data, "" + i); } @Override diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index d6cae8c05..f633106c1 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -403,6 +403,7 @@ container.turretRichard=Richard container.turretSentry=Brown container.turretTauon=Tauon container.uf6_tank=UF6 Tank +container.vacuumDistill=Vakuumraffinerie container.wasteDrum=Abklingbecken-Trommel container.watzPowerplant=Watzkraftwerk container.zirnox=ZIRNOX Atomreaktor @@ -611,6 +612,7 @@ hbmfluid.gasoline=Benzin hbmfluid.gasoline_leaded=Bleibenzin hbmfluid.heatingoil=Heizöl hbmfluid.heavyoil=Schweröl +hbmfluid.heavyoil_vacuum=Vakuum-Schweröl hbmfluid.heavywater=Schweres Wasser hbmfluid.helium3=Helium-3 hbmfluid.hotcrackoil=Heißes Crack-Öl @@ -621,6 +623,7 @@ hbmfluid.kerosene=Kerosin hbmfluid.lava=Lava hbmfluid.lightoil=Leichtöl hbmfluid.lightoil_crack=Crack-Leichtöl +hbmfluid.lightoil_vacuum=Vakuum-Leichtöl hbmfluid.lpg=LPG hbmfluid.lubricant=Schmiermittel hbmfluid.mercury=Quecksilber @@ -647,12 +650,14 @@ hbmfluid.plasma_xm=Xenon-Quecksilber-Plasma hbmfluid.puf6=Plutoniumhexafluorid hbmfluid.radiosolvent=Hochleistungs-Lösungsmittel hbmfluid.reclaimed=Wiederaufbetreitetes Industrieöl +hbmfluid.reformate=Reformat hbmfluid.salient=Saftiges Grün hbmfluid.sas3=Schrabidiumtrisulfat hbmfluid.schrabidic=Schrabidische Säure hbmfluid.seedslurry=Saatgemisch hbmfluid.smear=Industrieöl hbmfluid.solvent=Lösungsmittel +hbmfluid.sourgas=Saures Gas hbmfluid.spentsteam=Niedrigdruckdampf hbmfluid.steam=Dampf hbmfluid.sulfuric_acid=Schwefelsäure @@ -669,6 +674,7 @@ hbmfluid.watz=Giftiger Schlamm hbmfluid.woodoil=Holzöl hbmfluid.xenon=Xenongas hbmfluid.xpjuice=Erfahrungssaft +hbmfluid.xylene=BTX hbmmat.actinium227=Actinium-227 hbmmat.advancedalloy=Fortgeschrittene Legierung @@ -3885,6 +3891,7 @@ tile.machine_turbine.desc=Effizienz: 85%% tile.machine_turbinegas.name=Kombizyklus-Gasturbine tile.machine_turbofan.name=Turbofan tile.machine_uf6_tank.name=Uranhexafluorid-Tank +tile.machine_vacuum_distill.name=Vakuumraffinerie tile.machine_waste_drum.name=Abklingbecken-Trommel tile.machine_well.name=Ölbohrturm tile.machine_zirnox.name=ZIRNOX Atomreaktor diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index eb33e007e..3975e38c3 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -684,6 +684,7 @@ container.turretRichard=Richard container.turretSentry=Brown container.turretTauon=Tauon container.uf6_tank=UF6 Tank +container.vacuumDistill=Vacuum Refinery container.wasteDrum=Spent Fuel Pool Drum container.watzPowerplant=Watz Power Plant container.zirnox=ZIRNOX Nuclear Reactor @@ -1168,6 +1169,7 @@ hbmfluid.gasoline=Gasoline hbmfluid.gasoline_leaded=Leaded Gasoline hbmfluid.heatingoil=Heating Oil hbmfluid.heavyoil=Heavy Oil +hbmfluid.heavyoil_vacuum=Vacuum Heavy Oil hbmfluid.heavywater=Heavy Water hbmfluid.helium3=Helium-3 hbmfluid.hotcrackoil=Hot Cracked Oil @@ -1178,6 +1180,7 @@ hbmfluid.kerosene=Kerosene hbmfluid.lava=Lava hbmfluid.lightoil=Light Oil hbmfluid.lightoil_crack=Cracked Light Oil +hbmfluid.lightoil_vacuum=Vacuum Light Oil hbmfluid.lpg=LPG hbmfluid.lubricant=Engine Lubricant hbmfluid.mercury=Mercury @@ -1204,12 +1207,14 @@ hbmfluid.plasma_xm=Xenon-Mercury Plasma hbmfluid.puf6=Plutonium Hexafluoride hbmfluid.radiosolvent=High-Performance Solvent hbmfluid.reclaimed=Reclaimed Industrial Oil +hbmfluid.reformate=Reformate hbmfluid.salient=Salient Green hbmfluid.sas3=Schrabidium Trisulfide hbmfluid.schrabidic=Schrabidic Acid hbmfluid.seedslurry=Seeding Slurry hbmfluid.smear=Industrial Oil hbmfluid.solvent=Solvent +hbmfluid.sourgas=Sour Gas hbmfluid.spentsteam=Low-Pressure Steam hbmfluid.steam=Steam hbmfluid.sulfuric_acid=Sulfuric Acid @@ -1226,6 +1231,7 @@ hbmfluid.watz=Poisonous Mud hbmfluid.woodoil=Wood Oil hbmfluid.xenon=Xenon Gas hbmfluid.xpjuice=Experience Juice +hbmfluid.xylene=BTX hbmpseudofluid.none=Empty hbmpseudofluid.heuf6=Highly Enriched UF6 hbmpseudofluid.meuf6=Medium Enriched UF6 @@ -4690,6 +4696,7 @@ tile.machine_turbine.desc=Efficiency: 85%% tile.machine_turbinegas.name=Combined Cycle Gas Turbine tile.machine_turbofan.name=Turbofan tile.machine_uf6_tank.name=Uranium Hexafluoride Tank +tile.machine_vacuum_distill.name=Vacuum Refinery tile.machine_waste_drum.name=Spent Fuel Pool Drum tile.machine_well.name=Oil Derrick tile.machine_zirnox.name=ZIRNOX Nuclear Reactor diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/heavyoil_vacuum.png b/src/main/resources/assets/hbm/textures/gui/fluids/heavyoil_vacuum.png new file mode 100644 index 000000000..3e45bcf23 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/heavyoil_vacuum.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/lightoil_vacuum.png b/src/main/resources/assets/hbm/textures/gui/fluids/lightoil_vacuum.png new file mode 100644 index 000000000..802366ffd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/lightoil_vacuum.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/oil_base.png b/src/main/resources/assets/hbm/textures/gui/fluids/oil_base.png new file mode 100644 index 000000000..abac952dd Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/oil_base.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/reformate.png b/src/main/resources/assets/hbm/textures/gui/fluids/reformate.png new file mode 100644 index 000000000..66331b83c Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/reformate.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/sourgas.png b/src/main/resources/assets/hbm/textures/gui/fluids/sourgas.png new file mode 100644 index 000000000..53f031651 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/sourgas.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/xylene.png b/src/main/resources/assets/hbm/textures/gui/fluids/xylene.png new file mode 100644 index 000000000..55087f5fe Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/fluids/xylene.png differ diff --git a/src/main/resources/assets/hbm/textures/models/horse/dyx.png b/src/main/resources/assets/hbm/textures/models/horse/dyx.png new file mode 100644 index 000000000..ae9a19bd9 Binary files /dev/null and b/src/main/resources/assets/hbm/textures/models/horse/dyx.png differ diff --git a/src/main/resources/assets/hbm/textures/models/machines/catalytic_reformer.png b/src/main/resources/assets/hbm/textures/models/machines/catalytic_reformer.png index a45ab3425..137dd08b4 100644 Binary files a/src/main/resources/assets/hbm/textures/models/machines/catalytic_reformer.png and b/src/main/resources/assets/hbm/textures/models/machines/catalytic_reformer.png differ