diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-07-01 19:15:47 +1000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-07-01 19:15:47 +1000 |
commit | 35a555fff44b6b3f0d9bb007481edeed3bc09c4e (patch) | |
tree | 0762ca8b9e47b31d6185d18553e6c926397e7950 /src/Java/gtPlusPlus/plugin | |
parent | 03e72a68aee10a871b3186d141b14c76770c72fb (diff) | |
download | GT5-Unofficial-35a555fff44b6b3f0d9bb007481edeed3bc09c4e.tar.gz GT5-Unofficial-35a555fff44b6b3f0d9bb007481edeed3bc09c4e.tar.bz2 GT5-Unofficial-35a555fff44b6b3f0d9bb007481edeed3bc09c4e.zip |
% More work on Villagers.
% More work on Spawners.
Diffstat (limited to 'src/Java/gtPlusPlus/plugin')
6 files changed, 82 insertions, 28 deletions
diff --git a/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java b/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java index ee0673ee20..09ff48aff5 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java +++ b/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java @@ -1,13 +1,17 @@ package gtPlusPlus.plugin.villagers; +import static gtPlusPlus.plugin.villagers.VillagerUtils.mVillagerMap; + import java.util.HashMap; +import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.VillagerRegistry; import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; import gtPlusPlus.api.interfaces.IPlugin; import gtPlusPlus.api.objects.data.AutoMap; import gtPlusPlus.api.objects.data.Pair; import gtPlusPlus.core.block.ModBlocks; +import gtPlusPlus.core.entity.EntityPrimedMiningExplosive; import gtPlusPlus.core.entity.monster.EntityGiantChickenBase; import gtPlusPlus.core.entity.monster.EntitySickBlaze; import gtPlusPlus.core.entity.monster.EntityStaballoyConstruct; @@ -15,6 +19,7 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; import gtPlusPlus.plugin.manager.Core_Manager; import gtPlusPlus.plugin.villagers.block.BlockGenericSpawner; +import gtPlusPlus.plugin.villagers.entity.EntityBaseVillager; import net.minecraft.util.ResourceLocation; public class Core_VillagerAdditions implements IPlugin { @@ -37,26 +42,43 @@ public class Core_VillagerAdditions implements IPlugin { shouldLoad = true; } if (shouldLoad) { + //Register Custom Villager Entity + EntityRegistry.registerGlobalEntityID(EntityBaseVillager.class, "VillagerV5", EntityRegistry.findGlobalUniqueEntityId(), Utils.rgbtoHexValue(180, 120, 120), Utils.rgbtoHexValue(0, 0, 0)); + //Try register some test spawners Utils.createNewMobSpawner(0, EntityGiantChickenBase.class); Utils.createNewMobSpawner(1, EntitySickBlaze.class); Utils.createNewMobSpawner(2, EntityStaballoyConstruct.class); + + VillagerUtils.registerNewVillager(0, "TESTIFICATE", "TESTIFICATE", "TESTIFICATE", null, null); + VillagerUtils.registerNewVillager(1, "TESTIFICATE1", "TESTIFICATE1", "TESTIFICATE1", null, null); + VillagerUtils.registerNewVillager(2, "TESTIFICATE2", "TESTIFICATE2", "TESTIFICATE2", null, null); + + if (mVillagerMap.size() > 0) { + for (VillagerObject g : mVillagerMap.values()) { + if (g != null && g.mID >= 0) { + VillagerRegistry.instance().registerVillagerId(g.mID); + log("Registered a Custom Villager with ID of "+g.mID+"."); + Utils.createNewMobSpawner(10+g.mID, EntityBaseVillager.class); + if (mVillagerSkins.get(g.mID) != null) { + VillagerRegistry.instance().registerVillagerSkin(g.mID, mVillagerSkins.get(g.mID)); + log("Registered a Custom Skin for Villager with ID of "+g.mID+"."); + } + } + } + } //Register all Villager ID's and their Custom Trades. if (mVillagerTrades.size() > 0) { for (Pair<Integer, IVillageTradeHandler> g : mVillagerTrades) { if (g != null && g.getKey() != null) { - VillagerRegistry.instance().registerVillagerId(g.getKey()); if (g.getValue() != null) { VillagerRegistry.instance().registerVillageTradeHandler(g.getKey(), g.getValue()); - } - if (mVillagerSkins.get(g.getKey()) != null) { - VillagerRegistry.instance().registerVillagerSkin(g.getKey(), mVillagerSkins.get(g.getKey())); + log("Registered a Custom Trade for Villager with ID of "+g.getKey()+"."); } } } - return true; - } + } } return false; } diff --git a/src/Java/gtPlusPlus/plugin/villagers/VillagerObject.java b/src/Java/gtPlusPlus/plugin/villagers/VillagerObject.java new file mode 100644 index 0000000000..c0684b6227 --- /dev/null +++ b/src/Java/gtPlusPlus/plugin/villagers/VillagerObject.java @@ -0,0 +1,31 @@ +package gtPlusPlus.plugin.villagers; + +import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; +import gtPlusPlus.api.objects.data.Pair; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.plugin.villagers.entity.EntityBaseVillager; +import net.minecraft.util.ResourceLocation; + +public class VillagerObject { + + public final int mID; + public final String mName; + + + public VillagerObject(int aID, String aName, Object aProfession, Object aCareer, ResourceLocation aSkin, IVillageTradeHandler aCustomTrade) { + + mID = aID; + mName = aName; + + //Register Custom Trade to Registry. + if (aCustomTrade != null) { + Core_VillagerAdditions.mVillagerTrades.put(new Pair<Integer, IVillageTradeHandler>(aID, aCustomTrade)); + } + //Register Skin to Registry. + if (aSkin != null) { + Core_VillagerAdditions.mVillagerSkins.put(aID, aSkin); + } + VillagerUtils.registerNewVillager(aID, this); + } + +} diff --git a/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java b/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java index 3139bbe698..848b0fcfbb 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java +++ b/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java @@ -1,28 +1,20 @@ package gtPlusPlus.plugin.villagers; +import java.util.HashMap; + import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; -import gtPlusPlus.api.objects.data.Pair; -import gtPlusPlus.core.util.Utils; -import gtPlusPlus.plugin.villagers.entity.EntityBaseVillager; import net.minecraft.util.ResourceLocation; public class VillagerUtils { + public static final HashMap<Integer, VillagerObject> mVillagerMap = new HashMap<Integer, VillagerObject>(); public static void registerNewVillager(int aID, String aName, Object aProfession, Object aCareer, ResourceLocation aSkin, IVillageTradeHandler aCustomTrade) { - - //Register Custom Trade to Registry. - if (aCustomTrade != null) { - Core_VillagerAdditions.mVillagerTrades.put(new Pair<Integer, IVillageTradeHandler>(aID, aCustomTrade)); - } - //Register Skin to Registry. - if (aSkin != null) { - Core_VillagerAdditions.mVillagerSkins.put(aID, aSkin); - } - - EntityBaseVillager entityvillager = new EntityBaseVillager(null, aID); - Utils.createNewMobSpawner(aID, entityvillager); - + registerNewVillager(aID, new VillagerObject(aID, aName, aProfession, aCareer, aSkin, aCustomTrade)); + } + + public static void registerNewVillager(int aID, VillagerObject aVillager) { + mVillagerMap.put(aID, aVillager); } diff --git a/src/Java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java b/src/Java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java index 5f3e704818..916f360012 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java +++ b/src/Java/gtPlusPlus/plugin/villagers/block/BlockGenericSpawner.java @@ -7,8 +7,7 @@ import java.util.List; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -import gtPlusPlus.core.creative.AddToCreativeTab; -import gtPlusPlus.core.item.base.itemblock.ItemBlockMeta; +import gtPlusPlus.core.item.base.itemblock.ItemBlockSpawner; import gtPlusPlus.plugin.villagers.Core_VillagerAdditions; import gtPlusPlus.plugin.villagers.tile.TileEntityGenericSpawner; import net.minecraft.block.BlockMobSpawner; @@ -28,7 +27,7 @@ public class BlockGenericSpawner extends BlockMobSpawner { this.setBlockName("blockMobSpawnerEx"); this.setBlockTextureName("mob_spawner"); this.setResistance(2000.0F); - GameRegistry.registerBlock(this, ItemBlockMeta.class, "blockMobSpawnerEx"); + GameRegistry.registerBlock(this, ItemBlockSpawner.class, "blockMobSpawnerEx"); Core_VillagerAdditions.mInstance.log("Registered Custom Spawner Block."); } diff --git a/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java b/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java index 429ca104ac..dc97aa4ce6 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java +++ b/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java @@ -45,6 +45,10 @@ public class EntityBaseVillager extends EntityVillager { * extend EntityVillager and just implement IMerchant instead. */ + public EntityBaseVillager(World aWorld){ + this(aWorld, 0); + } + public EntityBaseVillager(World aWorld, int aID) { super(aWorld, aID); } diff --git a/src/Java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java b/src/Java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java index 9f2e992d74..53c0c78a23 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java +++ b/src/Java/gtPlusPlus/plugin/villagers/tile/TileEntityGenericSpawner.java @@ -128,8 +128,14 @@ public class TileEntityGenericSpawner extends TileEntityMobSpawner { @Override public void writeToNBT(NBTTagCompound p_145841_1_) { if (hasInternalFieldBeenSet()) { - String s = (String) classToNameMap_Ex.get(mSpawners.get(this.mID)); - if (s == null){ + String s = (String) classToNameMap_Ex.get(this.getClass()); + if (s == null){ + for (Object g : classToNameMap_Ex.values()) { + if (g instanceof String) { + Logger.INFO("Found Translation for "+((Class) nameToClassMap_Ex.get(g)).getName()+": "+g); + } + } + //throw new RuntimeException(this.getClass() + " is missing a mapping! This is a bug!"); s = mSpawners.containsKey(this.mID) ? mSpawners.get(this.mID).getSimpleName() : "bad.class.name"; p_145841_1_.setString("id", s); @@ -140,7 +146,7 @@ public class TileEntityGenericSpawner extends TileEntityMobSpawner { p_145841_1_.setInteger("mID", this.mID); } else { - Logger.WARNING(this.getClass() + " is not missing a mapping! Used key: "+s); + Logger.INFO(this.getClass() + " is not missing a mapping! Used key: "+s); p_145841_1_.setString("id", s); p_145841_1_.setInteger("x", this.xCoord); p_145841_1_.setInteger("y", this.yCoord); |