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 000000000..b756df363 Binary files /dev/null and b/src/main/resources/assets/mekanism/gui/elements/GuiAmplifierTab.png differ 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 3a46a5286..000000000 Binary files a/src/main/resources/assets/mekanism/gui/elements/GuiDetectionTab.png and /dev/null differ diff --git a/src/main/resources/assets/mekanism/lang/en_US.lang b/src/main/resources/assets/mekanism/lang/en_US.lang index 10fbe6816..ebc66ca45 100644 --- a/src/main/resources/assets/mekanism/lang/en_US.lang +++ b/src/main/resources/assets/mekanism/lang/en_US.lang @@ -509,7 +509,6 @@ gui.oreDictCompat=Compatible OreDict Key gui.toggleCooling=Toggle Cooling Measurements gui.coolingMeasurements=Active cooling gui.redstoneOutputMode=Redstone mode -gui.entityDetection=Entity Detection gui.moveUp=Move Up gui.moveDown=Move Down gui.flowRate=Flow rate @@ -556,6 +555,9 @@ gui.nowOwn=You now own this item. gui.frequency=Frequency gui.mode=Mode gui.burnRate=Burn Rate +gui.entityDetection=Entity Detection +gui.energyContents=Energy Contents +gui.redstoneOutput=Redstone Output gui.reactor.injectionRate=Injection Rate @@ -845,6 +847,7 @@ tooltip.ElectromagneticCoil=A block that converts kinetic energy from a Rotation tooltip.TurbineCasing=Pressure-resistant casing used in the creation of an Industrial Turbine. tooltip.TurbineValve=A type of Turbine Casing that includes a port for the transfer of energy and steam. tooltip.TurbineVent=A type of Turbine Casing with an integrated vent for the release of steam. These should be placed on the level of or above the turbine's Rotational Complex. +tooltip.SaturatingCondenser=A block that condenses steam processed by an Industrial Turbine into reusable water. These can be placed in any arrangement above your rotational complex. tooltip.ReactorGlass=Reinforced glass that can be used in the Fusion Reactor multiblock. tooltip.ReactorLaserFocusMatrix=A panel of Reactor Glass that is capable of absorbing optical energy and thereby heating up the Fusion Reactor. @@ -966,6 +969,7 @@ tile.Generator.ElectromagneticCoil.name=Electromagnetic Coil tile.Generator.TurbineCasing.name=Turbine Casing tile.Generator.TurbineValve.name=Turbine Valve tile.Generator.TurbineVent.name=Turbine Vent +tile.Generator.SaturatingCondenser.name=Saturating Condenser tile.Reactor.ReactorController.name=Reactor Controller tile.Reactor.ReactorFrame.name=Reactor Frame