Hey all,
I was chatting with @Skaldarnar about how the plants and trees assets are mixed around alongside code systems. We were thinking to further separate the assets from the code systems in order to promote reuse.
Currently we have these modules which define assets and systems:
[Crops]
[Crops] -> merge into [PlantPack]
[PlantPack] -> extract the code systems into [AnotherWorldPlants]. Remove dependence on [AnotherWorld] and [GrowingFlora]
[GrowingFlora] -> refactor the biome and facet usage to be compatible with [Core] (I think both systems are mostly the same now, just needs tweaking I bet. Not sure which side needs the tweaking). Remove dependence on [AnotherWorld].
[AnotherWorld] -> move some reusable world gen goodies to a generally accessable place. (like
SparseObjectFacet3D<T> and ChanceRandomizer<T> for example)
This should hopefully allow all the GrowingFlora goodness to be useable in all sorts of world generation scenarios while maintaining the intent of AnotherWorld which is to be a "more like real life" world.
This would be the list of final modules:
[PlantPack]
[GrowingFlora]
[AnotherWorld]
[AnotherWorldPlants]
Thoughts? Other ideas?
I was chatting with @Skaldarnar about how the plants and trees assets are mixed around alongside code systems. We were thinking to further separate the assets from the code systems in order to promote reuse.
Currently we have these modules which define assets and systems:
[Crops]
- Blocks and tiles of different plants and the stages of growth
- Provides integration with [ChangingBlocks] if it is enabled
- Blocks and tiles for all the variety of trees
- Overrides the [Crops] blocks to provide a different entity backings
- Provides a system for planting seeds
- Provides integration with [GrowingFlora] to generate blocks in a new world
- Provides various systems for generating blocks in a new world and growing trees
- Provides a mechanism for randomly selecting blocks in a chunk to trigger, in this case, plant growth
- At the moment, is hard wired to [AnotherWorld] via biomes and a few other generic classes
[Crops] -> merge into [PlantPack]
[PlantPack] -> extract the code systems into [AnotherWorldPlants]. Remove dependence on [AnotherWorld] and [GrowingFlora]
[GrowingFlora] -> refactor the biome and facet usage to be compatible with [Core] (I think both systems are mostly the same now, just needs tweaking I bet. Not sure which side needs the tweaking). Remove dependence on [AnotherWorld].
[AnotherWorld] -> move some reusable world gen goodies to a generally accessable place. (like
SparseObjectFacet3D<T> and ChanceRandomizer<T> for example)
This should hopefully allow all the GrowingFlora goodness to be useable in all sorts of world generation scenarios while maintaining the intent of AnotherWorld which is to be a "more like real life" world.
This would be the list of final modules:
[PlantPack]
[GrowingFlora]
[AnotherWorld]
[AnotherWorldPlants]
Thoughts? Other ideas?