Editing Buildings

I’ve been digging through the map data jsons, both overmap and the specific buildings, to see what I can do with them. Which left me with a somewhat startling realization: The jsons in the 0.C release are, ah, somewhat incomplete (half of the overmap specials don’t actually have json files, for one).

Since some of the buildings I want to dig into - mansions, bunkers, outposts, labs, bee hives - aren’t externalized, I wanted to ask if my only recourse is to switch to one of the experimental builds?

And, while I’m at it, where exactly are the building sthat aren’t in the jsons stored? And basements/spawning rules for houses having a basement?

Buildings not in jsons are in the sources. src/mapgen.cpp and src/mapgen_functions.cpp.
Source files are not bundled with the binary builds. You can get them on github.

[quote=“Coolthulhu, post:2, topic:9682”]Buildings not in jsons are in the sources. src/mapgen.cpp and src/mapgen_functions.cpp.
Source files are not bundled with the binary builds. You can get them on github.[/quote]

Cheers, mate. Thanks for the info.

Basements are also handled there too btw.

It’d be nice to have them all broken out into json, but I’m not sure it’s worth the effort.

To further clear things up, buildings and the tiles referred to in overmap_specials are overmap terrains. Overmap terrains tell the game what to create, field, house, garage, mansion entrance, etc. Mapgen defines how to create a given overmap terrain, and mapgen can be defined one of three ways, builtin (defined in the source), json, and lua (though I don’t think there are any lua mapgens yet).

Right now, our json mapgen definitions aren’t capable of supporting everything that ones written in the source or through lua can, mostly things involving random generation (like the placement of mansion and lab rooms) or computers, so right now some things will have to remain built in.

Side note: you can add your own basements without conflicting with the ones that already exist, just add a new json mapgen for the overmap terrain and set a weight rating for it, and it will generate with whatever relative frequency alongside the other basements.