Skip to content

Commit

Permalink
basecamps: add modular basecamps (#31115)
Browse files Browse the repository at this point in the history
* recipes: add support for blueprints without oter_ids and retrieving them

add support for blueprints that don't have an oter_id attached to them,
but are pure mapgen_update functions.

also, add a recipe_dictionary entry for blueprints, similar to the
existing autolearn entry.

* basecamps: add full modular camp support

add support for retrieving available basecamp upgrade path starts and
expansion by oter_id from the "all_faction_base_types" and
"all_faction_base_expansions" recipe groups.  Also populate the
expansion tabs in the basecamp control window image the same way.

Let the player select from all available basecamp upgrade path starts if
there is more than 1 available for the selected basecamp terrain.

Select available upgrades from recipe_dict's collection of construction
blueprints.

* basecamps: add the modular field camp

add the JSON definitions of the modular field camp.  It can be configured
to be very similar to the existing primitive field camp or built as a
single large building made from wattle-and-daub, wood panel, or metal.
The player can upgrade it piecemeal in the order they please.  It's also
going to be easier to add new features to it in the future.
  • Loading branch information
mlangsdorf authored and ZhilkinSerg committed Jun 12, 2019
1 parent 5bce0cd commit 74d9af4
Show file tree
Hide file tree
Showing 23 changed files with 3,857 additions and 92 deletions.
310 changes: 310 additions & 0 deletions data/json/mapgen/basecamps/modular_field_common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,310 @@
[
{
"type": "mapgen",
"update_mapgen_id": "fbmf_0",
"method": "json",
"object": {
"set": [
{ "point": "terrain", "id": "t_dirt", "x": 10, "y": 3 },
{ "point": "furniture", "id": "f_bulletin", "x": 10, "y": 3 }
]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_fireplace_northeast",
"method": "json",
"object": { "set": [ { "point": "furniture", "id": "f_fireplace", "x": 19, "y": 6 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_brazier_northeast",
"method": "json",
"object": { "set": [ { "point": "furniture", "id": "f_brazier", "x": 19, "y": 6 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_stove_northeast",
"method": "json",
"object": { "set": [ { "point": "furniture", "id": "f_woodstove", "x": 19, "y": 6 } ] }
},
{
"type": "mapgen",
"method": "json",
"nested_mapgen_id": "fbmf_strawbed",
"object": {
"mapgensize": [ 2, 2 ],
"set": [
{ "point": "furniture", "id": "f_straw_bed", "x": 0, "y": 0 },
{ "point": "furniture", "id": "f_straw_bed", "x": 1, "y": 0 }
]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_strawbed1_northeast",
"method": "json",
"object": { "place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 5 } ] }
},
{
"type": "mapgen",
"method": "json",
"nested_mapgen_id": "fbmf_bedset",
"object": {
"mapgensize": [ 3, 3 ],
"set": [
{ "point": "furniture", "id": "f_bookcase", "x": 0, "y": 0 },
{ "point": "furniture", "id": "f_bed", "x": 1, "y": 0 },
{ "point": "furniture", "id": "f_bed", "x": 2, "y": 0 }
]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_bed1_northeast",
"method": "json",
"object": { "place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 5 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_strawbed2_northeast",
"method": "json",
"object": { "place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 7 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_bed2_northeast",
"method": "json",
"object": { "place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 7 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_tent_strawbed3_east",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 11 }, { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_tent_bed3_east",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 11 }, { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_room_strawbed3_east",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 10 }, { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_room_bed3_east",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 10 }, { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_tent_strawbed3_southeast",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 17 }, { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 19 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_tent_bed3_southeast",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 17 }, { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 19 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_room_strawbed3_southeast",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 16 }, { "chunks": [ "fbmf_strawbed" ], "x": 18, "y": 19 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_room_bed3_southeast",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 16 }, { "chunks": [ "fbmf_bedset" ], "x": 17, "y": 19 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_strawbed3_northwest",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 5 }, { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 7 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_bed3_northwest",
"method": "json",
"object": { "place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 5 }, { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 7 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_tent_strawbed3_west",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 11 }, { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_tent_bed3_west",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 11 }, { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_room_strawbed3_west",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 10 }, { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_room_bed3_west",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 10 }, { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_tent_strawbed3_southwest",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 17 }, { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 19 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_tent_bed3_southwest",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 17 }, { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 19 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_room_strawbed3_southwest",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 16 }, { "chunks": [ "fbmf_strawbed" ], "x": 4, "y": 19 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_room_bed3_southwest",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 16 }, { "chunks": [ "fbmf_bedset" ], "x": 4, "y": 19 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_core_kitchen_fireplace_center",
"method": "json",
"object": {
"mapgensize": [ 6, 6 ],
"set": [
{ "point": "furniture", "id": "f_counter", "x": 13, "y": 10 },
{ "point": "furniture", "id": "f_fireplace", "x": 12, "y": 11 }
]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_core_kitchen_butchery_center",
"method": "json",
"object": { "set": [ { "point": "furniture", "id": "f_butcher_rack", "x": 12, "y": 10 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_core_kitchen_toolrack_center",
"method": "json",
"object": { "set": [ { "point": "furniture", "id": "f_bookcase", "x": 10, "y": 10 } ] }
},
{
"type": "mapgen",
"method": "json",
"nested_mapgen_id": "fbmf_core_tableset",
"object": {
"mapgensize": [ 3, 3 ],
"set": [
{ "point": "furniture", "id": "f_chair", "x": 0, "y": 1 },
{ "point": "furniture", "id": "f_table", "x": 1, "y": 1 },
{ "point": "furniture", "id": "f_chair", "x": 2, "y": 1 }
]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_core_kitchen_table_center",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_core_tableset" ], "x": 11, "y": 12 }, { "chunks": [ "fbmf_core_tableset" ], "x": 11, "y": 13 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_core_kitchen_table_south",
"method": "json",
"object": {
"place_nested": [ { "chunks": [ "fbmf_core_tableset" ], "x": 11, "y": 16 }, { "chunks": [ "fbmf_core_tableset" ], "x": 11, "y": 15 } ]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_core_kitchen_stove_south",
"method": "json",
"object": {
"set": [
{ "point": "furniture", "id": "f_counter", "x": 10, "y": 19 },
{ "point": "furniture", "id": "f_woodstove", "x": 11, "y": 19 }
]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_well_north",
"method": "json",
"object": { "set": [ { "point": "terrain", "id": "t_water_pump", "x": 13, "y": 6 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_root_cellar_north",
"method": "json",
"object": { "set": [ { "point": "terrain", "id": "t_rootcellar", "x": 12, "y": 8 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_radio_tower_north",
"method": "json",
"object": { "set": [ { "point": "terrain", "id": "t_radio_tower", "x": 13, "y": 3 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_radio_console_north",
"method": "json",
"object": { "set": [ { "point": "terrain", "id": "t_radio_controls", "x": 13, "y": 4 } ] }
}
]
62 changes: 62 additions & 0 deletions data/json/mapgen/basecamps/modular_field_defenses.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[
{
"type": "mapgen",
"update_mapgen_id": "fbmf_trench_north",
"method": "json",
"object": { "set": [ { "line": "terrain", "id": "t_pit", "x": 3, "x2": 20, "y": 0, "y2": 0 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_trench_south",
"method": "json",
"object": { "set": [ { "line": "terrain", "id": "t_pit", "x": 3, "x2": 20, "y": 23, "y2": 23 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_trench_corner_northeast",
"method": "json",
"object": { "set": [ { "line": "terrain", "id": "t_pit", "x": 21, "x2": 21, "y": 0, "y2": 4 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_trench_corner_northwest",
"method": "json",
"object": { "set": [ { "line": "terrain", "id": "t_pit", "x": 2, "x2": 2, "y": 0, "y2": 4 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_trench_corner_southeast",
"method": "json",
"object": { "set": [ { "line": "terrain", "id": "t_pit", "x": 21, "x2": 21, "y": 19, "y2": 23 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_trench_corner_southwest",
"method": "json",
"object": { "set": [ { "line": "terrain", "id": "t_pit", "x": 2, "x2": 2, "y": 19, "y2": 23 } ] }
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_trench_east",
"method": "json",
"object": {
"set": [
{ "line": "terrain", "id": "t_pit", "x": 21, "x2": 22, "y": 0, "y2": 0 },
{ "line": "terrain", "id": "t_pit", "x": 21, "x2": 22, "y": 23, "y2": 23 },
{ "line": "terrain", "id": "t_pit", "x": 23, "x2": 23, "y": 0, "y2": 23 }
]
}
},
{
"type": "mapgen",
"update_mapgen_id": "fbmf_trench_west",
"method": "json",
"object": {
"set": [
{ "line": "terrain", "id": "t_pit", "x": 1, "x2": 2, "y": 0, "y2": 0 },
{ "line": "terrain", "id": "t_pit", "x": 1, "x2": 2, "y": 23, "y2": 23 },
{ "line": "terrain", "id": "t_pit", "x": 0, "x2": 0, "y": 0, "y2": 23 }
]
}
}
]
Loading

0 comments on commit 74d9af4

Please sign in to comment.