factoriomod-debug 1.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +644 -0
- package/LICENSE.txt +22 -0
- package/ThirdPartyNotices.txt +37 -0
- package/dist/Flamegraph.css +2 -0
- package/dist/Flamegraph.js +2 -0
- package/dist/fmtk.js +2028 -0
- package/doc/debugadapter.md +29 -0
- package/doc/debugapi.md +37 -0
- package/doc/language-json.md +9 -0
- package/doc/language-lua.md +82 -0
- package/doc/language.md +15 -0
- package/doc/package.md +49 -0
- package/doc/profile.md +9 -0
- package/doc/variables.md +21 -0
- package/doc/workspace.md +35 -0
- package/images/factoriomod-debug-icon.png +0 -0
- package/images/viewicon.svg +30 -0
- package/language/factorio-changelog.json +28 -0
- package/language/factorio-changelog.language-configuration.json +13 -0
- package/language/factorio-changelog.tmLanguage.json +77 -0
- package/language/factorio-locale.json +131 -0
- package/language/factorio-locale.language-configuration.json +15 -0
- package/language/factorio-locale.tmLanguage.json +229 -0
- package/package.json +1068 -0
- package/readme.md +14 -0
- package/schema/campaign.json +42 -0
- package/schema/datainfo.json +89 -0
- package/schema/localeinfo.json +21 -0
- package/schema/mapgen.json +85 -0
- package/schema/mapsettings.json +166 -0
- package/schema/modinfo.json +124 -0
- package/schema/scenario.json +28 -0
- package/schema/serversettings.json +132 -0
package/readme.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Factorio Modding Tool Kit
|
|
2
|
+
|
|
3
|
+
A collection of tools for developing Factorio mods. This package is both an npm package providing the command line tool `fmtk`, and a VS Code Extension providing additional editor integration.
|
|
4
|
+
|
|
5
|
+
* [Debug Adapter](doc/debugadapter.md)
|
|
6
|
+
* [Mod Profiling](doc/profile.md)
|
|
7
|
+
* [JSON Validation](doc/language-json.md)
|
|
8
|
+
* [Language Support for Locale and Changelog files](doc/language.md)
|
|
9
|
+
* [Language Server integration for Lua](doc/language-lua.md) via [sumneko.lua](https://marketplace.visualstudio.com/items?itemName=sumneko.lua)
|
|
10
|
+
* [Packaging and Publishing](doc/package.md)
|
|
11
|
+
|
|
12
|
+
## Support FMTK
|
|
13
|
+
|
|
14
|
+
[<img height='36' style='border:0px;height:36px;' src='https://az743702.vo.msecnd.net/cdn/kofi2.png?v=2' border='0' alt='Buy Me a Coffee at ko-fi.com'/>](https://ko-fi.com/X8X41IE4T)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Factorio Campaign description.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"oneOf": [
|
|
5
|
+
{
|
|
6
|
+
"allOf":[
|
|
7
|
+
{
|
|
8
|
+
"$ref": "scenario.json"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"type":"object",
|
|
12
|
+
"required":[
|
|
13
|
+
"starting-level"
|
|
14
|
+
],
|
|
15
|
+
"properties": {
|
|
16
|
+
"starting-level":{
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"dependencies":{
|
|
20
|
+
"type":"array",
|
|
21
|
+
"description": "List of campaigns that must be completed before this one",
|
|
22
|
+
"items": {
|
|
23
|
+
"type":"string"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"difficulties":{
|
|
27
|
+
"type":"array",
|
|
28
|
+
"description": "List of difficulties this campaign supports",
|
|
29
|
+
"items": {
|
|
30
|
+
"enum": ["easy","normal","hard"]
|
|
31
|
+
},
|
|
32
|
+
"default": ["normal"]
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type":"null"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Factorio Data info.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name":{
|
|
7
|
+
"type":"string",
|
|
8
|
+
"title": "Internal name of the mod",
|
|
9
|
+
"pattern": "[a-zA-Z0-9_-]+",
|
|
10
|
+
"maxLength": 100
|
|
11
|
+
},
|
|
12
|
+
"version": {
|
|
13
|
+
"type":"string",
|
|
14
|
+
"title": "Version String",
|
|
15
|
+
"pattern": "(\\d+\\.){2}\\d+"
|
|
16
|
+
},
|
|
17
|
+
"title": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"title": "Display name of the mod",
|
|
20
|
+
"description": "Can be overwritten by locale entry in the `mod-name` category",
|
|
21
|
+
"maxLength": 100
|
|
22
|
+
},
|
|
23
|
+
"author": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"title": "Author of the mod"
|
|
26
|
+
},
|
|
27
|
+
"contact": {
|
|
28
|
+
"type":"string",
|
|
29
|
+
"title": "Contact for this mod"
|
|
30
|
+
},
|
|
31
|
+
"homepage": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"title": "Homepage for the mod",
|
|
34
|
+
"description": "Please don't put \"None\" here, just leave it empty if none"
|
|
35
|
+
},
|
|
36
|
+
"description": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"title": "A short description of the mod to show in-game",
|
|
39
|
+
"description": "Can be overwritten by locale entry in the `mod-description` category"
|
|
40
|
+
},
|
|
41
|
+
"factorio_version": {
|
|
42
|
+
"type":"string",
|
|
43
|
+
"title": "The Factorio major version this mod supports",
|
|
44
|
+
"pattern": "\\d+\\.\\d+"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"type":"array",
|
|
48
|
+
"title": "Mods this mod depends on or are incompatible with",
|
|
49
|
+
"items": {
|
|
50
|
+
"type":"string",
|
|
51
|
+
"pattern": "^(([!?~]|\\(\\?\\)) *)?([a-zA-Z0-9_ -]+)( *([<>=]=?) *((\\d+\\.){1,2}\\d+))?$",
|
|
52
|
+
"defaultSnippets": [
|
|
53
|
+
{
|
|
54
|
+
"label": "simple",
|
|
55
|
+
"body": "${1:modname}"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"label": "version",
|
|
59
|
+
"body": "${1:modname} ${2|<,<=,>,>=,==|} ${3:0.0.0}"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"label": "incompatible",
|
|
63
|
+
"body": "! ${1:modname}"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"label": "optional",
|
|
67
|
+
"body": "? ${1:modname}"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"label": "hidden",
|
|
71
|
+
"body": "(?) ${1:modname}"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"label": "unordered",
|
|
75
|
+
"body": "~ ${1:modname}"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"label": "version",
|
|
79
|
+
"body": "${1:modname} ${2|<,<=,>,>=,==|} ${3:0.0.0}"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"label": "full",
|
|
83
|
+
"body": "${1| ,~,?,(?)|} ${2:modname} ${3|<,<=,>,>=,==|} ${4:0.0.0}"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Factorio Locale info.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"required":[
|
|
6
|
+
],
|
|
7
|
+
"properties": {
|
|
8
|
+
"language-name": {
|
|
9
|
+
"type":"string"
|
|
10
|
+
},
|
|
11
|
+
"font": {
|
|
12
|
+
"type":"object",
|
|
13
|
+
"additionalProperties": {
|
|
14
|
+
"type":"array",
|
|
15
|
+
"items": {
|
|
16
|
+
"type":"string"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Factorio Map Gen Settings",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"terrain_segmentation": {
|
|
7
|
+
"type":"number",
|
|
8
|
+
"description": "Inverse of map scale"
|
|
9
|
+
},
|
|
10
|
+
"water":{
|
|
11
|
+
"type":"number",
|
|
12
|
+
"description": "Multiplier for water 'coverage' - higher increases the water level.\nWater level = 10 * log2(this value)"
|
|
13
|
+
},
|
|
14
|
+
"width":{
|
|
15
|
+
"type":"integer",
|
|
16
|
+
"description": "Width of map, in tiles; 0 means infinite"
|
|
17
|
+
},
|
|
18
|
+
"height":{
|
|
19
|
+
"type":"integer",
|
|
20
|
+
"description": "Height of map, in tiles; 0 means infinite"
|
|
21
|
+
},
|
|
22
|
+
"starting_area":{
|
|
23
|
+
"type":"number",
|
|
24
|
+
"description": "Multiplier for 'biter free zone radius'"
|
|
25
|
+
},
|
|
26
|
+
"peaceful_mode":{
|
|
27
|
+
"type":"boolean"
|
|
28
|
+
},
|
|
29
|
+
"autoplace_controls":{
|
|
30
|
+
"type":"object",
|
|
31
|
+
"additionalProperties": {
|
|
32
|
+
"type":"object",
|
|
33
|
+
"properties": {
|
|
34
|
+
"frequency":{"type":"number"},
|
|
35
|
+
"size":{"type":"number"},
|
|
36
|
+
"richness":{"type":"number"}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"cliff_settings": {
|
|
41
|
+
"type":"object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"name":{
|
|
44
|
+
"type":"string",
|
|
45
|
+
"description": "Name of the cliff prototype"
|
|
46
|
+
},
|
|
47
|
+
"cliff_elevation_0": {
|
|
48
|
+
"type":"number",
|
|
49
|
+
"description": "Elevation of first row of cliffs"
|
|
50
|
+
},
|
|
51
|
+
"cliff_elevation_interval": {
|
|
52
|
+
"type":"number",
|
|
53
|
+
"description": "Elevation difference between successive rows of cliffs"
|
|
54
|
+
},
|
|
55
|
+
"richness": {
|
|
56
|
+
"type":"number",
|
|
57
|
+
"description": "Multiplier for cliff continuity; 0 will result in no cliffs, 10 will make all cliff rows completely solid"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"property_expression_names": {
|
|
62
|
+
"description": "Overrides for property value generators\nElevation influences water and cliff placement.\nLeave it blank to get 'normal' terrain.\nUse '0_16-elevation' to reproduce terrain from 0.16.\nUse '0_17-island' to get an island.",
|
|
63
|
+
"additionalProperties": {
|
|
64
|
+
"type": "string"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"starting_points":{
|
|
68
|
+
"type":"array",
|
|
69
|
+
"items": {
|
|
70
|
+
"type":"object",
|
|
71
|
+
"properties": {
|
|
72
|
+
"x":{"type":"number"},
|
|
73
|
+
"y":{"type":"number"}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"seed": {
|
|
78
|
+
"description": "Use null for a random seed, number for a specific seed.",
|
|
79
|
+
"oneOf": [
|
|
80
|
+
{"type":"null"},
|
|
81
|
+
{"type":"number"}
|
|
82
|
+
]
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Factorio Map Settings",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"difficulty_settings":
|
|
7
|
+
{
|
|
8
|
+
"type":"object",
|
|
9
|
+
"properties": {
|
|
10
|
+
"recipe_difficulty": {"type":"number"},
|
|
11
|
+
"technology_difficulty": {"type":"number"},
|
|
12
|
+
"technology_price_multiplier": {"type":"number"},
|
|
13
|
+
"research_queue_setting": {
|
|
14
|
+
"type":"string",
|
|
15
|
+
"enum": ["after-victory"]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"pollution":
|
|
20
|
+
{
|
|
21
|
+
"type":"object",
|
|
22
|
+
"properties": {
|
|
23
|
+
"enabled": {"type":"boolean"},
|
|
24
|
+
"diffusion_ratio": {"type":"number"},
|
|
25
|
+
"min_to_diffuse": {
|
|
26
|
+
"type":"number",
|
|
27
|
+
"description": "these are values for 60 ticks (1 simulated second)\namount that is diffused to neighboring chunk"
|
|
28
|
+
},
|
|
29
|
+
"ageing": {"type":"number"},
|
|
30
|
+
"expected_max_per_chunk": {"type":"number"},
|
|
31
|
+
"min_to_show_per_chunk": {"type":"number"},
|
|
32
|
+
"min_pollution_to_damage_trees": {"type":"number"},
|
|
33
|
+
"pollution_with_max_forest_damage": {"type":"number"},
|
|
34
|
+
"pollution_per_tree_damage": {"type":"number"},
|
|
35
|
+
"pollution_restored_per_tree_damage": {"type":"number"},
|
|
36
|
+
"max_pollution_to_restore_trees": {"type":"number"},
|
|
37
|
+
"enemy_attack_pollution_consumption_modifier": {"type":"number"}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"enemy_evolution":
|
|
41
|
+
{
|
|
42
|
+
"type":"object",
|
|
43
|
+
"properties": {
|
|
44
|
+
"enabled": {"type":"boolean"},
|
|
45
|
+
"time_factor": {"type":"number"},
|
|
46
|
+
"destroy_factor": {"type":"number"},
|
|
47
|
+
"pollution_factor": {"type":"number"}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"enemy_expansion":
|
|
51
|
+
{
|
|
52
|
+
"type":"object",
|
|
53
|
+
"properties": {
|
|
54
|
+
"enabled": {"type":"boolean"},
|
|
55
|
+
"min_base_spacing": {"type":"number"},
|
|
56
|
+
"max_expansion_distance": {"type":"number"},
|
|
57
|
+
"friendly_base_influence_radius": {"type":"number"},
|
|
58
|
+
"enemy_building_influence_radius": {"type":"number"},
|
|
59
|
+
"building_coefficient": {"type":"number"},
|
|
60
|
+
"other_base_coefficient": {"type":"number"},
|
|
61
|
+
"neighbouring_chunk_coefficient": {"type":"number"},
|
|
62
|
+
"neighbouring_base_chunk_coefficient": {"type":"number"},
|
|
63
|
+
"max_colliding_tiles_coefficient": {"type":"number"},
|
|
64
|
+
"settler_group_min_size": {"type":"number"},
|
|
65
|
+
"settler_group_max_size": {"type":"number"},
|
|
66
|
+
"min_expansion_cooldown": {"type":"number"},
|
|
67
|
+
"max_expansion_cooldown": {"type":"number"}
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"unit_group":
|
|
71
|
+
{
|
|
72
|
+
"type":"object",
|
|
73
|
+
"properties": {
|
|
74
|
+
"min_group_gathering_time": {"type":"number"},
|
|
75
|
+
"max_group_gathering_time": {"type":"number"},
|
|
76
|
+
"max_wait_time_for_late_members": {"type":"number"},
|
|
77
|
+
"max_group_radius": {"type":"number"},
|
|
78
|
+
"min_group_radius": {"type":"number"},
|
|
79
|
+
"max_member_speedup_when_behind": {"type":"number"},
|
|
80
|
+
"max_member_slowdown_when_ahead": {"type":"number"},
|
|
81
|
+
"max_group_slowdown_factor": {"type":"number"},
|
|
82
|
+
"max_group_member_fallback_factor": {"type":"number"},
|
|
83
|
+
"member_disown_distance": {"type":"number"},
|
|
84
|
+
"tick_tolerance_when_member_arrives": {"type":"number"},
|
|
85
|
+
"max_gathering_unit_groups": {"type":"number"},
|
|
86
|
+
"max_unit_group_size": {"type":"number"}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"steering":
|
|
90
|
+
{
|
|
91
|
+
"type":"object",
|
|
92
|
+
"properties": {
|
|
93
|
+
"default":
|
|
94
|
+
{
|
|
95
|
+
"type":"object",
|
|
96
|
+
"properties": {
|
|
97
|
+
"radius": {"type":"number"},
|
|
98
|
+
"separation_force": {"type":"number"},
|
|
99
|
+
"separation_factor": {"type":"number"},
|
|
100
|
+
"force_unit_fuzzy_goto_behavior": {"type":"boolean"}
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"moving":
|
|
104
|
+
{
|
|
105
|
+
"type":"object",
|
|
106
|
+
"properties": {
|
|
107
|
+
"radius": {"type":"number"},
|
|
108
|
+
"separation_force": {"type":"number"},
|
|
109
|
+
"separation_factor": {"type":"number"},
|
|
110
|
+
"force_unit_fuzzy_goto_behavior": {"type":"boolean"}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"path_finder":
|
|
116
|
+
{
|
|
117
|
+
"type":"object",
|
|
118
|
+
"properties": {
|
|
119
|
+
"fwd2bwd_ratio": {"type":"number"},
|
|
120
|
+
"goal_pressure_ratio": {"type":"number"},
|
|
121
|
+
"max_steps_worked_per_tick": {"type":"number"},
|
|
122
|
+
"max_work_done_per_tick": {"type":"number"},
|
|
123
|
+
"use_path_cache": {"type":"boolean"},
|
|
124
|
+
"short_cache_size": {"type":"number"},
|
|
125
|
+
"long_cache_size": {"type":"number"},
|
|
126
|
+
"short_cache_min_cacheable_distance": {"type":"number"},
|
|
127
|
+
"short_cache_min_algo_steps_to_cache": {"type":"number"},
|
|
128
|
+
"long_cache_min_cacheable_distance": {"type":"number"},
|
|
129
|
+
"cache_max_connect_to_cache_steps_multiplier": {"type":"number"},
|
|
130
|
+
"cache_accept_path_start_distance_ratio": {"type":"number"},
|
|
131
|
+
"cache_accept_path_end_distance_ratio": {"type":"number"},
|
|
132
|
+
"negative_cache_accept_path_start_distance_ratio": {"type":"number"},
|
|
133
|
+
"negative_cache_accept_path_end_distance_ratio": {"type":"number"},
|
|
134
|
+
"cache_path_start_distance_rating_multiplier": {"type":"number"},
|
|
135
|
+
"cache_path_end_distance_rating_multiplier": {"type":"number"},
|
|
136
|
+
"stale_enemy_with_same_destination_collision_penalty": {"type":"number"},
|
|
137
|
+
"ignore_moving_enemy_collision_distance": {"type":"number"},
|
|
138
|
+
"enemy_with_different_destination_collision_penalty": {"type":"number"},
|
|
139
|
+
"general_entity_collision_penalty": {"type":"number"},
|
|
140
|
+
"general_entity_subsequent_collision_penalty": {"type":"number"},
|
|
141
|
+
"extended_collision_penalty": {"type":"number"},
|
|
142
|
+
"max_clients_to_accept_any_new_request": {"type":"number"},
|
|
143
|
+
"max_clients_to_accept_short_new_request": {"type":"number"},
|
|
144
|
+
"direct_distance_to_consider_short_request": {"type":"number"},
|
|
145
|
+
"short_request_max_steps": {"type":"number"},
|
|
146
|
+
"short_request_ratio": {"type":"number"},
|
|
147
|
+
"min_steps_to_check_path_find_termination": {"type":"number"},
|
|
148
|
+
"start_to_goal_cost_multiplier_to_terminate_path_find": {"type":"number"},
|
|
149
|
+
"overload_levels": {
|
|
150
|
+
"type":"array",
|
|
151
|
+
"items": {
|
|
152
|
+
"type":"number"
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"overload_multipliers": {
|
|
156
|
+
"type":"array",
|
|
157
|
+
"items": {
|
|
158
|
+
"type":"number"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
"max_failed_behavior_count": {"type":"number"}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Factorio Mod info.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"allOf":[
|
|
5
|
+
{
|
|
6
|
+
"$ref": "datainfo.json"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"type": "object",
|
|
10
|
+
"required":[
|
|
11
|
+
"name", "version", "title", "author", "factorio_version"
|
|
12
|
+
],
|
|
13
|
+
"defaultSnippets": [
|
|
14
|
+
{
|
|
15
|
+
"label": "mod",
|
|
16
|
+
"body": {
|
|
17
|
+
"name": "$1",
|
|
18
|
+
"title": "$2",
|
|
19
|
+
"description": "$3",
|
|
20
|
+
"version": "${4:0.0.0}",
|
|
21
|
+
"author": "$5",
|
|
22
|
+
"factorio_version": "1.1"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
"properties": {
|
|
27
|
+
"factorio_version": {
|
|
28
|
+
"default": "1.1"
|
|
29
|
+
},
|
|
30
|
+
"package": {
|
|
31
|
+
"type":"object",
|
|
32
|
+
"description": "Configuration for automatically packaging and publishing this mod [VSCode Extension]",
|
|
33
|
+
"properties": {
|
|
34
|
+
"ignore":{
|
|
35
|
+
"type":"array",
|
|
36
|
+
"description": "Globs to ignore when building zip package",
|
|
37
|
+
"items": {
|
|
38
|
+
"type":"string",
|
|
39
|
+
"format": "glob"
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"extra":{
|
|
43
|
+
"type":"array",
|
|
44
|
+
"description": "Directories containing extra files to include in the zip package",
|
|
45
|
+
"items": {
|
|
46
|
+
"type":"object",
|
|
47
|
+
"required": ["root"],
|
|
48
|
+
"properties":{
|
|
49
|
+
"root":{
|
|
50
|
+
"type":"string",
|
|
51
|
+
"description": "Directory containing extra files to include in the zip package"
|
|
52
|
+
},
|
|
53
|
+
"glob":{
|
|
54
|
+
"type":"string",
|
|
55
|
+
"description": "Glob for matching files to include from this directory",
|
|
56
|
+
"default": "**"
|
|
57
|
+
},
|
|
58
|
+
"ignore":{
|
|
59
|
+
"type":"array",
|
|
60
|
+
"description": "Globs to ignore in this root",
|
|
61
|
+
"items": {
|
|
62
|
+
"type":"string",
|
|
63
|
+
"format": "glob"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"no_git_push": {
|
|
70
|
+
"type":"boolean",
|
|
71
|
+
"description": "Don't automatically `git push` in Publish"
|
|
72
|
+
},
|
|
73
|
+
"no_git_tag": {
|
|
74
|
+
"type":"boolean",
|
|
75
|
+
"description": "Don't automatically `git tag` in Publish"
|
|
76
|
+
},
|
|
77
|
+
"git_publish_branch": {
|
|
78
|
+
"type":["string", "null"],
|
|
79
|
+
"description": "Name of branch to Publish from. Defaults to the value of `git config init.defaultBranch` if not present. Set `null` to allow any branch."
|
|
80
|
+
},
|
|
81
|
+
"no_portal_upload": {
|
|
82
|
+
"type":"boolean",
|
|
83
|
+
"description": "Don't automatically upload to the mod portal in Publish"
|
|
84
|
+
},
|
|
85
|
+
"scripts":{
|
|
86
|
+
"type":"object",
|
|
87
|
+
"description": "Additional scripts to run while packaging/publishing mods",
|
|
88
|
+
"additionalProperties": {
|
|
89
|
+
"type":"string",
|
|
90
|
+
"description": "Additional scripts to run with `fmtk run name`"
|
|
91
|
+
},
|
|
92
|
+
"properties": {
|
|
93
|
+
"prepublish": {
|
|
94
|
+
"type":"string",
|
|
95
|
+
"description": "Command to run while preparing the pre-publish commit. Files added to git during this command will be included in that commit."
|
|
96
|
+
},
|
|
97
|
+
"datestamp": {
|
|
98
|
+
"type":"string",
|
|
99
|
+
"description": "Command to run after datestamping the changelog."
|
|
100
|
+
},
|
|
101
|
+
"prepackage": {
|
|
102
|
+
"type":"string",
|
|
103
|
+
"description": "Command to run while preparing the zip package. Files created/changed during this command will be included in the zip."
|
|
104
|
+
},
|
|
105
|
+
"version": {
|
|
106
|
+
"type":"string",
|
|
107
|
+
"description": "Command to run after incrementing the version."
|
|
108
|
+
},
|
|
109
|
+
"publish": {
|
|
110
|
+
"type":"string",
|
|
111
|
+
"description": "Command to run while preparing the post-publish commit, after incrementing the version. Files added to git during this command will be included in that commit."
|
|
112
|
+
},
|
|
113
|
+
"postpublish": {
|
|
114
|
+
"type":"string",
|
|
115
|
+
"description": "Command to run after automatic uploads."
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"title": "Factorio Scenario description.json",
|
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
4
|
+
"oneOf": [
|
|
5
|
+
{
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required":[
|
|
8
|
+
"order", "multiplayer-compatible"
|
|
9
|
+
],
|
|
10
|
+
"properties": {
|
|
11
|
+
"order":{
|
|
12
|
+
"type":"string"
|
|
13
|
+
},
|
|
14
|
+
"multiplayer-compatible":{
|
|
15
|
+
"type": "boolean",
|
|
16
|
+
"default": false
|
|
17
|
+
},
|
|
18
|
+
"is-main-game":{
|
|
19
|
+
"type": "boolean",
|
|
20
|
+
"default": false
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "null"
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}
|