The Spatials V3 devblog 2015-11-23

Internal development notes, very slightly cleaned up and commented a week later.

TL;DR: first batch of pre-made camps is being used, civ objects report their alignment, reputation can block construction.

- add pre-made civ camps to build (without baked gfx for now, still using debug folders)

Last week the surface generator implemented the ability to spawn civ camps and was tested with a few human camps. Now the initial work for the all the civ camps is done and they have been added to the planet surface generator. Here’s some examples of the result:

- reputation model: add reputation amts required for different permissions
	(stages are solid but desc is just an idea)
	at war: civ wants to attack the station
	hostile: player is KOS and their planet structures are attacked
	neutral
	friendly: civ will visit the station as tourists
	allied: civ allows to extract resources in their vicinity on planets
- add component for (some) camp entities to declare their civ
	hardcoded testing for now
- add civ alignment and tentative hp to existing V2 and V3 objects
	use TSV (V2: carlos, V3: max)
- properly "plant" camp buildings when doing random camps, instead of leaving them in editor mode
	impassable
	solution for floors
	make it even more visible the current object collection is unbundled and temporary
- tsv reader in scheme
	promote some string tools in dynbuild.scm to system.scm
	fifth row is schema, data follows
	missing rows are ok
	missing cells are ok (yield missing keys in hashtables)
	reads into a list of hashtables
- establish rules-like vars for planet objects in the default env
	to stop hardcoding cross-mod stuff
- more optional metadata for objects
	remove hardcoded civ alignment and use from tsv metas
	use anim-duration instead of heuristic when available
	both for v2 and v3 objects
- try randomize object animations so they dont sync on planet load

The reputation system is slowly taking shape and is now being taking into account for player constructions on planet surfaces. Enhancing the current debug/development system for adding new objects to V3, a “hints” file has been implemented, which can easily and in bulk describe special attributes for objects. For now it describes the civ aligment of objects, and their animation speed when required. It also has tentative support for

It has to be said that this object model for entities is completely optional. The engine does not impose any model, it just expects an entity and a collection of components. V3 will make use of a few different object models, and it is possible for mods to ignore all of them and use their own if desired.

- disallow construction near enemy objects
- need better ui to communicate building restrictions
	allow can-build? to return string instead of bool (so === #t is valid, otherwise error)
	continuous display of text string in building cursor when not valid

Here’s a first effect of the reputation system in action. The game won’t allow the player to build objets too close to enemy objects on planet surfaces:

And even if they are built far away, they are still subject to the effects of attrition for being on an hostile planet. This will be fleshed out next week.