Open Montandalar opened 1 year ago
Sounds like a good idea to me. Australia, much like it's namesake, is a fairly expansive mod. Breaking it down into sub-mods would make it easier for someone to contribute without having to chase functions and variables back through the source.
It's already a good way there after the refactor, being split into individual files instead of a massive init.lua.
I'd propose splitting mapgen.lua, crafting.lua and craftitems.lua (and possibly saplings.lua and related node registrations) to a separate mod that can easily soft depend on a lot of other mods for API access.
aus.register_biome
API to provide even more biomes technic_worldgen
is used, add/re-add the ore registrationsbucket
mod (or similar) is availableThere was some discussion on-server today. The architecture should look something like this:
australia
- the core mod, with things like the schematic functions, leaf decayautralia_nodes
or australia_content
- would contain the content from all the below mods until australia_mtg
in one mod, in case splitting them is too much fragmentation or really tiny mods.australia_trees
- adds definitions of the trees: their nodes, and their schematics, the functions for generating those schematics, and the functions for leaf decay.australia_aquaticlife
- adds definitions aquatic life: kelp, corals, spongesaustralia_geology
- adds stone and soil that are original to Australia like the red dirt, red sand, red gravel, red stone and bluestone.australia_grasses
- spinifex, saltbush, moss. These don't have logic behind them so I don't really like putting them in their own mod, but I can't see where else they would go.australia_mtg
- Sets up the mod to work on Minetest Game with aliases for dirt-with-grass species. No other game support is yet planned, but the architecture seems goodaustralia_mapgen
- depends on at least one game-specific mod. Adds the biomes with their nodes based on aliases, and also adds the shipwrecks and an API for their items. Checks the registered tree species and adds them to the appropriate biomes.australia_farming
for farming, farming_redo and farming_undo support - checking the farming table to see which is installed. Would register loot against a loot API in either australia_mapgen
. Probably no need for another mod australia_loot
.australia_fences
for fences like the ones in Minetest Game.australia_walls
for MTG mod walls
adding bluestone, red sandstone etc. wallsaustralia_doors
- for MTG fence gates, if we add those (currently only have fences), and Australian wooden doors, again if we added those.australia_stairs
- for the stairs and slabs from MTG.australia_moreblocks
- would be a new module for moreblocks circular saw shapes, if those are desired later on.australia_bucket
- for MTG buckets. Potential future support for mods look wooden_bucket probably to dependent on the mod name (override mod or separate mod).
As detailed in my recent forum thread, I now think that most mods should move to a modpack architecture with their optional-depency content being a separate mod. I would like to make australia into a modpack and add farming, walls, bucket etc. support as separate mods in the pack.
In some cases this may mean we have to open more APIs up, like one for registering submarine loot, for the australia_farming mod. I think that is only really a good thing.
Let me know what you think.