mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
Added star_system_schema.json
This commit is contained in:
parent
3b635d164d
commit
1e9a49b301
@ -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"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
19
NewHorizons/star_system_schema.json
Normal file
19
NewHorizons/star_system_schema.json
Normal 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."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user