63 lines
1.6 KiB
C++
63 lines
1.6 KiB
C++
#include "precompile.h"
|
|
|
|
#include <a8/xobject.h>
|
|
|
|
#include "mt/MapCollider.h"
|
|
#include "mt/MetaMgr.h"
|
|
|
|
std::vector<mt::MapCollider*> mt::MapCollider::raw_list;
|
|
std::map<std::string, mt::MapCollider*> mt::MapCollider::name_hash;
|
|
|
|
namespace mt
|
|
{
|
|
|
|
MapCollider* MapCollider::GetByName(const std::string& name)
|
|
{
|
|
auto itr = name_hash.find(name);
|
|
return itr != name_hash.end() ? itr->second : nullptr;
|
|
}
|
|
|
|
void MapCollider::StaticPostInit()
|
|
{
|
|
|
|
}
|
|
|
|
void MapCollider::LoadAll()
|
|
{
|
|
std::vector<std::string> files = {
|
|
"main3d_map.colliders.json"
|
|
};
|
|
for (auto& filename : files) {
|
|
MapCollider* p = new MapCollider();
|
|
p->Load(filename);
|
|
raw_list.push_back(p);
|
|
name_hash[filename] = p;
|
|
}
|
|
}
|
|
|
|
void MapCollider::Load(const std::string& filename)
|
|
{
|
|
#if 0
|
|
a8::XObject xobj_root;
|
|
xobj_root.ReadFromFile(MetaMgr::Instance()->GetResDir() + filename);
|
|
auto xobj_nodes = xobj_root.At("nodes");
|
|
for (int i = 0; i < xobj_nodes->Size(); ++i) {
|
|
auto xobj_node = xobj_nodes->At(i);
|
|
mc::ColliderNode* node = new mc::ColliderNode();
|
|
node->Read(xobj_node);
|
|
if (nodes_.find(node->name) != nodes_.end()) {
|
|
abort();
|
|
}
|
|
nodes_[node->name] = node;
|
|
}
|
|
#endif
|
|
}
|
|
|
|
mc::ColliderNode* MapCollider::GetNode(const std::string& name)
|
|
{
|
|
auto itr = nodes_.find(name);
|
|
return itr != nodes_.end() ? itr->second : nullptr;
|
|
}
|
|
|
|
}
|