From 274262436de6e5bbecea6565cdbdebd29cb4bf60 Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 7 Feb 2022 11:01:33 +0100 Subject: [PATCH 1/8] updated some petrochemistry recipe handling --- .../com/hbm/crafting/SmeltingRecipes.java | 1 + .../java/com/hbm/inventory/FluidStack.java | 5 + .../hbm/inventory/gui/GUIMachineRefinery.java | 2 +- .../recipes/LiquefactionRecipes.java | 4 + .../inventory/recipes/RadiolysisRecipes.java | 17 +- .../inventory/recipes/RefineryRecipes.java | 95 ++++--- .../recipes/SolidificationRecipes.java | 2 + src/main/java/com/hbm/lib/Library.java | 7 - .../machine/TileEntityMachineChemplant.java | 19 +- .../TileEntityMachineCatalyticCracker.java | 26 +- .../oil/TileEntityMachineFractionTower.java | 28 +- .../oil/TileEntityMachineRefinery.java | 252 ++++-------------- src/main/java/com/hbm/util/ItemStackUtil.java | 7 + src/main/java/com/hbm/util/Tuple.java | 86 ++++++ .../gui/{ => processing}/gui_refinery.png | Bin 15 files changed, 243 insertions(+), 308 deletions(-) rename src/main/resources/assets/hbm/textures/gui/{ => processing}/gui_refinery.png (100%) diff --git a/src/main/java/com/hbm/crafting/SmeltingRecipes.java b/src/main/java/com/hbm/crafting/SmeltingRecipes.java index 69444a29c..496bf950d 100644 --- a/src/main/java/com/hbm/crafting/SmeltingRecipes.java +++ b/src/main/java/com/hbm/crafting/SmeltingRecipes.java @@ -82,6 +82,7 @@ public class SmeltingRecipes { GameRegistry.addSmelting(ModItems.powder_lithium, new ItemStack(ModItems.lithium), 1.0F); GameRegistry.addSmelting(ModItems.powder_dura_steel, new ItemStack(ModItems.ingot_dura_steel), 1.0F); GameRegistry.addSmelting(ModItems.powder_polymer, new ItemStack(ModItems.ingot_polymer), 1.0F); + GameRegistry.addSmelting(ModItems.powder_bakelite, new ItemStack(ModItems.ingot_bakelite), 1.0F); GameRegistry.addSmelting(ModItems.powder_lanthanium, new ItemStack(ModItems.ingot_lanthanium), 1.0F); GameRegistry.addSmelting(ModItems.powder_actinium, new ItemStack(ModItems.ingot_actinium), 1.0F); GameRegistry.addSmelting(ModItems.powder_boron, new ItemStack(ModItems.ingot_boron), 1.0F); diff --git a/src/main/java/com/hbm/inventory/FluidStack.java b/src/main/java/com/hbm/inventory/FluidStack.java index 7edcd5b44..f508ed0ab 100644 --- a/src/main/java/com/hbm/inventory/FluidStack.java +++ b/src/main/java/com/hbm/inventory/FluidStack.java @@ -11,4 +11,9 @@ public class FluidStack { this.fill = fill; this.type = type; } + + public FluidStack(FluidType type, int fill) { + this.fill = fill; + this.type = type; + } } diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java index df5036107..154123c9a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineRefinery.java @@ -14,7 +14,7 @@ import net.minecraft.util.ResourceLocation; public class GUIMachineRefinery extends GuiInfoContainer { - private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_refinery.png"); + private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/processing/gui_refinery.png"); private TileEntityMachineRefinery refinery; public GUIMachineRefinery(InventoryPlayer invPlayer, TileEntityMachineRefinery tedf) { diff --git a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java index 673f5baa6..760a038bb 100644 --- a/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/LiquefactionRecipes.java @@ -9,6 +9,7 @@ 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.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import net.minecraft.init.Blocks; @@ -36,6 +37,9 @@ public class LiquefactionRecipes { recipes.put(new ComparableStack(Blocks.snow), new FluidStack(500, Fluids.WATER)); recipes.put(new ComparableStack(Blocks.ice), new FluidStack(1000, Fluids.WATER)); recipes.put(new ComparableStack(Blocks.packed_ice), new FluidStack(1000, Fluids.WATER)); + + recipes.put(new ComparableStack(Items.sugar), new FluidStack(150, Fluids.ETHANOL)); + recipes.put(new ComparableStack(ModItems.biomass), new FluidStack(250, Fluids.BIOGAS)); //TODO: more recipes as the crack oil derivatives are added } diff --git a/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java b/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java index fce717996..571082c2d 100644 --- a/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RadiolysisRecipes.java @@ -52,25 +52,14 @@ public class RadiolysisRecipes { //automatically add cracking recipes to the radiolysis recipe list //we want the numbers and types to stay consistent anyway and this will save us a lot of headache later on - Map> cracking = RefineryRecipes.getCrackingRecipes(); + Map> cracking = RefineryRecipes.getCrackingRecipes(); if(cracking.isEmpty()) { throw new IllegalStateException("RefineryRecipes.getCrackingRecipes has yielded an empty map while registering the radiolysis recipes! Either the load order is broken or cracking recipes have been removed!"); } - for(Entry> recipe : cracking.entrySet()) { - FluidType input = recipe.getKey(); - FluidType out1 = recipe.getValue().getW(); - FluidType out2 = recipe.getValue().getX(); - int amount1 = recipe.getValue().getY(); - int amount2 = recipe.getValue().getZ(); - - radiolysis.put(input, - new Pair( - new FluidStack(amount1, out1), - new FluidStack(amount2, out2) - ) - ); + for(Entry> recipe : cracking.entrySet()) { + radiolysis.put(recipe.getKey(), recipe.getValue()); } } diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index f1ef4e866..cdbd0bc2e 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -2,14 +2,19 @@ package com.hbm.inventory.recipes; import java.util.HashMap; import java.util.Map; +import java.util.Map.Entry; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.OreDictManager.DictFrame; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.items.ItemEnums.EnumTarType; import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; +import com.hbm.util.ItemStackUtil; +import com.hbm.util.Tuple.Pair; import com.hbm.util.Tuple.Quartet; +import com.hbm.util.Tuple.Quintet; import net.minecraft.item.ItemStack; @@ -54,69 +59,75 @@ public class RefineryRecipes { public static final int diesel_crack_petro = 30; public static final int kero_crack_petro = 60; - //why didn't i use fluid stacks here? was there a reason? - private static Map> fractions = new HashMap(); - private static Map> cracking = new HashMap(); + private static Map> refinery = new HashMap(); + private static Map> fractions = new HashMap(); + private static Map> cracking = new HashMap(); public static Map getRefineryRecipe() { Map recipes = new HashMap(); - recipes.put(ItemFluidIcon.make(Fluids.HOTOIL, 1000), - new ItemStack[] { - ItemFluidIcon.make(Fluids.HEAVYOIL, oil_frac_heavy * 10), - ItemFluidIcon.make(Fluids.NAPHTHA, oil_frac_naph * 10), - ItemFluidIcon.make(Fluids.LIGHTOIL, oil_frac_light * 10), - ItemFluidIcon.make(Fluids.PETROLEUM, oil_frac_petro * 10), - new ItemStack(ModItems.sulfur, 1) }); - - recipes.put(ItemFluidIcon.make(Fluids.HOTCRACKOIL, 1000), - new ItemStack[] { - ItemFluidIcon.make(Fluids.NAPHTHA_CRACK, crack_frac_naph * 10), - ItemFluidIcon.make(Fluids.LIGHTOIL_CRACK, crack_frac_light * 10), - ItemFluidIcon.make(Fluids.AROMATICS, crack_frac_aroma * 10), - ItemFluidIcon.make(Fluids.UNSATURATEDS, crack_frac_unsat * 10), - DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK) }); - - /*recipes.put(ItemFluidIcon.make(Fluids.HOTCRACKOIL, 1000), - new ItemStack[] { - ItemFluidIcon.make(Fluids.NAPHTHA_CRACK, oil_frac_heavy * 10), //fractionates into crack diesel and heating oil - ItemFluidIcon.make(Fluids.LIGHTOIL_CRACK, oil_frac_naph * 10), //fractionates into kerosene and petroleum - ItemFluidIcon.make(Fluids.AROMATICS, oil_frac_light * 10), //used for making bakelite and TNT - ItemFluidIcon.make(Fluids.UNSATURATEDS, oil_frac_petro * 10), //for bakelite and perhaps acetylene torches - DictFrame.fromOne(ModItems.coke, EnumCokeType.PETROLEUM) });*/ + for(Entry> recipe : refinery.entrySet()) { + + Quintet fluids = recipe.getValue(); + + recipes.put(ItemFluidIcon.make(recipe.getKey(), 1000), + new ItemStack[] { + ItemFluidIcon.make(fluids.getV().type, fluids.getV().fill * 10), + ItemFluidIcon.make(fluids.getW().type, fluids.getW().fill * 10), + ItemFluidIcon.make(fluids.getX().type, fluids.getX().fill * 10), + ItemFluidIcon.make(fluids.getY().type, fluids.getY().fill * 10), + ItemStackUtil.carefulCopy(fluids.getZ()) }); + } return recipes; } + public static void registerRefinery() { + refinery.put(Fluids.HOTOIL, new Quintet( + new FluidStack(Fluids.HEAVYOIL, oil_frac_heavy), + new FluidStack(Fluids.NAPHTHA, oil_frac_naph), + new FluidStack(Fluids.LIGHTOIL, oil_frac_light), + new FluidStack(Fluids.PETROLEUM, oil_frac_petro), + new ItemStack(ModItems.sulfur) + )); + refinery.put(Fluids.HOTCRACKOIL, new Quintet( + new FluidStack(Fluids.NAPHTHA_CRACK, crack_frac_naph), + new FluidStack(Fluids.LIGHTOIL_CRACK, crack_frac_light), + new FluidStack(Fluids.AROMATICS, crack_frac_aroma), + new FluidStack(Fluids.UNSATURATEDS, crack_frac_unsat), + DictFrame.fromOne(ModItems.oil_tar, EnumTarType.CRACK) + )); + } + public static void registerFractions() { - fractions.put(Fluids.HEAVYOIL, new Quartet(Fluids.BITUMEN, Fluids.SMEAR, heavy_frac_bitu, heavy_frac_smear)); - fractions.put(Fluids.SMEAR, new Quartet(Fluids.HEATINGOIL, Fluids.LUBRICANT, smear_frac_heat, smear_frac_lube)); - fractions.put(Fluids.NAPHTHA, new Quartet(Fluids.HEATINGOIL, Fluids.DIESEL, napht_frac_heat, napht_frac_diesel)); - fractions.put(Fluids.NAPHTHA_CRACK, new Quartet(Fluids.HEATINGOIL, Fluids.DIESEL_CRACK, ncrack_frac_heat, ncrack_frac_diesel)); - fractions.put(Fluids.LIGHTOIL, new Quartet(Fluids.DIESEL, Fluids.KEROSENE, light_frac_diesel, light_frac_kero)); - fractions.put(Fluids.LIGHTOIL_CRACK, new Quartet(Fluids.KEROSENE, Fluids.PETROLEUM, lcrack_frac_kero, lcrack_frac_petro)); - fractions.put(Fluids.COALOIL, new Quartet(Fluids.COALGAS, Fluids.GAS, coal_frac_coalgas, coal_frac_natgas)); + fractions.put(Fluids.HEAVYOIL, new Pair(new FluidStack(Fluids.BITUMEN, heavy_frac_bitu), new FluidStack(Fluids.SMEAR, heavy_frac_smear))); + fractions.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.HEATINGOIL, smear_frac_heat), new FluidStack(Fluids.LUBRICANT, smear_frac_lube))); + fractions.put(Fluids.NAPHTHA, new Pair(new FluidStack(Fluids.HEATINGOIL, napht_frac_heat), new FluidStack(Fluids.DIESEL, napht_frac_diesel))); + fractions.put(Fluids.NAPHTHA_CRACK, new Pair(new FluidStack(Fluids.HEATINGOIL, ncrack_frac_heat), new FluidStack(Fluids.DIESEL_CRACK, ncrack_frac_diesel))); + fractions.put(Fluids.LIGHTOIL, new Pair(new FluidStack(Fluids.DIESEL, light_frac_diesel), new FluidStack(Fluids.KEROSENE, light_frac_kero))); + 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.GAS, coal_frac_natgas))); } public static void registerCracking() { - cracking.put(Fluids.OIL, new Quartet(Fluids.CRACKOIL, Fluids.PETROLEUM, oil_crack_oil, oil_crack_petro)); - cracking.put(Fluids.BITUMEN, new Quartet(Fluids.OIL, Fluids.AROMATICS, bitumen_crack_oil, bitumen_crack_aroma)); - cracking.put(Fluids.SMEAR, new Quartet(Fluids.NAPHTHA, Fluids.PETROLEUM, smear_crack_napht, smear_crack_petro)); - cracking.put(Fluids.GAS, new Quartet(Fluids.PETROLEUM, Fluids.UNSATURATEDS, gas_crack_petro, gas_crack_unsat)); - cracking.put(Fluids.DIESEL, new Quartet(Fluids.KEROSENE, Fluids.PETROLEUM, diesel_crack_kero, diesel_crack_petro)); - cracking.put(Fluids.KEROSENE, new Quartet(Fluids.PETROLEUM, Fluids.NONE, kero_crack_petro, 0)); + cracking.put(Fluids.OIL, new Pair(new FluidStack(Fluids.CRACKOIL, oil_crack_oil), new FluidStack(Fluids.PETROLEUM, oil_crack_petro))); + cracking.put(Fluids.BITUMEN, new Pair(new FluidStack(Fluids.OIL, bitumen_crack_oil), new FluidStack(Fluids.AROMATICS, bitumen_crack_aroma))); + cracking.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.NAPHTHA, smear_crack_napht), new FluidStack(Fluids.PETROLEUM, smear_crack_petro))); + cracking.put(Fluids.GAS, new Pair(new FluidStack(Fluids.PETROLEUM, gas_crack_petro), new FluidStack(Fluids.UNSATURATEDS, gas_crack_unsat))); + cracking.put(Fluids.DIESEL, new Pair(new FluidStack(Fluids.KEROSENE, diesel_crack_kero), new FluidStack(Fluids.PETROLEUM, diesel_crack_petro))); + cracking.put(Fluids.KEROSENE, new Pair(new FluidStack(Fluids.PETROLEUM, kero_crack_petro), new FluidStack(Fluids.NONE, 0))); } - public static Quartet getFractions(FluidType oil) { + public static Pair getFractions(FluidType oil) { return fractions.get(oil); } - public static Quartet getCracking(FluidType oil) { + public static Pair getCracking(FluidType oil) { return cracking.get(oil); } - protected static Map> getCrackingRecipes() { + protected static Map> getCrackingRecipes() { return cracking; } } diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index e9b834c44..3fcd1600f 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -51,6 +51,8 @@ public class SolidificationRecipes { registerRecipe(WATER, 1000, Blocks.ice); registerRecipe(LAVA, 1000, Blocks.obsidian); + registerRecipe(MERCURY, 125, ModItems.ingot_mercury); + registerRecipe(BIOGAS, 250, ModItems.biomass_compressed); 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/lib/Library.java b/src/main/java/com/hbm/lib/Library.java index 7ff51b2fd..c4ec0afc1 100644 --- a/src/main/java/com/hbm/lib/Library.java +++ b/src/main/java/com/hbm/lib/Library.java @@ -664,13 +664,6 @@ public class Library { return flag; } - public static ItemStack carefulCopy(ItemStack stack) { - if(stack == null) - return null; - else - return stack.copy(); - } - public static boolean isObstructed(World world, double x, double y, double z, double a, double b, double c) { MovingObjectPosition pos = world.rayTraceBlocks(Vec3.createVectorHelper(x, y, z), Vec3.createVectorHelper(a, b, c)); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 04b842e29..30ad77711 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -7,6 +7,7 @@ import java.util.Random; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.IFluidSource; +import com.hbm.interfaces.Spaghetti; import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidTank; import com.hbm.inventory.UpgradeManager; @@ -22,6 +23,7 @@ import com.hbm.packet.AuxParticlePacket; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEChemplantPacket; +import com.hbm.util.ItemStackUtil; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; @@ -580,34 +582,35 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve tanks[1].setFill(tanks[1].getFill() - fluids[1].fill); } + @Spaghetti("what the fuck am i looking at") public boolean hasSpaceForItems(ItemStack[] stacks) { if(stacks == null) return true; if(stacks != null && Library.isArrayEmpty(stacks)) return true; - ItemStack sta0 = Library.carefulCopy(slots[5]); + ItemStack sta0 = ItemStackUtil.carefulCopy(slots[5]); if(sta0 != null) sta0.stackSize = 1; - ItemStack sta1 = Library.carefulCopy(stacks[0]); + ItemStack sta1 = ItemStackUtil.carefulCopy(stacks[0]); if(sta1 != null) sta1.stackSize = 1; - ItemStack sta2 = Library.carefulCopy(slots[6]); + ItemStack sta2 = ItemStackUtil.carefulCopy(slots[6]); if(sta2 != null) sta2.stackSize = 1; - ItemStack sta3 = Library.carefulCopy(stacks[1]); + ItemStack sta3 = ItemStackUtil.carefulCopy(stacks[1]); if(sta3 != null) sta3.stackSize = 1; - ItemStack sta4 = Library.carefulCopy(slots[7]); + ItemStack sta4 = ItemStackUtil.carefulCopy(slots[7]); if(sta4 != null) sta4.stackSize = 1; - ItemStack sta5 = Library.carefulCopy(stacks[2]); + ItemStack sta5 = ItemStackUtil.carefulCopy(stacks[2]); if(sta5 != null) sta5.stackSize = 1; - ItemStack sta6 = Library.carefulCopy(slots[8]); + ItemStack sta6 = ItemStackUtil.carefulCopy(slots[8]); if(sta6 != null) sta6.stackSize = 1; - ItemStack sta7 = Library.carefulCopy(stacks[3]); + ItemStack sta7 = ItemStackUtil.carefulCopy(stacks[3]); if(sta7 != null) sta7.stackSize = 1; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java index 1e1a6eb20..16c571f56 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineCatalyticCracker.java @@ -7,11 +7,13 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; +import com.hbm.util.Tuple.Pair; import com.hbm.util.Tuple.Quartet; import cpw.mods.fml.relauncher.Side; @@ -56,12 +58,12 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl private void crack() { - Quartet quart = RefineryRecipes.getCracking(tanks[0].getTankType()); + Pair quart = RefineryRecipes.getCracking(tanks[0].getTankType()); if(quart != null) { - int left = quart.getY(); - int right = quart.getZ(); + int left = quart.getKey().fill; + int right = quart.getValue().fill; if(tanks[0].getFill() >= 100 && tanks[1].getFill() >= 100 && hasSpace(left, right)) { tanks[0].setFill(tanks[0].getFill() - 100); @@ -78,12 +80,12 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl private void setupTanks() { - Quartet quart = RefineryRecipes.getCracking(tanks[0].getTankType()); + Pair quart = RefineryRecipes.getCracking(tanks[0].getTankType()); if(quart != null) { tanks[1].setTankType(Fluids.STEAM); - tanks[2].setTankType(quart.getW()); - tanks[3].setTankType(quart.getX()); + tanks[2].setTankType(quart.getKey().type); + tanks[3].setTankType(quart.getValue().type); } else { tanks[0].setTankType(Fluids.NONE); tanks[1].setTankType(Fluids.NONE); @@ -182,19 +184,15 @@ public class TileEntityMachineCatalyticCracker extends TileEntity implements IFl @Override public List getFluidList(FluidType type) { - if(type.name().equals(tanks[2].getTankType().name())) - return list1; - if(type.name().equals(tanks[3].getTankType().name())) - return list2; + if(type == tanks[2].getTankType()) return list1; + if(type == tanks[3].getTankType()) return list2; return new ArrayList(); } @Override public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[2].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[3].getTankType().name())) - list2.clear(); + if(type == tanks[2].getTankType()) list1.clear(); + if(type == tanks[3].getTankType()) list2.clear(); } AxisAlignedBB bb = null; diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java index 0be91a0c0..3f63560aa 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFractionTower.java @@ -5,11 +5,13 @@ import java.util.List; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; +import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidTank; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.lib.Library; +import com.hbm.util.Tuple.Pair; import com.hbm.util.Tuple.Quartet; import cpw.mods.fml.relauncher.Side; @@ -77,11 +79,11 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid private void setupTanks() { - Quartet quart = RefineryRecipes.getFractions(tanks[0].getTankType()); + Pair quart = RefineryRecipes.getFractions(tanks[0].getTankType()); if(quart != null) { - tanks[1].setTankType(quart.getW()); - tanks[2].setTankType(quart.getX()); + tanks[1].setTankType(quart.getKey().type); + tanks[2].setTankType(quart.getValue().type); } else { tanks[0].setTankType(Fluids.NONE); tanks[1].setTankType(Fluids.NONE); @@ -91,12 +93,12 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid private void fractionate() { - Quartet quart = RefineryRecipes.getFractions(tanks[0].getTankType()); + Pair quart = RefineryRecipes.getFractions(tanks[0].getTankType()); if(quart != null) { - int left = quart.getY(); - int right = quart.getZ(); + int left = quart.getKey().fill; + int right = quart.getValue().fill; if(tanks[0].getFill() >= 100 && hasSpace(left, right)) { tanks[0].setFill(tanks[0].getFill() - 100); @@ -163,7 +165,7 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid @Override public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) + if(type == tanks[0].getTankType()) return tanks[0].getMaxFill(); else return 0; @@ -190,19 +192,15 @@ public class TileEntityMachineFractionTower extends TileEntity implements IFluid @Override public List getFluidList(FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - return list1; - if(type.name().equals(tanks[2].getTankType().name())) - return list2; + if(type == tanks[1].getTankType()) return list1; + if(type == tanks[2].getTankType()) return list2; return new ArrayList(); } @Override public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[2].getTankType().name())) - list2.clear(); + if(type == tanks[1].getTankType()) list1.clear(); + if(type == tanks[2].getTankType()) list2.clear(); } AxisAlignedBB bb = null; 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 0c98f309c..060521c31 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -13,8 +13,8 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.RefineryRecipes; import com.hbm.items.ModItems; import com.hbm.lib.Library; -import com.hbm.packet.AuxElectricityPacket; import com.hbm.packet.PacketDispatcher; +import com.hbm.tileentity.TileEntityMachineBase; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; @@ -29,29 +29,24 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -public class TileEntityMachineRefinery extends TileEntity implements ISidedInventory, IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource { - - private ItemStack slots[]; +public class TileEntityMachineRefinery extends TileEntityMachineBase implements IEnergyUser, IFluidContainer, IFluidAcceptor, IFluidSource { public long power = 0; public int sulfur = 0; public static final int maxSulfur = 100; public static final long maxPower = 1000; - public int age = 0; public FluidTank[] tanks; public List list1 = new ArrayList(); public List list2 = new ArrayList(); public List list3 = new ArrayList(); public List list4 = new ArrayList(); - private static final int[] slots_top = new int[] { 1 }; - private static final int[] slots_bottom = new int[] { 0, 2, 4, 6, 8, 10, 11}; - private static final int[] slots_side = new int[] { 0, 3, 5, 7, 9 }; + private static final int[] slot_access = new int[] {11}; private String customName; public TileEntityMachineRefinery() { - slots = new ItemStack[12]; + super(12); tanks = new FluidTank[5]; tanks[0] = new FluidTank(Fluids.HOTOIL, 64000, 0); tanks[1] = new FluidTank(Fluids.HEAVYOIL, 16000, 1); @@ -61,117 +56,18 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven } @Override - public int getSizeInventory() { - return slots.length; + public String getName() { + return "container.machineRefinery"; } - @Override - public ItemStack getStackInSlot(int i) { - return slots[i]; - } - - @Override - public ItemStack getStackInSlotOnClosing(int i) { - if(slots[i] != null) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } else { - return null; - } - } - - @Override - public void setInventorySlotContents(int i, ItemStack itemStack) { - slots[i] = itemStack; - if(itemStack != null && itemStack.stackSize > getInventoryStackLimit()) - { - itemStack.stackSize = getInventoryStackLimit(); - } - } - - @Override - public String getInventoryName() { - return this.hasCustomInventoryName() ? this.customName : "container.machineRefinery"; - } - - @Override - public boolean hasCustomInventoryName() { - return this.customName != null && this.customName.length() > 0; - } - - public void setCustomName(String name) { - this.customName = name; - } - - @Override - public int getInventoryStackLimit() { - return 64; - } - - @Override - public boolean isUseableByPlayer(EntityPlayer player) { - if(worldObj.getTileEntity(xCoord, yCoord, zCoord) != this) - { - return false; - }else{ - return player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) <=128; - } - } - - @Override - public void openInventory() {} - @Override - public void closeInventory() {} - @Override public boolean isItemValidForSlot(int i, ItemStack stack) { - - if(i == 0 && stack.getItem() instanceof IBatteryItem) - return true; - if(i == 1 && FluidContainerRegistry.getFluidContent(stack, Fluids.HOTOIL) > 0) - return true; - if(stack.getItem() == ModItems.canister_empty) { - if(i == 3) - return true; - if(i == 5) - return true; - if(i == 7) - return true; - if(i == 9) - return true; - } - return false; } - @Override - public ItemStack decrStackSize(int i, int j) { - if(slots[i] != null) - { - if(slots[i].stackSize <= j) - { - ItemStack itemStack = slots[i]; - slots[i] = null; - return itemStack; - } - ItemStack itemStack1 = slots[i].splitStack(j); - if (slots[i].stackSize == 0) - { - slots[i] = null; - } - - return itemStack1; - } else { - return null; - } - } - @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); - NBTTagList list = nbt.getTagList("items", 10); power = nbt.getLong("power"); tanks[0].readFromNBT(nbt, "input"); @@ -180,22 +76,12 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven tanks[3].readFromNBT(nbt, "light"); tanks[4].readFromNBT(nbt, "petroleum"); sulfur = nbt.getInteger("sulfur"); - slots = new ItemStack[getSizeInventory()]; - - for(int i = 0; i < list.tagCount(); i++) - { - NBTTagCompound nbt1 = list.getCompoundTagAt(i); - byte b0 = nbt1.getByte("slot"); - if(b0 >= 0 && b0 < slots.length) - { - slots[b0] = ItemStack.loadItemStackFromNBT(nbt1); - } - } } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); + nbt.setLong("power", power); tanks[0].writeToNBT(nbt, "input"); tanks[1].writeToNBT(nbt, "heavy"); @@ -203,26 +89,12 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven tanks[3].writeToNBT(nbt, "light"); tanks[4].writeToNBT(nbt, "petroleum"); nbt.setInteger("sulfur", sulfur); - NBTTagList list = new NBTTagList(); - - for(int i = 0; i < slots.length; i++) - { - if(slots[i] != null) - { - NBTTagCompound nbt1 = new NBTTagCompound(); - nbt1.setByte("slot", (byte)i); - slots[i].writeToNBT(nbt1); - list.appendTag(nbt1); - } - } - nbt.setTag("items", list); } @Override - public int[] getAccessibleSlotsFromSide(int p_94128_1_) - { - return p_94128_1_ == 0 ? slots_bottom : (p_94128_1_ == 1 ? slots_top : slots_side); - } + public int[] getAccessibleSlotsFromSide(int side) { + return slot_access; + } @Override public boolean canInsertItem(int i, ItemStack itemStack, int j) { @@ -231,41 +103,19 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven @Override public boolean canExtractItem(int i, ItemStack itemStack, int j) { - if(i == 0) - if (itemStack.getItem() instanceof IBatteryItem && ((IBatteryItem)itemStack.getItem()).getCharge(itemStack) == 0) - return true; - if(i == 2) - return true; - if(i == 4) - return true; - if(i == 6) - return true; - if(i == 8) - return true; - if(i == 10) - return true; - if(i == 11) - return true; - - return false; + return i == 11; } @Override public void updateEntity() { - if (!worldObj.isRemote) { + if(!worldObj.isRemote) { this.updateConnections(); power = Library.chargeTEFromItems(slots, 0, power, maxPower); - - age++; - if(age >= 20) - { - age = 0; - } - if(age == 9 || age == 19) { + if(worldObj.getTotalWorldTime() % 10 == 0) { fillFluidInit(tanks[1].getTankType()); fillFluidInit(tanks[2].getTankType()); fillFluidInit(tanks[3].getTankType()); @@ -312,10 +162,18 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven sulfur -= maxSulfur; } } - PacketDispatcher.wrapper.sendToAllAround(new AuxElectricityPacket(xCoord, yCoord, zCoord, power), new TargetPoint(worldObj.provider.dimensionId, xCoord, yCoord, zCoord, 50)); + + NBTTagCompound data = new NBTTagCompound(); + data.setLong("power", this.power); + this.networkPack(data, 50); } } + @Override + public void networkUnpack(NBTTagCompound nbt) { + this.power = nbt.getLong("power"); + } + 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); @@ -368,71 +226,51 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven @Override public boolean getTact() { - if (age >= 0 && age < 10) { - return true; - } - - return false; + return worldObj.getTotalWorldTime() % 20 < 10; } @Override public int getFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else if(type.name().equals(tanks[3].getTankType().name())) - return tanks[3].getFill(); - else if(type.name().equals(tanks[4].getTankType().name())) - return tanks[4].getFill(); + + for(int i = 0; i < 5; i++) { + if(type == tanks[i].getTankType()) { + return tanks[i].getFill(); + } + } return 0; } @Override - public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - else if(type.name().equals(tanks[3].getTankType().name())) - tanks[3].setFill(i); - else if(type.name().equals(tanks[4].getTankType().name())) - tanks[4].setFill(i); + public void setFluidFill(int fill, FluidType type) { + + for(int i = 0; i < 5; i++) { + if(type == tanks[i].getTankType()) { + tanks[i].setFill(fill); + } + } } @Override public List getFluidList(FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - return list1; - if(type.name().equals(tanks[2].getTankType().name())) - return list2; - if(type.name().equals(tanks[3].getTankType().name())) - return list3; - if(type.name().equals(tanks[4].getTankType().name())) - return list4; + if(type == tanks[1].getTankType()) return list1; + if(type == tanks[2].getTankType()) return list2; + if(type == tanks[3].getTankType()) return list3; + if(type == tanks[4].getTankType()) return list4; return new ArrayList(); } @Override public void clearFluidList(FluidType type) { - if(type.name().equals(tanks[1].getTankType().name())) - list1.clear(); - if(type.name().equals(tanks[2].getTankType().name())) - list2.clear(); - if(type.name().equals(tanks[3].getTankType().name())) - list3.clear(); - if(type.name().equals(tanks[4].getTankType().name())) - list4.clear(); + if(type == tanks[1].getTankType()) list1.clear(); + if(type == tanks[2].getTankType()) list2.clear(); + if(type == tanks[3].getTankType()) list3.clear(); + if(type == tanks[4].getTankType()) list4.clear(); } @Override public int getMaxFluidFill(FluidType type) { - if(type.name().equals(tanks[0].getTankType().name())) + if(type == tanks[0].getTankType()) return tanks[0].getMaxFill(); else return 0; diff --git a/src/main/java/com/hbm/util/ItemStackUtil.java b/src/main/java/com/hbm/util/ItemStackUtil.java index 7e619836a..f2f50debf 100644 --- a/src/main/java/com/hbm/util/ItemStackUtil.java +++ b/src/main/java/com/hbm/util/ItemStackUtil.java @@ -7,6 +7,13 @@ import net.minecraft.nbt.NBTTagString; import net.minecraft.util.EnumChatFormatting; public class ItemStackUtil { + + public static ItemStack carefulCopy(ItemStack stack) { + if(stack == null) + return null; + else + return stack.copy(); + } /** * UNSAFE! Will ignore all existing display tags and override them! In its current state, only fit for items we know don't have any display tags! diff --git a/src/main/java/com/hbm/util/Tuple.java b/src/main/java/com/hbm/util/Tuple.java index 427ea7bbd..250989cc5 100644 --- a/src/main/java/com/hbm/util/Tuple.java +++ b/src/main/java/com/hbm/util/Tuple.java @@ -195,4 +195,90 @@ public class Tuple { return this.z; } } + + public static class Quintet { + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((v == null) ? 0 : v.hashCode()); + result = prime * result + ((w == null) ? 0 : w.hashCode()); + result = prime * result + ((x == null) ? 0 : x.hashCode()); + result = prime * result + ((y == null) ? 0 : y.hashCode()); + result = prime * result + ((z == null) ? 0 : z.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if(this == obj) + return true; + if(obj == null) + return false; + if(getClass() != obj.getClass()) + return false; + Quintet other = (Quintet) obj; + if(v == null) { + if(other.v != null) + return false; + } else if(!v.equals(other.w)) + return false; + if(w == null) { + if(other.w != null) + return false; + } else if(!w.equals(other.w)) + return false; + if(x == null) { + if(other.x != null) + return false; + } else if(!x.equals(other.x)) + return false; + if(y == null) { + if(other.y != null) + return false; + } else if(!y.equals(other.y)) + return false; + if(z == null) { + if(other.z != null) + return false; + } else if(!z.equals(other.z)) + return false; + return true; + } + + V v; + W w; + X x; + Y y; + Z z; + + public Quintet(V v, W w, X x, Y y, Z z) { + this.v = v; + this.w = w; + this.x = x; + this.y = y; + this.z = z; + } + + public V getV() { + return this.v; + } + + public W getW() { + return this.w; + } + + public X getX() { + return this.x; + } + + public Y getY() { + return this.y; + } + + public Z getZ() { + return this.z; + } + } } diff --git a/src/main/resources/assets/hbm/textures/gui/gui_refinery.png b/src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/gui_refinery.png rename to src/main/resources/assets/hbm/textures/gui/processing/gui_refinery.png From 9002a295df00578f43ec54bd54474870b7689d7c Mon Sep 17 00:00:00 2001 From: Boblet Date: Mon, 7 Feb 2022 13:52:58 +0100 Subject: [PATCH 2/8] salient green: the wonder of life in liquid, sticky form --- .../java/com/hbm/inventory/fluid/Fluids.java | 4 +- .../hbm/inventory/gui/GUIMachineRefinery.java | 20 + .../gui/GUIScreenTemplateFolder.java | 6 +- .../recipes/LiquefactionRecipes.java | 7 + .../hbm/inventory/recipes/MachineRecipes.java | 27 +- .../inventory/recipes/RefineryRecipes.java | 4 + .../recipes/SolidificationRecipes.java | 1 + src/main/java/com/hbm/items/ModItems.java | 4 + .../items/machine/ItemChemistryTemplate.java | 460 ++++++++---------- .../oil/TileEntityMachineRefinery.java | 74 ++- .../machine/oil/TileEntityOilDrillBase.java | 12 +- src/main/resources/assets/hbm/lang/de_DE.lang | 2 + src/main/resources/assets/hbm/lang/en_US.lang | 2 + .../textures/gui/processing/gui_refinery.png | Bin 3005 -> 3327 bytes .../assets/hbm/textures/items/bio_wafer.png | Bin 0 -> 301 bytes 15 files changed, 348 insertions(+), 275 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/items/bio_wafer.png 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 3ada7e8b8ec73cbdcf9e741d4ae02f20beca9712..752d061e5224989187977056f726b718f14c68f9 100644 GIT binary patch literal 3327 zcmbVPXH-+!8a*j0paBs?q(~48*ak)j9U>^rp(q_GN^}H7DKVh51W;iFLPQ;!6s3cJ z3_J{h2rKu66JE&Uf$m?*8`P_pEh)Gc(ag@QLvO z01$=-XDMP9}OaWwgI*}%6{fxQVJ5YXqiJSzPeZ|0+sPisY55#j+ zv`Y(aV7*uD>^B%nj38TSJmf#kdO+hfWZVNN9dO=_%-mtMLwUx3oM%JKTO0O9sfs zpM2}qRdRFxeA&a|#gp#JL(zi=jUmK^$-}513=vLo`=X^WW^Va3+p;@1w@M`Nfq|OV z9@aax)==j`1bdV$wYuD-y{7d6Yk*bM(jC=gEqqWk#ssYlN1wq(DvX#%?^Ft!EPrvM zdO)w5HN&8F1-1(OWN~adgs6xK5?H7c=bIm6X+lWdpqq;D^ z+fjSl<kL`08C^3X3c$#5V#?ed+%9i5HlN@r^M4U@Gv`*;K_<1 z6}k_iq#T6d;|EM7f<<~u`9_61V$+|TU$>R+G`my;*-aN}pQBk*#W!GL=j}%`bNpbg z*jui+XI_%%-Aa%lx^70lkcl1bcs}v89ys$*(@*OLklPosRSi{}K}k5I?pKYVhnh}( zT4r?SQRseluDB|NZ9EspThI=H*p4sWs!jd}jS{iv^M=QVgeja^r~J;ylo9^aQ(HJ~ zVBBZhu?{d5O-)>ZZ4YjGfIuJVr;pu{0U^Tv^UjNBeK_nkK!iB>600-?>bW!}T0gj}b7ggh-x2>u zre*^N0t?Gm{EYHXmvcn=!VW(l`8Bm>RKRsr7Z*q_>{NTaRi1`JTrRiIyerfsutju( zEdg17pt@XNBJi&Sjw=R&aH;^-n764+r-Y`f4D?4rhXWzAFNdS#&?ILV+Ai8-%R&vp z$nb6Tne8zv@hx+GMQYvhsxMjNi< zr^}*%4Xm-4pMDGl(!ZbGwAUtrV^IYms-Q!1!v21$SpuXozcSI*++?l!8oY zUW0<>qlrp{F1Kr?eK%1uQC)7YId5`v+dZ_c+$0-G^*j_4<*^D>R#q04EOFh^@?5-W ztlf?|At^BNdOPM9A8BB4L=99#F%QBCD(?y)_6`p56F!xk{$w9_0d-ST(_&j8aA=P> zm{5NDl?Zp4M@ziO0wD7o01pKL!P&V7cz4zqWKIlL`>#YhoJy8^&HwodeD|Yjy#YsA zOfRjhFW+2dBPk6I_PL`nT@#{fCjH-9aQoZ|kq^Fw+23biln+z2fyFicTKt7!@DD_d&Z(q)t9}3e{rYfXV&Wj4b(;FZVr6s^B@v4$b1XFOP<+9Ptc6}V za5iO|imIxY8$0GU?P=`AtbEr5*)({w$GjLNZm{0kSC|xPgV420dj7$Dl_?W-L5487 zTcNwktFfiU*e7^*Ue*&UYJ&6a;F2nR5ICnR4pqQQ^XKz2$QdRG{+3$m{1f_E$qmL- z#2P1RUN0I%mJh(vTG|K1?_tqlnKxpY2ASTJ~-a2<|$Tm!nqLU zxqtG!IO2`H&9HZWde{Cro6lF|!Nr;#0mLa~{8y#urTyO7p+83r3dy5<;KvGEEjate zc}1hMS-^Sx*T-t_4)l{NIqVe9a?T=inIU<{Q3L-6=R+B@x@IBnJ9%Mgd@d`~RSdh% z?p?pZT%BIaraK7tMBMP&h`=Nh=f^gx@wt(Oylf=}0j?Yc64uWu(+EWsTW6d*&po1uyi_}+?f2pD=BQmd z`tZLl&QUxr>?I*dP~=-|_^~a45{FbNIU;|AhpX2;cx_@&;dcaiO=0$sA0qX5cY%sr zuO4S;eIWH)@Xh(3lC^mg4lwlaTnvlzseMCInoAE~6PmB>1r49e6QgdfD(DRLO*!iG z273gtgDiMbPjEjJhjK+W$~YpV(G&$i;###2HGD&3>h^J7+C<=AuE)w$%Arqv(8M>& zrVh-7MM6JlYNr94-bmoxkvtU^3I8y+MtX$yuaR1*Lw=4B1gWABdBMstsft+->or~L z^@&{V;~WOSr;oz?G5P z?H{aYr9u4GXTy03HkG~Ux4$ZJu3b%{Y2p1?HwI`9ERE&mh)Yhaph>&Y)o-zb%&^t) zUO^tudLnwpQv{er0w62{Ks^sYD?tBl>OSo=)aAB!6~2dAmaKNS%l1@kEzXnCz6NxZ z2W$#^R(xll^Wz#iKcW`C$#44yg?~U%RJ#UpbAM(nsId*RbtM~1d*`NI!Tj6bYe?`D5m+#mkfm|e3-(XjeLNl4?KbY26rEWZ*U7__5Rw{{-vSK5{I)@GTMjV}$rSVt&B?BZ~~daJ5gY%W9$OP{^Jl88eMvApc?7-BXa{5S%0P z+{D-V^1HVM6z=Q8>c9Qpyear>%OtYZ;`l3}GV0@e5(4J`RupYDJ}u?duh4KpB%*$D zc{w3;rz}PvL=+bn+dAIv$RP69nZps6z?d*+Tlz()MDXn) literal 3005 zcmbVO2~bnl8a_$b5hOqnkWF9;SY?sbU?5cr;$tZwn@|Z=k$p8-gGeY$ff7MQD-bp} z_5=_J1qGr}plT2v5FqTb6~exSASUld+c(aeH}l$eXYM`czw2g#&Yy|;XH6k~XnMq+n7}+y>sYqZSh#qLu#0vbPlnlkm zqC?qm?V~LG>**t0;qvlZO_VJ5l&kxlLkj7K>P_l1+fa=xu5K}~cWS%n?rv{TeTMvy z62fgaXw~jRBDrkyF&k@6e^u*f!ZDH~^D??%r-{`*Y(?n{kn6KjU=!DtTy259ZAi1e zPSvA+_6{ngz%Mxe8HDPEBYP2F+84}1a8FPs_3E8Wpen;cwDag*SYt*>FRI(g38vh@ zk7h61{VYW|5dz#Yffb5U(C!wT-|2-o=^DxoVy_~?&}1qqA7VCKrxpUJ^EO)G)~`Y6 zFfDi(x{8YG_7ZY%4F%OA*jlHHz9P{4vnV6slkbW*y%5#zI?8SY?Ql3|C>7)Lwu00WMj}jE|vPG%%x+(C%-CxXyN4}3Z zWIkC^hA4IXlmn7Qeh6O)8>sA2g57vH!0cg8in8#m1MDf5(cJHy$01eB$?eKC6I}Fy zF7DFB0}8OLU&R50T@t;08+RX)$i4=0ATUt*5Z3?14)Ln15y4h`L_1tpKt(1}3p{=D z11n+LdQ<@~?~>YwdbF(#Hwn*B5cuzIEf#}e-jH2Qga~STCnv7h&9DF7xo~yoGMoq} zt|op!clfDNU}^udPs0cPDYCJ}=R`bV0#a_77Si2jvrLZ?<0XLd!nC7$ z@GM&)7XEA)?mnb5MEjf+Eg-)WT4;J^pl)*;0_oxN(S}?rVMM=@@`K(|Bcpt-WWxvT zNICE^eDuIPv!rwmd27*DJ<1sA{JK zO_y$SSs*0}n2SyxjFl*=*ZHSFtWVyonPS$=Fl!#G0x9jY_Yrxv&qH)l*9`pO524$# zVd2k&;S4F?BZ?e{hEEUW`S_?3>5fqI?$vER6~umyhFNgZ$5~L-9qK?3i4;tV34w|U zG(_JPXrW4+3>>>d<1!SOxO}=a=bdJ$LuC zjue2M-ABC8d^SC`V{@}!tX16bHyt;1K$y$+MtJGpeLNWYhG_E3>*=K^clXC$he{DR z2O@ZWX>x7NwX?Ic*eWm3-Tgw2^W8I|Jx~~lXn>V?j=q3vU@?6ulP7<=zI!XF+K1a__*yd0@_sNKXL#(kHt!KFlGAFP+YbO4BS zS$XdiXg^{ms#U`FoNqpR@e0BX%8-=y0fdK#FO9%D_7+4eh~CIdLt@q`7{FD5w)@=# zmcD@jM_(rGg`e8b@#J%DE%JBR*?a5rH&MPyUCUEq*s&+8O~caD%v?nyK0q*S~U&w`^w;vliPRw-nQb|XO~S0 zR?YwLTy!A_H#+SJ!)5fTy^G6?+E9korKC2_TyGy98Of1M_C-IUqMpe-kR(>Di;Z{f z8YW{p)l=g`;1dyKx1{)(6)S-QLwSNf&AWE)YO@{CqgUgFG23nCd}5zma@N=xv1GGT=qsjuiSf<*U?qw>-bW`$b%$r7o4WJK1;}5)OPGdyE?!;(JEm6J>gkdsnA0 z?#;_|g8^g*=(`I$+%mR1mzCn8!_%ws%eTwlF7Z8_;h#ZC1d6TVLdLYz)_*0P{RKPN>l8QM~DqAEuwH9bTpF~id$sy4e=i# zo#KDQj^$!b$v`PE0zc`eI*MY<87a)lEHYNc80Mk^Hv-S6omaVb3hkr z*80o#Y0S-ym#rH8@6;>!(}w24)%OS2ONj7Xbiym$qQP}z2@Ezs2 ziEebb2D{$cP=KNej_oPb!1B~JP(})`^r#q#Si2{U+v%MMo2UCr{FRLVrMw*nQCfb= zqr!bH{o52&SJ0Q5LyNIrX|8p*NiK-ls7m2jmT+=^2ol-Y(xSj!F(wuaAX8EE>}sv9 zNG}9X(E_0TkMoQO{;C-(bU$MUr6_F)cd?6CjTKVo&TJ#yAwhTCrTG6XMxlKy=I@Ekrc-EKL*YNE zXUqP?@0d(XeG^bSxV5$QOPg?>xE5h>vOQA=EmI_^0M-M|$763j08NuqqR=n(-@Fi9 Y^-Z1I%(BDHxq?XhZ=7r>$FV>D3)b;SHUIzs 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 0000000000000000000000000000000000000000..b251969612a0330971d7ebd4d48a59293f709298 GIT binary patch literal 301 zcmV+|0n+}7P)D%45Qe{vw9vAGLP{*NQG-HDeS@$*#nd;+Yb@nPCY1sV zJ7(5kE3#Bnl#$ib+NES@(tdQhyYIi#9sKLpdYUWj_S>nhYn*ckA$WT|{MdV!yn=1p zqP0c{K?tG5w?@ymaMyJ>=PL!U?>$=U0vcmTDKQKK*4h%! z8YrbmDWSD46Rov`5b)lkl)|~ggBz@wHk%h>jAaukB~?{%JifDBE;yYo(0_6Fmt8Xf ztX2!8l#JuZI9@oPKkNN>X7-I&qoV#n@88x37u#kveUT7n00000NkvXXu0mjf!)1Va literal 0 HcmV?d00001 From a7921b73e0d29772d064f82126ca4587119343e0 Mon Sep 17 00:00:00 2001 From: Bob Date: Mon, 7 Feb 2022 22:37:17 +0100 Subject: [PATCH 3/8] fixed solar boiler not saving, patched up oil recipes and fluid textures --- .../com/hbm/blocks/bomb/BlockChargeBase.java | 7 ++++ .../blocks/machine/MachineFractionTower.java | 3 +- .../inventory/recipes/AssemblerRecipes.java | 11 +++++ .../inventory/recipes/RefineryRecipes.java | 7 ++-- .../recipes/SolidificationRecipes.java | 1 - src/main/java/com/hbm/main/MainRegistry.java | 1 + .../render/tileentity/RenderSolidifier.java | 4 +- .../machine/TileEntityMachineLiquefactor.java | 2 + .../machine/TileEntityMachineSolidifier.java | 2 + .../machine/TileEntitySolarBoiler.java | 17 ++++++++ .../oil/TileEntityMachineRefinery.java | 39 +----------------- src/main/resources/assets/hbm/lang/de_DE.lang | 4 ++ src/main/resources/assets/hbm/lang/en_US.lang | 4 ++ .../hbm/textures/gui/fluids/aromatics.png | Bin 0 -> 610 bytes .../hbm/textures/gui/fluids/hotcrackoil.png | Bin 0 -> 575 bytes .../textures/gui/fluids/lightoil_crack.png | Bin 0 -> 437 bytes .../hbm/textures/gui/fluids/naphtha_crack.png | Bin 0 -> 609 bytes .../hbm/textures/gui/fluids/salient.png | Bin 0 -> 435 bytes .../hbm/textures/gui/fluids/unsaturateds.png | Bin 0 -> 608 bytes 19 files changed, 56 insertions(+), 46 deletions(-) create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/aromatics.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/lightoil_crack.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/naphtha_crack.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/salient.png create mode 100644 src/main/resources/assets/hbm/textures/gui/fluids/unsaturateds.png diff --git a/src/main/java/com/hbm/blocks/bomb/BlockChargeBase.java b/src/main/java/com/hbm/blocks/bomb/BlockChargeBase.java index 6b89e3501..22b71379a 100644 --- a/src/main/java/com/hbm/blocks/bomb/BlockChargeBase.java +++ b/src/main/java/com/hbm/blocks/bomb/BlockChargeBase.java @@ -8,6 +8,7 @@ import static net.minecraftforge.common.util.ForgeDirection.UP; import static net.minecraftforge.common.util.ForgeDirection.WEST; import java.util.List; +import java.util.Random; import com.hbm.blocks.BlockContainerBase; import com.hbm.blocks.ITooltipProvider; @@ -18,6 +19,7 @@ import api.hbm.block.IToolable; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; @@ -55,6 +57,11 @@ public abstract class BlockChargeBase extends BlockContainerBase implements IBom return side; } + @Override + public Item getItemDropped(int i, Random rand, int j) { + return null; + } + @Override public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side) { ForgeDirection dir = ForgeDirection.getOrientation(side); diff --git a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java index fec788228..f9f34d498 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFractionTower.java @@ -12,6 +12,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ChatComponentText; import net.minecraft.util.ChatComponentTranslation; +import net.minecraft.util.ChatStyle; import net.minecraft.util.EnumChatFormatting; import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; @@ -75,7 +76,7 @@ public class MachineFractionTower extends BlockDummyable { FluidType type = Fluids.fromID(player.getHeldItem().getItemDamage()); frac.tanks[0].setTankType(type); frac.markDirty(); - player.addChatComponentMessage(new ChatComponentText(EnumChatFormatting.YELLOW + "Changed type to " + type + "!")); + player.addChatComponentMessage(new ChatComponentText("Changed type to ").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.YELLOW)).appendSibling(new ChatComponentTranslation("hbmfluid." + type.getName().toLowerCase())).appendSibling(new ChatComponentText("!"))); } } diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 57dbb86de..43274c88c 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -930,6 +930,17 @@ public class AssemblerRecipes { new ComparableStack(ModItems.inf_water_mk2, 2) }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_solidifier), new AStack[] { + new OreDictStack(ANY_CONCRETE.any(), 8), + new OreDictStack(NB.ingot(), 2), + new OreDictStack(AL.plate(), 12), + new OreDictStack(ANY_TAR.any(), 8), + new ComparableStack(ModItems.hull_big_steel, 3), + new ComparableStack(ModItems.catalyst_clay, 4), + new ComparableStack(ModItems.coil_copper, 4), + new ComparableStack(ModItems.tank_steel, 2) + }, 200); + makeRecipe(new ComparableStack(ModBlocks.machine_radiolysis), new AStack[] { new OreDictStack(STEEL.ingot(), 8), new OreDictStack(TCALLOY.ingot(), 4), diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index 814d963be..91c03802b 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -13,7 +13,6 @@ import com.hbm.items.ModItems; import com.hbm.items.machine.ItemFluidIcon; import com.hbm.util.ItemStackUtil; import com.hbm.util.Tuple.Pair; -import com.hbm.util.Tuple.Quartet; import com.hbm.util.Tuple.Quintet; import net.minecraft.item.ItemStack; @@ -43,8 +42,8 @@ public class RefineryRecipes { public static final int ncrack_frac_diesel = 70; public static final int lcrack_frac_kero = 70; public static final int lcrack_frac_petro = 30; - public static final int coal_frac_coalgas = 70; - public static final int coal_frac_natgas = 30; + public static final int coal_frac_coalgas = 30; + public static final int coal_frac_oil = 70; //cracking in percent public static final int oil_crack_oil = 80; @@ -107,7 +106,7 @@ public class RefineryRecipes { fractions.put(Fluids.NAPHTHA_CRACK, new Pair(new FluidStack(Fluids.HEATINGOIL, ncrack_frac_heat), new FluidStack(Fluids.DIESEL_CRACK, ncrack_frac_diesel))); fractions.put(Fluids.LIGHTOIL, new Pair(new FluidStack(Fluids.DIESEL, light_frac_diesel), new FluidStack(Fluids.KEROSENE, light_frac_kero))); 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.GAS, coal_frac_natgas))); + fractions.put(Fluids.COALOIL, new Pair(new FluidStack(Fluids.COALGAS, coal_frac_coalgas), new FluidStack(Fluids.OIL, coal_frac_oil))); } public static void registerCracking() { diff --git a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java index 4dd26b381..8755159b8 100644 --- a/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/SolidificationRecipes.java @@ -78,7 +78,6 @@ public class SolidificationRecipes { registerRecipe(LPG, SF_LPG, ModItems.solid_fuel); registerRecipe(BIOGAS, SF_BIOGAS, ModItems.solid_fuel); registerRecipe(BIOFUEL, SF_BIOFUEL, ModItems.solid_fuel); - registerRecipe(COALOIL, SF_COALOIL, ModItems.solid_fuel); registerRecipe(AROMATICS, SF_AROMA, ModItems.solid_fuel); registerRecipe(UNSATURATEDS, SF_UNSAT, ModItems.solid_fuel); } diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 6d0b5bc7d..36bb7260a 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -947,6 +947,7 @@ public class MainRegistry { SILEXRecipes.register(); AnvilRecipes.register(); PressRecipes.register(); + RefineryRecipes.registerRefinery(); RefineryRecipes.registerFractions(); RefineryRecipes.registerCracking(); RadiolysisRecipes.registerRadiolysis(); diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java b/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java index d31afee05..bad93f910 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java @@ -42,9 +42,9 @@ public class RenderSolidifier extends TileEntitySpecialRenderer { double height = (double)liq.tank.getFill() / (double)liq.tank.getMaxFill(); GL11.glPushMatrix(); - GL11.glTranslated(0, 1, 0); + GL11.glTranslated(0, 1.25, 0); GL11.glScaled(1, height, 1); - GL11.glTranslated(0, -1, 0); + GL11.glTranslated(0, -1.25, 0); ResourceManager.solidifier.renderPart("Fluid"); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLiquefactor.java index b439f9b5d..d0fcf7dcf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLiquefactor.java @@ -47,6 +47,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen this.power = Library.chargeTEFromItems(slots, 1, power, maxPower); tank.updateTank(this); + this.trySubscribe(worldObj, xCoord, yCoord + 4, zCoord, Library.POS_Y); + this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); this.trySubscribe(worldObj, xCoord + 2, yCoord + 1, zCoord, Library.POS_X); this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X); this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java index 12776a1f5..a68f0b169 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java @@ -47,6 +47,8 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement tank.setType(4, slots); tank.updateTank(this); + this.trySubscribe(worldObj, xCoord, yCoord + 4, zCoord, Library.POS_Y); + this.trySubscribe(worldObj, xCoord, yCoord - 1, zCoord, Library.NEG_Y); this.trySubscribe(worldObj, xCoord + 2, yCoord + 1, zCoord, Library.POS_X); this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X); this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java index 5afea0bbd..8cb38bd56 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntitySolarBoiler.java @@ -14,6 +14,7 @@ import com.hbm.lib.Library; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChunkCoordinates; @@ -139,6 +140,22 @@ public class TileEntitySolarBoiler extends TileEntity implements IFluidAcceptor, public void clearFluidList(FluidType type) { list.clear(); } + + @Override + public void readFromNBT(NBTTagCompound nbt) { + super.readFromNBT(nbt); + + this.water.readFromNBT(nbt, "water"); + this.steam.readFromNBT(nbt, "steam"); + } + + @Override + public void writeToNBT(NBTTagCompound nbt) { + super.writeToNBT(nbt); + + this.water.writeToNBT(nbt, "water"); + this.steam.writeToNBT(nbt, "steam"); + } AxisAlignedBB bb = null; 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 865a1d561..caa412335 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineRefinery.java @@ -7,28 +7,21 @@ 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; import com.hbm.inventory.recipes.RefineryRecipes; -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; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.inventory.ISidedInventory; import net.minecraft.item.ItemStack; 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; @@ -47,8 +40,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements private static final int[] slot_access = new int[] {11}; - private String customName; - public TileEntityMachineRefinery() { super(12); tanks = new FluidTank[5]; @@ -128,25 +119,7 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements tanks[0].loadTank(1, 2, slots); - int ho = RefineryRecipes.oil_frac_heavy; - int nt = RefineryRecipes.oil_frac_naph; - int lo = RefineryRecipes.oil_frac_light; - int pe = RefineryRecipes.oil_frac_petro; - - if(power >= 5 && tanks[0].getFill() >= 100 && - tanks[1].getFill() + ho <= tanks[1].getMaxFill() && - tanks[2].getFill() + nt <= tanks[2].getMaxFill() && - tanks[3].getFill() + lo <= tanks[3].getMaxFill() && - tanks[4].getFill() + pe <= tanks[4].getMaxFill()) { - - tanks[0].setFill(tanks[0].getFill() - 100); - tanks[1].setFill(tanks[1].getFill() + ho); - tanks[2].setFill(tanks[2].getFill() + nt); - tanks[3].setFill(tanks[3].getFill() + lo); - tanks[4].setFill(tanks[4].getFill() + pe); - sulfur += 1; - power -= 5; - } + refine(); tanks[1].unloadTank(3, 4, slots); tanks[2].unloadTank(5, 6, slots); @@ -157,16 +130,6 @@ public class TileEntityMachineRefinery extends TileEntityMachineBase implements tanks[i].updateTank(xCoord, yCoord, zCoord, worldObj.provider.dimensionId); } - if(sulfur >= maxSulfur) { - if(slots[11] == null) { - slots[11] = new ItemStack(ModItems.sulfur); - sulfur -= maxSulfur; - } else if(slots[11] != null && slots[11].getItem() == ModItems.sulfur && slots[11].stackSize < slots[11].getMaxStackSize()) { - slots[11].stackSize++; - sulfur -= maxSulfur; - } - } - NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); this.networkPack(data, 50); diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 54194c347..3e209d207 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -242,6 +242,7 @@ container.machineRefinery=Ölraffinerie container.machineSelenium=Hochleistungs-Sternmotor container.machineShredder=Brecher container.machineSILEX=SILEX +container.machineSolidifier=Verfestiger container.machineTurbine=Dampfturbine container.machineTurbofan=Turbofan container.machine_schrabidium_transmutator=Schrabidium-Transmutationsgerät @@ -460,6 +461,7 @@ hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.carbondioxide=Kohlenstoffdioxid hbmfluid.coolant=Kühlflüssigkeit +hbmfluid.coalgas=Kohlebenzin hbmfluid.coaloil=Kohleöl hbmfluid.crackoil=Crack-Öl hbmfluid.cryogel=Kryogel @@ -2020,6 +2022,7 @@ item.oil_detector.desc2=Detektor findet nur größere Vorkommen. item.oil_detector.bullseye=Ölvorkommen direkt untertage! item.oil_detector.detected=Ölvorkommen in der Nähe! item.oil_detector.noOil=Kein Öl gefunden. +item.oil_tar.coal.name=Kohleteer item.oil_tar.name=Ölteer item.oil_tar.crude.name=Erdölteer item.oil_tar.crack.name=Crackölteer @@ -3275,6 +3278,7 @@ tile.machine_shredder.name=Brecher tile.machine_silex.name=Laser-Isotopentrenner (SILEX) tile.machine_siren.name=Sirene tile.machine_solar_boiler.name=Solarturmboiler +tile.machine_solidifier.name=Industrielle Verfestigungsmaschine tile.machine_spp_bottom.name=NPE-Potentialgenerator (Unterteil) tile.machine_spp_top.name=NPE-Potentialgenerator (Oberteil) tile.machine_storage_drum.name=Atommüll-Lagertrommel diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index e2ca24333..56c60dae9 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -375,6 +375,7 @@ container.machineRefinery=Oil Refinery container.machineSelenium=Radial Performance Engine container.machineShredder=Shredder container.machineSILEX=SILEX +container.machineSolidifier=Solidifier container.machineTurbine=Steam Turbine container.machineTurbofan=Turbofan container.machine_schrabidium_transmutator=Schrabidium Transmutation Device @@ -613,6 +614,7 @@ hbmfluid.biofuel=Biofuel hbmfluid.biogas=Biogas hbmfluid.bitumen=Bitumen hbmfluid.carbondioxide=Carbon Dioxide +hbmfluid.coalgas=Coal Gasoline hbmfluid.coaloil=Coal Oil hbmfluid.coolant=Coolant hbmfluid.crackoil=Cracked Oil @@ -2243,6 +2245,7 @@ item.oil_detector.desc2=Detector will only find larger deposits. item.oil_detector.bullseye=Oil deposit directly below! item.oil_detector.detected=Oil detected nearby. item.oil_detector.noOil=No oil detected. +item.oil_tar.coal.name=Coal Tar item.oil_tar.crude.name=Oil Tar item.oil_tar.crack.name=Crack Oil Tar item.overfuse.name=Singularity Screwdriver @@ -3602,6 +3605,7 @@ tile.machine_shredder.name=Shredder tile.machine_silex.name=Laser Isotope Separation Chamber (SILEX) tile.machine_siren.name=Siren tile.machine_solar_boiler.name=Solar Tower Boiler +tile.machine_solidifier.name=Industrial Solidification Machine tile.machine_spp_bottom.name=ZPE Potential Generator (Bottom) tile.machine_spp_top.name=ZPE Potential Generator (Top) tile.machine_storage_drum.name=Nuclear Waste Disposal Drum diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/aromatics.png b/src/main/resources/assets/hbm/textures/gui/fluids/aromatics.png new file mode 100644 index 0000000000000000000000000000000000000000..432bf3deafff324bfeda063f209e762f4f17d475 GIT binary patch literal 610 zcmV-o0-gPdP)ssDZeOElZ;JLX8*0 z8vz2v!}FulufPA=0jgEjb*1lnoH(jgo>fW#Kvgj_N-p@|f9^V^*2=bQ0E7^j?=wDl zRF&`VZ&a1O@3~wqEXzXm73Ulxf~J%Xq`vQoF)|DTK6uQmp;lvER{)%I0Hl-%At3WS zv6i)Soc1lVK z=N#JUvHmnoyuZJbOD3hnwzc4ih_KsEDTO}t)Y=>=xp2K+0oYP&{`&gj_V0}l0^a{b z*@k)B@k4UxJJQbnSj@#`9z-~Kf zYjm7*tf>j!bsd+>r48u&o@H4GKCmncK6u`)Z-{G=77^zA%(5)3>xy%ZoHM)a4b;ro w(sq0vfctzWen*1;Kf>O7f)9sA)hZ&wf3s6PTgko|JOBUy07*qoM6N<$f~)f#(*OVf literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil.png b/src/main/resources/assets/hbm/textures/gui/fluids/hotcrackoil.png new file mode 100644 index 0000000000000000000000000000000000000000..61403ef88f7659748dbdef1adc3f66587bd18478 GIT binary patch literal 575 zcmV-F0>J%=P)!?eIDK`n8=FSFQH!9DINg-x_kL@Jgg3^^;~6z4`Oro&!N6)!Ix zr6}#WB4?$PgwC@)GMy3(gHcY9a>CtFG2CICcHl2k*8t43k+UNG5+z?QiCRDe<^|lH zVK79ZTvZruJHucMx1C0-XiI=`g3TAE1(L?+zBg1OV9tt&01G)Qzj`Ct&U7>M%jpSN zIvk>B&_=P<=zAljz{FOg)d=cth)9K5JT?c)wZJfet;W1OgRZt8;PTk@j_`do3T=C) zl$~)LAN1X+-~TUXjPA;YlHXvOB?sExAP9vV;{bbWl@`1ZAM>69+PyhIQY z0rw~~=M%ndA>Y+_xtswWD*gBzdGA9&IUPEv1xhKbHnQ5vyzIQbUU+-EA~NE>)1IqC z<|pQP!nck7wxa?vOtATeJBSF4!u$L60Co==>l&$R<~fE$n}+UOp$gTH64Q8}z)}*m z)cn2%g(CdNLfb07ZMg5O2I3w)#_&Y1fBKQZA*ZK^a;nIQ2S%I6+dr+G4dK()6i)yE N002ovPDHLkV1l~525;=bedJpZ6jBT%w2Ltr@9k_9&Ckh~ zGjCs?AHU2D03aenM7;w5GsDd4pSz>A1^_TK^vvsIKpwLbL_I`RE7{E8?qFuHh~V|O zJKP;aj0nehS`WU|M0lxVGlQyPngm1)RV_6l0ucdoAFH)ioy|_DYA?Xda1RhM)^&YS z5;11Z;;IT}?!~i9N>Wusc+F14aCfZh0wRK$VOf>|G3UC=W*(HyPPhjikMDo1E(Rw= zrmF7l*tV@Cx<`$Z>o&8&W1br#qEsX-W-c$}w>z6`{N#fU(+iY{6tLWs$aFE2KEiPv zc=bYrLqrl%6&IPXZQGMe-?Ll#Ap_0q0@{PKNozCKbsdGXYx;fP_oq=ZF`|1y^#|u^ zm?pu#AHxSCQfs`QZl>IbLu9(1f_ZL3LEggqMY&(BPTsCYj&0N278kJAX6*Y>2}6E> fh)QL0a(Daz903_mhCmZa00000NkvXXu0mjf+~Bw3 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_crack.png b/src/main/resources/assets/hbm/textures/gui/fluids/naphtha_crack.png new file mode 100644 index 0000000000000000000000000000000000000000..324feff4986c75b110f749688edb3bfa4499e6e2 GIT binary patch literal 609 zcmV-n0-pVeP)(HKHY_EWdMR3 zlK+#3KY#z-0a|S=>q_W4#0af6o>OW8K#kJwjhr*yc>u&(i--_Y1i*KmWm&chR$0~+ zfUfH}{XP*wpznKp=Ls(XjceSILf0|RGa&@L_q5iqR;jhJJ{~g001(%R?>sVHC&UP+ z(+M$xh>%jEwZ=TphzQY=RVvn6;u1 zQgY#Px$yS(Mk$53Mp8-}133t-HA*db?{_IVXO73?R+>jk&*w9rpP%^7zN+ zxG}NTG7P^^qe$pFmfM1Jj^(!Cz2|s5VvHfBgorSXBg?X|t}DhEa?Ts*y&>)1h$(KL v=e{*^nkKH-E6)8i(>aH8Zuh9wh8%?dQ=c`>-q6#i00000NkvXXu0mjfT{jh& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/salient.png b/src/main/resources/assets/hbm/textures/gui/fluids/salient.png new file mode 100644 index 0000000000000000000000000000000000000000..bc9ef91d59308482379f08494ba07a54737d810f GIT binary patch literal 435 zcmV;k0ZjghP)FVM zy2wnl3e1exlbK{Dg|4R0IZ@R{H~=Ezt-#D0W@a|En!MHmxEqTId+&zq?l-qFx>22o z=tkAxjlwO1H0O$|DyqsD<4s%ut*-9Db*-N0?znp=n;Bya3UMJC5z&F;7-Vezd^{1^ zoZlY3p`uor?7hiMM!|!`Oj+0B@6&ml1E2*fe-xEQAR@hQcgIZl{^MjEhN|=$i&~*= zT{4sB^Vv?c<5PJv<2=uXyw)N!8`a+Xrto$DuSPO6=A0cX?(Tjgm~*zWukVOpt<}8C zSf7F)j4>EyMrQt(P)1T!)>{2tIc4kN?r%4-po<8{aWvP;ss9ndbzQd)Ue*12k*dhu ddws8)`v*bvL{z?4tH=NV002ovPDHLkV1g8o$W;IU literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/unsaturateds.png b/src/main/resources/assets/hbm/textures/gui/fluids/unsaturateds.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4dfced6d4e5447aaefa5af0c86d07fac95c5d1 GIT binary patch literal 608 zcmV-m0-ybfP)pxA;ySv4iTZ0!q+M#10bSlt&&p4S_^W|FqOR8k5#fA3 zBO)lJ*!PXrDj@`vQdnyd(S&d#gg^*4jL`sSr4;MB_6)}HUVOPM7^4{mg>xgrp!$d( zA0Jq2S(YpMcs%vM#?kgd?>)w7Qp#K|3)b3xo~8-sMp~;Vr3OmL7^BhJ&{{=A2qBPC zX5TkN?oCs=)6m-VU4Mo5wX`-&(*f^&ry-&{N`TfX)>?8-=&y83sQ_4O+4r3oH|~fP zrR45__nw?nZ>FA}j)-Wy_nc10E|K@15N-^ELPT>q9Z4xO&olEplXK#5n9#Rdz*I5&2c zwTSe&a!%~~&X4au`1AUTQUkR%rs?p&?AW$QDTQUZ-ZKgzP)ecJ$}lLjHoX6R2cXvW zz$l0a+ZH>iZ4 u2Vhw)T(1FZ|0`^*#oDoFR7znO6#oF=AvEY|nxgUm0000 Date: Tue, 8 Feb 2022 11:05:33 +0100 Subject: [PATCH 4/8] makes use of the pistol bullet model, transparency for water in GUIs --- .../com/hbm/blocks/generic/BlockBobble.java | 13 +++++++++ .../handler/guncfg/BulletConfigFactory.java | 6 ++++ .../hbm/handler/guncfg/Gun22LRFactory.java | 4 +-- .../handler/guncfg/Gun357MagnumFactory.java | 16 +++++------ .../handler/guncfg/Gun44MagnumFactory.java | 16 +++++------ .../hbm/handler/guncfg/Gun50AEFactory.java | 8 +++--- .../com/hbm/handler/guncfg/Gun9mmFactory.java | 6 ++-- .../java/com/hbm/inventory/FluidTank.java | 26 ++++++------------ .../assets/hbm/textures/gui/fluids/water.png | Bin 452 -> 2042 bytes 9 files changed, 52 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/hbm/blocks/generic/BlockBobble.java b/src/main/java/com/hbm/blocks/generic/BlockBobble.java index e11fa1e57..c154fc950 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBobble.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBobble.java @@ -26,6 +26,7 @@ import net.minecraft.network.play.server.S35PacketUpdateTileEntity; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -54,6 +55,18 @@ public class BlockBobble extends BlockContainer { public Item getItemDropped(int i, Random rand, int j) { return null; } + + @Override + public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player) { + + TileEntityBobble entity = (TileEntityBobble) world.getTileEntity(x, y, z); + + if(entity != null) { + return new ItemStack(this, 1, entity.type.ordinal()); + } + + return super.getPickBlock(target, world, x, y, z, player); + } @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { diff --git a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java index 018821428..4bd0647ce 100644 --- a/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/BulletConfigFactory.java @@ -89,6 +89,12 @@ public class BulletConfigFactory { return bullet; } + public static BulletConfiguration standardPistolConfig() { + BulletConfiguration bullet = standardBulletConfig(); + bullet.style = BulletConfiguration.STYLE_PISTOL; + bullet.plink = BulletConfiguration.PLINK_BULLET; + return bullet; + } public static BulletConfiguration standardBuckshotConfig() { diff --git a/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java index 5158a693a..aa669affa 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun22LRFactory.java @@ -61,7 +61,7 @@ public class Gun22LRFactory { static float inaccuracy = 5; public static BulletConfiguration get22LRConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_22lr; bullet.spread *= inaccuracy; @@ -73,7 +73,7 @@ public class Gun22LRFactory { public static BulletConfiguration get22LRAPConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_22lr_ap; bullet.spread *= inaccuracy; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java index e050b315d..9cacf7258 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun357MagnumFactory.java @@ -193,7 +193,7 @@ public class Gun357MagnumFactory { public static BulletConfiguration getRevIronConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.gun_revolver_iron_ammo; bullet.dmgMin = 8; @@ -204,7 +204,7 @@ public class Gun357MagnumFactory { public static BulletConfiguration getRevSteelConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.gun_revolver_ammo; bullet.dmgMin = 18; @@ -215,7 +215,7 @@ public class Gun357MagnumFactory { public static BulletConfiguration getRevLeadConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.gun_revolver_lead_ammo; bullet.dmgMin = 10; @@ -229,7 +229,7 @@ public class Gun357MagnumFactory { public static BulletConfiguration getRevGoldConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.gun_revolver_gold_ammo; bullet.dmgMin = 25; @@ -240,7 +240,7 @@ public class Gun357MagnumFactory { public static BulletConfiguration getRevDeshConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_357_desh; bullet.dmgMin = 30; @@ -251,7 +251,7 @@ public class Gun357MagnumFactory { public static BulletConfiguration getRevSchrabidiumConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.gun_revolver_schrabidium_ammo; bullet.dmgMin = 10000; @@ -263,7 +263,7 @@ public class Gun357MagnumFactory { public static BulletConfiguration getRevCursedConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.gun_revolver_cursed_ammo; bullet.dmgMin = 18; @@ -274,7 +274,7 @@ public class Gun357MagnumFactory { public static BulletConfiguration getRevNightmareConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.gun_revolver_nightmare_ammo; bullet.dmgMin = 1; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java index 09da3c53d..af0fc44cd 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun44MagnumFactory.java @@ -169,7 +169,7 @@ public class Gun44MagnumFactory { public static BulletConfiguration getNoPipConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_44; bullet.dmgMin = 18; @@ -180,7 +180,7 @@ public class Gun44MagnumFactory { public static BulletConfiguration getNoPipAPConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_44_ap; bullet.dmgMin = 25; @@ -193,7 +193,7 @@ public class Gun44MagnumFactory { public static BulletConfiguration getNoPipDUConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_44_du; bullet.dmgMin = 28; @@ -206,7 +206,7 @@ public class Gun44MagnumFactory { public static BulletConfiguration getPhosphorusConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_44_phosphorus; bullet.dmgMin = 18; @@ -240,7 +240,7 @@ public class Gun44MagnumFactory { public static BulletConfiguration getNoPipStarConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_44_star; bullet.dmgMin = 42; @@ -253,7 +253,7 @@ public class Gun44MagnumFactory { public static BulletConfiguration getPipConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_44_pip; bullet.dmgMin = 30; @@ -290,7 +290,7 @@ public class Gun44MagnumFactory { public static BulletConfiguration getBJConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_44_bj; bullet.dmgMin = 30; @@ -328,7 +328,7 @@ public class Gun44MagnumFactory { public static BulletConfiguration getSilverStormConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_44_silver; bullet.dmgMin = 30; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java index dc7d07191..1fe1ce16c 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun50AEFactory.java @@ -54,7 +54,7 @@ public class Gun50AEFactory { static float inaccuracy = 0.0005F; public static BulletConfiguration get50AEConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_50ae; bullet.spread *= inaccuracy; @@ -66,7 +66,7 @@ public class Gun50AEFactory { public static BulletConfiguration get50APConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_50ae_ap; bullet.spread *= inaccuracy; @@ -80,7 +80,7 @@ public class Gun50AEFactory { public static BulletConfiguration get50DUConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_50ae_du; bullet.spread *= inaccuracy; @@ -94,7 +94,7 @@ public class Gun50AEFactory { public static BulletConfiguration get50StarConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_50ae_star; bullet.spread *= inaccuracy; diff --git a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java index aae7fb0f3..5b3e4370d 100644 --- a/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java +++ b/src/main/java/com/hbm/handler/guncfg/Gun9mmFactory.java @@ -77,7 +77,7 @@ public class Gun9mmFactory { static float inaccuracy = 5; public static BulletConfiguration get9mmConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_9mm; bullet.spread *= inaccuracy; @@ -89,7 +89,7 @@ public class Gun9mmFactory { public static BulletConfiguration get9mmAPConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_9mm_ap; bullet.spread *= inaccuracy; @@ -103,7 +103,7 @@ public class Gun9mmFactory { public static BulletConfiguration get9mmDUConfig() { - BulletConfiguration bullet = BulletConfigFactory.standardBulletConfig(); + BulletConfiguration bullet = BulletConfigFactory.standardPistolConfig(); bullet.ammo = ModItems.ammo_9mm_du; bullet.spread *= inaccuracy; diff --git a/src/main/java/com/hbm/inventory/FluidTank.java b/src/main/java/com/hbm/inventory/FluidTank.java index d5d3360b0..eaad80666 100644 --- a/src/main/java/com/hbm/inventory/FluidTank.java +++ b/src/main/java/com/hbm/inventory/FluidTank.java @@ -3,6 +3,8 @@ package com.hbm.inventory; import java.util.ArrayList; import java.util.List; +import org.lwjgl.opengl.GL11; + import com.hbm.handler.ArmorModHandler; import com.hbm.interfaces.IPartiallyFillable; import com.hbm.inventory.fluid.FluidType; @@ -261,7 +263,9 @@ public class FluidTank { */ //TODO: add a directional parameter to allow tanks to grow horizontally public void renderTank(int x, int y, double z, int width, int height) { - + + GL11.glEnable(GL11.GL_BLEND); + y -= height; Minecraft.getMinecraft().getTextureManager().bindTexture(type.getTexture()); @@ -285,6 +289,8 @@ public class FluidTank { tessellator.addVertexWithUV(maxX, minY, z, maxU, minV); tessellator.addVertexWithUV(minX, minY, z, minU, minV); tessellator.draw(); + + GL11.glDisable(GL11.GL_BLEND); } public void renderTankInfo(GuiInfoContainer gui, int mouseX, int mouseY, int x, int y, int width, int height) { @@ -293,24 +299,8 @@ public class FluidTank { List list = new ArrayList(); list.add(I18n.format(this.type.getUnlocalizedName())); list.add(fluid + "/" + maxFluid + "mB"); - - /*if(type.temperature < 0) - list.add(EnumChatFormatting.BLUE + "" + type.temperature + "°C"); - if(type.temperature > 0) - list.add(EnumChatFormatting.RED + "" + type.temperature + "°C"); - if(type.isAntimatter()) - list.add(EnumChatFormatting.DARK_RED + "Antimatter"); - if(type.traits.contains(FluidTrait.CORROSIVE)) - list.add(EnumChatFormatting.YELLOW + "Corrosive"); - if(type.traits.contains(FluidTrait.CORROSIVE_2)) - list.add(EnumChatFormatting.GOLD + "Strongly Corrosive"); - if(type.traits.contains(FluidTrait.NO_CONTAINER)) - list.add(EnumChatFormatting.RED + "Cannot be stored in any universal tank"); - if(type.traits.contains(FluidTrait.LEAD_CONTAINER)) - list.add(EnumChatFormatting.YELLOW + "Requires hazardous material tank to hold");*/ type.addInfo(list); - gui.drawFluidInfo(list.toArray(new String[0]), mouseX, mouseY); } } @@ -329,7 +319,7 @@ public class FluidTank { if(max > 0) maxFluid = nbt.getInteger(s + "_max"); - type = FluidType.getEnumFromName(nbt.getString(s + "_type")); //compat + type = Fluids.fromName(nbt.getString(s + "_type")); //compat if(type == Fluids.NONE) type = Fluids.fromID(nbt.getInteger(s + "_type")); } diff --git a/src/main/resources/assets/hbm/textures/gui/fluids/water.png b/src/main/resources/assets/hbm/textures/gui/fluids/water.png index ba345dc31d42026a9d95976872c8596ec3fce9c3..87753a2e78ffb8fd382cae055dd4ac54e3ddb635 100644 GIT binary patch delta 2029 zcmVDdQ@0+Qek%>aB^>EX>4U6ba`-PAZ2)IW&i+q+O1bvuERDA z{MRXZ1d$T897l@<^aeeCN2?PjDbS)ZUaZg*ml=}sQ`cXAHuVQStQ{*WKDg+d#>Yk* zIbjj>{LDLPJHFQsy%%qCbsjK826r=mx@+kt$mQPP?ULtrxqtFy*$K zVKZdGc#d35r@;1$8haB>RVIL+0@e(~d}5*DHx7S=0z6lOCKHU&VD@pTZ^Hj_9Yd}4 z(k0U2V1>B27a+pu%=K?*fe>m7QyKVc`uF8cJfsDiLwwB}kOyjI&OhbKdnCmAvuRi+A4p;G<8$ z1REr{;D191F{H@RV1!9@(W@9@j48osg6V|a2^uM7&L-O|*=3(YjyV;SPq9UcE53vh zOR8K=Mf+D*y{e(cnl8FfN|(Lla+klt6|dA#Yt1yXtAZk+G6#cHF_}j&#cj6 ztutnap1)ax*!yjQ`Z$r!85m`i<<4B^Oh-mj2!l0}PEMuH7#Oq{ zu{1i|-OT+XZ%XXH;*EbXr#f~22Xm@Zx0w6n?F(x)jT6NTf_fKrOtonkY?pH(aY(Hi z+gPV&g{-(>beD3(3>k|+p^QZedi+ixW9Y(QRbvG@=XR!hmkcd9n)Y;vb9*FOt^?a# z$A3O=RAf8XR)@~TXew*V%VLq~LQ~yNj}M#Fav#St)7yUTTES~qhoHD^Pe1Q@ zYz0O~qfPr5Aaip-F${A!%C=p*6QA4f-D(-cfS)=ERa@UIL$WYk@CWcTR8W6Ay^kYt(6TBePOinNSt+JC{W#B^NT+!jc#A*$Nl{_4VrkLNJ8(kJs9 z*xmGy9TMBYtMYv zouF!RS$p~(O$V?(*pF8UDhNJ*Pn z1(sR)Y3Q&GWY%bKI0JSAaNa#}y2EfeDF9zJ0LCDneUKf+RlS+R3`Fd%UhuwiI(?}9 zj8=ty8mxr(z}dbq2yTpAc;@wXSAQ=8{yu45iatICcQ2_$-$%u)h=V?59e)I5Qs1Ip z2FDMTuCd8k`Ir&+5K=c7pY6Y=(60`A z4Oo3W7|tB~h4{xD#{VL#*4UndhklWq-%ryH>p85{ZYSAe*~l70XCQ!^)qkz~a69SW zlSVy9&CmNeXFn=!EEHB&?h)W;#a#GTX8J-k*!5cB@WM7@yE5LfC)BCn%?;00Z?ZGP z@lJkBo-Ws?1E*GuEOY8*yczD|Q$TX{J)Eo=yBp;$X?=J0A#hVWUs64GhzSaN$0v1U`K~y-)J(JB+95D=pKgsq?c7~-0fn0cwJVzcm zZ^DHtNCnt}g`Gd!QVuhVj;e0ETP?}2-=BY$fe{BcvK0yr2#BH@X@A|w01`+c(KHv* zch_9U9ZeiwIf#NARb&N8AmLPZu(Fc9GW)_@M#6mb!{-x^?hrK*MZhcSj#(i~CA)(t zK@+VAsylXPWo6`qgMdZWUy3{ROlU9ITcOm<0;njefv5pl21ZemD7Zs(qadJxgrFJ- z^O1LV3_t`$(K4;SvVYo)sw7*O8p=X~*2CrnVl(MOg%>|b= zQ{1Qsieqk&M@}LHjVM4K7=YUS;HL%&642?*-(u6V?{DSi^z8qpBOjKT5okL4GBe?r zZxI6wue@mVkUBb1G&a3-%Zb4aLZaDS$@g|oKOOyJi*eC_0)MSWR0B;}n99i1T(FOa zd%tI`3NRo2@bLur))f#TxPQ&+Bms59%FGxwqWBugxkOh0to}tIL|To+GBe{4T3RdQ z=!W4`AOO{!u#o}sw&GtKDMAoM>&z&MMz^)OC4k5(d$SOb?eXn4&Nt(}VxlIZR|;UF zaL!#5$?FOhMP_5mP9t&tv1(5U4JV#RM zZoJb;u0%iN_onfu2VoFczkdG-KxME^EM6xGGhmw{d{2{z7T|!zv5h4PBk6*Iv_z6f z0_Sindcb8uGYQ8E$uL>4?f3A^-Y4Pf`}?iTfDlLK%&c@vJAW{tyOD%c`}(!>KXKV) zhV$VCJq!pSRMiC=E`cP(yvdTrHfIFcx$AdjKF?r7&n(#;z(N*6AaVZAbC+0zLH7k$ zF*8U7ToQ|~XNbTENt_{MLJ%Hs0TRN^9;%8{YStTbf!p{?KbT*UlWV1&wX(~e5`k%>m-`ZmI3?w6%36%G9jmWD5-0$9t{Ri43 VEfiN=iTMBk002ovPDHLkV1nGF$9Mn$ From 417969fe83c3a443696a3abb82922a69592a45a8 Mon Sep 17 00:00:00 2001 From: Boblet Date: Tue, 8 Feb 2022 15:47:54 +0100 Subject: [PATCH 5/8] organized tile entities, upgrades for solidifier and liquefactor --- .../hbm/blocks/generic/BlockStorageCrate.java | 8 +++---- .../hbm/blocks/machine/BlockFluidBarrel.java | 2 +- .../blocks/machine/DummyBlockFluidTank.java | 2 +- .../hbm/blocks/machine/MachineBattery.java | 2 +- .../blocks/machine/MachineBigAssTank9000.java | 2 +- .../hbm/blocks/machine/MachineFluidTank.java | 2 +- .../blocks/machine/MachineLiquefactor.java | 2 +- .../com/hbm/blocks/machine/MachineOrbus.java | 2 +- .../hbm/blocks/machine/MachinePuF6Tank.java | 2 +- .../hbm/blocks/machine/MachineSolidifier.java | 2 +- .../hbm/blocks/machine/MachineUF6Tank.java | 2 +- .../com/hbm/blocks/machine/SoyuzCapsule.java | 2 +- .../entity/missile/EntitySoyuzCapsule.java | 2 +- src/main/java/com/hbm/handler/GUIHandler.java | 5 ++--- .../inventory/container/ContainerBarrel.java | 2 +- .../container/ContainerCrateIron.java | 3 ++- .../container/ContainerCrateSteel.java | 2 +- .../container/ContainerCrateTungsten.java | 2 +- .../container/ContainerLiquefactor.java | 2 +- .../container/ContainerMachineBattery.java | 2 +- .../container/ContainerMachineFluidTank.java | 2 +- .../container/ContainerPuF6Tank.java | 2 +- .../inventory/container/ContainerSafe.java | 2 +- .../container/ContainerSolidifier.java | 2 +- .../container/ContainerSoyuzCapsule.java | 2 +- .../inventory/container/ContainerUF6Tank.java | 2 +- .../java/com/hbm/inventory/gui/GUIBarrel.java | 2 +- .../com/hbm/inventory/gui/GUICrateIron.java | 3 ++- .../com/hbm/inventory/gui/GUICrateSteel.java | 2 +- .../hbm/inventory/gui/GUICrateTungsten.java | 2 +- .../com/hbm/inventory/gui/GUILiquefactor.java | 2 +- .../hbm/inventory/gui/GUIMachineBattery.java | 2 +- .../inventory/gui/GUIMachineFluidTank.java | 2 +- .../hbm/inventory/gui/GUIMachinePuF6Tank.java | 2 +- .../hbm/inventory/gui/GUIMachineUF6Tank.java | 2 +- .../java/com/hbm/inventory/gui/GUISafe.java | 2 +- .../com/hbm/inventory/gui/GUISolidifier.java | 2 +- .../hbm/inventory/gui/GUISoyuzCapsule.java | 2 +- src/main/java/com/hbm/lib/HbmWorldGen.java | 4 ++-- src/main/java/com/hbm/main/ClientProxy.java | 1 + .../java/com/hbm/packet/AuxButtonPacket.java | 4 ++-- .../hbm/render/tileentity/RenderBAT9000.java | 2 +- .../render/tileentity/RenderFluidBarrel.java | 2 +- .../render/tileentity/RenderFluidTank.java | 3 ++- .../render/tileentity/RenderLiquefactor.java | 2 +- .../hbm/render/tileentity/RenderOrbus.java | 2 +- .../render/tileentity/RenderSolidifier.java | 2 +- .../java/com/hbm/tileentity/TileMappings.java | 1 + .../machine/TileEntityMachineAssembler.java | 2 ++ .../machine/TileEntityMachineChemplant.java | 2 ++ .../machine/TileEntityMachineFENSU.java | 1 + .../TileEntityMachineLiquefactor.java | 21 ++++++++++++++++--- .../TileEntityMachineSolidifier.java | 21 ++++++++++++++++--- .../{ => storage}/TileEntityBarrel.java | 9 ++++---- .../{ => storage}/TileEntityCrateIron.java | 4 +++- .../{ => storage}/TileEntityCrateSteel.java | 4 +++- .../TileEntityCrateTungsten.java | 3 ++- .../TileEntityMachineBAT9000.java | 2 +- .../TileEntityMachineBattery.java | 2 +- .../TileEntityMachineFluidTank.java | 2 +- .../{ => storage}/TileEntityMachineOrbus.java | 2 +- .../TileEntityMachinePuF6Tank.java | 2 +- .../TileEntityMachineUF6Tank.java | 2 +- .../machine/{ => storage}/TileEntitySafe.java | 4 +++- .../{ => storage}/TileEntitySoyuzCapsule.java | 2 +- .../java/com/hbm/world/dungeon/Barrel.java | 2 +- .../com/hbm/world/dungeon/DesertAtom002.java | 2 +- .../com/hbm/world/dungeon/DesertAtom003.java | 4 ++-- .../java/com/hbm/world/dungeon/Radio01.java | 2 +- .../java/com/hbm/world/dungeon/Relay.java | 2 +- .../generator/room/TestDungeonRoom8.java | 2 +- 71 files changed, 127 insertions(+), 82 deletions(-) rename src/main/java/com/hbm/tileentity/machine/{ => oil}/TileEntityMachineLiquefactor.java (87%) rename src/main/java/com/hbm/tileentity/machine/{ => oil}/TileEntityMachineSolidifier.java (86%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityBarrel.java (95%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityCrateIron.java (97%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityCrateSteel.java (97%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityCrateTungsten.java (98%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityMachineBAT9000.java (97%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityMachineBattery.java (95%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityMachineFluidTank.java (99%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityMachineOrbus.java (97%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityMachinePuF6Tank.java (94%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntityMachineUF6Tank.java (94%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntitySafe.java (97%) rename src/main/java/com/hbm/tileentity/machine/{ => storage}/TileEntitySoyuzCapsule.java (92%) diff --git a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java index d86689853..91c44cfd1 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java +++ b/src/main/java/com/hbm/blocks/generic/BlockStorageCrate.java @@ -7,11 +7,11 @@ import com.hbm.items.ModItems; import com.hbm.items.tool.ItemLock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityCrateIron; -import com.hbm.tileentity.machine.TileEntityCrateSteel; -import com.hbm.tileentity.machine.TileEntityCrateTungsten; import com.hbm.tileentity.machine.TileEntityLockableBase; -import com.hbm.tileentity.machine.TileEntitySafe; +import com.hbm.tileentity.machine.storage.TileEntityCrateIron; +import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; +import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; +import com.hbm.tileentity.machine.storage.TileEntitySafe; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java index dd1d2511e..159b10303 100644 --- a/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java +++ b/src/main/java/com/hbm/blocks/machine/BlockFluidBarrel.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityBarrel; +import com.hbm.tileentity.machine.storage.TileEntityBarrel; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; diff --git a/src/main/java/com/hbm/blocks/machine/DummyBlockFluidTank.java b/src/main/java/com/hbm/blocks/machine/DummyBlockFluidTank.java index 38641b40d..cccb4b798 100644 --- a/src/main/java/com/hbm/blocks/machine/DummyBlockFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/DummyBlockFluidTank.java @@ -6,7 +6,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IDummy; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineFluidTank; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/machine/MachineBattery.java b/src/main/java/com/hbm/blocks/machine/MachineBattery.java index 80fe0ec8c..fb4913d82 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBattery.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBattery.java @@ -6,7 +6,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDiFurnace; -import com.hbm.tileentity.machine.TileEntityMachineBattery; +import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java index a7c04e8f9..6f9d58b59 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java +++ b/src/main/java/com/hbm/blocks/machine/MachineBigAssTank9000.java @@ -5,7 +5,7 @@ import com.hbm.blocks.ModBlocks; import com.hbm.handler.MultiblockHandlerXR; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.TileEntityMachineBAT9000; +import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java index d5ded328d..6de4dd1a6 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineFluidTank.java @@ -7,7 +7,7 @@ import com.hbm.handler.MultiblockHandler; import com.hbm.interfaces.IMultiblock; import com.hbm.main.MainRegistry; import com.hbm.tileentity.machine.TileEntityDummy; -import com.hbm.tileentity.machine.TileEntityMachineFluidTank; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java b/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java index d63e89512..729f06640 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java +++ b/src/main/java/com/hbm/blocks/machine/MachineLiquefactor.java @@ -8,7 +8,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.TileEntityMachineLiquefactor; +import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java index 60b36984b..5bf08f383 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineOrbus.java +++ b/src/main/java/com/hbm/blocks/machine/MachineOrbus.java @@ -4,7 +4,7 @@ import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.TileEntityMachineOrbus; +import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java index dadea4072..280ce1519 100644 --- a/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachinePuF6Tank.java @@ -7,7 +7,7 @@ import com.hbm.handler.MultiblockHandler; import com.hbm.interfaces.IMultiblock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachinePuF6Tank; +import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java b/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java index 4c3638218..96d426511 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java +++ b/src/main/java/com/hbm/blocks/machine/MachineSolidifier.java @@ -7,7 +7,7 @@ import org.lwjgl.input.Keyboard; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ITooltipProvider; import com.hbm.tileentity.TileEntityProxyCombo; -import com.hbm.tileentity.machine.TileEntityMachineSolidifier; +import com.hbm.tileentity.machine.oil.TileEntityMachineSolidifier; import net.minecraft.block.material.Material; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java index 5249c08b2..e0a5df63c 100644 --- a/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java +++ b/src/main/java/com/hbm/blocks/machine/MachineUF6Tank.java @@ -7,7 +7,7 @@ import com.hbm.handler.MultiblockHandler; import com.hbm.interfaces.IMultiblock; import com.hbm.lib.RefStrings; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachineUF6Tank; +import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import cpw.mods.fml.relauncher.Side; diff --git a/src/main/java/com/hbm/blocks/machine/SoyuzCapsule.java b/src/main/java/com/hbm/blocks/machine/SoyuzCapsule.java index 915cabafa..aab456164 100644 --- a/src/main/java/com/hbm/blocks/machine/SoyuzCapsule.java +++ b/src/main/java/com/hbm/blocks/machine/SoyuzCapsule.java @@ -4,7 +4,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntitySoyuzCapsule; +import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; import cpw.mods.fml.common.network.internal.FMLNetworkHandler; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/entity/missile/EntitySoyuzCapsule.java b/src/main/java/com/hbm/entity/missile/EntitySoyuzCapsule.java index f0321c8ea..9dd767f66 100644 --- a/src/main/java/com/hbm/entity/missile/EntitySoyuzCapsule.java +++ b/src/main/java/com/hbm/entity/missile/EntitySoyuzCapsule.java @@ -2,7 +2,7 @@ package com.hbm.entity.missile; import com.hbm.blocks.ModBlocks; import com.hbm.items.ModItems; -import com.hbm.tileentity.machine.TileEntitySoyuzCapsule; +import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; diff --git a/src/main/java/com/hbm/handler/GUIHandler.java b/src/main/java/com/hbm/handler/GUIHandler.java index 222974e54..6a17678b6 100644 --- a/src/main/java/com/hbm/handler/GUIHandler.java +++ b/src/main/java/com/hbm/handler/GUIHandler.java @@ -10,10 +10,9 @@ import com.hbm.inventory.inv.InventoryLeadBox; import com.hbm.items.ModItems; import com.hbm.tileentity.bomb.*; import com.hbm.tileentity.machine.*; -import com.hbm.tileentity.machine.oil.TileEntityMachineGasFlare; -import com.hbm.tileentity.machine.oil.TileEntityMachineRefinery; -import com.hbm.tileentity.machine.oil.TileEntityOilDrillBase; +import com.hbm.tileentity.machine.oil.*; import com.hbm.tileentity.machine.rbmk.*; +import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.turret.*; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerBarrel.java b/src/main/java/com/hbm/inventory/container/ContainerBarrel.java index bb49b6000..1c4ae8e44 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerBarrel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerBarrel.java @@ -1,6 +1,6 @@ package com.hbm.inventory.container; -import com.hbm.tileentity.machine.TileEntityBarrel; +import com.hbm.tileentity.machine.storage.TileEntityBarrel; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java index 9a479d8ca..7f6a92d8a 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateIron.java @@ -1,6 +1,7 @@ package com.hbm.inventory.container; -import com.hbm.tileentity.machine.TileEntityCrateIron; +import com.hbm.tileentity.machine.storage.TileEntityCrateIron; + import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.inventory.Container; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java index 9090c4224..ceb673ac1 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateSteel.java @@ -1,6 +1,6 @@ package com.hbm.inventory.container; -import com.hbm.tileentity.machine.TileEntityCrateSteel; +import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java index 1bda75cc7..7103e95e7 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java +++ b/src/main/java/com/hbm/inventory/container/ContainerCrateTungsten.java @@ -1,6 +1,6 @@ package com.hbm.inventory.container; -import com.hbm.tileentity.machine.TileEntityCrateTungsten; +import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerLiquefactor.java b/src/main/java/com/hbm/inventory/container/ContainerLiquefactor.java index e12ffd7c1..3cf745bcd 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerLiquefactor.java +++ b/src/main/java/com/hbm/inventory/container/ContainerLiquefactor.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotUpgrade; -import com.hbm.tileentity.machine.TileEntityMachineLiquefactor; +import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineBattery.java b/src/main/java/com/hbm/inventory/container/ContainerMachineBattery.java index 8a6821224..f6317f10e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineBattery.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineBattery.java @@ -1,6 +1,6 @@ package com.hbm.inventory.container; -import com.hbm.tileentity.machine.TileEntityMachineBattery; +import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerMachineFluidTank.java b/src/main/java/com/hbm/inventory/container/ContainerMachineFluidTank.java index aec60d831..ca77a0c70 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerMachineFluidTank.java +++ b/src/main/java/com/hbm/inventory/container/ContainerMachineFluidTank.java @@ -1,6 +1,6 @@ package com.hbm.inventory.container; -import com.hbm.tileentity.machine.TileEntityMachineFluidTank; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java index 2ea145880..9f94a4e90 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java +++ b/src/main/java/com/hbm/inventory/container/ContainerPuF6Tank.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; -import com.hbm.tileentity.machine.TileEntityMachinePuF6Tank; +import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerSafe.java b/src/main/java/com/hbm/inventory/container/ContainerSafe.java index bb2593461..3957b899e 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSafe.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSafe.java @@ -1,6 +1,6 @@ package com.hbm.inventory.container; -import com.hbm.tileentity.machine.TileEntitySafe; +import com.hbm.tileentity.machine.storage.TileEntitySafe; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerSolidifier.java b/src/main/java/com/hbm/inventory/container/ContainerSolidifier.java index b16c27f2d..cfac4a148 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSolidifier.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSolidifier.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotUpgrade; -import com.hbm.tileentity.machine.TileEntityMachineSolidifier; +import com.hbm.tileentity.machine.oil.TileEntityMachineSolidifier; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerSoyuzCapsule.java b/src/main/java/com/hbm/inventory/container/ContainerSoyuzCapsule.java index 60e689f7c..390391847 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerSoyuzCapsule.java +++ b/src/main/java/com/hbm/inventory/container/ContainerSoyuzCapsule.java @@ -1,6 +1,6 @@ package com.hbm.inventory.container; -import com.hbm.tileentity.machine.TileEntitySoyuzCapsule; +import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java b/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java index 73c5d6594..9199bf973 100644 --- a/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java +++ b/src/main/java/com/hbm/inventory/container/ContainerUF6Tank.java @@ -1,7 +1,7 @@ package com.hbm.inventory.container; import com.hbm.inventory.SlotMachineOutput; -import com.hbm.tileentity.machine.TileEntityMachineUF6Tank; +import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.InventoryPlayer; diff --git a/src/main/java/com/hbm/inventory/gui/GUIBarrel.java b/src/main/java/com/hbm/inventory/gui/GUIBarrel.java index 5342faf13..e197a1d3b 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIBarrel.java +++ b/src/main/java/com/hbm/inventory/gui/GUIBarrel.java @@ -7,7 +7,7 @@ import com.hbm.inventory.container.ContainerBarrel; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.TileEntityBarrel; +import com.hbm.tileentity.machine.storage.TileEntityBarrel; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateIron.java b/src/main/java/com/hbm/inventory/gui/GUICrateIron.java index d134c782a..83ae322de 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateIron.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateIron.java @@ -4,7 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCrateIron; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityCrateIron; +import com.hbm.tileentity.machine.storage.TileEntityCrateIron; + import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java b/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java index f5ec9d945..2deaef207 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateSteel.java @@ -4,7 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCrateSteel; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityCrateSteel; +import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; diff --git a/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java b/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java index 40fb78469..7da006832 100644 --- a/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java +++ b/src/main/java/com/hbm/inventory/gui/GUICrateTungsten.java @@ -4,7 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerCrateTungsten; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityCrateTungsten; +import com.hbm.tileentity.machine.storage.TileEntityCrateTungsten; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; diff --git a/src/main/java/com/hbm/inventory/gui/GUILiquefactor.java b/src/main/java/com/hbm/inventory/gui/GUILiquefactor.java index 0053d6866..102e5ac01 100644 --- a/src/main/java/com/hbm/inventory/gui/GUILiquefactor.java +++ b/src/main/java/com/hbm/inventory/gui/GUILiquefactor.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerLiquefactor; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineLiquefactor; +import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java index a79480997..9c28e2c69 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineBattery.java @@ -13,7 +13,7 @@ import com.hbm.inventory.container.ContainerMachineBattery; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.TileEntityMachineBattery; +import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import com.hbm.util.BobMathUtil; public class GUIMachineBattery extends GuiInfoContainer { diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java b/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java index 03a4fff72..5563d0a20 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineFluidTank.java @@ -7,7 +7,7 @@ import com.hbm.inventory.container.ContainerMachineFluidTank; import com.hbm.lib.RefStrings; import com.hbm.packet.AuxButtonPacket; import com.hbm.packet.PacketDispatcher; -import com.hbm.tileentity.machine.TileEntityMachineFluidTank; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java index 0bfd234c9..e2831808a 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachinePuF6Tank.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerPuF6Tank; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachinePuF6Tank; +import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java b/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java index d6d587474..f9bffb001 100644 --- a/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java +++ b/src/main/java/com/hbm/inventory/gui/GUIMachineUF6Tank.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerUF6Tank; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineUF6Tank; +import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUISafe.java b/src/main/java/com/hbm/inventory/gui/GUISafe.java index e5a40b72f..a7c6d0e8d 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISafe.java +++ b/src/main/java/com/hbm/inventory/gui/GUISafe.java @@ -4,7 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerSafe; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntitySafe; +import com.hbm.tileentity.machine.storage.TileEntitySafe; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; diff --git a/src/main/java/com/hbm/inventory/gui/GUISolidifier.java b/src/main/java/com/hbm/inventory/gui/GUISolidifier.java index cd70af185..ab193ae90 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISolidifier.java +++ b/src/main/java/com/hbm/inventory/gui/GUISolidifier.java @@ -5,7 +5,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerSolidifier; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntityMachineSolidifier; +import com.hbm.tileentity.machine.oil.TileEntityMachineSolidifier; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.I18n; diff --git a/src/main/java/com/hbm/inventory/gui/GUISoyuzCapsule.java b/src/main/java/com/hbm/inventory/gui/GUISoyuzCapsule.java index e880738c4..055aeabd5 100644 --- a/src/main/java/com/hbm/inventory/gui/GUISoyuzCapsule.java +++ b/src/main/java/com/hbm/inventory/gui/GUISoyuzCapsule.java @@ -4,7 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.inventory.container.ContainerSoyuzCapsule; import com.hbm.lib.RefStrings; -import com.hbm.tileentity.machine.TileEntitySoyuzCapsule; +import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.inventory.GuiContainer; diff --git a/src/main/java/com/hbm/lib/HbmWorldGen.java b/src/main/java/com/hbm/lib/HbmWorldGen.java index 88ddb03cf..2662fea0a 100644 --- a/src/main/java/com/hbm/lib/HbmWorldGen.java +++ b/src/main/java/com/hbm/lib/HbmWorldGen.java @@ -7,8 +7,8 @@ import com.hbm.config.GeneralConfig; import com.hbm.config.WorldConfig; import com.hbm.items.ModItems; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntitySafe; -import com.hbm.tileentity.machine.TileEntitySoyuzCapsule; +import com.hbm.tileentity.machine.storage.TileEntitySafe; +import com.hbm.tileentity.machine.storage.TileEntitySoyuzCapsule; import com.hbm.world.dungeon.AncientTomb; import com.hbm.world.dungeon.Antenna; import com.hbm.world.dungeon.ArcticVault; diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index ad5af54f7..4a14f4409 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -79,6 +79,7 @@ import com.hbm.tileentity.deco.*; import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; import com.hbm.tileentity.machine.rbmk.*; +import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; diff --git a/src/main/java/com/hbm/packet/AuxButtonPacket.java b/src/main/java/com/hbm/packet/AuxButtonPacket.java index 98d56995e..a0bdc91fe 100644 --- a/src/main/java/com/hbm/packet/AuxButtonPacket.java +++ b/src/main/java/com/hbm/packet/AuxButtonPacket.java @@ -8,17 +8,17 @@ import com.hbm.items.weapon.ItemMissile.PartSize; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityTickingBase; import com.hbm.tileentity.bomb.TileEntityLaunchTable; -import com.hbm.tileentity.machine.TileEntityBarrel; import com.hbm.tileentity.machine.TileEntityCoreEmitter; import com.hbm.tileentity.machine.TileEntityCoreStabilizer; import com.hbm.tileentity.machine.TileEntityForceField; -import com.hbm.tileentity.machine.TileEntityMachineBattery; import com.hbm.tileentity.machine.TileEntityMachineMiningLaser; import com.hbm.tileentity.machine.TileEntityMachineMissileAssembly; import com.hbm.tileentity.machine.TileEntityMachineReactorLarge; import com.hbm.tileentity.machine.TileEntityRadioRec; import com.hbm.tileentity.machine.TileEntityReactorZirnox; import com.hbm.tileentity.machine.TileEntitySoyuzLauncher; +import com.hbm.tileentity.machine.storage.TileEntityBarrel; +import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; diff --git a/src/main/java/com/hbm/render/tileentity/RenderBAT9000.java b/src/main/java/com/hbm/render/tileentity/RenderBAT9000.java index fcc4d174e..7ce43646c 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderBAT9000.java +++ b/src/main/java/com/hbm/render/tileentity/RenderBAT9000.java @@ -7,7 +7,7 @@ import com.hbm.inventory.fluid.Fluids; import com.hbm.main.ResourceManager; import com.hbm.render.util.DiamondPronter; import com.hbm.render.util.EnumSymbol; -import com.hbm.tileentity.machine.TileEntityMachineBAT9000; +import com.hbm.tileentity.machine.storage.TileEntityMachineBAT9000; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.Tessellator; diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidBarrel.java b/src/main/java/com/hbm/render/tileentity/RenderFluidBarrel.java index 7b788108e..4eb711e4f 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidBarrel.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidBarrel.java @@ -6,7 +6,7 @@ import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.render.util.DiamondPronter; import com.hbm.render.util.EnumSymbol; -import com.hbm.tileentity.machine.TileEntityBarrel; +import com.hbm.tileentity.machine.storage.TileEntityBarrel; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; diff --git a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java index 4a23a3ddb..165729f45 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java +++ b/src/main/java/com/hbm/render/tileentity/RenderFluidTank.java @@ -4,7 +4,8 @@ import org.lwjgl.opengl.GL11; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineFluidTank; +import com.hbm.tileentity.machine.storage.TileEntityMachineFluidTank; + import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; diff --git a/src/main/java/com/hbm/render/tileentity/RenderLiquefactor.java b/src/main/java/com/hbm/render/tileentity/RenderLiquefactor.java index c7e4d8185..76b2c8632 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderLiquefactor.java +++ b/src/main/java/com/hbm/render/tileentity/RenderLiquefactor.java @@ -3,7 +3,7 @@ package com.hbm.render.tileentity; import org.lwjgl.opengl.GL11; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineLiquefactor; +import com.hbm.tileentity.machine.oil.TileEntityMachineLiquefactor; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; diff --git a/src/main/java/com/hbm/render/tileentity/RenderOrbus.java b/src/main/java/com/hbm/render/tileentity/RenderOrbus.java index cf951b07d..92b23a7cc 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderOrbus.java +++ b/src/main/java/com/hbm/render/tileentity/RenderOrbus.java @@ -7,7 +7,7 @@ import com.hbm.main.ResourceManager; import com.hbm.render.util.BeamPronter; import com.hbm.render.util.BeamPronter.EnumBeamType; import com.hbm.render.util.BeamPronter.EnumWaveType; -import com.hbm.tileentity.machine.TileEntityMachineOrbus; +import com.hbm.tileentity.machine.storage.TileEntityMachineOrbus; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; diff --git a/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java b/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java index bad93f910..8be0f6af6 100644 --- a/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java +++ b/src/main/java/com/hbm/render/tileentity/RenderSolidifier.java @@ -4,7 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.blocks.BlockDummyable; import com.hbm.main.ResourceManager; -import com.hbm.tileentity.machine.TileEntityMachineSolidifier; +import com.hbm.tileentity.machine.oil.TileEntityMachineSolidifier; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; diff --git a/src/main/java/com/hbm/tileentity/TileMappings.java b/src/main/java/com/hbm/tileentity/TileMappings.java index 48c578b18..5a1a76d81 100644 --- a/src/main/java/com/hbm/tileentity/TileMappings.java +++ b/src/main/java/com/hbm/tileentity/TileMappings.java @@ -11,6 +11,7 @@ import com.hbm.tileentity.machine.*; import com.hbm.tileentity.machine.oil.*; import com.hbm.tileentity.machine.pile.*; import com.hbm.tileentity.machine.rbmk.*; +import com.hbm.tileentity.machine.storage.*; import com.hbm.tileentity.network.*; import com.hbm.tileentity.turret.*; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java index 1f547a8d1..8bd372ce6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineAssembler.java @@ -19,6 +19,8 @@ import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEAssemblerPacket; import com.hbm.sound.AudioWrapper; import com.hbm.tileentity.TileEntityMachineBase; +import com.hbm.tileentity.machine.storage.TileEntityCrateIron; +import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import api.hbm.energy.IBatteryItem; import api.hbm.energy.IEnergyUser; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java index 30ad77711..71e3e5bd6 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineChemplant.java @@ -23,6 +23,8 @@ import com.hbm.packet.AuxParticlePacket; import com.hbm.packet.LoopedSoundPacket; import com.hbm.packet.PacketDispatcher; import com.hbm.packet.TEChemplantPacket; +import com.hbm.tileentity.machine.storage.TileEntityCrateIron; +import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import com.hbm.util.ItemStackUtil; import api.hbm.energy.IBatteryItem; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java index 265f6253d..7126d6310 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFENSU.java @@ -1,6 +1,7 @@ package com.hbm.tileentity.machine; import com.hbm.lib.Library; +import com.hbm.tileentity.machine.storage.TileEntityMachineBattery; import api.hbm.energy.IEnergyConductor; import api.hbm.energy.IEnergyConnector; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLiquefactor.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java similarity index 87% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineLiquefactor.java rename to src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java index d0fcf7dcf..9f7de17bc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineLiquefactor.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineLiquefactor.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.oil; import java.util.ArrayList; import java.util.List; @@ -7,9 +7,11 @@ import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidSource; import com.hbm.inventory.FluidStack; import com.hbm.inventory.FluidTank; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.LiquefactionRecipes; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; @@ -24,9 +26,11 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public long power; public static final long maxPower = 100000; - public static final int usage = 500; + public static final int usageBase = 500; + public int usage; public int progress; - public static final int processTime = 200; + public static final int processTimeBase = 200; + public int processTime; public FluidTank tank; @@ -53,6 +57,13 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X); this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z); + + UpgradeManager.eval(slots, 2, 3); + int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int power = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + + this.processTime = processTimeBase - (processTimeBase / 4) * speed; + this.usage = usageBase - (usageBase / 4) * speed; if(this.canProcess()) this.process(); @@ -66,6 +77,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setInteger("progress", this.progress); + data.setInteger("usage", this.usage); + data.setInteger("processTime", this.processTime); this.networkPack(data, 50); } } @@ -125,6 +138,8 @@ public class TileEntityMachineLiquefactor extends TileEntityMachineBase implemen public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); + this.usage = nbt.getInteger("usage"); + this.processTime = nbt.getInteger("processTime"); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java similarity index 86% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java rename to src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java index a68f0b169..ab7493b2c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSolidifier.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineSolidifier.java @@ -1,13 +1,15 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.oil; import java.util.ArrayList; import java.util.List; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.FluidTank; +import com.hbm.inventory.UpgradeManager; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.recipes.SolidificationRecipes; +import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.Tuple.Pair; @@ -23,9 +25,11 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public long power; public static final long maxPower = 100000; - public static final int usage = 500; + public static final int usageBase = 500; + public int usage; public int progress; - public static final int processTime = 200; + public static final int processTimeBase = 200; + public int processTime; public FluidTank tank; @@ -53,6 +57,13 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement this.trySubscribe(worldObj, xCoord - 2, yCoord + 1, zCoord, Library.NEG_X); this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord + 2, Library.POS_Z); this.trySubscribe(worldObj, xCoord, yCoord + 1, zCoord - 2, Library.NEG_Z); + + UpgradeManager.eval(slots, 2, 3); + int speed = Math.min(UpgradeManager.getLevel(UpgradeType.SPEED), 3); + int power = Math.min(UpgradeManager.getLevel(UpgradeType.POWER), 3); + + this.processTime = processTimeBase - (processTimeBase / 4) * speed; + this.usage = usageBase - (usageBase / 4) * speed; if(this.canProcess()) this.process(); @@ -62,6 +73,8 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement NBTTagCompound data = new NBTTagCompound(); data.setLong("power", this.power); data.setInteger("progress", this.progress); + data.setInteger("usage", this.usage); + data.setInteger("processTime", this.processTime); this.networkPack(data, 50); } } @@ -136,6 +149,8 @@ public class TileEntityMachineSolidifier extends TileEntityMachineBase implement public void networkUnpack(NBTTagCompound nbt) { this.power = nbt.getLong("power"); this.progress = nbt.getInteger("progress"); + this.usage = nbt.getInteger("usage"); + this.processTime = nbt.getInteger("processTime"); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityBarrel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java similarity index 95% rename from src/main/java/com/hbm/tileentity/machine/TileEntityBarrel.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java index 3ac9a6832..4555402bd 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityBarrel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityBarrel.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import java.util.ArrayList; import java.util.List; @@ -137,7 +137,7 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc if(mode == 2 || mode == 3) return 0; - return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; + return type == this.tank.getTankType() ? tank.getMaxFill() : 0; } @Override @@ -167,13 +167,12 @@ public class TileEntityBarrel extends TileEntityMachineBase implements IFluidAcc @Override public int getFluidFill(FluidType type) { - return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; + return type == this.tank.getTankType() ? tank.getFill() : 0; } @Override public void setFluidFill(int i, FluidType type) { - if(type.name().equals(tank.getTankType().name())) - tank.setFill(i); + if(type == tank.getTankType()) tank.setFill(i); } @Override diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrateIron.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java similarity index 97% rename from src/main/java/com/hbm/tileentity/machine/TileEntityCrateIron.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java index 96ca9f4a3..29298a441 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrateIron.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateIron.java @@ -1,4 +1,6 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; + +import com.hbm.tileentity.machine.TileEntityLockableBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrateSteel.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java similarity index 97% rename from src/main/java/com/hbm/tileentity/machine/TileEntityCrateSteel.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java index 68aea3e3a..135e74e32 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrateSteel.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateSteel.java @@ -1,4 +1,6 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; + +import com.hbm.tileentity.machine.TileEntityLockableBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityCrateTungsten.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java similarity index 98% rename from src/main/java/com/hbm/tileentity/machine/TileEntityCrateTungsten.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java index 770c1111e..1a509aff3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityCrateTungsten.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityCrateTungsten.java @@ -1,6 +1,7 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import com.hbm.items.ModItems; +import com.hbm.tileentity.machine.TileEntityLockableBase; import api.hbm.block.ILaserable; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBAT9000.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java similarity index 97% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineBAT9000.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java index 3aa65b08d..411a42a3f 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBAT9000.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBAT9000.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java similarity index 95% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java index b0258f0b2..af29de991 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineBattery.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineBattery.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import com.hbm.blocks.machine.MachineBattery; import com.hbm.lib.Library; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFluidTank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java similarity index 99% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineFluidTank.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java index 29fc72037..e1bec2abf 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineFluidTank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineFluidTank.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOrbus.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java similarity index 97% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineOrbus.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java index 28cb51c2e..64e5bf878 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineOrbus.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineOrbus.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import com.hbm.blocks.BlockDummyable; import com.hbm.inventory.fluid.FluidType; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePuF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java similarity index 94% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachinePuF6Tank.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java index 144dca889..54af5b7b5 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachinePuF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachinePuF6Tank.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineUF6Tank.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java similarity index 94% rename from src/main/java/com/hbm/tileentity/machine/TileEntityMachineUF6Tank.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java index 9b5bc0799..9cfb79a9c 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineUF6Tank.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntityMachineUF6Tank.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySafe.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java similarity index 97% rename from src/main/java/com/hbm/tileentity/machine/TileEntitySafe.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java index 63543b039..a2664bcfc 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySafe.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySafe.java @@ -1,4 +1,6 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; + +import com.hbm.tileentity.machine.TileEntityLockableBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.ISidedInventory; diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzCapsule.java b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySoyuzCapsule.java similarity index 92% rename from src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzCapsule.java rename to src/main/java/com/hbm/tileentity/machine/storage/TileEntitySoyuzCapsule.java index 101e4b0ea..6eea311be 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntitySoyuzCapsule.java +++ b/src/main/java/com/hbm/tileentity/machine/storage/TileEntitySoyuzCapsule.java @@ -1,4 +1,4 @@ -package com.hbm.tileentity.machine; +package com.hbm.tileentity.machine.storage; import com.hbm.tileentity.TileEntityInventoryBase; diff --git a/src/main/java/com/hbm/world/dungeon/Barrel.java b/src/main/java/com/hbm/world/dungeon/Barrel.java index d83add726..59d3c49c1 100644 --- a/src/main/java/com/hbm/world/dungeon/Barrel.java +++ b/src/main/java/com/hbm/world/dungeon/Barrel.java @@ -10,7 +10,7 @@ import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; import com.hbm.tileentity.bomb.TileEntitySellafield; -import com.hbm.tileentity.machine.TileEntityCrateSteel; +import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import net.minecraft.block.Block; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java index d44a9363a..6f668f55d 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom002.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom002.java @@ -7,7 +7,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; -import com.hbm.tileentity.machine.TileEntityCrateSteel; +import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import net.minecraft.block.Block; import net.minecraft.init.Blocks; diff --git a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java index 9d50cf43d..c648ba0c7 100644 --- a/src/main/java/com/hbm/world/dungeon/DesertAtom003.java +++ b/src/main/java/com/hbm/world/dungeon/DesertAtom003.java @@ -9,8 +9,8 @@ import com.hbm.config.GeneralConfig; import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityMachinePuF6Tank; -import com.hbm.tileentity.machine.TileEntityMachineUF6Tank; +import com.hbm.tileentity.machine.storage.TileEntityMachinePuF6Tank; +import com.hbm.tileentity.machine.storage.TileEntityMachineUF6Tank; import net.minecraft.block.Block; import net.minecraft.init.Blocks; diff --git a/src/main/java/com/hbm/world/dungeon/Radio01.java b/src/main/java/com/hbm/world/dungeon/Radio01.java index b6bb38130..7aea2227e 100644 --- a/src/main/java/com/hbm/world/dungeon/Radio01.java +++ b/src/main/java/com/hbm/world/dungeon/Radio01.java @@ -7,7 +7,7 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; -import com.hbm.tileentity.machine.TileEntityCrateSteel; +import com.hbm.tileentity.machine.storage.TileEntityCrateSteel; import net.minecraft.block.Block; import net.minecraft.block.material.Material; diff --git a/src/main/java/com/hbm/world/dungeon/Relay.java b/src/main/java/com/hbm/world/dungeon/Relay.java index 8aef28321..996713360 100644 --- a/src/main/java/com/hbm/world/dungeon/Relay.java +++ b/src/main/java/com/hbm/world/dungeon/Relay.java @@ -13,7 +13,7 @@ import com.hbm.items.ModItems; import com.hbm.lib.HbmChestContents; import com.hbm.lib.Library; import com.hbm.main.MainRegistry; -import com.hbm.tileentity.machine.TileEntityCrateIron; +import com.hbm.tileentity.machine.storage.TileEntityCrateIron; import com.hbm.util.LootGenerator; import net.minecraft.block.Block; diff --git a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java index c2f3607a8..1754d377b 100644 --- a/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java +++ b/src/main/java/com/hbm/world/generator/room/TestDungeonRoom8.java @@ -3,7 +3,7 @@ package com.hbm.world.generator.room; import com.hbm.blocks.ModBlocks; import com.hbm.crafting.handlers.MKUCraftingHandler; import com.hbm.items.ModItems; -import com.hbm.tileentity.machine.TileEntitySafe; +import com.hbm.tileentity.machine.storage.TileEntitySafe; import com.hbm.world.generator.CellularDungeon; import com.hbm.world.generator.CellularDungeonRoom; import com.hbm.world.generator.DungeonToolbox; From ae2e1696091f7b91929d934755e75404f49dfb1f Mon Sep 17 00:00:00 2001 From: Bob Date: Tue, 8 Feb 2022 21:59:42 +0100 Subject: [PATCH 6/8] electric zapper for the siege UFO miniboss --- .../com/hbm/entity/mob/EntityUFOBase.java | 12 +- .../entity/mob/siege/EntitySiegeCraft.java | 156 ++++++++++++++++-- src/main/java/com/hbm/items/ModItems.java | 4 +- src/main/java/com/hbm/main/ClientProxy.java | 4 +- .../render/entity/mob/RenderSiegeCraft.java | 21 ++- 5 files changed, 180 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/hbm/entity/mob/EntityUFOBase.java b/src/main/java/com/hbm/entity/mob/EntityUFOBase.java index 30e013ccf..125cc1283 100644 --- a/src/main/java/com/hbm/entity/mob/EntityUFOBase.java +++ b/src/main/java/com/hbm/entity/mob/EntityUFOBase.java @@ -167,13 +167,21 @@ public abstract class EntityUFOBase extends EntityFlying implements IMob { int wX = (int)Math.floor(this.target.posX - vec.xCoord / length * overshoot); int wZ = (int)Math.floor(this.target.posZ - vec.zCoord / length * overshoot); - this.setWaypoint(wX, Math.max(this.worldObj.getHeightValue(wX, wZ) + 2 + rand.nextInt(2), (int) this.target.posY + rand.nextInt(3)), wZ); + this.setWaypoint(wX, Math.max(this.worldObj.getHeightValue(wX, wZ), (int) this.target.posY) + targetHeightOffset(), wZ); + } + + protected int targetHeightOffset() { + return 2 + rand.nextInt(2); + } + + protected int wanderHeightOffset() { + return 2 + rand.nextInt(3); } protected void setCourseWithoutTaget() { int x = (int) Math.floor(posX + rand.nextGaussian() * 5); int z = (int) Math.floor(posZ + rand.nextGaussian() * 5); - this.setWaypoint(x, this.worldObj.getHeightValue(x, z) + 2 + rand.nextInt(3), z); + this.setWaypoint(x, this.worldObj.getHeightValue(x, z) + wanderHeightOffset(), z); } public void setWaypoint(int x, int y, int z) { diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java index e37519a5d..9df56e2cf 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeCraft.java @@ -1,30 +1,49 @@ package com.hbm.entity.mob.siege; +import java.util.List; + import com.hbm.entity.mob.EntityUFOBase; import com.hbm.entity.projectile.EntitySiegeLaser; import com.hbm.items.ModItems; +import com.hbm.lib.ModDamageSource; +import com.hbm.packet.AuxParticlePacketNT; +import com.hbm.packet.PacketDispatcher; +import com.hbm.util.ContaminationUtil; +import com.hbm.util.ContaminationUtil.ContaminationType; +import com.hbm.util.ContaminationUtil.HazardType; +import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.IEntityLivingData; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.boss.IBossDisplayData; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.Vec3; import net.minecraft.world.World; public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData { private int attackCooldown; + private int beamCountdown; public EntitySiegeCraft(World world) { super(world); this.setSize(7F, 1F); + this.isImmuneToFire = true; + this.ignoreFrustumCheck = true; } @Override protected void entityInit() { super.entityInit(); this.getDataWatcher().addObject(12, (int) 0); + this.getDataWatcher().addObject(13, 0F); + this.getDataWatcher().addObject(14, 0F); + this.getDataWatcher().addObject(15, 0F); + this.getDataWatcher().addObject(16, (byte) 0); } public void setTier(SiegeTier tier) { @@ -39,6 +58,38 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData SiegeTier tier = SiegeTier.tiers[this.getDataWatcher().getWatchableObjectInt(12)]; return tier != null ? tier : SiegeTier.CLAY; } + + public void setBeam(boolean beam) { + this.getDataWatcher().updateObject(16, beam ? (byte) 1 : (byte) 0); + } + + public boolean getBeam() { + return this.getDataWatcher().getWatchableObjectByte(16) == 1; + } + + public void setLockon(double x, double y, double z) { + this.getDataWatcher().updateObject(13, (float) x); + this.getDataWatcher().updateObject(14, (float) y); + this.getDataWatcher().updateObject(15, (float) z); + } + + public Vec3 getLockon() { + return Vec3.createVectorHelper( + this.getDataWatcher().getWatchableObjectFloat(13), + this.getDataWatcher().getWatchableObjectFloat(14), + this.getDataWatcher().getWatchableObjectFloat(15) + ); + } + + @Override + protected int targetHeightOffset() { + return 7 + rand.nextInt(5); + } + + @Override + protected int wanderHeightOffset() { + return 10 + rand.nextInt(2); + } @Override protected void updateEntityActionState() { @@ -55,9 +106,80 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData if(this.attackCooldown > 0) { this.attackCooldown--; } + if(this.beamCountdown > 0) { + this.beamCountdown--; + } + + if(rand.nextInt(50) == 0) { + + NBTTagCompound dPart = new NBTTagCompound(); + dPart.setString("type", "tau"); + dPart.setByte("count", (byte)(2 + rand.nextInt(3))); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(dPart, posX + rand.nextGaussian() * 2, posY + rand.nextGaussian(), posZ + rand.nextGaussian() * 2), new TargetPoint(worldObj.provider.dimensionId, posX, posY, posZ, 50)); + } + + boolean beam = false; + + if(this.target == null || this.beamCountdown <= 0) { + this.beamCountdown = 300; //200 - 100: nothing, 100 - 40: update lockon, 40 - 20: fix lockon, 20 - 0: beam + } else { + + if(this.beamCountdown >= 60 && this.beamCountdown < 120) { + double x = this.target.posX; + double y = this.target.posY + this.target.height * 0.5; + double z = this.target.posZ; + this.setLockon(x, y, z); + } + + if(this.beamCountdown >= 40 && this.beamCountdown < 100) { + + Vec3 lockon = this.getLockon(); + NBTTagCompound fx = new NBTTagCompound(); + fx.setString("type", "vanillaburst"); + fx.setString("mode", "reddust"); + fx.setDouble("motion", 0.2D); + fx.setInteger("count", 5); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(fx, lockon.xCoord, lockon.yCoord, lockon.zCoord), new TargetPoint(this.dimension, lockon.xCoord, lockon.yCoord, lockon.zCoord, 100)); + } + + if(this.beamCountdown < 40) { + + Vec3 lockon = this.getLockon(); + + if(this.beamCountdown == 39) { + worldObj.playSoundEffect(lockon.xCoord, lockon.yCoord, lockon.zCoord, "hbm:entity.ufoBlast", 5.0F, 0.9F + worldObj.rand.nextFloat() * 0.2F); + } + + List entities = worldObj.getEntitiesWithinAABBExcludingEntity(this, AxisAlignedBB.getBoundingBox(lockon.xCoord, lockon.yCoord, lockon.zCoord, lockon.xCoord, lockon.yCoord, lockon.zCoord).expand(2, 2, 2)); + + for(Entity e : entities) { + if(this.canAttackClass(e.getClass())) { + e.attackEntityFrom(ModDamageSource.causeCombineDamage(this, e), 1000F); + e.setFire(5); + + if(e instanceof EntityLivingBase) + ContaminationUtil.contaminate((EntityLivingBase)e, HazardType.RADIATION, ContaminationType.CREATIVE, 5F); + } + } + + + NBTTagCompound data = new NBTTagCompound(); + data.setString("type", "plasmablast"); + data.setFloat("r", 0.0F); + data.setFloat("g", 0.75F); + data.setFloat("b", 1.0F); + data.setFloat("pitch", -90 + rand.nextFloat() * 180); + data.setFloat("yaw", rand.nextFloat() * 180F); + data.setFloat("scale", 5F); + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, lockon.xCoord, lockon.yCoord, lockon.zCoord), new TargetPoint(dimension, lockon.xCoord, lockon.yCoord, lockon.zCoord, 150)); + beam = true; + } + } + + this.setBeam(beam); if(this.attackCooldown == 0 && this.target != null) { - this.attackCooldown = 20 + rand.nextInt(5); + this.attackCooldown = 30 + rand.nextInt(10); double x = posX; double y = posY; @@ -66,15 +188,29 @@ public class EntitySiegeCraft extends EntityUFOBase implements IBossDisplayData Vec3 vec = Vec3.createVectorHelper(target.posX - x, target.posY + target.height * 0.5 - y, target.posZ - z).normalize(); SiegeTier tier = this.getTier(); - EntitySiegeLaser laser = new EntitySiegeLaser(worldObj, this); - laser.setPosition(x, y, z); - laser.setThrowableHeading(vec.xCoord, vec.yCoord, vec.zCoord, 1F, 0.15F); - laser.setColor(0x808080); - laser.setDamage(tier.damageMod); - laser.setExplosive(tier.laserExplosive); - laser.setBreakChance(tier.laserBreak); - if(tier.laserIncendiary) laser.setIncendiary(); - worldObj.spawnEntityInWorld(laser); + float health = getHealth() / getMaxHealth(); + + int r = (int)(0xff * (1 - health)); + int g = (int)(0xff * health); + int b = 0; + int color = (r << 16) | (g << 8) | b; + + for(int i = 0; i < 7; i++) { + + Vec3 copy = Vec3.createVectorHelper(vec.xCoord, vec.yCoord, vec.zCoord); + + copy.rotateAroundY((float)Math.PI / 180F * (i - 3) * 5F); + + EntitySiegeLaser laser = new EntitySiegeLaser(worldObj, this); + laser.setPosition(x, y, z); + laser.setThrowableHeading(copy.xCoord, copy.yCoord, copy.zCoord, 1F, 0.0F); + laser.setColor(color); + laser.setDamage(tier.damageMod); + laser.setBreakChance(tier.laserBreak * 2); + if(tier.laserIncendiary) laser.setIncendiary(); + worldObj.spawnEntityInWorld(laser); + } + this.playSound("hbm:weapon.ballsLaser", 2.0F, 1.0F); } } diff --git a/src/main/java/com/hbm/items/ModItems.java b/src/main/java/com/hbm/items/ModItems.java index ec35203ba..7ea076dcd 100644 --- a/src/main/java/com/hbm/items/ModItems.java +++ b/src/main/java/com/hbm/items/ModItems.java @@ -2689,8 +2689,8 @@ public class ModItems { ingot_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("ingot_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_saturnite"); plate_saturnite = new ItemCustomLore().setRarity(EnumRarity.rare).setUnlocalizedName("plate_saturnite").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":plate_saturnite"); ingot_fiberglass = new ItemCustomLore().setUnlocalizedName("ingot_fiberglass").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_fiberglass"); - ingot_asbestos = new Item().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); - powder_asbestos = new Item().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos"); + ingot_asbestos = new ItemCustomLore().setUnlocalizedName("ingot_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_asbestos"); + powder_asbestos = new ItemCustomLore().setUnlocalizedName("powder_asbestos").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":powder_asbestos"); ingot_electronium = new ItemCustomLore().setUnlocalizedName("ingot_electronium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":ingot_electronium"); nugget_zirconium = new ItemCustomLore().setUnlocalizedName("nugget_zirconium").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_zirconium"); nugget_mercury = new Item().setUnlocalizedName("nugget_mercury_tiny").setCreativeTab(MainRegistry.partsTab).setTextureName(RefStrings.MODID + ":nugget_mercury_tiny"); diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 4a14f4409..93b97a079 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -1300,8 +1300,8 @@ public class ClientProxy extends ServerProxy { } if("ufo".equals(type)) { - - ParticleMukeCloud cloud = new ParticleMukeCloud(man, world, x, y, z, 0, 0, 0); + double motion = data.getDouble("motion"); + ParticleMukeCloud cloud = new ParticleMukeCloud(man, world, x, y, z, rand.nextGaussian() * motion, 0, rand.nextGaussian() * motion); Minecraft.getMinecraft().effectRenderer.addEffect(cloud); } diff --git a/src/main/java/com/hbm/render/entity/mob/RenderSiegeCraft.java b/src/main/java/com/hbm/render/entity/mob/RenderSiegeCraft.java index 363072403..1cf1a3b3b 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderSiegeCraft.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderSiegeCraft.java @@ -9,6 +9,7 @@ import com.hbm.entity.mob.siege.SiegeTier; import com.hbm.lib.RefStrings; import com.hbm.main.ResourceManager; import com.hbm.render.util.BeamPronter; +import com.hbm.render.util.RenderMiscEffects; import com.hbm.render.util.BeamPronter.EnumBeamType; import com.hbm.render.util.BeamPronter.EnumWaveType; @@ -25,6 +26,7 @@ public class RenderSiegeCraft extends Render { GL11.glPushMatrix(); GL11.glTranslated(x, y + 0.5, z); + GL11.glPushMatrix(); EntitySiegeCraft ufo = (EntitySiegeCraft) entity; //BossStatus.setBossStatus(ufo, false); @@ -58,6 +60,11 @@ public class RenderSiegeCraft extends Render { GL11.glPopAttrib(); GL11.glEnable(GL11.GL_TEXTURE_2D); + if(ufo.getBeam()) { + bindTexture(new ResourceLocation(RefStrings.MODID + ":textures/misc/glintBF.png")); + RenderMiscEffects.renderClassicGlint(ufo.worldObj, f1, ResourceManager.siege_ufo, "UFO", 0.5F, 1.0F, 1.0F, 5, 1F); + } + GL11.glColor3f(1F, 1F, 1F); Random rand = new Random(entity.ticksExisted / 4); @@ -65,7 +72,7 @@ public class RenderSiegeCraft extends Render { GL11.glPushMatrix(); for(int i = 0; i < 8; i++) { GL11.glRotated(45D, 0, 1, 0); - if(rand.nextInt(5) == 0) { + if(rand.nextInt(5) == 0 || ufo.getBeam()) { GL11.glPushMatrix(); GL11.glTranslated(4, 0, 0); BeamPronter.prontBeam(Vec3.createVectorHelper(-1.125, 0, 2.875), EnumWaveType.RANDOM, EnumBeamType.LINE, 0x80d0ff, 0xffffff, (int)(System.currentTimeMillis() % 1000) / 50, 15, 0.125F, 1, 0); @@ -73,6 +80,18 @@ public class RenderSiegeCraft extends Render { } } GL11.glPopMatrix(); + GL11.glPopMatrix(); + + if(ufo.getBeam()) { + GL11.glPushMatrix(); + Vec3 delta = ufo.getLockon().addVector(-ufo.posX, -ufo.posY, -ufo.posZ); + double length = delta.lengthVector(); + double scale = 0.1D; + BeamPronter.prontBeam(delta, EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x101020, 0x101020, 0, (int)(length + 1), 0F, 6, (float)scale * 0.75F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x202060, 0x202060, entity.ticksExisted / 2, (int)(length / 2 + 1), (float)scale * 1.5F, 2, 0.0625F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x202060, 0x202060, entity.ticksExisted / 4, (int)(length / 2 + 1), (float)scale * 1.5F, 2, 0.0625F); + GL11.glPopMatrix(); + } GL11.glPopMatrix(); } From 68ed3f1d3619063fc43738ed288f37bea9f88bb6 Mon Sep 17 00:00:00 2001 From: Boblet Date: Wed, 9 Feb 2022 16:15:03 +0100 Subject: [PATCH 7/8] block of dynamite, classic TNT baseclass, cracking rec for crack diesel --- src/main/java/com/hbm/blocks/ModBlocks.java | 2 + .../com/hbm/blocks/bomb/BlockDynamite.java | 13 ++ .../com/hbm/blocks/bomb/BlockTNTBase.java | 125 ++++++++++++++++++ .../hbm/entity/item/EntityTNTPrimedBase.java | 114 ++++++++++++++++ .../inventory/recipes/AssemblerRecipes.java | 2 +- .../inventory/recipes/RefineryRecipes.java | 13 +- src/main/java/com/hbm/main/ClientProxy.java | 5 +- .../java/com/hbm/main/CraftingManager.java | 1 + src/main/java/com/hbm/main/MainRegistry.java | 1 + .../entity/item/RenderTNTPrimedBase.java | 75 +++++++++++ src/main/resources/assets/hbm/lang/de_DE.lang | 1 + src/main/resources/assets/hbm/lang/en_US.lang | 1 + .../hbm/textures/blocks/dynamite_bottom.png | Bin 0 -> 151 bytes .../hbm/textures/blocks/dynamite_side.png | Bin 0 -> 258 bytes .../hbm/textures/blocks/dynamite_top.png | Bin 0 -> 446 bytes .../assets/hbm/textures/items/safety_fuse.png | Bin 0 -> 330 bytes 16 files changed, 343 insertions(+), 10 deletions(-) create mode 100644 src/main/java/com/hbm/blocks/bomb/BlockDynamite.java create mode 100644 src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java create mode 100644 src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java create mode 100644 src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java create mode 100644 src/main/resources/assets/hbm/textures/blocks/dynamite_bottom.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/dynamite_side.png create mode 100644 src/main/resources/assets/hbm/textures/blocks/dynamite_top.png create mode 100644 src/main/resources/assets/hbm/textures/items/safety_fuse.png diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 5deeee79e..959e499a0 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -485,6 +485,7 @@ public class ModBlocks { public static Block crashed_balefire; public static Block rejuvinator; public static Block fireworks; + public static Block dynamite; public static Block charge_dynamite; public static Block charge_miner; @@ -1697,6 +1698,7 @@ public class ModBlocks { mine_he = new Landmine(Material.iron).setBlockName("mine_he").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_he"); mine_shrap = new Landmine(Material.iron).setBlockName("mine_shrap").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_shrap"); mine_fat = new Landmine(Material.iron).setBlockName("mine_fat").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":mine_fat"); + dynamite = new BlockDynamite().setBlockName("dynamite").setCreativeTab(MainRegistry.nukeTab).setHardness(1.0F).setBlockTextureName(RefStrings.MODID + ":dynamite"); machine_difurnace_off = new MachineDiFurnace(false).setBlockName("machine_difurnace_off").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.machineTab); machine_difurnace_on = new MachineDiFurnace(true).setBlockName("machine_difurnace_on").setHardness(5.0F).setLightLevel(1.0F).setResistance(10.0F); diff --git a/src/main/java/com/hbm/blocks/bomb/BlockDynamite.java b/src/main/java/com/hbm/blocks/bomb/BlockDynamite.java new file mode 100644 index 000000000..cbaac78ab --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/BlockDynamite.java @@ -0,0 +1,13 @@ +package com.hbm.blocks.bomb; + +import com.hbm.entity.item.EntityTNTPrimedBase; + +import net.minecraft.world.World; + +public class BlockDynamite extends BlockTNTBase { + + @Override + public void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity) { + world.createExplosion(entity, x, y, z, 8F, true); + } +} diff --git a/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java new file mode 100644 index 000000000..48ec12b5b --- /dev/null +++ b/src/main/java/com/hbm/blocks/bomb/BlockTNTBase.java @@ -0,0 +1,125 @@ +package com.hbm.blocks.bomb; + +import java.util.Random; + +import com.hbm.entity.item.EntityTNTPrimedBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.projectile.EntityArrow; +import net.minecraft.init.Items; +import net.minecraft.util.IIcon; +import net.minecraft.world.Explosion; +import net.minecraft.world.World; + +public abstract class BlockTNTBase extends Block { + + @SideOnly(Side.CLIENT) + private IIcon topIcon; + @SideOnly(Side.CLIENT) + private IIcon bottomIcon; + + public BlockTNTBase() { + super(Material.tnt); + this.setCreativeTab(CreativeTabs.tabRedstone); + } + + @Override + @SideOnly(Side.CLIENT) + public IIcon getIcon(int side, int meta) { + return side == 0 ? this.bottomIcon : (side == 1 ? this.topIcon : this.blockIcon); + } + + @Override + public void onBlockAdded(World world, int x, int y, int z) { + super.onBlockAdded(world, x, y, z); + + if(world.isBlockIndirectlyGettingPowered(x, y, z)) { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + world.setBlockToAir(x, y, z); + } + } + + @Override + public void onNeighborBlockChange(World world, int x, int y, int z, Block block) { + if(world.isBlockIndirectlyGettingPowered(x, y, z)) { + this.onBlockDestroyedByPlayer(world, x, y, z, 1); + world.setBlockToAir(x, y, z); + } + } + + @Override + public int quantityDropped(Random p_149745_1_) { + return 1; + } + + @Override + public void onBlockDestroyedByExplosion(World world, int x, int y, int z, Explosion explosion) { + if(!world.isRemote) { + EntityTNTPrimedBase entitytntprimed = new EntityTNTPrimedBase(world, x + 0.5D, y + 0.5D, z + 0.5D, explosion.getExplosivePlacedBy(), this); + entitytntprimed.fuse = world.rand.nextInt(entitytntprimed.fuse / 4) + entitytntprimed.fuse / 8; + world.spawnEntityInWorld(entitytntprimed); + } + } + + @Override + public void onBlockDestroyedByPlayer(World world, int x, int y, int z, int meta) { + this.prime(world, x, y, z, meta, (EntityLivingBase) null); + } + + public void prime(World world, int x, int y, int z, int meta, EntityLivingBase living) { + if(!world.isRemote) { + if((meta & 1) == 1) { + EntityTNTPrimedBase entitytntprimed = new EntityTNTPrimedBase(world, x + 0.5D, y + 0.5D, z + 0.5D, living, this); + world.spawnEntityInWorld(entitytntprimed); + world.playSoundAtEntity(entitytntprimed, "game.tnt.primed", 1.0F, 1.0F); + } + } + } + + @Override + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { + if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.flint_and_steel) { + this.prime(world, x, y, z, 1, player); + world.setBlockToAir(x, y, z); + player.getCurrentEquippedItem().damageItem(1, player); + return true; + } else { + return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ); + } + } + + @Override + public void onEntityCollidedWithBlock(World world, int x, int y, int z, Entity entity) { + if(entity instanceof EntityArrow && !world.isRemote) { + EntityArrow entityarrow = (EntityArrow) entity; + + if(entityarrow.isBurning()) { + this.prime(world, x, y, z, 1, entityarrow.shootingEntity instanceof EntityLivingBase ? (EntityLivingBase) entityarrow.shootingEntity : null); + world.setBlockToAir(x, y, z); + } + } + } + + @Override + public boolean canDropFromExplosion(Explosion explosion) { + return false; + } + + public abstract void explodeEntity(World world, double x, double y, double z, EntityTNTPrimedBase entity); + + @Override + @SideOnly(Side.CLIENT) + public void registerBlockIcons(IIconRegister p_149651_1_) { + this.blockIcon = p_149651_1_.registerIcon(this.getTextureName() + "_side"); + this.topIcon = p_149651_1_.registerIcon(this.getTextureName() + "_top"); + this.bottomIcon = p_149651_1_.registerIcon(this.getTextureName() + "_bottom"); + } +} diff --git a/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java b/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java new file mode 100644 index 000000000..9ab9f5ff6 --- /dev/null +++ b/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java @@ -0,0 +1,114 @@ +package com.hbm.entity.item; + +import com.hbm.blocks.bomb.BlockTNTBase; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.init.Blocks; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class EntityTNTPrimedBase extends Entity { + + public int fuse; + private EntityLivingBase tntPlacedBy; + public BlockTNTBase bomb; + + public EntityTNTPrimedBase(World world) { + super(world); + this.preventEntitySpawning = true; + this.setSize(0.98F, 0.98F); + this.yOffset = this.height / 2.0F; + } + + public EntityTNTPrimedBase(World world, double x, double y, double z, EntityLivingBase entity, BlockTNTBase bomb) { + this(world); + this.setPosition(x, y, z); + float f = (float) (Math.random() * Math.PI * 2.0D); + this.motionX = (double) (-((float) Math.sin((double) f)) * 0.02F); + this.motionY = 0.2D; + this.motionZ = (double) (-((float) Math.cos((double) f)) * 0.02F); + this.fuse = 80; + this.prevPosX = x; + this.prevPosY = y; + this.prevPosZ = z; + this.tntPlacedBy = entity; + this.bomb = bomb; + } + + @Override + protected void entityInit() { } + + @Override + protected boolean canTriggerWalking() { + return false; + } + + @Override + public boolean canBeCollidedWith() { + return !this.isDead; + } + + @Override + public void onUpdate() { + + if(bomb == null) { + this.setDead(); + return; + } + + this.prevPosX = this.posX; + this.prevPosY = this.posY; + this.prevPosZ = this.posZ; + this.motionY -= 0.04D; + this.moveEntity(this.motionX, this.motionY, this.motionZ); + this.motionX *= 0.98D; + this.motionY *= 0.98D; + this.motionZ *= 0.98D; + + if(this.onGround) { + this.motionX *= 0.7D; + this.motionZ *= 0.7D; + this.motionY *= -0.5D; + } + + if(this.fuse-- <= 0) { + this.setDead(); + + if(!this.worldObj.isRemote) { + this.explode(); + } + } else { + this.worldObj.spawnParticle("smoke", this.posX, this.posY + 0.5D, this.posZ, 0.0D, 0.0D, 0.0D); + } + } + + private void explode() { + this.bomb.explodeEntity(worldObj, posX, posZ, posZ, this); + } + + @Override + protected void writeEntityToNBT(NBTTagCompound nbt) { + nbt.setByte("Fuse", (byte) this.fuse); + nbt.setInteger("Tile", Block.getIdFromBlock(bomb)); + } + + @Override + protected void readEntityFromNBT(NBTTagCompound nbt) { + this.fuse = nbt.getByte("Fuse"); + this.bomb = (BlockTNTBase) Block.getBlockById(nbt.getInteger("Tile")); + } + + @Override + @SideOnly(Side.CLIENT) + public float getShadowSize() { + return 0.0F; + } + + public EntityLivingBase getTntPlacedBy() { + return this.tntPlacedBy; + } +} diff --git a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java index 43274c88c..39ec3d7bb 100644 --- a/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/AssemblerRecipes.java @@ -934,7 +934,7 @@ public class AssemblerRecipes { new OreDictStack(ANY_CONCRETE.any(), 8), new OreDictStack(NB.ingot(), 2), new OreDictStack(AL.plate(), 12), - new OreDictStack(ANY_TAR.any(), 8), + new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.hull_big_steel, 3), new ComparableStack(ModItems.catalyst_clay, 4), new ComparableStack(ModItems.coil_copper, 4), diff --git a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java index 91c03802b..0039208af 100644 --- a/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/RefineryRecipes.java @@ -110,12 +110,13 @@ public class RefineryRecipes { } public static void registerCracking() { - cracking.put(Fluids.OIL, new Pair(new FluidStack(Fluids.CRACKOIL, oil_crack_oil), new FluidStack(Fluids.PETROLEUM, oil_crack_petro))); - cracking.put(Fluids.BITUMEN, new Pair(new FluidStack(Fluids.OIL, bitumen_crack_oil), new FluidStack(Fluids.AROMATICS, bitumen_crack_aroma))); - cracking.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.NAPHTHA, smear_crack_napht), new FluidStack(Fluids.PETROLEUM, smear_crack_petro))); - cracking.put(Fluids.GAS, new Pair(new FluidStack(Fluids.PETROLEUM, gas_crack_petro), new FluidStack(Fluids.UNSATURATEDS, gas_crack_unsat))); - cracking.put(Fluids.DIESEL, new Pair(new FluidStack(Fluids.KEROSENE, diesel_crack_kero), new FluidStack(Fluids.PETROLEUM, diesel_crack_petro))); - cracking.put(Fluids.KEROSENE, new Pair(new FluidStack(Fluids.PETROLEUM, kero_crack_petro), new FluidStack(Fluids.NONE, 0))); + cracking.put(Fluids.OIL, new Pair(new FluidStack(Fluids.CRACKOIL, oil_crack_oil), new FluidStack(Fluids.PETROLEUM, oil_crack_petro))); + cracking.put(Fluids.BITUMEN, new Pair(new FluidStack(Fluids.OIL, bitumen_crack_oil), new FluidStack(Fluids.AROMATICS, bitumen_crack_aroma))); + cracking.put(Fluids.SMEAR, new Pair(new FluidStack(Fluids.NAPHTHA, smear_crack_napht), new FluidStack(Fluids.PETROLEUM, smear_crack_petro))); + cracking.put(Fluids.GAS, new Pair(new FluidStack(Fluids.PETROLEUM, gas_crack_petro), new FluidStack(Fluids.UNSATURATEDS, gas_crack_unsat))); + cracking.put(Fluids.DIESEL, new Pair(new FluidStack(Fluids.KEROSENE, diesel_crack_kero), new FluidStack(Fluids.PETROLEUM, diesel_crack_petro))); + cracking.put(Fluids.DIESEL_CRACK, new Pair(new FluidStack(Fluids.KEROSENE, diesel_crack_kero), new FluidStack(Fluids.PETROLEUM, diesel_crack_petro))); + cracking.put(Fluids.KEROSENE, new Pair(new FluidStack(Fluids.PETROLEUM, kero_crack_petro), new FluidStack(Fluids.NONE, 0))); } public static Quintet getRefinery(FluidType oil) { diff --git a/src/main/java/com/hbm/main/ClientProxy.java b/src/main/java/com/hbm/main/ClientProxy.java index 93b97a079..554b38a1a 100644 --- a/src/main/java/com/hbm/main/ClientProxy.java +++ b/src/main/java/com/hbm/main/ClientProxy.java @@ -41,9 +41,7 @@ import com.hbm.blocks.generic.BlockBobble.TileEntityBobble; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; import com.hbm.entity.effect.*; import com.hbm.entity.grenade.*; -import com.hbm.entity.item.EntityFireworks; -import com.hbm.entity.item.EntityMinecartTest; -import com.hbm.entity.item.EntityMovingItem; +import com.hbm.entity.item.*; import com.hbm.entity.logic.*; import com.hbm.entity.missile.*; import com.hbm.entity.mob.*; @@ -575,6 +573,7 @@ public class ClientProxy extends ServerProxy { RenderingRegistry.registerEntityRenderingHandler(EntityMinecartTest.class, new RenderMinecartTest()); //items RenderingRegistry.registerEntityRenderingHandler(EntityMovingItem.class, new RenderMovingItem()); + RenderingRegistry.registerEntityRenderingHandler(EntityTNTPrimedBase.class, new RenderTNTPrimedBase()); //mobs RenderingRegistry.registerEntityRenderingHandler(EntityNuclearCreeper.class, new RenderNuclearCreeper()); RenderingRegistry.registerEntityRenderingHandler(EntityTaintedCreeper.class, new RenderTaintedCreeper()); diff --git a/src/main/java/com/hbm/main/CraftingManager.java b/src/main/java/com/hbm/main/CraftingManager.java index 267dfb971..3a03d7eb6 100644 --- a/src/main/java/com/hbm/main/CraftingManager.java +++ b/src/main/java/com/hbm/main/CraftingManager.java @@ -468,6 +468,7 @@ public class CraftingManager { addRecipeAuto(new ItemStack(ModBlocks.emp_bomb, 1), new Object[] { "LML", "LCL", "LML", 'L', PB.plate(), 'M', ModItems.magnetron, 'C', ModItems.circuit_gold }); addShapelessAuto(new ItemStack(ModBlocks.charge_dynamite, 1), new Object[] { ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.stick_dynamite, ModItems.ducttape }); addRecipeAuto(new ItemStack(ModBlocks.charge_miner, 1), new Object[] { " F ", "FCF", " F ", 'F', Items.flint, 'C', ModBlocks.charge_dynamite }); + addRecipeAuto(new ItemStack(ModBlocks.dynamite, 1), new Object[] { "DDD", "DSD", "DDD", 'D', ModItems.stick_dynamite, 'S', Items.string }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_generic), new Object[] { " A ", "PRP", "PRP", 'A', ModItems.wire_aluminium, 'P', AL.plate(), 'R', REDSTONE.dust() }); addRecipeAuto(ItemBattery.getEmptyBattery(ModItems.battery_advanced), new Object[] { " A ", "PSP", "PLP", 'A', ModItems.wire_red_copper, 'P', CU.plate(), 'S', "sulfur", 'L', PB.dust() }); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 36bb7260a..ecb3ad96b 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -480,6 +480,7 @@ public class MainRegistry { EntityRegistry.registerModEntity(EntityGrenadeDynamite.class, "entity_grenade_dynamite", 163, this, 250, 1, true); EntityRegistry.registerModEntity(EntitySiegeLaser.class, "entity_ntm_siege_laser", 164, this, 1000, 1, true); EntityRegistry.registerModEntity(EntitySiegeDropship.class, "entity_ntm_siege_dropship", 165, this, 1000, 1, true); + EntityRegistry.registerModEntity(EntityTNTPrimedBase.class, "entity_ntm_tnt_primed", 166, this, 1000, 1, true); EntityRegistry.registerGlobalEntityID(EntityNuclearCreeper.class, "entity_mob_nuclear_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x204131, 0x75CE00); EntityRegistry.registerGlobalEntityID(EntityTaintedCreeper.class, "entity_mob_tainted_creeper", EntityRegistry.findGlobalUniqueEntityId(), 0x813b9b, 0xd71fdd); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java b/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java new file mode 100644 index 000000000..c1a30d876 --- /dev/null +++ b/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java @@ -0,0 +1,75 @@ +package com.hbm.render.entity.item; + +import org.lwjgl.opengl.GL11; + +import com.hbm.entity.item.EntityTNTPrimedBase; + +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.entity.Render; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.entity.Entity; +import net.minecraft.init.Blocks; +import net.minecraft.util.ResourceLocation; + +public class RenderTNTPrimedBase extends Render { + + private RenderBlocks blockRenderer = new RenderBlocks(); + + public RenderTNTPrimedBase() { + this.shadowSize = 0.5F; + } + + public void doRender(EntityTNTPrimedBase tnt, double x, double y, double z, float f0, float f1) { + GL11.glPushMatrix(); + GL11.glTranslatef((float) x, (float) y, (float) z); + float f2; + + if((float) tnt.fuse - f1 + 1.0F < 10.0F) { + f2 = 1.0F - ((float) tnt.fuse - f1 + 1.0F) / 10.0F; + + if(f2 < 0.0F) { + f2 = 0.0F; + } + + if(f2 > 1.0F) { + f2 = 1.0F; + } + + f2 *= f2; + f2 *= f2; + float scale = 1.0F + f2 * 0.3F; + GL11.glScalef(scale, scale, scale); + } + + f2 = (1.0F - ((float) tnt.fuse - f1 + 1.0F) / 100.0F) * 0.8F; + this.bindEntityTexture(tnt); + this.blockRenderer.renderBlockAsItem(tnt.bomb, 0, tnt.getBrightness(f1)); + + if(tnt.fuse / 5 % 2 == 0) { + GL11.glDisable(GL11.GL_TEXTURE_2D); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_DST_ALPHA); + GL11.glColor4f(1.0F, 1.0F, 1.0F, f2); + this.blockRenderer.renderBlockAsItem(tnt.bomb, 0, 1.0F); + GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); + GL11.glDisable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_TEXTURE_2D); + } + + GL11.glPopMatrix(); + } + + protected ResourceLocation getEntityTexture(EntityTNTPrimedBase tnt) { + return TextureMap.locationBlocksTexture; + } + + protected ResourceLocation getEntityTexture(Entity entity) { + return this.getEntityTexture((EntityTNTPrimedBase) entity); + } + + public void doRender(Entity entity, double x, double y, double z, float f0, float f1) { + this.doRender((EntityTNTPrimedBase) entity, x, y, z, f0, f1); + } +} diff --git a/src/main/resources/assets/hbm/lang/de_DE.lang b/src/main/resources/assets/hbm/lang/de_DE.lang index 3e209d207..bbb4b5c9e 100644 --- a/src/main/resources/assets/hbm/lang/de_DE.lang +++ b/src/main/resources/assets/hbm/lang/de_DE.lang @@ -3079,6 +3079,7 @@ tile.ducrete_smooth.name=Ducrete tile.dummy_block.name=Dummyblock tile.dummy_port.name=Dummyblock (Stromanschluss) tile.dungeon_chain.name=Metallkette +tile.dynamite.name=Dynamit tile.emp_bomb.name=EMP-Ladung tile.factory_advanced_conductor.name=Fortgeschrittener Fabriksstromanschluss tile.factory_advanced_core.name=Fortgeschrittene Fabrikkernkomponente diff --git a/src/main/resources/assets/hbm/lang/en_US.lang b/src/main/resources/assets/hbm/lang/en_US.lang index 56c60dae9..69674971f 100644 --- a/src/main/resources/assets/hbm/lang/en_US.lang +++ b/src/main/resources/assets/hbm/lang/en_US.lang @@ -3405,6 +3405,7 @@ tile.ducrete_smooth.name=Ducrete tile.dummy_block.name=Dummy Block tile.dummy_port.name=Dummy Block (Electricity Port) tile.dungeon_chain.name=Metal Chain +tile.dynamite.name=Dynamite tile.emp_bomb.name=EMP Device tile.factory_advanced_conductor.name=Advanced Factory Electricity Port tile.factory_advanced_core.name=Advanced Factory Core Component diff --git a/src/main/resources/assets/hbm/textures/blocks/dynamite_bottom.png b/src/main/resources/assets/hbm/textures/blocks/dynamite_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..d779674b91c9d0c89a5b4f55b2217d8743aa1b9c GIT binary patch literal 151 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf=sfFcJU& literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/blocks/dynamite_side.png b/src/main/resources/assets/hbm/textures/blocks/dynamite_side.png new file mode 100644 index 0000000000000000000000000000000000000000..953207a8c2bb1d36760a5225a276333771de4f18 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfeVm=xyA!eac$JDavYIBCd(D8cRJcmk4}#KP8BPxi9v> z%y%W9_HGO++%J=JQ)=GaXICZH{caKH^S`Y+J7RMjN7zKQDeC%#Y^?om!Sy`7|MsS7 zblaR?J4L8L=QP8FpnuN|fBwADzOnMm=kBx*{LAz{a@(#@l9&3aJPGIt22WQ%mvv4F FO#t;2Xc_j4=$CJG$@d(z8sp*Zb?^=KBCZXb*T?E!cb?2<-t*ECbgeWi^B0 za>w&+>*SmHFaBpb*@H>DM=XLIrdTadN};tzr!1gi4~#KMXVJuS$4Fok`OLNf6g<14 o$)w#YXHccTXa6z~4U2Q)U(bBsyJ-cn+W-In07*qoM6N<$f|rEIYXATM literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/hbm/textures/items/safety_fuse.png b/src/main/resources/assets/hbm/textures/items/safety_fuse.png new file mode 100644 index 0000000000000000000000000000000000000000..45842eca93899f1fd41109388bee7396e994e3ca GIT binary patch literal 330 zcmV-Q0k!^#P)aFnC0N=`1djh4UM&wbNR=Q~7W%QcCf*T=VdF=QdyO z#5ebBpB5;k2ANCKG#HkPsX<-W0CYc4?+-oh4kJI+cnOjuamE;47i;7y=JR`lT*Yjk zBaAU*Sq6YH2EgTc9(WbXvLsx>)%7Kz?Q!6nrWxNyZ!pH+{l$j}fVOStQs2N@OJ||k zcOycCwRSYH*8VdHrc06}P6)xr?TdE@Ap`(LQ84uP5>!>y*O;ZKs?O6K9Vw-gQhFce c7=H%y3ucjv2&RFcHvj+t07*qoM6N<$g74sqKmY&$ literal 0 HcmV?d00001 From 481e28f68b320d67d978fbdd1e3dd86229ba065f Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 9 Feb 2022 23:42:07 +0100 Subject: [PATCH 8/8] some siege tunneler work, finished dynamite block, meteor ingots in NEI --- src/main/java/com/hbm/blocks/ModBlocks.java | 1 + .../hbm/entity/item/EntityTNTPrimedBase.java | 25 ++++++++--------- .../hbm/entity/mob/EntityBurrowingBase.java | 2 ++ .../entity/mob/siege/EntitySiegeTunneler.java | 26 +++++++++--------- .../hbm/inventory/recipes/MachineRecipes.java | 2 ++ .../java/com/hbm/items/tool/ItemWandD.java | 12 +++----- src/main/java/com/hbm/main/MainRegistry.java | 3 +- .../entity/item/RenderTNTPrimedBase.java | 12 ++++++-- .../render/entity/mob/RenderSiegeCraft.java | 6 ++-- .../entity/mob/RenderSiegeTunneler.java | 4 ++- .../hbm/textures/entity/siege_drill.png | Bin 681 -> 796 bytes 11 files changed, 51 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index 959e499a0..8b980c6d3 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -2665,6 +2665,7 @@ public class ModBlocks { GameRegistry.registerBlock(bomb_multi, bomb_multi.getUnlocalizedName()); GameRegistry.registerBlock(crashed_balefire, crashed_balefire.getUnlocalizedName()); GameRegistry.registerBlock(fireworks, fireworks.getUnlocalizedName()); + GameRegistry.registerBlock(dynamite, dynamite.getUnlocalizedName()); //Turrets GameRegistry.registerBlock(turret_light, turret_light.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java b/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java index 9ab9f5ff6..ec93278b9 100644 --- a/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java +++ b/src/main/java/com/hbm/entity/item/EntityTNTPrimedBase.java @@ -7,7 +7,6 @@ import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; -import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; @@ -15,13 +14,13 @@ public class EntityTNTPrimedBase extends Entity { public int fuse; private EntityLivingBase tntPlacedBy; - public BlockTNTBase bomb; public EntityTNTPrimedBase(World world) { super(world); this.preventEntitySpawning = true; this.setSize(0.98F, 0.98F); this.yOffset = this.height / 2.0F; + this.fuse = 80; } public EntityTNTPrimedBase(World world, double x, double y, double z, EntityLivingBase entity, BlockTNTBase bomb) { @@ -31,16 +30,17 @@ public class EntityTNTPrimedBase extends Entity { this.motionX = (double) (-((float) Math.sin((double) f)) * 0.02F); this.motionY = 0.2D; this.motionZ = (double) (-((float) Math.cos((double) f)) * 0.02F); - this.fuse = 80; this.prevPosX = x; this.prevPosY = y; this.prevPosZ = z; this.tntPlacedBy = entity; - this.bomb = bomb; + this.dataWatcher.updateObject(12, Block.getIdFromBlock(bomb)); } @Override - protected void entityInit() { } + protected void entityInit() { + this.dataWatcher.addObject(12, 0); + } @Override protected boolean canTriggerWalking() { @@ -55,11 +55,6 @@ public class EntityTNTPrimedBase extends Entity { @Override public void onUpdate() { - if(bomb == null) { - this.setDead(); - return; - } - this.prevPosX = this.posX; this.prevPosY = this.posY; this.prevPosZ = this.posZ; @@ -87,19 +82,23 @@ public class EntityTNTPrimedBase extends Entity { } private void explode() { - this.bomb.explodeEntity(worldObj, posX, posZ, posZ, this); + this.getBomb().explodeEntity(worldObj, posX, posY, posZ, this); + } + + public BlockTNTBase getBomb() { + return (BlockTNTBase) Block.getBlockById(this.dataWatcher.getWatchableObjectInt(12)); } @Override protected void writeEntityToNBT(NBTTagCompound nbt) { nbt.setByte("Fuse", (byte) this.fuse); - nbt.setInteger("Tile", Block.getIdFromBlock(bomb)); + nbt.setInteger("Tile", this.dataWatcher.getWatchableObjectInt(12)); } @Override protected void readEntityFromNBT(NBTTagCompound nbt) { this.fuse = nbt.getByte("Fuse"); - this.bomb = (BlockTNTBase) Block.getBlockById(nbt.getInteger("Tile")); + this.dataWatcher.updateObject(12, nbt.getInteger("Tile")); } @Override diff --git a/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java b/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java index 152a69bd7..93b9dd0d0 100644 --- a/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java +++ b/src/main/java/com/hbm/entity/mob/EntityBurrowingBase.java @@ -1,6 +1,8 @@ package com.hbm.entity.mob; import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.world.World; /** diff --git a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java index 4c133b763..98d004c4b 100644 --- a/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java +++ b/src/main/java/com/hbm/entity/mob/siege/EntitySiegeTunneler.java @@ -20,7 +20,7 @@ import net.minecraft.world.World; //well it ain't fucking funny //this stupid fucking random ass bullshit is the P R E C I S E reason i loathe working with entities //honest to fucking god was the entire mojang dev team on crack when they wrote this? -public class EntitySiegeTunneler extends EntityMob { +public class EntitySiegeTunneler extends EntityBurrowingSwingingBase { public EntitySiegeTunneler(World world) { super(world); @@ -30,44 +30,44 @@ public class EntitySiegeTunneler extends EntityMob { @Override protected void entityInit() { super.entityInit(); - //this.getDataWatcher().addObject(12, (int) 0); + this.getDataWatcher().addObject(12, (int) 0); } @Override protected void applyEntityAttributes() { super.applyEntityAttributes(); - //this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); - //this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23D); + this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23D); } public void setTier(SiegeTier tier) { - //this.getDataWatcher().updateObject(12, tier.id); + this.getDataWatcher().updateObject(12, tier.id); - //this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).applyModifier(new AttributeModifier("Tier Speed Mod", tier.speedMod, 1)); - //this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health); - //this.setHealth(this.getMaxHealth()); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).applyModifier(new AttributeModifier("Tier Speed Mod", tier.speedMod, 1)); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(tier.health); + this.setHealth(this.getMaxHealth()); } public SiegeTier getTier() { - //SiegeTier tier = SiegeTier.tiers[this.getDataWatcher().getWatchableObjectInt(12)]; - return /*tier != null ? tier :*/ SiegeTier.CLAY; + SiegeTier tier = SiegeTier.tiers[this.getDataWatcher().getWatchableObjectInt(12)]; + return tier != null ? tier : SiegeTier.CLAY; } @Override public void writeEntityToNBT(NBTTagCompound nbt) { super.writeEntityToNBT(nbt); - //nbt.setInteger("siegeTier", this.getTier().id); + nbt.setInteger("siegeTier", this.getTier().id); } @Override public void readEntityFromNBT(NBTTagCompound nbt) { super.readEntityFromNBT(nbt); - //this.setTier(SiegeTier.tiers[nbt.getInteger("siegeTier")]); + this.setTier(SiegeTier.tiers[nbt.getInteger("siegeTier")]); } @Override public IEntityLivingData onSpawnWithEgg(IEntityLivingData data) { - //this.setTier(SiegeTier.tiers[rand.nextInt(SiegeTier.getLength())]); + this.setTier(SiegeTier.tiers[rand.nextInt(SiegeTier.getLength())]); return super.onSpawnWithEgg(data); } } diff --git a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java index 6504ecde1..d7851ebae 100644 --- a/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java +++ b/src/main/java/com/hbm/inventory/recipes/MachineRecipes.java @@ -428,6 +428,8 @@ public class MachineRecipes { getFurnaceOutput(new ItemStack(ModItems.ingot_saturnite), new ItemStack(ModItems.powder_meteorite)).copy()); recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.nugget_technetium) }, getFurnaceOutput(new ItemStack(ModItems.ingot_steel), new ItemStack(ModItems.nugget_technetium)).copy()); + recipes.put(new ItemStack[] { new ItemStack(ModItems.ingot_cobalt), new ItemStack(ModBlocks.block_meteor) }, + getFurnaceOutput(new ItemStack(ModItems.ingot_cobalt), new ItemStack(ModBlocks.block_meteor)).copy()); if(GeneralConfig.enableBabyMode) { recipes.put(new ItemStack[] { new ItemStack(ModItems.canister_empty), new ItemStack(Items.coal) }, diff --git a/src/main/java/com/hbm/items/tool/ItemWandD.java b/src/main/java/com/hbm/items/tool/ItemWandD.java index 3fa57e460..b8820fd55 100644 --- a/src/main/java/com/hbm/items/tool/ItemWandD.java +++ b/src/main/java/com/hbm/items/tool/ItemWandD.java @@ -2,6 +2,7 @@ package com.hbm.items.tool; import java.util.List; +import com.hbm.entity.mob.siege.EntitySiegeTunneler; import com.hbm.items.ModItems; import com.hbm.items.special.ItemKitCustom; import com.hbm.lib.Library; @@ -26,14 +27,9 @@ public class ItemWandD extends Item { if(pos != null) { - List list = world.getEntitiesWithinAABB(EntityLiving.class, player.boundingBox.expand(150, 150, 150)); - - for(EntityLiving e : list) { - e.setRevengeTarget(player); - e.setAttackTarget(player); - e.setLastAttacker(player); - e.getNavigator().tryMoveToXYZ(player.posX, player.posY, player.posZ, 2); - } + EntitySiegeTunneler tunneler = new EntitySiegeTunneler(world); + tunneler.setPosition(pos.blockX, pos.blockY + 1, pos.blockZ); + world.spawnEntityInWorld(tunneler); //CellularDungeonFactory.meteor.generate(world, x, y, z, world.rand); diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index ecb3ad96b..0d6831552 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -497,7 +497,8 @@ public class MainRegistry { EntityRegistry.registerGlobalEntityID(EntitySiegeSkeleton.class, "entity_meme_skeleton", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x000080); EntityRegistry.registerGlobalEntityID(EntitySiegeUFO.class, "entity_meme_ufo", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x800000); EntityRegistry.registerGlobalEntityID(EntitySiegeCraft.class, "entity_meme_craft", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x808000); - EntityRegistry.registerGlobalEntityID(EntitySiegeTunneler.class, "entity_meme_tunneler", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x008080); + EntityRegistry.registerModEntity(EntitySiegeTunneler.class, "entity_meme_tunneler", 167, this, 1000, 1, true); //how about you have a taste of my fucking scrotum? + //EntityRegistry.registerGlobalEntityID(EntitySiegeTunneler.class, "entity_meme_tunneler", EntityRegistry.findGlobalUniqueEntityId(), 0x303030, 0x008080); EntityRegistry.registerModEntity(EntitySPV.class, "entity_self_propelled_vehicle_mark_1", 160, this, 1000, 1, true); diff --git a/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java b/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java index c1a30d876..e2a3be62e 100644 --- a/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java +++ b/src/main/java/com/hbm/render/entity/item/RenderTNTPrimedBase.java @@ -4,6 +4,7 @@ import org.lwjgl.opengl.GL11; import com.hbm.entity.item.EntityTNTPrimedBase; +import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.entity.Render; import net.minecraft.client.renderer.texture.TextureMap; @@ -43,15 +44,20 @@ public class RenderTNTPrimedBase extends Render { f2 = (1.0F - ((float) tnt.fuse - f1 + 1.0F) / 100.0F) * 0.8F; this.bindEntityTexture(tnt); - this.blockRenderer.renderBlockAsItem(tnt.bomb, 0, tnt.getBrightness(f1)); - + this.blockRenderer.renderBlockAsItem(tnt.getBomb(), 0, tnt.getBrightness(f1)); + if(tnt.fuse / 5 % 2 == 0) { + + GL11.glScaled(1.01, 1.01, 1.01); GL11.glDisable(GL11.GL_TEXTURE_2D); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_DST_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, f2); - this.blockRenderer.renderBlockAsItem(tnt.bomb, 0, 1.0F); + boolean prev = this.blockRenderer.useInventoryTint; + this.blockRenderer.useInventoryTint = false; + this.blockRenderer.renderBlockAsItem(tnt.getBomb(), 0, 1.0F); + this.blockRenderer.useInventoryTint = prev; GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_BLEND); GL11.glEnable(GL11.GL_LIGHTING); diff --git a/src/main/java/com/hbm/render/entity/mob/RenderSiegeCraft.java b/src/main/java/com/hbm/render/entity/mob/RenderSiegeCraft.java index 1cf1a3b3b..54d0bc6b3 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderSiegeCraft.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderSiegeCraft.java @@ -87,9 +87,9 @@ public class RenderSiegeCraft extends Render { Vec3 delta = ufo.getLockon().addVector(-ufo.posX, -ufo.posY, -ufo.posZ); double length = delta.lengthVector(); double scale = 0.1D; - BeamPronter.prontBeam(delta, EnumWaveType.SPIRAL, EnumBeamType.SOLID, 0x101020, 0x101020, 0, (int)(length + 1), 0F, 6, (float)scale * 0.75F); - BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x202060, 0x202060, entity.ticksExisted / 2, (int)(length / 2 + 1), (float)scale * 1.5F, 2, 0.0625F); - BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x202060, 0x202060, entity.ticksExisted / 4, (int)(length / 2 + 1), (float)scale * 1.5F, 2, 0.0625F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x101020, 0x101020, entity.ticksExisted / 6, (int)(length / 2 + 1), (float)scale * 1F, 4, 0.25F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x202060, 0x202060, entity.ticksExisted / 2, (int)(length / 2 + 1), (float)scale * 7F, 2, 0.0625F); + BeamPronter.prontBeam(delta, EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x202060, 0x202060, entity.ticksExisted / 4, (int)(length / 2 + 1), (float)scale * 7F, 2, 0.0625F); GL11.glPopMatrix(); } diff --git a/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java b/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java index 1a4eed429..7fb1b4339 100644 --- a/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java +++ b/src/main/java/com/hbm/render/entity/mob/RenderSiegeTunneler.java @@ -31,7 +31,9 @@ public class RenderSiegeTunneler extends Render { this.bindEntityTexture(entity); GL11.glShadeModel(GL11.GL_SMOOTH); GL11.glDisable(GL11.GL_CULL_FACE); - body.renderAll(); + body.renderPart("Body"); + GL11.glRotated(System.currentTimeMillis() / 3L % 360, 0, -1, 0); + body.renderPart("Drill"); GL11.glEnable(GL11.GL_CULL_FACE); GL11.glShadeModel(GL11.GL_FLAT); diff --git a/src/main/resources/assets/hbm/textures/entity/siege_drill.png b/src/main/resources/assets/hbm/textures/entity/siege_drill.png index 141b6716b3a8e17c3edc53cd2165b758527046b1..19191c3c4e08bf1497829616d37aabc6fb19496c 100644 GIT binary patch delta 756 zcmV5j$G<7*5kw(lC#^%_xKjvEJa&j1vx}0EjYPU|Ydcx}<3298P?~h!cB+Ul`ecrxr zc%Se4=9~9TVjuxyj6(p%m?2WH48)0uCZDKp0Ko4Tk2nA{Eq@Cq^EtL2J};Fx4M0Bm zbemvwj1Nbj(X^~Q`?eMuD#=GM#(0!;7>2oZYMq#QoW$Af#Fs$X&=w$_blMXlmc`Vb zk;@DSM#lhv8`rPmWImUQscGn*AngINF*Uh+K-03MVrsMn7`}Ojt)__!=g%PwL;U>p zM=GX9TY!6ehkpit^_V9OO*W<^mrKBZ`yQNg<(Lv}69fSF+7;Zo=_tpPG;}sLQQO0h zBYgVuH7=KpDT($1(jp|=+_~+-+3i3zrX=^cG5&|q6Wsy~GB?Qo+ zG6Hy>#{t0i{e^fHl@UOdN(m5+y6ETw6%#;(S^(+}P*V#)-2rN90jN7b&BhC0W<6Ow z?P+V#>g%%bOkMWHNYUy8|5ky%?+d>xQ2tJ^Xhb5&3J|{lLbggn#FG@s3c0jWx?>|^5`|qwL!aoyCZnw{3Df|~#h%|rY9BO3%0000k2hXP_Smc1#>&I46fOPl|+rGj|U-E}VfgNWd7+PXY!Rp|*t(!z5rdAOHYc z*_GRCF_m)nKm~*uZ;{JNs3?ZyKtino1>F963N08>`@49sRex@c8EoIX&%8dP;v75$ z6au&v;D#_nPcF8yTjAUDZu^^H^#ODO0D(_)e1|p021nMx`Pvz=_$^Q?r^0=9;cK58 zswSq707W(xR6v{|IT#O|`G63Eaxot0IR%tQz-{O5Po0d#p8|ydZUwke2;f$L8-)OF z1-LPL0_1Bqj(;(~-DkJm#q0^7A`1ep&9ZOyflLUXAR7YQ*&Z|dKt=?_A}a#ytdE_2 zATt7DKu?V^L%loCAD4A{cU^w*E1(d-tpGO)0o)33qY%KY05>{!>SHs-;v|<^f8cl@ zARfl&3YtJDBuyTgQol!k5t$%q2vCn5Gq* zjFbPs|bpVzXHRL&=ViM2L%75HQBTSQ3&aAjGg35|Ymh z_3ing_IaT!P#-2=0ZJ*OlrjKJOnGX3d`Nx^+!~7~;L-;~ob%5(-YI-Ri}iZl)Kkh9 zzCG`@hl0EUtnqGnDue_%F#%D#0uqkx^$x;!#KlH~YYWlH_GXbrnX aDEtqqi0Je0_Ln{Y0000