Commit Graph

166 Commits

Author SHA1 Message Date
Marty d79aceeebf Merge branch '54-as-a-user-i-want-to-save-and-load-cell-configurations' into 'master'
Resolve "As a user, I want to save and load cell configurations."

Closes #54

See merge request marty.oehme/cellular-automata!17
2018-10-19 18:51:50 +00:00
Unknown 92e147028e Add Save and Load Buttons to Interface
Fully functional and tested.
2018-10-19 20:51:14 +02:00
Unknown 22dabda987 Add Save and Load Functions to SimService 2018-10-19 20:50:24 +02:00
Unknown 2ea974bbd5 Fix Snapshot Load and Save Functions
Were just pointers to the map before. Fix to be actual clones of the map.
2018-10-19 20:49:59 +02:00
Unknown 37bff59f83 Remove clear function: Code Duplication 2018-10-19 20:01:52 +02:00
Unknown 0da2d08b74 Add Simulation Saving and Loading Methods 2018-10-19 19:59:00 +02:00
Marty befb345ddd Merge branch '55-decouple-engine-and-simulation' into 'master'
Resolve "Decouple Engine and Simulation"

Closes #55

See merge request marty.oehme/cellular-automata!16
2018-10-19 17:37:55 +00:00
Unknown 2169de16fd Add Tests to Simulation 2018-10-19 19:35:09 +02:00
Unknown e8c1e6ed8b Refactor Engine Methods
Extract method checking for update necessity.
2018-10-19 11:50:34 +02:00
Unknown 2993b33d9e Add tests for CellPattern & GameOfLife classes 2018-10-19 10:24:40 +02:00
Marty 7e51c2d70a Merge branch '55-decouple-engine-and-simulation' into 'master'
Resolve "Decouple Engine and Simulation"

Closes #55

See merge request marty.oehme/cellular-automata!15
2018-10-18 13:23:58 +00:00
Unknown 8afb45e33e Merge remote-tracking branch 'origin/55-decouple-engine-and-simulation' into 55-decouple-engine-and-simulation 2018-10-18 15:23:10 +02:00
Unknown 8db9cd6ff1 Move Simulation Accesses to Simulation Class
Everything has been refactored away from engine, which now only controls updating & rendering within a specific timestep. (As well as stepping forward by calling a single update)

Everything regarding grids, patterns and cells has been moved into the simulation and the Services have been updated to reflect that.
2018-10-18 15:21:50 +02:00
Unknown 32a3676d95 Remove deprecated strict mode 2018-10-18 15:19:54 +02:00
Unknown bbfb2f735b Move Render Methods into SimulationService 2018-10-18 14:52:03 +02:00
Unknown 45e8f01acb Move Render Methods into SimulationService 2018-10-18 14:41:57 +02:00
Unknown 58971016da Remove ConfigurationService
Replaced with direct access to both EngineService and SimulationService.
2018-10-18 14:23:07 +02:00
Unknown 99ead8691b Make gridSize in Services pass correct signature
Both need to conform to Point<int> to be accepted by the engine.
2018-10-18 12:29:46 +02:00
Unknown 7729da3a40 Split ConfigurationService to use SimulationService
Methods concerning engine make use of EngineService, those concerning grid and patterns make use of SimulationService.
2018-10-18 12:16:47 +02:00
Unknown 6b4786fdd0 Add SimulationService to controls
Will eventually attach to the Simulation directly without first going through Engine. For now just redirects calls to EngineService to keep functions intact.
2018-10-18 12:05:02 +02:00
Unknown 72ce25a806 Rename Controls component variable accessing engine 2018-10-18 11:59:36 +02:00
Unknown 17697070ee Move ControlService tasks into EngineService
All ControlService was used for was a redirection to the engine service. This will be further split up in the future into more logical units of responsibility.
2018-10-18 11:58:38 +02:00
Marty b37487a222 Merge branch '53-encapsulate-ruleset-patterns-in-separate-data-structure' into 'master'
Resolve "Encapsulate Ruleset, Patterns in separate Data Structure"

Closes #53

