package cellsociety; public class Main extends Application { public static final String DEFAULT_RESOURCE_FOLDER public static ResourceBundle resources public static ResourceBundle errorResources public static ResourceBundle fileResources public static ResourceBundle dataResources public static void setCurrentLanguage(String s) public static void setCurrentStylesheet(String s) public static void createNewWindow(Scene newSplashScreen) public void start(Stage stage) } package cellsociety.model.cells; public class Cell_Segregation extends Cell { public Cell_Segregation(String cellValue) } package cellsociety.model.cells; public class Cell_Falling extends Cell{ public Cell_Falling(String cellValue) } package cellsociety.model.cells; public class Cell_CGOL extends Cell { public Cell_CGOL(String cellValue) } package cellsociety.model.cells; public class Cell_Wator extends Cell { public Cell_Wator(String cellValue, int fishBreedTimeLeft, int public int getFishBreedTimeLeft() public int getSharkBreedTimeLeft() public int getSharkStarveTimeLeft() public void setFishBreedTimeLeft(int fishBreedTimeLeft) public void setSharkBreedTimeLeft(int sharkBreedTimeLeft) public void setSharkStarveTimeLeft(int sharkStarveTimeLeft) } package cellsociety.model.cells; public class Cell_FireSpreading extends Cell { public Cell_FireSpreading(String cellValue) } package cellsociety.model.cells; public class Cell_Percolation extends Cell { public Cell_Percolation(String cellValue) } package cellsociety.model.cells; public abstract class Cell { public Cell(String state) public String getCurrentState() } package cellsociety.model.cells; public class Cell_RPS extends Cell { public Cell_RPS(String cellValue) public int getId() } package cellsociety.model.simulations; public abstract class Simulation { public Simulation(Config config) public abstract void updateCells(); public void initGrid(Map initMap) protected abstract Cell createCell(String state); public Cell getCell(Point point) public boolean containsCell(Point point) } package cellsociety.model.simulations; public class fallingSandSimulation extends Simulation { public fallingSandSimulation(Config_Falling config) public void updateCells() protected Cell createCell(String state) } package cellsociety.model.simulations; public class CGOL_Simulation extends Simulation { public CGOL_Simulation(Config_GOL configuration) public void updateCells() protected Cell createCell(String state) public int getNumLiveNeighbors(int x, int y) } package cellsociety.model.simulations; public class FireSpreading_Simulation extends Simulation{ public FireSpreading_Simulation(Config_FireSpread configuration) public void updateCells() protected Cell createCell(String state) } package cellsociety.model.simulations; public class Segregation_Simulation extends Simulation{ public Segregation_Simulation(Config_Segregation config) protected Cell createCell(String state) public void updateCells() } package cellsociety.model.simulations; public class rockPaperScissorsSimulation extends Simulation { public rockPaperScissorsSimulation(Config_RPS config) public void updateCells() protected Cell createCell(String state) } package cellsociety.model.simulations; public class Percolation_Simulation extends Simulation{ public Percolation_Simulation(Config_Percolation configuration) public void updateCells() protected Cell createCell(String state) public ArrayList getValidNeighbors(Point point) } package cellsociety.model.simulations; public class Wator_Simulation extends Simulation { public Wator_Simulation(Config_Wator config) protected Cell createCell(String state) public void updateCells() } package cellsociety.model.fileParsing; public class ConfigWator extends Config { public static final String TYPE public static final String FISH public static final String SHARK public static final String EMPTY public static final List STATES public ConfigWator() public ConfigWator(Config.Data data, int fishBreedTime, int sharkBreedTime, public String getType() public int getFishBreedTime() public int getSharkBreedTime() public int getSharkStarveTime() public Map getParameters() public void setFishBreedTime(int fishBreedTime) public void setSharkBreedTime(int sharkBreedTime) public void setSharkStarveTime(int sharkStarveTime) public void setParameters(Map parameters) public void setInitialCells(Map initialCells) throws IllegalArgumentException public void setRandomCells(Map cellParameters) public boolean equals(Object o) } package cellsociety.model.fileParsing; public class FileFormatException extends RuntimeException { public FileFormatException(String message) } package cellsociety.model.fileParsing; public class ConfigFalling extends Config { public static final String TYPE public static final String EMPTY public static final String METAL public static final String SAND public static final String WATER public static final List STATES public ConfigFalling() public ConfigFalling(Config.Data data) public String getType() public void setInitialCells(Map initialCells) throws IllegalArgumentException public void setRandomCells(Map cellParameters) } package cellsociety.model.fileParsing; public class ConfigSugarScape extends Config { public static final String TYPE public ConfigSugarScape() public ConfigSugarScape(Config.Data data, int sugarGrowBackRate, public String getType() public int getSugarGrowBackRate() public int getSugarGrowBackInterval() public Map getParameters() public void setSugarGrowBackRate(int sugarGrowBackRate) public void setSugarGrowBackInterval(int sugarGrowBackInterval) public void setInitialCells(Map initialCells) public void setParameters(Map parameters) throws IllegalArgumentException public void setRandomCells(Map randomCells) public boolean equals(Object o) } package cellsociety.model.fileParsing; public class StyleWriter { public static void write(Style style) throws RuntimeException } package cellsociety.model.fileParsing; public class ConfigPercolation extends Config { public static final String TYPE public static final String BLOCKED public static final String OPEN public static final String PERCOLATED public static final List STATES public ConfigPercolation() public ConfigPercolation(Config.Data data) public String getType() public void setInitialCells(Map initialCells) throws IllegalArgumentException public void setRandomCells(Map cellParameters) } package cellsociety.model.fileParsing; public class StyleReader { public static Style read(String filePath) } package cellsociety.model.fileParsing; public class ConfigWriter { public static void write(Config config) throws RuntimeException } package cellsociety.model.fileParsing; public class Style { public record StyleRecord(String name, String author, String description, String edgePolicy, public static final String DEFAULT_EDGE_POLICY public static final String DEFAULT_TILING public record StyleRecord(String name, String author, String description, String edgePolicy, public Style() public Style(StyleRecord styleRecord) public StyleRecord getStyle() public void setStyle(StyleRecord styleRecord) public void setStyle(Map styleMap) public Map getStyleMap() } package cellsociety.model.fileParsing; public class ConfigReader { public static Config read(String filePath) } package cellsociety.model.fileParsing; public class Config { public record Data(String title, String author, String description, int width, int height, Map initialCells, Map colors, Map shapes) { public record Data(String title, String author, String description, int width, int height, Map initialCells, Map colors, Map shapes) public Data() protected Config() protected Config(Data data, String type) public String getType() public String getTitle() public String getAuthor() public String getDescription() public int getWidth() public int getHeight() public Map getInitialCells() public Map getParameters() public String getColor(String state) public Map getColors() public String getShape(String state) public Map getShapes() public void setTitle(String title) public void setAuthor(String author) public void setDescription(String description) public void setWidth(int width) public void setHeight(int height) public void setInitialCells(Map initialCells) public void setRandomCells(Map cells) protected Map verifyRandomCellParameters(Map cellParameters, public void setParameters(Map parameters) public void setColors(Map colors) public void setShapes(Map shapes) public boolean equals(Object obj) } package cellsociety.model.fileParsing; public class ConfigFireSpread extends Config { public static final String TYPE public static final String TREE public static final String FIRE public static final String EMPTY public static final List STATES public ConfigFireSpread() public ConfigFireSpread(Config.Data data, double igniteProb, double growProb) public String getType() public double getIgniteProb() public double getGrowProb() public Map getParameters() public void setIgniteProb(double igniteProb) public void setGrowProb(double growProb) public void setParameters(Map parameters) throws IllegalArgumentException public void setInitialCells(Map initialCells) throws IllegalArgumentException public void setRandomCells(Map cellParameters) public boolean equals(Object o) } package cellsociety.model.fileParsing; public class ConfigGameOfLife extends Config { public static final String TYPE public static final String ALIVE public static final String DEAD public static final List STATES public ConfigGameOfLife() public ConfigGameOfLife(Config.Data data) public ConfigGameOfLife(Config.Data data, List birth, List survive) public String getType() public Collection getBirth() public Collection getSurvive() public Map getParameters() public void setBirth(List birth) public void setSurvive(List survive) public void setInitialCells(Map initialCells) throws IllegalArgumentException public void setRandomCells(Map cellParameters) public void setParameters(Map parameters) throws IllegalArgumentException public boolean equals(Object o) } package cellsociety.model.fileParsing; public class ConfigSegregation extends Config { public static final String TYPE public static final String EMPTY public static final String AGENT_A public static final String AGENT_B public static final List STATES public ConfigSegregation() public ConfigSegregation(Config.Data data, double threshold) public String getType() public double getThreshold() public Map getParameters() public void setThreshold(double threshold) public void setParameters(Map parameters) public void setInitialCells(Map initialCells) throws IllegalArgumentException public void setRandomCells(Map cellParameters) public boolean equals(Object o) } package cellsociety.model.fileParsing; public class ConfigRockPaperScissors extends Config { public static final String TYPE public ConfigRockPaperScissors() public ConfigRockPaperScissors(Config.Data data, int numStates, double beatThreshold) public String getType() public int getNumStates() public double getBeatThreshold() public Map getParameters() public void setNumStates(int numStates) public void setBeatThreshold(double beatThreshold) public void setParameters(Map parameters) throws IllegalArgumentException public void setInitialCells(Map initialCells) throws IllegalArgumentException public void setColors(Map colors) throws IllegalArgumentException public void setShapes(Map shapes) throws IllegalArgumentException public void setRandomCells(Map cellParameters) public boolean equals(Object o) } package cellsociety.view; public class ViewException extends RuntimeException { public ViewException (String message) public ViewException (String message, Throwable cause) } package cellsociety.view.drawable; public interface Drawable { void draw(GraphicsContext gc, double x, double y, double width, double height); } package cellsociety.view.drawable; public class DrawableImage implements Drawable { public DrawableImage(Image image) public void draw(GraphicsContext gc, double x, double y, double width, double height) } package cellsociety.view.drawable; public class DrawableRectangle implements Drawable { public DrawableRectangle(Paint fill) public void draw(GraphicsContext gc, double x, double y, double width, double height) } package cellsociety.view.drawable; public class DrawableCircle implements Drawable { public DrawableCircle(Paint fill) public void draw(GraphicsContext gc, double x, double y, double width, double height) } package cellsociety.view; public class UserInterface { public UserInterface() public void setUpUIContainer(GameInstance gameInstance) public Pane getButtonPane() } package cellsociety.view.textdisplay; public class IterationCountTextDisplay extends TextDisplay { public IterationCountTextDisplay(GameInstance gameInstance) public void updateText() public Label getTextDisplay() } package cellsociety.view.textdisplay; public abstract class TextDisplay { public TextDisplay() public abstract Label getTextDisplay(); } package cellsociety.view.dropdownmenu; public class FileSelectDropDownMenu extends DropDownMenu { public FileSelectDropDownMenu(GameInstance gameInstance) public void handleDropDownMenu(String fileName) public ComboBox getDropDownMenu() } package cellsociety.view.dropdownmenu; public class LanguageSelectDropDownMenu extends DropDownMenu { public LanguageSelectDropDownMenu() public void setUpDropDownMenu(ComboBox dropDownMenu, String prompt, String path) public void handleDropDownMenu(String fileName) throws ViewException public ComboBox getDropDownMenu() } package cellsociety.view.dropdownmenu; public abstract class DropDownMenu { public DropDownMenu() public void setUpDropDownMenu(ComboBox dropDownMenu, String prompt, String path) public abstract void handleDropDownMenu(String fileName); public abstract ComboBox getDropDownMenu(); } package cellsociety.view.dropdownmenu; public class ColorThemeDropDownMenu extends DropDownMenu { public ColorThemeDropDownMenu() public void handleDropDownMenu(String fileName) throws ViewException public ComboBox getDropDownMenu() } package cellsociety.view.dropdownmenu; public class CellShapeDropDownMenu extends DropDownMenu { public CellShapeDropDownMenu(GameInstance gameInstance) public void setUpDropDownMenu(ComboBox dropDownMenu, String prompt, String path) public void handleDropDownMenu(String shape) public ComboBox getDropDownMenu() } package cellsociety.view; public interface UniversalDrawer { static void drawObject(GraphicsContext gc, Drawable drawable, double x, double y, double width, double height) throws ViewException { drawable.draw(gc, x, y, width, height); } catch (Exception e) { throw new ViewException("Error drawing object: " + e.getMessage()); } package cellsociety.view.textinput; public abstract class UserTextInput { public UserTextInput() public Pane getUserTextInput(TextField textField, String prompt) throws ViewException public abstract TextField getUserTextField(); } package cellsociety.view.textinput; public class DescriptionUserTextInput extends UserTextInput { public DescriptionUserTextInput(GameInstance gameInstance) public TextField getUserTextField() } package cellsociety.view.textinput; public class TitleUserTextInput extends UserTextInput { public TitleUserTextInput(GameInstance gameInstance) public TextField getUserTextField() } package cellsociety.view.textinput; public class AuthorUserTextInput extends UserTextInput { public AuthorUserTextInput(GameInstance gameInstance) public TextField getUserTextField() } package cellsociety.view.userslider; public abstract class UserSlider { public UserSlider() public abstract VBox getSlider(); } package cellsociety.view.userslider; public class SpeedUserSlider extends UserSlider { public SpeedUserSlider(int min, int max, int initial, GameInstance gameInstance) public VBox getSlider() } package cellsociety.view.cellview; public class GOLCellView extends CellView { public GOLCellView(GameInstance gameInstance, double width, public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view.cellview; public class FallingCellView extends CellView { public FallingCellView(GameInstance gameInstance, double width, public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view.cellview; public class FireSpreadCellView extends CellView { public FireSpreadCellView(GameInstance gameInstance, double width, public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view.cellview; public class RPSCellView extends CellView { public RPSCellView(GameInstance gameInstance, double width, public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view.cellview; public class SegregationCellView extends CellView { public SegregationCellView(GameInstance gameInstance, double width, public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view.cellview; public abstract class CellView { public CellView(GameInstance gameInstance, double width, double height, Cell cell) public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view.cellview; public class SugarScapeCellView extends CellView { public SugarScapeCellView(GameInstance gameInstance, double width, public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view.cellview; public class PercolationCellView extends CellView { public PercolationCellView(GameInstance gameInstance, double width, public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view.cellview; public class ColorConfig { public ColorConfig() public Map> getSimulationToColorMap() } package cellsociety.view.cellview; public class WatorCellView extends CellView { public WatorCellView(GameInstance gameInstance, double width, public Paint updateCell(GameInstance gameInstance, Cell cell) } package cellsociety.view; public class GameInstance { public GameInstance() public void initializeSelectedSimulation() throws ViewException public void initializeSelectedDrawable(String shape) throws ViewException public Drawable getCurrentDrawable() public void setCurrentDrawable(Drawable drawable) public Config getCurrentConfig() public Simulation getCurrentSimulation() public void setCurrentConfig(Config newConfig) public void setCurrentSimulation(Simulation newSimulation) public Animation getAnimation() public GridView getGrid() public IterationCountTextDisplay getIterationCountDisplay() } package cellsociety.view.splashscreen; public class StartSplashScreen extends SplashScreen { public StartSplashScreen() public Scene getSplashScreen() } package cellsociety.view.splashscreen; public class EditSaveSplashScreen extends SplashScreen { public EditSaveSplashScreen(GameInstance gameInstance) public Scene getSplashScreen() } package cellsociety.view.splashscreen; public class GameSplashScreen extends SplashScreen { public GameSplashScreen() public Scene getSplashScreen() } package cellsociety.view.splashscreen; public abstract class SplashScreen { public SplashScreen() public abstract Scene getSplashScreen(); } package cellsociety.view; public class Animation { public Animation(GameInstance gameInstance) public void animationStep() public void pauseAnimation() public void playAnimation() public void setNewAnimationRate(double newRate) public int getIterationCounter() public void setIterationCounter(int iterationCounter) } package cellsociety.view.gridview; public abstract class GridView { protected final Scale scaleTransform protected final Translate translateTransform public GridView() public void handleZoom() public abstract void updateGrid(); public abstract void setUpGrid(); public abstract Canvas getGrid(); public Pane getPane() public abstract void toggleGrid(); public abstract void clearGrid(); public void updateGridFlip() public void updateToggleGrid() } package cellsociety.view.gridview; public class SquareGridView extends GridView implements UniversalDrawer { public SquareGridView(GameInstance gameInstance) public void updateGrid() public void setUpGrid() public void toggleGrid() public Canvas getGrid() public void clearGrid() } package cellsociety.view.userbutton; public class GridToggleUserButton extends UserButton { public GridToggleUserButton(String property, GameInstance gameInstance) public void handleButtonClick() throws ViewException } package cellsociety.view.userbutton; public class GridFlipUserButton extends UserButton { public GridFlipUserButton(String property, GameInstance gameInstance) public void handleButtonClick() } package cellsociety.view.userbutton; public class OpenSaveUserButton extends UserButton { public OpenSaveUserButton(String property, GameInstance gameInstance) public void handleButtonClick() throws ViewException } package cellsociety.view.userbutton; public class PauseUserButton extends UserButton { public PauseUserButton(String property, GameInstance gameInstance) public void handleButtonClick() throws ViewException } package cellsociety.view.userbutton; public class SaveUserButton extends UserButton { public SaveUserButton(String property, GameInstance gameInstance) public void handleButtonClick() } package cellsociety.view.userbutton; public class EnterGameUserButton extends UserButton { public EnterGameUserButton(String property) public void handleButtonClick() throws ViewException } package cellsociety.view.userbutton; public abstract class UserButton { public UserButton(String property) public abstract void handleButtonClick(); public Button getButton() } package cellsociety.view.userbutton; public class ResetUserButton extends UserButton { public ResetUserButton(String property, GameInstance gameInstance) public void handleButtonClick() throws ViewException } package cellsociety.view.userbutton; public class StartUserButton extends UserButton { public StartUserButton(String property, GameInstance gameInstance) public void handleButtonClick() throws ViewException } package cellsociety.view.userdialogbox; public class ErrorUserDialogBox extends UserDialogBox { public ErrorUserDialogBox(String message) public ErrorUserDialogBox(String message, Throwable cause) } package cellsociety.view.userdialogbox; public class ConfigurationUserDialogBox extends UserDialogBox { public ConfigurationUserDialogBox(Config currentConfig) } package cellsociety.view.userdialogbox; public abstract class UserDialogBox { public UserDialogBox() }