diff --git a/src/resonantinduction/ITesla.java b/src/resonantinduction/ITesla.java new file mode 100644 index 00000000..3badff8a --- /dev/null +++ b/src/resonantinduction/ITesla.java @@ -0,0 +1,13 @@ +/** + * + */ +package resonantinduction; + +/** + * @author Calclavia + * + */ +public interface ITesla +{ + +} diff --git a/src/resonantinduction/TeslaGrid.java b/src/resonantinduction/TeslaGrid.java new file mode 100644 index 00000000..3e0aa2bd --- /dev/null +++ b/src/resonantinduction/TeslaGrid.java @@ -0,0 +1,62 @@ +/** + * + */ +package resonantinduction; + +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; + +import net.minecraft.tileentity.TileEntity; +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.relauncher.Side; + +/** + * @author Calclavia + * + */ +public class TeslaGrid +{ + private static final TeslaGrid INSTANCE_CLIENT = new TeslaGrid(); + private static final TeslaGrid INSTANCE_SERVER = new TeslaGrid(); + + private final Set tileEntities = new HashSet(); + + public void register(ITesla iTesla) + { + Iterator it = this.tileEntities.iterator(); + + while (it.hasNext()) + { + ITesla tesla = it.next(); + + if (tesla instanceof TileEntity) + { + if (!((TileEntity) tesla).isInvalid()) + { + continue; + } + } + + it.remove(); + + } + + this.tileEntities.add(iTesla); + } + + public void unregister(ITesla iTesla) + { + this.tileEntities.remove(iTesla); + } + + public static TeslaGrid getInstance() + { + if (FMLCommonHandler.instance().getEffectiveSide() == Side.SERVER) + { + return INSTANCE_SERVER; + } + + return INSTANCE_CLIENT; + } +} diff --git a/src/resonantinduction/tesla/TileEntityTesla.java b/src/resonantinduction/tesla/TileEntityTesla.java index 9d66b50c..ba9e7a53 100644 --- a/src/resonantinduction/tesla/TileEntityTesla.java +++ b/src/resonantinduction/tesla/TileEntityTesla.java @@ -3,13 +3,38 @@ */ package resonantinduction.tesla; -import net.minecraft.tileentity.TileEntity; +import resonantinduction.ITesla; +import resonantinduction.TeslaGrid; +import resonantinduction.base.TileEntityBase; /** * @author Calclavia * */ -public class TileEntityTesla extends TileEntity +public class TileEntityTesla extends TileEntityBase implements ITesla { + @Override + public void initiate() + { + TeslaGrid.getInstance().register(this); + } + @Override + public void updateEntity() + { + super.updateEntity(); + + } + + public int getRange() + { + return 5; + } + + @Override + public void invalidate() + { + TeslaGrid.getInstance().unregister(this); + super.invalidate(); + } }