Skip to content

Descriptor extensions #65

Open
Open
@Anaminus

Description

  • Provides auxiliary third-party data for descriptors.
  • Extensions are isolated under $rbxmkExtensions field in the descriptor root, for forward-compatibility with Roblox's API dump format.
  • For convenience, the rbxmk API combines these extensions into their corresponding item.
  • Extra global data can be added under the $rbxmkConfig field in the descriptor root.
  • DescAction gains "Extension" field.
    • If "Element", the action applies to the corresponding item in the extensions area instead of the main area.
    • If "$rbxmkConfig", then Primary refers to a global field data via a dot-separated path. The "Value" field under Fields sets the value.

Example descriptor file:

{
	"Version": 0,
	"Classes": [],
	"Enums": [],
	"$rbxmkExtensions": {
		"Classes": {
			"Class": {
				"Fields": {
					"ExtensionKey": "ExtensionValue"
				},
				"Members": {
					"Member": {
						"Fields": {
							"ExtensionKey": "ExtensionValue"
						}
					}
				}
			}
		},
		"Enums": {
			"Enum": {
				"Fields": {
					"ExtensionKey": "ExtensionValue"
				},
				"Items": {
					"Item": {
						"Fields": {
							"ExtensionKey": "ExtensionValue"
						}
					}
				}
			}
		}
	},
	"$rbxmkConfig": {
		"Foo": {
			"Bar": [1, 2, 3]
		},
		"BrickColors": {
			"PaletteSize": 128,
			"IndexSize": 208,
			"Default": 194,
			"List": [
				{"Number":  1 , "Name": "White"         , "Color": [242, 243, 243] , "PaletteIndex":  87},
				{"Number": 21 , "Name": "Bright red"    , "Color": [196,  40,  28] , "PaletteIndex":  68},
				{"Number": 23 , "Name": "Bright blue"   , "Color": [ 13, 105, 172] , "PaletteIndex":  21},
				{"Number": 24 , "Name": "Bright yellow" , "Color": [245, 205,  48] , "PaletteIndex":  71},
				{"Number": 28 , "Name": "Dark green"    , "Color": [ 40, 127,  71] , "PaletteIndex":   8}
			]
		}
	}
}

Example patch that enhances a property with a default value:

{
	"Extend": "Element",
	"Type": 1,
	"Element": "Class",
	"Primary": "BasePart",
	"Secondary": "BrickColor",
	"Fields": {
		"Default": {
			"BrickColor": 194
		}
	}
}

Example patch that modifies global BrickColor data:

{
	"Extend": "$rbxmkConfig",
	"Type": 0,
	"Primary": "BrickColors.List.0.Color",
	"Fields": {"Value": [242, 243, 243]}
}

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions