[godot] Clean-up SpineEvent.

This commit is contained in:
badlogic 2022-04-12 14:22:43 +02:00
parent 00f83a1317
commit 9133020876
3 changed files with 31 additions and 41 deletions

View File

@ -28,10 +28,11 @@
*****************************************************************************/ *****************************************************************************/
#include "SpineEvent.h" #include "SpineEvent.h"
#include <spine/Event.h>
#include "common.h"
void SpineEvent::_bind_methods() { void SpineEvent::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_data"), &SpineEvent::get_data); 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_time"), &SpineEvent::get_time);
ClassDB::bind_method(D_METHOD("get_int_value"), &SpineEvent::get_int_value); 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); 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("set_volume", "v"), &SpineEvent::set_volume);
ClassDB::bind_method(D_METHOD("get_balance"), &SpineEvent::get_balance); ClassDB::bind_method(D_METHOD("get_balance"), &SpineEvent::get_balance);
ClassDB::bind_method(D_METHOD("set_balance", "v"), &SpineEvent::set_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() : event(nullptr) {
SpineEvent::~SpineEvent() {} }
SpineEvent::~SpineEvent() {
}
Ref<SpineEventData> SpineEvent::get_data() { Ref<SpineEventData> SpineEvent::get_data() {
SPINE_CHECK(event, nullptr)
Ref<SpineEventData> event_data(memnew(SpineEventData)); Ref<SpineEventData> event_data(memnew(SpineEventData));
event_data->set_spine_object(&(event->getData())); event_data->set_spine_object(&(event->getData()));
return event_data; return event_data;
} }
String SpineEvent::get_event_name() {
return event->getData().getName().buffer();
}
float SpineEvent::get_time() { float SpineEvent::get_time() {
SPINE_CHECK(event, 0)
return event->getTime(); return event->getTime();
} }
int SpineEvent::get_int_value() { int SpineEvent::get_int_value() {
SPINE_CHECK(event, 0)
return event->getIntValue(); return event->getIntValue();
} }
void SpineEvent::set_int_value(int v) { void SpineEvent::set_int_value(int v) {
SPINE_CHECK(event,)
event->setIntValue(v); event->setIntValue(v);
} }
float SpineEvent::get_float_value() { float SpineEvent::get_float_value() {
SPINE_CHECK(event, 0)
return event->getFloatValue(); return event->getFloatValue();
} }
void SpineEvent::set_float_value(float v) { void SpineEvent::set_float_value(float v) {
SPINE_CHECK(event,)
event->setFloatValue(v); event->setFloatValue(v);
} }
String SpineEvent::get_string_value() { String SpineEvent::get_string_value() {
SPINE_CHECK(event, "")
return event->getStringValue().buffer(); return event->getStringValue().buffer();
} }
void SpineEvent::set_string_value(const String &v) { void SpineEvent::set_string_value(const String &v) {
SPINE_CHECK(event,)
event->setStringValue(spine::String(v.utf8())); event->setStringValue(spine::String(v.utf8()));
} }
float SpineEvent::get_volume() { float SpineEvent::get_volume() {
SPINE_CHECK(event, 0)
return event->getVolume(); return event->getVolume();
} }
void SpineEvent::set_volume(float v) { void SpineEvent::set_volume(float v) {
SPINE_CHECK(event,)
event->setVolume(v); event->setVolume(v);
} }
float SpineEvent::get_balance() { float SpineEvent::get_balance() {
SPINE_CHECK(event, 0)
return event->getBalance(); return event->getBalance();
} }
void SpineEvent::set_balance(float v) { void SpineEvent::set_balance(float v) {
SPINE_CHECK(event,)
event->setBalance(v); event->setBalance(v);
} }

View File

@ -30,14 +30,10 @@
#ifndef GODOT_SPINEEVENT_H #ifndef GODOT_SPINEEVENT_H
#define GODOT_SPINEEVENT_H #define GODOT_SPINEEVENT_H
#include "core/variant_parser.h"
#include <spine/spine.h>
#include "SpineEventData.h" #include "SpineEventData.h"
class SpineEvent : public Reference { class SpineEvent : public Reference {
GDCLASS(SpineEvent, Reference); GDCLASS(SpineEvent, Reference)
protected: protected:
static void _bind_methods(); static void _bind_methods();
@ -49,42 +45,32 @@ public:
SpineEvent(); SpineEvent();
~SpineEvent(); ~SpineEvent();
inline void set_spine_object(spine::Event *e) { void set_spine_object(spine::Event *e) { 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
};
spine::Event *get_spine_object() const { return event; }
Ref<SpineEventData> get_data(); Ref<SpineEventData> get_data();
String get_event_name();
float get_time(); float get_time();
int get_int_value(); int get_int_value();
void set_int_value(int inValue); void set_int_value(int inValue);
float get_float_value(); float get_float_value();
void set_float_value(float inValue); void set_float_value(float inValue);
String get_string_value(); String get_string_value();
void set_string_value(const String &inValue); void set_string_value(const String &inValue);
float get_volume(); float get_volume();
void set_volume(float inValue); void set_volume(float inValue);
float get_balance(); float get_balance();
void set_balance(float inValue); void set_balance(float inValue);
}; };

View File

@ -30,9 +30,8 @@
#ifndef GODOT_SPINEEVENTDATA_H #ifndef GODOT_SPINEEVENTDATA_H
#define GODOT_SPINEEVENTDATA_H #define GODOT_SPINEEVENTDATA_H
#include "core/variant_parser.h" #include "core/reference.h"
#include <spine/EventData.h>
#include <spine/spine.h>
class SpineEventData : public Reference { class SpineEventData : public Reference {
GDCLASS(SpineEventData, Reference); GDCLASS(SpineEventData, Reference);