======Codex====== ---- A **codex** is a data type with its data stored as key/value pairs. Each key is a unique [[string]] and acts as a lookup for its corresponding value within the codex, similar to a dictionary. The key/value pairs are enclosed by square brackets after the "codex" keyword, with each key written as a [[string]] and a colon between a key and its corresponding value. Key/value pairs are separated by commas. If loading data from a JSON file and it contains an object with properties, the object will be stored as a codex (see [[Data Files]]). ====Example:==== codex["id": "ITEM_0001", "count": 5] The codex variable above will contain a lookup with keys named "id" and "count", with corresponding values of "ITEM_0001" (as a [[string]] value) and 5 (as a [[number]] value). You could create a JSON [[data_files|data file]] containing an [[array]] of these codices as an easy way to maintain a list of [[item|items]] to give to the player when the game starts. ====Reading a Value:==== $my_codex = codex["id": "ITEM_0001", "count": 5]; display_message("The item's count is " + str($my_codex["count"])); The script above creates a codex variable containing lookups for an item ID and a numeric count value, then displays the count (converted to a [[string]] value) in a message. ====Modifying a Value:==== $my_codex = codex["id": "ITEM_0001", "count": 5]; $my_codex["count"] = 10; The script above creates a codex variable containing lookups for an item ID and a numeric count value, then modifies the count to 10. ====Inserting a Value:==== $my_codex = codex[]; $my_codex["unique_key"] = "Some Value"; The script above creates an empty codex variable, then inserts a new key/value pair with a key of "unique_key" and a [[string]] value of "Some Value". ====Iterating All Keys:==== $my_codex = codex["name": "Stumpy", "genus": "Sciurus"]; for $key in $my_codex do display_message("Key: " + $key + ", Value: " + str($my_codex[$key])); end; The script above displays each key of the codex along with its corresponding value. The "str" function is used to convert whatever the stored value is to a [[string]] before displaying it. ~~NOTOC~~