aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core')
-rw-r--r--src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockSpawner.java39
-rw-r--r--src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java2
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java13
3 files changed, 48 insertions, 6 deletions
diff --git a/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockSpawner.java b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockSpawner.java
new file mode 100644
index 0000000000..53c9cdb193
--- /dev/null
+++ b/src/Java/gtPlusPlus/core/item/base/itemblock/ItemBlockSpawner.java
@@ -0,0 +1,39 @@
+package gtPlusPlus.core.item.base.itemblock;
+
+import java.util.List;
+
+import cpw.mods.fml.common.registry.EntityRegistry;
+import cpw.mods.fml.common.registry.EntityRegistry.EntityRegistration;
+import gtPlusPlus.plugin.villagers.tile.TileEntityGenericSpawner;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.EnumChatFormatting;
+
+public class ItemBlockSpawner extends ItemBlockMeta{
+
+ private final Block mBlock;
+
+ public ItemBlockSpawner(Block aBlock) {
+ super(aBlock);
+ mBlock = aBlock;
+ }
+
+ @Override
+ public void addInformation(ItemStack aStack, EntityPlayer aPlayer, List aList, boolean aBool) {
+ if (mBlock != null) {
+ int x = this.getMetadata(aStack.getItemDamage());
+ if (x >= 0) {
+ try {
+ EntityRegistration x1 = EntityRegistry.instance().lookupModSpawn(TileEntityGenericSpawner.mSpawners.get(x), false);
+ if (x1 != null) {
+ aList.add(EnumChatFormatting.RED+x1.getEntityName());
+ }
+ }
+ catch (Throwable t) {}
+ }
+ }
+ super.addInformation(aStack, aPlayer, aList, aBool);
+ }
+
+}
diff --git a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java
index d8218d9249..b1e763c384 100644
--- a/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java
+++ b/src/Java/gtPlusPlus/core/tileentities/ModTileEntities.java
@@ -6,6 +6,7 @@ import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.tileentities.general.*;
import gtPlusPlus.core.tileentities.machines.*;
+import gtPlusPlus.plugin.villagers.tile.TileEntityGenericSpawner;
public class ModTileEntities {
@@ -21,6 +22,7 @@ public class ModTileEntities {
GameRegistry.registerTileEntity(TileEntityTradeTable.class, "TileTradeTable");
GameRegistry.registerTileEntity(TileEntityModularityTable.class, "TileEntityModularityTable");
GameRegistry.registerTileEntity(TileEntityXpConverter.class, "TileEntityXpConverter");
+ GameRegistry.registerTileEntity(TileEntityGenericSpawner.class, "TileEntityGenericSpawner");
//Mod TEs
diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java
index 7f9aa7098b..2dd4517f79 100644
--- a/src/Java/gtPlusPlus/core/util/Utils.java
+++ b/src/Java/gtPlusPlus/core/util/Utils.java
@@ -830,25 +830,26 @@ public class Utils {
}
}
- public static void createNewMobSpawner(int aID, Entity aEntity) {
+ public static boolean createNewMobSpawner(int aID, Entity aEntity) {
Class<Entity> c;
if (aEntity instanceof Entity) {
c = (Class<Entity>) aEntity.getClass();
- createNewMobSpawner(aID, c);
+ return createNewMobSpawner(aID, c);
}
+ return false;
}
- public static void createNewMobSpawner(int aID, Class aEntity) {
+ public static boolean createNewMobSpawner(int aID, Class aEntity) {
Logger.INFO("[Spawn] Generating new spawner for entity with class ("+aEntity.getCanonicalName()+").");
if (TileEntityGenericSpawner.registerNewMobSpawner(aID, aEntity)) {
EntityRegistration x = EntityRegistry.instance().lookupModSpawn(aEntity, false);
if (x != null) {
Logger.INFO("[Spawn] Registration for "+x.getEntityName()+" successful");
+ return true;
}
}
- else {
- Logger.INFO("[Spawn] Registration for "+aEntity.getName()+" failed");
- }
+ Logger.INFO("[Spawn] Mob Spawner creation for "+aEntity.getName()+" failed");
+ return false;
}
}