Internal development notes, very slightly cleaned up and commented a week later.
TL;DR: The planet surface is now more fleshed out and entities and tools now work on it, resource nodes are now being generated on planet surfaces, it's now possible to build resource extractors on planets.
- remove all V2 UI related to planet and station views
The new V3 code is slowly but surely replacing large areas of V2 code which at some point are still being compiled, but not used. So it was time to delete a big chunk of them related to the planet exploration UI, combat/skills UI and planet surface rendering. This was done in a single commit:
- refactor some tools and systems to make them usable from all game sections - add info, debug tool to planet - add entities to planet concept of needing to remove / append entities to a World from other model code this is very specific to Officer model class Game::userXXX controller calls for various actions: station -> ship warp (Ship::crewToShip) ship -> planet warp (Ship::crewToTarget) planet -> ship warp (Ship::crewToShip) ship -> station warp (Game::systemShipCrewToHome + Ship::crewToTarget) - Officer::toWorld check same world condition remove from currentWorld too - take off tool in planet very straightfoward call to Game::userAbortExploring make sure PlanetView switches to GalaxyView on nullptr reset also focus on planet - teleport tool in planet - world needs a misc data holder, to not pollute base World class HintsSystem holds the data officer finalizer list (for now) spawn point (and remove from Officer::toWorld param)
The World instancer for planets was fully fleshed out, adding the missing systems and a set of basic gameplay tools. Some other tools were refactored from the station to make them usable in any World instance. And a method to instance Officer entities on demand was implemented, which required the World generators to provide some metadata about spawn points and Scheme-side finalizer proc hooks, now held in a HintsSystem instance.
- resource node gen for planets for now use V2 resources for the spawn chances randterministic distribution of nodes over a prop-populated map generous minimal chance of spawn for planet kind, but very limited in node amounts
Resource nodes are now being spawned in planets. They will replace the abstract V2 concept of resource nodes. Instead of a few points in a fake map, they are entities on the planet surface, which need a nearby construction to be extracted. An initial planet type -> resource type distribution was also implemented, inspired by V2, but game balance later on will change it.
- make station build tool generic, including passing any build menu configuration - build tool for planet resources and object model list for build menu - remove station rooms from planet build menu make it possible to pass desired object model to build tool - resource extraction use vector drawing for areas of influence for extractors
The constructions required for mining resources are called Extractors. They must be built on the planet surface by your officers, and they will persist even after you leave. As can be seen in the screenshot they have an area of effect. Player will need to pair the right kind of extractor with the right kind of resource nodes, and depending on the range they will need to build more than one to cover a field of resource nodes. This week only saw the bare minimum of work on this feature, its implementation will continue next week.