From 71a3818bddac76a3b077749c802f36ccd6cb29fa Mon Sep 17 00:00:00 2001 From: Christian Date: Sun, 19 Aug 2012 10:30:24 -0400 Subject: [PATCH] Documentation and registration for villager stuff --- .../fml/common/registry/VillagerRegistry.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/common/cpw/mods/fml/common/registry/VillagerRegistry.java b/common/cpw/mods/fml/common/registry/VillagerRegistry.java index e90e154d3f..f59d46b792 100644 --- a/common/cpw/mods/fml/common/registry/VillagerRegistry.java +++ b/common/cpw/mods/fml/common/registry/VillagerRegistry.java @@ -13,8 +13,10 @@ import com.google.common.collect.Multimap; import cpw.mods.fml.common.FMLLog; import net.minecraft.src.EntityVillager; +import net.minecraft.src.MapGenVillage; import net.minecraft.src.MerchantRecipeList; import net.minecraft.src.StructureVillagePieceWeight; +import net.minecraft.src.StructureVillagePieces; /** * Registry for villager trading control @@ -30,13 +32,41 @@ public class VillagerRegistry private List villageCreationHandlers = Lists.newArrayList(); private Map newVillagers = Maps.newHashMap(); + /** + * Allow access to the {@link StructureVillagePieces} array controlling new village + * creation so you can insert your own new village pieces + * + * @author cpw + * + */ public interface IVillageCreationHandler { + /** + * Called when {@link MapGenVillage} is creating a new village + * + * @param random + * @param i + * @return + */ List getVillagePieces(Random random, int i); } + /** + * Allow access to the {@link MerchantRecipeList} for a villager type for manipulation + * + * @author cpw + * + */ public interface IVillageTradeHandler { + /** + * Called to allow changing the content of the {@link MerchantRecipeList} for the villager + * supplied during creation + * + * @param villager + * @param recipeList + * @param random + */ void manipulateTradesForVillager(EntityVillager villager, MerchantRecipeList recipeList, Random random); } @@ -45,6 +75,12 @@ public class VillagerRegistry return INSTANCE; } + /** + * Register a new skin for a villager type + * + * @param villagerId + * @param villagerSkin + */ public void registerVillagerType(int villagerId, String villagerSkin) { if (newVillagers.containsKey(villagerId)) @@ -55,7 +91,34 @@ public class VillagerRegistry newVillagers.put(villagerId, villagerSkin); } + /** + * Register a new village creation handler + * + * @param handler + */ + public void registerVillageCreationHandler(IVillageCreationHandler handler) + { + villageCreationHandlers.add(handler); + } + /** + * Register a new villager trading handler for the specified villager type + * + * @param villagerId + * @param handler + */ + public void registerVillageTradeHandler(int villagerId, IVillageTradeHandler handler) + { + tradeHandlers.put(villagerId, handler); + } + + /** + * Callback to setup new villager types + * + * @param villagerType + * @param defaultSkin + * @return + */ public static String getVillagerSkin(int villagerType, String defaultSkin) { if (instance().newVillagers.containsKey(villagerType)) @@ -65,6 +128,14 @@ public class VillagerRegistry return defaultSkin; } + /** + * Callback to handle trade setup for villagers + * + * @param recipeList + * @param villager + * @param villagerType + * @param random + */ public static void manageVillagerTrades(MerchantRecipeList recipeList, EntityVillager villager, int villagerType, Random random) { for (IVillageTradeHandler handler : instance().tradeHandlers.get(villagerType))