1
This commit is contained in:
parent
efbef8c795
commit
54a3bf530c
@ -35,6 +35,10 @@ namespace mc
|
|||||||
|
|
||||||
void Collider::Read(std::shared_ptr<a8::XObject> xobj)
|
void Collider::Read(std::shared_ptr<a8::XObject> xobj)
|
||||||
{
|
{
|
||||||
|
ca_type = xobj->At("ca_type")->AsXValue();
|
||||||
|
if (ca_type < kCA_Floor || ca_type > kCA_Other) {
|
||||||
|
abort();
|
||||||
|
}
|
||||||
enabled = xobj->At("enabled")->AsXValue();
|
enabled = xobj->At("enabled")->AsXValue();
|
||||||
is_trigger = xobj->At("is_trigger")->AsXValue();
|
is_trigger = xobj->At("is_trigger")->AsXValue();
|
||||||
Bounds_Read(bounds, xobj->At("bounds"));
|
Bounds_Read(bounds, xobj->At("bounds"));
|
||||||
@ -79,6 +83,7 @@ namespace mc
|
|||||||
case kBoxCollider:
|
case kBoxCollider:
|
||||||
{
|
{
|
||||||
Collider* c = new BoxCollider();
|
Collider* c = new BoxCollider();
|
||||||
|
c->type = kBoxCollider;
|
||||||
c->Read(collider_union_xobj->At("box"));
|
c->Read(collider_union_xobj->At("box"));
|
||||||
colliders.push_back(c);
|
colliders.push_back(c);
|
||||||
}
|
}
|
||||||
@ -86,6 +91,7 @@ namespace mc
|
|||||||
case kMeshCollider:
|
case kMeshCollider:
|
||||||
{
|
{
|
||||||
Collider* c = new MeshCollider();
|
Collider* c = new MeshCollider();
|
||||||
|
c->type = kMeshCollider;
|
||||||
c->Read(collider_union_xobj->At("mesh"));
|
c->Read(collider_union_xobj->At("mesh"));
|
||||||
colliders.push_back(c);
|
colliders.push_back(c);
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,17 @@ namespace mc
|
|||||||
kMeshCollider = 2
|
kMeshCollider = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ColliderAssembly_e
|
||||||
|
{
|
||||||
|
kCA_Floor = 0,//地板
|
||||||
|
kCA_Wall = 1,//墙壁
|
||||||
|
kCA_Roof = 2,//屋顶
|
||||||
|
kCA_FloororRoof = 3,//屋顶+上层地板
|
||||||
|
kCA_stairs = 4,//楼梯
|
||||||
|
kCA_Window = 9,//窗,主要为了射击穿透
|
||||||
|
kCA_Other = 10,//其他,装饰品
|
||||||
|
};
|
||||||
|
|
||||||
struct Bounds
|
struct Bounds
|
||||||
{
|
{
|
||||||
glm::vec3 center = glm::vec3(0.0f, 0.0f, 0.0f);
|
glm::vec3 center = glm::vec3(0.0f, 0.0f, 0.0f);
|
||||||
@ -37,6 +48,7 @@ namespace mc
|
|||||||
struct Collider
|
struct Collider
|
||||||
{
|
{
|
||||||
int type = kNoneCollider;
|
int type = kNoneCollider;
|
||||||
|
int ca_type = 0;
|
||||||
bool enabled = false;
|
bool enabled = false;
|
||||||
bool is_trigger = false;
|
bool is_trigger = false;
|
||||||
Bounds bounds;
|
Bounds bounds;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user