Better boat handling

This commit is contained in:
2025-11-30 18:28:26 +03:00
parent cd82fb0eed
commit 5b014dcb65
21 changed files with 938 additions and 230 deletions

View File

@@ -3,6 +3,7 @@
#include "Components.h"
#include "GameData.h"
#include "LuaData.h"
#include "EventModule.h"
#include "EventTriggerModule.h"
struct TriggerBody {
@@ -68,13 +69,40 @@ ECS::EventTriggerModule::EventTriggerModule(flecs::world &ecs)
ecs.module<EventTriggerModule>();
ecs.component<EventTrigger>();
ecs.component<EventTriggerData>();
ecs.component<InTrigger>();
ecs.component<TriggeredBy>();
ecs.import <EventModule>();
ecs.import <LuaModule>();
ecs.observer<const EngineData, const EventTrigger>("CreateTrigger")
.event(flecs::OnSet)
.each([](flecs::entity e, const EngineData &eng,
const EventTrigger &trigger) {
e.set<EventTriggerData>({});
ECS::get<LuaBase>().mLua->call_handler(
"actuator_created", e, e);
e.set<EventData>({});
});
ecs.observer<const EventTrigger, EventData>("CreateTriggerEvent")
.event(flecs::OnSet)
.each([](flecs::entity e, const EventTrigger &trigger,
EventData &evt) {
evt.add(e, "actuator_created", e, e);
});
ecs.system<const EventTrigger, EventData>("HandleEventSystem")
.kind(flecs::OnUpdate)
.each([](flecs::entity e, const EventTrigger &trigger,
EventData &evt) {
if (e.parent().is_valid() &&
e.parent().has<EventData>()) {
bool added = false;
for (auto ev : evt.events) {
e.parent().get_mut<EventData>().add(
ev.sender, ev.event, ev.e1,
ev.e2);
added = true;
}
evt.events.clear();
if (added)
e.parent().modified<EventData>();
}
});
#if 0
ecs.component<EventTriggerData>();