games/factorio: make more configurable
This makes the server fully configurable, and adds the contents of
example JSON configs as the defaults for all servers.
Change-Id: I8ff3e66a586a9db3acb9721810c8c5aa13072b4b
diff --git a/games/factorio/kube/config/map-gen-settings.libsonnet b/games/factorio/kube/config/map-gen-settings.libsonnet
new file mode 100644
index 0000000..18612f3
--- /dev/null
+++ b/games/factorio/kube/config/map-gen-settings.libsonnet
@@ -0,0 +1,81 @@
+{
+ // The following options are defaults taken verbatim from Factorio 1.1.35
+ // headless' map-gen-settings.example.json, with the following changes:
+ // - field names unquoted where possible
+ // - pseudo-comments converted to jsonnet comments
+ // - comments reflowed to fit 80 columns
+
+ // The inverse of 'water scale' in the map generator GUI.
+ terrain_segmentation: 1,
+
+ // The equivalent to 'water coverage' in the map generator GUI. Higher
+ // coverage means more water in larger oceans.
+ // Water level = 10 * log2(this value)
+ water: 1,
+
+ // Width and height of map, in tiles; 0 means infinite
+ width: 0,
+ height: 0,
+
+ // Multiplier for 'biter free zone radius'
+ starting_area: 1,
+
+ peaceful_mode: false,
+ autoplace_controls: {
+ "coal": {"frequency": 1, "size": 1, "richness": 1},
+ "stone": {"frequency": 1, "size": 1, "richness": 1},
+ "copper-ore": {"frequency": 1, "size": 1,"richness": 1},
+ "iron-ore": {"frequency": 1, "size": 1, "richness": 1},
+ "uranium-ore": {"frequency": 1, "size": 1, "richness": 1},
+ "crude-oil": {"frequency": 1, "size": 1, "richness": 1},
+ "trees": {"frequency": 1, "size": 1, "richness": 1},
+ "enemy-base": {"frequency": 1, "size": 1, "richness": 1}
+ },
+
+ cliff_settings:
+ {
+ // Name of the cliff prototype
+ name: "cliff",
+
+ // Elevation of first row of cliffs
+ cliff_elevation_0: 10,
+
+ // Elevation difference between successive rows of cliffs.
+ // This is inversely proportional to 'frequency' in the map generation
+ // GUI. Specifically, when set from the GUI the value is 40 / frequency.
+ cliff_elevation_interval: 40,
+
+ // Called 'cliff continuity' in the map generator GUI. 0 will result in
+ // no cliffs, 10 will make all cliff rows completely solid
+ richness: 1
+ },
+
+ // Overrides for property value generators (map type)
+ // Leave 'elevation' blank to get 'normal' terrain.
+ // Use 'elevation': '0_16-elevation' to reproduce terrain from 0.16.
+ // Use 'elevation': '0_17-island' to get an island.
+ // Moisture and terrain type are also controlled via this.
+ property_expression_names:
+ {
+ // 'control-setting:moisture:frequency:multiplier' is the inverse of the
+ // 'moisture scale' in the map generator GUI.
+ "control-setting:moisture:frequency:multiplier": "1",
+ // 'control-setting:moisture:bias' is the 'moisture bias' in the map
+ // generator GUI.
+ "control-setting:moisture:bias": "0",
+ // 'control-setting:aux:frequency:multiplier' is the inverse of the
+ // 'terrain type scale' in the map generator GUI.
+ "control-setting:aux:frequency:multiplier": "1",
+ // 'control-setting:aux:bias' is the 'terrain type bias' in the map
+ // generator GUI
+ "control-setting:aux:bias": "0"
+ },
+
+ starting_points:
+ [
+ { x: 0, y: 0}
+ ],
+
+ // Use null for a random seed, number for a specific seed.
+ seed: null
+}