diff options
| author | Lance5057 <Lance5057@gmail.com> | 2017-04-29 22:20:58 -0500 |
|---|---|---|
| committer | Lance5057 <Lance5057@gmail.com> | 2017-04-29 22:20:58 -0500 |
| commit | b4b05403fda50307e2b35de91296ab9bb53c2baa (patch) | |
| tree | b69a17f58673e8d4ac5d9da6503608649da4cc28 /src/api/java/mekanism | |
| parent | f692d8983ee8787843d874ae1aa329c1439e3223 (diff) | |
Updated to TiCo 2.6.3
Added Zweihander
Partially added Sheathe
Partially added Crest Mount
Partially added materials
Diffstat (limited to 'src/api/java/mekanism')
62 files changed, 0 insertions, 5892 deletions
diff --git a/src/api/java/mekanism/api/Chunk3D.java b/src/api/java/mekanism/api/Chunk3D.java deleted file mode 100644 index 11c758f..0000000 --- a/src/api/java/mekanism/api/Chunk3D.java +++ /dev/null @@ -1,115 +0,0 @@ -package mekanism.api; - -import net.minecraft.entity.Entity; -import net.minecraft.world.ChunkCoordIntPair; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; - -/** - * Chunk3D - an integer-based way to keep track of and perform operations on chunks in a Minecraft-based environment. This also takes - * in account the dimension the chunk is in. - * @author aidancbrady - * - */ -public class Chunk3D -{ - public int dimensionId; - - public int xCoord; - public int zCoord; - - /** - * Creates a Chunk3D object from the given x and z coordinates, as well as a dimension. - * @param x - chunk x location - * @param z - chunk z location - * @param dimension - the dimension this Chunk3D is in - */ - public Chunk3D(int x, int z, int dimension) - { - xCoord = x; - zCoord = z; - - dimensionId = dimension; - } - - /** - * Creates a Chunk3D from an entity based on it's location and dimension. - * @param entity - the entity to get the Chunk3D object from - */ - public Chunk3D(Entity entity) - { - xCoord = ((int) entity.posX) >> 4; - zCoord = ((int) entity.posZ) >> 4; - - dimensionId = entity.dimension; - } - - /** - * Creates a Chunk3D from a Coord4D based on it's coordinates and dimension. - * @param coord - the Coord4D object to get this Chunk3D from - */ - public Chunk3D(Coord4D coord) - { - xCoord = coord.xCoord >> 4; - zCoord = coord.zCoord >> 4; - - dimensionId = coord.dimensionId; - } - - /** - * Whether or not this chunk exists in the given world. - * @param world - the world to check in - * @return if the chunk exists - */ - public boolean exists(World world) - { - return world.getChunkProvider().chunkExists(xCoord, zCoord); - } - - /** - * Gets a Chunk object corresponding to this Chunk3D's coordinates. - * @param world - the world to get the Chunk object from - * @return the corresponding Chunk object - */ - public Chunk getChunk(World world) - { - return world.getChunkFromChunkCoords(xCoord, zCoord); - } - - /** - * Returns this Chunk3D in the Minecraft-based ChunkCoordIntPair format. - * @return this Chunk3D as a ChunkCoordIntPair - */ - public ChunkCoordIntPair toPair() - { - return new ChunkCoordIntPair(xCoord, zCoord); - } - - @Override - public Coord4D clone() - { - return new Coord4D(xCoord, zCoord, dimensionId); - } - - @Override - public String toString() - { - return "[Chunk3D: " + xCoord + ", " + zCoord + ", dim=" + dimensionId + "]"; - } - - @Override - public boolean equals(Object obj) - { - return obj instanceof Chunk3D && ((Chunk3D) obj).xCoord == xCoord && ((Chunk3D) obj).zCoord == zCoord && ((Chunk3D) obj).dimensionId == dimensionId; - } - - @Override - public int hashCode() - { - int code = 1; - code = 31 * code + xCoord; - code = 31 * code + zCoord; - code = 31 * code + dimensionId; - return code; - } -} diff --git a/src/api/java/mekanism/api/Coord4D.java b/src/api/java/mekanism/api/Coord4D.java deleted file mode 100644 index 57f82ca..0000000 --- a/src/api/java/mekanism/api/Coord4D.java +++ /dev/null @@ -1,425 +0,0 @@ -package mekanism.api; - -import io.netty.buffer.ByteBuf; - -import java.util.ArrayList; - -import net.minecraft.block.Block; -import net.minecraft.entity.Entity; -import net.minecraft.init.Blocks; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.world.IBlockAccess; -import net.minecraft.world.World; -import net.minecraft.world.chunk.Chunk; -import net.minecraftforge.common.util.ForgeDirection; -import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint; - -/** - * Coord4D - an integer-based way to keep track of and perform operations on blocks in a Minecraft-based environment. This also takes - * in account the dimension the coordinate is in. - * @author aidancbrady - * - */ -public class Coord4D -{ - public int xCoord; - public int yCoord; - public int zCoord; - - public int dimensionId; - - /** - * Creates a Coord4D WITHOUT a dimensionId. Don't use unless absolutely necessary. - * @param x - x coordinate - * @param y - y coordinate - * @param z - z coordinate - */ - public Coord4D(int x, int y, int z) - { - xCoord = x; - yCoord = y; - zCoord = z; - - dimensionId = 0; - } - - /** - * Creates a Coord4D from an entity's position, rounded down. - * @param entity - entity to create the Coord4D from - */ - public Coord4D(Entity entity) - { - xCoord = (int) entity.posX; - yCoord = (int) entity.posY; - zCoord = (int) entity.posZ; - - dimensionId = entity.worldObj.provider.dimensionId; - } - - /** - * Creates a Coord4D from the defined x, y, z, and dimension values. - * @param x - x coordinate - * @param y - y coordinate - * @param z - z coordinate - * @param dimension - dimension ID - */ - public Coord4D(int x, int y, int z, int dimension) - { - xCoord = x; - yCoord = y; - zCoord = z; - - dimensionId = dimension; - } - - public Coord4D(MovingObjectPosition mop) - { - xCoord = mop.blockX; - yCoord = mop.blockY; - zCoord = mop.blockZ; - } - - /** - * Gets the metadata of the block representing this Coord4D. - * @param world - world this Coord4D is in - * @return the metadata of this Coord4D's block - */ - public int getMetadata(IBlockAccess world) - { - return world.getBlockMetadata(xCoord, yCoord, zCoord); - } - - /** - * Gets the TileEntity of the block representing this Coord4D. - * @param world - world this Coord4D is in - * @return the TileEntity of this Coord4D's block - */ - public TileEntity getTileEntity(IBlockAccess world) - { - if(world instanceof World && !exists((World) world)) - { - return null; - } - - return world.getTileEntity(xCoord, yCoord, zCoord); - } - - /** - * Gets the Block value of the block representing this Coord4D. - * @param world - world this Coord4D is in - * @return the Block value of this Coord4D's block - */ - public Block getBlock(IBlockAccess world) - { - if(world instanceof World && !exists((World) world)) - { - return null; - } - - return world.getBlock(xCoord, yCoord, zCoord); - } - - /** - * Writes this Coord4D's data to an NBTTagCompound. - * @param nbtTags - tag compound to write to - * @return the tag compound with this Coord4D's data - */ - public NBTTagCompound write(NBTTagCompound nbtTags) - { - nbtTags.setInteger("x", xCoord); - nbtTags.setInteger("y", yCoord); - nbtTags.setInteger("z", zCoord); - nbtTags.setInteger("dimensionId", dimensionId); - - return nbtTags; - } - - /** - * Writes this Coord4D's data to an ArrayList for packet transfer. - * @param data - the ArrayList to add the data to - */ - public void write(ArrayList data) - { - data.add(xCoord); - data.add(yCoord); - data.add(zCoord); - data.add(dimensionId); - } - - /** - * Writes this Coord4D's data to a ByteBuf for packet transfer. - * @param dataStream - the ByteBuf to add the data to - */ - public void write(ByteBuf dataStream) - { - dataStream.writeInt(xCoord); - dataStream.writeInt(yCoord); - dataStream.writeInt(zCoord); - dataStream.writeInt(dimensionId); - } - - /** - * Translates this Coord4D by the defined x, y, and z values. - * @param x - x value to translate - * @param y - y value to translate - * @param z - z value to translate - * @return translated Coord4D - */ - public Coord4D translate(int x, int y, int z) - { - xCoord += x; - yCoord += y; - zCoord += z; - - return this; - } - - /** - * Translates this Coord4D by the defined Coord4D's coordinates, regardless of dimension. - * @param coord - coordinates to translate by - * @return translated Coord4D - */ - public Coord4D translate(Coord4D coord) - { - translate(coord.xCoord, coord.yCoord, coord.zCoord); - - return this; - } - - /** - * Creates and returns a new Coord4D translated to the defined offsets of the side. - * @param side - side to translate this Coord4D to - * @return translated Coord4D - */ - public Coord4D getFromSide(ForgeDirection side) - { - return getFromSide(side, 1); - } - - /** - * Creates and returns a new Coord4D translated to the defined offsets of the side by the defined amount. - * @param side - side to translate this Coord4D to - * @param amount - how far to translate this Coord4D - * @return translated Coord4D - */ - public Coord4D getFromSide(ForgeDirection side, int amount) - { - return new Coord4D(xCoord + (side.offsetX * amount), - yCoord + (side.offsetY * amount), - zCoord + (side.offsetZ * amount), dimensionId); - } - - public ItemStack getStack(IBlockAccess world) - { - final Block block = getBlock(world); - - if(block == null || block == Blocks.air) - { - return null; - } - - return new ItemStack(block, 1, getMetadata(world)); - } - - /** - * Returns a new Coord4D from a defined TileEntity's xCoord, yCoord and zCoord values. - * @param tileEntity - TileEntity at the location that will represent this Coord4D - * @return the Coord4D object from the TileEntity - */ - public static Coord4D get(TileEntity tileEntity) - { - return new Coord4D(tileEntity.xCoord, tileEntity.yCoord, - tileEntity.zCoord, - tileEntity.getWorldObj().provider.dimensionId); - } - - /** - * Returns a new Coord4D from a tag compound. - * @param tag - tag compound to read from - * @return the Coord4D from the tag compound - */ - public static Coord4D read(NBTTagCompound tag) - { - return new Coord4D(tag.getInteger("x"), tag.getInteger("y"), - tag.getInteger("z"), tag.getInteger("id")); - } - - /** - * Returns a new Coord4D from a ByteBuf. - * @param dataStream - data input to read from - * @return the Coord4D from the data input - */ - public static Coord4D read(ByteBuf dataStream) - { - return new Coord4D(dataStream.readInt(), dataStream.readInt(), - dataStream.readInt(), dataStream.readInt()); - } - - /** - * Creates and returns a new Coord4D with values representing the difference between the defined Coord4D - * @param other - the Coord4D to subtract from this - * @return a Coord4D representing the distance between the defined Coord4D - */ - public Coord4D difference(Coord4D other) - { - return new Coord4D(xCoord - other.xCoord, yCoord - other.yCoord, - zCoord - other.zCoord, dimensionId); - } - - /** - * A method used to find the ForgeDirection represented by the distance of the defined Coord4D. Most likely won't have many - * applicable uses. - * @param other - Coord4D to find the side difference of - * @return ForgeDirection representing the side the defined relative Coord4D is on to this - */ - public ForgeDirection sideDifference(Coord4D other) - { - final Coord4D diff = difference(other); - - for(final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) - { - if(side.offsetX == diff.xCoord && side.offsetY == diff.yCoord && side.offsetZ == diff.zCoord) - { - return side; - } - } - - return ForgeDirection.UNKNOWN; - } - - /** - * Gets the distance to a defined Coord4D. - * @param obj - the Coord4D to find the distance to - * @return the distance to the defined Coord4D - */ - public int distanceTo(Coord4D obj) - { - final int subX = xCoord - obj.xCoord; - final int subY = yCoord - obj.yCoord; - final int subZ = zCoord - obj.zCoord; - return (int) MathHelper.sqrt_double(subX * subX + subY * subY + subZ * subZ); - } - - /** - * Whether or not the defined side of this Coord4D is visible. - * @param side - side to check - * @param world - world this Coord4D is in - * @return - */ - public boolean sideVisible(ForgeDirection side, IBlockAccess world) - { - return world.isAirBlock(xCoord + side.offsetX, yCoord + side.offsetY, zCoord + side.offsetZ); - } - - /** - * Gets a TargetPoint with the defined range from this Coord4D with the appropriate coordinates and dimension ID. - * @param range - the range the packet can be sent in of this Coord4D - * @return TargetPoint relative to this Coord4D - */ - public TargetPoint getTargetPoint(double range) - { - return new TargetPoint(dimensionId, xCoord, yCoord, zCoord, range); - } - - /** - * Steps this Coord4D in the defined side's offset without creating a new value. - * @param side - side to step towards - * @return this Coord4D - */ - public Coord4D step(ForgeDirection side) - { - return translate(side.offsetX, side.offsetY, side.offsetZ); - } - - /** - * Whether or not the chunk this Coord4D is in exists and is loaded. - * @param world - world this Coord4D is in - * @return the chunk of this Coord4D - */ - public boolean exists(World world) - { - return world.getChunkProvider() == null || world.getChunkProvider().chunkExists(xCoord >> 4, zCoord >> 4); - } - - /** - * Gets the chunk this Coord4D is in. - * @param world - world this Coord4D is in - * @return the chunk of this Coord4D - */ - public Chunk getChunk(World world) - { - return world.getChunkFromBlockCoords(xCoord, zCoord); - } - - /** - * Gets the Chunk3D object with chunk coordinates correlating to this Coord4D's location - * @return Chunk3D with correlating chunk coordinates. - */ - public Chunk3D getChunk3D() - { - return new Chunk3D(this); - } - - /** - * Whether or not the block this Coord4D represents is an air block. - * @param world - world this Coord4D is in - * @return if this Coord4D is an air block - */ - public boolean isAirBlock(IBlockAccess world) - { - return world.isAirBlock(xCoord, yCoord, zCoord); - } - - /** - * Whether or not this block this Coord4D represents is replaceable. - * @param world - world this Coord4D is in - * @return if this Coord4D is replaceable - */ - public boolean isReplaceable(IBlockAccess world) - { - return getBlock(world).isReplaceable(world, xCoord, yCoord, zCoord); - } - - /** - * Gets a bounding box that contains the area this Coord4D would take up in a world. - * @return this Coord4D's bounding box - */ - public AxisAlignedBB getBoundingBox() - { - return AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1); - } - - @Override - public Coord4D clone() - { - return new Coord4D(xCoord, yCoord, zCoord, dimensionId); - } - - @Override - public String toString() - { - return "[Coord4D: " + xCoord + ", " + yCoord + ", " + zCoord + ", dim=" + dimensionId + "]"; - } - - @Override - public boolean equals(Object obj) - { - return obj instanceof Coord4D && ((Coord4D) obj).xCoord == xCoord && ((Coord4D) obj).yCoord == yCoord && ((Coord4D) obj).zCoord == zCoord && ((Coord4D) obj).dimensionId == dimensionId; - } - - @Override - public int hashCode() - { - int code = 1; - code = 31 * code + xCoord; - code = 31 * code + yCoord; - code = 31 * code + zCoord; - code = 31 * code + dimensionId; - return code; - } -} diff --git a/src/api/java/mekanism/api/EnumColor.java b/src/api/java/mekanism/api/EnumColor.java deleted file mode 100644 index 73d8b61..0000000 --- a/src/api/java/mekanism/api/EnumColor.java +++ /dev/null @@ -1,96 +0,0 @@ -package mekanism.api; - -import net.minecraft.util.StatCollector; - -/** - * Simple color enum for adding colors to in-game GUI strings of text. - * @author AidanBrady - * - */ -public enum EnumColor -{ - BLACK("\u00a70", "black", "Black", new int[] {0, 0, 0}, 0), DARK_BLUE("\u00a71", "darkBlue", "Blue", new int[] {0, 0, 170}, 4), DARK_GREEN("\u00a72", "darkGreen", "Green", new int[] {0, 170, 0}, 2), DARK_AQUA("\u00a73", "darkAqua", "Cyan", new int[] {0, 255, 255}, 6), DARK_RED("\u00a74", "darkRed", null, new int[] {170, 0, 0}, -1), PURPLE("\u00a75", "purple", "Purple", new int[] {170, 0, 170}, 5), ORANGE("\u00a76", "orange", "Orange", new int[] {255, 170, 0}, 14), GREY("\u00a77", "grey", "LightGray", new int[] {170, 170, 170}, 7), DARK_GREY("\u00a78", "darkGrey", "Gray", new int[] {85, 85, 85}, 8), INDIGO("\u00a79", "indigo", "LightBlue", new int[] {85, 85, 255}, 12), BRIGHT_GREEN("\u00a7a", "brightGreen", "Lime", new int[] {85, 255, 85}, 10), AQUA("\u00a7b", "aqua", null, new int[] {85, 255, 255}, -1), RED("\u00a7c", "red", "Red", new int[] {255, 0, 0}, 1), PINK("\u00a7d", "pink", "Magenta", new int[] {255, 85, 255}, 13), YELLOW("\u00a7e", "yellow", "Yellow", new int[] {255, 255, 85}, 11), WHITE("\u00a7f", "white", "White", new int[] {255, 255, 255}, 15), - //Extras for dye-completeness - BROWN("\u00a76", "brown", "Brown", new int[] {150, 75, 0}, 3), BRIGHT_PINK("\u00a7d", "brightPink", "Pink", new int[] {255, 192, 203}, 9); - - public static EnumColor[] DYES = new EnumColor[] {BLACK, RED, DARK_GREEN, BROWN, DARK_BLUE, PURPLE, DARK_AQUA, GREY, DARK_GREY, BRIGHT_PINK, BRIGHT_GREEN, YELLOW, INDIGO, PINK, ORANGE, WHITE}; - - /** The color code that will be displayed */ - public final String code; - - public final int[] rgbCode; - - public final int mcMeta; - - /** A friendly name of the color. */ - public String unlocalizedName; - - public String dyeName; - - private EnumColor(String s, String n, String dye, int[] rgb, int meta) - { - code = s; - unlocalizedName = n; - dyeName = dye; - rgbCode = rgb; - mcMeta = meta; - } - - /** - * Gets the localized name of this color by translating the unlocalized name. - * @return localized name - */ - public String getLocalizedName() - { - return StatCollector.translateToLocal("color." + unlocalizedName); - } - - public String getDyeName() - { - return StatCollector.translateToLocal("dye." + unlocalizedName); - } - - public String getOreDictName() - { - return dyeName; - } - - /** - * Gets the name of this color with it's color prefix code. - * @return the color's name and color prefix - */ - public String getName() - { - return code + getLocalizedName(); - } - - public String getDyedName() - { - return code + getDyeName(); - } - - /** - * Gets the 0-1 of this color's RGB value by dividing by 255 (used for OpenGL coloring). - * @param index - R:0, G:1, B:2 - * @return the color value - */ - public float getColor(int index) - { - return rgbCode[index] / 255F; - } - - /** - * Gets the value of this color mapped to MC in-game item colors present in dyes and wool. - * @return mc meta value - */ - public int getMetaValue() - { - return mcMeta; - } - - @Override - public String toString() - { - return code; - } -} diff --git a/src/api/java/mekanism/api/IClientTicker.java b/src/api/java/mekanism/api/IClientTicker.java deleted file mode 100644 index 2288973..0000000 --- a/src/api/java/mekanism/api/IClientTicker.java +++ /dev/null @@ -1,8 +0,0 @@ -package mekanism.api; - -public interface IClientTicker -{ - public void clientTick(); - - public boolean needsTicks(); -} diff --git a/src/api/java/mekanism/api/IConfigurable.java b/src/api/java/mekanism/api/IConfigurable.java deleted file mode 100644 index 512fabf..0000000 --- a/src/api/java/mekanism/api/IConfigurable.java +++ /dev/null @@ -1,27 +0,0 @@ -package mekanism.api; - -import net.minecraft.entity.player.EntityPlayer; - -/** - * Implement this in your TileEntity class if your block can be modified by a Configurator. - * @author aidancbrady - * - */ -public interface IConfigurable -{ - /** - * Called when a player shift-right clicks this block with a Configurator. - * @param player - the player who clicked the block - * @param side - the side the block was clicked on - * @return whether or not an action was performed - */ - public boolean onSneakRightClick(EntityPlayer player, int side); - - /** - * Called when a player right clicks this block with a Configurator. - * @param player - the player who clicked the block - * @param side - the side the block was clicked on - * @return whether or not an action was performed - */ - public boolean onRightClick(EntityPlayer player, int side); -} diff --git a/src/api/java/mekanism/api/IFilterAccess.java b/src/api/java/mekanism/api/IFilterAccess.java deleted file mode 100644 index 7bb2ee3..0000000 --- a/src/api/java/mekanism/api/IFilterAccess.java +++ /dev/null @@ -1,31 +0,0 @@ -package mekanism.api; - -import net.minecraft.nbt.NBTTagCompound; - -/** - * Implement this in your TileEntity class if you wish for Mekanism filters to be able to store any of their - * information. - * @author aidancbrady - * - */ -public interface IFilterAccess -{ - /** - * Collects the TileEntity's filter card data into the parameterized NBTTagCompound. - * @param nbtTags - the NBTTagCompound of the filter card ItemStack - * @return the NBTTagCompound that now contains the TileEntity's filter card data - */ - public NBTTagCompound getFilterData(NBTTagCompound nbtTags); - - /** - * Retrieves the TileEntity's data contained in the filter card based on the given NBTTagCompopund. - * @param nbtTags - the NBTTagCompound of the filter card ItemStack - */ - public void setFilterData(NBTTagCompound nbtTags); - - /** - * A String name of this TileEntity that will be displayed as the type of data on the filter card. - * @return the String name of this TileEntity - */ - public String getDataType(); -} diff --git a/src/api/java/mekanism/api/IHeatTransfer.java b/src/api/java/mekanism/api/IHeatTransfer.java deleted file mode 100644 index 17393f7..0000000 --- a/src/api/java/mekanism/api/IHeatTransfer.java +++ /dev/null @@ -1,28 +0,0 @@ -package mekanism.api; - -import net.minecraftforge.common.util.ForgeDirection; - -public interface IHeatTransfer -{ - /**The value of the zero point of our temperature scale in kelvin*/ - public static final double AMBIENT_TEMP = 300; - - /**The heat transfer coefficient for air*/ - public static final double AIR_INVERSE_COEFFICIENT = 10000; - - public double getTemp(); - - public double getInverseConductionCoefficient(); - - public double getInsulationCoefficient(ForgeDirection side); - - public void transferHeatTo(double heat); - - public double[] simulateHeat(); - - public double applyTemperatureChange(); - - public boolean canConnectHeat(ForgeDirection side); - - public IHeatTransfer getAdjacent(ForgeDirection side); -} diff --git a/src/api/java/mekanism/api/IMekWrench.java b/src/api/java/mekanism/api/IMekWrench.java deleted file mode 100644 index 6ac4b05..0000000 --- a/src/api/java/mekanism/api/IMekWrench.java +++ /dev/null @@ -1,8 +0,0 @@ -package mekanism.api; - -import net.minecraft.entity.player.EntityPlayer; - -public interface IMekWrench -{ - public boolean canUseWrench(EntityPlayer player, int x, int y, int z); -} diff --git a/src/api/java/mekanism/api/ISalinationSolar.java b/src/api/java/mekanism/api/ISalinationSolar.java deleted file mode 100644 index 20e3e1e..0000000 --- a/src/api/java/mekanism/api/ISalinationSolar.java +++ /dev/null @@ -1,11 +0,0 @@ -package mekanism.api; - -/** - * Implement this class in a TileEntity if you wish for it to be able to heat up a Salination Plant. - * @author aidancbrady - * - */ -public interface ISalinationSolar -{ - public boolean seesSun(); -} diff --git a/src/api/java/mekanism/api/ItemRetriever.java b/src/api/java/mekanism/api/ItemRetriever.java deleted file mode 100644 index 1b6f4bd..0000000 --- a/src/api/java/mekanism/api/ItemRetriever.java +++ /dev/null @@ -1,120 +0,0 @@ -package mekanism.api; - -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -/** - * Use this class's 'getItem()' method to retrieve ItemStacks from the 'Mekanism' - * class. - * @author AidanBrady - * - */ -public final class ItemRetriever -{ - /** The 'MekanismItems' class that items are retrieved from. */ - private static Class MekanismItems; - - /** The 'MekanismBlocks' class that blocks are retrieved from. */ - private static Class MekanismBlocks; - - /** - * Attempts to retrieve an ItemStack of an item with the declared identifier. - * - * Mekanism identifiers follow an easy-to-remember pattern. All identifiers - * are identical to the String returned by 'getItemName().' None include spaces, - * and all start with a capital letter. The name that shows up in-game can be - * stripped down to identifier form by removing spaces and all non-alphabetic - * characters (,./'=-_). Below is an example: - * - * ItemStack enrichedAlloy = ItemRetriever.getItem("EnrichedAlloy"); - * - * Note that for items or blocks that have specific metadata you will need to create - * a new ItemStack with that specified value, as this will only return an ItemStack - * with the meta value '0.' - * - * Make sure you run this in or after FMLPostInitializationEvent runs, because most - * items are registered when FMLInitializationEvent runs. However, some items ARE - * registered later in order to hook into other mods. In a rare circumstance you may - * have to add "after:Mekanism" in the @Mod 'dependencies' annotation. - * - * @param identifier - a String to be searched in the 'MekanismItems' class - * @return an ItemStack of the declared identifier, otherwise null. - */ - public static ItemStack getItem(String identifier) - { - try - { - if(MekanismItems == null) - { - MekanismItems = Class.forName("mekanism.common.MekanismItems"); - } - - final Object ret = MekanismItems.getField(identifier).get(null); - - if(ret instanceof Item) - { - return new ItemStack((Item) ret, 1); - } - else - { - return null; - } - } - catch(final Exception e) - { - System.err.println("Error retrieving item with identifier '" + identifier + "': " + e.getMessage()); - return null; - } - } - - /** - * Attempts to retrieve an ItemStack of a block with the declared identifier. - * - * Mekanism identifiers follow an easy-to-remember pattern. All identifiers - * are identical to the String returned by 'getItemName().' None include spaces, - * and all start with a capital letter. The name that shows up in-game can be - * stripped down to identifier form by removing spaces and all non-alphabetic - * characters (,./'=-_). Below is an example: - * - * ItemStack enrichedAlloy = ItemRetriever.getItem("EnrichedAlloy"); - * - * Note that for items or blocks that have specific metadata you will need to create - * a new ItemStack with that specified value, as this will only return an ItemStack - * with the meta value '0.' - * - * Make sure you run this in or after FMLPostInitializationEvent runs, because most - * items are registered when FMLInitializationEvent runs. However, some items ARE - * registered later in order to hook into other mods. In a rare circumstance you may - * have to add "after:Mekanism" in the @Mod 'dependencies' annotation. - * - * @param identifier - a String to be searched in the 'MekanismBlocks' class - * @return an ItemStack of the declared identifier, otherwise null. - */ - public static ItemStack getBlock(String identifier) - { - try - { - if(MekanismBlocks == null) - { - MekanismBlocks = Class.forName("mekanism.common.MekanismBlocks"); - } - - final Object ret = MekanismBlocks.getField(identifier).get(null); - - if(ret instanceof Block) - { - return new ItemStack((Block) ret, 1); - } - else - { - return null; - } - } - catch(final Exception e) - { - System.err.println("Error retrieving block with identifier '" + identifier + "': " + e.getMessage()); - return null; - } - } -} diff --git a/src/api/java/mekanism/api/MekanismAPI.java b/src/api/java/mekanism/api/MekanismAPI.java deleted file mode 100644 index cfbdb68..0000000 --- a/src/api/java/mekanism/api/MekanismAPI.java +++ /dev/null @@ -1,51 +0,0 @@ -package mekanism.api; - -import java.util.HashSet; -import java.util.Set; - -import mekanism.api.util.BlockInfo; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraftforge.oredict.OreDictionary; -import cpw.mods.fml.common.eventhandler.Event; - -public class MekanismAPI -{ - //Add a BlockInfo value here if you don't want a certain block to be picked up by cardboard boxes - private static Set<BlockInfo> cardboardBoxIgnore = new HashSet<BlockInfo>(); - - /** Mekanism debug mode */ - public static boolean debug = false; - - public static boolean isBlockCompatible(Item item, int meta) - { - for(final BlockInfo i : cardboardBoxIgnore) - { - if(i.block == Block.getBlockFromItem(item) && (i.meta == OreDictionary.WILDCARD_VALUE || i.meta == meta)) - { - return false; - } - } - - return true; - } - - public static void addBoxBlacklist(Block block, int meta) - { - cardboardBoxIgnore.add(new BlockInfo(block, meta)); - } - - public static void removeBoxBlacklist(Block block, int meta) - { - cardboardBoxIgnore.remove(new BlockInfo(block, meta)); - } - - public static Set<BlockInfo> getBoxIgnore() - { - return cardboardBoxIgnore; - } - - public static class BoxBlacklistEvent extends Event - { - } -} diff --git a/src/api/java/mekanism/api/MekanismConfig.java b/src/api/java/mekanism/api/MekanismConfig.java deleted file mode 100644 index 81772b1..0000000 --- a/src/api/java/mekanism/api/MekanismConfig.java +++ /dev/null @@ -1,137 +0,0 @@ -package mekanism.api; - -import java.util.HashMap; -import java.util.Map; - -import mekanism.api.util.UnitDisplayUtils.EnergyType; -import mekanism.api.util.UnitDisplayUtils.TempType; - -public class MekanismConfig -{ - public static class general - { - public static boolean updateNotifications = true; - public static boolean controlCircuitOreDict = true; - public static boolean logPackets = false; - public static boolean dynamicTankEasterEgg = false; - public static boolean voiceServerEnabled = true; - public static boolean cardboardSpawners = true; - public static boolean enableWorldRegeneration = true; - public static boolean creativeOverrideElectricChest = true; - public static boolean spawnBabySkeletons = true; - public static int obsidianTNTBlastRadius = 12; - public static int osmiumPerChunk = 12; - public static int copperPerChunk = 16; - public static int tinPerChunk = 14; - public static int saltPerChunk = 2; - public static int obsidianTNTDelay = 100; - public static int UPDATE_DELAY = 10; - public static int VOICE_PORT = 36123; - public static int maxUpgradeMultiplier = 10; - public static int userWorldGenVersion = 0; - public static double ENERGY_PER_REDSTONE = 10000; - public static int ETHENE_BURN_TIME = 40; - public static double DISASSEMBLER_USAGE = 10; - public static EnergyType activeType = EnergyType.J; - public static TempType tempUnit = TempType.K; - public static double TO_IC2; - public static double TO_TE; - public static double FROM_H2; - public static double FROM_IC2; - public static double FROM_TE; - public static int laserRange; - public static double laserEnergyNeededPerHardness; - public static double minerSilkMultiplier = 6; - public static boolean blacklistIC2; - public static boolean blacklistRF; - public static boolean destroyDisabledBlocks; - public static boolean enableAmbientLighting; - public static int ambientLightingLevel; - public static boolean prefilledPortableTanks; - public static double armoredJetpackDamageRatio; - public static int armoredJetpackDamageMax; - public static boolean aestheticWorldDamage; - public static boolean opsBypassRestrictions; - public static double solarEvaporationSpeed; - public static int maxJetpackGas; - public static int maxScubaGas; - public static int maxFlamethrowerGas; - } - - public static class client - { - public static boolean enablePlayerSounds = true; - public static boolean enableMachineSounds = true; - public static boolean fancyUniversalCableRender = true; - public static boolean holidays = true; - public static float baseSoundVolume = 1F; - public static boolean machineEffects = true; - public static boolean oldTransmitterRender = false; - public static boolean replaceSoundsWhenResuming = true; - public static boolean renderCTM = true; - } - - public static class machines - { - private static Map<String, Boolean> config = new HashMap<String, Boolean>(); - - public static boolean isEnabled(String type) - { - return config.get(type) != null && config.get(type); - } - - public static void setEntry(String type, boolean enabled) - { - config.put(type, enabled); - } - } - - public static class usage - { - public static double enrichmentChamberUsage; - public static double osmiumCompressorUsage; - public static double combinerUsage; - public static double crusherUsage; - public static double factoryUsage; - public static double metallurgicInfuserUsage; - public static double purificationChamberUsage; - public static double energizedSmelterUsage; - public static double digitalMinerUsage; - public static double electricPumpUsage; - public static double rotaryCondensentratorUsage; - public static double oxidationChamberUsage; - public static double chemicalInfuserUsage; - public static double chemicalInjectionChamberUsage; - public static double precisionSawmillUsage; - public static double chemicalDissolutionChamberUsage; - public static double chemicalWasherUsage; - public static double chemicalCrystallizerUsage; - public static double seismicVibratorUsage; - public static double pressurizedReactionBaseUsage; - public static double fluidicPlenisherUsage; - public static double laserUsage; - public static double gasCentrifugeUsage; - public static double heavyWaterElectrolysisUsage; - } - - public static class generators - { - public static double advancedSolarGeneration; - public static double bioGeneration; - public static double heatGeneration; - public static double heatGenerationLava; - public static double heatGenerationNether; - public static double solarGeneration; - - public static double windGenerationMin; - public static double windGenerationMax; - - public static int windGenerationMinY; - public static int windGenerationMaxY; - } - - public static class tools - { - public static double armorSpawnRate; - } -} diff --git a/src/api/java/mekanism/api/Pos3D.java b/src/api/java/mekanism/api/Pos3D.java deleted file mode 100644 index 03c5892..0000000 --- a/src/api/java/mekanism/api/Pos3D.java +++ /dev/null @@ -1,458 +0,0 @@ -package mekanism.api; - -import net.minecraft.entity.Entity; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.MathHelper; -import net.minecraft.util.MovingObjectPosition; -import net.minecraft.util.Vec3; -import net.minecraftforge.common.util.ForgeDirection; - -/** - * Pos3D - a way of performing operations on objects in a three dimensional environment. - * @author aidancbrady - * - */ -public class Pos3D -{ - public double xPos; - public double yPos; - public double zPos; - - public Pos3D() - { - this(0, 0, 0); - } - - public Pos3D(Vec3 vec) - { - xPos = vec.xCoord; - yPos = vec.yCoord; - zPos = vec.zCoord; - } - - public Pos3D(MovingObjectPosition mop) - { - xPos = mop.blockX; - yPos = mop.blockY; - zPos = mop.blockZ; - } - - public Pos3D(double x, double y, double z) - { - xPos = x; - yPos = y; - zPos = z; - } - - public Pos3D(Coord4D coord) - { - xPos = coord.xCoord; - yPos = coord.yCoord; - zPos = coord.zCoord; - } - - /** - * Creates a Pos3D with an entity's posX, posY, and posZ values. - * @param entity - entity to create the Pos3D from - */ - public Pos3D(Entity entity) - { - this(entity.posX, entity.posY, entity.posZ); - } - - /** - * Creates a Pos3D with a TileEntity's xCoord, yCoord and zCoord values. - * @param tileEntity - TileEntity to create the Pos3D from - */ - public Pos3D(TileEntity tileEntity) - { - this(tileEntity.xCoord, tileEntity.yCoord, tileEntity.zCoord); - } - - /** - * Returns a new Pos3D from a tag compound. - * @param tag - tag compound to read from - * @return the Pos3D from the tag compound - */ - public static Pos3D read(NBTTagCompound tag) - { - return new Pos3D(tag.getDouble("x"), tag.getDouble("y"), - tag.getDouble("z")); - } - - /** - * Writes this Pos3D's data to an NBTTagCompound. - * @param nbtTags - tag compound to write to - * @return the tag compound with this Pos3D's data - */ - public NBTTagCompound write(NBTTagCompound nbtTags) - { - nbtTags.setDouble("x", xPos); - nbtTags.setDouble("y", yPos); - nbtTags.setDouble("z", zPos); - - return nbtTags; - } - - /** - * Creates and returns a Pos3D with values representing the difference between this and the Pos3D in the parameters. - * @param pos - Pos3D to subtract - * @return difference of the two Pos3Ds - */ - public Pos3D diff(Pos3D pos) - { - return new Pos3D(xPos - pos.xPos, yPos - pos.yPos, zPos - pos.zPos); - } - - /** - * Creates a new Pos3D from the motion of an entity. - * @param entity - * @return Pos3D representing the motion of the given entity - */ - public static Pos3D fromMotion(Entity entity) - { - return new Pos3D(entity.motionX, entity.motionY, entity.motionZ); - } - - /** - * Creates a new Coord4D representing this Pos3D in the provided dimension. - * @param dimensionId - the dimension this Pos3D is in - * @return Coord4D representing this Pos3D - */ - public Coord4D getCoord(int dimensionId) - { - return new Coord4D((int) xPos, (int) yPos, (int) zPos, dimensionId); - } - - /** - * Centres a block-derived Pos3D - */ - public Pos3D centre() - { - return translate(0.5, 0.5, 0.5); - } - - /** - * Translates this Pos3D by the defined values. - * @param x - amount to translate on the x axis - * @param y - amount to translate on the y axis - * @param z - amount to translate on the z axis - * @return the translated Pos3D - */ - public Pos3D translate(double x, double y, double z) - { - xPos += x; - yPos += y; - zPos += z; - - return this; - } - - /** - * Performs the same operation as translate(x, y, z), but with a Pos3D value instead. - * @param pos - Pos3D value to translate by - * @return translated Pos3D - */ - public Pos3D translate(Pos3D pos) - { - return translate(pos.xPos, pos.yPos, pos.zPos); - } - - /** - * Performs the same operation as translate(x, y, z), but by a set amount in a ForgeDirection - */ - public Pos3D translate(ForgeDirection direction, double amount) - { - return translate(direction.offsetX * amount, direction.offsetY * amount, direction.offsetZ * amount); - } - - /** - * Performs the same operation as translate(x, y, z), but by a set amount in a ForgeDirection - */ - public Pos3D translateExcludingSide(ForgeDirection direction, double amount) - { - if(direction.offsetX == 0) - { - xPos += amount; - } - if(direction.offsetY == 0) - { - yPos += amount; - } - if(direction.offsetZ == 0) - { - zPos += amount; - } - - return this; - } - - /** - * Returns the distance between this and the defined Pos3D. - * @param pos - the Pos3D to find the distance to - * @return the distance between this and the defined Pos3D - */ - public double distance(Pos3D pos) - { - final double subX = xPos - pos.xPos; - final double subY = yPos - pos.yPos; - final double subZ = zPos - pos.zPos; - return MathHelper.sqrt_double(subX * subX + subY * subY + subZ * subZ); - } - - /** - * Rotates this Pos3D by the defined yaw value. - * @param yaw - yaw to rotate by - * @return rotated Pos3D - */ - public Pos3D rotateYaw(double yaw) - { - final double yawRadians = Math.toRadians(yaw); - - final double x = xPos; - final double z = zPos; - - if(yaw != 0) - { - xPos = x * Math.cos(yawRadians) - z * Math.sin(yawRadians); - zPos = z * Math.cos(yawRadians) + x * Math.sin(yawRadians); - } - - return this; - } - - public Pos3D rotatePitch(double pitch) - { - final double pitchRadians = Math.toRadians(pitch); - - final double y = yPos; - final double z = zPos; - - if(pitch != 0) - { - yPos = y * Math.cos(pitchRadians) - z * Math.sin(pitchRadians); - zPos = z * Math.cos(pitchRadians) + y * Math.sin(pitchRadians); - } - - return this; - } - - public Pos3D rotate(double yaw, double pitch) - { - return rotate(yaw, pitch, 0); - } - - public Pos3D rotate(double yaw, double pitch, double roll) - { - final double yawRadians = Math.toRadians(yaw); - final double pitchRadians = Math.toRadians(pitch); - final double rollRadians = Math.toRadians(roll); - - final double x = xPos; - final double y = yPos; - final double z = zPos; - - xPos = x * Math.cos(yawRadians) * Math.cos(pitchRadians) + z * (Math.cos(yawRadians) * Math.sin(pitchRadians) * Math.sin(rollRadians) - Math.sin(yawRadians) * Math.cos(rollRadians)) + y * (Math.cos(yawRadians) * Math.sin(pitchRadians) * Math.cos(rollRadians) + Math.sin(yawRadians) * Math.sin(rollRadians)); - zPos = x * Math.sin(yawRadians) * Math.cos(pitchRadians) + z * (Math.sin(yawRadians) * Math.sin(pitchRadians) * Math.sin(rollRadians) + Math.cos(yawRadians) * Math.cos(rollRadians)) + y * (Math.sin(yawRadians) * Math.sin(pitchRadians) * Math.cos(rollRadians) - Math.cos(yawRadians) * Math.sin(rollRadians)); - yPos = -x * Math.sin(pitchRadians) + z * Math.cos(pitchRadians) * Math.sin(rollRadians) + y * Math.cos(pitchRadians) * Math.cos(rollRadians); - - return this; - } - - public Pos3D multiply(Pos3D pos) - { - xPos *= pos.xPos; - yPos *= pos.yPos; - zPos *= pos.zPos; - - return this; - } - - /** - * Scales this Pos3D by the defined x, y, an z values. - * @param x - x value to scale by - * @param y - y value to scale by - * @param z - z value to scale by - * @return scaled Pos3D - */ - public Pos3D scale(double x, double y, double z) - { - xPos *= x; - yPos *= y; - zPos *= z; - - return this; - } - - /** - * Performs the same operation as scale(x, y, z), but with a value representing all three dimensions. - * @param scale - value to scale by - * @return scaled Pos3D - */ - public Pos3D scale(double scale) - { - return scale(scale, scale, scale); - } - - public Pos3D rotate(float angle, Pos3D axis) - { - return translateMatrix(getRotationMatrix(angle, axis), this); - } - - public double[] getRotationMatrix(float angle) - { - final double[] matrix = new double[16]; - final Pos3D axis = clone().normalize(); - - final double x = axis.xPos; - final double y = axis.yPos; - final double z = axis.zPos; - - angle *= 0.0174532925D; - - final float cos = (float) Math.cos(angle); - final float ocos = 1.0F - cos; - final float sin = (float) Math.sin(angle); - - matrix[0] = (x * x * ocos + cos); - matrix[1] = (y * x * ocos + z * sin); - matrix[2] = (x * z * ocos - y * sin); - matrix[4] = (x * y * ocos - z * sin); - matrix[5] = (y * y * ocos + cos); - matrix[6] = (y * z * ocos + x * sin); - matrix[8] = (x * z * ocos + y * sin); - matrix[9] = (y * z * ocos - x * sin); - matrix[10] = (z * z * ocos + cos); - matrix[15] = 1.0F; - - return matrix; - } - - public static Pos3D translateMatrix(double[] matrix, Pos3D translation) - { - final double x = translation.xPos * matrix[0] + translation.yPos * matrix[1] + translation.zPos * matrix[2] + matrix[3]; - final double y = translation.xPos * matrix[4] + translation.yPos * matrix[5] + translation.zPos * matrix[6] + matrix[7]; - final double z = translation.xPos * matrix[8] + translation.yPos * matrix[9] + translation.zPos * matrix[10] + matrix[11]; - - translation.xPos = x; - translation.yPos = y; - translation.zPos = z; - - return translation; - } - - public static double[] getRotationMatrix(float angle, Pos3D axis) - { - return axis.getRotationMatrix(angle); - } - - public double anglePreNorm(Pos3D pos2) - { - return Math.acos(dotProduct(pos2)); - } - - public static double anglePreNorm(Pos3D pos1, Pos3D pos2) - { - return Math.acos(pos1.clone().dotProduct(pos2)); - } - - public double dotProduct(Pos3D pos) - { - return xPos * pos.xPos + yPos * pos.yPos + zPos * pos.zPos; - } - - public Pos3D crossProduct(Pos3D compare) - { - return clone().toCrossProduct(compare); - } - - public Pos3D toCrossProduct(Pos3D compare) - { - final double newX = yPos * compare.zPos - zPos * compare.yPos; - final double newY = zPos * compare.xPos - xPos * compare.zPos; - final double newZ = xPos * compare.yPos - yPos * compare.xPos; - - xPos = newX; - yPos = newY; - zPos = newZ; - - return this; - } - - public Pos3D xCrossProduct() - { - return new Pos3D(0.0D, zPos, -yPos); - } - - public Pos3D zCrossProduct() - { - return new Pos3D(-yPos, xPos, 0.0D); - } - - public Pos3D getPerpendicular() - { - if(zPos == 0) - { - return zCrossProduct(); - } - - return xCrossProduct(); - } - - public Pos3D floor() - { - return new Pos3D(Math.floor(xPos), Math.floor(yPos), Math.floor(zPos)); - } - - public double getMagnitude() - { - return Math.sqrt(xPos * xPos + yPos * yPos + zPos * zPos); - } - - public Pos3D normalize() - { - final double d = getMagnitude(); - - if(d != 0) - { - this.scale(1 / d); - } - - return this; - } - - public static AxisAlignedBB getAABB(Pos3D pos1, Pos3D pos2) - { - return AxisAlignedBB.getBoundingBox(Math.min(pos1.xPos, pos2.xPos), Math.min(pos1.yPos, pos2.yPos), Math.min(pos1.zPos, pos2.zPos), Math.max(pos1.xPos, pos2.xPos), Math.max(pos1.yPos, pos2.yPos), Math.max(pos1.zPos, pos2.zPos)); - } - - @Override - public Pos3D clone() - { - return new Pos3D(xPos, yPos, zPos); - } - - @Override - public String toString() - { - return "[Pos3D: " + xPos + ", " + yPos + ", " + zPos + "]"; - } - - @Override - public boolean equals(Object obj) - { - return obj instanceof Pos3D && ((Pos3D) obj).xPos == xPos && ((Pos3D) obj).yPos == yPos && ((Pos3D) obj).zPos == zPos; - } - - @Override - public int hashCode() - { - int code = 1; - code = 31 * code + new Double(xPos).hashCode(); - code = 31 * code + new Double(yPos).hashCode(); - code = 31 * code + new Double(zPos).hashCode(); - return code; - } -} diff --git a/src/api/java/mekanism/api/Range4D.java b/src/api/java/mekanism/api/Range4D.java deleted file mode 100644 index 7e4f6ae..0000000 --- a/src/api/java/mekanism/api/Range4D.java +++ /dev/null @@ -1,107 +0,0 @@ -package mekanism.api; - -import net.minecraft.entity.player.EntityPlayer; -import cpw.mods.fml.common.FMLCommonHandler; - -public class Range4D -{ - public int dimensionId; - - public int xMin; - public int yMin; - public int zMin; - public int xMax; - public int yMax; - public int zMax; - - public Range4D(int minX, int minY, int minZ, int maxX, int maxY, int maxZ, int dimension) - { - xMin = minX; - yMin = minY; - zMin = minZ; - xMax = maxX; - yMax = maxY; - zMax = maxZ; - - dimensionId = dimension; - } - - public Range4D(Chunk3D chunk) - { - xMin = chunk.xCoord * 16; - yMin = 0; - zMin = chunk.zCoord * 16; - xMax = xMin + 16; - yMax = 255; - zMax = zMin + 16; - - dimensionId = chunk.dimensionId; - } - - public Range4D(Coord4D coord) - { - xMin = coord.xCoord; - yMin = coord.yCoord; - zMin = coord.zCoord; - - xMax = coord.xCoord + 1; - yMax = coord.yCoord + 1; - zMax = coord.zCoord + 1; - - dimensionId = coord.dimensionId; - } - - public static Range4D getChunkRange(EntityPlayer player) - { - final int radius = FMLCommonHandler.instance().getMinecraftServerInstance().getConfigurationManager().getViewDistance(); - - return new Range4D(new Chunk3D(player)).expandChunks(radius); - } - - public Range4D expandChunks(int chunks) - { - xMin -= chunks * 16; - xMax += chunks * 16; - zMin -= chunks * 16; - zMax += chunks * 16; - - return this; - } - - public boolean intersects(Range4D range) - { - return (xMax + 1 - 1.E-05D > range.xMin) && (range.xMax + 1 - 1.E-05D > xMin) && (yMax + 1 - 1.E-05D > range.yMin) && (range.yMax + 1 - 1.E-05D > yMin) && (zMax + 1 - 1.E-05D > range.zMin) && (range.zMax + 1 - 1.E-05D > zMin); - } - - @Override - public Range4D clone() - { - return new Range4D(xMin, yMin, zMin, xMax, yMax, zMax, dimensionId); - } - - @Override - public String toString() - { - return "[Range4D: " + xMin + ", " + yMin + ", " + zMin + ", " + xMax + ", " + yMax + ", " + zMax + ", dim=" + dimensionId + "]"; - } - - @Override - public boolean equals(Object obj) - { - return obj instanceof Range4D && ((Range4D) obj).xMin == xMin && ((Range4D) obj).yMin == yMin && ((Range4D) obj).zMin == zMin && ((Range4D) obj).xMax == xMax && ((Range4D) obj).yMax == yMax && ((Range4D) obj).zMax == zMax && ((Range4D) obj).dimensionId == dimensionId; - } - - @Override - public int hashCode() - { - int code = 1; - code = 31 * code + xMin; - code = 31 * code + yMin; - code = 31 * code + zMin; - code = 31 * code + xMax; - code = 31 * code + yMax; - code = 31 * code + zMax; - code = 31 * code + dimensionId; - return code; - } -} diff --git a/src/api/java/mekanism/api/TabProxy.java b/src/api/java/mekanism/api/TabProxy.java deleted file mode 100644 index a96813c..0000000 --- a/src/api/java/mekanism/api/TabProxy.java +++ /dev/null @@ -1,45 +0,0 @@ -package mekanism.api; - -import net.minecraft.creativetab.CreativeTabs; - -/** - * Class used to indirectly reference the Mekanism creative tab. - * @author AidanBrady - * - */ -public final class TabProxy -{ - /** The 'Mekanism' class where the tab instance is stored. */ - public static Class Mekanism; - - /** - * Attempts to get the Mekanism creative tab instance from the 'Mekanism' class. Will return - * the tab if the mod is loaded, but otherwise will return the defined 'preferred' creative tab. This way - * you don't need to worry about NPEs! - * @return Mekanism creative tab if can, otherwise preferred tab - */ - public static CreativeTabs tabMekanism(CreativeTabs preferred) - { - try - { - if(Mekanism == null) - { - Mekanism = Class.forName("mekanism.common.Mekanism"); - } - - final Object ret = Mekanism.getField("tabMekanism").get(null); - - if(ret instanceof CreativeTabs) - { - return (CreativeTabs) ret; - } - - return preferred; - } - catch(final Exception e) - { - System.err.println("Error retrieving Mekanism creative tab."); - return preferred; - } - } -} diff --git a/src/api/java/mekanism/api/energy/EnergizedItemManager.java b/src/api/java/mekanism/api/energy/EnergizedItemManager.java deleted file mode 100644 index 458c480..0000000 --- a/src/api/java/mekanism/api/energy/EnergizedItemManager.java +++ /dev/null @@ -1,60 +0,0 @@ -package mekanism.api.energy; - -import net.minecraft.item.ItemStack; - -public class EnergizedItemManager -{ - /** - * Discharges an IEnergizedItem with the defined amount of energy. - * @param itemStack - ItemStack to discharge - * @param amount - amount of energy to discharge from the item, usually the total amount of energy needed in a TileEntity - * @return amount of energy discharged - */ - public static double discharge(ItemStack itemStack, double amount) - { - if(itemStack != null) - { - if(itemStack.getItem() instanceof IEnergizedItem) - { - final IEnergizedItem energizedItem = (IEnergizedItem) itemStack.getItem(); - - if(energizedItem.canSend(itemStack)) - { - final double energyToUse = Math.min(energizedItem.getMaxTransfer(itemStack), Math.min(energizedItem.getEnergy(itemStack), amount)); - energizedItem.setEnergy(itemStack, energizedItem.getEnergy(itemStack) - energyToUse); - - return energyToUse; - } - } - } - - return 0; - } - - /** - * Charges an IEnergizedItem with the defined amount of energy. - * @param itemStack - ItemStack to charge - * @param amount - amount of energy to charge the item with, usually the total amount of energy stored in a TileEntity - * @return amount of energy charged - */ - public static double charge(ItemStack itemStack, double amount) - { - if(itemStack != null) - { - if(itemStack.getItem() instanceof IEnergizedItem) - { - final IEnergizedItem energizedItem = (IEnergizedItem) itemStack.getItem(); - - if(energizedItem.canReceive(itemStack)) - { - final double energyToSend = Math.min(energizedItem.getMaxTransfer(itemStack), Math.min(energizedItem.getMaxEnergy(itemStack) - energizedItem.getEnergy(itemStack), amount)); - energizedItem.setEnergy(itemStack, energizedItem.getEnergy(itemStack) + energyToSend); - - return energyToSend; - } - } - } - - return 0; - } -} diff --git a/src/api/java/mekanism/api/energy/EnergyStack.java b/src/api/java/mekanism/api/energy/EnergyStack.java deleted file mode 100644 index 807262d..0000000 --- a/src/api/java/mekanism/api/energy/EnergyStack.java +++ /dev/null @@ -1,14 +0,0 @@ -package mekanism.api.energy; - -/** - * Created by ben on 27/03/15. - */ -public class EnergyStack -{ - public double amount; - - public EnergyStack(double newAmount) - { - amount = newAmount; - } -} diff --git a/src/api/java/mekanism/api/energy/ICableOutputter.java b/src/api/java/mekanism/api/energy/ICableOutputter.java deleted file mode 100644 index 015379c..0000000 --- a/src/api/java/mekanism/api/energy/ICableOutputter.java +++ /dev/null @@ -1,18 +0,0 @@ -package mekanism.api.energy; - -import net.minecraftforge.common.util.ForgeDirection; - -/** - * Implement this if your TileEntity is capable of outputting energy to cables, overriding Mekanism's default implementation. - * @author AidanBrady - * - */ -public interface ICableOutputter -{ - /** - * Whether or not this block can output to a cable on a specific side. - * @param side - side to check - * @return if the block can output - */ - public boolean canOutputTo(ForgeDirection side); -} diff --git a/src/api/java/mekanism/api/energy/IEnergizedItem.java b/src/api/java/mekanism/api/energy/IEnergizedItem.java deleted file mode 100644 index b672545..0000000 --- a/src/api/java/mekanism/api/energy/IEnergizedItem.java +++ /dev/null @@ -1,59 +0,0 @@ -package mekanism.api.energy; - -import net.minecraft.item.ItemStack; - -/** - * Implement this in an item's class if it should be able to store electricity. - * @author aidancbrady - * - */ -public interface IEnergizedItem -{ - /** - * Gets and returns the amount of energy stored in this item. - * @param itemStack - the ItemStack to check - * @return energy stored - */ - public double getEnergy(ItemStack itemStack); - - /** - * Sets this item's stored energy value to a new amount. - * @param itemStack - the ItemStack who's energy value is to be change - * @param amount - new amount of energy - */ - public void setEnergy(ItemStack itemStack, double amount); - - /** - * Gets and returns this item's maximum amount of energy that can be stored. - * @param itemStack - the ItemStack to check - * @return maximum energy - */ - public double getMaxEnergy(ItemStack itemStack); - - /** - * Gets and returns how much energy this item can transfer to and from charging slots. - * @param itemStack - the ItemStack to check - * @return transfer amount - */ - public double getMaxTransfer(ItemStack itemStack); - - /** - * Gets and returns whether or not this item can receive energy from a charging slot. - * @param itemStack - the ItemStack to check - * @return if the item can receive energy - */ - public boolean canReceive(ItemStack itemStack); - - /** - * Gets and returns whether or not this item can send energy to a charging slot. - * @param itemStack - the ItemStack to check - * @return if the item can send energy - */ - public boolean canSend(ItemStack itemStack); - - /** - * Returns whether or not this item contains metadata-specific subtypes instead of using metadata for damage display. - * @return if the item contains metadata-specific subtypes - */ - public boolean isMetadataSpecific(ItemStack itemStack); -} diff --git a/src/api/java/mekanism/api/energy/IStrictEnergyAcceptor.java b/src/api/java/mekanism/api/energy/IStrictEnergyAcceptor.java deleted file mode 100644 index 53edc68..0000000 --- a/src/api/java/mekanism/api/energy/IStrictEnergyAcceptor.java +++ /dev/null @@ -1,25 +0,0 @@ -package mekanism.api.energy; - -import net.minecraftforge.common.util.ForgeDirection; - -/** - * Implement this if your TileEntity can accept energy at a floating-point double value from Universal Cables. - * @author AidanBrady - * - */ -public interface IStrictEnergyAcceptor extends IStrictEnergyStorage -{ - /** - * Transfer a certain amount of energy to this acceptor. - * @param amount - amount to transfer - * @return energy used - */ - public double transferEnergyToAcceptor(ForgeDirection side, double amount); - - /** - * Whether or not this tile entity accepts energy from a certain side. - * @param side - side to check - * @return if tile entity accepts energy - */ - public boolean canReceiveEnergy(ForgeDirection side); -} diff --git a/src/api/java/mekanism/api/energy/IStrictEnergyStorage.java b/src/api/java/mekanism/api/energy/IStrictEnergyStorage.java deleted file mode 100644 index fd560fa..0000000 --- a/src/api/java/mekanism/api/energy/IStrictEnergyStorage.java +++ /dev/null @@ -1,27 +0,0 @@ -package mekanism.api.energy; - -/** - * Mekanism-specific energy storage for TileEntities, already implemented in IStrictEnergyAcceptor. - * @author aidancbrady - * - */ -public interface IStrictEnergyStorage -{ - /** - * Gets the amount of energy this TileEntity is currently storing. - * @return stored energy - */ - public double getEnergy(); - - /** - * Sets the amount of stored energy of this TileEntity to a new amount. - * @param energy - new energy value - */ - public void setEnergy(double energy); - - /** - * Gets the maximum amount of energy this TileEntity can store. - * @return maximum energy - */ - public double getMaxEnergy(); -} diff --git a/src/api/java/mekanism/api/energy/package-info.java b/src/api/java/mekanism/api/energy/package-info.java deleted file mode 100644 index d16dddf..0000000 --- a/src/api/java/mekanism/api/energy/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|energy") -package mekanism.api.energy; - -import cpw.mods.fml.common.API; - diff --git a/src/api/java/mekanism/api/gas/Gas.java b/src/api/java/mekanism/api/gas/Gas.java deleted file mode 100644 index b65353e..0000000 --- a/src/api/java/mekanism/api/gas/Gas.java +++ /dev/null @@ -1,222 +0,0 @@ -package mekanism.api.gas; - -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; -import net.minecraft.util.StatCollector; -import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; - -/** - * Gas - a class used to set specific properties of gasses when used or seen in-game. - * @author aidancbrady - * - */ -public class Gas -{ - private String name; - - private String unlocalizedName; - - private Fluid fluid; - - private IIcon icon; - - private boolean visible = true; - - private boolean from_fluid = false; - - /** - * Creates a new Gas object with a defined name or key value. - * @param s - name or key to associate this Gas with - */ - public Gas(String s) - { - unlocalizedName = name = s; - } - - /** - * Creates a new Gas object that corresponds to the given Fluid - */ - public Gas(Fluid f) - { - unlocalizedName = name = f.getName(); - icon = f.getStillIcon(); - fluid = f; - from_fluid = true; - } - - /** - * Gets the name (key) of this Gas. This is NOT a translated or localized display name. - * @return this Gas's name or key - */ - public String getName() - { - return name; - } - - /** - * Whether or not this is a visible gas. - * @return if this gas is visible - */ - public boolean isVisible() - { - return visible; - } - - /** - * Sets this gas's "visible" state to a new value. Setting it to 'false' will treat this gas as an internal gas, and it will not be displayed or accessed by other mods. - * @param v - new visible state - * @return this Gas object - */ - public Gas setVisible(boolean v) - { - visible = v; - - return this; - } - - /** - * Gets the unlocalized name of this Gas. - * @return this Gas's unlocalized name - */ - public String getUnlocalizedName() - { - return "gas." + unlocalizedName; - } - - /** - * Translates this Gas's unlocalized name and returns it as localized. - * @return this Gas's localized name - */ - public String getLocalizedName() - { - return StatCollector.translateToLocal(getUnlocalizedName()); - } - - /** - * Sets the unlocalized name of this Gas. - * @param s - unlocalized name to set - * @return this Gas object - */ - public Gas setUnlocalizedName(String s) - { - unlocalizedName = s; - - return this; - } - - /** - * Gets the IIcon associated with this Gas. - * @return associated IIcon - */ - public IIcon getIcon() - { - if(from_fluid) - { - return getFluid().getIcon(); - } - - return icon; - } - - /** - * Sets this gas's icon. - * @param i - IIcon to associate with this Gas - * @return this Gas object - */ - public Gas setIcon(IIcon i) - { - icon = i; - - if(hasFluid()) - { - fluid.setIcons(getIcon()); - } - - from_fluid = false; - - return this; - } - - /** - * Gets the ID associated with this gas. - * @return the associated gas ID - */ - public int getID() - { - return GasRegistry.getGasID(this); - } - - /** - * Writes this Gas to a defined tag compound. - * @param nbtTags - tag compound to write this Gas to - * @return the tag compound this gas was written to - */ - public NBTTagCompound write(NBTTagCompound nbtTags) - { - nbtTags.setString("gasName", getName()); - - return nbtTags; - } - - /** - * Returns the Gas stored in the defined tag compound. - * @param nbtTags - tag compound to get the Gas from - * @return Gas stored in the tag compound - */ - public static Gas readFromNBT(NBTTagCompound nbtTags) - { - if(nbtTags == null || nbtTags.hasNoTags()) - { - return null; - } - - return GasRegistry.getGas(nbtTags.getString("gasName")); - } - - /** - * Whether or not this Gas has an associated fluid. - * @return if this gas has a fluid - */ - public boolean hasFluid() - { - return fluid != null; - } - - /** - * Gets the fluid associated with this Gas. - * @return fluid associated with this gas - */ - public Fluid getFluid() - { - return fluid; - } - - /** - * Registers a new fluid out of this Gas or gets one from the FluidRegistry. - * @return this Gas object - */ - public Gas registerFluid() - { - if(fluid == null) - { - if(FluidRegistry.getFluid(getName()) == null) - { - fluid = new Fluid(getName()).setGaseous(true); - FluidRegistry.registerFluid(fluid); - } - else - { - fluid = FluidRegistry.getFluid(getName()); - } - } - - return this; - } - - @Override - public String toString() - { - return name; - } -} diff --git a/src/api/java/mekanism/api/gas/GasNetwork.java b/src/api/java/mekanism/api/gas/GasNetwork.java deleted file mode 100644 index 05e18be..0000000 --- a/src/api/java/mekanism/api/gas/GasNetwork.java +++ /dev/null @@ -1,373 +0,0 @@ -package mekanism.api.gas; - -import java.util.Collection; -import java.util.Collections; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import mekanism.api.Coord4D; -import mekanism.api.transmitters.DynamicNetwork; -import mekanism.api.transmitters.IGridTransmitter; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.ForgeDirection; - -import com.google.common.collect.Lists; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.Event; - -/** - * A DynamicNetwork extension created specifically for the transfer of Gasses. By default this is server-only, but if ticked on - * the client side and if it's posted events are handled properly, it has the capability to visually display gasses network-wide. - * @author aidancbrady - * - */ -public class GasNetwork extends DynamicNetwork<IGasHandler, GasNetwork> -{ - public int transferDelay = 0; - - public boolean didTransfer; - public boolean prevTransfer; - - public float gasScale; - - public Gas refGas; - - public GasStack buffer; - public int prevStored; - - public int prevTransferAmount = 0; - - public GasNetwork() - { - } - - public GasNetwork(Collection<GasNetwork> networks) - { - for(final GasNetwork net : networks) - { - if(net != null) - { - if(FMLCommonHandler.instance().getEffectiveSide().isClient()) - { - if(net.refGas != null && net.gasScale > gasScale) - { - gasScale = net.gasScale; - refGas = net.refGas; - buffer = net.buffer; - - net.gasScale = 0; - net.refGas = null; - net.buffer = null; - } - } - else - { - if(net.buffer != null) - { - if(buffer == null) - { - buffer = net.buffer.copy(); - } - else - { - if(buffer.isGasEqual(net.buffer)) - { - buffer.amount += net.buffer.amount; - } - else if(net.buffer.amount > buffer.amount) - { - buffer = net.buffer.copy(); - } - - } - - net.buffer = null; - } - } - - adoptTransmittersAndAcceptorsFrom(net); - net.deregister(); - } - } - - gasScale = getScale(); - - register(); - } - - @Override - public void absorbBuffer(IGridTransmitter<IGasHandler, GasNetwork> transmitter) - { - final Object b = transmitter.getBuffer(); - - if(!(b instanceof GasStack) || ((GasStack) b).getGas() == null || ((GasStack) b).amount == 0) - { - return; - } - - final GasStack gas = (GasStack) b; - - if(buffer == null || buffer.getGas() == null || buffer.amount == 0) - { - buffer = gas.copy(); - gas.amount = 0; - return; - } - - //TODO better multiple buffer impl - if(buffer.isGasEqual(gas)) - { - buffer.amount += gas.amount; - } - - gas.amount = 0; - } - - @Override - public void clampBuffer() - { - if(buffer != null && buffer.amount > getCapacity()) - { - buffer.amount = capacity; - } - } - - public int getGasNeeded() - { - return getCapacity() - (buffer != null ? buffer.amount : 0); - } - - public int tickEmit(GasStack stack) - { - final List<IGasHandler> availableAcceptors = Lists.newArrayList(); - - availableAcceptors.addAll(getAcceptors(stack.getGas())); - - Collections.shuffle(availableAcceptors); - - int toSend = stack.amount; - final int prevSending = toSend; - - if(!availableAcceptors.isEmpty()) - { - final int divider = availableAcceptors.size(); - int remaining = toSend % divider; - final int sending = (toSend - remaining) / divider; - - for(final IGasHandler acceptor : availableAcceptors) - { - int currentSending = sending; - final EnumSet<ForgeDirection> sides = acceptorDirections.get(Coord4D.get((TileEntity) acceptor)); - - if(remaining > 0) - { - currentSending++; - remaining--; - } - - for(final ForgeDirection side : sides) - { - final int prev = toSend; - - toSend -= acceptor.receiveGas(side, new GasStack( - stack.getGas(), currentSending), true); - - if(toSend < prev) - { - break; - } - } - } - } - - final int sent = prevSending - toSend; - - if(sent > 0 && FMLCommonHandler.instance().getEffectiveSide().isServer()) - { - didTransfer = true; - transferDelay = 2; - } - - return sent; - } - - public int emit(GasStack stack, boolean doTransfer) - { - if(buffer != null && buffer.getGas() != stack.getGas()) - { - return 0; - } - - final int toUse = Math.min(getGasNeeded(), stack.amount); - - if(doTransfer) - { - if(buffer == null) - { - buffer = stack.copy(); - buffer.amount = toUse; - } - else - { - buffer.amount += toUse; - } - } - - return toUse; - } - - @Override - public void onUpdate() - { - super.onUpdate(); - - if(FMLCommonHandler.instance().getEffectiveSide().isServer()) - { - prevTransferAmount = 0; - - if(transferDelay == 0) - { - didTransfer = false; - } - else - { - transferDelay--; - } - - final int stored = buffer != null ? buffer.amount : 0; - - if(stored != prevStored) - { - needsUpdate = true; - } - - prevStored = stored; - - if(didTransfer != prevTransfer || needsUpdate) - { - MinecraftForge.EVENT_BUS.post(new GasTransferEvent(this, - buffer, didTransfer)); - needsUpdate = false; - } - - prevTransfer = didTransfer; - - if(buffer != null) - { - prevTransferAmount = tickEmit(buffer); - buffer.amount -= prevTransferAmount; - - if(buffer.amount <= 0) - { - buffer = null; - } - } - } - } - - @Override - public void clientTick() - { - super.clientTick(); - - gasScale = Math.max(gasScale, getScale()); - - if(didTransfer && gasScale < 1) - { - gasScale = Math.max(getScale(), Math.min(1, gasScale + 0.02F)); - } - else if(!didTransfer && gasScale > 0) - { - gasScale = Math.max(getScale(), Math.max(0, gasScale - 0.02F)); - - if(gasScale == 0) - { - buffer = null; - } - } - } - - @Override - public Set<IGasHandler> getAcceptors(Object data) - { - final Gas type = (Gas) data; - final Set<IGasHandler> toReturn = new HashSet<IGasHandler>(); - - if(FMLCommonHandler.instance().getEffectiveSide().isClient()) - { - return toReturn; - } - - for(final Coord4D coord : possibleAcceptors.keySet()) - { - final EnumSet<ForgeDirection> sides = acceptorDirections.get(coord); - final TileEntity tile = coord.getTileEntity(getWorld()); - - if(!(tile instanceof IGasHandler) || sides == null || sides.isEmpty()) - { - continue; - } - - final IGasHandler acceptor = (IGasHandler) tile; - - for(final ForgeDirection side : sides) - { - if(acceptor != null && acceptor.canReceiveGas(side, type)) - { - toReturn.add(acceptor); - break; - } - } - } - - return toReturn; - } - - public static class GasTransferEvent extends Event - { - public final GasNetwork gasNetwork; - - public final GasStack transferType; - public final boolean didTransfer; - - public GasTransferEvent(GasNetwork network, GasStack type, boolean did) - { - gasNetwork = network; - transferType = type; - didTransfer = did; - } - } - - public float getScale() - { - return Math.min(1, (buffer == null || getCapacity() == 0 ? 0 : (float) buffer.amount / getCapacity())); - } - - @Override - public String toString() - { - return "[GasNetwork] " + transmitters.size() + " transmitters, " + possibleAcceptors.size() + " acceptors."; - } - - @Override - public String getNeededInfo() - { - return Integer.toString(getGasNeeded()); - } - - @Override - public String getStoredInfo() - { - return buffer != null ? buffer.getGas().getLocalizedName() + " (" + buffer.amount + ")" : "None"; - } - - @Override - public String getFlowInfo() - { - return Integer.toString(prevTransferAmount) + "/t"; - } -} diff --git a/src/api/java/mekanism/api/gas/GasRegistry.java b/src/api/java/mekanism/api/gas/GasRegistry.java deleted file mode 100644 index 37a6363..0000000 --- a/src/api/java/mekanism/api/gas/GasRegistry.java +++ /dev/null @@ -1,113 +0,0 @@ -package mekanism.api.gas; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraftforge.fluids.Fluid; - -public class GasRegistry -{ - private static ArrayList<Gas> registeredGasses = new ArrayList<Gas>(); - - /** - * Register a new gas into GasRegistry. - * @param gas - Gas to register - * @return the gas that has been registered, pulled right out of GasRegistry - */ - public static Gas register(Gas gas) - { - if(gas == null) - { - return null; - } - - registeredGasses.add(gas); - - return getGas(gas.getName()); - } - - /** - * Gets the gas associated with the defined ID. - * @param id - ID to check - * @return gas associated with defined ID - */ - public static Gas getGas(int id) - { - if(id == -1) - { - return null; - } - - return registeredGasses.get(id); - } - - /** - * Gets the gas associated with the defined fluid. - * @param f - fluid to check - * @return the gas associated with the fluid - */ - public static Gas getGas(Fluid f) - { - for(final Gas gas : getRegisteredGasses()) - { - if(gas.hasFluid() && gas.getFluid() == f) - { - return gas; - } - } - - return null; - } - - /** - * Whether or not GasRegistry contains a gas with the specified name - * @param name - name to check - * @return if GasRegistry contains a gas with the defined name - */ - public static boolean containsGas(String name) - { - return getGas(name) != null; - } - - /** - * Gets the list of all gasses registered in GasRegistry. - * @return a cloned list of all registered gasses - */ - public static List<Gas> getRegisteredGasses() - { - return (List<Gas>) registeredGasses.clone(); - } - - /** - * Gets the gas associated with the specified name. - * @param name - name of the gas to get - * @return gas associated with the name - */ - public static Gas getGas(String name) - { - for(final Gas gas : registeredGasses) - { - if(gas.getName().toLowerCase().equals(name.toLowerCase())) - { - return gas; - } - } - - return null; - } - - /** - * Gets the gas ID of a specified gas. - * @param gas - gas to get the ID from - * @return gas ID - */ - public static int getGasID(Gas gas) - { - if(gas == null || !containsGas(gas.getName())) - { - return -1; - } - - return registeredGasses.indexOf(gas); - } -} diff --git a/src/api/java/mekanism/api/gas/GasStack.java b/src/api/java/mekanism/api/gas/GasStack.java deleted file mode 100644 index 6d04a53..0000000 --- a/src/api/java/mekanism/api/gas/GasStack.java +++ /dev/null @@ -1,134 +0,0 @@ -package mekanism.api.gas; - -import net.minecraft.nbt.NBTTagCompound; - -/** - * GasStack - a specified amount of a defined Gas with certain properties. - * @author aidancbrady - * - */ -public class GasStack -{ - private Gas type; - - public int amount; - - /** - * Creates a new GasStack with a defined gas ID and quantity. - * @param id - gas ID to associate this GasStack to, will perform a GasRegistry lookup in the constructor - * @param quantity - amount of gas to be referenced in this GasStack - */ - public GasStack(int id, int quantity) - { - type = GasRegistry.getGas(id); - amount = quantity; - } - - /** - * Creates a new GasStack with a defined Gas type and quantity. - * @param gas - gas type of the stack - * @param quantity - amount of gas to be referenced in this GasStack - */ - public GasStack(Gas gas, int quantity) - { - type = gas; - amount = quantity; - } - - private GasStack() - { - } - - /** - * Gets the Gas type of this GasStack. - * @return this GasStack's Gas type - */ - public Gas getGas() - { - return type; - } - - public GasStack withAmount(int newAmount) - { - amount = newAmount; - - return this; - } - - /** - * Writes this GasStack to a defined tag compound. - * @param nbtTags - tag compound to write to - * @return tag compound with this GasStack's data - */ - public NBTTagCompound write(NBTTagCompound nbtTags) - { - type.write(nbtTags); - nbtTags.setInteger("amount", amount); - - return nbtTags; - } - - /** - * Reads this GasStack's data from a defined tag compound. - * @param nbtTags - tag compound to read from - */ - public void read(NBTTagCompound nbtTags) - { - type = Gas.readFromNBT(nbtTags); - amount = nbtTags.getInteger("amount"); - } - - /** - * Returns the GasStack stored in the defined tag compound, or null if it doesn't exist. - * @param nbtTags - tag compound to read from - * @return GasStack stored in the tag compound - */ - public static GasStack readFromNBT(NBTTagCompound nbtTags) - { - if(nbtTags == null || nbtTags.hasNoTags()) - { - return null; - } - - final GasStack stack = new GasStack(); - stack.read(nbtTags); - - if(stack.getGas() == null || stack.amount <= 0) - { - return null; - } - - return stack; - } - - /** - * Returns a copied form of this GasStack. - * @return copied GasStack - */ - public GasStack copy() - { - return new GasStack(type, amount); - } - - /** - * Whether or not this GasStack's gas type is equal to the other defined GasStack. - * @param stack - GasStack to check - * @return if the GasStacks contain the same gas type - */ - public boolean isGasEqual(GasStack stack) - { - return stack != null && getGas() == stack.getGas(); - } - - @Override - public String toString() - { - return "[" + type + ", " + amount + "]"; - } - - @Override - public int hashCode() - { - return type == null ? 0 : type.getID(); - } -} diff --git a/src/api/java/mekanism/api/gas/GasTank.java b/src/api/java/mekanism/api/gas/GasTank.java deleted file mode 100644 index 69b7a3c..0000000 --- a/src/api/java/mekanism/api/gas/GasTank.java +++ /dev/null @@ -1,256 +0,0 @@ -package mekanism.api.gas; - -import net.minecraft.nbt.NBTTagCompound; - -/** - * An optional way of managing and/or storing gasses. Would be very useful in TileEntity and Entity gas storage. - * @author aidancbrady - * - */ -public class GasTank -{ - public GasStack stored; - - private int maxGas; - - private GasTank() - { - } - - /** - * Creates a tank with a defined capacity. - * @param max - the maximum amount of gas this GasTank can hold - */ - public GasTank(int max) - { - maxGas = max; - } - - /** - * Sets this tank's GasStack value to a new value. Will cap the amount to this GasTank's capacity. - * @param stack - value to set this tank's GasStack value to - */ - public void setGas(GasStack stack) - { - stored = stack; - - if(stored != null) - { - stored.amount = Math.min(getMaxGas(), stored.amount); - } - } - - /** - * Draws a specified amount of gas out of this tank. - * @param amount - amount to draw - * @param doDraw - if the gas should actually be removed from this tank - * @return gas taken from this GasTank as a GasStack value - */ - public GasStack draw(int amount, boolean doDraw) - { - if(stored == null || amount <= 0) - { - return null; - } - - final GasStack ret = new GasStack(getGas().getGas(), - Math.min(getStored(), amount)); - - if(ret.amount > 0) - { - if(doDraw) - { - stored.amount -= ret.amount; - - if(stored.amount <= 0) - { - stored = null; - } - } - - return ret; - } - - return null; - } - - /** - * Adds a specified amount of gas to this tank. - * @param amount - the GasStack for this tank to receive - * @param doReceive - if the gas should actually be added to this tank - * @return the amount of gas accepted by this tank - */ - public int receive(GasStack amount, boolean doReceive) - { - if(amount == null || (stored != null && !(stored.amount != getMaxGas() && stored.isGasEqual(amount)))) - { - return 0; - } - - final int toFill = Math.min(getMaxGas() - getStored(), amount.amount); - - if(doReceive) - { - if(stored == null) - { - stored = amount.copy().withAmount(getStored() + toFill); - } - else - { - stored.amount = Math.min(getMaxGas(), getStored() + amount.amount); - } - } - - return toFill; - } - - /** - * If this GasTank can receive the specified type of gas. Will return false if this tank does not need anymore gas. - * @param gas - gas to check - * @return if this GasTank can accept the defined gas - */ - public boolean canReceive(Gas gas) - { - if(getNeeded() == 0 || stored != null && (gas != null && gas != stored.getGas())) - { - return false; - } - - return true; - } - - /** - * If this GasTank can receive the specified type of gas. Will return TRUE if this tank does not need anymore gas. - * @param gas - gas to check - * @return if this GasTank can accept the defined gas - */ - public boolean canReceiveType(Gas gas) - { - if(stored != null && (gas != null && gas != stored.getGas())) - { - return false; - } - - return true; - } - - /** - * If this GasTank can be drawn of the specified type of gas. Will return false if this tank does not contain any gas. - * @param gas - gas to check - * @return if this GasTank can be drawn of the defined gas - */ - public boolean canDraw(Gas gas) - { - if(stored == null || (gas != null && gas != stored.getGas())) - { - return false; - } - - return true; - } - - /** - * Gets the amount of gas needed by this GasTank. - * @return - */ - public int getNeeded() - { - return getMaxGas() - getStored(); - } - - /** - * Gets the maximum amount of gas this tank can hold. - * @return - max gas - */ - public int getMaxGas() - { - return maxGas; - } - - /** - * Sets the maximum amount of gas this tank can hold - */ - public void setMaxGas(int capacity) - { - maxGas = capacity; - } - - /** - * Gets the GasStack held by this GasTank. - * @return - GasStakc held by this tank - */ - public GasStack getGas() - { - return stored; - } - - /** - * Gets the type of gas currently stored in this GasTank. - * @return gas type contained - */ - public Gas getGasType() - { - return stored != null ? stored.getGas() : null; - } - - /** - * Gets the amount of gas stored by this GasTank. - * @return amount of gas stored - */ - public int getStored() - { - return stored != null ? stored.amount : 0; - } - - /** - * Writes this tank to a defined tag compound. - * @param nbtTags - tag compound to write to - * @return tag compound with this tank's data - */ - public NBTTagCompound write(NBTTagCompound nbtTags) - { - if(stored != null && stored.getGas() != null) - { - nbtTags.setTag("stored", stored.write(new NBTTagCompound())); - } - - nbtTags.setInteger("maxGas", maxGas); - - return nbtTags; - } - - /** - * Reads this tank's data from a defined tag compound. - * @param nbtTags - tag compound to read from - */ - public void read(NBTTagCompound nbtTags) - { - if(nbtTags.hasKey("stored")) - { - stored = GasStack.readFromNBT(nbtTags.getCompoundTag("stored")); - } - - if(nbtTags.hasKey("maxGas") && nbtTags.getInteger("maxGas") != 0) - { - maxGas = nbtTags.getInteger("maxGas"); - } - } - - /** - * Returns the tank stored in the defined tag compound, or null if it doesn't exist. - * @param nbtTags - tag compound to read from - * @return tank stored in the tag compound - */ - public static GasTank readFromNBT(NBTTagCompound nbtTags) - { - if(nbtTags == null || nbtTags.hasNoTags()) - { - return null; - } - - final GasTank tank = new GasTank(); - tank.read(nbtTags); - - return tank; - } -} diff --git a/src/api/java/mekanism/api/gas/GasTransmission.java b/src/api/java/mekanism/api/gas/GasTransmission.java deleted file mode 100644 index a714af0..0000000 --- a/src/api/java/mekanism/api/gas/GasTransmission.java +++ /dev/null @@ -1,181 +0,0 @@ -package mekanism.api.gas; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import mekanism.api.Coord4D; -import mekanism.api.transmitters.ITransmitterTile; -import mekanism.api.transmitters.TransmissionType; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; -import net.minecraftforge.common.util.ForgeDirection; - -/** - * A handy class containing several utilities for efficient gas transfer. - * @author AidanBrady - * - */ -public final class GasTransmission -{ - /** - * Gets all the acceptors around a tile entity. - * @param tileEntity - center tile entity - * @return array of IGasAcceptors - */ - public static IGasHandler[] getConnectedAcceptors(TileEntity tileEntity) - { - final IGasHandler[] acceptors = new IGasHandler[] {null, null, null, null, null, null}; - - for(final ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS) - { - final TileEntity acceptor = Coord4D.get(tileEntity).getFromSide(orientation).getTileEntity(tileEntity.getWorldObj()); - - if(acceptor instanceof IGasHandler) - { - acceptors[orientation.ordinal()] = (IGasHandler) acceptor; - } - } - - return acceptors; - } - - /** - * Gets all the tube connections around a tile entity. - * @param tileEntity - center tile entity - * @return array of ITubeConnections - */ - public static ITubeConnection[] getConnections(TileEntity tileEntity) - { - final ITubeConnection[] connections = new ITubeConnection[] {null, null, null, null, null, null}; - - for(final ForgeDirection orientation : ForgeDirection.VALID_DIRECTIONS) - { - final TileEntity connection = Coord4D.get(tileEntity).getFromSide(orientation).getTileEntity(tileEntity.getWorldObj()); - - if(canConnect(connection, orientation)) - { - connections[orientation.ordinal()] = (ITubeConnection) connection; - } - } - - return connections; - } - - /** - * Whether or not a TileEntity can connect to a specified tile on a specified side. - * @param tileEntity - TileEntity to attempt connection to - * @param side - side to attempt connection on - * @return if this tile and side are connectable - */ - public static boolean canConnect(TileEntity tileEntity, ForgeDirection side) - { - if(tileEntity instanceof ITubeConnection && (!(tileEntity instanceof ITransmitterTile) || TransmissionType.checkTransmissionType(((ITransmitterTile) tileEntity).getTransmitter(), TransmissionType.GAS))) - { - if(((ITubeConnection) tileEntity).canTubeConnect(side.getOpposite())) - { - return true; - } - } - - return false; - } - - /** - * Removes a specified amount of gas from an IGasItem. - * @param itemStack - ItemStack of the IGasItem - * @param type - type of gas to remove from the IGasItem, null if it doesn't matter - * @param amount - amount of gas to remove from the ItemStack - * @return the GasStack removed by the IGasItem - */ - public static GasStack removeGas(ItemStack itemStack, Gas type, int amount) - { - if(itemStack != null && itemStack.getItem() instanceof IGasItem) - { - final IGasItem item = (IGasItem) itemStack.getItem(); - - if(type != null && item.getGas(itemStack) != null && item.getGas(itemStack).getGas() != type || !item.canProvideGas(itemStack, type)) - { - return null; - } - - return item.removeGas(itemStack, amount); - } - - return null; - } - - /** - * Adds a specified amount of gas to an IGasItem. - * @param itemStack - ItemStack of the IGasItem - * @param stack - stack to add to the IGasItem - * @return amount of gas accepted by the IGasItem - */ - public static int addGas(ItemStack itemStack, GasStack stack) - { - if(itemStack != null && itemStack.getItem() instanceof IGasItem && ((IGasItem) itemStack.getItem()).canReceiveGas(itemStack, stack.getGas())) - { - return ((IGasItem) itemStack.getItem()).addGas(itemStack, stack.copy()); - } - - return 0; - } - - /** - * Emits gas from a central block by splitting the received stack among the sides given. - * @param sides - the list of sides to output from - * @param stack - the stack to output - * @param from - the TileEntity to output from - * @return the amount of gas emitted - */ - public static int emit(List<ForgeDirection> sides, GasStack stack, TileEntity from) - { - if(stack == null) - { - return 0; - } - - final List<IGasHandler> availableAcceptors = new ArrayList<IGasHandler>(); - final IGasHandler[] possibleAcceptors = getConnectedAcceptors(from); - - for(int i = 0; i < possibleAcceptors.length; i++) - { - final IGasHandler handler = possibleAcceptors[i]; - - if(handler != null && handler.canReceiveGas(ForgeDirection.getOrientation(i).getOpposite(), stack.getGas())) - { - availableAcceptors.add(handler); - } - } - - Collections.shuffle(availableAcceptors); - - int toSend = stack.amount; - final int prevSending = toSend; - - if(!availableAcceptors.isEmpty()) - { - final int divider = availableAcceptors.size(); - int remaining = toSend % divider; - final int sending = (toSend - remaining) / divider; - - for(final IGasHandler acceptor : availableAcceptors) - { - int currentSending = sending; - - if(remaining > 0) - { - currentSending++; - remaining--; - } - - final ForgeDirection dir = ForgeDirection.getOrientation(Arrays.asList(possibleAcceptors).indexOf(acceptor)).getOpposite(); - toSend -= acceptor.receiveGas(dir, new GasStack(stack.getGas(), - currentSending), true); - } - } - - return prevSending - toSend; - } -} diff --git a/src/api/java/mekanism/api/gas/IGasHandler.java b/src/api/java/mekanism/api/gas/IGasHandler.java deleted file mode 100644 index e069523..0000000 --- a/src/api/java/mekanism/api/gas/IGasHandler.java +++ /dev/null @@ -1,47 +0,0 @@ -package mekanism.api.gas; - -import net.minecraftforge.common.util.ForgeDirection; - -/** - * Implement this if your tile entity accepts gas from an external source. - * @author AidanBrady - * - */ -public interface IGasHandler -{ - /** - * Transfer a certain amount of gas to this block. - * @param stack - gas to add - * @return gas added - */ - public int receiveGas(ForgeDirection side, GasStack stack, boolean doTransfer); - - @Deprecated - public int receiveGas(ForgeDirection side, GasStack stack); - - /** - * Draws a certain amount of gas from this block. - * @param amount - amount to draw - * @return gas drawn - */ - public GasStack drawGas(ForgeDirection side, int amount, boolean doTransfer); - - @Deprecated - public GasStack drawGas(ForgeDirection side, int amount); - - /** - * Whether or not this block can accept gas from a certain side. - * @param side - side to check - * @param type - type of gas to check - * @return if block accepts gas - */ - public boolean canReceiveGas(ForgeDirection side, Gas type); - - /** - * Whether or not this block can be drawn of gas from a certain side. - * @param side - side to check - * @param type - type of gas to check - * @return if block can be drawn of gas - */ - public boolean canDrawGas(ForgeDirection side, Gas type); -} diff --git a/src/api/java/mekanism/api/gas/IGasItem.java b/src/api/java/mekanism/api/gas/IGasItem.java deleted file mode 100644 index f95baa3..0000000 --- a/src/api/java/mekanism/api/gas/IGasItem.java +++ /dev/null @@ -1,81 +0,0 @@ -package mekanism.api.gas; - -import net.minecraft.item.ItemStack; - -/** - * Implement this in your item class if it can store or transfer certain gasses. - * @author AidanBrady - * - */ -public interface IGasItem -{ - /** - * Gets the rate of transfer this item can handle. - * @return - */ - public int getRate(ItemStack itemstack); - - /** - * Adds a defined amount of a certain gas to an item. - * @param itemstack - the itemstack to add gas to - * @param type - the type of gas to add - * @param amount - the amount of gas to add - * @return the gas that was accepted by the item - */ - public int addGas(ItemStack itemstack, GasStack stack); - - /** - * Removes the defined amount of a certain gas from the item. - * @param itemstack - the itemstack to remove gas from - * @param type - the type of gas to remove - * @param amount - the amount of gas to remove - * @return the gas that was removed by the item - */ - public GasStack removeGas(ItemStack itemstack, int amount); - - /** - * Whether or not this storage tank be given a specific gas. - * @param itemstack - the itemstack to check - * @param type - the type of gas the tank can possibly receive - * @return if the item be charged - */ - public boolean canReceiveGas(ItemStack itemstack, Gas type); - - /** - * Whether or not this item can give a gas receiver a certain type of gas. - * @param itemstack - the itemstack to check - * @param type - the type of gas the tank can provide - * @return if the item can provide gas - */ - public boolean canProvideGas(ItemStack itemstack, Gas type); - - /** - * Get the gas of a declared type. - * @param type - type of gas - * @param data - ItemStack parameter if necessary - * @return gas stored - */ - public GasStack getGas(ItemStack itemstack); - - /** - * Set the gas of a declared type to a new amount; - * @param type - type of gas - * @param data - ItemStack parameter if necessary - * @param amount - amount to store - */ - public void setGas(ItemStack itemstack, GasStack stack); - - /** - * Gets the maximum amount of gas this tile entity can store. - * @param type - type of gas - * @param data - ItemStack parameter if necessary - * @return maximum gas - */ - public int getMaxGas(ItemStack itemstack); - - /** - * Returns whether or not this item contains metadata-specific subtypes instead of using metadata for damage display. - * @return if the item contains metadata-specific subtypes - */ - public boolean isMetadataSpecific(ItemStack itemstack); -} diff --git a/src/api/java/mekanism/api/gas/IGasTransmitter.java b/src/api/java/mekanism/api/gas/IGasTransmitter.java deleted file mode 100644 index 2785ac1..0000000 --- a/src/api/java/mekanism/api/gas/IGasTransmitter.java +++ /dev/null @@ -1,9 +0,0 @@ -package mekanism.api.gas; - -import mekanism.api.transmitters.IGridTransmitter; -import net.minecraft.tileentity.TileEntity; - -public interface IGasTransmitter extends IGridTransmitter<IGasHandler, GasNetwork> -{ - public boolean canTransferGasToTube(TileEntity tile); -} diff --git a/src/api/java/mekanism/api/gas/ITubeConnection.java b/src/api/java/mekanism/api/gas/ITubeConnection.java deleted file mode 100644 index b669fed..0000000 --- a/src/api/java/mekanism/api/gas/ITubeConnection.java +++ /dev/null @@ -1,18 +0,0 @@ -package mekanism.api.gas; - -import net.minecraftforge.common.util.ForgeDirection; - -/** - * Implement this if your block can connect to Pressurized Tubes. - * @author AidanBrady - * - */ -public interface ITubeConnection -{ - /** - * Whether or not a tube can connect to a certain orientation. - * @param side - orientation to check - * @return if a tube can connect - */ - public boolean canTubeConnect(ForgeDirection side); -} diff --git a/src/api/java/mekanism/api/gas/OreGas.java b/src/api/java/mekanism/api/gas/OreGas.java deleted file mode 100644 index c9d7ad8..0000000 --- a/src/api/java/mekanism/api/gas/OreGas.java +++ /dev/null @@ -1,38 +0,0 @@ -package mekanism.api.gas; - -import net.minecraft.util.StatCollector; - -public class OreGas extends Gas -{ - private final String oreName; - private OreGas cleanGas; - - public OreGas(String s, String name) - { - super(s); - - oreName = name; - } - - public boolean isClean() - { - return getCleanGas() == null; - } - - public OreGas getCleanGas() - { - return cleanGas; - } - - public OreGas setCleanGas(OreGas gas) - { - cleanGas = gas; - - return this; - } - - public String getOreName() - { - return StatCollector.translateToLocal(oreName); - } -} diff --git a/src/api/java/mekanism/api/gas/package-info.java b/src/api/java/mekanism/api/gas/package-info.java deleted file mode 100644 index 2a6464c..0000000 --- a/src/api/java/mekanism/api/gas/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|gas") -package mekanism.api.gas; - -import cpw.mods.fml.common.API; - diff --git a/src/api/java/mekanism/api/infuse/InfuseObject.java b/src/api/java/mekanism/api/infuse/InfuseObject.java deleted file mode 100644 index de9005e..0000000 --- a/src/api/java/mekanism/api/infuse/InfuseObject.java +++ /dev/null @@ -1,21 +0,0 @@ -package mekanism.api.infuse; - -/** - * InfuseObject - an object associated with an ItemStack that can modify a Metallurgic Infuser's internal infuse. - * @author AidanBrady - * - */ -public class InfuseObject -{ - /** The type of infuse this item stores */ - public InfuseType type; - - /** How much infuse this item stores */ - public int stored; - - public InfuseObject(InfuseType infusion, int i) - { - type = infusion; - stored = i; - } -} diff --git a/src/api/java/mekanism/api/infuse/InfuseRegistry.java b/src/api/java/mekanism/api/infuse/InfuseRegistry.java deleted file mode 100644 index 6916878..0000000 --- a/src/api/java/mekanism/api/infuse/InfuseRegistry.java +++ /dev/null @@ -1,113 +0,0 @@ -package mekanism.api.infuse; - -import java.util.HashMap; -import java.util.Map; - -import net.minecraft.item.ItemStack; - -/** - * Use this class to add a new object that registers as an infuse object. - * @author AidanBrady - * - */ -public class InfuseRegistry -{ - /** The (private) map of ItemStacks and their related InfuseObjects. */ - private static Map<ItemStack, InfuseObject> infuseObjects = new HashMap<ItemStack, InfuseObject>(); - - /** The (private) map of infuse names and their corresponding InfuseTypes. */ - private static Map<String, InfuseType> infuseTypes = new HashMap<String, InfuseType>(); - - /** - * Registers an InfuseType into the registry. Call this in PreInit! - * @param infuse - */ - public static void registerInfuseType(InfuseType infuse) - { - if(infuseTypes.containsKey(infuse.name)) - { - return; - } - - infuseTypes.put(infuse.name, infuse); - } - - /** - * Gets an InfuseType from it's name, or null if it doesn't exist. - * @param name - the name of the InfuseType to get - * @return the name's corresponding InfuseType - */ - public static InfuseType get(String name) - { - if(name.equals("null")) - { - return null; - } - - return infuseTypes.get(name); - } - - /** - * Whether or not the registry contains a correspondent InfuseType to a name. - * @param name - the name to check - * @return if the name has a coorespondent InfuseType - */ - public static boolean contains(String name) - { - return get(name) != null; - } - - /** - * Registers a block or item that serves as an infuse object. An infuse object will store a certain type and amount of infuse, - * and will deliver this amount to the Metallurgic Infuser's buffer of infuse. The item's stack size will be decremented when - * it is placed in the Metallurgic Infuser's infuse slot, and the machine can accept the type and amount of infuse stored in the - * object. - * @param itemStack - stack the infuse object is linked to -- stack size is ignored - * @param infuseObject - the infuse object with the type and amount data - */ - public static void registerInfuseObject(ItemStack itemStack, InfuseObject infuseObject) - { - if(getObject(itemStack) != null) - { - return; - } - - infuseObjects.put(itemStack, infuseObject); - } - - /** - * Gets the InfuseObject data from an ItemStack. - * @param itemStack - the ItemStack to check - * @return the ItemStack's InfuseObject - */ - public static InfuseObject getObject(ItemStack itemStack) - { - for(final Map.Entry<ItemStack, InfuseObject> obj : infuseObjects.entrySet()) - { - if(itemStack.isItemEqual(obj.getKey())) - { - return obj.getValue(); - } - } - - return null; - } - - /** - * Gets the private map for InfuseObjects. - * @return private InfuseObject map - */ - public static final Map<ItemStack, InfuseObject> getObjectMap() - { - return infuseObjects; - } - - /** - * Gets the private map for InfuseTypes. - * @return private InfuseType map - */ - public static final Map<String, InfuseType> getInfuseMap() - { - return infuseTypes; - } -} diff --git a/src/api/java/mekanism/api/infuse/InfuseType.java b/src/api/java/mekanism/api/infuse/InfuseType.java deleted file mode 100644 index 76820a8..0000000 --- a/src/api/java/mekanism/api/infuse/InfuseType.java +++ /dev/null @@ -1,47 +0,0 @@ -package mekanism.api.infuse; - -import net.minecraft.util.ResourceLocation; -import net.minecraft.util.StatCollector; - -/** - * The types of infuse currently available in Mekanism. - * @author AidanBrady - * - */ -public final class InfuseType -{ - /** The name of this infusion */ - public String name; - - /** The location of this infuse's GUI texture */ - public ResourceLocation texture; - - /** The infuse's GUI texture X offset. */ - public int texX; - - /** The infuse's GUI texture Y offset. */ - public int texY; - - /** The unlocalized name of this type. */ - public String unlocalizedName; - - public InfuseType(String s, ResourceLocation location, int x, int y) - { - name = s; - texture = location; - texX = x; - texY = y; - } - - public InfuseType setUnlocalizedName(String name) - { - unlocalizedName = name; - - return this; - } - - public String getLocalizedName() - { - return StatCollector.translateToLocal(unlocalizedName); - } -} diff --git a/src/api/java/mekanism/api/infuse/package-info.java b/src/api/java/mekanism/api/infuse/package-info.java deleted file mode 100644 index a826ca2..0000000 --- a/src/api/java/mekanism/api/infuse/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|infuse") -package mekanism.api.infuse; - -import cpw.mods.fml.common.API; - diff --git a/src/api/java/mekanism/api/lasers/ILaserReceptor.java b/src/api/java/mekanism/api/lasers/ILaserReceptor.java deleted file mode 100644 index 641f3ca..0000000 --- a/src/api/java/mekanism/api/lasers/ILaserReceptor.java +++ /dev/null @@ -1,10 +0,0 @@ -package mekanism.api.lasers; - -import net.minecraftforge.common.util.ForgeDirection; - -public interface ILaserReceptor -{ - public void receiveLaserEnergy(double energy, ForgeDirection side); - - public boolean canLasersDig(); -} diff --git a/src/api/java/mekanism/api/lasers/package-info.java b/src/api/java/mekanism/api/lasers/package-info.java deleted file mode 100644 index 957b64f..0000000 --- a/src/api/java/mekanism/api/lasers/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|laser") -package mekanism.api.lasers; - -import cpw.mods.fml.common.API; - diff --git a/src/api/java/mekanism/api/package-info.java b/src/api/java/mekanism/api/package-info.java deleted file mode 100644 index f515694..0000000 --- a/src/api/java/mekanism/api/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|core") -package mekanism.api; - -import cpw.mods.fml.common.API; - diff --git a/src/api/java/mekanism/api/reactor/IFusionReactor.java b/src/api/java/mekanism/api/reactor/IFusionReactor.java deleted file mode 100644 index 33d474c..0000000 --- a/src/api/java/mekanism/api/reactor/IFusionReactor.java +++ /dev/null @@ -1,65 +0,0 @@ -package mekanism.api.reactor; - -import mekanism.api.IHeatTransfer; -import mekanism.api.gas.GasTank; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidTank; - -public interface IFusionReactor extends IHeatTransfer -{ - public void addTemperatureFromEnergyInput(double energyAdded); - - public void simulate(); - - public FluidTank getWaterTank(); - - public FluidTank getSteamTank(); - - public GasTank getDeuteriumTank(); - - public GasTank getTritiumTank(); - - public GasTank getFuelTank(); - - public double getBufferedEnergy(); - - public void setBufferedEnergy(double energy); - - public double getPlasmaTemp(); - - public void setPlasmaTemp(double temp); - - public double getCaseTemp(); - - public void setCaseTemp(double temp); - - public double getBufferSize(); - - public void formMultiblock(); - - public boolean isFormed(); - - public void setInjectionRate(int rate); - - public int getInjectionRate(); - - public boolean isBurning(); - - public void setBurning(boolean burn); - - public int getMinInjectionRate(boolean active); - - public double getMaxPlasmaTemperature(boolean active); - - public double getMaxCasingTemperature(boolean active); - - public double getIgnitionTemperature(boolean active); - - public double getPassiveGeneration(boolean active, boolean current); - - public int getSteamPerTick(boolean current); - - public void updateTemperatures(); - - public ItemStack[] getInventory(); -} diff --git a/src/api/java/mekanism/api/reactor/INeutronCapture.java b/src/api/java/mekanism/api/reactor/INeutronCapture.java deleted file mode 100644 index 6171a7f..0000000 --- a/src/api/java/mekanism/api/reactor/INeutronCapture.java +++ /dev/null @@ -1,6 +0,0 @@ -package mekanism.api.reactor; - -public interface INeutronCapture extends IReactorBlock -{ - public int absorbNeutrons(int neutrons); -} diff --git a/src/api/java/mekanism/api/reactor/IReactorBlock.java b/src/api/java/mekanism/api/reactor/IReactorBlock.java deleted file mode 100644 index 96d161b..0000000 --- a/src/api/java/mekanism/api/reactor/IReactorBlock.java +++ /dev/null @@ -1,11 +0,0 @@ -package mekanism.api.reactor; - -public interface IReactorBlock -{ - public boolean isFrame(); - - public void setReactor(IFusionReactor reactor); - - public IFusionReactor getReactor(); - -} diff --git a/src/api/java/mekanism/api/reactor/package-info.java b/src/api/java/mekanism/api/reactor/package-info.java deleted file mode 100644 index 6f11811..0000000 --- a/src/api/java/mekanism/api/reactor/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|reactor") -package mekanism.api.reactor; - -import cpw.mods.fml.common.API; - diff --git a/src/api/java/mekanism/api/recipe/RecipeHelper.java b/src/api/java/mekanism/api/recipe/RecipeHelper.java deleted file mode 100644 index 8884d44..0000000 --- a/src/api/java/mekanism/api/recipe/RecipeHelper.java +++ /dev/null @@ -1,372 +0,0 @@ -package mekanism.api.recipe; - -import java.lang.reflect.Method; - -import mekanism.api.gas.GasStack; -import mekanism.api.infuse.InfuseType; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -/** - * SET TO BE REMOVED NEXT MINOR MEKANISM VERSION, PLEASE USE IMC INSTEAD. - * Use this handy class to add recipes to Mekanism machinery. - * @author AidanBrady - * - */ -@Deprecated -public final class RecipeHelper -{ - /** - * Add an Enrichment Chamber recipe. - * @param input - input ItemStack - * @param output - output ItemStack - */ - public static void addEnrichmentChamberRecipe(ItemStack input, ItemStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addEnrichmentChamberRecipe", ItemStack.class, ItemStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add an Osmium Compressor recipe. - * @param input - input ItemStack - * @param output - output ItemStack - */ - public static void addOsmiumCompressorRecipe(ItemStack input, ItemStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addOsmiumCompressorRecipe", ItemStack.class, ItemStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Combiner recipe. - * @param input - input ItemStack - * @param output - output ItemStack - */ - public static void addCombinerRecipe(ItemStack input, ItemStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addCombinerRecipe", ItemStack.class, ItemStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Crusher recipe. - * @param input - input ItemStack - * @param output - output ItemStack - */ - public static void addCrusherRecipe(ItemStack input, ItemStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addCrusherRecipe", ItemStack.class, ItemStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Purification Chamber recipe. - * @param input - input ItemStack - * @param output - output ItemStack - */ - public static void addPurificationChamberRecipe(ItemStack input, ItemStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addPurificationChamberRecipe", ItemStack.class, ItemStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Chemical Oxidizer recipe. - * @param input - input ItemStack - * @param output - output GasStack - */ - public static void addChemicalOxidizerRecipe(ItemStack input, GasStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addChemicalOxidizerRecipe", ItemStack.class, GasStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Chemical Infuser recipe. - * @param leftInput - left input GasStack - * @param rightInput - right input GasStack - * @param output - output GasStack - */ - public static void addChemicalInfuserRecipe(GasStack leftInput, GasStack rightInput, GasStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addChemicalInfuserRecipe", GasStack.class, GasStack.class, GasStack.class); - m.invoke(null, leftInput, rightInput, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Precision Sawmill recipe. - * @param input - input ItemStack - * @param primaryOutput - guaranteed output - * @param secondaryOutput - possible extra output - * @param chance - probability of obtaining extra output - */ - public static void addPrecisionSawmillRecipe(ItemStack input, ItemStack primaryOutput, ItemStack secondaryOutput, double chance) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addPrecisionSawmillRecipe", ItemStack.class, ItemStack.class, ItemStack.class, Double.TYPE); - m.invoke(null, input, primaryOutput, secondaryOutput, chance); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Precision Sawmill recipe with no chance output - * @param input - input ItemStack - * @param primaryOutput - guaranteed output - */ - public static void addPrecisionSawmillRecipe(ItemStack input, ItemStack primaryOutput) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addPrecisionSawmillRecipe", ItemStack.class, ItemStack.class); - m.invoke(null, input, primaryOutput); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Chemical Injection Chamber recipe. - * @param input - input AdvancedInput - * @param output - output ItemStack - */ - public static void addChemicalInjectionChamberRecipe(ItemStack input, String gasName, ItemStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addChemicalInjectionChamberRecipe", ItemStack.class, String.class, ItemStack.class); - m.invoke(null, input, gasName, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add an Electrolytic Separator recipe. - * @param input - input FluidStack - * @param energy - required energy - * @param leftOutput - left output GasStack - * @param rightOutput - right output GasStack - */ - public static void addElectrolyticSeparatorRecipe(FluidStack input, double energy, GasStack leftOutput, GasStack rightOutput) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addElectrolyticSeparatorRecipe", FluidStack.class, Double.TYPE, GasStack.class, GasStack.class); - m.invoke(null, input, energy, leftOutput, rightOutput); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Chemical Dissolution Chamber recipe. - * @param input - input ItemStack - * @param output - output GasStack - */ - public static void addChemicalDissolutionChamberRecipe(ItemStack input, GasStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addChemicalDissolutionChamberRecipe", ItemStack.class, GasStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Chemical Washer recipe. - * @param input - input GasStack - * @param output - output GasStack - */ - public static void addChemicalWasherRecipe(GasStack input, GasStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addChemicalWasherRecipe", GasStack.class, GasStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Chemical Crystallizer recipe. - * @param input - input GasStack - * @param output - output ItemStack - */ - public static void addChemicalCrystallizerRecipe(GasStack input, ItemStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addChemicalCrystallizerRecipe", GasStack.class, ItemStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Metallurgic Infuser recipe. - * @param infuse - which Infuse to use - * @param amount - how much Infuse to use - * @param input - input ItemStack - * @param output - output ItemStack - */ - public static void addMetallurgicInfuserRecipe(InfuseType infuse, int amount, ItemStack input, ItemStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addMetallurgicInfuserRecipe", InfuseType.class, Integer.TYPE, ItemStack.class, ItemStack.class); - m.invoke(null, infuse, amount, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Pressurized Reaction Chamber recipe. - * @param inputSolid - input ItemStack - * @param inputFluid - input FluidStack - * @param inputGas - input GasStack - * @param outputSolid - output ItemStack - * @param outputGas - output GasStack - * @param extraEnergy - extra energy needed by the recipe - * @param ticks - amount of ticks it takes for this recipe to complete - */ - public static void addPRCRecipe(ItemStack inputSolid, FluidStack inputFluid, GasStack inputGas, ItemStack outputSolid, GasStack outputGas, double extraEnergy, int ticks) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addPRCRecipe", ItemStack.class, FluidStack.class, GasStack.class, ItemStack.class, GasStack.class, Double.TYPE, Integer.TYPE); - m.invoke(null, inputSolid, inputFluid, inputGas, outputSolid, outputGas, extraEnergy, ticks); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Solar Evaporation Plant recipe. - * @param input - input GasStack - * @param output - output GasStack - */ - public static void addSolarEvaporationRecipe(FluidStack input, FluidStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addSolarEvaporationRecipe", FluidStack.class, FluidStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } - - /** - * Add a Solar Neutron Activator recipe. - * @param input - input GasStack - * @param output - output GasStack - */ - public static void addSolarNeutronRecipe(GasStack input, GasStack output) - { - try - { - final Class recipeClass = Class.forName("mekanism.common.recipe.RecipeHandler"); - final Method m = recipeClass.getMethod("addSolarEvaporationRecipe", GasStack.class, GasStack.class); - m.invoke(null, input, output); - } - catch(final Exception e) - { - System.err.println("Error while adding recipe: " + e.getMessage()); - } - } -} diff --git a/src/api/java/mekanism/api/recipe/package-info.java b/src/api/java/mekanism/api/recipe/package-info.java deleted file mode 100644 index 060e5ab..0000000 --- a/src/api/java/mekanism/api/recipe/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|recipe") -package mekanism.api.recipe; - -import cpw.mods.fml.common.API; - diff --git a/src/api/java/mekanism/api/transmitters/DynamicNetwork.java b/src/api/java/mekanism/api/transmitters/DynamicNetwork.java deleted file mode 100644 index 39932c7..0000000 --- a/src/api/java/mekanism/api/transmitters/DynamicNetwork.java +++ /dev/null @@ -1,498 +0,0 @@ -package mekanism.api.transmitters; - -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.Map.Entry; -import java.util.Set; - -import mekanism.api.Coord4D; -import mekanism.api.IClientTicker; -import mekanism.api.Range4D; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.world.World; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.util.ForgeDirection; - -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.Event; - -public abstract class DynamicNetwork<A, N extends DynamicNetwork<A, N>> implements IClientTicker, INetworkDataHandler -{ - public LinkedHashSet<IGridTransmitter<A, N>> transmitters = Sets.newLinkedHashSet(); - public LinkedHashSet<IGridTransmitter<A, N>> transmittersToAdd = Sets.newLinkedHashSet(); - public LinkedHashSet<IGridTransmitter<A, N>> transmittersAdded = Sets.newLinkedHashSet(); - - public HashMap<Coord4D, A> possibleAcceptors = new HashMap<Coord4D, A>(); - public HashMap<Coord4D, EnumSet<ForgeDirection>> acceptorDirections = new HashMap<Coord4D, EnumSet<ForgeDirection>>(); - public HashMap<IGridTransmitter<A, N>, EnumSet<ForgeDirection>> changedAcceptors = Maps.newHashMap(); - - private final Set<DelayQueue> updateQueue = new LinkedHashSet<DelayQueue>(); - - protected Range4D packetRange = null; - - protected int capacity = 0; - protected double meanCapacity = 0; - - protected boolean needsUpdate = false; - protected int updateDelay = 0; - - protected boolean firstUpdate = true; - protected World worldObj = null; - - public void addNewTransmitters(Collection<IGridTransmitter<A, N>> newTransmitters) - { - transmittersToAdd.addAll(newTransmitters); - } - - public void commit() - { - if(!transmittersToAdd.isEmpty()) - { - for(final IGridTransmitter<A, N> transmitter : transmittersToAdd) - { - if(transmitter.isValid()) - { - if(worldObj == null) - { - worldObj = transmitter.world(); - } - - for(final ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) - { - updateTransmitterOnSide(transmitter, side); - } - - transmitter.setTransmitterNetwork((N) this); - absorbBuffer(transmitter); - transmitters.add(transmitter); - } - } - - updateCapacity(); - clampBuffer(); - queueClientUpdate(Lists.newArrayList(transmittersToAdd)); - transmittersToAdd.clear(); - } - - if(!changedAcceptors.isEmpty()) - { - for(final Entry<IGridTransmitter<A, N>, EnumSet<ForgeDirection>> entry : changedAcceptors.entrySet()) - { - final IGridTransmitter<A, N> transmitter = entry.getKey(); - - if(transmitter.isValid()) - { - final EnumSet<ForgeDirection> directionsChanged = entry.getValue(); - - for(final ForgeDirection side : directionsChanged) - { - updateTransmitterOnSide(transmitter, side); - } - } - } - - changedAcceptors.clear(); - } - } - - public void updateTransmitterOnSide(IGridTransmitter<A, N> transmitter, ForgeDirection side) - { - final A acceptor = transmitter.getAcceptor(side); - final Coord4D acceptorCoord = transmitter.coord().getFromSide(side); - final EnumSet<ForgeDirection> directions = acceptorDirections.get(acceptorCoord); - - if(acceptor != null) - { - possibleAcceptors.put(acceptorCoord, acceptor); - - if(directions != null) - { - directions.add(side.getOpposite()); - } - else - { - acceptorDirections.put(acceptorCoord, EnumSet.of(side.getOpposite())); - } - } - else - { - if(directions != null) - { - directions.remove(side.getOpposite()); - - if(directions.isEmpty()) - { - possibleAcceptors.remove(acceptorCoord); - acceptorDirections.remove(acceptorCoord); - } - } - else - { - possibleAcceptors.remove(acceptorCoord); - acceptorDirections.remove(acceptorCoord); - } - } - - } - - public abstract void absorbBuffer(IGridTransmitter<A, N> transmitter); - - public abstract void clampBuffer(); - - public void invalidate() - { - //Remove invalid transmitters first for share calculations - for(final Iterator<IGridTransmitter<A, N>> iter = transmitters.iterator(); iter.hasNext();) - { - final IGridTransmitter<A, N> transmitter = iter.next(); - - if(!transmitter.isValid()) - { - iter.remove(); - continue; - } - } - - //Clamp the new buffer - clampBuffer(); - - //Update all shares - for(final IGridTransmitter<A, N> transmitter : transmitters) - { - transmitter.updateShare(); - } - - //Now invalidate the transmitters - for(final IGridTransmitter<A, N> transmitter : transmitters) - { - invalidateTransmitter(transmitter); - } - - transmitters.clear(); - deregister(); - } - - public void invalidateTransmitter(IGridTransmitter<A, N> transmitter) - { - if(!worldObj.isRemote && transmitter.isValid()) - { - transmitter.takeShare(); - transmitter.setTransmitterNetwork(null); - TransmitterNetworkRegistry.registerOrphanTransmitter(transmitter); - } - } - - public void acceptorChanged(IGridTransmitter<A, N> transmitter, ForgeDirection side) - { - final EnumSet<ForgeDirection> directions = changedAcceptors.get(transmitter); - - if(directions != null) - { - directions.add(side); - } - else - { - changedAcceptors.put(transmitter, EnumSet.of(side)); - } - - TransmitterNetworkRegistry.registerChangedNetwork(this); - } - - public void adoptTransmittersAndAcceptorsFrom(N net) - { - for(final IGridTransmitter<A, N> transmitter : net.transmitters) - { - transmitter.setTransmitterNetwork((N) this); - transmitters.add(transmitter); - transmittersAdded.add(transmitter); - } - - possibleAcceptors.putAll(net.possibleAcceptors); - - for(final Entry<Coord4D, EnumSet<ForgeDirection>> entry : net.acceptorDirections.entrySet()) - { - final Coord4D coord = entry.getKey(); - - if(acceptorDirections.containsKey(coord)) - { - acceptorDirections.get(coord).addAll(entry.getValue()); - } - else - { - acceptorDirections.put(coord, entry.getValue()); - } - } - - } - - public Range4D getPacketRange() - { - if(packetRange == null) - { - return genPacketRange(); - } - - return packetRange; - } - - protected Range4D genPacketRange() - { - if(getSize() == 0) - { - deregister(); - return null; - } - - final IGridTransmitter<A, N> initTransmitter = transmitters.iterator().next(); - final Coord4D initCoord = initTransmitter.coord(); - - int minX = initCoord.xCoord; - int minY = initCoord.yCoord; - int minZ = initCoord.zCoord; - int maxX = initCoord.xCoord; - int maxY = initCoord.yCoord; - int maxZ = initCoord.zCoord; - - for(final IGridTransmitter transmitter : transmitters) - { - final Coord4D coord = transmitter.coord(); - - if(coord.xCoord < minX) - { - minX = coord.xCoord; - } - if(coord.yCoord < minY) - { - minY = coord.yCoord; - } - if(coord.zCoord < minZ) - { - minZ = coord.zCoord; - } - if(coord.xCoord > maxX) - { - maxX = coord.xCoord; - } - if(coord.yCoord > maxY) - { - maxY = coord.yCoord; - } - if(coord.zCoord > maxZ) - { - maxZ = coord.zCoord; - } - } - - return new Range4D(minX, minY, minZ, maxX, maxY, maxZ, - initTransmitter.world().provider.dimensionId); - } - - public void register() - { - if(FMLCommonHandler.instance().getEffectiveSide().isServer()) - { - TransmitterNetworkRegistry.getInstance().registerNetwork(this); - } - else - { - MinecraftForge.EVENT_BUS.post(new ClientTickUpdate(this, (byte) 1)); - } - } - - public void deregister() - { - transmitters.clear(); - - if(FMLCommonHandler.instance().getEffectiveSide().isServer()) - { - TransmitterNetworkRegistry.getInstance().removeNetwork(this); - } - else - { - MinecraftForge.EVENT_BUS.post(new ClientTickUpdate(this, (byte) 0)); - } - } - - public int getSize() - { - return transmitters.size(); - } - - public int getAcceptorSize() - { - return possibleAcceptors.size(); - } - - public synchronized void updateCapacity() - { - updateMeanCapacity(); - capacity = (int) meanCapacity * transmitters.size(); - } - - /** - * Override this if things can have variable capacity along the network. - * @return An 'average' value of capacity. Calculate it how you will. - */ - protected synchronized void updateMeanCapacity() - { - if(transmitters.size() > 0) - { - meanCapacity = transmitters.iterator().next().getCapacity(); - } - else - { - meanCapacity = 0; - } - } - - public int getCapacity() - { - return capacity; - } - - public World getWorld() - { - return worldObj; - } - - public abstract Set<A> getAcceptors(Object data); - - public void tick() - { - onUpdate(); - } - - public void onUpdate() - { - if(FMLCommonHandler.instance().getEffectiveSide().isServer()) - { - final Iterator<DelayQueue> i = updateQueue.iterator(); - - try - { - while(i.hasNext()) - { - final DelayQueue q = i.next(); - - if(q.delay > 0) - { - q.delay--; - } - else - { - transmittersAdded.addAll(transmitters); - updateDelay = 1; - i.remove(); - } - } - } - catch(final Exception e) - { - } - - if(updateDelay > 0) - { - updateDelay--; - - if(updateDelay == 0) - { - MinecraftForge.EVENT_BUS.post(new TransmittersAddedEvent( - this, firstUpdate, (Collection) transmittersAdded)); - firstUpdate = false; - transmittersAdded.clear(); - needsUpdate = true; - } - } - } - } - - @Override - public boolean needsTicks() - { - return getSize() > 0; - } - - @Override - public void clientTick() - { - } - - public void queueClientUpdate(Collection<IGridTransmitter<A, N>> newTransmitters) - { - transmittersAdded.addAll(newTransmitters); - updateDelay = 3; - } - - public static class TransmittersAddedEvent extends Event - { - public DynamicNetwork<?, ?> network; - public boolean newNetwork; - public Collection<IGridTransmitter> newTransmitters; - - public TransmittersAddedEvent(DynamicNetwork net, boolean newNet, Collection<IGridTransmitter> added) - { - network = net; - newNetwork = newNet; - newTransmitters = added; - } - } - - public static class ClientTickUpdate extends Event - { - public DynamicNetwork network; - public byte operation; /*0 remove, 1 add*/ - - public ClientTickUpdate(DynamicNetwork net, byte b) - { - network = net; - operation = b; - } - } - - public static class NetworkClientRequest extends Event - { - public TileEntity tileEntity; - - public NetworkClientRequest(TileEntity tile) - { - tileEntity = tile; - } - } - - public void addUpdate(EntityPlayer player) - { - updateQueue.add(new DelayQueue(player)); - } - - public static class DelayQueue - { - public EntityPlayer player; - public int delay; - - public DelayQueue(EntityPlayer p) - { - player = p; - delay = 5; - } - - @Override - public int hashCode() - { - return player.hashCode(); - } - - @Override - public boolean equals(Object o) - { - return o instanceof DelayQueue && ((DelayQueue) o).player.equals(this.player); - } - } -} diff --git a/src/api/java/mekanism/api/transmitters/IBlockableConnection.java b/src/api/java/mekanism/api/transmitters/IBlockableConnection.java deleted file mode 100644 index 1183975..0000000 --- a/src/api/java/mekanism/api/transmitters/IBlockableConnection.java +++ /dev/null @@ -1,10 +0,0 @@ -package mekanism.api.transmitters; - -import net.minecraftforge.common.util.ForgeDirection; - -public interface IBlockableConnection -{ - public boolean canConnectMutual(ForgeDirection side); - - public boolean canConnect(ForgeDirection side); -} diff --git a/src/api/java/mekanism/api/transmitters/IGridTransmitter.java b/src/api/java/mekanism/api/transmitters/IGridTransmitter.java deleted file mode 100644 index a184377..0000000 --- a/src/api/java/mekanism/api/transmitters/IGridTransmitter.java +++ /dev/null @@ -1,64 +0,0 @@ -package mekanism.api.transmitters; - -import java.util.Collection; - -import mekanism.api.Coord4D; -import net.minecraft.world.World; -import net.minecraftforge.common.util.ForgeDirection; - -public interface IGridTransmitter<A, N extends DynamicNetwork<A, N>> extends ITransmitter -{ - public boolean hasTransmitterNetwork(); - - /** - * Gets the network currently in use by this transmitter segment. - * @return network this transmitter is using - */ - public N getTransmitterNetwork(); - - /** - * Sets this transmitter segment's network to a new value. - * @param network - network to set to - */ - public void setTransmitterNetwork(N network); - - public int getTransmitterNetworkSize(); - - public int getTransmitterNetworkAcceptorSize(); - - public String getTransmitterNetworkNeeded(); - - public String getTransmitterNetworkFlow(); - - public String getTransmitterNetworkBuffer(); - - public double getTransmitterNetworkCapacity(); - - public int getCapacity(); - - public World world(); - - public Coord4D coord(); - - public Coord4D getAdjacentConnectableTransmitterCoord(ForgeDirection side); - - public A getAcceptor(ForgeDirection side); - - public boolean isValid(); - - public boolean isOrphan(); - - public void setOrphan(boolean orphaned); - - public N createEmptyNetwork(); - - public N mergeNetworks(Collection<N> toMerge); - - public N getExternalNetwork(Coord4D from); - - public void takeShare(); - - public void updateShare(); - - public Object getBuffer(); -} diff --git a/src/api/java/mekanism/api/transmitters/INetworkDataHandler.java b/src/api/java/mekanism/api/transmitters/INetworkDataHandler.java deleted file mode 100644 index 38cd637..0000000 --- a/src/api/java/mekanism/api/transmitters/INetworkDataHandler.java +++ /dev/null @@ -1,10 +0,0 @@ -package mekanism.api.transmitters; - -public interface INetworkDataHandler -{ - public String getNeededInfo(); - - public String getStoredInfo(); - - public String getFlowInfo(); -} diff --git a/src/api/java/mekanism/api/transmitters/ITransmitter.java b/src/api/java/mekanism/api/transmitters/ITransmitter.java deleted file mode 100644 index cddc76a..0000000 --- a/src/api/java/mekanism/api/transmitters/ITransmitter.java +++ /dev/null @@ -1,11 +0,0 @@ -package mekanism.api.transmitters; - -public interface ITransmitter -{ - /** - * Get the transmitter's transmission type - * - * @return TransmissionType this transmitter uses - */ - public TransmissionType getTransmissionType(); -} diff --git a/src/api/java/mekanism/api/transmitters/ITransmitterTile.java b/src/api/java/mekanism/api/transmitters/ITransmitterTile.java deleted file mode 100644 index 3940b71..0000000 --- a/src/api/java/mekanism/api/transmitters/ITransmitterTile.java +++ /dev/null @@ -1,6 +0,0 @@ -package mekanism.api.transmitters; - -public interface ITransmitterTile<A, N extends DynamicNetwork<A, N>> -{ - public IGridTransmitter<A, N> getTransmitter(); -} diff --git a/src/api/java/mekanism/api/transmitters/TransmissionType.java b/src/api/java/mekanism/api/transmitters/TransmissionType.java deleted file mode 100644 index 34aed37..0000000 --- a/src/api/java/mekanism/api/transmitters/TransmissionType.java +++ /dev/null @@ -1,75 +0,0 @@ -package mekanism.api.transmitters; - -import mekanism.api.gas.IGasTransmitter; -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.StatCollector; - -public enum TransmissionType -{ - ENERGY("EnergyNetwork", "Energy"), FLUID("FluidNetwork", "Fluids"), GAS("GasNetwork", "Gases"), ITEM("InventoryNetwork", "Items"), HEAT("HeatNetwork", "Heat"); - - private String name; - private String transmission; - - private TransmissionType(String n, String t) - { - name = n; - transmission = t; - } - - public String getName() - { - return name; - } - - public String getTransmission() - { - return transmission; - } - - public String localize() - { - return StatCollector.translateToLocal("transmission." + getTransmission()); - } - - public static boolean checkTransmissionType(ITransmitter sideTile, TransmissionType type) - { - return type.checkTransmissionType(sideTile); - } - - public static boolean checkTransmissionType(TileEntity tile1, TransmissionType type) - { - return checkTransmissionType(tile1, type, null); - } - - public static boolean checkTransmissionType(TileEntity tile1, TransmissionType type, TileEntity tile2) - { - return type.checkTransmissionType(tile1, tile2); - } - - public boolean checkTransmissionType(ITransmitter transmitter) - { - return transmitter.getTransmissionType() == this; - } - - public boolean checkTransmissionType(TileEntity sideTile, TileEntity currentTile) - { - if(sideTile instanceof ITransmitter) - { - if(((ITransmitter) sideTile).getTransmissionType() == this) - { - return true; - } - } - - if(this == GAS && currentTile instanceof IGasTransmitter) - { - if(((IGasTransmitter) currentTile).canTransferGasToTube(sideTile)) - { - return true; - } - } - - return false; - } -} diff --git a/src/api/java/mekanism/api/transmitters/TransmitterNetworkRegistry.java b/src/api/java/mekanism/api/transmitters/TransmitterNetworkRegistry.java deleted file mode 100644 index 4bf6a22..0000000 --- a/src/api/java/mekanism/api/transmitters/TransmitterNetworkRegistry.java +++ /dev/null @@ -1,294 +0,0 @@ -package mekanism.api.transmitters; - -import java.util.HashMap; -import java.util.HashSet; - -import mekanism.api.Coord4D; -import mekanism.api.MekanismAPI; -import net.minecraftforge.common.util.ForgeDirection; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -import cpw.mods.fml.common.FMLCommonHandler; -import cpw.mods.fml.common.eventhandler.SubscribeEvent; -import cpw.mods.fml.common.gameevent.TickEvent.Phase; -import cpw.mods.fml.common.gameevent.TickEvent.ServerTickEvent; -import cpw.mods.fml.relauncher.Side; - -public class TransmitterNetworkRegistry -{ - private static TransmitterNetworkRegistry INSTANCE = new TransmitterNetworkRegistry(); - private static boolean loaderRegistered = false; - - private final HashSet<DynamicNetwork> networks = Sets.newHashSet(); - private final HashSet<DynamicNetwork> networksToChange = Sets.newHashSet(); - - private final HashSet<IGridTransmitter> invalidTransmitters = Sets.newHashSet(); - private final HashMap<Coord4D, IGridTransmitter> orphanTransmitters = Maps.newHashMap(); - - private final Logger logger = LogManager.getLogger("MekanismTransmitters"); - - public static void initiate() - { - if(!loaderRegistered) - { - loaderRegistered = true; - - FMLCommonHandler.instance().bus().register(INSTANCE); - } - } - - public static void reset() - { - getInstance().networks.clear(); - getInstance().networksToChange.clear(); - getInstance().invalidTransmitters.clear(); - getInstance().orphanTransmitters.clear(); - } - - public static void invalidateTransmitter(IGridTransmitter transmitter) - { - getInstance().invalidTransmitters.add(transmitter); - } - - public static void registerOrphanTransmitter(IGridTransmitter transmitter) - { - getInstance().orphanTransmitters.put(transmitter.coord(), transmitter); - } - - public static void registerChangedNetwork(DynamicNetwork network) - { - getInstance().networksToChange.add(network); - } - - public static TransmitterNetworkRegistry getInstance() - { - return INSTANCE; - } - - public void registerNetwork(DynamicNetwork network) - { - networks.add(network); - } - - public void removeNetwork(DynamicNetwork network) - { - if(networks.contains(network)) - { - networks.remove(network); - } - } - - @SubscribeEvent - public void onTick(ServerTickEvent event) - { - if(event.phase == Phase.END && event.side == Side.SERVER) - { - tickEnd(); - } - } - - public void tickEnd() - { - removeInvalidTransmitters(); - - assignOrphans(); - - commitChanges(); - - for(final DynamicNetwork net : networks) - { - net.tick(); - } - } - - public void removeInvalidTransmitters() - { - if(MekanismAPI.debug && !invalidTransmitters.isEmpty()) - { - logger.info("Dealing with " + invalidTransmitters.size() + " invalid Transmitters"); - } - - for(final IGridTransmitter invalid : invalidTransmitters) - { - if(!(invalid.isOrphan() && invalid.isValid())) - { - final DynamicNetwork n = invalid.getTransmitterNetwork(); - - if(n != null) - { - n.invalidate(); - } - } - } - - invalidTransmitters.clear(); - } - - public void assignOrphans() - { - if(MekanismAPI.debug && !orphanTransmitters.isEmpty()) - { - logger.info("Dealing with " + orphanTransmitters.size() + " orphan Transmitters"); - } - - for(final IGridTransmitter orphanTransmitter : orphanTransmitters.values()) - { - final DynamicNetwork network = getNetworkFromOrphan(orphanTransmitter); - - if(network != null) - { - networksToChange.add(network); - network.register(); - } - } - - orphanTransmitters.clear(); - } - - public <A, N extends DynamicNetwork<A, N>> DynamicNetwork<A, N> getNetworkFromOrphan(IGridTransmitter<A, N> startOrphan) - { - if(startOrphan.isValid() && startOrphan.isOrphan()) - { - final OrphanPathFinder<A, N> finder = new OrphanPathFinder<A, N>( - startOrphan); - finder.start(); - N network; - - switch(finder.networksFound.size()) - { - case 0: - if(MekanismAPI.debug) - { - logger.info("No networks found. Creating new network for " + finder.connectedTransmitters.size() + " transmitters"); - } - - network = startOrphan.createEmptyNetwork(); - - break; - case 1: - if(MekanismAPI.debug) - { - logger.info("Adding " + finder.connectedTransmitters.size() + " transmitters to single found network"); - } - - network = finder.networksFound.iterator().next(); - - break; - default: - if(MekanismAPI.debug) - { - logger.info("Merging " + finder.networksFound.size() + " networks with " + finder.connectedTransmitters.size() + " new transmitters"); - } - - network = startOrphan.mergeNetworks(finder.networksFound); - } - - network.addNewTransmitters(finder.connectedTransmitters); - - return network; - } - - return null; - } - - public void commitChanges() - { - for(final DynamicNetwork network : networksToChange) - { - network.commit(); - } - - networksToChange.clear(); - } - - @Override - public String toString() - { - return "Network Registry:\n" + networks; - } - - public String[] toStrings() - { - final String[] strings = new String[networks.size()]; - int i = 0; - - for(final DynamicNetwork network : networks) - { - strings[i++] = network.toString(); - } - - return strings; - } - - public class OrphanPathFinder<A, N extends DynamicNetwork<A, N>> - { - public IGridTransmitter<A, N> startPoint; - - public HashSet<Coord4D> iterated = Sets.newHashSet(); - - public HashSet<IGridTransmitter<A, N>> connectedTransmitters = Sets.newHashSet(); - public HashSet<N> networksFound = Sets.newHashSet(); - - public OrphanPathFinder(IGridTransmitter<A, N> start) - { - startPoint = start; - } - - public void start() - { - iterate(startPoint.coord(), ForgeDirection.UNKNOWN); - } - - public void iterate(Coord4D from, ForgeDirection fromDirection) - { - if(iterated.contains(from)) - { - return; - } - - iterated.add(from); - - if(orphanTransmitters.containsKey(from)) - { - final IGridTransmitter<A, N> transmitter = orphanTransmitters.get(from); - - if(transmitter.isValid() && transmitter.isOrphan()) - { - connectedTransmitters.add(transmitter); - transmitter.setOrphan(false); - - for(final ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) - { - if(direction != fromDirection) - { - final Coord4D directionCoord = transmitter.getAdjacentConnectableTransmitterCoord(direction); - - if(!(directionCoord == null || iterated.contains(directionCoord))) - { - iterate(directionCoord, direction.getOpposite()); - } - } - } - } - } - else - { - addNetworkToIterated(from); - } - } - - public void addNetworkToIterated(Coord4D from) - { - final N net = startPoint.getExternalNetwork(from); - if(net != null) - { - networksFound.add(net); - } - } - } -} diff --git a/src/api/java/mekanism/api/transmitters/package-info.java b/src/api/java/mekanism/api/transmitters/package-info.java deleted file mode 100644 index e959a85..0000000 --- a/src/api/java/mekanism/api/transmitters/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|transmitter") -package mekanism.api.transmitters; - -import cpw.mods.fml.common.API; - diff --git a/src/api/java/mekanism/api/util/BlockInfo.java b/src/api/java/mekanism/api/util/BlockInfo.java deleted file mode 100644 index a0e349d..0000000 --- a/src/api/java/mekanism/api/util/BlockInfo.java +++ /dev/null @@ -1,37 +0,0 @@ -package mekanism.api.util; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemStack; - -public class BlockInfo -{ - public Block block; - public int meta; - - public BlockInfo(Block b, int j) - { - block = b; - meta = j; - } - - public static BlockInfo get(ItemStack stack) - { - return new BlockInfo(Block.getBlockFromItem(stack.getItem()), - stack.getItemDamage()); - } - - @Override - public boolean equals(Object obj) - { - return obj instanceof BlockInfo && ((BlockInfo) obj).block == block && ((BlockInfo) obj).meta == meta; - } - - @Override - public int hashCode() - { - int code = 1; - code = 31 * code + block.getUnlocalizedName().hashCode(); - code = 31 * code + meta; - return code; - } -} diff --git a/src/api/java/mekanism/api/util/ItemInfo.java b/src/api/java/mekanism/api/util/ItemInfo.java deleted file mode 100644 index 9a810b7..0000000 --- a/src/api/java/mekanism/api/util/ItemInfo.java +++ /dev/null @@ -1,36 +0,0 @@ -package mekanism.api.util; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemInfo -{ - public Item item; - public int meta; - - public ItemInfo(Item i, int j) - { - item = i; - meta = j; - } - - public static ItemInfo get(ItemStack stack) - { - return new ItemInfo(stack.getItem(), stack.getItemDamage()); - } - - @Override - public boolean equals(Object obj) - { - return obj instanceof ItemInfo && ((ItemInfo) obj).item == item && ((ItemInfo) obj).meta == meta; - } - - @Override - public int hashCode() - { - int code = 1; - code = 31 * code + System.identityHashCode(item); - code = 7 * code + meta; - return code; - } -} diff --git a/src/api/java/mekanism/api/util/ListUtils.java b/src/api/java/mekanism/api/util/ListUtils.java deleted file mode 100644 index 4637ae3..0000000 --- a/src/api/java/mekanism/api/util/ListUtils.java +++ /dev/null @@ -1,293 +0,0 @@ -package mekanism.api.util; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Set; - -public class ListUtils -{ - public static <V> List<V> inverse(List<V> list) - { - final List<V> toReturn = new ArrayList<V>(); - - for(int i = list.size() - 1; i >= 0; i--) - { - toReturn.add(list.get(i)); - } - - return toReturn; - } - - public static <V> List<V> cap(List<V> list, int cap) - { - List<V> toReturn = new ArrayList<V>(); - - if(list.size() <= cap) - { - toReturn = copy(list); - } - else - { - int count = 0; - - for(final V obj : list) - { - count++; - - toReturn.add(obj); - - if(count == cap) - { - break; - } - } - } - - return toReturn; - } - - public static <V> List<V> copy(List<V> list) - { - final List<V> toReturn = new ArrayList<V>(); - - for(final V obj : list) - { - toReturn.add(obj); - } - - return toReturn; - } - - public static <V> List<V> merge(List<V> listOne, List<V> listTwo) - { - final List<V> newList = new ArrayList<V>(); - - for(final V obj : listOne) - { - newList.add(obj); - } - - for(final V obj : listTwo) - { - newList.add(obj); - } - - return newList; - } - - public static <V> List<V> capRemains(List<V> list, int cap) - { - final List<V> toReturn = new ArrayList<V>(); - - if(list.size() <= cap) - { - return toReturn; - } - else - { - inverse(list); - - final int iterNeeded = list.size() - cap; - int count = 0; - - for(final V obj : list) - { - count++; - - toReturn.add(obj); - - if(count == iterNeeded) - { - break; - } - } - - return toReturn; - } - } - - public static <V> ArrayList<List<V>> split(List<V> list, int divide) - { - int remain = list.size() % divide; - final int size = (list.size() - remain) / divide; - - final ArrayList<List<V>> toReturn = new ArrayList<List<V>>(); - - for(int i = 0; i < divide; i++) - { - toReturn.add(i, new ArrayList<V>()); - } - - for(final List<V> iterSet : toReturn) - { - final List<V> removed = new ArrayList<V>(); - - int toAdd = size; - - if(remain > 0) - { - remain--; - toAdd++; - } - - for(final V obj : list) - { - if(toAdd == 0) - { - break; - } - - iterSet.add(obj); - removed.add(obj); - toAdd--; - } - - for(final V obj : removed) - { - list.remove(obj); - } - } - - return toReturn; - } - - public static <V> V getTop(List<V> list) - { - for(final V obj : list) - { - return obj; - } - - return null; - } - - public static <V> List<V> asList(Set<V> set) - { - return (List<V>) Arrays.asList(set.toArray()); - } - - public static <V> List<V> asList(V... values) - { - return Arrays.asList(values); - } - - public static double[] splitDouble(int size, double num) - { - final double[] split = new double[size]; - - for(int i = 0; i < size; i++) - { - final double remain = num % size; - double ret = (num - remain) / size; - ret += remain; - - split[i] = ret; - num -= remain; - } - - return split; - } - - public static double[] percent(double[] values) - { - final double[] ret = new double[values.length]; - double total = 0; - - for(final double d : values) - { - total += d; - } - - for(int i = 0; i < values.length; i++) - { - ret[i] = values[i] / total; - } - - return ret; - } - - public static int[] calcPercentInt(double[] percent, int val) - { - final int[] ret = new int[percent.length]; - - for(int i = 0; i < percent.length; i++) - { - ret[i] = (int) Math.round(val * percent[i]); - } - - int newTotal = 0; - for(final int i : ret) - { - newTotal += i; - } - - int diff = val - newTotal; - - if(diff != val) - { - for(int i = 0; i < ret.length; i++) - { - final int num = ret[i]; - - if(diff < 0 && num == 0) - { - continue; - } - - if(diff > 0) - { - ret[i]++; - diff--; - } - else if(diff < 0) - { - ret[i]--; - diff++; - } - - if(diff == 0) - { - return ret; - } - } - } - - return ret; - } - - public static int[] splitInt(int size, int num) - { - final int[] split = new int[size]; - - for(int i = 0; i < size; i++) - { - final int remain = num % size; - int ret = (num - remain) / size; - ret += remain; - - split[i] = ret; - num -= remain; - } - - return split; - } - - public static double[] percent(int[] values) - { - final double[] ret = new double[values.length]; - double total = 0; - - for(final double d : values) - { - total += d; - } - - for(int i = 0; i < values.length; i++) - { - ret[i] = values[i] / total; - } - - return ret; - } -} diff --git a/src/api/java/mekanism/api/util/StackUtils.java b/src/api/java/mekanism/api/util/StackUtils.java deleted file mode 100644 index 17cfe3e..0000000 --- a/src/api/java/mekanism/api/util/StackUtils.java +++ /dev/null @@ -1,255 +0,0 @@ -package mekanism.api.util; - -import java.util.ArrayList; -import java.util.List; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.oredict.OreDictionary; - -public final class StackUtils -{ - public static List<ItemStack> split(ItemStack stack) - { - if(stack == null || stack.stackSize == 0) - { - return null; - } - - final List<ItemStack> ret = new ArrayList<ItemStack>(); - - if(stack.stackSize == 1) - { - ret.add(stack); - return ret; - } - - final int remain = stack.stackSize % 2; - final int split = (int) ((stack.stackSize) / 2F); - - ret.add(size(stack, split + remain)); - ret.add(size(stack, split)); - - return ret; - } - - public static Item getItem(ItemStack stack) - { - if(stack == null) - { - return null; - } - - return stack.getItem(); - } - - public static boolean diffIgnoreNull(ItemStack stack1, ItemStack stack2) - { - if(stack1 == null || stack2 == null) - { - return false; - } - - return stack1.getItem() != stack2.getItem() || stack1.getItemDamage() != stack2.getItemDamage(); - } - - public static boolean equalsWildcard(ItemStack wild, ItemStack check) - { - if(wild == null || check == null) - { - return check == wild; - } - - return wild.getItem() == check.getItem() && (wild.getItemDamage() == OreDictionary.WILDCARD_VALUE || wild.getItemDamage() == check.getItemDamage()); - } - - public static boolean equalsWildcardWithNBT(ItemStack wild, ItemStack check) - { - return equalsWildcard(wild, check) && (wild.stackTagCompound == null ? check.stackTagCompound == null : (wild.stackTagCompound == check.stackTagCompound || wild.stackTagCompound.equals(check.stackTagCompound))); - } - - public static List<ItemStack> even(ItemStack stack1, ItemStack stack2) - { - final ArrayList<ItemStack> ret = new ArrayList<ItemStack>(); - - if(getSize(stack1) == getSize(stack2) || Math.abs(getSize(stack1) - getSize(stack2)) == 1) - { - ret.add(stack1); - ret.add(stack2); - - return ret; - } - - if(getSize(stack1) > getSize(stack2)) - { - final int diff = getSize(stack1) - getSize(stack2); - - final List<ItemStack> split = split(size(stack1, diff)); - - ret.add(subtract(stack1, split.get(0))); - ret.add(add(stack2, split.get(0))); - } - else if(getSize(stack2) > getSize(stack1)) - { - final int diff = getSize(stack2) - getSize(stack1); - - final List<ItemStack> split = split(size(stack2, diff)); - - ret.add(subtract(stack2, split.get(0))); - ret.add(add(stack1, split.get(0))); - } - - return ret; - } - - public static ItemStack add(ItemStack stack1, ItemStack stack2) - { - if(stack1 == null) - { - return stack2; - } - else if(stack2 == null) - { - return stack1; - } - - return size(stack1, getSize(stack1) + getSize(stack2)); - } - - public static ItemStack subtract(ItemStack stack1, ItemStack stack2) - { - if(stack1 == null) - { - return null; - } - else if(stack2 == null) - { - return stack1; - } - - return size(stack1, getSize(stack1) - getSize(stack2)); - } - - public static ItemStack size(ItemStack stack, int size) - { - if(size <= 0 || stack == null) - { - return null; - } - - final ItemStack ret = stack.copy(); - ret.stackSize = size; - return ret; - } - - public static ItemStack copy(ItemStack stack) - { - if(stack == null) - { - return null; - } - - return stack.copy(); - } - - public static int getSize(ItemStack stack) - { - return stack != null ? stack.stackSize : 0; - } - - public static List<ItemStack> getMergeRejects(ItemStack[] orig, ItemStack[] toAdd) - { - final List<ItemStack> ret = new ArrayList<ItemStack>(); - - for(int i = 0; i < toAdd.length; i++) - { - if(toAdd[i] != null) - { - final ItemStack reject = getMergeReject(orig[i], toAdd[i]); - - if(reject != null) - { - ret.add(reject); - } - } - } - - return ret; - } - - public static void merge(ItemStack[] orig, ItemStack[] toAdd) - { - for(int i = 0; i < toAdd.length; i++) - { - if(toAdd[i] != null) - { - orig[i] = merge(orig[i], toAdd[i]); - } - } - } - - public static ItemStack merge(ItemStack orig, ItemStack toAdd) - { - if(orig == null) - { - return toAdd; - } - - if(toAdd == null) - { - return orig; - } - - if(!orig.isItemEqual(toAdd) || !ItemStack.areItemStackTagsEqual(orig, toAdd)) - { - return orig; - } - - return StackUtils.size(orig, Math.min(orig.getMaxStackSize(), orig.stackSize + toAdd.stackSize)); - } - - public static ItemStack getMergeReject(ItemStack orig, ItemStack toAdd) - { - if(orig == null) - { - return null; - } - - if(toAdd == null) - { - return orig; - } - - if(!orig.isItemEqual(toAdd) || !ItemStack.areItemStackTagsEqual(orig, toAdd)) - { - return orig; - } - - final int newSize = orig.stackSize + toAdd.stackSize; - - if(newSize > orig.getMaxStackSize()) - { - return StackUtils.size(orig, newSize - orig.getMaxStackSize()); - } - else - { - return StackUtils.size(orig, newSize); - } - } - - public static boolean contains(ItemStack container, ItemStack contained) - { - return equalsWildcardWithNBT(contained, container) && container.stackSize >= contained.stackSize; - } - - public static int hashItemStack(ItemStack stack) - { - if(stack == null || stack.getItem() == null) - { - return -1; - } - - final String name = stack.getItemDamage() == OreDictionary.WILDCARD_VALUE ? stack.getItem().getUnlocalizedName() : stack.getItem().getUnlocalizedName(stack); - return name.hashCode() << 8 | stack.getItemDamage(); - } -} diff --git a/src/api/java/mekanism/api/util/UnitDisplayUtils.java b/src/api/java/mekanism/api/util/UnitDisplayUtils.java deleted file mode 100644 index 30eace1..0000000 --- a/src/api/java/mekanism/api/util/UnitDisplayUtils.java +++ /dev/null @@ -1,271 +0,0 @@ -package mekanism.api.util; - -/** - * Code taken from UE and modified to fit Mekanism. - */ -public class UnitDisplayUtils -{ - public static enum ElectricUnit - { - JOULES("Joule", "J"), REDSTONE_FLUX("Redstone Flux", "RF"), MINECRAFT_JOULES("Minecraft Joule", "MJ"), ELECTRICAL_UNITS("Electrical Unit", "EU"); - - public String name; - public String symbol; - - private ElectricUnit(String s, String s1) - { - name = s; - symbol = s1; - } - - public String getPlural() - { - return this == REDSTONE_FLUX ? name : name + "s"; - } - } - - public static enum TemperatureUnit - { - KELVIN("Kelvin", "K", 0, 1), CELSIUS("Celsius", "°C", 273.15, 1), RANKINE("Rankine", "R", 0, 9D / 5D), FAHRENHEIT("Fahrenheit", "°F", 459.67, 9D / 5D), AMBIENT("Ambient", "+STP", 300, 1); - - public String name; - public String symbol; - double zeroOffset; - double intervalSize; - - private TemperatureUnit(String s, String s1, double offset, double size) - { - name = s; - symbol = s1; - zeroOffset = offset; - intervalSize = size; - } - - public double convertFromK(double T) - { - return (T * intervalSize) - zeroOffset; - } - - public double convertToK(double T) - { - return (T + zeroOffset) / intervalSize; - } - } - - /** Metric system of measurement. */ - public static enum MeasurementUnit - { - FEMTO("Femto", "f", 0.000000000000001D), PICO("Pico", "p", 0.000000000001D), NANO("Nano", "n", 0.000000001D), MICRO("Micro", "u", 0.000001D), MILLI("Milli", "m", 0.001D), BASE("", "", 1), KILO("Kilo", "k", 1000D), MEGA("Mega", "M", 1000000D), GIGA("Giga", "G", 1000000000D), TERA("Tera", "T", 1000000000000D), PETA("Peta", "P", 1000000000000000D), EXA("Exa", "E", 1000000000000000000D), ZETTA("Zetta", "Z", 1000000000000000000000D), YOTTA("Yotta", "Y", 1000000000000000000000000D); - - /** long name for the unit */ - public String name; - - /** short unit version of the unit */ - public String symbol; - - /** Point by which a number is consider to be of this unit */ - public double value; - - private MeasurementUnit(String s, String s1, double v) - { - name = s; - symbol = s1; - value = v; - } - - public String getName(boolean getShort) - { - if(getShort) - { - return symbol; - } - else - { - return name; - } - } - - public double process(double d) - { - return d / value; - } - - public boolean above(double d) - { - return d > value; - } - - public boolean below(double d) - { - return d < value; - } - } - - /** - * Displays the unit as text. Does handle negative numbers, and will place a negative sign in - * front of the output string showing this. Use string.replace to remove the negative sign if - * unwanted - */ - public static String getDisplay(double value, ElectricUnit unit, int decimalPlaces, boolean isShort) - { - String unitName = unit.name; - String prefix = ""; - - if(value < 0) - { - value = Math.abs(value); - prefix = "-"; - } - - if(isShort) - { - unitName = unit.symbol; - } - else if(value > 1) - { - unitName = unit.getPlural(); - } - - if(value == 0) - { - return value + " " + unitName; - } - else - { - for(int i = 0; i < MeasurementUnit.values().length; i++) - { - final MeasurementUnit lowerMeasure = MeasurementUnit.values()[i]; - - if(lowerMeasure.below(value) && lowerMeasure.ordinal() == 0) - { - return prefix + roundDecimals(lowerMeasure.process(value), decimalPlaces) + " " + lowerMeasure.getName(isShort) + unitName; - } - - if(lowerMeasure.ordinal() + 1 >= MeasurementUnit.values().length) - { - return prefix + roundDecimals(lowerMeasure.process(value), decimalPlaces) + " " + lowerMeasure.getName(isShort) + unitName; - } - - final MeasurementUnit upperMeasure = MeasurementUnit.values()[i + 1]; - - if((lowerMeasure.above(value) && upperMeasure.below(value)) || lowerMeasure.value == value) - { - return prefix + roundDecimals(lowerMeasure.process(value), decimalPlaces) + " " + lowerMeasure.getName(isShort) + unitName; - } - } - } - - return prefix + roundDecimals(value, decimalPlaces) + " " + unitName; - } - - public static String getDisplayShort(double value, ElectricUnit unit) - { - return getDisplay(value, unit, 2, true); - } - - public static String getDisplayShort(double value, ElectricUnit unit, int decimalPlaces) - { - return getDisplay(value, unit, decimalPlaces, true); - } - - public static String getDisplaySimple(double value, ElectricUnit unit, int decimalPlaces) - { - if(value > 1) - { - if(decimalPlaces < 1) - { - return (int) value + " " + unit.getPlural(); - } - - return roundDecimals(value, decimalPlaces) + " " + unit.getPlural(); - } - - if(decimalPlaces < 1) - { - return (int) value + " " + unit.name; - } - - return roundDecimals(value, decimalPlaces) + " " + unit.name; - } - - public static String getDisplay(double T, TemperatureUnit unit, int decimalPlaces, boolean isShort) - { - String unitName = unit.name; - String prefix = ""; - - double value = unit.convertFromK(T); - - if(value < 0) - { - value = Math.abs(value); - prefix = "-"; - } - - if(isShort) - { - unitName = unit.symbol; - } - - if(value == 0) - { - return value + (isShort ? "" : " ") + unitName; - } - else - { - for(int i = 0; i < MeasurementUnit.values().length; i++) - { - final MeasurementUnit lowerMeasure = MeasurementUnit.values()[i]; - - if(lowerMeasure.below(value) && lowerMeasure.ordinal() == 0) - { - return prefix + roundDecimals(lowerMeasure.process(value), decimalPlaces) + (isShort ? "" : " ") + lowerMeasure.getName(isShort) + unitName; - } - - if(lowerMeasure.ordinal() + 1 >= MeasurementUnit.values().length) - { - return prefix + roundDecimals(lowerMeasure.process(value), decimalPlaces) + (isShort ? "" : " ") + lowerMeasure.getName(isShort) + unitName; - } - - final MeasurementUnit upperMeasure = MeasurementUnit.values()[i + 1]; - - if((lowerMeasure.above(value) && upperMeasure.below(value)) || lowerMeasure.value == value) - { - return prefix + roundDecimals(lowerMeasure.process(value), decimalPlaces) + (isShort ? "" : " ") + lowerMeasure.getName(isShort) + unitName; - } - } - } - - return prefix + roundDecimals(value, decimalPlaces) + (isShort ? "" : " ") + unitName; - } - - public static String getDisplayShort(double value, TemperatureUnit unit) - { - return getDisplay(value, unit, 2, true); - } - - public static String getDisplayShort(double value, TemperatureUnit unit, int decimalPlaces) - { - return getDisplay(value, unit, decimalPlaces, true); - } - - public static double roundDecimals(double d, int decimalPlaces) - { - final int j = (int) (d * Math.pow(10, decimalPlaces)); - return j / Math.pow(10, decimalPlaces); - } - - public static double roundDecimals(double d) - { - return roundDecimals(d, 2); - } - - public static enum EnergyType - { - J, RF, EU, MJ - } - - public static enum TempType - { - K, C, R, F, STP - } -} diff --git a/src/api/java/mekanism/api/util/package-info.java b/src/api/java/mekanism/api/util/package-info.java deleted file mode 100644 index 78fd35b..0000000 --- a/src/api/java/mekanism/api/util/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -@API(apiVersion = "8.0.0", owner = "Mekanism", provides = "MekanismAPI|util") -package mekanism.api.util; - -import cpw.mods.fml.common.API; - |
