From df998fb24c2dd47807afb4f2c5d3487999cf2c6b Mon Sep 17 00:00:00 2001 From: rdb Date: Mon, 24 Oct 2016 17:20:21 +0200 Subject: [PATCH] bam2egg: support collision masks, UvScrollNode --- panda/src/egg2pg/eggSaver.cxx | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/panda/src/egg2pg/eggSaver.cxx b/panda/src/egg2pg/eggSaver.cxx index fc41f15535..3976aa0714 100644 --- a/panda/src/egg2pg/eggSaver.cxx +++ b/panda/src/egg2pg/eggSaver.cxx @@ -32,6 +32,7 @@ #include "lodNode.h" #include "switchNode.h" #include "sequenceNode.h" +#include "uvScrollNode.h" #include "collisionNode.h" #include "collisionPolygon.h" #include "collisionPlane.h" @@ -417,6 +418,19 @@ convert_collision_node(CollisionNode *node, const WorkingNodePath &node_path, egg_parent->add_child(egg_group); apply_node_properties(egg_group, node, false); + // Set the collision masks, if present. + CollideMask from_mask = node->get_from_collide_mask(); + CollideMask into_mask = node->get_into_collide_mask(); + if (from_mask != CollisionNode::get_default_collide_mask() || + into_mask != CollisionNode::get_default_collide_mask()) { + if (from_mask == into_mask) { + egg_group->set_collide_mask(into_mask); + } else { + egg_group->set_from_collide_mask(from_mask); + egg_group->set_into_collide_mask(into_mask); + } + } + // turn it into a collision node egg_group->set_collide_flags(EggGroup::CF_descend); @@ -939,6 +953,14 @@ apply_node_properties(EggGroup *egg_group, PandaNode *node, bool allow_backstage } } + if (node->is_of_type(UvScrollNode::get_class_type())) { + const UvScrollNode *scroll_node = (const UvScrollNode *)node; + egg_group->set_scroll_u(scroll_node->get_u_speed()); + egg_group->set_scroll_v(scroll_node->get_v_speed()); + egg_group->set_scroll_w(scroll_node->get_w_speed()); + egg_group->set_scroll_r(scroll_node->get_r_speed()); + } + const RenderEffects *effects = node->get_effects(); const RenderEffect *effect = effects->get_effect(BillboardEffect::get_class_type()); if (effect != (RenderEffect *)NULL) {