diff --git a/assets/entities/trigger.symtres b/assets/entities/trigger.symtres new file mode 100644 index 0000000..46355c2 --- /dev/null +++ b/assets/entities/trigger.symtres @@ -0,0 +1,15 @@ +Entity +{ + type : 9 + scale : 1.000 1.000 1.000 + rotation : 0.000 0.000 0.000 1.000 + trigger_mask : 1 + trigger_event : -1 + active : true + position : 0.000 0.000 0.000 + bouding_box_min : -0.500 -0.500 -0.500 + trigger_type : 0 + name : Trigger + bouding_box_max : 0.500 0.500 0.500 +} + diff --git a/src/common/version.h b/src/common/version.h index 5e43eb3..cbbd144 100755 --- a/src/common/version.h +++ b/src/common/version.h @@ -4,7 +4,7 @@ /* Auto generated version file. DO NOT MODIFY */ #define SYMMETRY_VERSION_MAJOR 0 #define SYMMETRY_VERSION_MINOR 1 -#define SYMMETRY_VERSION_REVISION 328 +#define SYMMETRY_VERSION_REVISION 329 #define SYMMETRY_VERSION_BRANCH "dev" #endif \ No newline at end of file diff --git a/src/game/entity.h b/src/game/entity.h index 2a16e48..bf11c6d 100755 --- a/src/game/entity.h +++ b/src/game/entity.h @@ -82,8 +82,8 @@ enum Entity_Ray_Mask enum Trigger_Mask { - TRIGM_PLAYER = 0, - TRIGM_ENEMY = 1 << 0, + TRIGM_PLAYER = 1 << 0, + TRIGM_ENEMY = 1 << 1, TRIGM_ALL = TRIGM_PLAYER | TRIGM_ENEMY }; diff --git a/src/game/trigger.c b/src/game/trigger.c index 0d75664..1c3f99b 100644 --- a/src/game/trigger.c +++ b/src/game/trigger.c @@ -62,6 +62,7 @@ void trigger_update_physics(struct Trigger* trigger, struct Scene* scene, float { fire_event = true; trigger->triggered = true; + trigger->count++; scene_trigger_remove(scene, trigger); } break; @@ -76,6 +77,7 @@ void trigger_update_physics(struct Trigger* trigger, struct Scene* scene, float else { trigger->triggered = true; + trigger->count++; fire_event = true; } } @@ -83,10 +85,15 @@ void trigger_update_physics(struct Trigger* trigger, struct Scene* scene, float case TRIG_CONTINUOUS: { trigger->triggered = true; + trigger->count++; fire_event = true; } + break; } + if(fire_event) + log_message("event triggered!"); + if(fire_event && trigger->trigger_event != -1) { struct Event_Manager* event_manager = game_state_get()->event_manager; diff --git a/todo.txt b/todo.txt index 21e6b95..05634c8 100644 --- a/todo.txt +++ b/todo.txt @@ -1,5 +1,5 @@ Todo: - - Implement Triggers + - Fix crash where if entity selected in editor is deleted in game mode and then returning to editor mode causes a crash - Implement flag for ignoring collisions with certain entities - Implement separate property window for player related variables that can be shown in the editor similar to renderer settings etc - Implement game gui either with a separate nuklear context or as part of existing context @@ -402,4 +402,5 @@ Done: * Fix Turret losing target at diagonals * Add turret properties to property inspector * Add another ambient sound_source entity as child to enemy entity - * Add all sound source properties to propery inspector \ No newline at end of file + * Add all sound source properties to propery inspector + * Implement Triggers \ No newline at end of file