ATProto Browser

ATProto Browser

Experimental browser for the Atmosphere

Record data

{
  "uri": "at://did:plc:tydxsfc7tumboebjgi5df2ew/li.plonk.paste/3llzk4vrxp22p",
  "cid": "bafyreihnqhf3tduidusydmjdp4fhkswfcvfxa6ig6pd4hu6nhznzyfuvfq",
  "value": {
    "code": "-- ENTITY COMPONENT SYSTEM\r\n-- Created by Koldinium\r\n-- Licensed under 0BSD\r\nlocal M = {}\r\n\r\n-- Maintain one consistent global state across instances\r\n_G.__kold_ecs = _G.__kold_ecs or {}\r\nlocal globals = _G.__kold_ecs\r\n\r\nglobals.entities = globals.entities or 0\r\nglobals.component_arrays = globals.component_arrays or {}\r\nglobals.components = globals.components or {}\r\nglobals.systems = globals.systems or {}\r\n\r\n\r\nfunction M.create_entity(components)\r\n    local id = globals.entities + 1\r\n    for k,v in pairs(components) do\r\n        globals.component_arrays[k][id] = globals.components[k](v)\r\n    end\r\n    return id\r\nend\r\n\r\nfunction M.delete_entity(id)\r\n    for _,v in pairs(globals.component_arrays) do\r\n        v[id] = nil\r\n    end\r\nend\r\n\r\nfunction M.add_component_to_entity(entity, component_id, component_val)\r\n    globals.component_arrays[component_id][entity] = globals.components[component_id](component_val)\r\nend\r\n\r\nfunction M.remove_component_from_entity(entity, component_id)\r\n    globals.component_arrays[component_id][entity] = nil\r\nend\r\n\r\nfunction M.declare_system(query, system)\r\n    table.insert(globals.systems, {query = query, system=system})\r\nend\r\n\r\nfunction M.declare_component(component, initializer)\r\n    globals.components[component] = initializer\r\nend\r\n\r\n\r\nfunction M.run_systems()\r\n    for _,system in pairs(globals.systems) do\r\n        local first_component_id = system.query[1]\r\n        for id, component in globals.component_arrays[first_component_id] do\r\n            if #system.query == 1 then\r\n                system.system({component})\r\n            else\r\n                local arg = {}\r\n                for k,v in pairs(system.query) do\r\n                    if component_arrays[v][id] then\r\n                        table.insert(arg, component_arrays[v][id])\r\n                    else\r\n                        break\r\n                    end\r\n                end\r\n                if #arg == #system.query then\r\n                    system.system(arg)\r\n                end\r\n            end\r\n        end\r\n    end\r\nend\r\n\r\nreturn M\r\n",
    "lang": "plaintext",
    "$type": "li.plonk.paste",
    "title": "lua ecs (WIP, UNTESTED)",
    "shortUrl": "zb",
    "createdAt": "2025-04-04T23:12:37.988Z"
  }
}