From 9133020876db5a98c6f088c6d3ca1b8c4c6bfda9 Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 12 Apr 2022 14:22:43 +0200 Subject: [PATCH] [godot] Clean-up SpineEvent. --- spine-godot/spine_godot/SpineEvent.cpp | 35 ++++++++++++++---------- spine-godot/spine_godot/SpineEvent.h | 32 ++++++---------------- spine-godot/spine_godot/SpineEventData.h | 5 ++-- 3 files changed, 31 insertions(+), 41 deletions(-) diff --git a/spine-godot/spine_godot/SpineEvent.cpp b/spine-godot/spine_godot/SpineEvent.cpp index 9d753db33..4f28f616a 100644 --- a/spine-godot/spine_godot/SpineEvent.cpp +++ b/spine-godot/spine_godot/SpineEvent.cpp @@ -28,10 +28,11 @@ *****************************************************************************/ #include "SpineEvent.h" +#include +#include "common.h" void SpineEvent::_bind_methods() { ClassDB::bind_method(D_METHOD("get_data"), &SpineEvent::get_data); - ClassDB::bind_method(D_METHOD("get_event_name"), &SpineEvent::get_event_name); ClassDB::bind_method(D_METHOD("get_time"), &SpineEvent::get_time); ClassDB::bind_method(D_METHOD("get_int_value"), &SpineEvent::get_int_value); ClassDB::bind_method(D_METHOD("set_int_value", "v"), &SpineEvent::set_int_value); @@ -43,68 +44,72 @@ void SpineEvent::_bind_methods() { ClassDB::bind_method(D_METHOD("set_volume", "v"), &SpineEvent::set_volume); ClassDB::bind_method(D_METHOD("get_balance"), &SpineEvent::get_balance); ClassDB::bind_method(D_METHOD("set_balance", "v"), &SpineEvent::set_balance); - // - // BIND_ENUM_CONSTANT(EVENTTYPE_START); - // BIND_ENUM_CONSTANT(EVENTTYPE_INTERRUPT); - // BIND_ENUM_CONSTANT(EVENTTYPE_END); - // BIND_ENUM_CONSTANT(EVENTTYPE_COMPLETE); - // BIND_ENUM_CONSTANT(EVENTTYPE_DISPOSE); - // BIND_ENUM_CONSTANT(EVENTTYPE_EVENT); } -SpineEvent::SpineEvent() : event(NULL) {} -SpineEvent::~SpineEvent() {} +SpineEvent::SpineEvent() : event(nullptr) { +} + +SpineEvent::~SpineEvent() { +} Ref SpineEvent::get_data() { + SPINE_CHECK(event, nullptr) Ref event_data(memnew(SpineEventData)); event_data->set_spine_object(&(event->getData())); return event_data; } -String SpineEvent::get_event_name() { - return event->getData().getName().buffer(); -} - float SpineEvent::get_time() { + SPINE_CHECK(event, 0) return event->getTime(); } int SpineEvent::get_int_value() { + SPINE_CHECK(event, 0) return event->getIntValue(); } void SpineEvent::set_int_value(int v) { + SPINE_CHECK(event,) event->setIntValue(v); } float SpineEvent::get_float_value() { + SPINE_CHECK(event, 0) return event->getFloatValue(); } void SpineEvent::set_float_value(float v) { + SPINE_CHECK(event,) event->setFloatValue(v); } String SpineEvent::get_string_value() { + SPINE_CHECK(event, "") return event->getStringValue().buffer(); } void SpineEvent::set_string_value(const String &v) { + SPINE_CHECK(event,) event->setStringValue(spine::String(v.utf8())); } float SpineEvent::get_volume() { + SPINE_CHECK(event, 0) return event->getVolume(); } void SpineEvent::set_volume(float v) { + SPINE_CHECK(event,) event->setVolume(v); } float SpineEvent::get_balance() { + SPINE_CHECK(event, 0) return event->getBalance(); } void SpineEvent::set_balance(float v) { + SPINE_CHECK(event,) event->setBalance(v); -} \ No newline at end of file +} diff --git a/spine-godot/spine_godot/SpineEvent.h b/spine-godot/spine_godot/SpineEvent.h index bbbf0b986..85c8f876c 100644 --- a/spine-godot/spine_godot/SpineEvent.h +++ b/spine-godot/spine_godot/SpineEvent.h @@ -30,14 +30,10 @@ #ifndef GODOT_SPINEEVENT_H #define GODOT_SPINEEVENT_H -#include "core/variant_parser.h" - -#include - #include "SpineEventData.h" class SpineEvent : public Reference { - GDCLASS(SpineEvent, Reference); + GDCLASS(SpineEvent, Reference) protected: static void _bind_methods(); @@ -49,42 +45,32 @@ public: SpineEvent(); ~SpineEvent(); - inline void set_spine_object(spine::Event *e) { - event = e; - } - inline spine::Event *get_spine_object() const { - return event; - } - - enum EventType { - EVENTTYPE_START = spine::EventType_Start, - EVENTTYPE_INTERRUPT = spine::EventType_Interrupt, - EVENTTYPE_END = spine::EventType_End, - EVENTTYPE_COMPLETE = spine::EventType_Complete, - EVENTTYPE_DISPOSE = spine::EventType_Dispose, - EVENTTYPE_EVENT = spine::EventType_Event - }; - + void set_spine_object(spine::Event *e) { event = e; } + spine::Event *get_spine_object() const { return event; } + Ref get_data(); - String get_event_name(); - float get_time(); int get_int_value(); + void set_int_value(int inValue); float get_float_value(); + void set_float_value(float inValue); String get_string_value(); + void set_string_value(const String &inValue); float get_volume(); + void set_volume(float inValue); float get_balance(); + void set_balance(float inValue); }; diff --git a/spine-godot/spine_godot/SpineEventData.h b/spine-godot/spine_godot/SpineEventData.h index 1cf669f26..7a6e28330 100644 --- a/spine-godot/spine_godot/SpineEventData.h +++ b/spine-godot/spine_godot/SpineEventData.h @@ -30,9 +30,8 @@ #ifndef GODOT_SPINEEVENTDATA_H #define GODOT_SPINEEVENTDATA_H -#include "core/variant_parser.h" - -#include +#include "core/reference.h" +#include class SpineEventData : public Reference { GDCLASS(SpineEventData, Reference);