package joshie.harvest.api.npc;
import joshie.harvest.api.npc.gift.IGiftRegistry;
import joshie.harvest.api.npc.greeting.Script;
import joshie.harvest.api.npc.schedule.ScheduleBuilder;
import net.minecraft.entity.EntityAgeable;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
/** For registering and manipulating npcs **/
public interface INPCHelper {
/** This will return the instance of the gift registry
* @return the npc gift registry **/
IGiftRegistry getGifts();
/** Will return a stack representation of this npc
* @param npc the npc **/
ItemStack getStackForNPC(NPC npc);
/** Speech helper
* Returns a random speech for this npc based on the input string
* @param npc the npc
* @param text the unlocalzied name
* @param maximumAlternatives max attempts to try
* @param data any additional data to be formatted **/
String getRandomSpeech(NPC npc, final String text, final int maximumAlternatives, Object... data);
/** Called from the schedule builder to build it
* @param builder the builder object **/
ISchedule buildSchedule(ScheduleBuilder builder);
/** Forces a script to open
* @param player the player to open it for
* @param npc the npc to open it for
* @param script the script data to use **/
void forceScriptOpen(EntityPlayer player, EntityAgeable npc, Script script);
enum Gender {
MALE, FEMALE
}
enum Age {
CHILD, ADULT, ELDER
}
}