mirror of
https://github.com/Relintai/props_2d.git
synced 2025-02-04 16:15:57 +01:00
Updated the serialization logic in all of the PropDataEntries.
This commit is contained in:
parent
8c4540a2a6
commit
3c9ae1a391
@ -80,7 +80,12 @@ void Prop2DDataLight::_processor_process(Ref<Prop2DData> prop_data, Node *node,
|
||||
ERR_FAIL_COND(!i);
|
||||
|
||||
Ref<Prop2DDataLight> l;
|
||||
l.instance();
|
||||
|
||||
if (entry.is_valid()) {
|
||||
l = entry;
|
||||
} else {
|
||||
l.instance();
|
||||
}
|
||||
|
||||
l->set_light_color(i->get_color());
|
||||
|
||||
|
@ -73,19 +73,30 @@ void Prop2DDataPortal::_processor_process(Ref<Prop2DData> prop_data, Node *node,
|
||||
ERR_FAIL_COND(!p);
|
||||
|
||||
Ref<Prop2DDataPortal> l;
|
||||
l.instance();
|
||||
|
||||
if (entry.is_valid()) {
|
||||
l = entry;
|
||||
} else {
|
||||
l.instance();
|
||||
}
|
||||
|
||||
l->set_is_active(p->get_portal_active());
|
||||
l->set_is_two_way(p->is_two_way());
|
||||
l->set_use_default_margin(p->get_use_default_margin());
|
||||
l->set_portal_margin(p->get_portal_margin());
|
||||
l->set_points(p->get_points());
|
||||
|
||||
//l->set_transform(transform * p->get_transform());
|
||||
prop_data->add_prop(l);
|
||||
Prop2DDataEntry::_processor_process(prop_data, node, transform, l);
|
||||
}
|
||||
|
||||
Node *Prop2DDataPortal::_processor_get_node_for(const Transform2D &transform, Node *node) {
|
||||
Portal *p = memnew(Portal);
|
||||
Portal *p = nullptr;
|
||||
|
||||
if (!node) {
|
||||
p = memnew(Portal);
|
||||
} else {
|
||||
p = Object::cast_to<Portal>(node);
|
||||
}
|
||||
|
||||
p->set_portal_active(get_is_active());
|
||||
p->set_two_way(get_is_two_way());
|
||||
@ -93,9 +104,7 @@ Node *Prop2DDataPortal::_processor_get_node_for(const Transform2D &transform, No
|
||||
p->set_portal_margin(get_portal_margin());
|
||||
p->set_points(get_points());
|
||||
|
||||
//p->set_transform(get_transform());
|
||||
|
||||
return p;
|
||||
return Prop2DDataEntry::_processor_get_node_for(transform, p);
|
||||
}
|
||||
|
||||
Prop2DDataPortal::Prop2DDataPortal() {
|
||||
|
@ -52,19 +52,30 @@ void Prop2DDataProp2D::_processor_process(Ref<Prop2DData> prop_data, Node *node,
|
||||
ERR_FAIL_COND(!i);
|
||||
|
||||
Ref<Prop2DDataProp2D> l;
|
||||
l.instance();
|
||||
|
||||
if (entry.is_valid()) {
|
||||
l = entry;
|
||||
} else {
|
||||
l.instance();
|
||||
}
|
||||
|
||||
l->set_prop(i->get_prop_data());
|
||||
//l->set_transform(transform * i->get_transform());
|
||||
prop_data->add_prop(l);
|
||||
|
||||
Prop2DDataEntry::_processor_process(prop_data, node, transform, l);
|
||||
}
|
||||
|
||||
Node *Prop2DDataProp2D::_processor_get_node_for(const Transform2D &transform, Node *node) {
|
||||
Prop2DInstance *i = memnew(Prop2DInstance);
|
||||
Prop2DInstance *i = nullptr;
|
||||
|
||||
if (!node) {
|
||||
i = memnew(Prop2DInstance);
|
||||
} else {
|
||||
i = Object::cast_to<Prop2DInstance>(node);
|
||||
}
|
||||
|
||||
i->set_prop_data(get_prop());
|
||||
//i->set_transform(get_transform());
|
||||
|
||||
return i;
|
||||
return Prop2DDataEntry::_processor_get_node_for(transform, i);
|
||||
}
|
||||
|
||||
Prop2DDataProp2D::Prop2DDataProp2D() {
|
||||
|
@ -44,19 +44,31 @@ void Prop2DDataScene::_processor_process(Ref<Prop2DData> prop_data, Node *node,
|
||||
ERR_FAIL_COND(!i);
|
||||
|
||||
Ref<Prop2DDataScene> l;
|
||||
l.instance();
|
||||
|
||||
if (entry.is_valid()) {
|
||||
l = entry;
|
||||
} else {
|
||||
l.instance();
|
||||
}
|
||||
|
||||
l->set_scene(i->get_scene());
|
||||
//l->set_transform(transform * i->get_transform());
|
||||
prop_data->add_prop(l);
|
||||
|
||||
Prop2DDataEntry::_processor_process(prop_data, node, transform, l);
|
||||
}
|
||||
|
||||
Node *Prop2DDataScene::_processor_get_node_for(const Transform2D &transform, Node *node) {
|
||||
Prop2DSceneInstance *i = memnew(Prop2DSceneInstance);
|
||||
Prop2DSceneInstance *i = nullptr;
|
||||
|
||||
if (!node) {
|
||||
i = memnew(Prop2DSceneInstance);
|
||||
} else {
|
||||
i = Object::cast_to<Prop2DSceneInstance>(node);
|
||||
}
|
||||
|
||||
|
||||
i->set_scene(get_scene());
|
||||
//i->set_transform(get_transform());
|
||||
|
||||
return i;
|
||||
return Prop2DDataEntry::_processor_get_node_for(transform, i);
|
||||
}
|
||||
|
||||
Prop2DDataScene::Prop2DDataScene() {
|
||||
|
@ -67,18 +67,29 @@ void Prop2DDataTiledWall2D::_processor_process(Ref<Prop2DData> prop_data, Node *
|
||||
ERR_FAIL_COND(!t);
|
||||
|
||||
Ref<Prop2DDataTiledWall2D> tw;
|
||||
tw.instance();
|
||||
|
||||
if (entry.is_valid()) {
|
||||
tw = entry;
|
||||
} else {
|
||||
tw.instance();
|
||||
}
|
||||
|
||||
tw->set_width(t->get_width());
|
||||
tw->set_heigth(t->get_heigth());
|
||||
tw->set_data(t->get_data());
|
||||
//tw->set_collision(t->get_collision());
|
||||
//tw->set_transform(transform * t->get_transform());
|
||||
prop_data->add_prop(tw);
|
||||
|
||||
Prop2DDataEntry::_processor_process(prop_data, node, transform, tw);
|
||||
}
|
||||
|
||||
Node *Prop2DDataTiledWall2D::_processor_get_node_for(const Transform2D &transform, Node *node) {
|
||||
TiledWall2D *t = memnew(TiledWall2D);
|
||||
TiledWall2D *t;
|
||||
|
||||
if (node) {
|
||||
t = Object::cast_to<TiledWall2D>(node);
|
||||
} else {
|
||||
t = memnew(TiledWall2D());
|
||||
}
|
||||
|
||||
t->set_width(get_width());
|
||||
t->set_heigth(get_heigth());
|
||||
@ -86,7 +97,7 @@ Node *Prop2DDataTiledWall2D::_processor_get_node_for(const Transform2D &transfor
|
||||
t->set_data(get_data());
|
||||
//t->set_transform(get_transform());
|
||||
|
||||
return t;
|
||||
return Prop2DDataEntry::_processor_get_node_for(transform, t);
|
||||
}
|
||||
|
||||
Prop2DDataTiledWall2D::Prop2DDataTiledWall2D() {
|
||||
|
Loading…
Reference in New Issue
Block a user