package com.planet_ink.coffee_mud.Common.interfaces;
import java.util.Vector;
import com.planet_ink.coffee_mud.core.CMath;
/**
* Descriptor class for ability components.
* These are managed by by the Ability library.
* @author Bo Zimmerman
*
*/
public interface AbilityComponent extends CMCommon
{
/**
*
* @return
*/
public CompConnector getConnector();
/**
*
* @param connector
*/
public void setConnector(CompConnector connector);
/**
*
* @return
*/
public CompLocation getLocation();
/**
*
* @param location
*/
public void setLocation(CompLocation location);
/**
*
* @return
*/
public boolean isConsumed();
/**
*
* @param isConsumed
*/
public void setConsumed(boolean isConsumed);
/**
*
* @return
*/
public int getAmount();
/**
*
* @param amount
*/
public void setAmount(int amount);
/**
*
* @return
*/
public CompType getType();
/**
*
* @param type
* @param typeObj
*/
public void setType(CompType type, Object typeObj);
/**
*
* @return
*/
public long getLongType();
/**
*
* @return
*/
public String getStringType();
/**
*
* @return
*/
@SuppressWarnings("unchecked")
public Vector getCompiledMask();
/**
*
* @return
*/
public String getMaskStr();
/**
*
* @param maskStr
*/
public void setMask(String maskStr);
/**
*
* @author Bo Zimmerman
*
*/
public enum CompConnector { AND, OR };
/**
*
* @author Bo Zimmerman
*
*/
public enum CompLocation { INVENTORY, HELD, WORN };
/**
*
* @author Bo Zimmerman
*
*/
public enum CompType { RESOURCE, MATERIAL, STRING };
}