diff options
| author | Alexander M Pickering <alex@cogarr.net> | 2025-01-21 16:03:25 -0600 |
|---|---|---|
| committer | Alexander M Pickering <alex@cogarr.net> | 2025-01-21 16:03:25 -0600 |
| commit | 89a8f94ac0206412c1a2d7b8766d97dbdbd36253 (patch) | |
| tree | c9ddc23d31d3c5058d3465dabb68aae7b8209138 /src/ecs.moon | |
| parent | 0370d64b3bd7914be55358817e52bbc8a529a7d3 (diff) | |
| download | ggj25-89a8f94ac0206412c1a2d7b8766d97dbdbd36253.tar.gz ggj25-89a8f94ac0206412c1a2d7b8766d97dbdbd36253.tar.bz2 ggj25-89a8f94ac0206412c1a2d7b8766d97dbdbd36253.zip | |
work
Diffstat (limited to 'src/ecs.moon')
| -rw-r--r-- | src/ecs.moon | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/src/ecs.moon b/src/ecs.moon index d20984a..182f09d 100644 --- a/src/ecs.moon +++ b/src/ecs.moon @@ -28,11 +28,12 @@ class Entity @c_by_type = {} --Entity is responsible for the component -> entity link - @components = componenets or {} + @components = components or {} for name, component in pairs(@components) component.entity = @ @c_by_type[component.__class] = @c_by_type[component.__class] or {} @c_by_type[component.__class][name] = component + for name, component in pairs(@components) component\join(@) add: (cid, component) => component.entity = @ @@ -70,21 +71,21 @@ class PredictedComponent extends Component @netc_name = netc_name @calculate = calculate join: (entity) => - @net = entity[@netc_name] + @net = @entity\get(@netc_name) forward: () => - for proeprty, calculation in pairs(@calculate) + for property, calculation in pairs(@calculate) @properties[property] = calculation(@) -class GraphicsComponent extends Component - new: (name, properties) => - assert(properties and properties.node , "Failed to find node for graphics component") - super(name, properties) - static: () => - @@static - buffer_size: () => - error("Subclasses of GraphicsComponent must implement a buffer_size() method") - populate_buffer: (buffer, offset) => - error("Subclasses of GraphicsComponent must implement a populate_buffer() method") +-- componnt moved to world.moon +--class GraphicsComponent extends Component +-- new: (name, properties) => +-- print("Got name", name, "and properties", properties) +-- assert(properties and properties.node , "Failed to find node for graphics component") +-- super(name, properties) +-- static: () => +-- @@static +-- node: () => +-- @properties.node class PhysicsComponent extends Component new: (name, properties) => |
