diff --git a/src/main/java/mekanism/common/multiblock/UpdateProtocol.java b/src/main/java/mekanism/common/multiblock/UpdateProtocol.java index dd400a896..e7b699317 100644 --- a/src/main/java/mekanism/common/multiblock/UpdateProtocol.java +++ b/src/main/java/mekanism/common/multiblock/UpdateProtocol.java @@ -157,7 +157,10 @@ public abstract class UpdateProtocol> break; } else { - innerNodes.add(new Coord4D(origX+x, origY+y, origZ+z, pointer.getWorldObj().provider.dimensionId)); + if(!isAir(origX+x, origY+y, origZ+z)) + { + innerNodes.add(new Coord4D(origX+x, origY+y, origZ+z, pointer.getWorldObj().provider.dimensionId)); + } } volume++; @@ -227,7 +230,7 @@ public abstract class UpdateProtocol> } } - public boolean canForm(T structure) + protected boolean canForm(T structure) { return true; } @@ -390,6 +393,8 @@ public abstract class UpdateProtocol> protected void onStructureCreated(T structure, int origX, int origY, int origZ, int xmin, int xmax, int ymin, int ymax, int zmin, int zmax) {} public void onStructureDestroyed(T structure) {} + + public void killInnerNode(Coord4D coord) {} /** * Runs the protocol and updates all nodes that make a part of the multiblock. @@ -415,6 +420,11 @@ public abstract class UpdateProtocol> ((IStructuralMultiblock)tile).setController(null); } } + + for(Coord4D coord : innerNodes) + { + killInnerNode(coord); + } return; } @@ -517,6 +527,11 @@ public abstract class UpdateProtocol> ((IStructuralMultiblock)tile).setController(null); } } + + for(Coord4D coord : innerNodes) + { + killInnerNode(coord); + } } } } diff --git a/src/main/java/mekanism/generators/client/GeneratorsClientProxy.java b/src/main/java/mekanism/generators/client/GeneratorsClientProxy.java index 98b960583..1afe0dbc2 100644 --- a/src/main/java/mekanism/generators/client/GeneratorsClientProxy.java +++ b/src/main/java/mekanism/generators/client/GeneratorsClientProxy.java @@ -17,7 +17,7 @@ import mekanism.generators.client.render.RenderGasGenerator; import mekanism.generators.client.render.RenderHeatGenerator; import mekanism.generators.client.render.RenderReactor; import mekanism.generators.client.render.RenderSolarGenerator; -import mekanism.generators.client.render.RenderTurbineRod; +import mekanism.generators.client.render.RenderTurbineRotor; import mekanism.generators.client.render.RenderWindTurbine; import mekanism.generators.common.GeneratorsCommonProxy; import mekanism.generators.common.tile.TileEntityAdvancedSolarGenerator; @@ -29,7 +29,7 @@ import mekanism.generators.common.tile.TileEntityWindGenerator; import mekanism.generators.common.tile.reactor.TileEntityReactorController; import mekanism.generators.common.tile.reactor.TileEntityReactorLogicAdapter; import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture; -import mekanism.generators.common.tile.turbine.TileEntityTurbineRod; +import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; @@ -52,7 +52,7 @@ public class GeneratorsClientProxy extends GeneratorsCommonProxy ClientRegistry.registerTileEntity(TileEntityGasGenerator.class, "GasGenerator", new RenderGasGenerator()); ClientRegistry.registerTileEntity(TileEntityWindGenerator.class, "WindTurbine", new RenderWindTurbine()); ClientRegistry.registerTileEntity(TileEntityReactorController.class, "ReactorController", new RenderReactor()); - ClientRegistry.registerTileEntity(TileEntityTurbineRod.class, "TurbineRod", new RenderTurbineRod()); + ClientRegistry.registerTileEntity(TileEntityTurbineRotor.class, "TurbineRod", new RenderTurbineRotor()); } @Override diff --git a/src/main/java/mekanism/generators/client/render/RenderTurbineRod.java b/src/main/java/mekanism/generators/client/render/RenderTurbineRotor.java similarity index 88% rename from src/main/java/mekanism/generators/client/render/RenderTurbineRod.java rename to src/main/java/mekanism/generators/client/render/RenderTurbineRotor.java index fd4ce3669..5313848f6 100644 --- a/src/main/java/mekanism/generators/client/render/RenderTurbineRod.java +++ b/src/main/java/mekanism/generators/client/render/RenderTurbineRotor.java @@ -5,7 +5,7 @@ import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils.ResourceType; import mekanism.generators.client.model.ModelTurbine; import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; -import mekanism.generators.common.tile.turbine.TileEntityTurbineRod; +import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -15,7 +15,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) -public class RenderTurbineRod extends TileEntitySpecialRenderer +public class RenderTurbineRotor extends TileEntitySpecialRenderer { private ModelTurbine model = new ModelTurbine(); @@ -24,10 +24,10 @@ public class RenderTurbineRod extends TileEntitySpecialRenderer @Override public void renderTileEntityAt(TileEntity tileEntity, double x, double y, double z, float partialTick) { - renderAModelAt((TileEntityTurbineRod)tileEntity, x, y, z, partialTick); + renderAModelAt((TileEntityTurbineRotor)tileEntity, x, y, z, partialTick); } - private void renderAModelAt(TileEntityTurbineRod tileEntity, double x, double y, double z, float partialTick) + private void renderAModelAt(TileEntityTurbineRotor tileEntity, double x, double y, double z, float partialTick) { GL11.glPushMatrix(); diff --git a/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java b/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java index f6b398142..ecfb8672f 100644 --- a/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java +++ b/src/main/java/mekanism/generators/common/GeneratorsCommonProxy.java @@ -25,7 +25,7 @@ import mekanism.generators.common.tile.reactor.TileEntityReactorLogicAdapter; import mekanism.generators.common.tile.reactor.TileEntityReactorNeutronCapture; import mekanism.generators.common.tile.reactor.TileEntityReactorPort; import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; -import mekanism.generators.common.tile.turbine.TileEntityTurbineRod; +import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.tileentity.TileEntity; @@ -68,7 +68,7 @@ public class GeneratorsCommonProxy GameRegistry.registerTileEntity(TileEntityGasGenerator.class, "GasGenerator"); GameRegistry.registerTileEntity(TileEntityWindGenerator.class, "WindTurbine"); GameRegistry.registerTileEntity(TileEntityReactorController.class, "ReactorController"); - GameRegistry.registerTileEntity(TileEntityTurbineRod.class, "TurbineRod"); + GameRegistry.registerTileEntity(TileEntityTurbineRotor.class, "TurbineRod"); } /** diff --git a/src/main/java/mekanism/generators/common/GeneratorsItems.java b/src/main/java/mekanism/generators/common/GeneratorsItems.java index a111f5727..8fbb389cd 100644 --- a/src/main/java/mekanism/generators/common/GeneratorsItems.java +++ b/src/main/java/mekanism/generators/common/GeneratorsItems.java @@ -2,7 +2,7 @@ package mekanism.generators.common; import mekanism.common.item.ItemMekanism; import mekanism.generators.common.item.ItemHohlraum; -import mekanism.generators.common.tile.turbine.TileEntityTurbineRod; +import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.world.World; @@ -18,7 +18,7 @@ public class GeneratorsItems @Override public boolean doesSneakBypassUse(World world, int x, int y, int z, EntityPlayer player) { - return world.getTileEntity(x, y, z) instanceof TileEntityTurbineRod; + return world.getTileEntity(x, y, z) instanceof TileEntityTurbineRotor; } }.setUnlocalizedName("TurbineBlade"); diff --git a/src/main/java/mekanism/generators/common/block/BlockGenerator.java b/src/main/java/mekanism/generators/common/block/BlockGenerator.java index 76316d7c9..038b6f341 100644 --- a/src/main/java/mekanism/generators/common/block/BlockGenerator.java +++ b/src/main/java/mekanism/generators/common/block/BlockGenerator.java @@ -28,7 +28,7 @@ import mekanism.generators.common.tile.TileEntityHeatGenerator; import mekanism.generators.common.tile.TileEntitySolarGenerator; import mekanism.generators.common.tile.TileEntityWindGenerator; import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; -import mekanism.generators.common.tile.turbine.TileEntityTurbineRod; +import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -59,8 +59,11 @@ import cpw.mods.fml.relauncher.SideOnly; * 4: Bio-Generator * 5: Advanced Solar Generator * 6: Wind Generator - * 7: Turbine Rod + * 7: Turbine Rotor * 8: Rotational Complex + * 9: Pressure Disperser + * 10: Turbine Casing + * 11: Turbine Valve * @author AidanBrady * */ @@ -92,7 +95,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { - if(meta == GeneratorType.TURBINE_ROD.meta) + if(meta == GeneratorType.TURBINE_ROTOR.meta) { return icons[meta][0]; } @@ -326,9 +329,9 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds { TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getTileEntity(x, y, z); - if(!world.isRemote && tileEntity instanceof TileEntityTurbineRod) + if(!world.isRemote && tileEntity instanceof TileEntityTurbineRotor) { - int amount = ((TileEntityTurbineRod)tileEntity).getHousedBlades(); + int amount = ((TileEntityTurbineRotor)tileEntity).getHousedBlades(); if(amount > 0) { @@ -400,9 +403,9 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds } } - if(metadata == GeneratorType.TURBINE_ROD.meta) + if(metadata == GeneratorType.TURBINE_ROTOR.meta) { - TileEntityTurbineRod rod = (TileEntityTurbineRod)tileEntity; + TileEntityTurbineRotor rod = (TileEntityTurbineRotor)tileEntity; if(!entityplayer.isSneaking()) { @@ -531,7 +534,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds { setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.65F, 1.0F); } - else if(metadata == GeneratorType.TURBINE_ROD.meta) + else if(metadata == GeneratorType.TURBINE_ROTOR.meta) { setBlockBounds(0.375F, 0.0F, 0.375F, 0.625F, 1.0F, 0.625F); } @@ -643,7 +646,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds if(metadata != GeneratorType.SOLAR_GENERATOR.meta && metadata != GeneratorType.ADVANCED_SOLAR_GENERATOR.meta && metadata != GeneratorType.WIND_GENERATOR.meta && - metadata != GeneratorType.TURBINE_ROD.meta) + metadata != GeneratorType.TURBINE_ROTOR.meta) { return true; } @@ -659,7 +662,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds BIO_GENERATOR(4, "BioGenerator", 4, 160000, TileEntityBioGenerator.class, true), ADVANCED_SOLAR_GENERATOR(5, "AdvancedSolarGenerator", 1, 200000, TileEntityAdvancedSolarGenerator.class, true), WIND_GENERATOR(6, "WindGenerator", 5, 200000, TileEntityWindGenerator.class, true), - TURBINE_ROD(7, "TurbineRod", -1, -1, TileEntityTurbineRod.class, false), + TURBINE_ROTOR(7, "TurbineRotor", -1, -1, TileEntityTurbineRotor.class, false), ROTATIONAL_COMPLEX(8, "RotationalComplex", -1, -1, TileEntityRotationalComplex.class, false); public int meta; @@ -727,7 +730,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds { block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.65F, 1.0F); } - else if(metadata == GeneratorType.TURBINE_ROD.meta) + else if(metadata == GeneratorType.TURBINE_ROTOR.meta) { block.setBlockBounds(0.375F, 0.0F, 0.375F, 0.625F, 1.0F, 0.625F); } 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 f29539102..79453ad70 100644 --- a/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java +++ b/src/main/java/mekanism/generators/common/content/turbine/SynchronizedTurbineData.java @@ -4,5 +4,9 @@ import mekanism.common.multiblock.SynchronizedData; public class SynchronizedTurbineData extends SynchronizedData { - + public int turbineBlades; + public int vents; + public int coils; + + public int lowerVolume; } diff --git a/src/main/java/mekanism/generators/common/content/turbine/TurbineUpdateProtocol.java b/src/main/java/mekanism/generators/common/content/turbine/TurbineUpdateProtocol.java index 2edafd6ce..e806140f5 100644 --- a/src/main/java/mekanism/generators/common/content/turbine/TurbineUpdateProtocol.java +++ b/src/main/java/mekanism/generators/common/content/turbine/TurbineUpdateProtocol.java @@ -1,13 +1,23 @@ package mekanism.generators.common.content.turbine; +import java.util.HashSet; import java.util.List; +import java.util.Set; +import mekanism.api.Coord4D; import mekanism.common.multiblock.MultiblockCache; import mekanism.common.multiblock.MultiblockManager; import mekanism.common.multiblock.UpdateProtocol; import mekanism.generators.common.MekanismGenerators; +import mekanism.generators.common.tile.turbine.TileEntityElectromagneticCoil; +import mekanism.generators.common.tile.turbine.TileEntityPressureDisperser; +import mekanism.generators.common.tile.turbine.TileEntityRotationalComplex; import mekanism.generators.common.tile.turbine.TileEntityTurbineCasing; +import mekanism.generators.common.tile.turbine.TileEntityTurbineRotor; +import mekanism.generators.common.tile.turbine.TileEntityTurbineVent; import net.minecraft.item.ItemStack; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.common.util.ForgeDirection; public class TurbineUpdateProtocol extends UpdateProtocol { @@ -21,6 +31,159 @@ public class TurbineUpdateProtocol extends UpdateProtocol= Math.ceil((structure.volHeight-2)/4)) + { + int centerX = structure.minLocation.xCoord+(structure.volLength-1)/2; + int centerZ = structure.minLocation.zCoord+(structure.volWidth-1)/2; + + Coord4D complex = null; + Set turbines = new HashSet(); + Set dispersers = new HashSet(); + + //Scan for complex + for(Coord4D coord : innerNodes) + { + if(coord.getTileEntity(pointer.getWorldObj()) instanceof TileEntityRotationalComplex) + { + if(complex != null) + { + return false; + } + else if(coord.xCoord != centerX || coord.zCoord != centerZ) + { + return false; + } + + complex = coord; + } + else if(coord.getTileEntity(pointer.getWorldObj()) instanceof TileEntityTurbineRotor) + { + if(coord.xCoord != centerX || coord.zCoord != centerZ) + { + return false; + } + + turbines.add(coord); + } + else if(coord.getTileEntity(pointer.getWorldObj()) instanceof TileEntityPressureDisperser) + { + dispersers.add(coord); + } + } + + //Terminate if complex doesn't exist + if(complex == null) + { + return false; + } + + //Make sure a flat, horizontal plane of dispersers exists within the multiblock around the complex + for(int x = complex.xCoord-innerRadius; x <= complex.xCoord+innerRadius; x++) + { + for(int z = complex.zCoord-innerRadius; z <= complex.zCoord+innerRadius; z++) + { + if(!(x == centerX && z == centerZ)) + { + TileEntity tile = pointer.getWorldObj().getTileEntity(x, complex.yCoord, z); + + if(!(tile instanceof TileEntityPressureDisperser)) + { + return false; + } + + dispersers.remove(new Coord4D(x, complex.yCoord, z)); + } + } + } + + //If any dispersers were not processed, they're in the wrong place + if(dispersers.size() > 0) + { + return false; + } + + //Make sure a complete line of turbine rotors exist from the complex to the multiblock's base + for(int y = complex.yCoord-1; y > structure.minLocation.yCoord; y--) + { + TileEntity tile = pointer.getWorldObj().getTileEntity(centerX, y, centerZ); + + if(!(tile instanceof TileEntityTurbineRotor)) + { + return false; + } + + turbines.remove(new Coord4D(centerX, y, centerZ, pointer.getWorldObj().provider.dimensionId)); + } + + //If any turbines were not processed, they're in the wrong place + if(turbines.size() > 0) + { + return false; + } + + Coord4D startCoord = complex.getFromSide(ForgeDirection.UP); + TileEntity startTile = startCoord.getTileEntity(pointer.getWorldObj()); + + if(startTile instanceof TileEntityElectromagneticCoil) + { + structure.coils = new CoilCounter().calculate((TileEntityElectromagneticCoil)startTile); + } + + for(Coord4D coord : structure.locations) + { + if(coord.getTileEntity(pointer.getWorldObj()) instanceof TileEntityTurbineVent) + { + if(coord.yCoord >= complex.yCoord) + { + structure.vents++; + } + else { + return false; + } + } + } + + ((TileEntityRotationalComplex)complex.getTileEntity(pointer.getWorldObj())).setMultiblock(structure.inventoryID); + + return true; + } + } + + return false; + } @Override protected MultiblockCache getNewCache() @@ -45,4 +208,35 @@ public class TurbineUpdateProtocol extends UpdateProtocol iterated = new HashSet(); + + public void loop(Coord4D pos) + { + iterated.add(pos); + + for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) + { + Coord4D coord = pos.getFromSide(side); + TileEntity tile = coord.getTileEntity(pointer.getWorldObj()); + + if(!iterated.contains(coord)) + { + if(tile instanceof TileEntityElectromagneticCoil) + { + loop(coord); + } + } + } + } + + public int calculate(TileEntityElectromagneticCoil tileEntity) + { + loop(Coord4D.get(tileEntity)); + + return iterated.size(); + } + } } diff --git a/src/main/java/mekanism/generators/common/item/ItemBlockGenerator.java b/src/main/java/mekanism/generators/common/item/ItemBlockGenerator.java index eefe6af17..02becc063 100644 --- a/src/main/java/mekanism/generators/common/item/ItemBlockGenerator.java +++ b/src/main/java/mekanism/generators/common/item/ItemBlockGenerator.java @@ -46,8 +46,11 @@ import cpw.mods.fml.relauncher.SideOnly; * 4: Bio-Generator * 5: Advanced Solar Generator * 6: Wind Generator - * 7: Turbine Rod + * 7: Turbine Rotor * 8: Rotational Complex + * 9: Pressure Disperser + * 10: Turbine Casing + * 11: Turbine Valve * @author AidanBrady * */ @@ -72,7 +75,7 @@ public class ItemBlockGenerator extends ItemBlock implements IEnergizedItem, ISp { GeneratorType type = GeneratorType.getFromMetadata(stack.getItemDamage()); - if(type == GeneratorType.TURBINE_ROD || type == GeneratorType.ROTATIONAL_COMPLEX) + if(type.maxEnergy == -1) { return 64; } @@ -110,7 +113,7 @@ public class ItemBlockGenerator extends ItemBlock implements IEnergizedItem, ISp { GeneratorType type = GeneratorType.getFromMetadata(itemstack.getItemDamage()); - if(type != GeneratorType.TURBINE_ROD && type != GeneratorType.ROTATIONAL_COMPLEX) + if(type.maxEnergy > -1) { if(!MekKeyHandler.getIsKeyPressed(MekanismKeyHandler.sneakKey)) { diff --git a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityElectromagneticCoil.java b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityElectromagneticCoil.java new file mode 100644 index 000000000..e22b48ffb --- /dev/null +++ b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityElectromagneticCoil.java @@ -0,0 +1,12 @@ +package mekanism.generators.common.tile.turbine; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityElectromagneticCoil extends TileEntity +{ + @Override + public boolean canUpdate() + { + return false; + } +} diff --git a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityPressureDisperser.java b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityPressureDisperser.java new file mode 100644 index 000000000..29cf3003f --- /dev/null +++ b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityPressureDisperser.java @@ -0,0 +1,12 @@ +package mekanism.generators.common.tile.turbine; + +import net.minecraft.tileentity.TileEntity; + +public class TileEntityPressureDisperser extends TileEntity +{ + @Override + public boolean canUpdate() + { + return false; + } +} diff --git a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityRotationalComplex.java b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityRotationalComplex.java index 881b8a2ce..285cf25de 100644 --- a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityRotationalComplex.java +++ b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityRotationalComplex.java @@ -88,9 +88,9 @@ public class TileEntityRotationalComplex extends TileEntityBasicBlock Coord4D coord = Coord4D.get(this).getFromSide(ForgeDirection.DOWN); TileEntity tile = coord.getTileEntity(worldObj); - if(tile instanceof TileEntityTurbineRod) + if(tile instanceof TileEntityTurbineRotor) { - ((TileEntityTurbineRod)tile).updateRods(); + ((TileEntityTurbineRotor)tile).updateRotors(); } } diff --git a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineRod.java b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineRotor.java similarity index 69% rename from src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineRod.java rename to src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineRotor.java index 74ac9563f..c374b0153 100644 --- a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineRod.java +++ b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineRotor.java @@ -18,9 +18,9 @@ import net.minecraftforge.common.util.ForgeDirection; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class TileEntityTurbineRod extends TileEntityBasicBlock +public class TileEntityTurbineRotor extends TileEntityBasicBlock { - public List rods = new ArrayList(); + public List rotors = new ArrayList(); public boolean hasComplex; @@ -46,34 +46,34 @@ public class TileEntityTurbineRod extends TileEntityBasicBlock { if(!worldObj.isRemote) { - updateRods(); + updateRotors(); } } - public void updateRods() + public void updateRotors() { - if(rods.contains(Coord4D.get(this))) + if(rotors.contains(Coord4D.get(this))) { - rods.add(Coord4D.get(this)); + rotors.add(Coord4D.get(this)); } - buildRods(); + buildRotors(); Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(Coord4D.get(this), getNetworkedData(new ArrayList())), new Range4D(Coord4D.get(this))); } - private void buildRods() + private void buildRotors() { - List newRods = new ArrayList(); + List newRotors = new ArrayList(); int newBlades = 0; boolean complex = false; String id = null; Coord4D pointer = Coord4D.get(this); - //Go to bottom rod + //Go to bottom rotor while(true) { - if(isRod(pointer.getFromSide(ForgeDirection.DOWN))) + if(isRotor(pointer.getFromSide(ForgeDirection.DOWN))) { pointer.step(ForgeDirection.DOWN); continue; @@ -82,13 +82,13 @@ public class TileEntityTurbineRod extends TileEntityBasicBlock break; } - //Put all rods in new list, top to bottom + //Put all rotors in new list, top to bottom while(true) { - newRods.add(pointer.clone()); - newBlades += ((TileEntityTurbineRod)pointer.getTileEntity(worldObj)).getHousedBlades(); + newRotors.add(pointer.clone()); + newBlades += ((TileEntityTurbineRotor)pointer.getTileEntity(worldObj)).getHousedBlades(); - if(isRod(pointer.getFromSide(ForgeDirection.UP))) + if(isRotor(pointer.getFromSide(ForgeDirection.UP))) { pointer.step(ForgeDirection.UP); continue; @@ -103,42 +103,42 @@ public class TileEntityTurbineRod extends TileEntityBasicBlock complex = true; } - //Update all rods, send packet if necessary - for(Coord4D coord : newRods) + //Update all rotors, send packet if necessary + for(Coord4D coord : newRotors) { - TileEntityTurbineRod rod = (TileEntityTurbineRod)coord.getTileEntity(worldObj); - int prevHoused = rod.getHousedBlades(); - int prevBlades = rod.blades; + TileEntityTurbineRotor rotor = (TileEntityTurbineRotor)coord.getTileEntity(worldObj); + int prevHoused = rotor.getHousedBlades(); + int prevBlades = rotor.blades; - rod.rods = newRods; - rod.blades = newBlades; - rod.multiblockUUID = id; + rotor.rotors = newRotors; + rotor.blades = newBlades; + rotor.multiblockUUID = id; - if(rods.indexOf(coord) == rods.size()-1) + if(rotors.indexOf(coord) == rotors.size()-1) { - rod.hasComplex = complex; + rotor.hasComplex = complex; } else { - rod.hasComplex = false; + rotor.hasComplex = false; } - Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(coord, rod.getNetworkedData(new ArrayList())), new Range4D(coord)); + Mekanism.packetHandler.sendToReceivers(new TileEntityMessage(coord, rotor.getNetworkedData(new ArrayList())), new Range4D(coord)); } } public boolean editBlade(boolean add) { - if(!rods.contains(Coord4D.get(this))) + if(!rotors.contains(Coord4D.get(this))) { - rods.add(Coord4D.get(this)); + rotors.add(Coord4D.get(this)); } - if((add && (rods.size()*2) - blades > 0) || (!add && (blades > 0))) + if((add && (rotors.size()*2) - blades > 0) || (!add && (blades > 0))) { - for(Coord4D coord : rods) + for(Coord4D coord : rotors) { - TileEntityTurbineRod rod = (TileEntityTurbineRod)coord.getTileEntity(worldObj); - rod.internalEditBlade(add); + TileEntityTurbineRotor rotor = (TileEntityTurbineRotor)coord.getTileEntity(worldObj); + rotor.internalEditBlade(add); } return true; @@ -164,9 +164,9 @@ public class TileEntityTurbineRod extends TileEntityBasicBlock { if(!worldObj.isRemote) { - if(rods.size() > 0) + if(rotors.size() > 0) { - return Math.max(0, Math.min(2, blades - (rods.indexOf(Coord4D.get(this)))*2)); + return Math.max(0, Math.min(2, blades - (rotors.indexOf(Coord4D.get(this)))*2)); } else { return blades; @@ -177,9 +177,9 @@ public class TileEntityTurbineRod extends TileEntityBasicBlock } } - private boolean isRod(Coord4D coord) + private boolean isRotor(Coord4D coord) { - return coord.getTileEntity(worldObj) instanceof TileEntityTurbineRod; + return coord.getTileEntity(worldObj) instanceof TileEntityTurbineRotor; } private boolean isComplex(Coord4D coord) @@ -194,7 +194,7 @@ public class TileEntityTurbineRod extends TileEntityBasicBlock if(!worldObj.isRemote) { - updateRods(); + updateRotors(); } } @@ -230,7 +230,7 @@ public class TileEntityTurbineRod extends TileEntityBasicBlock super.getNetworkedData(data); data.add(getHousedBlades()); - data.add(rods.indexOf(Coord4D.get(this))); + data.add(rotors.indexOf(Coord4D.get(this))); if(multiblockUUID != null) { diff --git a/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineVent.java b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineVent.java new file mode 100644 index 000000000..c7d6d2f61 --- /dev/null +++ b/src/main/java/mekanism/generators/common/tile/turbine/TileEntityTurbineVent.java @@ -0,0 +1,9 @@ +package mekanism.generators.common.tile.turbine; + +public class TileEntityTurbineVent extends TileEntityTurbineCasing +{ + public TileEntityTurbineVent() + { + super("TurbineVent"); + } +} diff --git a/src/main/resources/assets/mekanism/lang/en_US.lang b/src/main/resources/assets/mekanism/lang/en_US.lang index 203b9c6d2..600ccd317 100644 --- a/src/main/resources/assets/mekanism/lang/en_US.lang +++ b/src/main/resources/assets/mekanism/lang/en_US.lang @@ -735,8 +735,9 @@ tooltip.GasGenerator=A generator that harnesses the molecular !nvarying gasses t tooltip.BioGenerator=A generator that burns organic materials of !nthe world to produce energy. tooltip.AdvancedSolarGenerator=An advanced generator that directly !nabsorbs the sun's rays with little loss !nto produce energy. tooltip.WindGenerator=A generator that uses the strength of the wind !nto produce energy, with greater efficiency !nat higher levels. -tooltip.TurbineRod=The steel rod that is used to house !nTurbine Blades within an Industrial Turbine. +tooltip.TurbineRotor=The steel rod that is used to house !nTurbine Blades within an Industrial Turbine. tooltip.RotationalComplex=A connector that is placed on !nthe highest turbine rod to carry kinetic energy into the !ngenerator itself. +tooltip.PressureDisperser=A block used to tooltip.ReactorGlass=Reinforced glass that can be used in !nthe Fusion Reactor multiblock. tooltip.ReactorLaserFocusMatrix=A panel of Reactor Glass that !nis capable of absorbing optical energy and !nthereby heating up the Fusion Reactor. @@ -848,8 +849,10 @@ tile.Generator.GasGenerator.name=Gas-Burning Generator tile.Generator.BioGenerator.name=Bio-Generator tile.Generator.AdvancedSolarGenerator.name=Advanced Solar Generator tile.Generator.WindGenerator.name=Wind Generator -tile.Generator.TurbineRod.name=Turbine Rod +tile.Generator.TurbineRotor.name=Turbine Rotor tile.Generator.RotationalComplex.name=Rotational Complex +tile.Generator.PressureDisperser.name=Pressure Disperser +tile.Generator.ElectromagneticCoil.name=Electromagnetic Coil tile.Reactor.ReactorController.name=Reactor Controller tile.Reactor.ReactorFrame.name=Reactor Frame