mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-25 22:23:42 +08:00
[godot] Clean-up SpineSlotData
This commit is contained in:
parent
3de051380a
commit
44cecb6b2d
@ -189,6 +189,6 @@ void SpineCollisionShapeProxy::get_slot_names(Vector<String> &slot_names) const
|
|||||||
for (size_t i = 0; i < slots.size(); ++i) {
|
for (size_t i = 0; i < slots.size(); ++i) {
|
||||||
auto slot = (Ref<SpineSlot>) slots[i];
|
auto slot = (Ref<SpineSlot>) slots[i];
|
||||||
if (slot.is_valid())
|
if (slot.is_valid())
|
||||||
slot_names.set(i, slot->get_data()->get_slot_name());
|
slot_names.set(i, slot->get_data()->get_name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -75,4 +75,9 @@ void SpineConstant::_bind_methods() {
|
|||||||
BIND_ENUM_CONSTANT(RotateMode_Tangent)
|
BIND_ENUM_CONSTANT(RotateMode_Tangent)
|
||||||
BIND_ENUM_CONSTANT(RotateMode_Chain)
|
BIND_ENUM_CONSTANT(RotateMode_Chain)
|
||||||
BIND_ENUM_CONSTANT(RotateMode_ChainScale)
|
BIND_ENUM_CONSTANT(RotateMode_ChainScale)
|
||||||
|
|
||||||
|
BIND_ENUM_CONSTANT(BLENDMODE_NORMAL)
|
||||||
|
BIND_ENUM_CONSTANT(BLENDMODE_ADDITIVE)
|
||||||
|
BIND_ENUM_CONSTANT(BLENDMODE_MULTIPLY)
|
||||||
|
BIND_ENUM_CONSTANT(BLENDMODE_SCREEN)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -98,6 +98,13 @@ public:
|
|||||||
RotateMode_Chain,
|
RotateMode_Chain,
|
||||||
RotateMode_ChainScale
|
RotateMode_ChainScale
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum BlendMode {
|
||||||
|
BLENDMODE_NORMAL = 0,
|
||||||
|
BLENDMODE_ADDITIVE,
|
||||||
|
BLENDMODE_MULTIPLY,
|
||||||
|
BLENDMODE_SCREEN
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
VARIANT_ENUM_CAST(SpineConstant::MixBlend);
|
VARIANT_ENUM_CAST(SpineConstant::MixBlend);
|
||||||
@ -107,5 +114,6 @@ VARIANT_ENUM_CAST(SpineConstant::TransformMode);
|
|||||||
VARIANT_ENUM_CAST(SpineConstant::PositionMode);
|
VARIANT_ENUM_CAST(SpineConstant::PositionMode);
|
||||||
VARIANT_ENUM_CAST(SpineConstant::SpacingMode);
|
VARIANT_ENUM_CAST(SpineConstant::SpacingMode);
|
||||||
VARIANT_ENUM_CAST(SpineConstant::RotateMode);
|
VARIANT_ENUM_CAST(SpineConstant::RotateMode);
|
||||||
|
VARIANT_ENUM_CAST(SpineConstant::BlendMode);
|
||||||
|
|
||||||
#endif//GODOT_SPINECONSTANT_H
|
#endif//GODOT_SPINECONSTANT_H
|
||||||
|
|||||||
@ -28,13 +28,16 @@
|
|||||||
*****************************************************************************/
|
*****************************************************************************/
|
||||||
|
|
||||||
#include "SpineSlotData.h"
|
#include "SpineSlotData.h"
|
||||||
|
#include "SpineCommon.h"
|
||||||
|
|
||||||
void SpineSlotData::_bind_methods() {
|
void SpineSlotData::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("get_index"), &SpineSlotData::get_index);
|
ClassDB::bind_method(D_METHOD("get_index"), &SpineSlotData::get_index);
|
||||||
ClassDB::bind_method(D_METHOD("get_slot_name"), &SpineSlotData::get_slot_name);
|
ClassDB::bind_method(D_METHOD("get_name"), &SpineSlotData::get_name);
|
||||||
ClassDB::bind_method(D_METHOD("get_bone_data"), &SpineSlotData::get_bone_data);
|
ClassDB::bind_method(D_METHOD("get_bone_data"), &SpineSlotData::get_bone_data);
|
||||||
ClassDB::bind_method(D_METHOD("get_color"), &SpineSlotData::get_color);
|
ClassDB::bind_method(D_METHOD("get_color"), &SpineSlotData::get_color);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_color", "v"), &SpineSlotData::set_color);
|
||||||
ClassDB::bind_method(D_METHOD("get_dark_color"), &SpineSlotData::get_dark_color);
|
ClassDB::bind_method(D_METHOD("get_dark_color"), &SpineSlotData::get_dark_color);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_dark_color", "v"), &SpineSlotData::set_dark_color);
|
||||||
ClassDB::bind_method(D_METHOD("has_dark_color"), &SpineSlotData::has_dark_color);
|
ClassDB::bind_method(D_METHOD("has_dark_color"), &SpineSlotData::has_dark_color);
|
||||||
ClassDB::bind_method(D_METHOD("set_has_dark_color", "v"), &SpineSlotData::set_has_dark_color);
|
ClassDB::bind_method(D_METHOD("set_has_dark_color", "v"), &SpineSlotData::set_has_dark_color);
|
||||||
ClassDB::bind_method(D_METHOD("get_attachment_name"), &SpineSlotData::get_attachment_name);
|
ClassDB::bind_method(D_METHOD("get_attachment_name"), &SpineSlotData::get_attachment_name);
|
||||||
@ -42,73 +45,77 @@ void SpineSlotData::_bind_methods() {
|
|||||||
ClassDB::bind_method(D_METHOD("get_blend_mode"), &SpineSlotData::get_blend_mode);
|
ClassDB::bind_method(D_METHOD("get_blend_mode"), &SpineSlotData::get_blend_mode);
|
||||||
ClassDB::bind_method(D_METHOD("set_blend_mode", "v"), &SpineSlotData::set_blend_mode);
|
ClassDB::bind_method(D_METHOD("set_blend_mode", "v"), &SpineSlotData::set_blend_mode);
|
||||||
|
|
||||||
ClassDB::bind_method(D_METHOD("set_color", "v"), &SpineSlotData::set_color);
|
|
||||||
ClassDB::bind_method(D_METHOD("set_dark_color", "v"), &SpineSlotData::set_dark_color);
|
|
||||||
|
|
||||||
BIND_ENUM_CONSTANT(BLENDMODE_NORMAL);
|
|
||||||
BIND_ENUM_CONSTANT(BLENDMODE_ADDITIVE);
|
|
||||||
BIND_ENUM_CONSTANT(BLENDMODE_MULTIPLY);
|
|
||||||
BIND_ENUM_CONSTANT(BLENDMODE_SCREEN);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SpineSlotData::SpineSlotData() : slot_data(NULL) {}
|
SpineSlotData::SpineSlotData() : slot_data(nullptr) {
|
||||||
SpineSlotData::~SpineSlotData() {}
|
}
|
||||||
|
|
||||||
#define S_T(x) (spine::String(x.utf8()))
|
|
||||||
int SpineSlotData::get_index() {
|
int SpineSlotData::get_index() {
|
||||||
|
SPINE_CHECK(slot_data, 0)
|
||||||
return slot_data->getIndex();
|
return slot_data->getIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
String SpineSlotData::get_slot_name() {
|
String SpineSlotData::get_name() {
|
||||||
|
SPINE_CHECK(slot_data, String(""))
|
||||||
return slot_data->getName().buffer();
|
return slot_data->getName().buffer();
|
||||||
}
|
}
|
||||||
|
|
||||||
Ref<SpineBoneData> SpineSlotData::get_bone_data() {
|
Ref<SpineBoneData> SpineSlotData::get_bone_data() {
|
||||||
auto &bd = slot_data->getBoneData();
|
SPINE_CHECK(slot_data, nullptr)
|
||||||
Ref<SpineBoneData> gd_bone_data(memnew(SpineBoneData));
|
auto &bone_data = slot_data->getBoneData();
|
||||||
gd_bone_data->set_spine_object(&bd);
|
Ref<SpineBoneData> bone_data_ref(memnew(SpineBoneData));
|
||||||
return gd_bone_data;
|
bone_data_ref->set_spine_object(&bone_data);
|
||||||
|
return bone_data_ref;
|
||||||
}
|
}
|
||||||
|
|
||||||
Color SpineSlotData::get_color() {
|
Color SpineSlotData::get_color() {
|
||||||
auto &c = slot_data->getColor();
|
SPINE_CHECK(slot_data, Color(0, 0, 0, 0))
|
||||||
return Color(c.r, c.g, c.b, c.a);
|
auto &color = slot_data->getColor();
|
||||||
|
return Color(color.r, color.g, color.b, color.a);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpineSlotData::set_color(Color v) {
|
void SpineSlotData::set_color(Color v) {
|
||||||
auto &c = slot_data->getColor();
|
SPINE_CHECK(slot_data,)
|
||||||
c.set(v.r, v.g, v.b, v.a);
|
auto &color = slot_data->getColor();
|
||||||
|
color.set(v.r, v.g, v.b, v.a);
|
||||||
}
|
}
|
||||||
|
|
||||||
Color SpineSlotData::get_dark_color() {
|
Color SpineSlotData::get_dark_color() {
|
||||||
auto &c = slot_data->getDarkColor();
|
SPINE_CHECK(slot_data, Color(0, 0, 0, 0))
|
||||||
return Color(c.r, c.g, c.b, c.a);
|
auto &color = slot_data->getDarkColor();
|
||||||
|
return Color(color.r, color.g, color.b, color.a);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpineSlotData::set_dark_color(Color v) {
|
void SpineSlotData::set_dark_color(Color v) {
|
||||||
auto &c = slot_data->getDarkColor();
|
SPINE_CHECK(slot_data,)
|
||||||
c.set(v.r, v.g, v.b, v.a);
|
auto &color = slot_data->getDarkColor();
|
||||||
|
color.set(v.r, v.g, v.b, v.a);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SpineSlotData::has_dark_color() {
|
bool SpineSlotData::has_dark_color() {
|
||||||
|
SPINE_CHECK(slot_data, false)
|
||||||
return slot_data->hasDarkColor();
|
return slot_data->hasDarkColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
void SpineSlotData::set_has_dark_color(bool v) {
|
void SpineSlotData::set_has_dark_color(bool v) {
|
||||||
|
SPINE_CHECK(slot_data,)
|
||||||
slot_data->setHasDarkColor(v);
|
slot_data->setHasDarkColor(v);
|
||||||
}
|
}
|
||||||
|
|
||||||
String SpineSlotData::get_attachment_name() {
|
String SpineSlotData::get_attachment_name() {
|
||||||
|
SPINE_CHECK(slot_data, "")
|
||||||
return slot_data->getAttachmentName().buffer();
|
return slot_data->getAttachmentName().buffer();
|
||||||
}
|
}
|
||||||
void SpineSlotData::set_attachment_name(const String &v) {
|
void SpineSlotData::set_attachment_name(const String &v) {
|
||||||
slot_data->setAttachmentName(S_T(v));
|
SPINE_CHECK(slot_data,)
|
||||||
|
slot_data->setAttachmentName(SPINE_STRING(v));
|
||||||
}
|
}
|
||||||
|
|
||||||
SpineSlotData::BlendMode SpineSlotData::get_blend_mode() {
|
SpineConstant::BlendMode SpineSlotData::get_blend_mode() {
|
||||||
auto bm = (int) slot_data->getBlendMode();
|
SPINE_CHECK(slot_data, SpineConstant::BLENDMODE_NORMAL)
|
||||||
return (BlendMode) bm;
|
return (SpineConstant::BlendMode)slot_data->getBlendMode();
|
||||||
}
|
}
|
||||||
void SpineSlotData::set_blend_mode(BlendMode v) {
|
void SpineSlotData::set_blend_mode(SpineConstant::BlendMode v) {
|
||||||
auto bm = (int) v;
|
SPINE_CHECK(slot_data,)
|
||||||
slot_data->setBlendMode((spine::BlendMode) bm);
|
slot_data->setBlendMode((spine::BlendMode) v);
|
||||||
}
|
}
|
||||||
|
|
||||||
#undef S_T
|
|
||||||
@ -29,11 +29,10 @@
|
|||||||
|
|
||||||
#ifndef GODOT_SPINESLOTDATA_H
|
#ifndef GODOT_SPINESLOTDATA_H
|
||||||
#define GODOT_SPINESLOTDATA_H
|
#define GODOT_SPINESLOTDATA_H
|
||||||
#include "core/variant_parser.h"
|
|
||||||
|
|
||||||
#include <spine/spine.h>
|
|
||||||
|
|
||||||
|
#include "core/object.h"
|
||||||
#include "SpineBoneData.h"
|
#include "SpineBoneData.h"
|
||||||
|
#include <spine/SlotData.h>
|
||||||
|
|
||||||
class SpineSlotData : public Reference {
|
class SpineSlotData : public Reference {
|
||||||
GDCLASS(SpineSlotData, Reference);
|
GDCLASS(SpineSlotData, Reference);
|
||||||
@ -46,43 +45,35 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
SpineSlotData();
|
SpineSlotData();
|
||||||
~SpineSlotData();
|
|
||||||
|
|
||||||
inline void set_spine_object(spine::SlotData *s) {
|
void set_spine_object(spine::SlotData *s) { slot_data = s; }
|
||||||
slot_data = s;
|
spine::SlotData *get_spine_object() { return slot_data; }
|
||||||
}
|
|
||||||
inline spine::SlotData *get_spine_object() {
|
|
||||||
return slot_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
enum BlendMode {
|
|
||||||
BLENDMODE_NORMAL = 0,
|
|
||||||
BLENDMODE_ADDITIVE,
|
|
||||||
BLENDMODE_MULTIPLY,
|
|
||||||
BLENDMODE_SCREEN
|
|
||||||
};
|
|
||||||
|
|
||||||
int get_index();
|
int get_index();
|
||||||
|
|
||||||
String get_slot_name();
|
String get_name();
|
||||||
|
|
||||||
Ref<SpineBoneData> get_bone_data();
|
Ref<SpineBoneData> get_bone_data();
|
||||||
|
|
||||||
Color get_color();
|
Color get_color();
|
||||||
|
|
||||||
void set_color(Color c);
|
void set_color(Color c);
|
||||||
|
|
||||||
Color get_dark_color();
|
Color get_dark_color();
|
||||||
|
|
||||||
void set_dark_color(Color c);
|
void set_dark_color(Color c);
|
||||||
|
|
||||||
bool has_dark_color();
|
bool has_dark_color();
|
||||||
|
|
||||||
void set_has_dark_color(bool v);
|
void set_has_dark_color(bool v);
|
||||||
|
|
||||||
String get_attachment_name();
|
String get_attachment_name();
|
||||||
|
|
||||||
void set_attachment_name(const String &v);
|
void set_attachment_name(const String &v);
|
||||||
|
|
||||||
BlendMode get_blend_mode();
|
SpineConstant::BlendMode get_blend_mode();
|
||||||
void set_blend_mode(BlendMode v);
|
|
||||||
|
void set_blend_mode(SpineConstant::BlendMode v);
|
||||||
};
|
};
|
||||||
|
|
||||||
VARIANT_ENUM_CAST(SpineSlotData::BlendMode);
|
|
||||||
#endif//GODOT_SPINESLOTDATA_H
|
#endif//GODOT_SPINESLOTDATA_H
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user