Commit 8d6b2cad authored by Ondrasek Timotej's avatar Ondrasek Timotej
Browse files

template with scripts

parent 2cfcb51b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
# **Scripts Basics**

The package contains a script modules showcase. It recreates age template application using script instead of native C++.
The package contains a script module showcase. It recreates age template application using script instead of native C++.

## **age** basic info

ast.dot

0 → 100644
+987 −0

File added.

Preview size limit exceeded, changes collapsed.

Compare 403cf34f to efc2210c
Original line number Diff line number Diff line
Subproject commit 403cf34f9d68a196ade4f8397e08b971ba0383b1
Subproject commit efc2210c771ae55dd17854ee8f1f1420f2e44c66
+143 −0
Original line number Diff line number Diff line
{
    "constants": [
        ["PATH", ["", "game"]],
        ["PATH", ["game", "scripts", "bytecode", "updater.json"]],
        ["PATH", ["game", "scripts", "bytecode", "presenter.json"]],
        ["STRING", "gam::MathLib"],
        ["ARRAY", []],
        ["STRING", "push_back"],
        ["STRING", "com::Folder"],
        ["ARRAY", [["STRING", "camera"]]],
        ["STRING", "com::Frame"],
        ["ARRAY", [["STRING", "grid"]]],
        ["STRING", "scr::Script"],
        ["ARRAY", [["STRING", "updater"], ["BYTES", []]]],
        ["ARRAY", [["STRING", "presenter"], ["BYTES", []]]],
        ["STRING", "register_on_content_changed"],
        ["ITEM", 0],
        ["STRING", "load_scripts"],
        ["STRING", "unregister_on_content_changed"],
        ["PATH", ["", "lfs", "loader.lib"]],
        ["STRING", "load_now"],
        ["STRING", "data"],
        ["STRING", "set_json"],
        ["STRING", "reload"],
        ["STRING", "presenter"],
        ["STRING", "erase"],
        ["STRING", "updater"],
        ["STRING", "grid"],
        ["STRING", "camera"],
        ["STRING", "math.lib"]
    ],
    "static": [
        "ITEM",
        "PATH",
        "PATH"
    ],
    "functions": [
        {
            "name": "__static_init__",
            "params": [
            ],
            "returns": false,
            "locals": [
                "ITEM"
            ],
            "code": [
                [
                    ["GET_ITEM", "lc", 0, 0, [2, 16]],
                    ["COPY_REF", "sl", 0, 0, [2, 1]],
                    ["COPY_VAL_PATH", "sc", 1, 1, [3, 1]],
                    ["COPY_VAL_PATH", "sc", 2, 2, [4, 1]],
                    ["RET", "", [0, 0]]
                ]
            ]
        },
        {
            "name": "initialize",
            "params": [
            ],
            "returns": false,
            "locals": [
                "ANY",
                "ANY",
                "ANY",
                "ITEM",
                "ITEM",
                "ITEM"
            ],
            "code": [
                [
                    ["CALL", "sclcc", 0, 5, 0, 3, 4, [12, 5]],
                    ["CALL", "sclcc", 0, 5, 0, 6, 7, [13, 5]],
                    ["CALL_ANY", "lclcc", 0, 5, 1, 8, 4, [13, 5]],
                    ["CALL", "sclcc", 0, 5, 1, 6, 9, [14, 5]],
                    ["CALL_ANY", "lclcc", 1, 5, 2, 8, 4, [14, 5]],
                    ["CALL", "sclcc", 0, 5, 2, 10, 11, [15, 25]],
                    ["CAST_ANY", "ll", 3, 2, [15, 25]],
                    ["COPY_REF", "ll", 4, 3, [15, 5]],
                    ["CALL", "sclcc", 0, 5, 2, 10, 12, [16, 27]],
                    ["CAST_ANY", "ll", 3, 2, [16, 27]],
                    ["COPY_REF", "ll", 5, 3, [16, 5]],
                    ["CALL", "lcll", 4, 13, 2, 4, [19, 5]],
                    ["CALL", "lcll", 5, 13, 2, 5, [20, 5]],
                    ["CALL", "cccll", 14, 15, 0, 4, 5, [23, 5]],
                    ["CALL", "lcll", 4, 16, 2, 4, [26, 5]],
                    ["CALL", "lcll", 5, 16, 2, 5, [27, 5]],
                    ["RET", "", [7, 1]]
                ]
            ]
        },
        {
            "name": "load_scripts",
            "params": [
                "ITEM",
                "ITEM"
            ],
            "returns": false,
            "locals": [
                "ITEM",
                "ITEM",
                "ANY",
                "ANY",
                "ANY"
            ],
            "code": [
                [
                    ["GET_ITEM", "lc", 0, 17, [34, 18]],
                    ["COPY_REF", "ll", 1, 0, [34, 5]],
                    ["CALL", "lcls", 1, 18, 2, 1, [36, 18]],
                    ["COPY_REF", "ll", 3, 2, [36, 5]],
                    ["CALL_ANY", "lcl", 3, 19, 2, [38, 22]],
                    ["CALL", "pcll", 0, 20, 4, 2, [38, 5]],
                    ["CALL", "pcl", 0, 21, 2, [40, 5]],
                    ["CALL", "lcls", 1, 18, 2, 2, [42, 14]],
                    ["COPY_REF", "ll", 3, 2, [42, 5]],
                    ["CALL_ANY", "lcl", 3, 19, 2, [43, 24]],
                    ["CALL", "pcll", 1, 20, 4, 2, [43, 5]],
                    ["CALL", "pcl", 1, 21, 2, [44, 5]],
                    ["RET", "", [31, 1]]
                ]
            ]
        },
        {
            "name": "release",
            "params": [
            ],
            "returns": false,
            "locals": [
                "ANY"
            ],
            "code": [
                [
                    ["CALL", "sclc", 0, 23, 0, 22, [50, 5]],
                    ["CALL", "sclc", 0, 23, 0, 24, [51, 5]],
                    ["CALL", "sclc", 0, 23, 0, 25, [52, 5]],
                    ["CALL", "sclc", 0, 23, 0, 26, [53, 5]],
                    ["CALL", "sclc", 0, 23, 0, 27, [54, 5]],
                    ["RET", "", [48, 1]]
                ]
            ]
        }
    ]
}
 No newline at end of file
