From 5c1414efb56663e738bdf3f5e6114c16a98d0565 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sun, 26 Mar 2023 20:45:59 -0700 Subject: [PATCH] ecs: remove Module.update in favor of "one method per message" handler pattern Signed-off-by: Stephen Gutekanst --- libs/ecs/src/systems.zig | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libs/ecs/src/systems.zig b/libs/ecs/src/systems.zig index 57e2e666..ab485a93 100644 --- a/libs/ecs/src/systems.zig +++ b/libs/ecs/src/systems.zig @@ -267,8 +267,9 @@ pub fn World(comptime modules: anytype) type { pub fn send(world: *Self, comptime msg_tag: anytype) !void { inline for (std.meta.fields(@TypeOf(modules))) |module_field| { const module = @field(modules, module_field.name); - if (@hasDecl(module, "Message")) { - if (@hasField(module.Message, @tagName(msg_tag))) try module.update(world, msg_tag); + if (@hasDecl(module, @tagName(msg_tag))) { + const handler = @field(module, @tagName(msg_tag)); + try handler(world); } } }