aboutsummaryrefslogtreecommitdiff
path: root/src/objs/speck_entity.lua
diff options
context:
space:
mode:
authoriamcheeseman <[email protected]>2026-03-30 17:52:23 -0400
committeriamcheeseman <[email protected]>2026-03-30 17:52:23 -0400
commitf52aaaad971d11fa145a391e521e37ea3c3b230e (patch)
treebaf5ae7bd8b284209a2551386fd324b5f57e7d44 /src/objs/speck_entity.lua
parent7859709ac3b1500e3037c5dceacb77bcff778e89 (diff)
parentfeafbd1e1a6a1846ab5fe416ee31e2e14f603edd (diff)
Merge branch 'main' of ssh://codeberg.org/the-gutter/gutshot
Diffstat (limited to 'src/objs/speck_entity.lua')
-rw-r--r--src/objs/speck_entity.lua34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/objs/speck_entity.lua b/src/objs/speck_entity.lua
new file mode 100644
index 0000000..cf81130
--- /dev/null
+++ b/src/objs/speck_entity.lua
@@ -0,0 +1,34 @@
+
+register_comp("Speck_System", function(ent)
+ ent.speck_sys = Speck_Sys.new()
+end)
+
+function speck_update_sys(ent, dt)
+ ent.speck_sys.x = ent.x
+ ent.speck_sys.y = ent.y
+
+ ent.speck_sys:update(dt)
+end
+
+function speck_draw_sys(ent)
+ ent.speck_sys:draw()
+end
+
+function new_speck_entity(x, y, filepath)
+ local ent = new_entity()
+ add_comp(ent, "Position", x, y)
+ add_comp(ent, "Speck_System")
+ ent.speck_sys = load_speck_sys(filepath)
+ ent.speck_sys.oneshot = true
+
+ add_comp(ent, "Speck_Entity")
+end
+
+register_comp("Speck_Entity", TAGCOMP)
+
+function speck_entity_system(ent, dt)
+ local sys = ent.speck_sys
+ if not sys.emitting and sys:is_empty() then
+ queue_entity_kill(ent)
+ end
+end