Support proper actuator animation

This commit is contained in:
2025-09-27 01:23:16 +03:00
parent 7e06da700a
commit 25280a9cbe
16 changed files with 528 additions and 103 deletions

View File

@@ -132,7 +132,7 @@ function Quest(name, book)
this.story:begin()
this:_narration()
end,
event = function(this, event)
event = function(this, event, event_data)
if not this.active then
return
end
@@ -250,11 +250,14 @@ function StartGameQuest()
end
quests = {}
-- ecs_set_debug_drawing(true)
setup_handler(function(event, entity)
setup_handler(function(event, trigger_entity, what_entity)
print(event)
for k, v in pairs(quests) do
if v.active then
v:event(event)
local event_data = {}
event_data.trigger_entity = trigger_entity
event_data.object_entity = what_entity
v:event(event, event_data)
end
end
if event == "startup" then
@@ -263,7 +266,6 @@ setup_handler(function(event, entity)
print("narration progress!")
elseif event == "narration_answered" then
local answer = narration_get_answer()
-- story:choose(answer)
print("answered:", answer)
elseif event == "new_game" then
ecs_character_params_set("player", "gravity", true)
@@ -274,5 +276,19 @@ setup_handler(function(event, entity)
print(k, v.active)
end
quest:activate()
elseif event == "actuator_enter" then
ecs_character_physics_control(what_entity, false)
ecs_character_set_actuator(what_entity, "swimming-hold-edge")
ecs_trigger_set_position(trigger_entity, what_entity)
local ent = ecs_get_entity(what_entity)
if (ent.is_character()) then
print("character")
end
if (ent.is_player()) then
print("player")
end
-- crash()
elseif event == "actuator_exit" then
crash()
end
end)