]> git.localhorst.tv Git - blobs.git/blobdiff - src/app/app.cpp
ingest forgein materials
[blobs.git] / src / app / app.cpp
index 913f9f265dc7cffbf7228b24402bb5d621696555..f847a79176701f174a60bdaf323b5efda252320f 100644 (file)
@@ -269,6 +269,24 @@ void Assets::ReadResources(io::TokenStreamReader &in) {
                                }
                        } else if (name == "base_color") {
                                in.ReadVec(data.resources[id].base_color);
+                       } else if (name == "compatibility") {
+                               in.Skip(io::Token::ANGLE_BRACKET_OPEN);
+                               while (in.Peek().type != io::Token::ANGLE_BRACKET_CLOSE) {
+                                       in.ReadIdentifier(name);
+                                       int sub_id = 0;
+                                       if (data.resources.Has(name)) {
+                                               sub_id = data.resources[name].id;
+                                       } else {
+                                               world::Resource res;
+                                               res.name = name;
+                                               sub_id = data.resources.Add(res);
+                                       }
+                                       in.Skip(io::Token::COLON);
+                                       double value = in.GetDouble();
+                                       in.Skip(io::Token::SEMICOLON);
+                                       data.resources[id].compatibility[sub_id] = value;
+                               }
+                               in.Skip(io::Token::ANGLE_BRACKET_CLOSE);
                        } else {
                                throw std::runtime_error("unknown resource property '" + name + "'");
                        }