Skip to content

Commit 8822be5

Browse files
committed
Add assertion against existing idr
1 parent ef0f69a commit 8822be5

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

addons/observers.luau

+6
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,8 @@ local function observers_add(world: jecs.World & { [string]: any }): PatchedWorl
101101

102102
world.added = function(_, component, fn)
103103
local listeners = signals.added[component]
104+
local component_index = world.component_index :: jecs.ComponentIndex
105+
assert(component_index[component] == nil, "You cannot use hooks on components you intend to use this signal with")
104106
if not listeners then
105107
listeners = {}
106108
signals.added[component] = listeners
@@ -115,6 +117,8 @@ local function observers_add(world: jecs.World & { [string]: any }): PatchedWorl
115117

116118
world.changed = function(_, component, fn)
117119
local listeners = signals.emplaced[component]
120+
local component_index = world.component_index :: jecs.ComponentIndex
121+
assert(component_index[component] == nil, "You cannot use hooks on components you intend to use this signal with")
118122
if not listeners then
119123
listeners = {}
120124
signals.emplaced[component] = listeners
@@ -130,6 +134,8 @@ local function observers_add(world: jecs.World & { [string]: any }): PatchedWorl
130134

131135
world.removed = function(_, component, fn)
132136
local listeners = signals.removed[component]
137+
local component_index = world.component_index :: jecs.ComponentIndex
138+
assert(component_index[component] == nil, "You cannot use hooks on components you intend to use this signal with")
133139
if not listeners then
134140
listeners = {}
135141
signals.removed[component] = listeners

0 commit comments

Comments
 (0)