Better boat handling
This commit is contained in:
@@ -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>();
|
||||
|
||||
Reference in New Issue
Block a user