Added star_system_schema.json

This commit is contained in:
Ben C 2022-03-01 16:57:59 -05:00
parent 3b635d164d
commit 1e9a49b301
2 changed files with 450 additions and 431 deletions

View File

@ -44,26 +44,26 @@
} }
} }
}, },
"colourPart": { "colorPart": {
"type": "integer", "type": "integer",
"default": 0, "default": 0,
"minimum": 0, "minimum": 0,
"maximum": 255 "maximum": 255
}, },
"colour": { "color": {
"type": "object", "type": "object",
"properties": { "properties": {
"R": { "R": {
"$ref": "#/$defs/colourPart" "$ref": "#/$defs/colorPart"
}, },
"G": { "G": {
"$ref": "#/$defs/colourPart" "$ref": "#/$defs/colorPart"
}, },
"B": { "B": {
"$ref": "#/$defs/colourPart" "$ref": "#/$defs/colorPart"
}, },
"A": { "A": {
"$ref": "#/$defs/colourPart" "$ref": "#/$defs/colorPart"
} }
} }
}, },
@ -98,7 +98,7 @@
"description": "Average surface size" "description": "Average surface size"
}, },
"colour": { "colour": {
"$ref": "#/$defs/colour", "$ref": "#/$defs/color",
"description": "Colour of the terrain." "description": "Colour of the terrain."
} }
} }
@ -195,7 +195,7 @@
"description": "Scale height of the atmosphere" "description": "Scale height of the atmosphere"
}, },
"cloudTint": { "cloudTint": {
"$ref": "#/$defs/colour" "$ref": "#/$defs/color"
}, },
"cloud": { "cloud": {
"type": "string", "type": "string",
@ -220,7 +220,7 @@
"description": "If the top layer should have shadows" "description": "If the top layer should have shadows"
}, },
"fogTint": { "fogTint": {
"$ref": "#/$defs/colour", "$ref": "#/$defs/color",
"description": "Colour of fog on the planet." "description": "Colour of fog on the planet."
}, },
"fogDensity": { "fogDensity": {
@ -251,7 +251,7 @@
"description": "Whether we use an atmospheric shader on the planet." "description": "Whether we use an atmospheric shader on the planet."
}, },
"atmosphereTint": { "atmosphereTint": {
"$ref": "#/$defs/colour", "$ref": "#/$defs/color",
"description": "Colour of atmospheric shader on the planet." "description": "Colour of atmospheric shader on the planet."
} }
} }
@ -315,7 +315,7 @@
"description": "Is the body meant to stay in one place without moving?" "description": "Is the body meant to stay in one place without moving?"
}, },
"tint": { "tint": {
"$ref": "#/$defs/colour", "$ref": "#/$defs/color",
"description": "Colour of the orbit-line in the map view." "description": "Colour of the orbit-line in the map view."
}, },
"trackingOrbitLine": { "trackingOrbitLine": {
@ -420,15 +420,15 @@
"minimum": 0 "minimum": 0
}, },
"tint": { "tint": {
"$ref": "#/$defs/colour", "$ref": "#/$defs/color",
"description": "Colour of the star." "description": "Colour of the star."
}, },
"solarFlareTint": { "solarFlareTint": {
"$ref": "#/$defs/colour", "$ref": "#/$defs/color",
"description": "Colour of the solar flares." "description": "Colour of the solar flares."
}, },
"lightTint": { "lightTint": {
"$ref": "#/$defs/colour", "$ref": "#/$defs/color",
"description": "Colour of the light given off." "description": "Colour of the light given off."
}, },
"solarLuminosity": { "solarLuminosity": {
@ -492,441 +492,441 @@
} }
} }
} }
} },
}, "details": {
"details": { "type": "array",
"type": "array", "items": {
"items": { "type": "object",
"type": "object", "properties": {
"properties": { "path": {
"path": { "type": "string",
"type": "string", "description": "Either the path in the scene hierarchy of the item to copy or the path to the object in the supplied asset bundle"
"description": "Either the path in the scene hierarchy of the item to copy or the path to the object in the supplied asset bundle" },
}, "assetBundle": {
"assetBundle": { "type": "string",
"type": "string", "description": "Relative filepath to an asset-bundle"
"description": "Relative filepath to an asset-bundle" },
}, "position": {
"position": { "$ref": "#/$defs/vector3"
"$ref": "#/$defs/vector3" },
}, "rotation": {
"rotation": { "$ref": "#/$defs/vector3",
"$ref": "#/$defs/vector3", "description": "Euler angle degrees"
"description": "Euler angle degrees" },
"scale": {
"type": "number",
"default": 1
},
"alignToNormal": {
"type": "boolean",
"description": "Do we override rotation and try to automatically align this object to stand upright on the body's surface?",
"default": false
},
"generateColliders": {
"type": "bool",
"default": false,
"description": "For each mesh filter found here should we make a mesh collider?"
}
}, },
"scale": { "scale": {
"type": "number", "type": "number",
"default": 1 "default": 1
},
"alignToNormal": {
"type": "boolean",
"description": "Do we override rotation and try to automatically align this object to stand upright on the body's surface?",
"default": false
},
"generateColliders": {
"type": "bool",
"default": false,
"description": "For each mesh filter found here should we make a mesh collider?"
}
},
"scale": {
"type": "number",
"default": 1
}
}
}
},
"dialogue": {
"type": "array",
"items": {
"type": "object",
"properties": {
"position": {
"$ref": "#/$defs/vector3"
},
"radius": {
"type": "number",
"default": 0
},
"xmlFile": {
"type": "string"
},
"remoteTriggerPosition": {
"$ref": "#/$defs/vector3"
}
}
}
},
"reveal": {
"type": "array",
"description": "A set of volumes that reveal ship log fact",
"items": {
"type": "object",
"properties": {
"revealOn": {
"type": "string",
"enum": ["enter", "observe", "snapshot"],
"description": "'enter', 'observe', or 'snapshot' what needs to be done to the volume to unlock the facts"
},
"reveals": {
"type": "array",
"description": "A list of facts to reveal",
"items": {
"type": "string"
}
},
"position": {
"$ref": "#/$defs/vector3",
"description": "The position to place the volume at"
},
"radius": {
"type": "number",
"description": "The radius of the volume",
"default": 1.0
},
"maxDistance": {
"type": "number",
"description": "The max distance the user can be away from the volume to reveal the fact (snapshot and observe only)"
},
"maxAngle": {
"$ref": "#/$defs/angle",
"description": "The max view angle (in degrees) the player can see the volume with to unlock the fact",
"default": 180.0
}
}
}
},
"entryLocation": {
"type": "array",
"description": "A set of locations for ship log entries",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the entry this location is for"
},
"cloaked": {
"type": "bool",
"description": "Whether this entry location is in a cloaking field",
"default": false
},
"position": {
"$ref": "#/$defs/vector3",
"description": "The position of this entry location"
}
}
}
}
},
"Spawn": {
"type": "object",
"properties": {
"playerSpawnPoint": {
"$ref": "#/$defs/vector3"
},
"shipSpawnPoint": {
"$ref": "#/$defs/vector3"
},
"starWithSuit": {
"type": "boolean",
"default": false
}
}
},
"Signal": {
"type": "object",
"properties": {
"signals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"position": {
"$ref": "#/$defs/vector3"
},
"frequency": {
"type": "string",
"enum": [
"Default",
"Traveler",
"Quantum",
"EscapePod",
"Statue",
"WarpCore",
"HideAndSeek",
"Radio"
]
},
"name": {
"type": "string"
},
"audioClip": {
"type": "string",
"description": "Name of an existing AudioClip in the game"
},
"audioFilePath": {
"type": "string",
"description": "Relative filepath to the .wav file to use as the audio. Mutually exclusive with audioClip"
},
"reveals": {
"type": "string",
"description": "A ship log fact to reveal when the signal is identified"
},
"sourceRadius": {
"type": "number",
"default": 1,
"description": "Radius of the sphere giving off the signal"
},
"detectionRadius": {
"type": "number",
"minimum": 0,
"description": "How close the player must get to the signal to detect it"
},
"identificationRadius": {
"type": "number",
"minimum": 0,
"description": "How close the player must get to the signal to identify it"
},
"onlyAudibleToScope": {
"type": "boolean",
"default": true,
"description": "False if the player can hear the signal without equipping the signal-scope"
},
"insideCloak": {
"type": "boolean",
"default": false,
"description": "Only set to true if you are putting this signal inside a cloaking field"
} }
} }
} },
} "dialogue": {
} "type": "array",
}, "items": {
"Singularity": { "type": "object",
"type": "object", "properties": {
"properties": { "position": {
"size": { "$ref": "#/$defs/vector3"
"type": "number", },
"default": 0, "radius": {
"minimum": 0 "type": "number",
}, "default": 0
"pairedSingularity": { },
"type": "string", "xmlFile": {
"description": "The name of the white hole or black hole that is paired to this one. If you don't set a value, entering will kill the player" "type": "string"
}, },
"targetStarSystem": { "remoteTriggerPosition": {
"type": "string", "$ref": "#/$defs/vector3"
"description": "If you want a black hole to load a new star system scene, put it's name here. Optional." }
},
"type": {
"type": "string",
"enum": [
"BlackHole",
"WhiteHole"
]
},
"position": {
"$ref": "#/$defs/vector3"
}
}
},
"Water": {
"type": "object",
"properties": {
"size": {
"type": "number",
"default": 0
},
"tint": {
"$ref": "#/$defs/colour"
},
"curve": {
"$ref": "#/$defs/curve"
}
}
},
"Lava": {
"type": "object",
"properties": {
"size": {
"type": "number",
"default": 0
},
"tint": {
"$ref": "#/$defs/colour"
},
"curve": {
"$ref": "#/$defs/curve"
}
}
},
"Sand": {
"type": "object",
"properties": {
"size": {
"type": "number",
"default": 0
},
"tint": {
"$ref": "#/$defs/colour"
},
"curve": {
"$ref": "#/$defs/curve"
}
}
},
"Funnel": {
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "The body that the funnel is pouring onto"
},
"type": {
"type": "string",
"enum": [
"Sand",
"Water",
"Lava",
"Star"
],
"default": "Sand"
},
"tint": {
"$ref": "#/$defs/colour"
},
"curve": {
"$ref": "#/$defs/curve"
}
}
},
"ShipLog": {
"type": "object",
"properties": {
"xmlFile": {
"type": "string",
"description": "The xml file to load ship log entries from"
},
"spriteFolder": {
"type": "string",
"description": "A path to the folder where entry sprites are stored"
},
"initialReveal": {
"type": "array",
"description": "A list of fact IDs to reveal when the game starts",
"items": {
"type": "string"
}
},
"entryPositions": {
"type": "array",
"description": "A set of positions to use instead of automatic layout in rumor mode",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The name of the entry to apply the position to"
},
"position": {
"$ref": "#/$defs/vector2"
} }
} }
} },
}, "reveal": {
"MapMode": { "type": "array",
"type": "object", "description": "A set of volumes that reveal ship log fact",
"properties": { "items": {
"revealedSprite": { "type": "object",
"type": "string", "properties": {
"description": "The path to the sprite to show when the planet is revealed in map mode" "revealOn": {
}, "type": "string",
"outlineSprite": { "enum": ["enter", "observe", "snapshot"],
"type": "string", "description": "'enter', 'observe', or 'snapshot' what needs to be done to the volume to unlock the facts"
"description": "The path to the sprite to show when the planet is unexplored in map mode" },
}, "reveals": {
"manualPosition": { "type": "array",
"$ref": "#/$defs/vector2", "description": "A list of facts to reveal",
"description": "Manually place this planet at the specified position" "items": {
}, "type": "string"
"manualNavigationPosition": {
"$ref": "#/$defs/wholeVector2",
"description": "Specify where this planet is in terms of navigation"
},
"scale": {
"type": "number",
"description": "Scale to apply to the planet in map mode",
"default": 1
},
"invisibleWhenHidden": {
"type": "bool",
"description": "Hide the planet completely if unexplored instead of showing an outline",
"default": false
},
"offset": {
"type": "number",
"description": "Extra distance to apply to this object in map mode",
"default": 0
},
"remove": {
"type": "boolean",
"description": "Completely remove this planet (and it's children) from map mode",
"default": false
},
"details": {
"type": "array",
"description": "Place non-selectable object in map mode (like sand funnels)",
"items": {
"type": "object",
"properties": {
"revealedSprite": {
"type": "string",
"description": "The sprite to show when the parent AstroBody is revealed"
},
"outlineSprite": {
"type": "string",
"description": "The sprite to show when the parent AstroBody is rumored/unexplored"
},
"rotation": {
"$ref": "#/$defs/angle",
"description": "The angle in degrees to rotate the detail"
},
"invisibleWhenHidden": {
"type": "boolean",
"description": "Whether to completely hide this detail when the parent AstroBody is unexplored",
"default": false
},
"position": {
"$ref": "#/$defs/vector2",
"description": "The position (relative to the parent) to place the detail"
},
"scale": {
"$ref": "#/$defs/vector2",
"description": "The amount to scale the x and y axis of the detail by"
} }
},
"position": {
"$ref": "#/$defs/vector3",
"description": "The position to place the volume at"
},
"radius": {
"type": "number",
"description": "The radius of the volume",
"default": 1.0
},
"maxDistance": {
"type": "number",
"description": "The max distance the user can be away from the volume to reveal the fact (snapshot and observe only)"
},
"maxAngle": {
"$ref": "#/$defs/angle",
"description": "The max view angle (in degrees) the player can see the volume with to unlock the fact",
"default": 180.0
}
}
}
},
"entryLocation": {
"type": "array",
"description": "A set of locations for ship log entries",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the entry this location is for"
},
"cloaked": {
"type": "bool",
"description": "Whether this entry location is in a cloaking field",
"default": false
},
"position": {
"$ref": "#/$defs/vector3",
"description": "The position of this entry location"
} }
} }
} }
} }
}, }
"Curiosities": { },
"type": "array", "Spawn": {
"description": "A set of colours to apply to curiosities", "type": "object",
"items": { "properties": {
"playerSpawnPoint": {
"$ref": "#/$defs/vector3"
},
"shipSpawnPoint": {
"$ref": "#/$defs/vector3"
},
"starWithSuit": {
"type": "boolean",
"default": false
}
}
},
"Signal": {
"type": "object",
"properties": {
"signals": {
"type": "array",
"items": {
"type": "object",
"properties": {
"position": {
"$ref": "#/$defs/vector3"
},
"frequency": {
"type": "string",
"enum": [
"Default",
"Traveler",
"Quantum",
"EscapePod",
"Statue",
"WarpCore",
"HideAndSeek",
"Radio"
]
},
"name": {
"type": "string"
},
"audioClip": {
"type": "string",
"description": "Name of an existing AudioClip in the game"
},
"audioFilePath": {
"type": "string",
"description": "Relative filepath to the .wav file to use as the audio. Mutually exclusive with audioClip"
},
"reveals": {
"type": "string",
"description": "A ship log fact to reveal when the signal is identified"
},
"sourceRadius": {
"type": "number",
"default": 1,
"description": "Radius of the sphere giving off the signal"
},
"detectionRadius": {
"type": "number",
"minimum": 0,
"description": "How close the player must get to the signal to detect it"
},
"identificationRadius": {
"type": "number",
"minimum": 0,
"description": "How close the player must get to the signal to identify it"
},
"onlyAudibleToScope": {
"type": "boolean",
"default": true,
"description": "False if the player can hear the signal without equipping the signal-scope"
},
"insideCloak": {
"type": "boolean",
"default": false,
"description": "Only set to true if you are putting this signal inside a cloaking field"
}
}
}
}
}
},
"Singularity": {
"type": "object",
"properties": {
"size": {
"type": "number",
"default": 0,
"minimum": 0
},
"pairedSingularity": {
"type": "string",
"description": "The name of the white hole or black hole that is paired to this one. If you don't set a value, entering will kill the player"
},
"targetStarSystem": {
"type": "string",
"description": "If you want a black hole to load a new star system scene, put it's name here. Optional."
},
"type": {
"type": "string",
"enum": [
"BlackHole",
"WhiteHole"
]
},
"position": {
"$ref": "#/$defs/vector3"
}
}
},
"Water": {
"type": "object",
"properties": {
"size": {
"type": "number",
"default": 0
},
"tint": {
"$ref": "#/$defs/color"
},
"curve": {
"$ref": "#/$defs/curve"
}
}
},
"Lava": {
"type": "object",
"properties": {
"size": {
"type": "number",
"default": 0
},
"tint": {
"$ref": "#/$defs/color"
},
"curve": {
"$ref": "#/$defs/curve"
}
}
},
"Sand": {
"type": "object",
"properties": {
"size": {
"type": "number",
"default": 0
},
"tint": {
"$ref": "#/$defs/color"
},
"curve": {
"$ref": "#/$defs/curve"
}
}
},
"Funnel": {
"type": "object",
"properties": {
"target": {
"type": "string",
"description": "The body that the funnel is pouring onto"
},
"type": {
"type": "string",
"enum": [
"Sand",
"Water",
"Lava",
"Star"
],
"default": "Sand"
},
"tint": {
"$ref": "#/$defs/color"
},
"curve": {
"$ref": "#/$defs/curve"
}
}
},
"ShipLog": {
"type": "object",
"properties": {
"xmlFile": {
"type": "string",
"description": "The xml file to load ship log entries from"
},
"spriteFolder": {
"type": "string",
"description": "A path to the folder where entry sprites are stored"
},
"initialReveal": {
"type": "array",
"description": "A list of fact IDs to reveal when the game starts",
"items": {
"type": "string"
}
},
"entryPositions": {
"type": "array",
"description": "A set of positions to use instead of automatic layout in rumor mode",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The name of the entry to apply the position to"
},
"position": {
"$ref": "#/$defs/vector2"
}
}
}
},
"MapMode": {
"type": "object", "type": "object",
"properties": { "properties": {
"id": { "revealedSprite": {
"type": "string", "type": "string",
"description": "The ID of the curiosity to apply the colour to" "description": "The path to the sprite to show when the planet is revealed in map mode"
}, },
"colour": { "outlineSprite": {
"$ref": "#/$defs/colour", "type": "string",
"description": "The colour to apply to entries with this curiosity" "description": "The path to the sprite to show when the planet is unexplored in map mode"
}, },
"highlightColour": { "manualPosition": {
"$ref": "#/$defs/colour", "$ref": "#/$defs/vector2",
"description": "The colour to apply to highlighted entries with this curiosity" "description": "Manually place this planet at the specified position"
},
"manualNavigationPosition": {
"$ref": "#/$defs/wholeVector2",
"description": "Specify where this planet is in terms of navigation"
},
"scale": {
"type": "number",
"description": "Scale to apply to the planet in map mode",
"default": 1
},
"invisibleWhenHidden": {
"type": "bool",
"description": "Hide the planet completely if unexplored instead of showing an outline",
"default": false
},
"offset": {
"type": "number",
"description": "Extra distance to apply to this object in map mode",
"default": 0
},
"remove": {
"type": "boolean",
"description": "Completely remove this planet (and it's children) from map mode",
"default": false
},
"details": {
"type": "array",
"description": "Place non-selectable object in map mode (like sand funnels)",
"items": {
"type": "object",
"properties": {
"revealedSprite": {
"type": "string",
"description": "The sprite to show when the parent AstroBody is revealed"
},
"outlineSprite": {
"type": "string",
"description": "The sprite to show when the parent AstroBody is rumored/unexplored"
},
"rotation": {
"$refs": "#/$defs/angle",
"description": "The angle in degrees to rotate the detail"
},
"invisibleWhenHidden": {
"type": "boolean",
"description": "Whether to completely hide this detail when the parent AstroBody is unexplored",
"default": false
},
"position": {
"$ref": "#/$defs/vector2",
"description": "The position (relative to the parent) to place the detail"
},
"scale": {
"$ref": "#/$defs/vector2",
"description": "The amount to scale the x and y axis of the detail by"
}
}
}
}
}
},
"Curiosities": {
"type": "array",
"description": "A set of colors to apply to curiosities",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The ID of the curiosity to apply the color to"
},
"color": {
"$ref": "#/$defs/color",
"description": "The color to apply to entries with this curiosity"
},
"highlightColor": {
"$ref": "#/$defs/color",
"description": "The color to apply to highlighted entries with this curiosity"
}
} }
} }
} }

View File

@ -0,0 +1,19 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"description": "Configuration for a specific star system",
"properties": {
"canEnterViaWarpDrive": {
"type": "boolean",
"description": "Whether this system can be warped to via the warp drive"
},
"startHere": {
"type": "boolean",
"description": "Set to true if you want to spawn here after dying, not Timber Hearth. You can still warp back to the main star system."
},
"factRequiredForWarp": {
"type": "string",
"description": "Set to the FactID that must be revealed before it can be warped to. Don't set \"CanEnterViaWarpDrive\" to false if you're using this, that would make no sense."
}
}
}