From ba20bea0ec73d11adaea7670c120d6cfa812ce3b Mon Sep 17 00:00:00 2001 From: asiekierka Date: Sun, 23 Nov 2014 14:48:31 +0100 Subject: [PATCH] fix item rendering for #2222, add engine explosion option, improve engine overheat behaviour --- common/buildcraft/BuildCraftEnergy.java | 4 +++- common/buildcraft/energy/TileEngine.java | 5 +++++ common/buildcraft/energy/TileEngineIron.java | 6 ++++++ .../energy/statements/EnergyStatementProvider.java | 1 + common/buildcraft/transport/render/FacadeItemRenderer.java | 2 ++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/common/buildcraft/BuildCraftEnergy.java b/common/buildcraft/BuildCraftEnergy.java index 1d0b76e8..305dab32 100644 --- a/common/buildcraft/BuildCraftEnergy.java +++ b/common/buildcraft/BuildCraftEnergy.java @@ -102,12 +102,13 @@ public class BuildCraftEnergy extends BuildCraftMod { public static Item fuel; public static boolean canOilBurn; + public static boolean canEnginesExplode; public static double oilWellScalar = 1.0; - public static TreeMap saturationStored = new TreeMap(); public static ITriggerExternal triggerBlueEngineHeat = new TriggerEngineHeat(EnergyStage.BLUE); public static ITriggerExternal triggerGreenEngineHeat = new TriggerEngineHeat(EnergyStage.GREEN); public static ITriggerExternal triggerYellowEngineHeat = new TriggerEngineHeat(EnergyStage.YELLOW); public static ITriggerExternal triggerRedEngineHeat = new TriggerEngineHeat(EnergyStage.RED); + public static ITriggerExternal triggerEngineOverheat = new TriggerEngineHeat(EnergyStage.OVERHEAT); private static Fluid buildcraftFluidOil; private static Fluid buildcraftFluidFuel; @@ -120,6 +121,7 @@ public class BuildCraftEnergy extends BuildCraftMod { int oilOceanBiomeId = BuildCraftCore.mainConfiguration.get("biomes", "biomeOilOcean", DefaultProps.BIOME_OIL_OCEAN).getInt(DefaultProps.BIOME_OIL_OCEAN); canOilBurn = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "burnOil", true, "Can oil burn?").getBoolean(true); oilWellScalar = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "oilWellGenerationRate", 1.0, "Probability of oil well generation").getDouble(1.0); + canEnginesExplode = BuildCraftCore.mainConfiguration.get(Configuration.CATEGORY_GENERAL, "enginesExplode", false, "Do engines explode upon overheat?").getBoolean(false); setBiomeList( OilPopulate.INSTANCE.surfaceDepositBiomes, diff --git a/common/buildcraft/energy/TileEngine.java b/common/buildcraft/energy/TileEngine.java index 2c5bcd7a..3b334257 100644 --- a/common/buildcraft/energy/TileEngine.java +++ b/common/buildcraft/energy/TileEngine.java @@ -17,6 +17,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.util.ForgeDirection; import cofh.api.energy.IEnergyHandler; +import buildcraft.BuildCraftEnergy; import buildcraft.api.power.IEngine; import buildcraft.api.tiles.IHeatable; import buildcraft.api.tools.IToolWrench; @@ -172,6 +173,10 @@ public abstract class TileEngine extends TileBuildCraft implements IPipeConnecti public void overheat() { this.isPumping = false; + if (BuildCraftEnergy.canEnginesExplode) { + worldObj.createExplosion(null, xCoord, yCoord, zCoord, 3, true); + worldObj.setBlockToAir(xCoord, yCoord, zCoord); + } } public void updateHeat() { diff --git a/common/buildcraft/energy/TileEngineIron.java b/common/buildcraft/energy/TileEngineIron.java index 99446f68..fe95ae7b 100644 --- a/common/buildcraft/energy/TileEngineIron.java +++ b/common/buildcraft/energy/TileEngineIron.java @@ -140,6 +140,12 @@ public class TileEngineIron extends TileEngineWithInventory implements IFluidHan return fuel != null && fuel.amount > 0 && penaltyCooling == 0 && isRedstonePowered; } + @Override + public void overheat() { + // Evaporate all remaining coolant as a form of penalty. + tankCoolant.setFluid(null); + } + @Override public void burn() { FluidStack fuel = this.tankFuel.getFluid(); diff --git a/common/buildcraft/energy/statements/EnergyStatementProvider.java b/common/buildcraft/energy/statements/EnergyStatementProvider.java index 44059312..014c3131 100644 --- a/common/buildcraft/energy/statements/EnergyStatementProvider.java +++ b/common/buildcraft/energy/statements/EnergyStatementProvider.java @@ -36,6 +36,7 @@ public class EnergyStatementProvider implements ITriggerProvider { triggers.add(BuildCraftEnergy.triggerGreenEngineHeat); triggers.add(BuildCraftEnergy.triggerYellowEngineHeat); triggers.add(BuildCraftEnergy.triggerRedEngineHeat); + triggers.add(BuildCraftEnergy.triggerEngineOverheat); } return triggers; diff --git a/common/buildcraft/transport/render/FacadeItemRenderer.java b/common/buildcraft/transport/render/FacadeItemRenderer.java index e7b4254f..ce3d541f 100644 --- a/common/buildcraft/transport/render/FacadeItemRenderer.java +++ b/common/buildcraft/transport/render/FacadeItemRenderer.java @@ -112,6 +112,8 @@ public class FacadeItemRenderer implements IItemRenderer { GL11.glPopMatrix(); + RenderUtils.setGLColorFromInt(0xFFFFFF); + // Render StructurePipe block = BuildCraftTransport.genericPipeBlock; IIcon textureID = BuildCraftTransport.instance.pipeIconProvider.getIcon(PipeIconProvider.TYPE.PipeStructureCobblestone.ordinal()); // Structure pipe