diff options
Diffstat (limited to 'src/Java/gtPlusPlus/core')
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; } } |