Now that we have a rudimentary Genome module more or less in place, we should start working on integrating Genome into SimpleFarming.
A high-level description of this integration and its goals can be found in #46. Note, however, that some aspects of that issue may be outdated. #57 aims at getting started with this integration, but needs a major rework due to the recent refactor (in my opinion, we should just close it and start from scratch, reusing code from it where possible).
This issue aims at proposing a rough series of small goals leading to a complete, functioning implementation.
Edit: Some specific details, as discussed with @jellysnake
- Changes to SimpleFarming:
- Create new event called
beforeProduceCreated
- Fire this event whenever a new seed/plant item is created (or any other situation where a GenomeComponent should be added to some entity)
- Note that SimpleFarming does not need to have Genome dependency
- Changes to EdibleFlora:
- Create a
GenomeAuthoritySystem which is active only when Genome is enabled
- Listen for the
beforeProduceCreated event in this system, and add the necessary GenomeComponents to the appropriate entities when such an event is received.
- Create a seed mixer which applies appropriate BreedingAlgorithms to mix two seeds to give one daughter seed.
- Define effects of genes on specific traits (eg color) in the appropriate class(es)
Now that we have a rudimentary Genome module more or less in place, we should start working on integrating Genome into SimpleFarming.
A high-level description of this integration and its goals can be found in #46. Note, however, that some aspects of that issue may be outdated. #57 aims at getting started with this integration, but needs a major rework due to the recent refactor (in my opinion, we should just close it and start from scratch, reusing code from it where possible).
This issue aims at proposing a rough series of small goals leading to a complete, functioning implementation.
Edit: Some specific details, as discussed with @jellysnake
beforeProduceCreatedGenomeAuthoritySystemwhich is active only when Genome is enabledbeforeProduceCreatedevent in this system, and add the necessary GenomeComponents to the appropriate entities when such an event is received.