|
@@ -32,6 +32,7 @@
|
|
|
#include "lodNode.h"
|
|
#include "lodNode.h"
|
|
|
#include "switchNode.h"
|
|
#include "switchNode.h"
|
|
|
#include "sequenceNode.h"
|
|
#include "sequenceNode.h"
|
|
|
|
|
+#include "uvScrollNode.h"
|
|
|
#include "collisionNode.h"
|
|
#include "collisionNode.h"
|
|
|
#include "collisionPolygon.h"
|
|
#include "collisionPolygon.h"
|
|
|
#include "collisionPlane.h"
|
|
#include "collisionPlane.h"
|
|
@@ -417,6 +418,19 @@ convert_collision_node(CollisionNode *node, const WorkingNodePath &node_path,
|
|
|
egg_parent->add_child(egg_group);
|
|
egg_parent->add_child(egg_group);
|
|
|
apply_node_properties(egg_group, node, false);
|
|
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
|
|
// turn it into a collision node
|
|
|
egg_group->set_collide_flags(EggGroup::CF_descend);
|
|
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 RenderEffects *effects = node->get_effects();
|
|
|
const RenderEffect *effect = effects->get_effect(BillboardEffect::get_class_type());
|
|
const RenderEffect *effect = effects->get_effect(BillboardEffect::get_class_type());
|
|
|
if (effect != (RenderEffect *)NULL) {
|
|
if (effect != (RenderEffect *)NULL) {
|