aboutsummaryrefslogtreecommitdiff
path: root/main/java/gregtech/api/interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'main/java/gregtech/api/interfaces')
-rw-r--r--main/java/gregtech/api/interfaces/IColorModulationContainer.java5
-rw-r--r--main/java/gregtech/api/interfaces/ICondition.java104
-rw-r--r--main/java/gregtech/api/interfaces/IDamagableItem.java7
-rw-r--r--main/java/gregtech/api/interfaces/IDebugableBlock.java26
-rw-r--r--main/java/gregtech/api/interfaces/IDescribable.java11
-rw-r--r--main/java/gregtech/api/interfaces/IFoodStat.java21
-rw-r--r--main/java/gregtech/api/interfaces/IIconContainer.java21
-rw-r--r--main/java/gregtech/api/interfaces/IItemBehaviour.java30
-rw-r--r--main/java/gregtech/api/interfaces/IItemContainer.java24
-rw-r--r--main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java15
-rw-r--r--main/java/gregtech/api/interfaces/IProjectileItem.java16
-rw-r--r--main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java66
-rw-r--r--main/java/gregtech/api/interfaces/ISubTagContainer.java20
-rw-r--r--main/java/gregtech/api/interfaces/ITexture.java15
-rw-r--r--main/java/gregtech/api/interfaces/IToolStats.java147
-rw-r--r--main/java/gregtech/api/interfaces/internal/IBCTileEntity.java8
-rw-r--r--main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java7
-rw-r--r--main/java/gregtech/api/interfaces/internal/IGT_Mod.java34
-rw-r--r--main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java412
-rw-r--r--main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java13
-rw-r--r--main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java43
-rw-r--r--main/java/gregtech/api/interfaces/internal/IUETileEntity.java6
-rw-r--r--main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java383
-rw-r--r--main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java9
-rw-r--r--main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java96
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java99
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java14
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/ICoverable.java35
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java29
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java40
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java89
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java86
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java31
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java16
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java20
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java124
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IHasInventory.java33
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java132
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java16
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java69
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java9
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java37
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java29
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java17
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java10
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/ITurnable.java33
-rw-r--r--main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java42
47 files changed, 0 insertions, 2549 deletions
diff --git a/main/java/gregtech/api/interfaces/IColorModulationContainer.java b/main/java/gregtech/api/interfaces/IColorModulationContainer.java
deleted file mode 100644
index b1151cf808..0000000000
--- a/main/java/gregtech/api/interfaces/IColorModulationContainer.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package gregtech.api.interfaces;
-
-public interface IColorModulationContainer {
- public short[] getRGBA();
-}
diff --git a/main/java/gregtech/api/interfaces/ICondition.java b/main/java/gregtech/api/interfaces/ICondition.java
deleted file mode 100644
index 507315ee91..0000000000
--- a/main/java/gregtech/api/interfaces/ICondition.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package gregtech.api.interfaces;
-
-public interface ICondition<O> {
- public boolean isTrue(O aObject);
-
- // Utility Classes for adding relations between Conditions.
-
- public static class Not<O> implements ICondition<O> {
- private final ICondition<O> mCondition;
-
- public Not(ICondition<O> aCondition) {
- mCondition = aCondition;
- }
-
- @Override
- public boolean isTrue(O aObject) {
- return !mCondition.isTrue(aObject);
- }
- }
-
- public static class Or<O> implements ICondition<O> {
- private final ICondition<O>[] mConditions;
-
- public Or(ICondition<O>... aConditions) {
- mConditions = aConditions;
- }
-
- @Override
- public boolean isTrue(O aObject) {
- for (ICondition<O> tCondition : mConditions) if (tCondition.isTrue(aObject)) return true;
- return false;
- }
- }
-
- public static class Nor<O> implements ICondition<O> {
- private final ICondition<O>[] mConditions;
-
- public Nor(ICondition<O>... aConditions) {
- mConditions = aConditions;
- }
-
- @Override
- public boolean isTrue(O aObject) {
- for (ICondition<O> tCondition : mConditions) if (tCondition.isTrue(aObject)) return false;
- return true;
- }
- }
-
- public static class And<O> implements ICondition<O> {
- private final ICondition<O>[] mConditions;
-
- public And(ICondition<O>... aConditions) {
- mConditions = aConditions;
- }
-
- @Override
- public boolean isTrue(O aObject) {
- for (ICondition<O> tCondition : mConditions) if (!tCondition.isTrue(aObject)) return false;
- return true;
- }
- }
-
- public static class Nand<O> implements ICondition<O> {
- private final ICondition<O>[] mConditions;
-
- public Nand(ICondition<O>... aConditions) {
- mConditions = aConditions;
- }
-
- @Override
- public boolean isTrue(O aObject) {
- for (ICondition<O> tCondition : mConditions) if (!tCondition.isTrue(aObject)) return true;
- return false;
- }
- }
-
- public static class Xor<O> implements ICondition<O> {
- private final ICondition<O> mCondition1, mCondition2;
-
- public Xor(ICondition<O> aCondition1, ICondition<O> aCondition2) {
- mCondition1 = aCondition1;
- mCondition2 = aCondition2;
- }
-
- @Override
- public boolean isTrue(O aObject) {
- return mCondition1.isTrue(aObject) != mCondition2.isTrue(aObject);
- }
- }
-
- public static class Equal<O> implements ICondition<O> {
- private final ICondition<O> mCondition1, mCondition2;
-
- public Equal(ICondition<O> aCondition1, ICondition<O> aCondition2) {
- mCondition1 = aCondition1;
- mCondition2 = aCondition2;
- }
-
- @Override
- public boolean isTrue(O aObject) {
- return mCondition1.isTrue(aObject) == mCondition2.isTrue(aObject);
- }
- }
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IDamagableItem.java b/main/java/gregtech/api/interfaces/IDamagableItem.java
deleted file mode 100644
index f47c65f545..0000000000
--- a/main/java/gregtech/api/interfaces/IDamagableItem.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package gregtech.api.interfaces;
-
-import net.minecraft.item.ItemStack;
-
-public interface IDamagableItem {
- public boolean doDamageToItem(ItemStack aStack, int aVanillaDamage);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IDebugableBlock.java b/main/java/gregtech/api/interfaces/IDebugableBlock.java
deleted file mode 100644
index ce95982018..0000000000
--- a/main/java/gregtech/api/interfaces/IDebugableBlock.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package gregtech.api.interfaces;
-
-import java.util.ArrayList;
-
-import net.minecraft.entity.player.EntityPlayer;
-
-/**
- * You are allowed to include this File in your Download, as i will not change it.
- */
-public interface IDebugableBlock {
- /**
- * Returns a Debug Message, for a generic DebugItem
- * Blocks have to implement this interface NOT TileEntities!
- * @param aPlayer the Player, who rightclicked with his Debug Item
- * @param aX Block-Coordinate
- * @param aY Block-Coordinate
- * @param aZ Block-Coordinate
- * @param aLogLevel the Log Level of the Debug Item.
- * 0 = Obvious
- * 1 = Visible for the regular Scanner
- * 2 = Only visible to more advanced Scanners
- * 3 = Debug ONLY
- * @return a String-Array containing the DebugInfo, every Index is a separate line (0 = first Line)
- */
- public ArrayList<String> getDebugInfo(EntityPlayer aPlayer, int aX, int aY, int aZ, int aLogLevel);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IDescribable.java b/main/java/gregtech/api/interfaces/IDescribable.java
deleted file mode 100644
index 7ccf1a6627..0000000000
--- a/main/java/gregtech/api/interfaces/IDescribable.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package gregtech.api.interfaces;
-
-/**
- * To get simple things like a ToolTip Description
- */
-public interface IDescribable {
- /**
- * The Tooltip Text
- */
- public String[] getDescription();
-}
diff --git a/main/java/gregtech/api/interfaces/IFoodStat.java b/main/java/gregtech/api/interfaces/IFoodStat.java
deleted file mode 100644
index cb01e102c6..0000000000
--- a/main/java/gregtech/api/interfaces/IFoodStat.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package gregtech.api.interfaces;
-
-import gregtech.api.items.GT_MetaBase_Item;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.EnumAction;
-import net.minecraft.item.ItemStack;
-
-public interface IFoodStat {
- /** Warning the "aPlayer" Parameter may be null! */
- public int getFoodLevel(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer);
- /** Warning the "aPlayer" Parameter may be null! */
- public float getSaturation(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer);
- /** Warning the "aPlayer" Parameter may be null! */
- public boolean alwaysEdible(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer);
- /** Warning the "aPlayer" Parameter may be null! */
- public boolean isRotten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer);
- /** Warning the "aPlayer" Parameter may be null! */
- public EnumAction getFoodAction(GT_MetaBase_Item aItem, ItemStack aStack);
-
- public void onEaten(GT_MetaBase_Item aItem, ItemStack aStack, EntityPlayer aPlayer);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IIconContainer.java b/main/java/gregtech/api/interfaces/IIconContainer.java
deleted file mode 100644
index dc9a845f06..0000000000
--- a/main/java/gregtech/api/interfaces/IIconContainer.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package gregtech.api.interfaces;
-
-import net.minecraft.util.IIcon;
-import net.minecraft.util.ResourceLocation;
-
-public interface IIconContainer {
- /**
- * @return A regular Icon.
- */
- public IIcon getIcon();
-
- /**
- * @return Icon of the Overlay (or null if there is no Icon)
- */
- public IIcon getOverlayIcon();
-
- /**
- * @return the Default Texture File for this Icon.
- */
- public ResourceLocation getTextureFile();
-}
diff --git a/main/java/gregtech/api/interfaces/IItemBehaviour.java b/main/java/gregtech/api/interfaces/IItemBehaviour.java
deleted file mode 100644
index 1f28b6a696..0000000000
--- a/main/java/gregtech/api/interfaces/IItemBehaviour.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package gregtech.api.interfaces;
-
-import gregtech.api.enums.SubTag;
-import gregtech.api.items.GT_MetaBase_Item;
-
-import java.util.List;
-
-import net.minecraft.dispenser.IBlockSource;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.projectile.EntityArrow;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-public interface IItemBehaviour<E extends Item> {
- public boolean onLeftClickEntity(E aItem, ItemStack aStack, EntityPlayer aPlayer, Entity aEntity);
- public boolean onItemUse(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ);
- public boolean onItemUseFirst(E aItem, ItemStack aStack, EntityPlayer aPlayer, World aWorld, int aX, int aY, int aZ, int aSide, float hitX, float hitY, float hitZ);
- public ItemStack onItemRightClick(E aItem, ItemStack aStack, World aWorld, EntityPlayer aPlayer);
- public List<String> getAdditionalToolTips(E aItem, List<String> aList, ItemStack aStack);
- public void onUpdate(E aItem, ItemStack aStack, World aWorld, Entity aPlayer, int aTimer, boolean aIsInHand);
- public boolean isItemStackUsable(E aItem, ItemStack aStack);
- public boolean canDispense(E aItem, IBlockSource aSource, ItemStack aStack);
- public ItemStack onDispense(E aItem, IBlockSource aSource, ItemStack aStack);
- public boolean hasProjectile(GT_MetaBase_Item aItem, SubTag aProjectileType, ItemStack aStack);
- public EntityArrow getProjectile(E aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ);
- public EntityArrow getProjectile(E aItem, SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IItemContainer.java b/main/java/gregtech/api/interfaces/IItemContainer.java
deleted file mode 100644
index e61553ce7d..0000000000
--- a/main/java/gregtech/api/interfaces/IItemContainer.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package gregtech.api.interfaces;
-
-import net.minecraft.block.Block;
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-
-public interface IItemContainer {
- public Item getItem();
- public Block getBlock();
- public boolean isStackEqual(Object aStack);
- public boolean isStackEqual(Object aStack, boolean aWildcard, boolean aIgnoreNBT);
- public ItemStack get(long aAmount, Object... aReplacements);
- public ItemStack getWildcard(long aAmount, Object... aReplacements);
- public ItemStack getUndamaged(long aAmount, Object... aReplacements);
- public ItemStack getAlmostBroken(long aAmount, Object... aReplacements);
- public ItemStack getWithDamage(long aAmount, long aMetaValue, Object... aReplacements);
- public IItemContainer set(Item aItem);
- public IItemContainer set(ItemStack aStack);
- public IItemContainer registerOre(Object... aOreNames);
- public IItemContainer registerWildcardAsOre(Object... aOreNames);
- public ItemStack getWithCharge(long aAmount, int aEnergy, Object... aReplacements);
- public ItemStack getWithName(long aAmount, String aDisplayName, Object... aReplacements);
- public boolean hasBeenSet();
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java b/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java
deleted file mode 100644
index 4535c4d6c8..0000000000
--- a/main/java/gregtech/api/interfaces/IOreRecipeRegistrator.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package gregtech.api.interfaces;
-
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OrePrefixes;
-import net.minecraft.item.ItemStack;
-
-public interface IOreRecipeRegistrator {
- /**
- * Contains a Code Fragment, used in the OrePrefix to register Recipes. Better than using a switch/case, like I did before.
- * @param aPrefix always != null
- * @param aMaterial always != null, and can be == _NULL if the Prefix is Self Referencing or not Material based!
- * @param aStack always != null
- */
- public void registerOre(OrePrefixes aPrefix, Materials aMaterial, String aOreDictName, String aModName, ItemStack aStack);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IProjectileItem.java b/main/java/gregtech/api/interfaces/IProjectileItem.java
deleted file mode 100644
index 0b06a65373..0000000000
--- a/main/java/gregtech/api/interfaces/IProjectileItem.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package gregtech.api.interfaces;
-
-import gregtech.api.enums.SubTag;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.projectile.EntityArrow;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-public interface IProjectileItem {
- /** @return if this Item has an Arrow Entity */
- public boolean hasProjectile(SubTag aProjectileType, ItemStack aStack);
- /** @return an Arrow Entity to be spawned. If null then this is not an Arrow. Note: Other Projectiles still extend EntityArrow */
- public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, double aX, double aY, double aZ);
- /** @return an Arrow Entity to be spawned. If null then this is not an Arrow. Note: Other Projectiles still extend EntityArrow */
- public EntityArrow getProjectile(SubTag aProjectileType, ItemStack aStack, World aWorld, EntityLivingBase aEntity, float aSpeed);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java b/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java
deleted file mode 100644
index 13c63b7555..0000000000
--- a/main/java/gregtech/api/interfaces/IRedstoneCircuitBlock.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package gregtech.api.interfaces;
-
-import gregtech.api.interfaces.tileentity.ICoverable;
-import gregtech.api.util.GT_CoverBehavior;
-import net.minecraft.block.Block;
-import net.minecraft.tileentity.TileEntity;
-
-/**
- * Implemented by the MetaTileEntity of the Redstone Circuit Block
- */
-public interface IRedstoneCircuitBlock {
- /**
- * The Output Direction the Circuit Block is Facing
- */
- public byte getOutputFacing();
-
- /**
- * sets Output Redstone State at Side
- */
- public boolean setRedstone(byte aStrength, byte aSide);
-
- /**
- * returns Output Redstone State at Side
- * Note that setRedstone checks if there is a Difference between the old and the new Setting before consuming any Energy
- */
- public byte getOutputRedstone(byte aSide);
-
- /**
- * returns Input Redstone Signal at Side
- */
- public byte getInputRedstone(byte aSide);
-
- /**
- * If this Side is Covered up and therefor not doing any Redstone
- */
- public GT_CoverBehavior getCover(byte aSide);
-
- public int getCoverID(byte aSide);
-
- public int getCoverVariable(byte aSide);
-
- /**
- * returns whatever Block-ID is adjacent to the Redstone Circuit Block
- */
- public Block getBlockAtSide(byte aSide);
-
- /**
- * returns whatever Meta-Value is adjacent to the Redstone Circuit Block
- */
- public byte getMetaIDAtSide(byte aSide);
-
- /**
- * returns whatever TileEntity is adjacent to the Redstone Circuit Block
- */
- public TileEntity getTileEntityAtSide(byte aSide);
-
- /**
- * returns whatever TileEntity is used by the Redstone Circuit Block
- */
- public ICoverable getOwnTileEntity();
-
- /**
- * returns worldObj.rand.nextInt(aRange)
- */
- public int getRandom(int aRange);
-}
diff --git a/main/java/gregtech/api/interfaces/ISubTagContainer.java b/main/java/gregtech/api/interfaces/ISubTagContainer.java
deleted file mode 100644
index ae7d59ec1d..0000000000
--- a/main/java/gregtech/api/interfaces/ISubTagContainer.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package gregtech.api.interfaces;
-
-import gregtech.api.enums.SubTag;
-
-public interface ISubTagContainer {
- /**
- * @return if the Tag is inside the List.
- */
- public boolean contains(SubTag aTag);
-
- /**
- * @return The ISubTagContainer you called this Function on, for convenience.
- */
- public ISubTagContainer add(SubTag... aTags);
-
- /**
- * @return if the Tag was there before it has been removed.
- */
- public boolean remove(SubTag aTag);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/ITexture.java b/main/java/gregtech/api/interfaces/ITexture.java
deleted file mode 100644
index 534a738c45..0000000000
--- a/main/java/gregtech/api/interfaces/ITexture.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package gregtech.api.interfaces;
-
-import net.minecraft.block.Block;
-import net.minecraft.client.renderer.RenderBlocks;
-
-public interface ITexture {
- public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
- public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
- public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
- public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
- public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
- public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ);
-
- public boolean isValidTexture();
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/IToolStats.java b/main/java/gregtech/api/interfaces/IToolStats.java
deleted file mode 100644
index 9f894bfac8..0000000000
--- a/main/java/gregtech/api/interfaces/IToolStats.java
+++ /dev/null
@@ -1,147 +0,0 @@
-package gregtech.api.interfaces;
-
-import gregtech.api.items.GT_MetaGenerated_Tool;
-
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.enchantment.Enchantment;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.EntityLivingBase;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.DamageSource;
-import net.minecraftforge.event.world.BlockEvent;
-
-/**
- * The Stats for GT Tools. Not including any Material Modifiers.
- *
- * And this is supposed to not have any ItemStack Parameters as these are generic Stats.
- */
-public interface IToolStats {
- /**
- * Called when aPlayer crafts this Tool
- */
- public void onToolCrafted(ItemStack aStack, EntityPlayer aPlayer);
-
- /**
- * Called when this gets added to a Tool Item
- */
- public void onStatsAddedToTool(GT_MetaGenerated_Tool aItem, int aID);
-
- /**
- * @return Damage the Tool receives when breaking a Block. 100 is one Damage Point (or 100 EU).
- */
- public int getToolDamagePerBlockBreak();
-
- /**
- * @return Damage the Tool receives when converting the drops of a Block. 100 is one Damage Point (or 100 EU).
- */
- public int getToolDamagePerDropConversion();
-
- /**
- * @return Damage the Tool receives when being used as Container Item. 100 is one use, however it is usually 8 times more than normal.
- */
- public int getToolDamagePerContainerCraft();
-
- /**
- * @return Damage the Tool receives when being used as Weapon, 200 is the normal Value, 100 for actual Weapons.
- */
- public int getToolDamagePerEntityAttack();
-
- /**
- * @return Basic Quality of the Tool, 0 is normal. If increased, it will increase the general quality of all Tools of this Type. Decreasing is also possible.
- */
- public int getBaseQuality();
-
- /**
- * @return The Damage Bonus for this Type of Tool against Mobs. 1.0F is normal punch.
- */
- public float getBaseDamage();
-
- /**
- * @return This gets the Hurt Resistance time for Entities getting hit. (always does 1 as minimum)
- */
- public int getHurtResistanceTime(int aOriginalHurtResistance, Entity aEntity);
-
- /**
- * @return This is a multiplier for the Tool Speed. 1.0F = no special Speed.
- */
- public float getSpeedMultiplier();
-
- /**
- * @return This is a multiplier for the Tool Speed. 1.0F = no special Durability.
- */
- public float getMaxDurabilityMultiplier();
-
- public DamageSource getDamageSource(EntityLivingBase aPlayer, Entity aEntity);
-
- public String getMiningSound();
- public String getCraftingSound();
- public String getEntityHitSound();
- public String getBreakingSound();
-
- public Enchantment[] getEnchantments(ItemStack aStack);
- public int[] getEnchantmentLevels(ItemStack aStack);
-
- /**
- * @return If this Tool can be used for blocking Damage like a Sword.
- */
- public boolean canBlock();
-
- /**
- * @return If this Tool can be used as an RC Crowbar.
- */
- public boolean isCrowbar();
-
- /**
- * @return If this Tool can be used as an RC Crowbar.
- */
- public boolean isGrafter();
-
- /**
- * @return If this Tool can be used as Weapon i.e. if that is the main purpose.
- */
- public boolean isWeapon();
-
- /**
- * @return If this Tool is a Ranged Weapon. Return false at isWeapon unless you have a Blade attached to your Bow/Gun or something
- */
- public boolean isRangedWeapon();
-
- /**
- * @return If this Tool can be used as Weapon i.e. if that is the main purpose.
- */
- public boolean isMiningTool();
-
- /**
- * aBlock.getHarvestTool(aMetaData) can return the following Values for example.
- * "axe", "pickaxe", "sword", "shovel", "hoe", "grafter", "saw", "wrench", "crowbar", "file", "hammer", "plow", "plunger", "scoop", "screwdriver", "sense", "scythe", "softhammer", "cutter", "plasmatorch"
- * @return If this is a minable Block. Tool Quality checks (like Diamond Tier or something) are separate from this check.
- */
- public boolean isMinableBlock(Block aBlock, byte aMetaData);
-
- /**
- * This lets you modify the Drop List, when this type of Tool has been used.
- * @return the Amount of modified Items.
- */
- public int convertBlockDrops(List<ItemStack> aDrops, ItemStack aStack, EntityPlayer aPlayer, Block aBlock, int aX, int aY, int aZ, byte aMetaData, int aFortune, boolean aSilkTouch, BlockEvent.HarvestDropsEvent aEvent);
-
- /**
- * @return Returns a broken Version of the Item.
- */
- public ItemStack getBrokenItem(ItemStack aStack);
-
- /**
- * @return the Damage actually done to the Mob.
- */
- public float getNormalDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer);
-
- /**
- * @return the Damage actually done to the Mob.
- */
- public float getMagicDamageAgainstEntity(float aOriginalDamage, Entity aEntity, ItemStack aStack, EntityPlayer aPlayer);
-
- public IIconContainer getIcon(boolean aIsToolHead, ItemStack aStack);
- public short[] getRGBa(boolean aIsToolHead, ItemStack aStack);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java b/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java
deleted file mode 100644
index 3d471731ff..0000000000
--- a/main/java/gregtech/api/interfaces/internal/IBCTileEntity.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package gregtech.api.interfaces.internal;
-
-/**
- * A simple compound Interface for generic BuildCraft Code.
- */
-public interface IBCTileEntity /*extends IPowerReceptor*/ {
- //
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java b/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java
deleted file mode 100644
index a886cf67ac..0000000000
--- a/main/java/gregtech/api/interfaces/internal/IGT_CraftingRecipe.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package gregtech.api.interfaces.internal;
-
-import net.minecraft.item.crafting.IRecipe;
-
-public interface IGT_CraftingRecipe extends IRecipe {
- public boolean isRemovable();
-}
diff --git a/main/java/gregtech/api/interfaces/internal/IGT_Mod.java b/main/java/gregtech/api/interfaces/internal/IGT_Mod.java
deleted file mode 100644
index f64d120ec8..0000000000
--- a/main/java/gregtech/api/interfaces/internal/IGT_Mod.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package gregtech.api.interfaces.internal;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.world.World;
-
-/**
- * Interface used by the Mods Main Class to reference to internals.
- *
- * Don't even think about including this File in your Mod.
- */
-public interface IGT_Mod {
- /** This means that Server specific Basefiles are definitely existing! Not if the World is actually server side or not! */
- public boolean isServerSide();
- /** This means that Client specific Basefiles are definitely existing! Not if the World is actually client side or not! */
- public boolean isClientSide();
- /** This means that Bukkit specific Basefiles are definitely existing! Not if the World is actually bukkit server or not! */
- public boolean isBukkitSide();
- /** works only ClientSide otherwise returns null */
- public EntityPlayer getThePlayer();
-
- //---------- Internal Usage Only ----------
-
- /**
- * works only ClientSide otherwise returns 0
- * @return the Index of the added Armor
- */
- public int addArmor(String aArmorPrefix);
-
- /**
- * Plays the Sonictron Sound for the ItemStack on the Client Side
- */
- public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java b/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
deleted file mode 100644
index ce72d93374..0000000000
--- a/main/java/gregtech/api/interfaces/internal/IGT_RecipeAdder.java
+++ /dev/null
@@ -1,412 +0,0 @@
-package gregtech.api.interfaces.internal;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidStack;
-
-public interface IGT_RecipeAdder {
- /**
- * Adds a FusionreactorRecipe
- * Does not work anymore!
- */
- @Deprecated
- public boolean addFusionReactorRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion);
-
- /**
- * Adds a FusionreactorRecipe
- * @param aInput1 = first Input (not null, and respects StackSize)
- * @param aInput2 = second Input (not null, and respects StackSize)
- * @param aOutput = Output of the Fusion (can be null, and respects StackSize)
- * @param aFusionDurationInTicks = How many ticks the Fusion lasts (must be > 0)
- * @param aFusionEnergyPerTick = The EU generated per Tick (can even be negative!)
- * @param aEnergyNeededForStartingFusion = EU needed for heating the Reactor up (must be >= 0)
- * @return true if the Recipe got added, otherwise false.
- */
- public boolean addFusionReactorRecipe(FluidStack aInput1, FluidStack aInput2, FluidStack aOutput1, int aFusionDurationInTicks, int aFusionEnergyPerTick, int aEnergyNeededForStartingFusion);
-
- /**
- * Adds a Centrifuge Recipe
- * @param aInput1 must be != null
- * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- * @param aOutput3 can be null
- * @param aOutput4 can be null
- * @param aDuration must be > 0
- */
- public boolean addCentrifugeRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration);
-
- /**
- * Adds a Centrifuge Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- * @param aOutput3 can be null
- * @param aOutput4 can be null
- * @param aDuration must be > 0
- */
- public boolean addCentrifugeRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt);
-
- /**
- * Adds a Electrolyzer Recipe
- * @param aInput1 must be != null
- * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- * @param aOutput3 can be null
- * @param aOutput4 can be null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addElectrolyzerRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int aDuration, int aEUt);
-
- /**
- * Adds a Electrolyzer Recipe
- * @param aInput1 must be != null
- * @param aCellInput this is for the needed Cells, > 0 for Tincellcount, < 0 for negative Fuelcancount, == 0 for nothing
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- * @param aOutput3 can be null
- * @param aOutput4 can be null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addElectrolyzerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, ItemStack aOutput5, ItemStack aOutput6, int[] aChances, int aDuration, int aEUt);
-
- /**
- * Adds a Chemical Recipe
- * @param aInput1 must be != null
- * @param aInput2 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- */
- public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput, int aDuration);
-
- /**
- * Adds a Chemical Recipe
- * @param aInput1 must be != null
- * @param aInput2 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- */
- public boolean addChemicalRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration);
-
- /**
- * Adds a Blast Furnace Recipe
- * @param aInput1 must be != null
- * @param aInput2 can be null
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- * @param aLevel should be > 0 is the minimum Heat Level needed for this Recipe
- */
- @Deprecated
- public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel);
-
- /**
- * Adds a Blast Furnace Recipe
- * @param aInput1 must be != null
- * @param aInput2 can be null
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- * @param aLevel should be > 0 is the minimum Heat Level needed for this Recipe
- */
- public boolean addBlastRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt, int aLevel);
-
- /**
- * Adds a Canning Machine Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0, 100 ticks is standard.
- * @param aEUt should be > 0, 1 EU/t is standard.
- */
- public boolean addCannerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt);
-
- /**
- * Adds an Alloy Smelter Recipe
- * @param aInput1 must be != null
- * @param aInput2 can be null
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addAlloySmelterRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt);
-
- /**
- * Adds a CNC-Machine Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addCNCRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt);
-
- /**
- * Adds a Circuit Assembler Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, int aDuration, int aEUt);
-
- /**
- * Adds a Circuit Assembler Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addAssemblerRecipe(ItemStack aInput1, ItemStack aInput2, FluidStack aFluidInput, ItemStack aOutput1, int aDuration, int aEUt);
-
- /**
- * Adds a Forge Hammer Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addForgeHammerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration, int aEUt);
-
- /**
- * Adds a Wiremill Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addWiremillRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds a Polariser Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addPolarizerRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds a Plate Bending Machine Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addBenderRecipe(ItemStack aInput, ItemStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds a Extruder Machine Recipe
- * @param aInput1 must be != null
- * @param aShape must be != null, Set the stackSize to 0 if you don't want to let it consume this Item.
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addExtruderRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds a Slicer Machine Recipe
- * @param aInput1 must be != null
- * @param aShape must be != null, Set the stackSize to 0 if you don't want to let it consume this Item.
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- * @param aEUt should be > 0
- */
- public boolean addSlicerRecipe(ItemStack aInput, ItemStack aShape, ItemStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds an Implosion Compressor Recipe
- * @param aInput1 must be != null
- * @param aInput2 amount of ITNT, should be > 0
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- */
- public boolean addImplosionRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2);
-
- /**
- * Adds a Grinder Recipe
- * @param aInput1 must be != null
- * @param aInput2 id for the Cell needed for this Recipe
- * @param aOutput1 must be != null
- * @param aOutput2 can be null
- * @param aOutput3 can be null
- * @param aOutput4 can be null
- */
- public boolean addGrinderRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4);
-
- /**
- * Adds a Distillation Tower Recipe
- * @param aInput1 must be != null
- * @param aOutputs must be != null 1-5 Fluids
- * @param aOutput2 can be null
- */
- public boolean addDistillationTowerRecipe(FluidStack aInput, FluidStack[] aOutputs, ItemStack aOutput2, int aDuration, int aEUt);
-
-
- public boolean addSimpleArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt);
-
- public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt);
-
- public boolean addPlasmaArcFurnaceRecipe(ItemStack aInput, FluidStack aFluidInput, ItemStack[] aOutputs,FluidStack aFluidPutput, int[] aChances, int aDuration, int aEUt);
-
-
-
-
-
-
- /**
- * Adds a Distillation Tower Recipe
- */
- public boolean addDistillationRecipe(ItemStack aInput1, int aInput2, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, ItemStack aOutput4, int aDuration, int aEUt);
-
- /**
- * Adds a Lathe Machine Recipe
- */
- public boolean addLatheRecipe(ItemStack aInput1, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt);
-
- /**
- * Adds a Cutter Recipe
- */
- public boolean addCutterRecipe(ItemStack aInput, FluidStack aLubricant, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt);
-
- /**
- * Adds Cutter Recipes with default Lubricants
- */
- public boolean addCutterRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, int aDuration, int aEUt);
-
- /**
- * Adds a Boxing Recipe
- */
- public boolean addBoxingRecipe(ItemStack aContainedItem, ItemStack aEmptyBox, ItemStack aFullBox, int aDuration, int aEUt);
-
- /**
- * Adds an Unboxing Recipe
- */
- public boolean addUnboxingRecipe(ItemStack aFullBox, ItemStack aContainedItem, ItemStack aEmptyBox, int aDuration, int aEUt);
-
- /**
- * Adds a Vacuum Freezer Recipe
- * @param aInput1 must be != null
- * @param aOutput1 must be != null
- * @param aDuration must be > 0
- */
- public boolean addVacuumFreezerRecipe(ItemStack aInput1, ItemStack aOutput1, int aDuration);
-
- /**
- * Adds a Fuel for My Generators
- * @param aInput1 must be != null
- * @param aOutput1 can be null
- * @param aEU EU per MilliBucket. If no Liquid Form of this Container is available, then it will give you EU*1000 per Item.
- * @param aType 0 = Diesel; 1 = Gas Turbine; 2 = Thermal; 3 = Dense Fluid; 4 = Plasma; 5 = Magic; And if something is unclear or missing, then look at the GT_Recipe-Class
- */
- public boolean addFuel(ItemStack aInput1, ItemStack aOutput1, int aEU, int aType);
-
- /**
- * Adds an Amplifier Recipe for the Amplifabricator
- */
- public boolean addAmplifier(ItemStack aAmplifierItem, int aDuration, int aAmplifierAmountOutputted);
-
- /**
- * Adds a Recipe for the Brewing Machine (intentionally limited to Fluid IDs)
- */
- public boolean addBrewingRecipe(ItemStack aIngredient, Fluid aInput, Fluid aOutput, boolean aHidden);
-
- /**
- * Adds a Recipe for the Fermenter
- */
- public boolean addFermentingRecipe(FluidStack aInput, FluidStack aOutput, int aDuration, boolean aHidden);
-
- /**
- * Adds a Recipe for the Fluid Heater
- */
- public boolean addFluidHeaterRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Distillery
- */
- public boolean addDistilleryRecipe(ItemStack aCircuit, FluidStack aInput, FluidStack aOutput, int aDuration, int aEUt, boolean aHidden);
-
- /**
- * Adds a Recipe for the Fluid Solidifier
- */
- public boolean addFluidSolidifierRecipe(ItemStack aMold, FluidStack aInput, ItemStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for Fluid Smelting
- */
- public boolean addFluidSmelterRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for Fluid Extraction
- */
- public boolean addFluidExtractionRecipe(ItemStack aInput, ItemStack aRemains, FluidStack aOutput, int aChance, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Fluid Canner
- */
- public boolean addFluidCannerRecipe(ItemStack aInput, ItemStack aOutput, FluidStack aFluidInput, FluidStack aFluidOutput);
-
- /**
- * Adds a Recipe for the Chemical Bath
- */
- public boolean addChemicalBathRecipe(ItemStack aInput, FluidStack aBathingFluid, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Electromagnetic Separator
- */
- public boolean addElectromagneticSeparatorRecipe(ItemStack aInput, ItemStack aOutput1, ItemStack aOutput2, ItemStack aOutput3, int[] aChances, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Printer
- */
- public boolean addPrinterRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aSpecialSlot, ItemStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Autoclave
- */
- public boolean addAutoclaveRecipe(ItemStack aInput, FluidStack aFluid, ItemStack aOutput, int aChance, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Mixer
- */
- public boolean addMixerRecipe(ItemStack aInput1, ItemStack aInput2, ItemStack aInput3, ItemStack aInput4, FluidStack aFluidInput, FluidStack aFluidOutput, ItemStack aOutput, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Laser Engraver
- */
- public boolean addLaserEngraverRecipe(ItemStack aItemToEngrave, ItemStack aLens, ItemStack aEngravedItem, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Forming Press
- */
- public boolean addFormingPressRecipe(ItemStack aItemToImprint, ItemStack aForm, ItemStack aImprintedItem, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Sifter. (up to 9 Outputs)
- */
- public boolean addSifterRecipe(ItemStack aItemToSift, ItemStack[] aSiftedItems, int[] aChances, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the Arc Furnace. (up to 4 Outputs)
- */
- public boolean addArcFurnaceRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt);
-
- /**
- * Adds a Recipe for the GT Pulveriser. (up to 4 Outputs)
- */
- public boolean addPulveriserRecipe(ItemStack aInput, ItemStack[] aOutputs, int[] aChances, int aDuration, int aEUt);
-
- /**
- * Adds a Sound to the Sonictron9001
- * you should NOT call this in the preInit-Phase!
- * @param aItemStack = The Item you want to display for this Sound
- * @param aSoundName = The Name of the Sound in the resources/newsound-folder like Vanillasounds
- * @return true if the Sound got added, otherwise false.
- */
- public boolean addSonictronSound(ItemStack aItemStack, String aSoundName);
-}
diff --git a/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java b/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java
deleted file mode 100644
index 736cbf67d7..0000000000
--- a/main/java/gregtech/api/interfaces/internal/IIC2TileEntity.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package gregtech.api.interfaces.internal;
-
-import gregtech.api.interfaces.tileentity.IHasWorldObjectAndCoords;
-import ic2.api.energy.tile.IEnergySink;
-import ic2.api.energy.tile.IEnergySource;
-import ic2.api.tile.IEnergyStorage;
-
-/**
- * A simple compound Interface for generic EnergyTileEntities. I don't want to have imports of the IC2-API in my main-code
- */
-public interface IIC2TileEntity extends IEnergyStorage, IEnergySink, IEnergySource, IHasWorldObjectAndCoords {
- //
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java b/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java
deleted file mode 100644
index 0b48d43db9..0000000000
--- a/main/java/gregtech/api/interfaces/internal/IThaumcraftCompat.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package gregtech.api.interfaces.internal;
-
-import gregtech.api.enums.TC_Aspects;
-import gregtech.api.enums.TC_Aspects.TC_AspectStack;
-
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.item.ItemStack;
-
-public interface IThaumcraftCompat {
- public static final int RESEARCH_TYPE_NORMAL = 0, RESEARCH_TYPE_SECONDARY = 1, RESEARCH_TYPE_FREE = 2, RESEARCH_TYPE_HIDDEN = 4, RESEARCH_TYPE_VIRTUAL = 8, RESEARCH_TYPE_ROUND = 16, RESEARCH_TYPE_SPECIAL = 32, RESEARCH_TYPE_AUTOUNLOCK = 64;
-
- /** The Research Keys of GT */
- public static final String
- IRON_TO_STEEL = "GT_IRON_TO_STEEL"
- , FILL_WATER_BUCKET = "GT_FILL_WATER_BUCKET"
- , WOOD_TO_CHARCOAL = "GT_WOOD_TO_CHARCOAL"
- , TRANSZINC = "GT_TRANSZINC"
- , TRANSNICKEL = "GT_TRANSNICKEL"
- , TRANSCOBALT = "GT_TRANSCOBALT"
- , TRANSBISMUTH = "GT_TRANSBISMUTH"
- , TRANSANTIMONY = "GT_TRANSANTIMONY"
- , TRANSCUPRONICKEL = "GT_TRANSCUPRONICKEL"
- , TRANSBATTERYALLOY = "GT_TRANSBATTERYALLOY"
- , TRANSSOLDERINGALLOY = "GT_TRANSSOLDERINGALLOY"
- , TRANSBRASS = "GT_TRANSBRASS"
- , TRANSBRONZE = "GT_TRANSBRONZE"
- , TRANSINVAR = "GT_TRANSINVAR"
- , TRANSELECTRUM = "GT_TRANSELECTRUM"
- , TRANSALUMINIUM = "GT_TRANSALUMINIUM"
- , CRYSTALLISATION = "GT_CRYSTALLISATION"
- , ADVANCEDENTROPICPROCESSING = "GT_ADVANCEDENTROPICPROCESSING"
- , ADVANCEDMETALLURGY = "GT_ADVANCEDMETALLURGY"
- ;
-
- public boolean registerPortholeBlacklistedBlock(Block aBlock);
- public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List<TC_AspectStack> aAspects, boolean aAdditive);
- public boolean registerThaumcraftAspectsToItem(ItemStack aStack, List<TC_AspectStack> aAspects, String aOreDict);
- public Object addCrucibleRecipe(String aResearch, Object aInput, ItemStack aOutput, List<TC_AspectStack> aAspects);
- public Object addInfusionRecipe(String aResearch, ItemStack aMainInput,ItemStack[] aSideInputs, ItemStack aOutput,int aInstability, List<TC_Aspects.TC_AspectStack> aAspects);
- public Object addResearch(String aResearch, String aName, String aText, String[] aParentResearches, String aCategory, ItemStack aIcon, int aComplexity, int aType, int aX, int aY, List<TC_AspectStack> aAspects, ItemStack[] aResearchTriggers, Object[] aPages);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/internal/IUETileEntity.java b/main/java/gregtech/api/interfaces/internal/IUETileEntity.java
deleted file mode 100644
index 945c6792f8..0000000000
--- a/main/java/gregtech/api/interfaces/internal/IUETileEntity.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package gregtech.api.interfaces.internal;
-
-
-public interface IUETileEntity /*extends IElectrical*/ {
- //
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java b/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
deleted file mode 100644
index 7b7d36ea6f..0000000000
--- a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntity.java
+++ /dev/null
@@ -1,383 +0,0 @@
-package gregtech.api.interfaces.metatileentity;
-
-import gregtech.api.interfaces.ITexture;
-import gregtech.api.interfaces.tileentity.IGearEnergyTileEntity;
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.objects.GT_ItemStack;
-import gregtech.api.util.GT_Config;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import net.minecraft.block.Block;
-import net.minecraft.client.renderer.RenderBlocks;
-import net.minecraft.client.renderer.texture.IIconRegister;
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.entity.player.InventoryPlayer;
-import net.minecraft.inventory.ISidedInventory;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.AxisAlignedBB;
-import net.minecraft.world.IBlockAccess;
-import net.minecraft.world.World;
-import net.minecraftforge.fluids.IFluidHandler;
-import net.minecraftforge.fluids.IFluidTank;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
-
-/**
- * Warning, this Interface has just been made to be able to add multiple kinds of MetaTileEntities (Cables, Pipes, Transformers, but not the regular Blocks)
- *
- * Don't implement this yourself and expect it to work. Extend @MetaTileEntity itself.
- */
-public interface IMetaTileEntity extends ISidedInventory, IFluidTank, IFluidHandler, IGearEnergyTileEntity {
- /**
- * This determines the BaseMetaTileEntity belonging to this MetaTileEntity by using the Meta ID of the Block itself.
- *
- * 0 = BaseMetaTileEntity, Wrench lvl 0 to dismantle
- * 1 = BaseMetaTileEntity, Wrench lvl 1 to dismantle
- * 2 = BaseMetaTileEntity, Wrench lvl 2 to dismantle
- * 3 = BaseMetaTileEntity, Wrench lvl 3 to dismantle
- * 4 = BaseMetaPipeEntity, Wrench lvl 0 to dismantle
- * 5 = BaseMetaPipeEntity, Wrench lvl 1 to dismantle
- * 6 = BaseMetaPipeEntity, Wrench lvl 2 to dismantle
- * 7 = BaseMetaPipeEntity, Wrench lvl 3 to dismantle
- * 8 = BaseMetaPipeEntity, Cutter lvl 0 to dismantle
- * 9 = BaseMetaPipeEntity, Cutter lvl 1 to dismantle
- * 10 = BaseMetaPipeEntity, Cutter lvl 2 to dismantle
- * 11 = BaseMetaPipeEntity, Cutter lvl 3 to dismantle
- * 12 = BaseMetaPipeEntity, Axe lvl 0 to dismantle
- * 13 = BaseMetaPipeEntity, Axe lvl 1 to dismantle
- * 14 = BaseMetaPipeEntity, Axe lvl 2 to dismantle
- * 15 = BaseMetaPipeEntity, Axe lvl 3 to dismantle
- */
- public byte getTileEntityBaseType();
-
- /**
- * @param aTileEntity is just because the internal Variable "mBaseMetaTileEntity" is set after this Call.
- * @return a newly created and ready MetaTileEntity
- */
- public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity);
-
- /**
- * @return an ItemStack representing this MetaTileEntity.
- */
- public ItemStack getStackForm(long aAmount);
-
- /**
- * Sets the BaseMetaTileEntity of this
- */
- public void setBaseMetaTileEntity(IGregTechTileEntity aBaseMetaTileEntity);
-
- /**
- * new getter for the BaseMetaTileEntity, which restricts usage to certain Functions.
- */
- public IGregTechTileEntity getBaseMetaTileEntity();
-
- /**
- * when placing a Machine in World, to initialize default Modes. aNBT can be null!
- */
- public void initDefaultModes(NBTTagCompound aNBT);
-
- /**
- * ^= writeToNBT
- */
- public void saveNBTData(NBTTagCompound aNBT);
-
- /**
- * ^= readFromNBT
- */
- public void loadNBTData(NBTTagCompound aNBT);
-
- /**
- * Adds the NBT-Information to the ItemStack, when being dismanteled properly
- * Used to store Machine specific Upgrade Data.
- */
- public void setItemNBT(NBTTagCompound aNBT);
-
- /**
- * Called in the registered MetaTileEntity when the Server starts, to reset static variables
- */
- public void onServerStart();
-
- /**
- * Called in the registered MetaTileEntity when the Server ticks a World the first time, to load things from the World Save
- */
- public void onWorldLoad(File aSaveDirectory);
-
- /**
- * Called in the registered MetaTileEntity when the Server stops, to save the Game.
- */
- public void onWorldSave(File aSaveDirectory);
-
- /**
- * Called to set Configuration values for this MetaTileEntity.
- * Use aConfig.get(ConfigCategories.machineconfig, "MetaTileEntityName.Ability", DEFAULT_VALUE); to set the Values.
- */
- public void onConfigLoad(GT_Config aConfig);
-
- /**
- * If a Cover of that Type can be placed on this Side.
- * Also Called when the Facing of the Block Changes and a Cover is on said Side.
- */
- public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack);
-
- /**
- * When a Player rightclicks the Facing with a Screwdriver.
- */
- public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ);
-
- /**
- * When a Player rightclicks the Facing with a Wrench.
- */
- public boolean onWrenchRightClick(byte aSide, byte aWrenchingSide, EntityPlayer aPlayer, float aX, float aY, float aZ);
-
- /**
- * Called right before this Machine explodes
- */
- public void onExplosion();
-
- /**
- * The First processed Tick which was passed to this MetaTileEntity
- */
- public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity);
-
- /**
- * The Tick before all the generic handling happens, what gives a slightly faster reaction speed.
- * Don't use this if you really don't need to. @onPostTick is better suited for ticks.
- * This happens still after the Cover handling.
- */
- public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick);
-
- /**
- * The Tick after all the generic handling happened.
- * Recommended to use this like updateEntity.
- */
- public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick);
-
- /**
- * Called when this MetaTileEntity gets (intentionally) disconnected from the BaseMetaTileEntity.
- * Doesn't get called when this thing is moved by Frames or similar hacks.
- */
- public void inValidate();
-
- /**
- * Called when the BaseMetaTileEntity gets invalidated, what happens right before the @inValidate above gets called
- */
- public void onRemoval();
-
- /**
- * @param aFacing
- * @return if aFacing would be a valid Facing for this Device. Used for wrenching.
- */
- public boolean isFacingValid(byte aFacing);
-
- /**
- * @return the Server Side Container
- */
- public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity);
-
- /**
- * @return the Client Side GUI Container
- */
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity);
-
- /**
- * From new ISidedInventory
- */
- public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack);
-
- /**
- * From new ISidedInventory
- */
- public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack);
-
- /**
- * @return if aIndex is a valid Slot. false for things like HoloSlots. Is used for determining if an Item is dropped upon Block destruction and for Inventory Access Management
- */
- public boolean isValidSlot(int aIndex);
-
- /**
- * @return if aIndex can be set to Zero stackSize, when being removed.
- */
- public boolean setStackToZeroInsteadOfNull(int aIndex);
-
- /**
- * If this Side can connect to inputting pipes
- */
- public boolean isLiquidInput(byte aSide);
-
- /**
- * If this Side can connect to outputting pipes
- */
- public boolean isLiquidOutput(byte aSide);
-
- /**
- * Just an Accessor for the Name variable.
- */
- public String getMetaName();
-
- /**
- * @return true if the Machine can be accessed
- */
- public boolean isAccessAllowed(EntityPlayer aPlayer);
-
- /**
- * When a Machine Update occurs
- */
- public void onMachineBlockUpdate();
-
- /**
- * a Player rightclicks the Machine
- * Sneaky rightclicks are not getting passed to this!
- * @return
- */
- public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ);
-
- /**
- * a Player leftclicks the Machine
- * Sneaky leftclicks are getting passed to this unlike with the rightclicks.
- */
- public void onLeftclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer);
-
- /**
- * Called Clientside with the Data got from @getUpdateData
- */
- public void onValueUpdate(byte aValue);
-
- /**
- * return a small bit of Data, like a secondary Facing for example with this Function, for the Client.
- * The BaseMetaTileEntity detects changes to this Value and will then send an Update.
- * This is only for Information, which is visible as Texture to the outside.
- *
- * If you just want to have an Active/Redstone State then set the Active State inside the BaseMetaTileEntity instead.
- */
- public byte getUpdateData();
-
- /**
- * For the rare case you need this Function
- */
- public void receiveClientEvent(byte aEventID, byte aValue);
-
- /**
- * Called to actually play the Sound.
- * Do not insert Client/Server checks. That is already done for you.
- * Do not use @playSoundEffect, Minecraft doesn't like that at all. Use @playSound instead.
- */
- public void doSound(byte aIndex, double aX, double aY, double aZ);
- public void startSoundLoop(byte aIndex, double aX, double aY, double aZ);
- public void stopSoundLoop(byte aValue, double aX, double aY, double aZ);
-
- /**
- * Sends the Event for the Sound Triggers, only usable Server Side!
- */
- public void sendSound(byte aIndex);
-
- /**
- * Sends the Event for the Sound Triggers, only usable Server Side!
- */
- public void sendLoopStart(byte aIndex);
-
- /**
- * Sends the Event for the Sound Triggers, only usable Server Side!
- */
- public void sendLoopEnd(byte aIndex);
-
- /**
- * Called when the Machine explodes, override Explosion Code here.
- * @param aExplosionPower
- */
- public void doExplosion(long aExplosionPower);
-
- /**
- * If this is just a simple Machine, which can be wrenched at 100%
- */
- public boolean isSimpleMachine();
-
- /**
- * If there should be a Lag Warning if something laggy happens during this Tick.
- *
- * The Advanced Pump uses this to not cause the Lag Message, while it scans for all close Fluids.
- * The Item Pipes and Retrievers neither send this Message, when scanning for Pipes.
- */
- public boolean doTickProfilingMessageDuringThisTick();
-
- /**
- * returns the DebugLog
- */
- public ArrayList<String> getSpecialDebugInfo(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, int aLogLevel, ArrayList<String> aList);
-
- /**
- * get a small Description
- */
- public String[] getDescription();
-
- /**
- * In case the Output Voltage varies.
- */
- public String getSpecialVoltageToolTip();
-
- /**
- * Icon of the Texture. If this returns null then it falls back to getTextureIndex.
- *
- * @param aSide is the Side of the Block
- * @param aFacing is the direction the Block is facing (or a Bitmask of all Connections in case of Pipes)
- * @param aColorIndex The Minecraft Color the Block is having
- * @param aActive if the Machine is currently active (use this instead of calling mBaseMetaTileEntity.mActive!!!). Note: In case of Pipes this means if this Side is connected to something or not.
- * @param aRedstone if the Machine is currently outputting a RedstoneSignal (use this instead of calling mBaseMetaTileEntity.mRedstone!!!)
- */
- public ITexture[] getTexture(IGregTechTileEntity aBaseMetaTileEntity, byte aSide, byte aFacing, byte aColorIndex, boolean aActive, boolean aRedstone);
-
- /**
- * The Textures used for the Item rendering. Return null if you want the regular 3D Block Rendering.
- */
- //public ITexture[] getItemTexture(ItemStack aStack);
-
- /**
- * Register Icons here. This gets called when the Icons get initialized by the Base Block
- * Best is you put your Icons in a static Array for quick and easy access without relying on the MetaTileList.
- * @param aBlockIconRegister The Block Icon Register
- */
- @SideOnly(Side.CLIENT)
- public void registerIcons(IIconRegister aBlockIconRegister);
-
- /**
- * @return true if you override the Rendering.
- */
- @SideOnly(Side.CLIENT)
- public boolean renderInInventory(Block aBlock, int aMeta, RenderBlocks aRenderer);
-
- /**
- * @return true if you override the Rendering.
- */
- @SideOnly(Side.CLIENT)
- public boolean renderInWorld(IBlockAccess aWorld, int aX, int aY, int aZ, Block aBlock, RenderBlocks aRenderer);
-
- /**
- * Gets the Output for the comparator on the given Side
- */
- public byte getComparatorValue(byte aSide);
-
- public float getExplosionResistance(byte aSide);
-
- public String[] getInfoData();
- public boolean isGivingInformation();
-
- public ItemStack[] getRealInventory();
-
- public boolean connectsToItemPipe(byte aSide);
-
- public void onColorChangeServer(byte aColor);
- public void onColorChangeClient(byte aColor);
-
- public int getLightOpacity();
-
- public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider);
- public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ);
- public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider);
-
- /** The onCreated Function of the Item Class redirects here */
- public void onCreated(ItemStack aStack, World aWorld, EntityPlayer aPlayer);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java b/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java
deleted file mode 100644
index 6cdb15cfea..0000000000
--- a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityCable.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package gregtech.api.interfaces.metatileentity;
-
-import java.util.ArrayList;
-
-import net.minecraft.tileentity.TileEntity;
-
-public interface IMetaTileEntityCable extends IMetaTileEntity {
- public long transferElectricity(byte aSide, long aVoltage, long aAmperage, ArrayList<TileEntity> aAlreadyPassedTileEntityList);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java b/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java
deleted file mode 100644
index 0e6d3c6f09..0000000000
--- a/main/java/gregtech/api/interfaces/metatileentity/IMetaTileEntityItemPipe.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package gregtech.api.interfaces.metatileentity;
-
-import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
-import gregtech.api.metatileentity.BaseMetaPipeEntity;
-import gregtech.api.util.GT_Utility;
-
-import java.util.Map;
-
-public interface IMetaTileEntityItemPipe extends IMetaTileEntity {
- /**
- * @return if this Pipe can still be used.
- */
- public boolean pipeCapacityCheck();
-
- /**
- * @return if this Pipe can still be used.
- */
- public boolean incrementTransferCounter(int aIncrement);
-
- /**
- * Sends an ItemStack from aSender to the adjacent Blocks.
- * @param aSender the BaseMetaTileEntity sending the Stack.
- * @return if it was able to send something
- */
- public boolean sendItemStack(Object aSender);
-
- /**
- * Executes the Sending Code for inserting Stacks into the TileEntities.
- * @param aSender the BaseMetaTileEntity sending the Stack.
- * @param aSide the Side of the PIPE facing the TileEntity.
- * @return if this Side was allowed to Output into the Block.
- */
- public boolean insertItemStackIntoTileEntity(Object aSender, byte aSide);
-
- /**
- * Can be used to make flow control Pipes, like Redpowers Restriction Tubes.
- * Every normal Pipe returns a Value of 32768, so you can easily insert lower Numbers to set Routing priorities.
- * Negative Numbers to "suck" Items into a certain direction are also possible.
- */
- public int getStepSize();
-
- /**
- * Utility for the Item Network
- */
- public static class Util {
- /**
- * @return a List of connected Item Pipes
- */
- public static Map<IMetaTileEntityItemPipe, Long> scanPipes(IMetaTileEntityItemPipe aMetaTileEntity, Map<IMetaTileEntityItemPipe, Long> aMap, long aStep, boolean aSuckItems, boolean aIgnoreCapacity) {
- aStep+=aMetaTileEntity.getStepSize();
- if (aIgnoreCapacity || aMetaTileEntity.pipeCapacityCheck()) if (aMap.get(aMetaTileEntity) == null || aMap.get(aMetaTileEntity) > aStep) {
- IGregTechTileEntity aBaseMetaTileEntity = aMetaTileEntity.getBaseMetaTileEntity();
- aMap.put(aMetaTileEntity, aStep);
- for (byte i = 0, j = 0; i < 6; i++) {
- j = GT_Utility.getOppositeSide(i);
- if (aSuckItems) {
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsIn(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -2, aBaseMetaTileEntity)) {
- IGregTechTileEntity tItemPipe = aBaseMetaTileEntity.getIGregTechTileEntityAtSide(i);
- if (aBaseMetaTileEntity.getColorization() >= 0) {
- byte tColor = tItemPipe.getColorization();
- if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) {
- continue;
- }
- }
- if (tItemPipe != null && tItemPipe instanceof BaseMetaPipeEntity) {
- IMetaTileEntity tMetaTileEntity = tItemPipe.getMetaTileEntity();
- if (tMetaTileEntity != null && tMetaTileEntity instanceof IMetaTileEntityItemPipe && tItemPipe.getCoverBehaviorAtSide(j).letsItemsOut(j, tItemPipe.getCoverIDAtSide(j), tItemPipe.getCoverDataAtSide(j), -2, tItemPipe)) {
- scanPipes((IMetaTileEntityItemPipe)tMetaTileEntity, aMap, aStep, aSuckItems, aIgnoreCapacity);
- }
- }
- }
- } else {
- if (aBaseMetaTileEntity.getCoverBehaviorAtSide(i).letsItemsOut(i, aBaseMetaTileEntity.getCoverIDAtSide(i), aBaseMetaTileEntity.getCoverDataAtSide(i), -2, aBaseMetaTileEntity)) {
- IGregTechTileEntity tItemPipe = aBaseMetaTileEntity.getIGregTechTileEntityAtSide(i);
- if (tItemPipe != null) {
- if (aBaseMetaTileEntity.getColorization() >= 0) {
- byte tColor = tItemPipe.getColorization();
- if (tColor >= 0 && tColor != aBaseMetaTileEntity.getColorization()) {
- continue;
- }
- }
- if (tItemPipe instanceof BaseMetaPipeEntity) {
- IMetaTileEntity tMetaTileEntity = tItemPipe.getMetaTileEntity();
- if (tMetaTileEntity != null && tMetaTileEntity instanceof IMetaTileEntityItemPipe && tItemPipe.getCoverBehaviorAtSide(j).letsItemsIn(j, tItemPipe.getCoverIDAtSide(j), tItemPipe.getCoverDataAtSide(j), -2, tItemPipe)) {
- scanPipes((IMetaTileEntityItemPipe)tMetaTileEntity, aMap, aStep, aSuckItems, aIgnoreCapacity);
- }
- }
- }
- }
- }
- }
- }
- return aMap;
- }
- }
-}
diff --git a/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java b/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java
deleted file mode 100644
index 6b39391d46..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IBasicEnergyContainer.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-/**
- * Interface for internal Code, which is mainly used for independent Energy conversion.
- */
-public interface IBasicEnergyContainer extends IEnergyConnected {
- /**
- * Gets if that Amount of Energy is stored inside the Machine.
- * It is used for checking the contained Energy before consuming it.
- * If this returns false, it will also give a Message inside the Scanner, that this Machine doesn't have enough Energy.
- */
- public boolean isUniversalEnergyStored(long aEnergyAmount);
-
- /**
- * Gets the stored electric, kinetic or steam Energy (with EU as reference Value)
- * Always returns the largest one.
- */
- public long getUniversalEnergyStored();
-
- /**
- * Gets the largest electric, kinetic or steam Energy Capacity (with EU as reference Value)
- */
- public long getUniversalEnergyCapacity();
-
- /**
- * Gets the amount of Energy Packets per tick.
- */
- public long getOutputAmperage();
-
- /**
- * Gets the Output in EU/p.
- */
- public long getOutputVoltage();
-
- /**
- * Gets the amount of Energy Packets per tick.
- */
- public long getInputAmperage();
-
- /**
- * Gets the maximum Input in EU/p.
- */
- public long getInputVoltage();
-
- /**
- * Decreases the Amount of stored universal Energy. If ignoring too less Energy, then it just sets the Energy to 0 and returns false.
- */
- public boolean decreaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooLessEnergy);
-
- /**
- * Increases the Amount of stored electric Energy. If ignoring too much Energy, then the Energy Limit is just being ignored.
- */
- public boolean increaseStoredEnergyUnits(long aEnergy, boolean aIgnoreTooMuchEnergy);
-
- /**
- * Drain Energy Call for Electricity.
- */
- public boolean drainEnergyUnits(byte aSide, long aVoltage, long aAmperage);
-
- /**
- * returns the amount of Electricity, accepted by this Block the last 5 ticks as Average.
- */
- public long getAverageElectricInput();
-
- /**
- * returns the amount of Electricity, outputted by this Block the last 5 ticks as Average.
- */
- public long getAverageElectricOutput();
-
- /**
- * returns the amount of electricity contained in this Block, in EU units!
- */
- public long getStoredEU();
-
- /**
- * returns the amount of electricity containable in this Block, in EU units!
- */
- public long getEUCapacity();
-
- /**
- * returns the amount of Steam contained in this Block, in EU units!
- */
- public long getStoredSteam();
-
- /**
- * returns the amount of Steam containable in this Block, in EU units!
- */
- public long getSteamCapacity();
-
- /**
- * Increases stored Energy. Energy Base Value is in EU, even though it's Steam!
- * @param aEnergy The Energy to add to the Machine.
- * @param aIgnoreTooMuchEnergy if it shall ignore if it has too much Energy.
- * @return if it was successful
- *
- * And yes, you can't directly decrease the Steam of a Machine. That is done by decreaseStoredEnergyUnits
- */
- public boolean increaseStoredSteam(long aEnergy, boolean aIgnoreTooMuchEnergy);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java b/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java
deleted file mode 100644
index dc511f3050..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IColoredTileEntity.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-public interface IColoredTileEntity {
- /**
- * @return 0 - 15 are Colors, while -1 means uncolored
- */
- public byte getColorization();
-
- /**
- * Sets the Color Modulation of the Block
- * @param aColor the Color you want to set it to. -1 for reset.
- */
- public byte setColorization(byte aColor);
-}
diff --git a/main/java/gregtech/api/interfaces/tileentity/ICoverable.java b/main/java/gregtech/api/interfaces/tileentity/ICoverable.java
deleted file mode 100644
index 546b8d81c6..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/ICoverable.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import gregtech.api.util.GT_CoverBehavior;
-import net.minecraft.item.ItemStack;
-
-public interface ICoverable extends IRedstoneTileEntity, IHasInventory, IBasicEnergyContainer {
- public boolean canPlaceCoverIDAtSide (byte aSide, int aID);
- public boolean canPlaceCoverItemAtSide (byte aSide, ItemStack aCover);
- public boolean dropCover (byte aSide, byte aDroppedSide, boolean aForced);
- public void setCoverDataAtSide (byte aSide, int aData);
- public void setCoverIDAtSide (byte aSide, int aID);
- public void setCoverItemAtSide (byte aSide, ItemStack aCover);
- public int getCoverDataAtSide (byte aSide);
- public int getCoverIDAtSide (byte aSide);
- public ItemStack getCoverItemAtSide (byte aSide);
- public GT_CoverBehavior getCoverBehaviorAtSide (byte aSide);
-
- /**
- * For use by the regular MetaTileEntities. Returns the Cover Manipulated input Redstone.
- * Don't use this if you are a Cover Behavior. Only for MetaTileEntities.
- */
- public byte getInternalInputRedstoneSignal(byte aSide);
-
- /**
- * For use by the regular MetaTileEntities. This makes it not conflict with Cover based Redstone Signals.
- * Don't use this if you are a Cover Behavior. Only for MetaTileEntities.
- */
- public void setInternalOutputRedstoneSignal(byte aSide, byte aStrength);
-
- /**
- * Causes a general Cover Texture update.
- * Sends 6 Integers to Client + causes @issueTextureUpdate()
- */
- public void issueCoverUpdate(byte aSide);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java b/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java
deleted file mode 100644
index d017a1d7c4..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IDigitalChest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import net.minecraft.item.ItemStack;
-
-/**
- * You are allowed to include this File in your Download, as i will not change it.
- */
-public interface IDigitalChest extends IHasWorldObjectAndCoords {
- /**
- * Is this even a TileEntity of a Digital Chest?
- * I need things like this Function for MetaTileEntities, you MUST check this!!!
- * Do not assume that it's a Digital Chest or similar Device, when it just implements this Interface.
- */
- public boolean isDigitalChest();
- /**
- * Gives an Array of Stacks with Size (of all the Data-stored Items) of the correspondent Item kinds (regular QChests have only one)
- * Does NOT include the 64 "ready" Items inside the Slots, and neither the 128 Items in the overflow Buffer.
- */
- public ItemStack[] getStoredItemData();
- /**
- * A generic Interface for just setting the amount of contained Items
- */
- public void setItemCount(int aCount);
-
- /**
- * Gets the maximum Item count for this QChest alike Storage. This applies to the Data-Storage, not for the up to 192 buffered Items!
- */
- public int getMaxItemCount();
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java b/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java
deleted file mode 100644
index 96684de6e3..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IEnergyConductor.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import gregtech.api.enums.Materials;
-
-/**
- * Informative Class for Cables. Not used for now.
- *
- * Not all Data might be reliable. This is just for Information sake.
- */
-public interface IEnergyConductor extends IEnergyConnected {
- /**
- * @return if this is actually a Cable. (you must check this)
- */
- public boolean isConductor();
-
- /**
- * @return the maximum Voltage of the Cable.
- */
- public long getMaxVoltage();
-
- /**
- * @return the maximum Amperage of the Cable, per Wire.
- */
- public long getMaxAmperage();
-
- /**
- * @return the Loss of the Cable, per Meter.
- */
- public long getLossPerMeter();
-
- /**
- * @return the Material the Cable consists of. (may return Materials._NULL)
- */
- public Materials getCableMaterial();
-
- /**
- * @return the Material the Cable Insulation consists of. (may return Materials._NULL)
- */
- public Materials getInsulationMaterial();
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java b/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java
deleted file mode 100644
index 097493807d..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IEnergyConnected.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import static gregtech.api.enums.GT_Values.V;
-import cofh.api.energy.IEnergyReceiver;
-import gregtech.api.GregTech_API;
-import gregtech.api.util.GT_Utility;
-import ic2.api.energy.tile.IEnergySink;
-import net.minecraft.init.Blocks;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.World;
-import net.minecraftforge.common.util.ForgeDirection;
-
-/**
- * Interface for getting Connected to the GregTech Energy Network.
- *
- * This is all you need to connect to the GT Network.
- * IColoredTileEntity is needed for not connecting differently coloured Blocks to each other.
- * IHasWorldObjectAndCoords is needed for the InWorld related Stuff. @BaseTileEntity does implement most of that Interface.
- */
-public interface IEnergyConnected extends IColoredTileEntity, IHasWorldObjectAndCoords {
- /**
- * Inject Energy Call for Electricity. Gets called by EnergyEmitters to inject Energy into your Block
- *
- * Note: you have to check for @inputEnergyFrom because the Network won't check for that by itself.
- *
- * @param aSide 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do Side checks for this Side)
- * @return amount of used Amperes. 0 if not accepted anything.
- */
- public long injectEnergyUnits(byte aSide, long aVoltage, long aAmperage);
-
- /**
- * Sided Energy Input
- */
- public boolean inputEnergyFrom(byte aSide);
-
- /**
- * Sided Energy Output
- */
- public boolean outputsEnergyTo(byte aSide);
-
- /**
- * Utility for the Network
- */
- public static class Util {
- /**
- * Emits Energy to the E-net. Also compatible with adjacent IC2 TileEntities.
- * @return the used Amperage.
- */
- public static final long emitEnergyToNetwork(long aVoltage, long aAmperage, IEnergyConnected aEmitter) {
- long rUsedAmperes = 0;
- for (byte i = 0, j = 0; i < 6 && aAmperage > rUsedAmperes; i++) if (aEmitter.outputsEnergyTo(i)) {
- j = GT_Utility.getOppositeSide(i);
- TileEntity tTileEntity = aEmitter.getTileEntityAtSide(i);
- if (tTileEntity instanceof IEnergyConnected) {
- if (aEmitter.getColorization() >= 0) {
- byte tColor = ((IEnergyConnected)tTileEntity).getColorization();
- if (tColor >= 0 && tColor != aEmitter.getColorization()) continue;
- }
- rUsedAmperes+=((IEnergyConnected)tTileEntity).injectEnergyUnits(j, aVoltage, aAmperage-rUsedAmperes);
-// } else if (tTileEntity instanceof IEnergySink) {
-// if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)aEmitter, ForgeDirection.getOrientation(j))) {
-// while (aAmperage > rUsedAmperes && ((IEnergySink)tTileEntity).demandedEnergyUnits() > 0 && ((IEnergySink)tTileEntity).injectEnergyUnits(ForgeDirection.getOrientation(j), aVoltage) < aVoltage) rUsedAmperes++;
-// }
- } else if (tTileEntity instanceof IEnergySink) {
- if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)aEmitter, ForgeDirection.getOrientation(j))) {
- while (aAmperage > rUsedAmperes && ((IEnergySink)tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink)tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aVoltage, aVoltage) < aVoltage) rUsedAmperes++;
- }
- } else if(GregTech_API.mOutputRF && tTileEntity instanceof IEnergyReceiver){
- ForgeDirection tDirection = ForgeDirection.getOrientation(i).getOpposite();
- int rfOut = (int) (aVoltage * GregTech_API.mEUtoRF / 100);
- if(((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, true)==rfOut){
- ((IEnergyReceiver)tTileEntity).receiveEnergy(tDirection, rfOut, false); rUsedAmperes++;
- }
- if(GregTech_API.mRFExplosions && GregTech_API.sMachineExplosions && ((IEnergyReceiver)tTileEntity).getMaxEnergyStored(tDirection) < rfOut * 600){
- if(rfOut > 32 * GregTech_API.mEUtoRF / 100) {
- int aExplosionPower = rfOut;
- float tStrength = aExplosionPower<V[0]?1.0F:aExplosionPower<V[1]?2.0F:aExplosionPower<V[2]?3.0F:aExplosionPower<V[3]?4.0F:aExplosionPower<V[4]?5.0F:aExplosionPower<V[4]*2?6.0F:aExplosionPower<V[5]?7.0F:aExplosionPower<V[6]?8.0F:aExplosionPower<V[7]?9.0F:10.0F;
- int tX=tTileEntity.xCoord, tY=tTileEntity.yCoord, tZ=tTileEntity.zCoord;
- World tWorld = tTileEntity.getWorldObj();
- GT_Utility.sendSoundToPlayers(tWorld, GregTech_API.sSoundList.get(209), 1.0F, -1, tX, tY, tZ);
- tWorld.setBlock(tX, tY, tZ, Blocks.air);
- if (GregTech_API.sMachineExplosions) tWorld.createExplosion(null, tX+0.5, tY+0.5, tZ+0.5, tStrength, true);}
- }
- }
- }
- return rUsedAmperes;
- }
- }
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java b/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java
deleted file mode 100644
index 9bb3fec13e..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IExperimentalEnergyTileEntity.java
+++ /dev/null
@@ -1,86 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import static gregtech.api.enums.GT_Values.F;
-import static gregtech.api.enums.GT_Values.T;
-import gregtech.api.enums.SubTag;
-import gregtech.api.util.GT_Utility;
-import ic2.api.energy.tile.IEnergySink;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraftforge.common.util.ForgeDirection;
-import cofh.api.energy.IEnergyReceiver;
-
-/**
- * THIS IS GOING TO BE USED IN 1.8
- *
- * Interface for getting Connected to the GregTech Energy Network.
- *
- * This is all you need to connect to the GT Network.
- * IColoredTileEntity is needed for not connecting differently coloured Blocks to each other.
- * IHasWorldObjectAndCoords is needed for the InWorld related Stuff. @BaseTileEntity does implement most of that Interface.
- */
-public interface IExperimentalEnergyTileEntity extends IColoredTileEntity, IHasWorldObjectAndCoords {
- /**
- * Inject Energy Call for Electricity. Gets called by EnergyEmitters to inject Energy into your Block
- *
- * Note: you have to check for @inputEnergyFrom because the Network won't check for that by itself.
- *
- * @param aSide 0 - 5 = Vanilla Directions of YOUR Block the Energy gets inserted to. 6 = No specific Side (don't do Side checks for this Side)
- * @return amount of used Amperes. 0 if not accepted anything.
- */
- public long injectEnergy(SubTag aEnergyType, byte aSide, long aPrimary, long aSecondary);
-
- /** Sided Energy Input */
- public boolean inputEnergyFrom(SubTag aEnergyType, byte aSide);
-
- /** Sided Energy Output */
- public boolean outputsEnergyTo(SubTag aEnergyType, byte aSide);
-
- /** Utility for the Network */
- public static class Util {
- private static boolean RF_ENERGY = F, IC_ENERGY = F, CHECK_ALL = T;
- public static int RF_PER_EU = 4;
-
- private static void checkAvailabilities() {
- if (CHECK_ALL) {
- try {
- Class tClass = cofh.api.energy.IEnergyReceiver.class;
- tClass.getCanonicalName();
- RF_ENERGY = T;
- } catch(Throwable e) {/**/}
- try {
- Class tClass = ic2.api.energy.tile.IEnergySink.class;
- tClass.getCanonicalName();
- IC_ENERGY = T;
- } catch(Throwable e) {/**/}
- CHECK_ALL = F;
- }
- }
-
- /**
- * Emits Energy to the adjacent Blocks. Also compatible with adjacent IC2 TileEntities when electric and RF TileEntities when RedstoneFlux.
- * @return the amount of used secondary value.
- */
- public static final long emitEnergyToNetwork(SubTag aEnergyType, long aPrimary, long aSecondary, IExperimentalEnergyTileEntity aEmitter) {
- long rUsedSecondary = 0;
- checkAvailabilities();
- for (byte i = 0, j = 0; i < 6 && aSecondary > rUsedSecondary; i++) if (aEmitter.outputsEnergyTo(aEnergyType, i)) {
- j = GT_Utility.getOppositeSide(i);
- TileEntity tTileEntity = aEmitter.getTileEntityAtSide(i);
- if (tTileEntity instanceof IExperimentalEnergyTileEntity) {
- if (aEmitter.getColorization() >= 0) {
- byte tColor = ((IExperimentalEnergyTileEntity)tTileEntity).getColorization();
- if (tColor >= 0 && tColor != aEmitter.getColorization()) continue;
- }
- rUsedSecondary+=((IExperimentalEnergyTileEntity)tTileEntity).injectEnergy(aEnergyType, j, aPrimary, aSecondary-rUsedSecondary);
- } else if (IC_ENERGY && aEnergyType == SubTag.ENERGY_ELECTRICITY && tTileEntity instanceof IEnergySink) {
- if (((IEnergySink)tTileEntity).acceptsEnergyFrom((TileEntity)aEmitter, ForgeDirection.getOrientation(j))) {
- while (aSecondary > rUsedSecondary && ((IEnergySink)tTileEntity).getDemandedEnergy() > 0 && ((IEnergySink)tTileEntity).injectEnergy(ForgeDirection.getOrientation(j), aPrimary, aPrimary) < aPrimary) rUsedSecondary++;
- }
- } else if (RF_ENERGY && aEnergyType == SubTag.ENERGY_REDSTONE_FLUX && tTileEntity instanceof IEnergyReceiver && ((IEnergyReceiver)tTileEntity).canConnectEnergy(ForgeDirection.getOrientation(j))) {
- rUsedSecondary+=((IEnergyReceiver)tTileEntity).receiveEnergy(ForgeDirection.getOrientation(j), (int)aSecondary, F);
- }
- }
- return rUsedSecondary;
- }
- }
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java b/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java
deleted file mode 100644
index 7694b3d1c3..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IFibreConnected.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-/**
- * This File has just internal Information about the Fibre Redstone State of a TileEntity
- */
-public interface IFibreConnected extends IColoredTileEntity, IHasWorldObjectAndCoords {
- /**
- * If this Blocks accepts Fibre from this Side
- */
- public void inputFibreFrom(byte aSide);
-
- /**
- * If this Blocks emits Fibre to this Side
- */
- public void outputsFibreTo(byte aSide);
-
- /**
- * Sets the Signal this Blocks outputs to this Fibre Color
- */
- public void setFibreOutput(byte aSide, byte aColor, byte aRedstoneStrength);
-
- /**
- * Gets the Signal this Blocks outputs to this Fibre Color
- */
- public byte getFibreOutput(byte aSide, byte aColor);
-
- /**
- * Gets the Signal this Blocks receives from this Fibre Color
- */
- public byte getFibreInput(byte aSide, byte aColor);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java b/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java
deleted file mode 100644
index 6ae032b874..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IGearEnergyTileEntity.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-public interface IGearEnergyTileEntity {
- /**
- * If Rotation Energy can be accepted on this Side.
- * This means that the Gear/Axle will connect to this Side, and can cause the Gear/Axle to stop if the Energy isn't accepted.
- */
- public boolean acceptsRotationalEnergy(byte aSide);
-
- /**
- * Inject Energy Call for Rotational Energy.
- * Rotation Energy can't be stored, this is just for things like internal Dynamos, which convert it into Energy, or into Progress.
- * @param aSpeed Positive = Clockwise, Negative = Counterclockwise
- */
- public boolean injectRotationalEnergy(byte aSide, long aSpeed, long aEnergy);
-}
diff --git a/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java b/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java
deleted file mode 100644
index f6393f5d10..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IGregTechDeviceInformation.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-/**
- * You are allowed to include this File in your Download, as i will not change it.
- */
-public interface IGregTechDeviceInformation {
- /**
- * Is this even a TileEntity which allows GregTech Sensor Kits?
- * I need things like this Function for MetaTileEntities, you MUST check this!!!
- * Do not assume that it's a Information returning Device, when it just implements this Interface.
- */
- public boolean isGivingInformation();
-
- /**
- * Up to 8 Strings can be returned.
- * Note: If you insert "\\\\" in the String it tries to translate seperate Parts of the String instead of the String as a whole.
- * @return an Array of Information Strings. Don't return null!
- */
- public String[] getInfoData();
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java b/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
deleted file mode 100644
index 7419214dcb..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IGregTechTileEntity.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import gregtech.api.interfaces.IDescribable;
-import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import net.minecraft.entity.Entity;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.item.ItemStack;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.util.AxisAlignedBB;
-import net.minecraft.world.World;
-import net.minecraftforge.fluids.IFluidHandler;
-
-/**
- * A simple compound Interface for all my TileEntities.
- *
- * Also delivers most of the Informations about my TileEntities.
- *
- * It can cause Problems to include this Interface!
- */
-public interface IGregTechTileEntity extends ITexturedTileEntity, IGearEnergyTileEntity, ICoverable, IFluidHandler, ITurnable, IGregTechDeviceInformation, IUpgradableMachine, IDigitalChest, IDescribable, IMachineBlockUpdateable {
- /**
- * gets the Error displayed on the GUI
- */
- public int getErrorDisplayID();
-
- /**
- * sets the Error displayed on the GUI
- */
- public void setErrorDisplayID(int aErrorID);
-
- /**
- * @return the MetaID of the Block or the MetaTileEntity ID.
- */
- public int getMetaTileID();
-
- /**
- * Internal Usage only!
- */
- public int setMetaTileID(short aID);
-
- /**
- * @return the MetaTileEntity which is belonging to this, or null if it doesnt has one.
- */
- public IMetaTileEntity getMetaTileEntity();
-
- /**
- * Sets the MetaTileEntity.
- * Even though this uses the Universal Interface, certain BaseMetaTileEntities only accept one kind of MetaTileEntity
- * so only use this if you are sure its the correct one or you will get a Class cast Error.
- * @param aMetaTileEntity
- */
- public void setMetaTileEntity(IMetaTileEntity aMetaTileEntity);
-
- /**
- * Causes a general Texture update.
- *
- * Only used Client Side to mark Blocks dirty.
- */
- public void issueTextureUpdate();
-
- /**
- * Causes the Machine to send its initial Data, like Covers and its ID.
- */
- public void issueClientUpdate();
-
- /**
- * causes Explosion. Strength in Overload-EU
- */
- public void doExplosion(long aExplosionEU);
-
- /**
- * Sets the Block on Fire in all 6 Directions
- */
- public void setOnFire();
-
- /**
- * Sets the Block to Fire
- */
- public void setToFire();
-
- /**
- * Sets the Owner of the Machine. Returns the set Name.
- */
- public String setOwnerName(String aName);
-
- /**
- * gets the Name of the Machines Owner or "Player" if not set.
- */
- public String getOwnerName();
-
- /**
- * Sets initial Values from NBT
- * @param tNBT is the NBTTag of readFromNBT
- * @param aID is the MetaTileEntityID
- */
- public void setInitialValuesAsNBT(NBTTagCompound aNBT, short aID);
-
- /**
- * Called when leftclicking the TileEntity
- */
- public void onLeftclick(EntityPlayer aPlayer);
-
- /**
- * Called when rightclicking the TileEntity
- */
- public boolean onRightclick(EntityPlayer aPlayer, byte aSide, float par1, float par2, float par3);
-
- public float getBlastResistance(byte aSide);
-
- public ArrayList<ItemStack> getDrops();
-
- /**
- * 255 = 100%
- */
- public int getLightOpacity();
-
- public void addCollisionBoxesToList(World aWorld, int aX, int aY, int aZ, AxisAlignedBB inputAABB, List<AxisAlignedBB> outputAABB, Entity collider);
- public AxisAlignedBB getCollisionBoundingBoxFromPool(World aWorld, int aX, int aY, int aZ);
- public void onEntityCollidedWithBlock(World aWorld, int aX, int aY, int aZ, Entity collider);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java b/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java
deleted file mode 100644
index 3b3d4ee75d..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IHasInventory.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import net.minecraft.inventory.ISidedInventory;
-import net.minecraft.item.ItemStack;
-
-public interface IHasInventory extends ISidedInventory, IHasWorldObjectAndCoords {
-
- /**
- * if the Inventory of this TileEntity got modified this tick
- */
- public boolean hasInventoryBeenModified();
-
- /**
- * if this is just a Holoslot
- */
- public boolean isValidSlot(int aIndex);
-
- /**
- * Tries to add a Stack to the Slot.
- * It doesn't matter if the Slot is valid or invalid as described at the Function above.
- *
- * @return true if aStack == null, then false if aIndex is out of bounds, then false if aStack cannot be added, and then true if aStack has been added
- */
- public boolean addStackToSlot(int aIndex, ItemStack aStack);
-
- /**
- * Tries to add X Items of a Stack to the Slot.
- * It doesn't matter if the Slot is valid or invalid as described at the Function above.
- *
- * @return true if aStack == null, then false if aIndex is out of bounds, then false if aStack cannot be added, and then true if aStack has been added
- */
- public boolean addStackToSlot(int aIndex, ItemStack aStack, int aAmount);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java b/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java
deleted file mode 100644
index c6ebb56e40..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IHasWorldObjectAndCoords.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import net.minecraft.block.Block;
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraft.inventory.IInventory;
-import net.minecraft.nbt.NBTTagCompound;
-import net.minecraft.tileentity.TileEntity;
-import net.minecraft.world.World;
-import net.minecraft.world.biome.BiomeGenBase;
-import net.minecraftforge.fluids.IFluidHandler;
-
-/**
- * This is a bunch of Functions my TileEntities provide, to make life much easier, and to get rid of internal TileEntity stuff.
- *
- * This also makes access to adjacent TileEntities more Efficient.
- *
- * Note: It doesn't have to be a TileEntity in certain cases! And only certain cases, such as the Recipe checking of the findRecipe Function.
- */
-public interface IHasWorldObjectAndCoords {
- public World getWorld();
- public int getXCoord();
- public short getYCoord();
- public int getZCoord();
-
- public boolean isServerSide();
- public boolean isClientSide();
-
- public int getRandomNumber(int aRange);
-
- public TileEntity getTileEntity(int aX, int aY, int aZ);
- public TileEntity getTileEntityOffset(int aX, int aY, int aZ);
- public TileEntity getTileEntityAtSide(byte aSide);
- public TileEntity getTileEntityAtSideAndDistance(byte aSide, int aDistance);
-
- public IInventory getIInventory(int aX, int aY, int aZ);
- public IInventory getIInventoryOffset(int aX, int aY, int aZ);
- public IInventory getIInventoryAtSide(byte aSide);
- public IInventory getIInventoryAtSideAndDistance(byte aSide, int aDistance);
-
- public IFluidHandler getITankContainer(int aX, int aY, int aZ);
- public IFluidHandler getITankContainerOffset(int aX, int aY, int aZ);
- public IFluidHandler getITankContainerAtSide(byte aSide);
- public IFluidHandler getITankContainerAtSideAndDistance(byte aSide, int aDistance);
-
- public IGregTechTileEntity getIGregTechTileEntity(int aX, int aY, int aZ);
- public IGregTechTileEntity getIGregTechTileEntityOffset(int aX, int aY, int aZ);
- public IGregTechTileEntity getIGregTechTileEntityAtSide(byte aSide);
- public IGregTechTileEntity getIGregTechTileEntityAtSideAndDistance(byte aSide, int aDistance);
-
- public Block getBlock(int aX, int aY, int aZ);
- public Block getBlockOffset(int aX, int aY, int aZ);
- public Block getBlockAtSide(byte aSide);
- public Block getBlockAtSideAndDistance(byte aSide, int aDistance);
-
- public byte getMetaID(int aX, int aY, int aZ);
- public byte getMetaIDOffset(int aX, int aY, int aZ);
- public byte getMetaIDAtSide(byte aSide);
- public byte getMetaIDAtSideAndDistance(byte aSide, int aDistance);
-
- public byte getLightLevel(int aX, int aY, int aZ);
- public byte getLightLevelOffset(int aX, int aY, int aZ);
- public byte getLightLevelAtSide(byte aSide);
- public byte getLightLevelAtSideAndDistance(byte aSide, int aDistance);
-
- public boolean getOpacity(int aX, int aY, int aZ);
- public boolean getOpacityOffset(int aX, int aY, int aZ);
- public boolean getOpacityAtSide(byte aSide);
- public boolean getOpacityAtSideAndDistance(byte aSide, int aDistance);
-
- public boolean getSky(int aX, int aY, int aZ);
- public boolean getSkyOffset(int aX, int aY, int aZ);
- public boolean getSkyAtSide(byte aSide);
- public boolean getSkyAtSideAndDistance(byte aSide, int aDistance);
-
- public boolean getAir(int aX, int aY, int aZ);
- public boolean getAirOffset(int aX, int aY, int aZ);
- public boolean getAirAtSide(byte aSide);
- public boolean getAirAtSideAndDistance(byte aSide, int aDistance);
-
- public BiomeGenBase getBiome();
- public BiomeGenBase getBiome(int aX, int aZ);
-
- public int getOffsetX(byte aSide, int aMultiplier);
- public short getOffsetY(byte aSide, int aMultiplier);
- public int getOffsetZ(byte aSide, int aMultiplier);
-
- /**
- * Checks if the TileEntity is Invalid or Unloaded. Stupid Minecraft cannot do that btw.
- */
- public boolean isDead();
-
- /**
- * Sends a Block Event to the Client TileEntity, the byte Parameters are only for validation as Minecraft doesn't properly write Packet Data.
- */
- public void sendBlockEvent(byte aID, byte aValue);
-
- /**
- * @return the Time this TileEntity has been loaded.
- */
- public long getTimer();
-
- /**
- * Sets the Light Level of this Block on a Scale of 0 - 15
- * It could be that it doesn't work. This is just for convenience.
- */
- public void setLightValue(byte aLightValue);
-
- /**
- * Function of the regular TileEntity
- */
- public void writeToNBT(NBTTagCompound aNBT);
-
- /**
- * Function of the regular TileEntity
- */
- public void readFromNBT(NBTTagCompound aNBT);
-
- /**
- * Function of the regular TileEntity
- */
- public boolean isInvalidTileEntity();
-
- /**
- * Opens the GUI with this ID of this MetaTileEntity
- */
- public boolean openGUI(EntityPlayer aPlayer, int aID);
-
- /**
- * Opens the GUI with the ID = 0 of this TileEntity
- */
- public boolean openGUI(EntityPlayer aPlayer);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java b/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java
deleted file mode 100644
index ba8650f245..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IMachineBlockUpdateable.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-/**
- * You are allowed to include this File in your Download, as i will not change it.
- * Simple Interface for Machines, which need my Machine Blocks for MultiBlockStructures.
- *
- * Every Machine implementing this Interface will conduct Machine updates.
- */
-public interface IMachineBlockUpdateable {
- /**
- * The Machine Update, which is called when the Machine needs an Update of its Parts.
- * I suggest to wait 1-5 seconds before actually checking the Machine Parts.
- * RP-Frames could for example cause Problems when you instacheck the Machine Parts.
- */
- public void onMachineBlockUpdate();
-}
diff --git a/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java b/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
deleted file mode 100644
index 78f238aa3e..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IMachineProgress.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-/**
- * For Machines which have Progress
- */
-public interface IMachineProgress extends IHasWorldObjectAndCoords {
- /**
- * returns the Progress this Machine has made. Warning, this can also be negative!
- */
- public int getProgress();
-
- /**
- * returns the Progress the Machine needs to complete its task.
- */
- public int getMaxProgress();
-
- /**
- * increases the Progress of the Machine
- */
- public boolean increaseProgress(int aProgressAmountInTicks);
-
- /**
- * returns if the Machine currently does something.
- */
- public boolean hasThingsToDo();
-
- /**
- * returns if the Machine just got enableWorking called after being disabled.
- * Used for Translocators, which need to check if they need to transfer immediately.
- */
- public boolean hasWorkJustBeenEnabled();
-
- /**
- * allows Machine to work
- */
- public void enableWorking();
-
- /**
- * disallows Machine to work
- */
- public void disableWorking();
-
- /**
- * if the Machine is allowed to Work
- */
- public boolean isAllowedToWork();
-
- /**
- * used to control Machines via Redstone Signal Strength by special Covers
- * only Values between 0 and 15!
- */
- public void setWorkDataValue(byte aValue);
-
- /**
- * used to control Machines via Redstone Signal Strength by special Covers
- * In case of 0 the Machine is very likely doing nothing, or is just not being controlled at all.
- */
- public byte getWorkDataValue();
-
- /**
- * gives you the Active Status of the Machine
- */
- public boolean isActive();
-
- /**
- * sets the visible Active Status of the Machine
- */
- public void setActive(boolean aActive);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java b/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java
deleted file mode 100644
index 0ddc76a6d6..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IPipeRenderedTileEntity.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import gregtech.api.interfaces.ITexture;
-
-public interface IPipeRenderedTileEntity extends ICoverable, ITexturedTileEntity {
- public float getThickNess();
- public byte getConnections();
- public ITexture[] getTextureUncovered(byte aSide);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java b/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java
deleted file mode 100644
index 720f7e9bc5..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IRedstoneEmitter.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-/**
- * This File has just internal Information about the Redstone State of a TileEntity
- */
-public interface IRedstoneEmitter extends IHasWorldObjectAndCoords {
- /**
- * gets the Redstone Level the TileEntity should emit to the given Output Side
- */
- byte getOutputRedstoneSignal(byte aSide);
-
- /**
- * sets the Redstone Level the TileEntity should emit to the given Output Side
- *
- * Do not use this if ICoverable is implemented. ICoverable has @getInternalOutputRedstoneSignal for Machine internal Output Redstone, so that it doesnt conflict with Cover Redstone.
- * This sets the true Redstone Output Signal. Only Cover Behaviors should use it, not MetaTileEntities.
- */
- void setOutputRedstoneSignal(byte aSide, byte aStrength);
-
- /**
- * gets the Redstone Level the TileEntity should emit to the given Output Side
- */
- byte getStrongOutputRedstoneSignal(byte aSide);
-
- /**
- * sets the Redstone Level the TileEntity should emit to the given Output Side
- *
- * Do not use this if ICoverable is implemented. ICoverable has @getInternalOutputRedstoneSignal for Machine internal Output Redstone, so that it doesnt conflict with Cover Redstone.
- * This sets the true Redstone Output Signal. Only Cover Behaviors should use it, not MetaTileEntities.
- */
- void setStrongOutputRedstoneSignal(byte aSide, byte aStrength);
-
- /**
- * Gets the Output for the comparator on the given Side
- */
- byte getComparatorValue(byte aSide);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java b/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java
deleted file mode 100644
index f4c63c803e..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IRedstoneReceiver.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-/**
- * This File has just internal Information about the Redstone State of a TileEntity
- */
-public interface IRedstoneReceiver extends IHasWorldObjectAndCoords {
- /**
- * gets the Redstone Level of the TileEntity to the given Input Side
- *
- * Do not use this if ICoverable is implemented. ICoverable has @getInternalInputRedstoneSignal for Machine internal Input Redstone
- * This returns the true incoming Redstone Signal. Only Cover Behaviors should check it, not MetaTileEntities.
- */
- public byte getInputRedstoneSignal(byte aSide);
-
- /**
- * gets the strongest Redstone Level the TileEntity receives
- */
- public byte getStrongestRedstone();
-
- /**
- * gets if the TileEntity receives Redstone
- */
- public boolean getRedstone();
-
- /**
- * gets if the TileEntity receives Redstone at this Side
- */
- public boolean getRedstone(byte aSide);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java b/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java
deleted file mode 100644
index a1d2b533cb..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IRedstoneTileEntity.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-/**
- * This File has just internal Information about the Redstone State of a TileEntity
- */
-public interface IRedstoneTileEntity extends IRedstoneEmitter, IRedstoneReceiver {
- /**
- * enables/disables Redstone Output in general.
- */
- void setGenericRedstoneOutput(boolean aOnOff);
-
- /**
- * Causes a general Block update.
- * Sends nothing to Client, just causes a Block Update.
- */
- public void issueBlockUpdate();
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java b/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java
deleted file mode 100644
index 3c0782ba2e..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/ITexturedTileEntity.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-import gregtech.api.interfaces.ITexture;
-
-public interface ITexturedTileEntity {
- /**
- * @return the Textures rendered by the GT Rendering
- */
- public ITexture[] getTexture(byte aSide);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/ITurnable.java b/main/java/gregtech/api/interfaces/tileentity/ITurnable.java
deleted file mode 100644
index 1605bd677e..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/ITurnable.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-
-/**
- * Implemented by all my Machines. However without any security checks, if the Players are even allowed to rotate it.
- */
-public interface ITurnable {
- /**
- * Get the block's facing.
- *
- * @return front Block facing
- */
- byte getFrontFacing();
-
- /**
- * Get the block's back facing.
- *
- * @return opposite Block facing
- */
- byte getBackFacing();
-
- /**
- * Determine if the wrench can be used to set the block's facing.
- */
- boolean isValidFacing(byte aSide);
-
- /**
- * Set the block's facing
- *
- * @param facing facing to set the block to
- */
- void setFrontFacing(byte aSide);
-} \ No newline at end of file
diff --git a/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java b/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java
deleted file mode 100644
index 97360fd514..0000000000
--- a/main/java/gregtech/api/interfaces/tileentity/IUpgradableMachine.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package gregtech.api.interfaces.tileentity;
-
-
-/**
- * To access my Machines a bit easier
- */
-public interface IUpgradableMachine extends IMachineProgress {
- /**
- * Accepts Upgrades. Some Machines have an Upgrade Limit.
- */
- boolean isUpgradable();
-
- /**
- * Accepts Muffler Upgrades
- */
- boolean isMufflerUpgradable();
-
- /**
- * Accepts Steam-Converter Upgrades
- */
- boolean isSteamEngineUpgradable();
-
- /**
- * Adds Muffler Upgrade
- */
- boolean addMufflerUpgrade();
-
- /**
- * Adds MJ-Converter Upgrade
- */
- boolean addSteamEngineUpgrade();
-
- /**
- * Does this Machine have an Muffler
- */
- boolean hasMufflerUpgrade();
-
- /**
- * Does this Machine have a Steam-Converter
- */
- boolean hasSteamEngineUpgrade();
-}