⚠ Warning Project is currently under development
- animals
- all animal species inheriting from the
Animal.
- all animal species inheriting from the
- interfaces
- models
- animal package - parts of animal aggregated inside
Animalclass.Attributes- contains all animal general attributes.Needs- contains animal attributes and methods related to fulfilling its needs (e.g.hunger) and searching for goals (e.g.searchForGoal).Movement- contains animal methods related to movement on the map: in specific direction or position.Interaction- contains animal methods related to animal behaviour and interaction with environment.
Animal- parent of every animal specie.Plant- parent of every plant specie.GraphicalRepresentative- describes instances that can be rendered.Representative- describes material/physical instances on map.Spatial- describes instances with position on map.
- animal package - parts of animal aggregated inside
- plants
- all plant species inheriting from the
Plant.
- all plant species inheriting from the
- services
Config- static class designed for reading.propertiesfiles inside configs directory.
- terrain - controls map
- ui
- utils
- split
sizeparameter into two:render_sizeandinteraction_size. - implement water need:
- create
non-paintableand durable spots aligned to border of each water field (let's say 10px spacing) - these spots would be water resources
- create
- render instances with higher
coords.yfirst
- Factory method: for example
FoxesandRabbitsare being created by staticcreatefactory method - Facade: for example
Simulationclass takes advantage of a previously created facade. To make simulation work it uses only three methods, so whole complex system is hidden inside it all. - Singleton: for example
Simulationclass, which is designed to have only one active instance.
- Adapter: just to make
PlantandAnimalto collaborate in some scenarios. Instead of writing semi-duplicated code Adapter can be used.
- classes: UpperCamelCase
- methods: lowerCamelCase
- variables: snake_case