mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 08:44:19 -04:00
bam2egg: support collision masks, UvScrollNode
This commit is contained in:
parent
1bd96685bc
commit
df998fb24c
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user