v5.5.4 Beta #1

*Refactored API, removing core interfaces and adding more descriptive
javadocs.  MDK users, be prepared to update.
*Fixed differing progress not being recognized.
*Fixed Theoretical Elementizer displaying incorrect progress.
*Made IGasStorage work in both items and blocks -- IStorageTank extends
this now.
*Better storage tank code.
*Loads of reformatting and added missing javadocs.
This commit is contained in:
Aidan Brady 2013-03-31 19:12:10 -04:00
parent 83b16c594b
commit dcb5fac394
64 changed files with 348 additions and 244 deletions

View file

@ -1,7 +1,7 @@
package mekanism.api; package mekanism.api;
/** /**
* * The gasses currently available in Mekanism.
* @author AidanBrady * @author AidanBrady
* *
*/ */

View file

@ -7,6 +7,11 @@ import java.util.Collections;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
/**
* The actual protocol gas goes through when it is transferred via Pressurized Tubes.
* @author AidanBrady
*
*/
public class GasTransferProtocol public class GasTransferProtocol
{ {
/** List of iterated tubes, to prevent infinite loops. */ /** List of iterated tubes, to prevent infinite loops. */

View file

@ -5,6 +5,11 @@ import net.minecraftforge.common.ForgeDirection;
import universalelectricity.core.vector.Vector3; import universalelectricity.core.vector.Vector3;
import universalelectricity.core.vector.VectorHelper; import universalelectricity.core.vector.VectorHelper;
/**
* A handy class containing several utilities for efficient gas transfer.
* @author AidanBrady
*
*/
public class GasTransmission public class GasTransmission
{ {
/** /**

View file

@ -2,7 +2,17 @@ package mekanism.api;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
/**
* Implement this if your TileEntity is capable of outputting energy to cables, overriding Mekanism's default implementation.
* @author AidanBrady
*
*/
public interface ICableOutputter 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); public boolean canOutputTo(ForgeDirection side);
} }

View file

@ -2,6 +2,11 @@ package mekanism.api;
import java.util.ArrayList; import java.util.ArrayList;
/**
* Implement this if your TileEntity is capable of being modified by a Configurator in it's 'modify' mode.
* @author AidanBrady
*
*/
public interface IConfigurable public interface IConfigurable
{ {
/** /**

View file

@ -1,7 +1,8 @@
package mekanism.api; package mekanism.api;
/** /**
* Implement this if your tile entity can store some form of gas. * Implement this if your tile entity can store some form of gas. If you want your item to store gas, implement IStorageTank
* instead.
* @author AidanBrady * @author AidanBrady
* *
*/ */
@ -10,21 +11,24 @@ public interface IGasStorage
/** /**
* Get the gas of a declared type. * Get the gas of a declared type.
* @param type - type of gas * @param type - type of gas
* @param data - ItemStack parameter if necessary
* @return gas stored * @return gas stored
*/ */
public int getGas(EnumGas type); public int getGas(EnumGas type, Object... data);
/** /**
* Set the gas of a declared type to a new amount; * Set the gas of a declared type to a new amount;
* @param type - type of gas * @param type - type of gas
* @param data - ItemStack parameter if necessary
* @param amount - amount to store * @param amount - amount to store
*/ */
public void setGas(EnumGas type, int amount); public void setGas(EnumGas type, int amount, Object... data);
/** /**
* Gets the maximum amount of gas this tile entity can store. * Gets the maximum amount of gas this tile entity can store.
* @param type - type of gas * @param type - type of gas
* @param data - ItemStack parameter if necessary
* @return maximum gas * @return maximum gas
*/ */
public int getMaxGas(EnumGas type); public int getMaxGas(EnumGas type, Object... data);
} }

View file

@ -7,29 +7,8 @@ import net.minecraft.item.ItemStack;
* @author AidanBrady * @author AidanBrady
* *
*/ */
public interface IStorageTank public interface IStorageTank extends IGasStorage
{ {
/**
* Gets the amount of gas the item has from NBT storage.
* @param itemstack
* @return amount of gas
*/
public int getGas(ItemStack itemstack);
/**
* Sets the gas the item has stored in it's NBTTagCompound.
* @param itemstack - itemstack of a Storage Tank to set the gas of
* @param type - the type of gas to set
* @param amount - the amount of gas to set
*/
public void setGas(ItemStack itemstack, EnumGas type, int amount);
/**
* Gets the maximum amount of hydrogen this item can hold.
* @return maximum hydrogen
*/
public int getMaxGas();
/** /**
* Gets the rate of transfer this item can handle. * Gets the rate of transfer this item can handle.
* @return * @return

View file

@ -2,6 +2,11 @@ package mekanism.api;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
/**
* Implement this if your TileEntity can accept energy at a floating-point double value from Universal Cables.
* @author AidanBrady
*
*/
public interface IStrictEnergyAcceptor public interface IStrictEnergyAcceptor
{ {
/** /**

View file

@ -2,6 +2,11 @@ package mekanism.api;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
/**
* Implement this if your block can connect to Pressurized Tubes.
* @author AidanBrady
*
*/
public interface ITubeConnection public interface ITubeConnection
{ {
/** /**

View file

@ -1,5 +1,10 @@
package mekanism.api; package mekanism.api;
/**
* Implement this in your TileEntity class if the block can transfer energy as a Universal Cable.
* @author AidanBrady
*
*/
public interface IUniversalCable public interface IUniversalCable
{ {
/** /**

View file

@ -1,5 +1,10 @@
package mekanism.api; package mekanism.api;
/**
* Implement this if your block or item can store Mekanism-based upgrades.
* @author AidanBrady
*
*/
public interface IUpgradeManagement public interface IUpgradeManagement
{ {
/** /**

View file

@ -1,5 +1,10 @@
package mekanism.api; package mekanism.api;
/**
* InfuseObject - an object associated with an ItemStack that can modify a Metallurgic Infuser's internal infuse.
* @author AidanBrady
*
*/
public class InfuseObject public class InfuseObject
{ {
/** The type of infuse this item stores */ /** The type of infuse this item stores */

View file

@ -5,6 +5,11 @@ import java.util.HashMap;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
/**
* Use this class to add a new object that registers as an infuse object.
* @author AidanBrady
*
*/
public class InfuseRegistry public class InfuseRegistry
{ {
/** /**

View file

@ -2,6 +2,11 @@ package mekanism.api;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
/**
* An infusion input, containing the type of and amount of infuse the operation requires, as well as the input ItemStack.
* @author AidanBrady
*
*/
public class InfusionInput public class InfusionInput
{ {
/** The type of this infusion */ /** The type of this infusion */

View file

@ -2,6 +2,11 @@ package mekanism.api;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
/**
* An infusion output, containing a reference to it's input as well as the output resource.
* @author AidanBrady
*
*/
public class InfusionOutput public class InfusionOutput
{ {
/** The input infusion */ /** The input infusion */

View file

@ -1,5 +1,10 @@
package mekanism.api; package mekanism.api;
/**
* The types of infuse currently available in Mekanism.
* @author AidanBrady
*
*/
public enum InfusionType public enum InfusionType
{ {
COAL("COAL"), COAL("COAL"),

View file

@ -4,7 +4,12 @@ import java.lang.reflect.Method;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
public class RecipeHelper /**
* Use this handy class to add recipes to Mekanism machinery.
* @author AidanBrady
*
*/
public final class RecipeHelper
{ {
/** /**
* Add an Enrichment Chamber recipe. * Add an Enrichment Chamber recipe.

View file

@ -1,9 +1,9 @@
package mekanism.client; package mekanism.client;
import mekanism.api.Tier.FactoryTier;
import mekanism.common.ContainerFactory; import mekanism.common.ContainerFactory;
import mekanism.common.TileEntityFactory; import mekanism.common.TileEntityFactory;
import mekanism.common.IFactory.RecipeType; import mekanism.common.IFactory.RecipeType;
import mekanism.common.Tier.FactoryTier;
import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;

View file

@ -17,15 +17,10 @@ public class GuiTheoreticalElementizer extends GuiAdvancedElectricMachine
{ {
super.drawGuiContainerForegroundLayer(par1, par2); super.drawGuiContainerForegroundLayer(par1, par2);
String displayText = ""; String displayText = "";
if(tileEntity.isActive) if(tileEntity.isActive)
{ {
if(MekanismUtils.getTicks(tileEntity.speedMultiplier) == 1000) displayText = "Status: " + (int)(((float)tileEntity.operatingTicks/MekanismUtils.getTicks(tileEntity.speedMultiplier, tileEntity.TICKS_REQUIRED))*100) + "%";
{
displayText = "Status: " + Double.toString(Math.round(tileEntity.operatingTicks/10)).replace(".0", "") + "%";
}
else {
displayText = "Status: " + Integer.toString((int)(tileEntity.operatingTicks/8.5)).replace(".0", "") + "%";
}
} }
else { else {
displayText = "Status: " + EnumColor.DARK_RED + "Off"; displayText = "Status: " + EnumColor.DARK_RED + "Off";

View file

@ -1,5 +1,14 @@
package mekanism.client; package mekanism.client;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
/**
* Implement this if your TileEntity has a specific sound.
* @author AidanBrady
*
*/
@SideOnly(Side.CLIENT)
public interface IHasSound public interface IHasSound
{ {
/** /**
@ -12,4 +21,9 @@ public interface IHasSound
* Removes the sound; * Removes the sound;
*/ */
public void removeSound(); public void removeSound();
/**
* Ticks and updates the block's sound.
*/
public void updateSound();
} }

View file

@ -1,8 +1,8 @@
package mekanism.client; package mekanism.client;
import mekanism.api.IEnergyCube; import mekanism.common.IEnergyCube;
import mekanism.api.Tier.EnergyCubeTier;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.Tier.EnergyCubeTier;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.Tessellator;

View file

@ -5,7 +5,7 @@ import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import mekanism.api.IActiveState; import mekanism.common.IActiveState;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World; import net.minecraft.world.World;
import paulscode.sound.SoundSystem; import paulscode.sound.SoundSystem;

View file

@ -26,7 +26,7 @@ public class ThreadClientUpdate extends Thread
downloadType = type; downloadType = type;
try { try {
url = new URL(location); url = new URL(location);
setDaemon(true); setDaemon(false);
start(); start();
} catch (MalformedURLException e) { } catch (MalformedURLException e) {
e.printStackTrace(); e.printStackTrace();
@ -54,7 +54,7 @@ public class ThreadClientUpdate extends Thread
outputStream.close(); outputStream.close();
stream.close(); stream.close();
if(downloadType == 2) if(downloadType == 0)
{ {
GuiCredits.onFinishedDownloading(); GuiCredits.onFinishedDownloading();
System.out.println("[Mekanism] Successfully updated to latest version (" + Mekanism.latestVersionNumber + ")."); System.out.println("[Mekanism] Successfully updated to latest version (" + Mekanism.latestVersionNumber + ").");

View file

@ -12,8 +12,7 @@ import thermalexpansion.api.core.IDismantleable;
import universalelectricity.core.item.IItemElectric; import universalelectricity.core.item.IItemElectric;
import universalelectricity.prefab.implement.IToolConfigurator; import universalelectricity.prefab.implement.IToolConfigurator;
import mekanism.api.IEnergyCube; import mekanism.common.Tier.EnergyCubeTier;
import mekanism.api.Tier.EnergyCubeTier;
import net.minecraft.block.BlockContainer; import net.minecraft.block.BlockContainer;
import net.minecraft.block.material.Material; import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IconRegister; import net.minecraft.client.renderer.texture.IconRegister;

View file

@ -9,8 +9,6 @@ import thermalexpansion.api.core.IDismantleable;
import universalelectricity.core.item.IItemElectric; import universalelectricity.core.item.IItemElectric;
import universalelectricity.prefab.implement.IToolConfigurator; import universalelectricity.prefab.implement.IToolConfigurator;
import mekanism.api.IActiveState;
import mekanism.api.Tier;
import mekanism.api.IUpgradeManagement; import mekanism.api.IUpgradeManagement;
import mekanism.client.ClientProxy; import mekanism.client.ClientProxy;
import mekanism.common.IFactory.RecipeType; import mekanism.common.IFactory.RecipeType;

View file

@ -2,9 +2,8 @@ package mekanism.common;
import universalelectricity.core.item.IItemElectric; import universalelectricity.core.item.IItemElectric;
import ic2.api.IElectricItem; import ic2.api.IElectricItem;
import mekanism.api.Tier;
import mekanism.api.Tier.FactoryTier;
import mekanism.common.IFactory.RecipeType; import mekanism.common.IFactory.RecipeType;
import mekanism.common.Tier.FactoryTier;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;

View file

@ -1,4 +1,4 @@
package mekanism.api; package mekanism.common;
/** /**
* Implement this if your machine/generator has some form of active state. * Implement this if your machine/generator has some form of active state.

View file

@ -1,5 +1,11 @@
package mekanism.common; package mekanism.common;
/**
* Internal interface. A bounding block is not actually a 'bounding' block, it is really just a fake block that is
* used to mimic actual block bounds.
* @author AidanBrady
*
*/
public interface IBoundingBlock public interface IBoundingBlock
{ {
/** /**

View file

@ -11,6 +11,12 @@ import ic2.api.energy.event.EnergyTileSourceEvent;
import ic2.api.energy.tile.IEnergyConductor; import ic2.api.energy.tile.IEnergyConductor;
import ic2.api.energy.tile.IEnergySource; import ic2.api.energy.tile.IEnergySource;
/**
* This here is the core implementation of IC2 into Universal Cable. Thanks to Player's hard work at making the EnergyNet
* an event-based system, this is possible.
* @author AidanBrady
*
*/
public class IC2EnergyHandler public class IC2EnergyHandler
{ {
@ForgeSubscribe @ForgeSubscribe

View file

@ -1,9 +1,10 @@
package mekanism.api; package mekanism.common;
import java.util.Map; import java.util.Map;
/** /**
* A group of common methods used by all Mekanism machines. * Internal interface containing methods that are shared by many core Mekanism machines. TODO: remove next minor MC
* version.
* @author AidanBrady * @author AidanBrady
* *
*/ */

View file

@ -1,8 +1,13 @@
package mekanism.api; package mekanism.common;
import mekanism.api.Tier.EnergyCubeTier; import mekanism.common.Tier.EnergyCubeTier;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
/**
* Internal interface used when dealing with Energy Cubes and their tiers.
* @author AidanBrady
*
*/
public interface IEnergyCube public interface IEnergyCube
{ {
/** /**

View file

@ -4,6 +4,11 @@ import mekanism.common.RecipeHandler.Recipe;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.item.crafting.FurnaceRecipes;
/**
* Internal interface for managing various Factory types.
* @author AidanBrady
*
*/
public interface IFactory public interface IFactory
{ {
/** /**

View file

@ -3,6 +3,11 @@ package mekanism.common;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagList;
/**
* Internal interface used in blocks and items that are capable of storing sustained inventories.
* @author AidanBrady
*
*/
public interface ISustainedInventory public interface ISustainedInventory
{ {
/** /**

View file

@ -1,18 +1,18 @@
package mekanism.api; package mekanism.common;
import java.util.ArrayList; import java.util.ArrayList;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
/** /**
* Implement this in your TileEntity class if you plan to have your machine send and receive packets. Send packets sparingly! * Internal interface used for blocks that send data between clients and the server
* @author AidanBrady * @author AidanBrady
* *
*/ */
public interface ITileNetwork public interface ITileNetwork
{ {
/** /**
* Called when a networked machine receives a packet. * Receive and manage a data input.
* @param network * @param network
* @param packet * @param packet
* @param player * @param player
@ -21,7 +21,7 @@ public interface ITileNetwork
public void handlePacketData(ByteArrayDataInput dataStream) throws Exception; public void handlePacketData(ByteArrayDataInput dataStream) throws Exception;
/** /**
* Gets an ArrayList of data this machine keeps synchronized with the client. * Gets an ArrayList of data this tile entity keeps synchronized with the client.
* @param data - list of data * @param data - list of data
* @return ArrayList * @return ArrayList
*/ */

View file

@ -16,8 +16,7 @@ import universalelectricity.core.electricity.ElectricityDisplay.ElectricUnit;
import universalelectricity.core.item.IItemElectric; import universalelectricity.core.item.IItemElectric;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.IEnergyCube; import mekanism.common.Tier.EnergyCubeTier;
import mekanism.api.Tier.EnergyCubeTier;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemBlock;

View file

@ -33,7 +33,7 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
@Override @Override
public void addInformation(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag) public void addInformation(ItemStack itemstack, EntityPlayer entityplayer, List list, boolean flag)
{ {
int gas = getGas(itemstack); int gas = getGas(getGasType(itemstack), itemstack);
if(getGasType(itemstack) == EnumGas.NONE) if(getGasType(itemstack) == EnumGas.NONE)
{ {
@ -55,54 +55,69 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
{ {
ItemStorageTank item = ((ItemStorageTank)itemstack.getItem()); ItemStorageTank item = ((ItemStorageTank)itemstack.getItem());
if(item.getGas(itemstack) == 0 && item.getGasType(itemstack) != EnumGas.NONE) if(getGasType(itemstack) != EnumGas.NONE && getGas(getGasType(itemstack), itemstack) == 0)
{ {
item.setGasType(itemstack, EnumGas.NONE); setGasType(itemstack, EnumGas.NONE);
} }
} }
@Override @Override
public int getGas(ItemStack itemstack) public int getGas(EnumGas type, Object... data)
{ {
if(itemstack.stackTagCompound == null) if(data[0] instanceof ItemStack)
{ {
return 0; ItemStack itemstack = (ItemStack)data[0];
if(getGasType(itemstack) == type)
{
if(itemstack.stackTagCompound == null)
{
return 0;
}
int stored = 0;
if(itemstack.stackTagCompound.getTag("gas") != null)
{
stored = itemstack.stackTagCompound.getInteger("gas");
}
itemstack.setItemDamage((int)(Math.abs((((float)stored/MAX_GAS)*100)-100)));
return stored;
}
} }
int stored = 0; return 0;
if(itemstack.stackTagCompound.getTag("gas") != null)
{
stored = itemstack.stackTagCompound.getInteger("gas");
}
itemstack.setItemDamage((int)(Math.abs((((float)stored/MAX_GAS)*100)-100)));
return stored;
} }
@Override @Override
public void setGas(ItemStack itemstack, EnumGas type, int amount) public void setGas(EnumGas type, int amount, Object... data)
{ {
if(itemstack.stackTagCompound == null) if(data[0] instanceof ItemStack)
{ {
itemstack.setTagCompound(new NBTTagCompound()); ItemStack itemstack = (ItemStack)data[0];
}
if(itemstack.stackTagCompound == null)
if(getGasType(itemstack) == EnumGas.NONE) {
{ itemstack.setTagCompound(new NBTTagCompound());
setGasType(itemstack, type); }
}
if(getGasType(itemstack) == EnumGas.NONE)
if(getGasType(itemstack) == type) {
{ setGasType(itemstack, type);
int stored = Math.max(Math.min(amount, MAX_GAS), 0); }
itemstack.stackTagCompound.setInteger("gas", stored);
itemstack.setItemDamage((int)(Math.abs((((float)stored/MAX_GAS)*100)-100))); if(getGasType(itemstack) == type)
} {
int stored = Math.max(Math.min(amount, MAX_GAS), 0);
if(getGas(itemstack) == 0) itemstack.stackTagCompound.setInteger("gas", stored);
{ itemstack.setItemDamage((int)(Math.abs((((float)stored/MAX_GAS)*100)-100)));
setGasType(itemstack, EnumGas.NONE); }
if(getGas(getGasType(itemstack), itemstack) == 0)
{
setGasType(itemstack, EnumGas.NONE);
}
} }
} }
@ -126,18 +141,29 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
{ {
if(type != EnumGas.NONE) if(type != EnumGas.NONE)
{ {
ItemStack charged = new ItemStack(this); ItemStack filled = new ItemStack(this);
setGasType(charged, type); setGasType(filled, type);
setGas(charged, type, ((IStorageTank)charged.getItem()).getMaxGas()); setGas(type, ((IStorageTank)filled.getItem()).getMaxGas(type, filled), filled);
list.add(charged); list.add(filled);
} }
} }
} }
@Override @Override
public int getMaxGas() public int getMaxGas(EnumGas type, Object... data)
{ {
return MAX_GAS; if(data[0] instanceof ItemStack)
{
ItemStack itemStack = (ItemStack)data[0];
IStorageTank tank = (IStorageTank)itemStack.getItem();
if(getGasType(itemStack) == EnumGas.NONE || getGasType(itemStack) == type)
{
return MAX_GAS;
}
}
return 0;
} }
@Override @Override
@ -151,10 +177,11 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
{ {
if(getGasType(itemstack) == type || getGasType(itemstack) == EnumGas.NONE) if(getGasType(itemstack) == type || getGasType(itemstack) == EnumGas.NONE)
{ {
int rejects = Math.max((getGas(itemstack) + amount) - MAX_GAS, 0); int rejects = Math.max((getGas(getGasType(itemstack), itemstack) + amount) - MAX_GAS, 0);
setGas(itemstack, type, getGas(itemstack) + amount - rejects); setGas(type, getGas(type, itemstack) + amount - rejects, itemstack);
return rejects; return rejects;
} }
return amount; return amount;
} }
@ -163,8 +190,8 @@ public class ItemStorageTank extends ItemMekanism implements IStorageTank
{ {
if(getGasType(itemstack) == type) if(getGasType(itemstack) == type)
{ {
int gasToUse = Math.min(getGas(itemstack), amount); int gasToUse = Math.min(getGas(type, itemstack), amount);
setGas(itemstack, type, getGas(itemstack) - gasToUse); setGas(type, getGas(type, itemstack) - gasToUse, itemstack);
return gasToUse; return gasToUse;
} }

View file

@ -11,10 +11,10 @@ import java.util.logging.Logger;
import mekanism.api.InfuseObject; import mekanism.api.InfuseObject;
import mekanism.api.InfusionInput; import mekanism.api.InfusionInput;
import mekanism.api.InfusionType; import mekanism.api.InfusionType;
import mekanism.api.Tier.EnergyCubeTier;
import mekanism.api.Tier.FactoryTier;
import mekanism.client.SoundHandler; import mekanism.client.SoundHandler;
import mekanism.common.IFactory.RecipeType; import mekanism.common.IFactory.RecipeType;
import mekanism.common.Tier.EnergyCubeTier;
import mekanism.common.Tier.FactoryTier;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -52,7 +52,7 @@ import cpw.mods.fml.relauncher.SideOnly;
* @author AidanBrady * @author AidanBrady
* *
*/ */
@Mod(modid = "Mekanism", name = "Mekanism", version = "5.5.2") @Mod(modid = "Mekanism", name = "Mekanism", version = "5.5.4")
@NetworkMod(channels = {"Mekanism"}, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class) @NetworkMod(channels = {"Mekanism"}, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class)
public class Mekanism public class Mekanism
{ {
@ -74,7 +74,7 @@ public class Mekanism
public static Configuration configuration; public static Configuration configuration;
/** Mekanism version number */ /** Mekanism version number */
public static Version versionNumber = new Version(5, 5, 2); public static Version versionNumber = new Version(5, 5, 4);
/** Map of Teleporters */ /** Map of Teleporters */
public static Map<Teleporter.Code, ArrayList<Teleporter.Coords>> teleporters = new HashMap<Teleporter.Code, ArrayList<Teleporter.Coords>>(); public static Map<Teleporter.Code, ArrayList<Teleporter.Coords>> teleporters = new HashMap<Teleporter.Code, ArrayList<Teleporter.Coords>>();
@ -226,16 +226,16 @@ public class Mekanism
"RCR", "ECE", "RCR", Character.valueOf('C'), Item.ingotGold, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), EnrichedAlloy "RCR", "ECE", "RCR", Character.valueOf('C'), Item.ingotGold, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), EnrichedAlloy
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 0), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 0), new Object[] {
"ARA", "CIC", "ARA", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('R'), Item.redstone, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9), Character.valueOf('C'), ControlCircuit "ARA", "CIC", "ARA", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('R'), Item.redstone, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8), Character.valueOf('C'), ControlCircuit
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 1), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 1), new Object[] {
"RCR", "GIG", "RCR", Character.valueOf('R'), Item.redstone, Character.valueOf('C'), "basicCircuit", Character.valueOf('G'), Block.glass, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) "RCR", "GIG", "RCR", Character.valueOf('R'), Item.redstone, Character.valueOf('C'), "basicCircuit", Character.valueOf('G'), Block.glass, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8)
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 2), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 2), new Object[] {
"SCS", "RIR", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), "basicCircuit", Character.valueOf('R'), Item.redstone, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) "SCS", "RIR", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), "basicCircuit", Character.valueOf('R'), Item.redstone, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8)
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 3), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 3), new Object[] {
"RLR", "CIC", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), Item.bucketLava, Character.valueOf('C'), "basicCircuit", Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) "RLR", "CIC", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), Item.bucketLava, Character.valueOf('C'), "basicCircuit", Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8)
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(SpeedUpgrade), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(SpeedUpgrade), new Object[] {
" G ", "APA", " G ", Character.valueOf('P'), "dustOsmium", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), Block.glass " G ", "APA", " G ", Character.valueOf('P'), "dustOsmium", Character.valueOf('A'), EnrichedAlloy, Character.valueOf('G'), Block.glass
@ -256,7 +256,7 @@ public class Mekanism
"PPP", "PDP", "PPP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('D'), "dustIron" "PPP", "PDP", "PPP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('D'), "dustIron"
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC), new Object[] {
"RLR", "TIT", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) "RLR", "TIT", "RLR", Character.valueOf('R'), Item.redstone, Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8)
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(MekanismUtils.getEnergyCube(EnergyCubeTier.ADVANCED), new Object[] {
"EGE", "TBT", "EGE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('G'), Item.ingotGold, Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('B'), MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC) "EGE", "TBT", "EGE", Character.valueOf('E'), EnrichedAlloy, Character.valueOf('G'), Item.ingotGold, Character.valueOf('T'), EnergyTablet.getUnchargedItem(), Character.valueOf('B'), MekanismUtils.getEnergyCube(EnergyCubeTier.BASIC)
@ -292,7 +292,7 @@ public class Mekanism
"COC", "OTO", "COC", Character.valueOf('C'), "basicCircuit", Character.valueOf('O'), new ItemStack(BasicBlock, 1, 8), Character.valueOf('T'), TeleportationCore "COC", "OTO", "COC", Character.valueOf('C'), "basicCircuit", Character.valueOf('O'), new ItemStack(BasicBlock, 1, 8), Character.valueOf('T'), TeleportationCore
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 9), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 9), new Object[] {
"CAC", "ERE", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), AtomicCore, Character.valueOf('E'), EnrichedAlloy, Character.valueOf('R'), new ItemStack(BasicBlock, 1, 9) "CAC", "ERE", "CAC", Character.valueOf('C'), "basicCircuit", Character.valueOf('A'), AtomicCore, Character.valueOf('E'), EnrichedAlloy, Character.valueOf('R'), new ItemStack(BasicBlock, 1, 8)
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Configurator), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Configurator), new Object[] {
" L ", "AEA", " S ", Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyTablet.getUnchargedItem(), Character.valueOf('S'), Item.stick " L ", "AEA", " S ", Character.valueOf('L'), new ItemStack(Item.dyePowder, 1, 4), Character.valueOf('A'), EnrichedAlloy, Character.valueOf('E'), EnergyTablet.getUnchargedItem(), Character.valueOf('S'), Item.stick
@ -307,7 +307,7 @@ public class Mekanism
" S ", "SPS", " S ", Character.valueOf('S'), "ingotSteel", Character.valueOf('P'), "ingotOsmium" " S ", "SPS", " S ", Character.valueOf('S'), "ingotSteel", Character.valueOf('P'), "ingotOsmium"
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 10), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(MachineBlock, 1, 10), new Object[] {
"SCS", "GIG", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), ControlCircuit, Character.valueOf('G'), Block.glass, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 9) "SCS", "GIG", "SCS", Character.valueOf('S'), Block.cobblestone, Character.valueOf('C'), ControlCircuit, Character.valueOf('G'), Block.glass, Character.valueOf('I'), new ItemStack(BasicBlock, 1, 8)
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Transmitter, 8, 1), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Transmitter, 8, 1), new Object[] {
"OOO", "RRR", "OOO", Character.valueOf('O'), "ingotOsmium", Character.valueOf('R'), Item.redstone "OOO", "RRR", "OOO", Character.valueOf('O'), "ingotOsmium", Character.valueOf('R'), Item.redstone
@ -604,7 +604,7 @@ public class Mekanism
OreDictionary.registerOre("dustDirtySilver", new ItemStack(DirtyDust, 1, 5)); OreDictionary.registerOre("dustDirtySilver", new ItemStack(DirtyDust, 1, 5));
OreDictionary.registerOre("dustDirtyObsidian", new ItemStack(DirtyDust, 1, 6)); OreDictionary.registerOre("dustDirtyObsidian", new ItemStack(DirtyDust, 1, 6));
//for railcraft //for RailCraft. cj + obsidian dust = rawr
OreDictionary.registerOre("dustObsidian", new ItemStack(DirtyDust, 1, 6)); OreDictionary.registerOre("dustObsidian", new ItemStack(DirtyDust, 1, 6));
OreDictionary.registerOre("clumpIron", new ItemStack(Clump, 1, 0)); OreDictionary.registerOre("clumpIron", new ItemStack(Clump, 1, 0));

View file

@ -20,15 +20,14 @@ import universalelectricity.core.vector.Vector3;
import universalelectricity.core.vector.VectorHelper; import universalelectricity.core.vector.VectorHelper;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.IActiveState;
import mekanism.api.ICableOutputter; import mekanism.api.ICableOutputter;
import mekanism.api.IConfigurable; import mekanism.api.IConfigurable;
import mekanism.api.IStrictEnergyAcceptor; import mekanism.api.IStrictEnergyAcceptor;
import mekanism.api.IUniversalCable; import mekanism.api.IUniversalCable;
import mekanism.api.InfuseObject; import mekanism.api.InfuseObject;
import mekanism.api.Tier.EnergyCubeTier;
import mekanism.api.Tier.FactoryTier;
import mekanism.common.IFactory.RecipeType; import mekanism.common.IFactory.RecipeType;
import mekanism.common.Tier.EnergyCubeTier;
import mekanism.common.Tier.FactoryTier;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -418,17 +417,18 @@ public final class MekanismUtils
/** /**
* Gets the operating ticks required for a machine via it's upgrades. * Gets the operating ticks required for a machine via it's upgrades.
* @param multiplier - speed multiplier * @param multiplier - speed multiplier
* @param def - the original, default ticks required
* @return max operating ticks * @return max operating ticks
*/ */
public static int getTicks(int multiplier) public static int getTicks(int multiplier, int def)
{ {
return 200/(multiplier+1); return def/(multiplier+1);
} }
/** /**
* Gets the maximum energy for a machine via it's upgrades. * Gets the maximum energy for a machine via it's upgrades.
* @param multiplier - energy multiplier * @param multiplier - energy multiplier
* @param def - original, definitive max energy * @param def - original, default max energy
* @return max energy * @return max energy
*/ */
public static double getEnergy(int multiplier, double def) public static double getEnergy(int multiplier, double def)

View file

@ -17,12 +17,12 @@ public class OreHandler implements IWorldGenerator
{ {
if(!(chunkGenerator instanceof ChunkProviderHell) && !(chunkGenerator instanceof ChunkProviderEnd)) if(!(chunkGenerator instanceof ChunkProviderHell) && !(chunkGenerator instanceof ChunkProviderEnd))
{ {
for(int i=0;i<8;i++) for(int i = 0; i < 8; i++)
{ {
int randPosX = (chunkX*16) + random.nextInt(16); int randPosX = (chunkX*16) + random.nextInt(16);
int randPosY = random.nextInt(60); int randPosY = random.nextInt(60);
int randPosZ = (chunkZ*16) + random.nextInt(16); int randPosZ = (chunkZ*16) + random.nextInt(16);
(new WorldGenMinable(new ItemStack(Mekanism.OreBlock, 1, 0).itemID, 8)).generate(world, random, randPosX, randPosY, randPosZ); new WorldGenMinable(new ItemStack(Mekanism.OreBlock, 1, 0).itemID, 8).generate(world, random, randPosX, randPosY, randPosZ);
} }
} }
} }

View file

@ -8,7 +8,6 @@ import java.util.Random;
import universalelectricity.core.electricity.ElectricityPack; import universalelectricity.core.electricity.ElectricityPack;
import mekanism.api.ITileNetwork;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -1,4 +1,4 @@
package mekanism.api; package mekanism.common;
/** /**
* Tier information for Mekanism. This currently includes tiers for Energy Cubes and Smelting Factories. * Tier information for Mekanism. This currently includes tiers for Energy Cubes and Smelting Factories.

View file

@ -92,9 +92,9 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
if(inventory[3].itemID == Item.redstone.itemID && electricityStored+1000 <= MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY)) if(inventory[3].itemID == Item.redstone.itemID && electricityStored+1000 <= MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY))
{ {
setJoules(electricityStored + 1000); setJoules(electricityStored + 1000);
--inventory[3].stackSize; inventory[3].stackSize--;
if (inventory[3].stackSize <= 0) if(inventory[3].stackSize <= 0)
{ {
inventory[3] = null; inventory[3] = null;
} }
@ -112,7 +112,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
else if(upgradeTicks == UPGRADE_TICKS_REQUIRED) else if(upgradeTicks == UPGRADE_TICKS_REQUIRED)
{ {
upgradeTicks = 0; upgradeTicks = 0;
energyMultiplier+=1; energyMultiplier++;
inventory[4].stackSize--; inventory[4].stackSize--;
@ -131,7 +131,7 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
else if(upgradeTicks == UPGRADE_TICKS_REQUIRED) else if(upgradeTicks == UPGRADE_TICKS_REQUIRED)
{ {
upgradeTicks = 0; upgradeTicks = 0;
speedMultiplier+=1; speedMultiplier++;
inventory[4].stackSize--; inventory[4].stackSize--;
@ -153,18 +153,19 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
if(electricityStored >= ENERGY_PER_TICK && secondaryEnergyStored >= SECONDARY_ENERGY_PER_TICK) if(electricityStored >= ENERGY_PER_TICK && secondaryEnergyStored >= SECONDARY_ENERGY_PER_TICK)
{ {
if(canOperate() && (operatingTicks+1) < MekanismUtils.getTicks(speedMultiplier) && secondaryEnergyStored >= SECONDARY_ENERGY_PER_TICK) if(canOperate() && (operatingTicks+1) < MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED) && secondaryEnergyStored >= SECONDARY_ENERGY_PER_TICK)
{ {
++operatingTicks; operatingTicks++;
secondaryEnergyStored -= SECONDARY_ENERGY_PER_TICK; secondaryEnergyStored -= SECONDARY_ENERGY_PER_TICK;
electricityStored -= ENERGY_PER_TICK; electricityStored -= ENERGY_PER_TICK;
} }
else if((operatingTicks+1) >= MekanismUtils.getTicks(speedMultiplier)) else if((operatingTicks+1) >= MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED))
{ {
if(!worldObj.isRemote) if(!worldObj.isRemote)
{ {
operate(); operate();
} }
operatingTicks = 0; operatingTicks = 0;
secondaryEnergyStored -= SECONDARY_ENERGY_PER_TICK; secondaryEnergyStored -= SECONDARY_ENERGY_PER_TICK;
electricityStored -= ENERGY_PER_TICK; electricityStored -= ENERGY_PER_TICK;
@ -219,17 +220,16 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
{ {
ItemStack itemstack = RecipeHandler.getOutput(inventory[0], true, getRecipes()); ItemStack itemstack = RecipeHandler.getOutput(inventory[0], true, getRecipes());
if (inventory[0].stackSize <= 0) if(inventory[0].stackSize <= 0)
{ {
inventory[0] = null; inventory[0] = null;
} }
if (inventory[2] == null) if(inventory[2] == null)
{ {
inventory[2] = itemstack; inventory[2] = itemstack;
} }
else else {
{
inventory[2].stackSize += itemstack.stackSize; inventory[2].stackSize += itemstack.stackSize;
} }
} }
@ -237,29 +237,28 @@ public abstract class TileEntityAdvancedElectricMachine extends TileEntityBasicM
@Override @Override
public boolean canOperate() public boolean canOperate()
{ {
if (inventory[0] == null) if(inventory[0] == null)
{ {
return false; return false;
} }
ItemStack itemstack = RecipeHandler.getOutput(inventory[0], false, getRecipes()); ItemStack itemstack = RecipeHandler.getOutput(inventory[0], false, getRecipes());
if (itemstack == null) if(itemstack == null)
{ {
return false; return false;
} }
if (inventory[2] == null) if(inventory[2] == null)
{ {
return true; return true;
} }
if (!inventory[2].isItemEqual(itemstack)) if(!inventory[2].isItemEqual(itemstack))
{ {
return false; return false;
} }
else else {
{
return inventory[2].stackSize + itemstack.stackSize <= inventory[2].getMaxStackSize(); return inventory[2].stackSize + itemstack.stackSize <= inventory[2].getMaxStackSize();
} }
} }

View file

@ -2,7 +2,7 @@ package mekanism.common;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.SideData; import mekanism.api.SideData;
import mekanism.api.Tier.FactoryTier; import mekanism.common.Tier.FactoryTier;
public class TileEntityAdvancedFactory extends TileEntityFactory public class TileEntityAdvancedFactory extends TileEntityFactory
{ {

View file

@ -5,7 +5,6 @@ import java.util.ArrayList;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
import ic2.api.IWrenchable; import ic2.api.IWrenchable;
import mekanism.api.ITileNetwork;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;

View file

@ -7,9 +7,7 @@ import java.util.ArrayList;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
import mekanism.api.IActiveState;
import mekanism.api.IConfigurable; import mekanism.api.IConfigurable;
import mekanism.api.IElectricMachine;
import mekanism.api.IStrictEnergyAcceptor; import mekanism.api.IStrictEnergyAcceptor;
import mekanism.api.IUpgradeManagement; import mekanism.api.IUpgradeManagement;
import mekanism.api.SideData; import mekanism.api.SideData;
@ -109,15 +107,16 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
{ {
synchronized(Mekanism.audioHandler.sounds) synchronized(Mekanism.audioHandler.sounds)
{ {
handleSound(); updateSound();
} }
} }
} catch(NoSuchMethodError e) {} } catch(NoSuchMethodError e) {}
} }
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void handleSound() @Override
public void updateSound()
{ {
if(Mekanism.audioHandler != null) if(Mekanism.audioHandler != null)
{ {
@ -292,7 +291,7 @@ public abstract class TileEntityBasicMachine extends TileEntityElectricBlock imp
*/ */
public int getScaledProgress(int i) public int getScaledProgress(int i)
{ {
return operatingTicks*i / MekanismUtils.getTicks(speedMultiplier); return operatingTicks*i / MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED);
} }
public int getScaledUpgradeProgress(int i) public int getScaledUpgradeProgress(int i)

View file

@ -4,7 +4,6 @@ import java.util.ArrayList;
import com.google.common.io.ByteArrayDataInput; import com.google.common.io.ByteArrayDataInput;
import mekanism.api.ITileNetwork;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;

View file

@ -2,7 +2,6 @@ package mekanism.common;
import java.util.ArrayList; import java.util.ArrayList;
import mekanism.api.ITileNetwork;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;

View file

@ -15,7 +15,6 @@ import ic2.api.IWrenchable;
import ic2.api.energy.event.EnergyTileLoadEvent; import ic2.api.energy.event.EnergyTileLoadEvent;
import ic2.api.energy.event.EnergyTileUnloadEvent; import ic2.api.energy.event.EnergyTileUnloadEvent;
import ic2.api.energy.tile.IEnergyTile; import ic2.api.energy.tile.IEnergyTile;
import mekanism.api.ITileNetwork;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;

View file

@ -62,9 +62,9 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY)) if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY))
{ {
setJoules(electricityStored + 1000); setJoules(electricityStored + 1000);
--inventory[1].stackSize; inventory[1].stackSize--;
if (inventory[1].stackSize <= 0) if(inventory[1].stackSize <= 0)
{ {
inventory[1] = null; inventory[1] = null;
} }
@ -82,7 +82,7 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
else if(upgradeTicks == UPGRADE_TICKS_REQUIRED) else if(upgradeTicks == UPGRADE_TICKS_REQUIRED)
{ {
upgradeTicks = 0; upgradeTicks = 0;
energyMultiplier+=1; energyMultiplier++;
inventory[3].stackSize--; inventory[3].stackSize--;
@ -101,7 +101,7 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
else if(upgradeTicks == UPGRADE_TICKS_REQUIRED) else if(upgradeTicks == UPGRADE_TICKS_REQUIRED)
{ {
upgradeTicks = 0; upgradeTicks = 0;
speedMultiplier+=1; speedMultiplier++;
inventory[3].stackSize--; inventory[3].stackSize--;
@ -121,17 +121,18 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
if(electricityStored >= ENERGY_PER_TICK) if(electricityStored >= ENERGY_PER_TICK)
{ {
if(canOperate() && (operatingTicks+1) < MekanismUtils.getTicks(speedMultiplier)) if(canOperate() && (operatingTicks+1) < MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED))
{ {
operatingTicks++; operatingTicks++;
electricityStored -= ENERGY_PER_TICK; electricityStored -= ENERGY_PER_TICK;
} }
else if(canOperate() && (operatingTicks+1) >= MekanismUtils.getTicks(speedMultiplier)) else if(canOperate() && (operatingTicks+1) >= MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED))
{ {
if(!worldObj.isRemote) if(!worldObj.isRemote)
{ {
operate(); operate();
} }
operatingTicks = 0; operatingTicks = 0;
electricityStored -= ENERGY_PER_TICK; electricityStored -= ENERGY_PER_TICK;
} }
@ -159,12 +160,12 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
{ {
ItemStack itemstack = RecipeHandler.getOutput(inventory[0], true, getRecipes()); ItemStack itemstack = RecipeHandler.getOutput(inventory[0], true, getRecipes());
if (inventory[0].stackSize <= 0) if(inventory[0].stackSize <= 0)
{ {
inventory[0] = null; inventory[0] = null;
} }
if (inventory[2] == null) if(inventory[2] == null)
{ {
inventory[2] = itemstack; inventory[2] = itemstack;
} }
@ -176,24 +177,24 @@ public abstract class TileEntityElectricMachine extends TileEntityBasicMachine
@Override @Override
public boolean canOperate() public boolean canOperate()
{ {
if (inventory[0] == null) if(inventory[0] == null)
{ {
return false; return false;
} }
ItemStack itemstack = RecipeHandler.getOutput(inventory[0], false, getRecipes()); ItemStack itemstack = RecipeHandler.getOutput(inventory[0], false, getRecipes());
if (itemstack == null) if(itemstack == null)
{ {
return false; return false;
} }
if (inventory[2] == null) if(inventory[2] == null)
{ {
return true; return true;
} }
if (!inventory[2].isItemEqual(itemstack)) if(!inventory[2].isItemEqual(itemstack))
{ {
return false; return false;
} }

View file

@ -2,7 +2,7 @@ package mekanism.common;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.SideData; import mekanism.api.SideData;
import mekanism.api.Tier.FactoryTier; import mekanism.common.Tier.FactoryTier;
public class TileEntityEliteFactory extends TileEntityFactory public class TileEntityEliteFactory extends TileEntityFactory
{ {

View file

@ -17,7 +17,7 @@ import java.util.HashSet;
import mekanism.api.ICableOutputter; import mekanism.api.ICableOutputter;
import mekanism.api.IUniversalCable; import mekanism.api.IUniversalCable;
import mekanism.api.IStrictEnergyAcceptor; import mekanism.api.IStrictEnergyAcceptor;
import mekanism.api.Tier.EnergyCubeTier; import mekanism.common.Tier.EnergyCubeTier;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;

View file

@ -7,15 +7,14 @@ import ic2.api.ElectricItem;
import ic2.api.IElectricItem; import ic2.api.IElectricItem;
import ic2.api.energy.tile.IEnergySink; import ic2.api.energy.tile.IEnergySink;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.IActiveState;
import mekanism.api.IConfigurable; import mekanism.api.IConfigurable;
import mekanism.api.IStrictEnergyAcceptor; import mekanism.api.IStrictEnergyAcceptor;
import mekanism.api.IUpgradeManagement; import mekanism.api.IUpgradeManagement;
import mekanism.api.SideData; import mekanism.api.SideData;
import mekanism.api.Tier.FactoryTier;
import mekanism.client.IHasSound; import mekanism.client.IHasSound;
import mekanism.client.Sound; import mekanism.client.Sound;
import mekanism.common.IFactory.RecipeType; import mekanism.common.IFactory.RecipeType;
import mekanism.common.Tier.FactoryTier;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
@ -111,7 +110,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
{ {
synchronized(Mekanism.audioHandler.sounds) synchronized(Mekanism.audioHandler.sounds)
{ {
handleSound(); updateSound();
} }
} }
} catch(NoSuchMethodError e) {} } catch(NoSuchMethodError e) {}
@ -146,9 +145,9 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY)) if(inventory[1].itemID == Item.redstone.itemID && electricityStored+1000 <= MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY))
{ {
setJoules(electricityStored + 1000); setJoules(electricityStored + 1000);
--inventory[1].stackSize; inventory[1].stackSize--;
if (inventory[1].stackSize <= 0) if(inventory[1].stackSize <= 0)
{ {
inventory[1] = null; inventory[1] = null;
} }
@ -166,7 +165,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
else if(upgradeTicks == UPGRADE_TICKS_REQUIRED) else if(upgradeTicks == UPGRADE_TICKS_REQUIRED)
{ {
upgradeTicks = 0; upgradeTicks = 0;
energyMultiplier+=1; energyMultiplier++;
inventory[0].stackSize--; inventory[0].stackSize--;
@ -185,7 +184,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
else if(upgradeTicks == UPGRADE_TICKS_REQUIRED) else if(upgradeTicks == UPGRADE_TICKS_REQUIRED)
{ {
upgradeTicks = 0; upgradeTicks = 0;
speedMultiplier+=1; speedMultiplier++;
inventory[0].stackSize--; inventory[0].stackSize--;
@ -207,17 +206,18 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
{ {
if(electricityStored >= ENERGY_PER_TICK) if(electricityStored >= ENERGY_PER_TICK)
{ {
if(canOperate(getInputSlot(process), getOutputSlot(process)) && (progress[process]+1) < MekanismUtils.getTicks(speedMultiplier)) if(canOperate(getInputSlot(process), getOutputSlot(process)) && (progress[process]+1) < MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED))
{ {
++progress[process]; progress[process]++;
electricityStored -= ENERGY_PER_TICK; electricityStored -= ENERGY_PER_TICK;
} }
else if(canOperate(getInputSlot(process), getOutputSlot(process)) && (progress[process]+1) >= MekanismUtils.getTicks(speedMultiplier)) else if(canOperate(getInputSlot(process), getOutputSlot(process)) && (progress[process]+1) >= MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED))
{ {
if(!worldObj.isRemote) if(!worldObj.isRemote)
{ {
operate(getInputSlot(process), getOutputSlot(process)); operate(getInputSlot(process), getOutputSlot(process));
} }
progress[process] = 0; progress[process] = 0;
electricityStored -= ENERGY_PER_TICK; electricityStored -= ENERGY_PER_TICK;
} }
@ -253,7 +253,8 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void handleSound() @Override
public void updateSound()
{ {
if(Mekanism.audioHandler != null) if(Mekanism.audioHandler != null)
{ {
@ -295,7 +296,7 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
public int getScaledProgress(int i, int process) public int getScaledProgress(int i, int process)
{ {
return progress[process]*i / MekanismUtils.getTicks(speedMultiplier); return progress[process]*i / MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED);
} }
/** /**
@ -315,24 +316,24 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
public boolean canOperate(int inputSlot, int outputSlot) public boolean canOperate(int inputSlot, int outputSlot)
{ {
if (inventory[inputSlot] == null) if(inventory[inputSlot] == null)
{ {
return false; return false;
} }
ItemStack itemstack = RecipeType.values()[recipeType].getCopiedOutput(inventory[inputSlot], false); ItemStack itemstack = RecipeType.values()[recipeType].getCopiedOutput(inventory[inputSlot], false);
if (itemstack == null) if(itemstack == null)
{ {
return false; return false;
} }
if (inventory[outputSlot] == null) if(inventory[outputSlot] == null)
{ {
return true; return true;
} }
if (!inventory[outputSlot].isItemEqual(itemstack)) if(!inventory[outputSlot].isItemEqual(itemstack))
{ {
return false; return false;
} }
@ -343,19 +344,19 @@ public class TileEntityFactory extends TileEntityElectricBlock implements IEnerg
public void operate(int inputSlot, int outputSlot) public void operate(int inputSlot, int outputSlot)
{ {
if (!canOperate(inputSlot, outputSlot)) if(!canOperate(inputSlot, outputSlot))
{ {
return; return;
} }
ItemStack itemstack = RecipeType.values()[recipeType].getCopiedOutput(inventory[inputSlot], true); ItemStack itemstack = RecipeType.values()[recipeType].getCopiedOutput(inventory[inputSlot], true);
if (inventory[inputSlot].stackSize <= 0) if(inventory[inputSlot].stackSize <= 0)
{ {
inventory[inputSlot] = null; inventory[inputSlot] = null;
} }
if (inventory[outputSlot] == null) if(inventory[outputSlot] == null)
{ {
inventory[outputSlot] = itemstack; inventory[outputSlot] = itemstack;
} }

View file

@ -153,7 +153,7 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasS
} }
@Override @Override
public int getGas(EnumGas type) public int getGas(EnumGas type, Object... data)
{ {
if(type == gasType) if(type == gasType)
{ {
@ -164,7 +164,7 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasS
} }
@Override @Override
public void setGas(EnumGas type, int amount) public void setGas(EnumGas type, int amount, Object... data)
{ {
if(type == gasType) if(type == gasType)
{ {
@ -173,7 +173,7 @@ public class TileEntityGasTank extends TileEntityContainerBlock implements IGasS
} }
@Override @Override
public int getMaxGas(EnumGas type) public int getMaxGas(EnumGas type, Object... data)
{ {
return MAX_GAS; return MAX_GAS;
} }

View file

@ -8,7 +8,6 @@ import ic2.api.energy.tile.IEnergySink;
import java.util.ArrayList; import java.util.ArrayList;
import mekanism.api.EnumColor; import mekanism.api.EnumColor;
import mekanism.api.IActiveState;
import mekanism.api.IConfigurable; import mekanism.api.IConfigurable;
import mekanism.api.IStrictEnergyAcceptor; import mekanism.api.IStrictEnergyAcceptor;
import mekanism.api.IUpgradeManagement; import mekanism.api.IUpgradeManagement;
@ -112,7 +111,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
{ {
synchronized(Mekanism.audioHandler.sounds) synchronized(Mekanism.audioHandler.sounds)
{ {
handleSound(); updateSound();
} }
} }
} catch(NoSuchMethodError e) {} } catch(NoSuchMethodError e) {}
@ -139,9 +138,9 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
if(inventory[4].itemID == Item.redstone.itemID && electricityStored+1000 <= MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY)) if(inventory[4].itemID == Item.redstone.itemID && electricityStored+1000 <= MekanismUtils.getEnergy(energyMultiplier, MAX_ELECTRICITY))
{ {
setJoules(electricityStored + 1000); setJoules(electricityStored + 1000);
--inventory[4].stackSize; inventory[4].stackSize--;
if (inventory[4].stackSize <= 0) if(inventory[4].stackSize <= 0)
{ {
inventory[4] = null; inventory[4] = null;
} }
@ -159,7 +158,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
else if(upgradeTicks == UPGRADE_TICKS_REQUIRED) else if(upgradeTicks == UPGRADE_TICKS_REQUIRED)
{ {
upgradeTicks = 0; upgradeTicks = 0;
energyMultiplier+=1; energyMultiplier++;
inventory[0].stackSize--; inventory[0].stackSize--;
@ -178,7 +177,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
else if(upgradeTicks == UPGRADE_TICKS_REQUIRED) else if(upgradeTicks == UPGRADE_TICKS_REQUIRED)
{ {
upgradeTicks = 0; upgradeTicks = 0;
speedMultiplier+=1; speedMultiplier++;
inventory[0].stackSize--; inventory[0].stackSize--;
@ -210,7 +209,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
type = infuse.type; type = infuse.type;
inventory[1].stackSize--; inventory[1].stackSize--;
if (inventory[1].stackSize <= 0) if(inventory[1].stackSize <= 0)
{ {
inventory[1] = null; inventory[1] = null;
} }
@ -221,17 +220,18 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
if(electricityStored >= ENERGY_PER_TICK) if(electricityStored >= ENERGY_PER_TICK)
{ {
if(canOperate() && (operatingTicks+1) < MekanismUtils.getTicks(speedMultiplier)) if(canOperate() && (operatingTicks+1) < MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED))
{ {
++operatingTicks; operatingTicks++;
electricityStored -= ENERGY_PER_TICK; electricityStored -= ENERGY_PER_TICK;
} }
else if(canOperate() && (operatingTicks+1) >= MekanismUtils.getTicks(speedMultiplier)) else if(canOperate() && (operatingTicks+1) >= MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED))
{ {
if(!worldObj.isRemote) if(!worldObj.isRemote)
{ {
operate(); operate();
} }
operatingTicks = 0; operatingTicks = 0;
electricityStored -= ENERGY_PER_TICK; electricityStored -= ENERGY_PER_TICK;
} }
@ -261,7 +261,8 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void handleSound() @Override
public void updateSound()
{ {
if(Mekanism.audioHandler != null) if(Mekanism.audioHandler != null)
{ {
@ -292,7 +293,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
public void operate() public void operate()
{ {
if (!canOperate()) if(!canOperate())
{ {
return; return;
} }
@ -301,12 +302,12 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
infuseStored -= output.getInfuseRequired(); infuseStored -= output.getInfuseRequired();
if (inventory[2].stackSize <= 0) if(inventory[2].stackSize <= 0)
{ {
inventory[2] = null; inventory[2] = null;
} }
if (inventory[3] == null) if(inventory[3] == null)
{ {
inventory[3] = output.resource.copy(); inventory[3] = output.resource.copy();
} }
@ -317,14 +318,14 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
public boolean canOperate() public boolean canOperate()
{ {
if (inventory[2] == null) if(inventory[2] == null)
{ {
return false; return false;
} }
InfusionOutput output = RecipeHandler.getOutput(InfusionInput.getInfusion(type, infuseStored, inventory[2]), false, Recipe.METALLURGIC_INFUSER.get()); InfusionOutput output = RecipeHandler.getOutput(InfusionInput.getInfusion(type, infuseStored, inventory[2]), false, Recipe.METALLURGIC_INFUSER.get());
if (output == null) if(output == null)
{ {
return false; return false;
} }
@ -334,17 +335,16 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
return false; return false;
} }
if (inventory[3] == null) if(inventory[3] == null)
{ {
return true; return true;
} }
if (!inventory[3].isItemEqual(output.resource)) if(!inventory[3].isItemEqual(output.resource))
{ {
return false; return false;
} }
else else {
{
return inventory[3].stackSize + output.resource.stackSize <= inventory[3].getMaxStackSize(); return inventory[3].stackSize + output.resource.stackSize <= inventory[3].getMaxStackSize();
} }
} }
@ -361,7 +361,7 @@ public class TileEntityMetallurgicInfuser extends TileEntityElectricBlock implem
public int getScaledProgress(int i) public int getScaledProgress(int i)
{ {
return operatingTicks*i / MekanismUtils.getTicks(speedMultiplier); return operatingTicks*i / MekanismUtils.getTicks(speedMultiplier, TICKS_REQUIRED);
} }
public int getScaledUpgradeProgress(int i) public int getScaledUpgradeProgress(int i)

View file

@ -35,7 +35,7 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
} }
@Override @Override
public int getGas(EnumGas type) public int getGas(EnumGas type, Object... data)
{ {
if(type == EnumGas.OXYGEN) if(type == EnumGas.OXYGEN)
{ {
@ -46,7 +46,7 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
} }
@Override @Override
public void setGas(EnumGas type, int amount) public void setGas(EnumGas type, int amount, Object... data)
{ {
if(type == EnumGas.OXYGEN) if(type == EnumGas.OXYGEN)
{ {
@ -55,7 +55,7 @@ public class TileEntityPurificationChamber extends TileEntityAdvancedElectricMac
} }
@Override @Override
public int getMaxGas(EnumGas type) public int getMaxGas(EnumGas type, Object... data)
{ {
if(type == EnumGas.OXYGEN) if(type == EnumGas.OXYGEN)
{ {

View file

@ -21,13 +21,13 @@ public class TileEntityTheoreticalElementizer extends TileEntityAdvancedElectric
@Override @Override
public HashMap getRecipes() public HashMap getRecipes()
{ {
return (HashMap)Collections.synchronizedMap(new HashMap<ItemStack, ItemStack>()); return new HashMap<ItemStack, ItemStack>();
} }
@Override @Override
public void operate() public void operate()
{ {
if (!canOperate()) if(!canOperate())
{ {
return; return;
} }
@ -36,7 +36,7 @@ public class TileEntityTheoreticalElementizer extends TileEntityAdvancedElectric
inventory[0].stackSize--; inventory[0].stackSize--;
if (inventory[0].stackSize <= 0) if(inventory[0].stackSize <= 0)
{ {
inventory[0] = null; inventory[0] = null;
} }
@ -47,22 +47,12 @@ public class TileEntityTheoreticalElementizer extends TileEntityAdvancedElectric
@Override @Override
public boolean canOperate() public boolean canOperate()
{ {
if (inventory[0] == null) if(inventory[0] == null)
{ {
return false; return false;
} }
if(electricityStored < ENERGY_PER_TICK)
{
return false;
}
if(secondaryEnergyStored < SECONDARY_ENERGY_PER_TICK)
{
return false;
}
if (inventory[2] != null) if(inventory[2] != null)
{ {
return false; return false;
} }
@ -73,7 +63,7 @@ public class TileEntityTheoreticalElementizer extends TileEntityAdvancedElectric
@Override @Override
public int getFuelTicks(ItemStack itemstack) public int getFuelTicks(ItemStack itemstack)
{ {
if (itemstack.itemID == Item.diamond.itemID) return 1000; if(itemstack.itemID == Item.diamond.itemID) return 1000;
return 0; return 0;
} }

View file

@ -89,6 +89,7 @@ public class Version
public static Version get(String s) public static Version get(String s)
{ {
String[] split = s.replace('.', ':').split(":"); String[] split = s.replace('.', ':').split(":");
if(split.length != 3) if(split.length != 3)
{ {
System.out.println(split.length); System.out.println(split.length);

View file

@ -5,7 +5,7 @@ import java.util.Random;
import buildcraft.api.tools.IToolWrench; import buildcraft.api.tools.IToolWrench;
import mekanism.api.IActiveState; import mekanism.common.IActiveState;
import mekanism.common.IBoundingBlock; import mekanism.common.IBoundingBlock;
import mekanism.common.ISustainedInventory; import mekanism.common.ISustainedInventory;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;

View file

@ -22,7 +22,7 @@ import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "5.5.2", dependencies = "required-after:Mekanism") @Mod(modid = "MekanismGenerators", name = "MekanismGenerators", version = "5.5.4", dependencies = "required-after:Mekanism")
@NetworkMod(clientSideRequired = true, serverSideRequired = false) @NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class MekanismGenerators public class MekanismGenerators
{ {
@ -77,13 +77,13 @@ public class MekanismGenerators
"SES", "SES", "III", Character.valueOf('S'), new ItemStack(Generator, 1, 1), Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), Item.ingotIron "SES", "SES", "III", Character.valueOf('S'), new ItemStack(Generator, 1, 1), Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), Item.ingotIron
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 4), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 4), new Object[] {
"RER", "BIB", "NEN", Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('B'), BioFuel, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 9), Character.valueOf('N'), Item.ingotIron "RER", "BIB", "NEN", Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('B'), BioFuel, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 8), Character.valueOf('N'), Item.ingotIron
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 2), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 2), new Object[] {
"IRI", "ECE", "IRI", Character.valueOf('I'), Item.ingotIron, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('C'), ElectrolyticCore "IRI", "ECE", "IRI", Character.valueOf('I'), Item.ingotIron, Character.valueOf('R'), Item.redstone, Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('C'), ElectrolyticCore
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 3), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(Generator, 1, 3), new Object[] {
"PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 9), Character.valueOf('C'), ElectrolyticCore "PEP", "ICI", "PEP", Character.valueOf('P'), "ingotOsmium", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('I'), new ItemStack(Mekanism.BasicBlock, 1, 8), Character.valueOf('C'), ElectrolyticCore
})); }));
CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(ElectrolyticCore), new Object[] { CraftingManager.getInstance().getRecipeList().add(new ShapedOreRecipe(new ItemStack(ElectrolyticCore), new Object[] {
"EPE", "IEG", "EPE", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('P'), "dustOsmium", Character.valueOf('I'), "dustIron", Character.valueOf('G'), "dustGold" "EPE", "IEG", "EPE", Character.valueOf('E'), Mekanism.EnrichedAlloy, Character.valueOf('P'), "dustOsmium", Character.valueOf('I'), "dustIron", Character.valueOf('G'), "dustGold"

View file

@ -364,13 +364,13 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
} }
@Override @Override
public int getMaxGas(EnumGas type) public int getMaxGas(EnumGas type, Object... data)
{ {
return MAX_GAS; return MAX_GAS;
} }
@Override @Override
public void setGas(EnumGas type, int amount) public void setGas(EnumGas type, int amount, Object... data)
{ {
if(type == EnumGas.HYDROGEN) if(type == EnumGas.HYDROGEN)
{ {
@ -383,7 +383,7 @@ public class TileEntityElectrolyticSeparator extends TileEntityElectricBlock imp
} }
@Override @Override
public int getGas(EnumGas type) public int getGas(EnumGas type, Object... data)
{ {
if(type == EnumGas.HYDROGEN) if(type == EnumGas.HYDROGEN)
{ {

View file

@ -16,12 +16,12 @@ import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
import mekanism.api.IActiveState;
import mekanism.api.ICableOutputter; import mekanism.api.ICableOutputter;
import mekanism.api.IUniversalCable; import mekanism.api.IUniversalCable;
import mekanism.client.IHasSound; import mekanism.client.IHasSound;
import mekanism.client.Sound; import mekanism.client.Sound;
import mekanism.common.CableUtils; import mekanism.common.CableUtils;
import mekanism.common.IActiveState;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.MekanismUtils; import mekanism.common.MekanismUtils;
import mekanism.common.PacketHandler; import mekanism.common.PacketHandler;
@ -88,7 +88,7 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
{ {
synchronized(Mekanism.audioHandler.sounds) synchronized(Mekanism.audioHandler.sounds)
{ {
handleSound(); updateSound();
} }
} }
} catch(NoSuchMethodError e) {} } catch(NoSuchMethodError e) {}
@ -144,7 +144,8 @@ public abstract class TileEntityGenerator extends TileEntityElectricBlock implem
} }
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void handleSound() @Override
public void updateSound()
{ {
if(Mekanism.audioHandler != null) if(Mekanism.audioHandler != null)
{ {

View file

@ -115,7 +115,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
} }
@Override @Override
public void setGas(EnumGas type, int amount) public void setGas(EnumGas type, int amount, Object... data)
{ {
if(type == EnumGas.HYDROGEN) if(type == EnumGas.HYDROGEN)
{ {
@ -124,7 +124,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
} }
@Override @Override
public int getGas(EnumGas type) public int getGas(EnumGas type, Object... data)
{ {
if(type == EnumGas.HYDROGEN) if(type == EnumGas.HYDROGEN)
{ {
@ -272,7 +272,7 @@ public class TileEntityHydrogenGenerator extends TileEntityGenerator implements
} }
@Override @Override
public int getMaxGas(EnumGas type) public int getMaxGas(EnumGas type, Object... data)
{ {
if(type == EnumGas.HYDROGEN) if(type == EnumGas.HYDROGEN)
{ {

View file

@ -38,7 +38,7 @@ public class TileEntitySolarGenerator extends TileEntityGenerator
} }
@Override @Override
public void handleSound() {} public void updateSound() {/* No super - prevent sound updating */}
@Override @Override
public int getSizeInventorySide(ForgeDirection side) public int getSizeInventorySide(ForgeDirection side)

View file

@ -22,7 +22,7 @@ import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod; import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.registry.LanguageRegistry; import cpw.mods.fml.common.registry.LanguageRegistry;
@Mod(modid = "MekanismTools", name = "MekanismTools", version = "5.5.2", dependencies = "required-after:Mekanism") @Mod(modid = "MekanismTools", name = "MekanismTools", version = "5.5.4", dependencies = "required-after:Mekanism")
@NetworkMod(clientSideRequired = true, serverSideRequired = false) @NetworkMod(clientSideRequired = true, serverSideRequired = false)
public class MekanismTools public class MekanismTools
{ {