+252 −0
Original line number Diff line number Diff line
{
    "constants": [
        ["PATH", ["", "game"]],
        ["PATH", ["", "osi", "runners", "presenters"]],
        ["PATH", ["", "gfx", "object_system.lib"]],
        ["PATH", ["", "gfx", "material_system.lib"]],
        ["PATH", ["", "gfx", "buffer_generators.lib"]],
        ["PATH", ["", "gfx", "light_system.lib"]],
        ["PATH", ["", "gfx", "renderer.lib"]],
        ["ITEM", 0],
        ["STRING", "init_presenter"],
        ["STRING", "presenter.run"],
        ["STRING", "com::Folder"],
        ["ARRAY", [["STRING", "game"]]],
        ["STRING", "push_front"],
        ["STRING", "com::Link"],
        ["STRING", "self_name"],
        ["STRING", ".link"],
        ["STRING", "push_back"],
        ["PATH", ["grid"]],
        ["STRING", "grid_material"],
        ["PATH", ["", "gfx", "shader_system.lib"]],
        ["STRING", "forward_unlit_vertex_color_shader"],
        ["PATH", ["game"]],
        ["STRING", "insert_material"],
        ["STRING", "insert_procedural_grid"],
        ["STRING", "insert_object"],
        ["PATH", ["", "game", "grid", "frame"]],
        ["STRING", ""],
        ["STRING", "push_frame_back"],
        ["PATH", ["game", "test_box"]],
        ["STRING", "box_material"],
        ["VEC3", [0.75, 0.75, 0.0]],
        ["STRING", "insert_default_material"],
        ["VEC3", [0.5, 0.5, 0.5]],
        ["STRING", "test_box"],
        ["STRING", "insert_procedural_box_solid"],
        ["ARRAY", [["STRING", "test_box"]]],
        ["STRING", "com::Frame"],
        ["ARRAY", []],
        ["STRING", "get_uniforms"],
        ["STRING", "com::FileVec3"],
        ["ARRAY", [["STRING", "material_ambient_color"], ["VEC3", [0.75, 0.75, 0.0]]]],
        ["ARRAY", [["STRING", "test_box_2"]]],
        ["VEC3", [0.5, 0.0, 1.5]],
        ["STRING", "move_origin"],
        ["ARRAY", [["STRING", "directional_light"]]],
        ["STRING", "gfx::DirectionalLight"],
        ["PATH", ["global", "directional"]],
        ["ARRAY", [["VEC3", [0.75, 0.75, 0.75]]]],
        ["STRING", "insert_light"],
        ["STRING", "insert_shadow_caster"],
        ["STRING", "game"],
        ["STRING", "find"],
        ["STRING", "erase"],
        ["BOOL", false],
        ["STRING", "clear_render_buffers"],
        ["STRING", "objects"],
        ["STRING", "FORWARD"],
        ["STRING", "present_collection"]
    ],
    "static": [
        "ITEM",
        "ITEM",
        "ITEM",
        "ITEM",
        "ITEM",
        "ITEM",
        "ITEM"
    ],
    "functions": [
        {
            "name": "__static_init__",
            "params": [
            ],
            "returns": false,
            "locals": [
                "ITEM",
                "ITEM",
                "ITEM",
                "ITEM",
                "ITEM",
                "ITEM",
                "ITEM"
            ],
            "code": [
                [
                    ["GET_ITEM", "lc", 0, 0, [1, 11]],
                    ["COPY_REF", "sl", 0, 0, [1, 0]],
                    ["GET_ITEM", "lc", 1, 1, [2, 18]],
                    ["COPY_REF", "sl", 1, 1, [2, 1]],
                    ["GET_ITEM", "lc", 2, 2, [3, 21]],
                    ["COPY_REF", "sl", 2, 2, [3, 1]],
                    ["GET_ITEM", "lc", 3, 3, [4, 23]],
                    ["COPY_REF", "sl", 3, 3, [4, 1]],
                    ["GET_ITEM", "lc", 4, 4, [5, 25]],
                    ["COPY_REF", "sl", 4, 4, [5, 1]],
                    ["GET_ITEM", "lc", 5, 5, [6, 20]],
                    ["COPY_REF", "sl", 5, 5, [6, 1]],
                    ["GET_ITEM", "lc", 6, 6, [7, 16]],
                    ["COPY_REF", "sl", 6, 6, [7, 1]],
                    ["RET", "", [0, 0]]
                ]
            ]
        },
        {
            "name": "on_content_changed",
            "params": [
                "ITEM"
            ],
            "returns": false,
            "locals": [
                "ITEM",
                "BOOL"
            ],
            "code": [
                [
                    ["SELF", "l", 0, [14, 18]],
                    ["NE_ITEM", "lpl", 1, 0, 0, [14, 8]],
                    ["BRANCH", "lbb", 1, 3, 2, [14, 5]]
                ],
                [
                    ["CALL", "ccc", 7, 8, 0, [19, 5]],
                    ["RET", "", [11, 1]]
                ],
                [
                    ["RET", "", [16, 9]]
                ],
                [
                    ["JUMP", "b", 1, [14, 5]]
                ]
            ]
        },
        {
            "name": "self_name",
            "params": [
                "STRING"
            ],
            "returns": true,
            "locals": [
            ],
            "code": [
                [
                    ["COPY_VAL_STRING", "pc", 0, 9, [24, 5]],
                    ["RET", "", [24, 5]]
                ]
            ]
        },
        {
            "name": "init_presenter",
            "params": [
            ],
            "returns": false,
            "locals": [
                "ANY",
                "STRING",
                "ITEM",
                "ARRAY",
                "ANY",
                "ANY",
                "ANY",
                "ANY",
                "ITEM",
                "ANY",
                "ANY",
                "ANY",
                "ANY",
                "ANY"
            ],
            "code": [
                [
                    ["CALL", "sclcc", 1, 12, 0, 10, 11, [29, 5]],
                    ["CALL", "ccl", 7, 14, 1, [29, 76]],
                    ["ADD_STRING", "llc", 1, 1, 15, [29, 76]],
                    ["SELF", "l", 2, [29, 99]],
                    ["NEW_ARRAY", "lll", 3, 1, 2, [29, 75]],
                    ["CALL_ANY", "lclcl", 0, 16, 4, 13, 3, [29, 5]],
                    ["GET_ITEM", "lc", 2, 19, [34, 62]],
                    ["CALL", "lcl", 2, 20, 4, [34, 62]],
                    ["CALL", "sclclc", 3, 22, 5, 18, 4, 21, [34, 13]],
                    ["CALL", "scl", 4, 23, 6, [35, 13]],
                    ["CALL", "sclcll", 2, 24, 7, 17, 5, 6, [32, 9]],
                    ["GET_ITEM", "lc", 8, 25, [37, 9]],
                    ["CALL", "sclllc", 2, 27, 9, 7, 8, 26, [31, 5]],
                    ["CALL", "sclccc", 3, 31, 4, 29, 21, 30, [45, 13]],
                    ["CALL", "sclccc", 4, 34, 5, 32, 33, 21, [46, 13]],
                    ["CALL", "sclcll", 2, 24, 6, 28, 4, 5, [43, 20]],
                    ["COPY_REF", "ll", 10, 6, [43, 5]],
                    ["CALL", "sclcc", 0, 16, 4, 10, 35, [50, 9]],
                    ["CALL_ANY", "lclcc", 4, 16, 5, 36, 37, [50, 9]],
                    ["CALL", "sclllc", 2, 27, 6, 10, 5, 26, [48, 5]],
                    ["CALL", "scll", 2, 38, 5, 10, [53, 5]],
                    ["CALL_ANY", "lclcc", 5, 16, 6, 39, 40, [53, 5]],
                    ["CALL", "sclcc", 0, 16, 6, 10, 41, [56, 18]],
                    ["CALL_ANY", "lclcc", 6, 16, 7, 36, 37, [56, 18]],
                    ["COPY_REF", "ll", 11, 7, [56, 5]],
                    ["CALL_ANY", "lclc", 11, 43, 7, 42, [57, 5]],
                    ["CALL", "sclllc", 2, 27, 7, 10, 11, 26, [58, 5]],
                    ["CALL", "sclcc", 0, 16, 7, 10, 44, [64, 23]],
                    ["CALL_ANY", "lclcc", 7, 16, 9, 36, 37, [64, 23]],
                    ["COPY_REF", "ll", 12, 9, [64, 5]],
                    ["CALL", "sclcclc", 5, 48, 9, 45, 46, 12, 47, [65, 21]],
                    ["COPY_REF", "ll", 13, 9, [65, 5]],
                    ["CALL", "sclll", 2, 48, 9, 10, 13, [74, 5]],
                    ["CALL", "sclll", 5, 49, 9, 13, 10, [75, 5]],
                    ["RET", "", [27, 1]]
                ]
            ]
        },
        {
            "name": "release",
            "params": [
            ],
            "returns": false,
            "locals": [
                "ANY",
                "STRING",
                "ANY",
                "ITEM"
            ],
            "code": [
                [
                    ["CALL", "sclc", 1, 51, 0, 50, [80, 5]],
                    ["CALL", "ccl", 7, 14, 1, [80, 35]],
                    ["ADD_STRING", "llc", 1, 1, 15, [80, 35]],
                    ["CALL_ANY", "lcll", 0, 52, 2, 1, [80, 5]],
                    ["GET_ITEM", "lc", 3, 0, [82, 5]],
                    ["CALL", "lclc", 3, 52, 2, 33, [82, 5]],
                    ["RET", "", [78, 1]]
                ]
            ]
        },
        {
            "name": "next_round",
            "params": [
            ],
            "returns": false,
            "locals": [
                "ANY",
                "ANY"
            ],
            "code": [
                [
                    ["CALL", "sclc", 6, 54, 0, 53, [87, 5]],
                    ["CALL", "scl", 2, 55, 0, [88, 33]],
                    ["CALL", "scllc", 6, 57, 1, 0, 56, [88, 5]],
                    ["RET", "", [85, 1]]
                ]
            ]
        }
    ]
}
 No newline at end of file
Loading