/** * EnemyDataModel.java */ package rampancy_old.data; import java.util.*; import java.io.Serializable; import rampancy_old.statistics.SuperNode; /** * @author Matthew Chun-Lum * */ public class EnemyDataModel implements Serializable { public int version; public String enemyName; public TreeNode rootNode; public EnemyDataModel(String name, SuperNode[] nodes, int version) { enemyName = name; this.version = version; rootNode = new TreeNode(); rootNode.index = -1; generateTree(nodes); } // ----------- Private Helpers ----------- // /* * Generates the tree from a an array of SuperNodes */ private void generateTree(SuperNode[] nodes) { for(int i = 0; i < nodes.length; i++) { SuperNode node = nodes[i]; updateNodes(rootNode, 0, node.path, node.value); } } private void updateNodes(TreeNode node, int depth, byte[] path, double value) { if(depth == path.length) { node.nodeValue = value; return; } TreeNode next = node.getChildForIndex(path[depth]); if(next == null) next = node.addChild(path[depth]); updateNodes(next, depth + 1, path, value); } }