package org.tjuscs.bulletgame.task; import java.util.HashMap; import java.util.Map; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; public class TaskList { private Map<String,Task> list = new HashMap<String, Task>(); public boolean act(String name){ return list.get(name).act(); } public void addTask(String name, Task task){ list.put(name, task); } public void setBinding(String name, Object obj){ for(Task task : list.values()){ task.setBinding(name, obj); } } public void removeTask(String name){ list.remove(name); } public Task get(String name){ return list.get(name); } public static TaskList readScript(String fileName){ try { FileHandle file = Gdx.files.internal(fileName); String content = file.readString("utf-8"); Document doc = DocumentHelper.parseText(content); Element root = doc.getRootElement(); if(root.getName().equalsIgnoreCase("tasklist")){ TaskList list = new TaskList(); for(Object obj : root.elements()){ Element e = (Element) obj; if(e.getName().equalsIgnoreCase("task")){ String name = e.attributeValue("name"); Task task = Tasks.parse(e.elements().get(0)); Tasks.setDefaultBindings(task); list.addTask(name, task); } } list.setBinding("tasklist", list); return list; } } catch (Exception e) { e.printStackTrace(); } return null; } }