Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[v0.5.0] - unreleased
This release doesn't add much new functionality, but represents a major restructuring of the code base. Specifically, it removes the Agents.jl dependency and changes the way the species definition macros work and are used.
Added
-
SimulationModel
type, extended byAgricultureModel
struct -
@create
macro defines a special phase function that is called when an individual animal is created (at birth or on model initialisation) -
functions (and associated macros) to replace Agents.jl functionality:
-
move!()
andwalk!()
-
nearby_ids()
,nearby_animals()
,countanimals()
,neighbours()
-
directionto()
,distanceto()
,randomdirection()
-
nagents()
,killallanimals!()
-
-
@here
-
large logo and model structure diagram
-
Changelog
Changed
-
SimulationModel
replacesAgentBasedModel
-
Species definition macros revamped:
-
@species
now only defines parameters and variables and creates a mutable struct -
@phase
must now be defined in the top-level code and creates a global function -
@initialise
renamed to@populate
, must also be called in the top-level code -
initindividual()
renamed tocreate!()
-
-
Skylark, Wolpertinger, and Wyvern updated to match the new macros
-
requires Julia 1.10