feat(compat): made roblox xml level files load
This commit is contained in:
parent
5f6ff971d2
commit
6032237e42
4 changed files with 8 additions and 3 deletions
|
@ -47,8 +47,10 @@ void Variant::PushLuaValue(lua_State* state) const {
|
|||
|
||||
Variant Variant::Deserialize(pugi::xml_node node) {
|
||||
if (TYPE_MAP.count(node.name()) == 0) {
|
||||
Logger::fatalErrorf("Unknown type for property: '%s'", node.name());
|
||||
panic();
|
||||
// TODO: Make this soft-fail with a result value instead of panicking
|
||||
Logger::errorf("Unknown type for property: '%s'", node.name());
|
||||
// panic();
|
||||
return Variant();
|
||||
}
|
||||
|
||||
const TypeInfo* type = TYPE_MAP[node.name()];
|
||||
|
@ -59,6 +61,7 @@ std::map<std::string, const TypeInfo*> TYPE_MAP = {
|
|||
{ "null", &NULL_TYPE },
|
||||
{ "bool", &BOOL_TYPE },
|
||||
{ "int", &INT_TYPE },
|
||||
{ "token", &INT_TYPE },
|
||||
{ "float", &FLOAT_TYPE },
|
||||
{ "string", &STRING_TYPE },
|
||||
{ "Vector3", &Vector3::TYPE },
|
||||
|
|
|
@ -34,6 +34,7 @@ typedef std::variant<
|
|||
class Variant {
|
||||
__VARIANT_TYPE wrapped;
|
||||
public:
|
||||
inline Variant() : Variant(std::monostate()) {}
|
||||
template <typename T> Variant(T obj) : wrapped(obj) {}
|
||||
template <typename T> T get() { return std::get<T>(wrapped); }
|
||||
std::string ToString() const;
|
||||
|
|
|
@ -65,6 +65,7 @@ std::shared_ptr<DataModel> DataModel::LoadFromFile(std::string path) {
|
|||
doc.load(inStream);
|
||||
|
||||
pugi::xml_node rootNode = doc.child("openblocks");
|
||||
if (!rootNode) rootNode = doc.child("roblox");
|
||||
std::shared_ptr<DataModel> newModel = std::make_shared<DataModel>();
|
||||
RefStateDeserialize state = std::make_shared<__RefStateDeserialize>();
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ public:
|
|||
CFrame cframe;
|
||||
|
||||
DEF_PROP_CATEGORY(PART)
|
||||
DEF_PROP_(on_update=onUpdated) glm::vec3 size;
|
||||
DEF_PROP_(name="size", on_update=onUpdated) glm::vec3 size;
|
||||
|
||||
DEF_PROP_CATEGORY(APPEARANCE)
|
||||
DEF_PROP Color3 color;
|
||||
|
|
Loading…
Add table
Reference in a new issue