The Spatials V3 devblog 2015-10-26

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:

15311 deletions
- 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.

Officers on planet
- 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.

Resource nodes
- 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.

Resource extractor