See merge request marty.oehme/cellular-automata!14
2018-10-18 09:35:12 +00:00
Unknown 4f92c69a82 Rename Simulation function adding random patterns
Rename from addPattern to addRandomPattern to more clearly signify its purpose.
2018-10-18 11:32:00 +02:00
Unknown f1399064a2 Fix Simulation using RuleSet range for neighbor checks 2018-10-18 11:30:14 +02:00
Unknown e13962f371 Shorten RuleSet variable for their checked range
Range is self-explanatory and not as confusing as checkRange.
2018-10-18 11:29:55 +02:00
Unknown 0aa3df30b4 Extract CellPattern and GameOfLife into own files 2018-10-18 11:27:44 +02:00
Unknown fbdf114fed Move RuleSet to its own directory 2018-10-18 11:21:18 +02:00
Unknown 4f63947ab9 Delete unused Cell and Rule Classes
They were used under the old system of every
gridspace being its own cell data structure with its own rules to observe. 

Replaced by the RuleSet class. Cell has vanished in favor
of simple boolean values filling the grid.
2018-10-18 11:20:41 +02:00
Unknown c3244b085e Fix single steps not updating simulation 2018-10-18 11:04:23 +02:00
Unknown de1aa46743 Separate Simulation calculating updates and merging
Simulation updates were one step of calculation and merging the calculations into the map in one function.

Separating the two allows checking for a new update without affecting the grid, allows passing the last Update around and allows custom changes to the grid by passing changes to the merge function that were not derived from the update function.
2018-10-18 10:58:06 +02:00
Unknown e16085153a Rename Simulation in Engine Object 2018-10-18 09:59:26 +02:00
Unknown bac65ef116 Remove unnecessary pattern parameters 2018-10-18 09:57:08 +02:00
Unknown 6d7120650f Add Special Patterns to RuleSet 2018-10-17 21:08:55 +02:00
Unknown e6e82f78f2 Remove unnecessary Switch Case in Simulation 2018-10-17 21:07:48 +02:00
Unknown 9b2b5f3e55 Remove unnecessary Simulation variables 2018-10-17 21:00:14 +02:00
Unknown 27d4879b1b Extract RuleSet Class from Simulation 2018-10-17 20:58:04 +02:00
Marty 07f176be3e Merge branch '43-add-statechange-data-structure' into 'master'
Resolve "Add StateChange data structure"

Closes #43

See merge request marty.oehme/cellular-automata!13
2018-10-16 16:23:29 +00:00
Unknown 245d9a22c2 Remove Cell Data Structure
Cells are only boolean values of true or false for now.
2018-10-16 18:21:21 +02:00
Unknown 71f4df85af Refactor Simulation to be List of dumb cells
Cells are now only an empty struct, they carry no information beyond needing to be re-rendered. All Simulation logic is handled in the Simulation Class.
2018-10-15 17:28:09 +02:00
Unknown 08155b70a5 Fix Pausing after every Update
Updates would pause when any change has happened, not when no change has happened.
2018-10-15 17:16:09 +02:00
Unknown c50e92fb19 Add simple stateChanges map into Simulation 2018-10-02 14:55:39 +02:00
Marty 9c37f87045 Merge branch '44-change-grid-data-structure-to-list' into 'master'
Resolve "Change Grid data structure to List"

Closes #44

See merge request marty.oehme/cellular-automata!12
2018-08-30 10:03:59 +00:00
Marty Oehme a324d52df5 Fix Simulation Neighbor Propagation 2018-08-30 12:03:23 +02:00
Marty Oehme b95d39d2b4 Fix not carrying width and height in Simulation 2018-08-30 10:58:55 +02:00
Marty Oehme 227357a745 Implement new Grid into Simulation 2018-08-30 10:57:14 +02:00
Marty Oehme 2dc1d7fecd Add Grid.fill constructor
Will completely fill the grid with the value passed in.
2018-08-30 10:32:34 +02:00
Marty Oehme eef7a23c8f Regroup Instantiation tests 2018-08-30 10:17:31 +02:00
Marty Oehme fb481669ed Add Coordinates setter
Sets the corresponding element to the parameter value passed in. Checks against the grid size constraints beforehand and throws RangeError if outside of constraints. Preferred method to set
element via coordinates.
2018-08-30 10:02:29 +02:00
Marty Oehme 5725757aa0 Add Coordinate getter documentation 2018-08-30 09:55:25 +02:00