package nodes; public class StaticNode extends Node{ public StaticNode(Cell inpt) public void updateNode() public void finishUpdate() } package nodes; public abstract class Node { public Node(Cell inpt) public abstract void updateNode(); public void setMap(HashMap> map) public void setReplacementCell(Cell nwCell) public Cell getMyCell() public ArrayList getAdjacentNodes() public ArrayList getNeighborCells() public abstract void finishUpdate(); } package nodes; public class AlgoNode extends Node{ public AlgoNode(Cell inpt) public void updateNode() public void finishUpdate() public void setFunc(Function func) } package nodes; public class MovingNode extends Node { public MovingNode(Cell inpt) public void updateNode() public void finishUpdate() } package initialize; public class SugarHandle extends Handle { public SugarHandle() public void getConfigurationParameters(XMLParser xParse) public SugarGame initializeGrid(XMLParser xParse, TilePane tpane) throws IOException public Node[][] initializeCellArray(int gridX, int gridY, TilePane tpane, ArrayList[] cellTypes) public void initializeGameNodeLists(int gridX, int gridY, Node[][] grid, SquareGrid lifeCreate, ArrayList nodeList, HashMap> nodeAdjacentMaps) } package initialize; public class WatorHandle extends Handle { public WatorHandle() public void getConfigurationParameters(XMLParser xParse) public WaterWorldGame initializeGrid(XMLParser xParse, TilePane tpane) throws IOException public MovingNode[][] initializeCellArray(int gridX, int gridY, TilePane tpane, ArrayList[] cellTypes) public void initializeGameNodeLists(int gridX, int gridY, Node[][] grid, Grid lifeCreate, ArrayList nodeList, HashMap> nodeAdjacentMaps) } package initialize; public class Initializer public Initializer(TilePane cellGUI, XMLParser xmlParse, File configFile) public File getConfigFile() public String getSimType() public Handle getHandle(String simType) public Game handleInitialize(Handle gameHandle) throws IOException } package initialize; public class SegHandle extends Handle { public SegHandle() public void getConfigurationParameters(XMLParser xParse) public SegGame initializeGrid(XMLParser xParse, TilePane tpane) throws IOException public AlgoNode[][] initializeCellArray(int gridX, int gridY, TilePane tpane, ArrayList[] cellTypes) public void initializeGameNodeLists(int gridX, int gridY, AlgoNode[][] grid, Grid lifeCreate, ArrayList nodeList, HashMap> nodeAdjacentMaps) } package initialize; public class FireHandle extends Handle { public FireHandle() public void getConfigurationParameters(XMLParser xParse) public FireGame initializeGrid(XMLParser xParse, TilePane tpane) public StaticNode[][] initializeCellArray(int gridX, int gridY, TilePane tpane, ArrayList[] cellTypes) public void initializeGameNodeLists(int gridX, int gridY, Node[][] grid, Grid lifeCreate, ArrayList nodeList, HashMap> nodeAdjacentMaps) } package initialize; public class ColorHandle extends Handle { public ColorHandle() public void getConfigurationParameters(XMLParser xParse) public ColorGame initializeGrid(XMLParser xParse, TilePane tpane) throws IOException public MovingNode[][] initializeCellArray(int gridX, int gridY, TilePane tpane, ArrayList[] cellTypes) public void initializeGameNodeLists(int gridX, int gridY, Node[][] grid, Grid lifeCreate, ArrayList nodeList, HashMap> nodeAdjacentMaps) } package initialize; public class LifeHandle extends Handle { public LifeHandle() public void getConfigurationParameters(XMLParser xParse) public LifeGame initializeGrid(XMLParser xParse, TilePane tpane) throws IOException public StaticNode[][] initializeCellArray(int gridX, int gridY, TilePane tpane, ArrayList[] cellTypes) public void initializeGameNodeLists(int gridX, int gridY, Node[][] grid, Grid lifeCreate, ArrayList nodeList, HashMap> nodeAdjacentMaps) } package initialize; public abstract class Handle{ public static final ArrayList initializeTypeTags = new ArrayList<>(Arrays.asList("random","specific","weightedrandom")); public Handle(ArrayList configParameters, HashMap cellReadMap) public abstract void getConfigurationParameters(XMLParser xParse); public void setConfigFile(File configFile) public abstract Game initializeGrid(XMLParser xParse, TilePane tpane) throws IOException; public ArrayList generateRowlist(int rows) public String getInitializeType(XMLParser xParse) throws IOException public String checkInitializeType(String initializeType) public ArrayList getWeightedRandomProbabilities(XMLParser xParse, ArrayList cellReadList) public ArrayList generateCellIndicators(ArrayList cellCharacters, String rowString, int gridY, int rowNum, String initializeType, XMLParser xParse) public void configureTilePane(TilePane tpane, int numColumns) public int[] getGridDimensions(XMLParser xParse) public void giveNodesTotalMap(ArrayList nodes, HashMap> totalNodeMap) public void giveAlgoNodesTotalMap(ArrayList algoNodes, HashMap> totalNodeMap) public ArrayList[] initializeCellTypes(int gridX, int gridY, ArrayList cellCharacters, HashMap rowStringMap, XMLParser xParse) public void initializeGUIArray(int gridX, int gridY, Grid grid, TilePane tpane, Node[][] nodes) } package shapes; public class HexagonCreator { public static final double RATIO_TRIANGLE_HEIGHT = Math.sqrt(3)/2; public HexagonCreator(double leftCornX, double leftCornY, double sideLength) public Polygon getMyHex() } package shapes; public class TriangleCreator { public static final double RATIO_TRIANGLE_HEIGHT = Math.sqrt(3)/2; public TriangleCreator(double leftCornX, double leftCornY, double sideLength, int direction) public Polygon getMyTriangle() } package grids; public class HexGrid extends Grid{ public static final double HEIGHT_OFFSET_RATIO = Math.sqrt(3)/2.0; public HexGrid(Node[][] grid, int gridX, int gridY, boolean wraparound) public ArrayList getAdjacentNodesMooreNeighborhood(int xPos, int yPos) public ArrayList getAdjacentNodesVonNeumannNeighborhood(int xPos, int yPos) public Shape createShape(int gridX, int gridY, int xPos, int yPos) public double computeCellWidth(int gridX, int gridY) } package grids;//build cell maps for simulations with grids by using a grid public class SquareGrid extends Grid { public SquareGrid(Node[][] grid, int gridX, int gridY, boolean wraparound) public ArrayList getAdjacentNodesMooreNeighborhood(int xPos, int yPos) public ArrayList getAdjacentNodesVonNeumannNeighborhood(int xPos, int yPos) public ArrayList getAdjacentCrossNeighborhood(int xPos, int yPos, int range) public double computeCellWidth(int gridX, int gridY) public Shape createShape(int gridX, int gridY, int xPos, int yPos) } package grids; public class TriGrid { } package grids; public abstract class Grid { public abstract double computeCellWidth(int gridX, int gridY); public abstract ArrayList getAdjacentNodesMooreNeighborhood(int xPos, int yPos); public abstract ArrayList getAdjacentNodesVonNeumannNeighborhood(int xPos, int yPos); public abstract Shape createShape(int gridX, int gridY, int xPos, int yPos); } package game; public class SugarGame extends Game { public SugarGame(HashMap> map, ArrayList nodes) public boolean endState() } package game; public class ColorGame extends Game { public ColorGame(HashMap> map, ArrayList nodes) public boolean endState() } package game; public class WaterWorldGame extends Game { public WaterWorldGame(HashMap> map, ArrayList nodes) public boolean endState() } package game; public abstract class Game { public void step() public abstract boolean endState(); } package game; public class Main extends Application { public static final File FILECHOOSER_DEFAULT_DIR = new File(System.getProperty("user.home")); public void initButtons() public void setButtonActions() public void initSlider() public void setSliderAction() public void setActions() public void initSliderBox() public void initMainBox() public void setMainBoxLabels() public void assignMainBoxLabels() throws IllegalArgumentException public void setupMainBox() public void initFileChooser() public void handleConfigFileError (String message, boolean tryAgain) public void getConfigFile() public void checkConfigFilepath() public void handleFileChooser() public void setInitializer() throws IOException public void initCells() throws IOException public void updateCellTypeCounts() public void setupLineChart() public void updateLineChart() public void setupStage() public void setupScene() throws IOException public void updateTimeline(double delay) public void setupTimeline() throws IOException public void start (Stage stage) throws IOException } package game; public class SegGame extends Game{ public SegGame(HashMap> map, ArrayList nodes) public boolean endState() public Function createFunc() } package game; public class FireGame extends Game { public FireGame(HashMap> map, ArrayList nodes) public boolean endState() } package game; public class LifeGame extends Game { public LifeGame(HashMap> map, ArrayList nodes) public boolean endState() } package xml; public class XMLParser { public XMLParser (ArrayList dataFields) throws IOException public void setDataFields(ArrayList newDataFields) public HashMap getData(File dataFile) throws IOException public Element getRootElement (File xmlFile) throws IOException public boolean isValidFile (Element root) public String getAttribute (Element e, String attributeName) } package cellular.sugar; public class AgentCell extends Cell { public AgentCell(Shape shape, int initSug, int met) public void updateCell(ArrayList neighborCells) } package cellular.sugar; public class SugarCell extends Cell { public static final Color CELL_COLOR = Color.rgb(255,165,0); public SugarCell(Shape shape, int grwthRate, int initSug) public void updateCell(ArrayList neighborCells) public double getSugarCount() public int getGrowthRate() } package cellular.ants; public class NestCell { } package cellular.ants; public class AntCell{ } package cellular.ants; public class GroundCell extends Cell { public GroundCell(Rectangle shape) public void updateCell(ArrayList myNeighborCells) public double getPheramoneA() public double getPheramoneB() public void changePheramoneA(double delta) public void changePheramoneB(double delta) } package cellular.ants; public class ObsCell extends Cell { public ObsCell(Rectangle shape) public void updateCell(ArrayList myNeighborCells) } package cellular.ants; public class FoodCell extends Cell { public FoodCell(Rectangle shape) public void updateCell(ArrayList myNeighborCells) } package cellular.wator; public class SharkCell extends AnimalCell { public SharkCell(Shape shape, int trnsAlive, int trnsSpawn) public void setUpSpawn() public void populateLists(ArrayList myNeighborCells, ArrayList myFoodNodes, ArrayList myWaterNodes) } package cellular.wator; public class KelpCell extends Cell { public KelpCell(Shape shape) public void updateCell(ArrayList myNeighborCells) } package cellular.wator; public class FishCell extends AnimalCell { public FishCell(Shape shape, int trnsAlive, int trnsSpawn) public void setUpSpawn() public void populateLists(ArrayList myNeighborCells, ArrayList myFoodNodes, ArrayList myWaterNodes) } package cellular.wator; public class WaterCell extends Cell { public WaterCell(Shape shape) public KelpCell makeReplacement() public void updateCell(ArrayList myNeighborCells) public boolean spawns() } package cellular.wator; public abstract class AnimalCell extends Cell { public void updateCell(ArrayList myNeighborCells) public void findDestinations(ArrayList myFoodCells, ArrayList myWaterCells) public Cell chooseCell(ArrayList cellList) public Cell findSpawn(ArrayList cellList) public abstract void setUpSpawn(); public abstract void populateLists(ArrayList myNeighborCells, ArrayList myFoodNodes, ArrayList myWaterNodes); } package cellular.life; public class LiveCell extends Cell { public LiveCell(Shape shape) public void updateCell(ArrayList myNeighborCells) } package cellular.life; public class DeadCell extends Cell { public DeadCell(Shape shape) public void updateCell(ArrayList myNeighborCells) } package cellular.fire; public class BurningCell extends Cell { public BurningCell(Shape shape) public void updateCell(ArrayList myNeighborCells) } package cellular.fire; public class TreeCell extends Cell { public TreeCell(Shape shape, double prob) public void updateCell(ArrayList myNeighborCells) public boolean burns() } package cellular.fire; public class BurntCell extends Cell { public BurntCell(Shape shape) public void updateCell(ArrayList myNeighborCells) } package cellular.segregation; public class TypeTwoCell extends PersonCell { public TypeTwoCell(Shape shape, double rate) public void updateCell(ArrayList myNeighborCells) } package cellular.segregation; public class TypeOneCell extends PersonCell { public TypeOneCell(Shape shape, double rate) public void updateCell(ArrayList myNeighborCells) } package cellular.segregation; public abstract class PersonCell extends Cell { public boolean shouldMove() } package cellular.segregation; public class EmptyCell extends Cell { public EmptyCell(Shape shape) public void updateCell(ArrayList myNeighborCells)} } package cellular.rpc; public class WhiteCell extends ColorCell { public WhiteCell(Shape shape) public ColorCell createChild(Shape rec) public boolean isPrey(Cell target) } package cellular.rpc; public class BlueCell extends ColorCell { public static final Color CELL_COLOR = Color.rgb(0, 0, 255); public BlueCell(Shape shape) public ColorCell createChild(Shape rec) public boolean isPrey(Cell target) } package cellular.rpc; public class RedCell extends ColorCell { public static final Color CELL_COLOR = Color.rgb(255, 0, 0); public RedCell(Shape shape) public ColorCell createChild(Shape rec) public boolean isPrey(Cell target) } package cellular.rpc; public class GreenCell extends ColorCell { public static final Color CELL_COLOR = Color.rgb(0, 255, 0); public GreenCell (Shape shape) public ColorCell createChild(Shape rec) public boolean isPrey(Cell target) } package cellular.rpc; public abstract class ColorCell extends Cell { public ColorCell(Shape shape, Color CELL_COLOR) public void updateCell(ArrayList myNeighborCells) public void setGradient(int nwGrad) public int getGradient() public void updateColor() public void replaceTarget(Cell target) public abstract ColorCell createChild(Shape rec); public abstract boolean isPrey(Cell target); } package cellular; public abstract class Cell { public Cell(Shape shape, Color color) public abstract void updateCell(ArrayList neighborCells); public Cell getReplacementCell() public Shape getMySquare() public void replaceMySquare(Shape nwRec) public HashMap getTargets() public void resetTarget() public void choose() public boolean wasChosen() public void resetChosen() }