From 95c0ad4a73e00639bfd7072fa69002cee6785ae7 Mon Sep 17 00:00:00 2001 From: aidancbrady Date: Wed, 6 Jul 2016 16:56:24 -0400 Subject: [PATCH] Bump version to 9.1, add Laser Amplifier comparator support, add Saturating Condensers to recycle water from Industrial Turbines --- build.properties | 2 +- .../java/mekanism/api/MekanismConfig.java | 1 + .../client/gui/GuiLaserAmplifier.java | 4 +- ...DetectionTab.java => GuiAmplifierTab.java} | 15 ++-- src/main/java/mekanism/common/Mekanism.java | 4 +- .../java/mekanism/common/base/IFactory.java | 18 ++++ .../common/base/ITierUpgradeable.java | 8 ++ .../mekanism/common/block/BlockMachine.java | 13 +++ .../common/item/ItemFactoryInstaller.java | 84 ++---------------- .../TileEntityAdvancedElectricMachine.java | 16 +++- .../mekanism/common/tile/TileEntityBin.java | 1 + .../tile/TileEntityElectricMachine.java | 16 +++- .../common/tile/TileEntityFactory.java | 14 ++- .../common/tile/TileEntityLaserAmplifier.java | 58 ++++++++++-- .../tile/TileEntityMetallurgicInfuser.java | 16 +++- .../common/GeneratorsCommonProxy.java | 3 + .../generators/common/MekanismGenerators.java | 6 +- .../common/block/BlockGenerator.java | 6 +- .../turbine/SynchronizedTurbineData.java | 3 + .../turbine/TurbineUpdateProtocol.java | 20 ++++- .../common/item/ItemBlockGenerator.java | 1 + .../TileEntitySaturatingCondenser.java | 15 ++++ .../tile/turbine/TileEntityTurbineCasing.java | 5 +- .../tile/turbine/TileEntityTurbineVent.java | 74 ++++++++++++++- .../mekanism/tools/common/MekanismTools.java | 4 +- .../mekanism/gui/elements/GuiAmplifierTab.png | Bin 0 -> 4923 bytes .../mekanism/gui/elements/GuiDetectionTab.png | Bin 3482 -> 0 bytes .../resources/assets/mekanism/lang/en_US.lang | 6 +- 28 files changed, 295 insertions(+), 118 deletions(-) rename src/main/java/mekanism/client/gui/element/{GuiDetectionTab.java => GuiAmplifierTab.java} (77%) create mode 100644 src/main/java/mekanism/common/base/ITierUpgradeable.java create mode 100644 src/main/java/mekanism/generators/common/tile/turbine/TileEntitySaturatingCondenser.java create mode 100644 src/main/resources/assets/mekanism/gui/elements/GuiAmplifierTab.png delete mode 100644 src/main/resources/assets/mekanism/gui/elements/GuiDetectionTab.png diff --git a/build.properties b/build.properties index ae9ce6668..cd60cf117 100644 --- a/build.properties +++ b/build.properties @@ -4,4 +4,4 @@ FMP_version=1.1.2.331 CCLIB_version=1.1.3.136 NEI_version=1.0.4.101 CCC_version=1.0.6.39 -mod_version=9.0.3 +mod_version=9.1.0 diff --git a/src/main/java/mekanism/api/MekanismConfig.java b/src/main/java/mekanism/api/MekanismConfig.java index 813f845e0..d8fea669c 100644 --- a/src/main/java/mekanism/api/MekanismConfig.java +++ b/src/main/java/mekanism/api/MekanismConfig.java @@ -145,6 +145,7 @@ public class MekanismConfig public static int turbineBladesPerCoil; public static double turbineVentGasFlow; public static double turbineDisperserGasFlow; + public static int condenserRate; } public static class tools diff --git a/src/main/java/mekanism/client/gui/GuiLaserAmplifier.java b/src/main/java/mekanism/client/gui/GuiLaserAmplifier.java index 5b95535d6..67716429c 100644 --- a/src/main/java/mekanism/client/gui/GuiLaserAmplifier.java +++ b/src/main/java/mekanism/client/gui/GuiLaserAmplifier.java @@ -3,7 +3,7 @@ package mekanism.client.gui; import java.util.ArrayList; import mekanism.api.Coord4D; -import mekanism.client.gui.element.GuiDetectionTab; +import mekanism.client.gui.element.GuiAmplifierTab; import mekanism.client.gui.element.GuiGauge.Type; import mekanism.client.gui.element.GuiNumberGauge; import mekanism.client.gui.element.GuiNumberGauge.INumberInfoHandler; @@ -69,7 +69,7 @@ public class GuiLaserAmplifier extends GuiMekanism }, Type.STANDARD, this, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"), 6, 10)); guiElements.add(new GuiSecurityTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); - guiElements.add(new GuiDetectionTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); + guiElements.add(new GuiAmplifierTab(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiBlank.png"))); } @Override diff --git a/src/main/java/mekanism/client/gui/element/GuiDetectionTab.java b/src/main/java/mekanism/client/gui/element/GuiAmplifierTab.java similarity index 77% rename from src/main/java/mekanism/client/gui/element/GuiDetectionTab.java rename to src/main/java/mekanism/client/gui/element/GuiAmplifierTab.java index e83778fba..b2eaa1b58 100644 --- a/src/main/java/mekanism/client/gui/element/GuiDetectionTab.java +++ b/src/main/java/mekanism/client/gui/element/GuiAmplifierTab.java @@ -18,13 +18,13 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class GuiDetectionTab extends GuiElement +public class GuiAmplifierTab extends GuiElement { public TileEntity tileEntity; - public GuiDetectionTab(IGuiWrapper gui, TileEntity tile, ResourceLocation def) + public GuiAmplifierTab(IGuiWrapper gui, TileEntity tile, ResourceLocation def) { - super(MekanismUtils.getResource(ResourceType.GUI_ELEMENT, "GuiDetectionTab.png"), gui, def); + super(MekanismUtils.getResource(ResourceType.GUI_ELEMENT, "GuiAmplifierTab.png"), gui, def); tileEntity = tile; } @@ -41,13 +41,14 @@ public class GuiDetectionTab extends GuiElement mc.renderEngine.bindTexture(RESOURCE); guiObj.drawTexturedRect(guiWidth - 26, guiHeight + 138, 0, 0, 26, 26); + int outputOrdinal = ((TileEntityLaserAmplifier)tileEntity).outputMode.ordinal(); if(xAxis >= -21 && xAxis <= -3 && yAxis >= 142 && yAxis <= 160) { - guiObj.drawTexturedRect(guiWidth - 21, guiHeight + 142, 26, 0, 18, 18); + guiObj.drawTexturedRect(guiWidth - 21, guiHeight + 142, 26 + 18*outputOrdinal, 0, 18, 18); } else { - guiObj.drawTexturedRect(guiWidth - 21, guiHeight + 142, 26, 18, 18, 18); + guiObj.drawTexturedRect(guiWidth - 21, guiHeight + 142, 26 + 18*outputOrdinal, 18, 18, 18); } mc.renderEngine.bindTexture(defaultLocation); @@ -60,8 +61,8 @@ public class GuiDetectionTab extends GuiElement if(xAxis >= -21 && xAxis <= -3 && yAxis >= 142 && yAxis <= 160) { - String text = LangUtils.transOnOff(((TileEntityLaserAmplifier)tileEntity).entityDetection); - displayTooltip(LangUtils.localize("gui.entityDetection") + ": " + text, xAxis, yAxis); + String text = LangUtils.localize("gui.redstoneOutput") + ": "; + displayTooltip(text + ((TileEntityLaserAmplifier)tileEntity).outputMode.getName(), xAxis, yAxis); } mc.renderEngine.bindTexture(defaultLocation); diff --git a/src/main/java/mekanism/common/Mekanism.java b/src/main/java/mekanism/common/Mekanism.java index 2b0b823a4..9d5c58e03 100644 --- a/src/main/java/mekanism/common/Mekanism.java +++ b/src/main/java/mekanism/common/Mekanism.java @@ -142,7 +142,7 @@ import cpw.mods.fml.common.registry.GameRegistry; * @author AidanBrady * */ -@Mod(modid = "Mekanism", name = "Mekanism", version = "9.0.3", guiFactory = "mekanism.client.gui.ConfigGuiFactory", +@Mod(modid = "Mekanism", name = "Mekanism", version = "9.1.0", guiFactory = "mekanism.client.gui.ConfigGuiFactory", dependencies = "after:ForgeMultipart;after:BuildCraft;after:BuildCraftAPI;after:IC2;after:CoFHCore;" + "after:ComputerCraft;after:Galacticraft API;after:MetallurgyCore") public class Mekanism @@ -168,7 +168,7 @@ public class Mekanism public static Configuration configuration; /** Mekanism version number */ - public static Version versionNumber = new Version(9, 0, 3); + public static Version versionNumber = new Version(9, 1, 0); /** MultiblockManagers for various structrures */ public static MultiblockManager tankManager = new MultiblockManager("dynamicTank"); diff --git a/src/main/java/mekanism/common/base/IFactory.java b/src/main/java/mekanism/common/base/IFactory.java index 873d17e01..b4859abe2 100644 --- a/src/main/java/mekanism/common/base/IFactory.java +++ b/src/main/java/mekanism/common/base/IFactory.java @@ -242,6 +242,24 @@ public interface IFactory { return fuelSpeed; } + + public static RecipeType getFromMachine(Block block, int meta) + { + RecipeType type = null; + + for(RecipeType iterType : RecipeType.values()) + { + ItemStack machineStack = iterType.getStack(); + + if(Block.getBlockFromItem(machineStack.getItem()) == block && machineStack.getItemDamage() == meta) + { + type = iterType; + break; + } + } + + return type; + } private RecipeType(String s, String s1, ItemStack is, boolean b, boolean b1, Recipe r) { diff --git a/src/main/java/mekanism/common/base/ITierUpgradeable.java b/src/main/java/mekanism/common/base/ITierUpgradeable.java new file mode 100644 index 000000000..591559591 --- /dev/null +++ b/src/main/java/mekanism/common/base/ITierUpgradeable.java @@ -0,0 +1,8 @@ +package mekanism.common.base; + +import mekanism.common.Tier.BaseTier; + +public interface ITierUpgradeable +{ + public boolean upgrade(BaseTier upgradeTier); +} diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index d613fd447..02574539a 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -818,6 +818,19 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo return ((TileEntityFluidTank)tileEntity).getRedstoneLevel(); } + if(tileEntity instanceof TileEntityLaserAmplifier) + { + TileEntityLaserAmplifier amplifier = (TileEntityLaserAmplifier)tileEntity; + + if(amplifier.outputMode == TileEntityLaserAmplifier.RedstoneOutput.ENERGY_CONTENTS) + { + return amplifier.getRedstoneLevel(); + } + else { + return isProvidingWeakPower(world, x, y, z, par5); + } + } + return 0; } diff --git a/src/main/java/mekanism/common/item/ItemFactoryInstaller.java b/src/main/java/mekanism/common/item/ItemFactoryInstaller.java index 59c6ff8aa..cd0d8d0b6 100644 --- a/src/main/java/mekanism/common/item/ItemFactoryInstaller.java +++ b/src/main/java/mekanism/common/item/ItemFactoryInstaller.java @@ -4,13 +4,8 @@ import java.util.List; import mekanism.common.Tier.BaseTier; import mekanism.common.Tier.FactoryTier; -import mekanism.common.base.IFactory.RecipeType; -import mekanism.common.tile.TileEntityAdvancedElectricMachine; +import mekanism.common.base.ITierUpgradeable; import mekanism.common.tile.TileEntityBasicBlock; -import mekanism.common.tile.TileEntityElectricMachine; -import mekanism.common.tile.TileEntityFactory; -import mekanism.common.tile.TileEntityMetallurgicInfuser; -import net.minecraft.block.Block; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.player.EntityPlayer; @@ -27,7 +22,6 @@ public class ItemFactoryInstaller extends ItemMekanism public ItemFactoryInstaller() { super(); - setMaxStackSize(1); setHasSubtypes(true); } @@ -42,79 +36,18 @@ public class ItemFactoryInstaller extends ItemMekanism TileEntity tile = world.getTileEntity(x, y, z); FactoryTier tier = FactoryTier.values()[stack.getItemDamage()]; - if(tile instanceof TileEntityBasicBlock && ((TileEntityBasicBlock)tile).playersUsing.size() > 0) + if(tile instanceof ITierUpgradeable) { - return true; - } - - if(tile instanceof TileEntityFactory && tier != FactoryTier.BASIC) - { - TileEntityFactory factory = (TileEntityFactory)tile; - - if(factory.tier.ordinal()+1 == tier.ordinal()) + if(tile instanceof TileEntityBasicBlock && ((TileEntityBasicBlock)tile).playersUsing.size() > 0) { - if(!world.isRemote) - { - factory.upgrade(); - } - - if(!player.capabilities.isCreativeMode) - { - stack.stackSize = 0; - } - return true; } - } - else if(tile != null && tier == FactoryTier.BASIC) - { - RecipeType type = null; - for(RecipeType iterType : RecipeType.values()) + if(((ITierUpgradeable)tile).upgrade(tier.getBaseTier())) { - ItemStack machineStack = iterType.getStack(); - - if(Block.getBlockFromItem(machineStack.getItem()) == world.getBlock(x, y, z) && machineStack.getItemDamage() == world.getBlockMetadata(x, y, z)) + if(!player.capabilities.isCreativeMode) { - type = iterType; - break; - } - } - - if(type != null) - { - if(tile instanceof TileEntityElectricMachine) - { - ((TileEntityElectricMachine)tile).upgrade(type); - - if(!player.capabilities.isCreativeMode) - { - stack.stackSize = 0; - } - - return true; - } - else if(tile instanceof TileEntityAdvancedElectricMachine) - { - ((TileEntityAdvancedElectricMachine)tile).upgrade(type); - - if(!player.capabilities.isCreativeMode) - { - stack.stackSize = 0; - } - - return true; - } - else if(tile instanceof TileEntityMetallurgicInfuser) - { - ((TileEntityMetallurgicInfuser)tile).upgrade(type); - - if(!player.capabilities.isCreativeMode) - { - stack.stackSize = 0; - } - - return true; + stack.stackSize--; } } } @@ -122,11 +55,6 @@ public class ItemFactoryInstaller extends ItemMekanism return false; } - private int getOutputSlot(FactoryTier tier, int operation) - { - return 5+tier.processes+operation; - } - @Override public void registerIcons(IIconRegister register) { diff --git a/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java b/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java index 4362c3cce..b2ff5c670 100644 --- a/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java +++ b/src/main/java/mekanism/common/tile/TileEntityAdvancedElectricMachine.java @@ -14,8 +14,10 @@ import mekanism.api.transmitters.TransmissionType; import mekanism.common.MekanismBlocks; import mekanism.common.MekanismItems; import mekanism.common.SideData; +import mekanism.common.Tier.BaseTier; import mekanism.common.Upgrade; import mekanism.common.base.IFactory.RecipeType; +import mekanism.common.base.ITierUpgradeable; import mekanism.common.recipe.RecipeHandler; import mekanism.common.recipe.inputs.AdvancedMachineInput; import mekanism.common.recipe.machines.AdvancedMachineRecipe; @@ -33,7 +35,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityAdvancedElectricMachine> extends TileEntityBasicMachine implements IGasHandler, ITubeConnection +public abstract class TileEntityAdvancedElectricMachine> extends TileEntityBasicMachine implements IGasHandler, ITubeConnection, ITierUpgradeable { /** How much secondary energy (fuel) this machine uses per tick, not including upgrades. */ public int BASE_SECONDARY_ENERGY_PER_TICK; @@ -89,12 +91,19 @@ public abstract class TileEntityAdvancedElectricMachine> extends TileEntityBasicMachine +public abstract class TileEntityElectricMachine> extends TileEntityBasicMachine implements ITierUpgradeable { /** * A simple electrical machine. This has 3 slots - the input slot (0), the energy slot (1), @@ -55,12 +57,19 @@ public abstract class TileEntityElectricMachine 0 ? 1 : 0); + } @Override public ArrayList getNetworkedData(ArrayList data) @@ -210,7 +233,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement data.add(lastFired); data.add(controlType.ordinal()); data.add(emittingRedstone); - data.add(entityDetection); + data.add(outputMode.ordinal()); return data; } @@ -232,7 +255,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement time = dataStream.readInt(); break; case 3: - entityDetection = !entityDetection; + outputMode = RedstoneOutput.values()[outputMode.ordinal() == RedstoneOutput.values().length-1 ? 0 : outputMode.ordinal()+1]; break; } @@ -251,7 +274,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement lastFired = dataStream.readDouble(); controlType = RedstoneControl.values()[dataStream.readInt()]; emittingRedstone = dataStream.readBoolean(); - entityDetection = dataStream.readBoolean(); + outputMode = RedstoneOutput.values()[dataStream.readInt()]; } } @@ -267,7 +290,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement collectedEnergy = nbtTags.getDouble("collectedEnergy"); lastFired = nbtTags.getDouble("lastFired"); controlType = RedstoneControl.values()[nbtTags.getInteger("controlType")]; - entityDetection = nbtTags.getBoolean("entityDetection"); + outputMode = RedstoneOutput.values()[nbtTags.getInteger("outputMode")]; } @Override @@ -282,7 +305,7 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement nbtTags.setDouble("collectedEnergy", collectedEnergy); nbtTags.setDouble("lastFired", lastFired); nbtTags.setInteger("controlType", controlType.ordinal()); - nbtTags.setBoolean("entityDetection", entityDetection); + nbtTags.setInteger("outputMode", outputMode.ordinal()); } @Override @@ -342,4 +365,23 @@ public class TileEntityLaserAmplifier extends TileEntityContainerBlock implement { return securityComponent; } + + public static enum RedstoneOutput + { + OFF("off"), + ENTITY_DETECTION("entityDetection"), + ENERGY_CONTENTS("energyContents"); + + private String unlocalizedName; + + private RedstoneOutput(String name) + { + unlocalizedName = name; + } + + public String getName() + { + return LangUtils.localize("gui." + unlocalizedName); + } + } } diff --git a/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java b/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java index 2a59a6e14..301051e64 100644 --- a/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java +++ b/src/main/java/mekanism/common/tile/TileEntityMetallurgicInfuser.java @@ -19,10 +19,12 @@ import mekanism.common.MekanismBlocks; import mekanism.common.MekanismItems; import mekanism.common.PacketHandler; import mekanism.common.SideData; +import mekanism.common.Tier.BaseTier; import mekanism.common.Upgrade; import mekanism.common.base.IFactory.RecipeType; import mekanism.common.base.IRedstoneControl; import mekanism.common.base.ISideConfiguration; +import mekanism.common.base.ITierUpgradeable; import mekanism.common.base.IUpgradeTile; import mekanism.common.block.BlockMachine.MachineType; import mekanism.common.integration.IComputerIntegration; @@ -42,7 +44,7 @@ import mekanism.common.util.MekanismUtils; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock implements IComputerIntegration, ISideConfiguration, IUpgradeTile, IRedstoneControl, IConfigCardAccess, ISecurityTile +public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock implements IComputerIntegration, ISideConfiguration, IUpgradeTile, IRedstoneControl, IConfigCardAccess, ISecurityTile, ITierUpgradeable { /** The maxiumum amount of infuse this machine can store. */ public int MAX_INFUSE = 1000; @@ -199,12 +201,19 @@ public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock i } } - public void upgrade(RecipeType type) + @Override + public boolean upgrade(BaseTier upgradeTier) { + if(upgradeTier != BaseTier.BASIC) + { + return false; + } + worldObj.setBlockToAir(xCoord, yCoord, zCoord); worldObj.setBlock(xCoord, yCoord, zCoord, MekanismBlocks.MachineBlock, 5, 3); TileEntityFactory factory = (TileEntityFactory)worldObj.getTileEntity(xCoord, yCoord, zCoord); + RecipeType type = RecipeType.INFUSING; //Basic factory.facing = facing; @@ -257,8 +266,9 @@ public class TileEntityMetallurgicInfuser extends TileEntityNoisyElectricBlock i } factory.upgraded = true; - factory.markDirty(); + + return true; } @Override diff --git a/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java b/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java index a714aa4dd..34f4062eb 100644 --- a/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java +++ b/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java @@ -28,6 +28,7 @@ import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture; import mekanism.generators.common.tile.reactor.TileEntityReactorPort; import mekanism.generators.common.tile.turbine.TileEntityElectromagneticCoil; import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; +import mekanism.generators.common.tile.turbine.TileEntitySaturatingCondenser; import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing; import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import mekanism.generators.common.tile.turbine.TileEntityTurbineValve; @@ -61,6 +62,7 @@ public class GeneratorsCommonProxy implements IGuiProvider GameRegistry.registerTileEntity(TileEntityReactorLogicAdapter.class, "ReactorLogicAdapter"); GameRegistry.registerTileEntity(TileEntityRotationalComplex.class, "RotationalComplex"); GameRegistry.registerTileEntity(TileEntityElectromagneticCoil.class, "ElectromagneticCoil"); + GameRegistry.registerTileEntity(TileEntitySaturatingCondenser.class, "SaturatingCondenser"); } /** @@ -103,6 +105,7 @@ public class GeneratorsCommonProxy implements IGuiProvider generators.turbineBladesPerCoil = Mekanism.configuration.get("generation", "TurbineBladesPerCoil", 4).getInt(); generators.turbineVentGasFlow = Mekanism.configuration.get("generation", "TurbineVentGasFlow", 16000D).getDouble(); generators.turbineDisperserGasFlow = Mekanism.configuration.get("generation", "TurbineDisperserGasFlow", 640D).getDouble(); + generators.condenserRate = Mekanism.configuration.get("generation", "TurbineCondenserRate", 8000).getInt(); if(Mekanism.configuration.hasChanged()) { diff --git a/src/main/java/mekanism/generators/common/MekanismGenerators.java b/src/main/java/mekanism/generators/common/MekanismGenerators.java index 137d5766f..13ef3fa3b 100644 --- a/src/main/java/mekanism/generators/common/MekanismGenerators.java +++ b/src/main/java/mekanism/generators/common/MekanismGenerators.java @@ -43,7 +43,7 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.network.NetworkRegistry; -@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "9.0.3", dependencies = "required-after:Mekanism", guiFactory = "mekanism.generators.client.gui.GeneratorsGuiFactory") +@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "9.1.0", dependencies = "required-after:Mekanism", guiFactory = "mekanism.generators.client.gui.GeneratorsGuiFactory") public class MekanismGenerators implements IModule { @SidedProxy(clientSide = "mekanism.generators.client.GeneratorsClientProxy", serverSide = "mekanism.generators.common.GeneratorsCommonProxy") @@ -53,7 +53,7 @@ public class MekanismGenerators implements IModule public static MekanismGenerators instance; /** MekanismGenerators version number */ - public static Version versionNumber = new Version(9, 0, 3); + public static Version versionNumber = new Version(9, 1, 0); public static MultiblockManager turbineManager = new MultiblockManager("industrialTurbine"); @@ -210,6 +210,7 @@ public class MekanismGenerators implements IModule dataStream.writeInt(generators.turbineBladesPerCoil); dataStream.writeDouble(generators.turbineVentGasFlow); dataStream.writeDouble(generators.turbineDisperserGasFlow); + dataStream.writeInt(generators.condenserRate); } @Override @@ -231,6 +232,7 @@ public class MekanismGenerators implements IModule generators.turbineBladesPerCoil = dataStream.readInt(); generators.turbineVentGasFlow = dataStream.readDouble(); generators.turbineDisperserGasFlow = dataStream.readDouble(); + generators.condenserRate = dataStream.readInt(); } @Override diff --git a/src/main/java/mekanism/generators/common/block/BlockGenerator.java b/src/main/java/mekanism/generators/common/block/BlockGenerator.java index 7c7de7678..16cc1b38f 100644 --- a/src/main/java/mekanism/generators/common/block/BlockGenerator.java +++ b/src/main/java/mekanism/generators/common/block/BlockGenerator.java @@ -36,6 +36,7 @@ import mekanism.generators.common.tile.TileEntitySolarGenerator; import mekanism.generators.common.tile.TileEntityWindGenerator; import mekanism.generators.common.tile.turbine.TileEntityElectromagneticCoil; import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; +import mekanism.generators.common.tile.turbine.TileEntitySaturatingCondenser; import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing; import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import mekanism.generators.common.tile.turbine.TileEntityTurbineValve; @@ -77,6 +78,7 @@ import cpw.mods.fml.relauncher.SideOnly; * 10: Turbine Casing * 11: Turbine Valve * 12: Turbine Vent + * 13: Saturating Condenser * @author AidanBrady * */ @@ -117,6 +119,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IB icons[10][0] = ctms[10].mainTextureData.icon; icons[11][0] = ctms[11].mainTextureData.icon; icons[12][0] = ctms[12].mainTextureData.icon; + icons[13][0] = register.registerIcon("mekanism:SteelCasing"); } @Override @@ -767,7 +770,8 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IB ELECTROMAGNETIC_COIL(9, "ElectromagneticCoil", -1, -1, TileEntityElectromagneticCoil.class, false), TURBINE_CASING(10, "TurbineCasing", -1, -1, TileEntityTurbineCasing.class, false), TURBINE_VALVE(11, "TurbineValve", -1, -1, TileEntityTurbineValve.class, false), - TURBINE_VENT(12, "TurbineVent", -1, -1, TileEntityTurbineVent.class, false); + TURBINE_VENT(12, "TurbineVent", -1, -1, TileEntityTurbineVent.class, false), + SATURATING_CONDENSER(13, "SaturatingCondenser", -1, -1, TileEntitySaturatingCondenser.class, false); public int meta; public String name; diff --git a/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java b/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java index f8795fe52..906e67cbc 100644 --- a/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java +++ b/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java @@ -25,6 +25,7 @@ public class SynchronizedTurbineData extends SynchronizedData turbines = new HashSet(); Set dispersers = new HashSet(); Set coils = new HashSet(); + Set condensers = new HashSet(); //Scan for complex for(Coord4D coord : innerNodes) @@ -107,6 +110,10 @@ public class TurbineUpdateProtocol extends UpdateProtocol 0) + { + FluidStack fluidStack = new FluidStack(FluidRegistry.WATER, structure.flowRemaining); + + for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) + { + TileEntity tile = Coord4D.get(this).getFromSide(side).getTileEntity(worldObj); + + if(tile instanceof IFluidHandler) + { + if(((IFluidHandler)tile).canFill(side.getOpposite(), fluidStack.getFluid())) + { + structure.flowRemaining -= ((IFluidHandler)tile).fill(side.getOpposite(), fluidStack, true); + } + } + } + } + } + + @Override + public FluidTankInfo[] getTankInfo(ForgeDirection from) + { + return ((!worldObj.isRemote && structure != null) || (worldObj.isRemote && clientHasStructure)) ? new FluidTankInfo[] {fakeInfo} : PipeUtils.EMPTY; + } + + @Override + public int fill(ForgeDirection from, FluidStack resource, boolean doFill) + { + return 0; + } + + @Override + public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) + { + return null; + } + + @Override + public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) + { + return null; + } + + @Override + public boolean canFill(ForgeDirection from, Fluid fluid) + { + return false; + } + + @Override + public boolean canDrain(ForgeDirection from, Fluid fluid) + { + return fluid == FluidRegistry.WATER; + } } diff --git a/src/main/java/mekanism/tools/common/MekanismTools.java b/src/main/java/mekanism/tools/common/MekanismTools.java index 3d48f90e9..36e5b72bf 100644 --- a/src/main/java/mekanism/tools/common/MekanismTools.java +++ b/src/main/java/mekanism/tools/common/MekanismTools.java @@ -29,7 +29,7 @@ import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; -@Mod(modid = "MekanismTools", name = "MekanismTools", version = "9.0.3", dependencies = "required-after:Mekanism", guiFactory = "mekanism.tools.client.gui.ToolsGuiFactory") +@Mod(modid = "MekanismTools", name = "MekanismTools", version = "9.1.0", dependencies = "required-after:Mekanism", guiFactory = "mekanism.tools.client.gui.ToolsGuiFactory") public class MekanismTools implements IModule { @SidedProxy(clientSide = "mekanism.tools.client.ToolsClientProxy", serverSide = "mekanism.tools.common.ToolsCommonProxy") @@ -39,7 +39,7 @@ public class MekanismTools implements IModule public static MekanismTools instance; /** MekanismTools version number */ - public static Version versionNumber = new Version(9, 0, 3); + public static Version versionNumber = new Version(9, 1, 0); //Enums: Tools public static ToolMaterial toolOBSIDIAN; diff --git a/src/main/resources/assets/mekanism/gui/elements/GuiAmplifierTab.png b/src/main/resources/assets/mekanism/gui/elements/GuiAmplifierTab.png new file mode 100644 index 0000000000000000000000000000000000000000..b756df3639a886625a9b5dd34303e52f30cbe69f GIT binary patch literal 4923 zcmeHK`9GBH+a7~>NJt^lOjPz6OW9{A(?piR*vVKz*2y}=V4_f#lqH1`DOr;(WT|Xf zvt=EM?8{^@HD-*jp67X=_xt_}@8`LHxzGE!&+|C0^ZH!p@%dcwCdOBIxJ0-B0057^ z9>NR&U^xg`0Gx*oUiSWlZU6uqkB6?ViN3Bb*u)>}=HcxM0H`G-^DHd(s=Vl`7!In$%QV%l{hd@Gxr6Sh(3PG(=KE3!^c zImRORq)c8&X*M7>ISwZKASO0f=+HAOQ!&|VuMB}IC~jP}-Hh&sFwFP}iAgN2MT#8< z`+=M*7Ye!Kl39MdwCE0IxwV@D(q6GWMRi`PRn%#P-g^7ZW%OeJJR;Gu94?z(b9aL^V1+wZpBTq6O-uk{>GgxpN}v5Gl}pRvXebs z_QKi4Z>FsVMGuKc2Is7o55DH)*U9v!Dg4@p9!yO?DSyFFM%b53auhWYpO;qOI~}nY zqp~G8D<9Xdy4Zz&KUQ4ys4eS#aBJ-aTM9*!ttGzR?#X6{KivnNLs^_(x$vYrEEK`m zeHW@n#rqT0*O$YWwqnxdIT!^QsnN$wkmzEI7Db~fv-f?|hg4=~ zCnlQqwy#R&dMy05;2RM}Qit^vCdlv!i2su@t_PG<_qvO&24odpe6h9>v@z8r( zM$|_q-w0eM?~YydzU-i-`epB3g0k6*r+PHE-(xoP~(bp*g`H z1DS2{ZDLz~o8PT?krC;iG8fCYuW8v}AxDrU8SJ~BG|LmliHMTz=^S|(<^}6MobF}^W~eV(qfiaBekZB z0tshyuP3CcnE!lhwe?Iq4K;7(!H3pF3%sfrzQ`L}`64*i2S{g#jlA-GW41ErGK~k? z3~BhT^7J0Z84Nyh7AaSeNq@4k6jvyGx6?4`20C`a$5xb`JiVQ~{Zy%eSHKQ(C5wKz zrAd2pjSiVjssf~+j3RVM_zL%TaZIzTZN*HynS3vnq8HBnb@=BRwRu-5Bw}xPd8##_ zWKlk!b^{vbm> zAk;U|DMa2kK;kcw|KUNn2Dtcp+zj-<`htJ+Iyqy50%79fzlHvJ{#s|Chui-u`3C&m z)kGoD@HEg*w8y&x?4+2JT zD0{GEzRHJP^X69_jR;1_?uf3Jbdy^i+BJAh&%;By;MW4u0WulJJ$U2!_Gew*7oeFS zbhX#;>~{L72EmU%?oh5B4HWU~n-BD7g$u9mFR=kYDWtq$!CXRKzT`Plxt6m!kdpb* z(@Q$hHY?~(`!9vVk-ShxGNi+?rnSWi|~ zcJ(g6b$@Df!>HS!*y5wm!57pSRpYZEIil3GlLq?*-3Z* zdNKH@uoHntG-_Q2n?PG##(O0ODygz{&uC4NwCKB+>KT$4y^*H)8^_KK_Vigk@m6UF zy*2lIJiy~D>dg5;gsrVzZ{jD3L=qTK@q$j{%=U! z%kn4~(G@s%<}>Qt|+4^A>wUnUNn0_Mvr44=}e z#6L7LxG(!^-1GSo^9paS#w1RJ;J=WJ_o{0UgGGgmpkc=2%s6sr^ItlV18V#?cGP@{P>z0{f~sA7LzalfseHHN$VrXWm#`v4+2kkwrbP-0{ivxy5-BuZcQl1I*|^joLu16@LX$qHX6PB z1vE{BGnm){XvEU^_H=QXp|-{wNf_mOQx%@|}Izc$&N=8Fw z#}2ygVTO6Kz@#y8_lib%NAGesM_&O(n_0WvGN4^h9A< z4tI~k&gy2(6m!i+eqmh#ceQ8d9b!|1GA*N=tu+RtUp}>2xsla!JhmxyK`7nKUL@=3 zQ&}6xZumx9#vt0=L0>roWm(={R$aB4-MhUTp42!9e}p}2%m#6%FYRWu=Xy7I7u6L| z?9FvVITH$7Ocntj!1ep{J!03GX0$nEuAZ{y)`_d!o!0VMGz!_I{&Hl( z)PnLj^?vvE02pzn?B!by@B+7OD5Kd_#t(jLi!}1x;rqChv3IhXV)E+)Owb=SCqaDI z&@~9{qfq=I^v|DEWNLiarjHVy?a!Q?qlH|Sao@Z(4;`JzKid8lCK5je3gFl|@9DSV zT50HL&vthLphfA#4h8hX(c>ixneWoVkv=sOR;&}v?47s`3({>ZK_bzhbh(>CW`n>3 zl5Mm6XdRZuz(%014`73~!P7VsslS>pxcHFC$-ytoLa1GrY2jq7-_!ZJ@8DPni_(of za*gejfLF@7IcgJJx_w{LI7=^<7gXk-V4DSRtI2HXTG=>{O&ChZ5YF z<7Bf4V{7u*{`T_FYLaNR+A5d(otDR(hw+?z#~ZVD?wgu33V&?MbXSz)>ArNxyWQ-l z3heMKBJ&Jz?%Zo9-rS%1aO?=k!fkg>Zolkf^Q#Xz4Lf(kGocY;Z<#`oVH?_J>)Q13 zWGi~t2w}`Rd27ri*@C7LHraq9x2O$B!8Th3SU=ha^j@$?kn(EOVFsD+a|P&6v! zXkW0l(Cb<|P&2DuT^@0NO0piY>D7qS{z2d1jmZ<@!;voMo0?&>O5yxBOtOwfeik5f z{iL=_&r|drr`YmXI)l8OefF7qlMYnj$qZ%pELuLrDzT*>w59^w>B7u^D!4b-RrndlwB4n>*a)1tORVO2MMy8B@%+ia0y8 zdN0!H02(5EG{7nIU<>4m;+_=o-wR070Yio>|V(;u-g5%62zalVB=Thyo(z zC;O~i`R5jQA8Q{RZgoHbCFAr(^S6arJC%_v@_x>ESrprZoH6+%f|j$pm`fSnvN@*! z0Tys5q*B^5-zDUS^{?O?R8ou3#{6OiknQiD@Ykj_vcCicVtni z7sVBlfIFvJYBIEC9N*==F+$ZwE`+(B`pb1%YxL%OKxwrjv|b(W@{ahOQZ0Td3eP=s z7y1;?EQiG;Qrx7Og7A)SQR6yX&B3Q*O3MfK_xHbiJ8UHrxlDa&9L*;X^U`-5W5MX0 z2?OcG3n+FA5R4lYtYAD+HEjZfvie)~TZr5OUsN6@OA7Uz!uNoJ$R&ZMYrQ+A|vx2MN2yhIe(dJEQP znZsF?rpB+z6C!SM`1EeutE3&IV-MSO`XR84S=LUz7f9OeYqwnZ+I@2ftBU68Nc)7{ zc|gj~39oW7VaX%$WNAOI(?xAZCCk>yleOg&HKw7?S9(}d4IWq^v25-3j!Qf`dpN+n z+$rMby<=$?+JBn<(S1DXO}Q`ZzYU-jPj~On!4Ih%OtI1aMIc|uQ?@TN&b5tq#;BS+ zwY9(S`Mg7~v8UI-I#B=?AR8y&zrnwo@b5|Ze=`LwPx*g=#xsXMB!{fl{=VAkUp7XR IU2?qrA4>26RR910 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/mekanism/gui/elements/GuiDetectionTab.png b/src/main/resources/assets/mekanism/gui/elements/GuiDetectionTab.png deleted file mode 100644 index 3a46a52861eabcb6fc25ac8edc617bfce9722356..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3482 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