diff options
author | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-07-01 20:41:20 +1000 |
---|---|---|
committer | Alkalus <3060479+draknyte1@users.noreply.github.com> | 2018-07-01 20:41:20 +1000 |
commit | 1a9e60e4fdb194416c622d44235a931bac79e606 (patch) | |
tree | bed3439e8f87a83767071d2090dd7a8564949b08 /src/Java/gtPlusPlus/plugin | |
parent | fe15444a942c8d2b7740246c4fdb83d3f772950e (diff) | |
download | GT5-Unofficial-1a9e60e4fdb194416c622d44235a931bac79e606.tar.gz GT5-Unofficial-1a9e60e4fdb194416c622d44235a931bac79e606.tar.bz2 GT5-Unofficial-1a9e60e4fdb194416c622d44235a931bac79e606.zip |
$ Improved handling of Custom Skins for Villagers.
Diffstat (limited to 'src/Java/gtPlusPlus/plugin')
4 files changed, 26 insertions, 13 deletions
diff --git a/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java b/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java index 09ff48aff5..52016d7ee9 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java +++ b/src/Java/gtPlusPlus/plugin/villagers/Core_VillagerAdditions.java @@ -50,14 +50,14 @@ public class Core_VillagerAdditions implements IPlugin { 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); + VillagerUtils.registerNewVillager(0, "TESTIFICATE", "TESTIFICATE", "TESTIFICATE", "trackman", null); + VillagerUtils.registerNewVillager(1, "TESTIFICATE1", "TESTIFICATE1", "TESTIFICATE1", "trackman", null); + VillagerUtils.registerNewVillager(2, "TESTIFICATE2", "TESTIFICATE2", "TESTIFICATE2", "trackman", null); if (mVillagerMap.size() > 0) { for (VillagerObject g : mVillagerMap.values()) { if (g != null && g.mID >= 0) { - VillagerRegistry.instance().registerVillagerId(g.mID); + VillagerRegistry.instance().registerVillagerId(7735+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) { diff --git a/src/Java/gtPlusPlus/plugin/villagers/VillagerObject.java b/src/Java/gtPlusPlus/plugin/villagers/VillagerObject.java index c0684b6227..8f47cb0243 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/VillagerObject.java +++ b/src/Java/gtPlusPlus/plugin/villagers/VillagerObject.java @@ -2,28 +2,37 @@ package gtPlusPlus.plugin.villagers; import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; import gtPlusPlus.api.objects.data.Pair; +import gtPlusPlus.core.lib.CORE; 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) { - + + public VillagerObject(int aID, String aName, Object aProfession, Object aCareer, Object 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); + + if (aSkin instanceof String) { + String s = (String) aSkin; + aSkin = new ResourceLocation(CORE.MODID+":"+"textures/entity/villager/"+s+".png"); + } + if (aSkin instanceof ResourceLocation) { + Core_VillagerAdditions.mVillagerSkins.put(aID, (ResourceLocation) aSkin); + } + } VillagerUtils.registerNewVillager(aID, this); } diff --git a/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java b/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java index 848b0fcfbb..f252ad068d 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java +++ b/src/Java/gtPlusPlus/plugin/villagers/VillagerUtils.java @@ -3,19 +3,20 @@ package gtPlusPlus.plugin.villagers; import java.util.HashMap; import cpw.mods.fml.common.registry.VillagerRegistry.IVillageTradeHandler; -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) { + public static void registerNewVillager(int aID, String aName, Object aProfession, Object aCareer, Object aSkin, IVillageTradeHandler aCustomTrade) { 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/entity/EntityBaseVillager.java b/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java index 09bb65f620..5f0e0d27f0 100644 --- a/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java +++ b/src/Java/gtPlusPlus/plugin/villagers/entity/EntityBaseVillager.java @@ -44,6 +44,8 @@ public class EntityBaseVillager extends EntityVillager { * interacts with buyingList and make it use your own list, or you need to not * extend EntityVillager and just implement IMerchant instead. */ + + private final int mRoleID; public EntityBaseVillager(World aWorld){ this(aWorld, 0); @@ -51,6 +53,7 @@ public class EntityBaseVillager extends EntityVillager { public EntityBaseVillager(World aWorld, int aID) { super(aWorld, aID); + mRoleID = aID; } @Override @@ -97,7 +100,7 @@ public class EntityBaseVillager extends EntityVillager { @Override public int getProfession() { - return super.getProfession(); + return 7735+mRoleID; } @Override |