aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java')
-rw-r--r--src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java109
1 files changed, 72 insertions, 37 deletions
diff --git a/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java b/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
index 0bb9af1daa..b212a51384 100644
--- a/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
+++ b/src/main/java/gregtech/api/multitileentity/MultiTileEntityRegistry.java
@@ -1,5 +1,7 @@
package gregtech.api.multitileentity;
+import static gregtech.GT_Mod.GT_FML_LOGGER;
+
import appeng.core.CreativeTab;
import com.gtnewhorizon.gtnhlib.util.map.ItemStackMap;
import cpw.mods.fml.common.registry.GameRegistry;
@@ -10,6 +12,11 @@ import gregtech.api.multitileentity.interfaces.IMultiTileEntity;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Util;
import gregtech.api.util.GT_Utility;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
import net.minecraft.block.Block;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
@@ -20,14 +27,6 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-
-import static gregtech.GT_Mod.GT_FML_LOGGER;
-
public class MultiTileEntityRegistry {
private static final HashMap<String, MultiTileEntityRegistry> NAMED_REGISTRIES = new HashMap<>();
@@ -42,7 +41,8 @@ public class MultiTileEntityRegistry {
public final String mNameInternal;
public final MultiTileEntityBlockInternal mBlock;
- private static MultiTileEntityBlockInternal regblock(String aNameInternal, MultiTileEntityBlockInternal aBlock, Class<? extends ItemBlock> aItemClass) {
+ private static MultiTileEntityBlockInternal regblock(
+ String aNameInternal, MultiTileEntityBlockInternal aBlock, Class<? extends ItemBlock> aItemClass) {
GameRegistry.registerBlock(aBlock, aItemClass == null ? ItemBlock.class : aItemClass, aNameInternal);
return aBlock;
}
@@ -57,7 +57,8 @@ public class MultiTileEntityRegistry {
/**
* @param aNameInternal the internal Name of the Item
*/
- public MultiTileEntityRegistry(String aNameInternal, MultiTileEntityBlockInternal aBlock, Class<? extends ItemBlock> aItemClass) {
+ public MultiTileEntityRegistry(
+ String aNameInternal, MultiTileEntityBlockInternal aBlock, Class<? extends ItemBlock> aItemClass) {
this(aNameInternal, regblock(aNameInternal, aBlock, aItemClass));
}
@@ -65,7 +66,9 @@ public class MultiTileEntityRegistry {
* @param aNameInternal the internal Name of the Item
*/
public MultiTileEntityRegistry(String aNameInternal, MultiTileEntityBlockInternal aBlock) {
- if (!GregTech_API.sPreloadStarted || GregTech_API.sPreloadFinished) throw new IllegalStateException("The MultiTileEntity Registry must be initialised during Preload Phase and not before");
+ if (!GregTech_API.sPreloadStarted || GregTech_API.sPreloadFinished)
+ throw new IllegalStateException(
+ "The MultiTileEntity Registry must be initialised during Preload Phase and not before");
mNameInternal = aNameInternal;
mBlock = aBlock;
mBlock.mMultiTileEntityRegistry = this;
@@ -84,6 +87,7 @@ public class MultiTileEntityRegistry {
public static MultiTileEntityRegistry getRegistry(int aRegistryID) {
return REGISTRIES.get(new ItemStack(Item.getItemById(aRegistryID), 1, GT_Values.W));
}
+
public static MultiTileEntityRegistry getRegistry(String aRegistryName) {
return NAMED_REGISTRIES.get(aRegistryName);
}
@@ -116,18 +120,23 @@ public class MultiTileEntityRegistry {
tFailed = true;
}
if (mRegistry.containsKey(aClassContainer.mID)) {
- GT_FML_LOGGER.error("MULTI-TILE REGISTRY ERROR: Class Container uses occupied MetaData! (" + aClassContainer.mID + ")");
+ GT_FML_LOGGER.error("MULTI-TILE REGISTRY ERROR: Class Container uses occupied MetaData! ("
+ + aClassContainer.mID + ")");
tFailed = true;
}
}
if (tFailed) {
GT_FML_LOGGER.error("MULTI-TILE REGISTRY ERROR: STACKTRACE START");
- int i = 0; for (StackTraceElement tElement : new Exception().getStackTrace()) if (i++<5 && !tElement.getClassName().startsWith("sun")) GT_FML_LOGGER.error("\tat " + tElement); else break;
+ int i = 0;
+ for (StackTraceElement tElement : new Exception().getStackTrace())
+ if (i++ < 5 && !tElement.getClassName().startsWith("sun")) GT_FML_LOGGER.error("\tat " + tElement);
+ else break;
GT_FML_LOGGER.error("MULTI-TILE REGISTRY ERROR: STACKTRACE END");
return null;
}
- GT_LanguageManager.addStringLocalization(mNameInternal+"."+aClassContainer.mID+".name", aLocalised, false);
+ GT_LanguageManager.addStringLocalization(
+ mNameInternal + "." + aClassContainer.mID + ".name", aLocalised, false);
mRegistry.put(aClassContainer.mID, aClassContainer);
mLastRegisteredID = aClassContainer.mID;
mRegistrations.add(aClassContainer);
@@ -135,34 +144,49 @@ public class MultiTileEntityRegistry {
if (sRegisteredTileEntities.add(aClassContainer.mCanonicalTileEntity.getClass())) {
aClassContainer.mCanonicalTileEntity.onRegistrationFirst(this, aClassContainer.mID);
}
-// // TODO: Recipe
-// if (aRecipe != null && aRecipe.length > 1) {
-// if (aRecipe[0] instanceof Object[]) aRecipe = (Object[])aRecipe[0];
-// if (aRecipe.length > 2) CR.shaped(getItem(aClassContainer.mID), CR.DEF_REV_NCC, aRecipe);
-// }
-// // A simple special case to make it easier to add a Machine to Recipe Lists without having to worry about anything.
-// String tRecipeMapName = aClassContainer.mParameters.getString(NBT_RECIPEMAP);
-// if (GT_Utility.isStringValid(tRecipeMapName)) {RecipeMap tMap = RecipeMap.RECIPE_MAPS.get(tRecipeMapName); if (tMap != null) tMap.mRecipeMachineList.add(getItem(aClassContainer.mID));}
-// tRecipeMapName = aClassContainer.mParameters.getString(NBT_FUELMAP);
-// if (GT_Utility.isStringValid(tRecipeMapName)) {RecipeMap tMap = RecipeMap.RECIPE_MAPS.get(tRecipeMapName); if (tMap != null) tMap.mRecipeMachineList.add(getItem(aClassContainer.mID));}
-//
+ // // TODO: Recipe
+ // if (aRecipe != null && aRecipe.length > 1) {
+ // if (aRecipe[0] instanceof Object[]) aRecipe = (Object[])aRecipe[0];
+ // if (aRecipe.length > 2) CR.shaped(getItem(aClassContainer.mID), CR.DEF_REV_NCC, aRecipe);
+ // }
+ // // A simple special case to make it easier to add a Machine to Recipe Lists without having to worry
+ // about anything.
+ // String tRecipeMapName = aClassContainer.mParameters.getString(NBT_RECIPEMAP);
+ // if (GT_Utility.isStringValid(tRecipeMapName)) {RecipeMap tMap =
+ // RecipeMap.RECIPE_MAPS.get(tRecipeMapName); if (tMap != null)
+ // tMap.mRecipeMachineList.add(getItem(aClassContainer.mID));}
+ // tRecipeMapName = aClassContainer.mParameters.getString(NBT_FUELMAP);
+ // if (GT_Utility.isStringValid(tRecipeMapName)) {RecipeMap tMap =
+ // RecipeMap.RECIPE_MAPS.get(tRecipeMapName); if (tMap != null)
+ // tMap.mRecipeMachineList.add(getItem(aClassContainer.mID));}
+ //
return getItem(aClassContainer.mID);
}
public short mLastRegisteredID = GT_Values.W;
+ public ItemStack getItem() {
+ return getItem(mLastRegisteredID, 1, null);
+ }
- public ItemStack getItem() {return getItem(mLastRegisteredID, 1, null);}
- public ItemStack getItem(int aID) {return getItem(aID, 1, null);}
- public ItemStack getItem(int aID, NBTTagCompound aNBT) {return getItem(aID, 1, aNBT);}
- public ItemStack getItem(int aID, long aAmount) {return getItem(aID, aAmount, null);}
+ public ItemStack getItem(int aID) {
+ return getItem(aID, 1, null);
+ }
+
+ public ItemStack getItem(int aID, NBTTagCompound aNBT) {
+ return getItem(aID, 1, aNBT);
+ }
+
+ public ItemStack getItem(int aID, long aAmount) {
+ return getItem(aID, aAmount, null);
+ }
public ItemStack getItem(int aID, long aAmount, NBTTagCompound aNBT) {
- final ItemStack rStack = new ItemStack(mBlock, (int)aAmount, aID);
+ final ItemStack rStack = new ItemStack(mBlock, (int) aAmount, aID);
if (aNBT == null || aNBT.hasNoTags()) {
aNBT = new NBTTagCompound();
final MultiTileEntityContainer tTileEntityContainer = getNewTileEntityContainer(aID, aNBT);
- if (tTileEntityContainer != null) ((IMultiTileEntity)tTileEntityContainer.mTileEntity).writeItemNBT(aNBT);
+ if (tTileEntityContainer != null) ((IMultiTileEntity) tTileEntityContainer.mTileEntity).writeItemNBT(aNBT);
}
rStack.setTagCompound(aNBT);
return rStack;
@@ -185,16 +209,26 @@ public class MultiTileEntityRegistry {
return tContainer == null ? null : (TileEntity) tContainer.mTileEntity;
}
- public MultiTileEntityContainer getNewTileEntityContainer(World aWorld, int aX, int aY, int aZ, int aID, NBTTagCompound aNBT) {
+ public MultiTileEntityContainer getNewTileEntityContainer(
+ World aWorld, int aX, int aY, int aZ, int aID, NBTTagCompound aNBT) {
final MultiTileEntityClassContainer tClass = mRegistry.get((short) aID);
if (tClass == null || tClass.mBlock == null) return null;
- final MultiTileEntityContainer rContainer = new MultiTileEntityContainer((TileEntity) GT_Utility.callConstructor(tClass.mClass, -1, null, true), tClass.mBlock, tClass.mBlockMetaData);
+ final MultiTileEntityContainer rContainer = new MultiTileEntityContainer(
+ (TileEntity) GT_Utility.callConstructor(tClass.mClass, -1, null, true),
+ tClass.mBlock,
+ tClass.mBlockMetaData);
if (rContainer.mTileEntity == null) return null;
rContainer.mTileEntity.setWorldObj(aWorld);
rContainer.mTileEntity.xCoord = aX;
rContainer.mTileEntity.yCoord = aY;
rContainer.mTileEntity.zCoord = aZ;
- ((IMultiTileEntity) rContainer.mTileEntity).initFromNBT(aNBT == null || aNBT.hasNoTags() ? tClass.mParameters : GT_Util.fuseNBT(aNBT, tClass.mParameters), (short) aID, (short) Block.getIdFromBlock(mBlock));
+ ((IMultiTileEntity) rContainer.mTileEntity)
+ .initFromNBT(
+ aNBT == null || aNBT.hasNoTags()
+ ? tClass.mParameters
+ : GT_Util.fuseNBT(aNBT, tClass.mParameters),
+ (short) aID,
+ (short) Block.getIdFromBlock(mBlock));
return rContainer;
}
@@ -204,12 +238,14 @@ public class MultiTileEntityRegistry {
}
public TileEntity getNewTileEntity(ItemStack aStack) {
- final MultiTileEntityContainer tContainer = getNewTileEntityContainer(null, 0, 0, 0, Items.feather.getDamage(aStack), aStack.getTagCompound());
+ final MultiTileEntityContainer tContainer =
+ getNewTileEntityContainer(null, 0, 0, 0, Items.feather.getDamage(aStack), aStack.getTagCompound());
return tContainer == null ? null : tContainer.mTileEntity;
}
public TileEntity getNewTileEntity(World aWorld, int aX, int aY, int aZ, ItemStack aStack) {
- final MultiTileEntityContainer tContainer = getNewTileEntityContainer(aWorld, aX, aY, aZ, Items.feather.getDamage(aStack), aStack.getTagCompound());
+ final MultiTileEntityContainer tContainer =
+ getNewTileEntityContainer(aWorld, aX, aY, aZ, Items.feather.getDamage(aStack), aStack.getTagCompound());
return tContainer == null ? null : tContainer.mTileEntity;
}
@@ -224,5 +260,4 @@ public class MultiTileEntityRegistry {
public MultiTileEntityContainer getNewTileEntityContainer(int aID, NBTTagCompound aNBT) {
return getNewTileEntityContainer(null, 0, 0, 0, aID, aNBT);
}
-
}