/**
* Copyright (c) Lambda Innovation, 2013-2016
* This file is part of the AcademyCraft mod.
* https://github.com/LambdaInnovation/AcademyCraft
* Licensed under GPLv3, see project root for more information.
*/
package cn.academy.ability.develop.action;
import cn.academy.ability.develop.IDeveloper;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.ResourceLocation;
/**
* An IDevelopAction represents a single kind of process to be performed in Developer.
* You have to provide the stimulation count and the learned callback.
* @author WeAthFolD
*/
public interface IDevelopAction {
int getStimulations(EntityPlayer player);
/**
* @param player Target player
* @param developer The developer that is performing this action
* @return Whether the action can be REALLY started/performed at the moment.
* This should be some constraints to player's current state.
*/
boolean validate(EntityPlayer player, IDeveloper developer);
/**
* The action performed when really learned the develop type.
*/
void onLearned(EntityPlayer player);
}