package clientdata.visitors; import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.util.HashMap; import java.util.Map; import org.apache.mina.core.buffer.IoBuffer; import clientdata.VisitorInterface; public class SlotDefinitionVisitor implements VisitorInterface { public static class SlotDefinition { public String slotName; public byte global; public byte canMod; public byte exclusive; public String hardpointName; public int unk1; } public SlotDefinitionVisitor() { definitions = new HashMap<String, SlotDefinition>(); } private Map<String, SlotDefinition> definitions; public Map<String, SlotDefinition> getDefinitions() { return definitions; } @Override public void parseData(String nodename, IoBuffer data, int depth, int size) throws Exception { if(nodename.endsWith("DATA")) { CharsetDecoder cd = Charset.forName("US-ASCII").newDecoder(); while(data.hasRemaining()) { SlotDefinition next = new SlotDefinition(); next.slotName = data.getString(cd); cd.reset(); next.global = data.get(); next.canMod = data.get(); next.exclusive = data.get(); next.hardpointName = data.getString(cd); cd.reset(); next.unk1 = data.getInt(); definitions.put(next.slotName, next); } } } @Override public void notifyFolder(String nodeName, int depth) throws Exception {} }