package Roguelike.Fields.SpreadStyle;
import java.util.HashMap;
import com.badlogic.gdx.utils.XmlReader.Element;
import com.badlogic.gdx.utils.reflect.ClassReflection;
import com.badlogic.gdx.utils.reflect.ReflectionException;
import Roguelike.Fields.Field;
public abstract class AbstractSpreadStyle
{
public abstract void update(float delta, Field field);
public abstract void parse(Element xml);
//----------------------------------------------------------------------
public static AbstractSpreadStyle load(Element xml)
{
Class<AbstractSpreadStyle> c = ClassMap.get(xml.getName().toUpperCase());
AbstractSpreadStyle type = null;
try
{
type = (AbstractSpreadStyle)ClassReflection.newInstance(c);
}
catch (ReflectionException e)
{
e.printStackTrace();
}
type.parse(xml);
return type;
}
//----------------------------------------------------------------------
protected static HashMap<String, Class> ClassMap = new HashMap<String, Class>();
//----------------------------------------------------------------------
static
{
ClassMap.put("FLOW", FlowSpreadStyle.class);
ClassMap.put("ADJACENT", AdjacentSpreadStyle.class);
ClassMap.put("NONE", NoneSpreadStyle.class);
ClassMap.put("WANDER", WanderSpreadStyle.class);
}
}