Rename Turbine Rod to Turbine Rotor, work on multiblock form code

This commit is contained in:
aidancbrady 2016-01-22 17:22:20 -05:00
parent 0c025e1033
commit 8cab2ebe8c
15 changed files with 326 additions and 71 deletions

View file

@ -157,7 +157,10 @@ public abstract class UpdateProtocol<T extends SynchronizedData<T>>
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<T extends SynchronizedData<T>>
}
}
public boolean canForm(T structure)
protected boolean canForm(T structure)
{
return true;
}
@ -390,6 +393,8 @@ public abstract class UpdateProtocol<T extends SynchronizedData<T>>
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<T extends SynchronizedData<T>>
((IStructuralMultiblock)tile).setController(null);
}
}
for(Coord4D coord : innerNodes)
{
killInnerNode(coord);
}
return;
}
@ -517,6 +527,11 @@ public abstract class UpdateProtocol<T extends SynchronizedData<T>>
((IStructuralMultiblock)tile).setController(null);
}
}
for(Coord4D coord : innerNodes)
{
killInnerNode(coord);
}
}
}
}

View file

@ -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

View file

@ -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();

View file

@ -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");
}
/**

View file

@ -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");

View file

@ -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);
}

View file

@ -4,5 +4,9 @@ import mekanism.common.multiblock.SynchronizedData;
public class SynchronizedTurbineData extends SynchronizedData<SynchronizedTurbineData>
{
public int turbineBlades;
public int vents;
public int coils;
public int lowerVolume;
}

View file

@ -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<SynchronizedTurbineData>
{
@ -21,6 +31,159 @@ public class TurbineUpdateProtocol extends UpdateProtocol<SynchronizedTurbineDat
{
return false;
}
@Override
protected boolean isValidInnerNode(int x, int y, int z)
{
if(super.isValidInnerNode(x, y, z))
{
return true;
}
TileEntity tile = pointer.getWorldObj().getTileEntity(x, y, z);
return tile instanceof TileEntityTurbineRotor || tile instanceof TileEntityRotationalComplex ||
tile instanceof TileEntityPressureDisperser || tile instanceof TileEntityElectromagneticCoil;
}
@Override
public void killInnerNode(Coord4D coord)
{
TileEntity tile = coord.getTileEntity(pointer.getWorldObj());
if(tile instanceof TileEntityRotationalComplex)
{
((TileEntityRotationalComplex)tile).setMultiblock(null);
}
}
@Override
protected boolean canForm(SynchronizedTurbineData structure)
{
if(structure.volLength % 2 == 1 && structure.volWidth % 2 == 1)
{
int innerRadius = (Math.min(structure.volLength, structure.volWidth)-3)/2;
if(innerRadius >= 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<Coord4D> turbines = new HashSet<Coord4D>();
Set<Coord4D> dispersers = new HashSet<Coord4D>();
//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<SynchronizedTurbineData> getNewCache()
@ -45,4 +208,35 @@ public class TurbineUpdateProtocol extends UpdateProtocol<SynchronizedTurbineDat
{
}
public class CoilCounter
{
public Set<Coord4D> iterated = new HashSet<Coord4D>();
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();
}
}
}

View file

@ -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))
{

View file

@ -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;
}
}

View file

@ -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;
}
}

View file

@ -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();
}
}

View file

@ -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<Coord4D> rods = new ArrayList<Coord4D>();
public List<Coord4D> rotors = new ArrayList<Coord4D>();
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<Coord4D> newRods = new ArrayList<Coord4D>();
List<Coord4D> newRotors = new ArrayList<Coord4D>();
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)
{

View file

@ -0,0 +1,9 @@
package mekanism.generators.common.tile.turbine;
public class TileEntityTurbineVent extends TileEntityTurbineCasing
{
public TileEntityTurbineVent()
{
super("TurbineVent");
}
}

View file

@ -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