protected override void Save() { XMLAbstraction xml = new XMLAbstraction("Material"); xml.AddNode("Shader", shader.ID.ToString()); var uniformsNode = xml.AddNode("Uniforms"); foreach (Shader.Uniform u in Uniforms) { if (u.value != null) { var uniformNode = uniformsNode.AddNode("Uniform"); uniformNode.AddAttribute("name", u.name); uniformNode.AddAttribute("type", u.type.FullName); if (u.type.IsSubclassOf(typeof(Asset))) { TypeSerialization.SerializePrimitiveType((u.value as Asset).ID, uniformNode.node, xml.xml); } else { TypeSerialization.SerializeType(u.value, uniformNode.node, xml.xml); } } } xml.Save(Path); }
public static void WriteDatabase() { XMLAbstraction data = new XMLAbstraction("AssetDatabase"); //IDs var idsNode = data.AddNode("IDs"); idsNode.AddNode("CurrentID", currentID.ToString()); var deletedIDsNode = idsNode.AddNode("DeletedIDs"); foreach (int i in deletedIDs) { deletedIDsNode.AddNode("ID", i.ToString()); } //Assets var assetsNode = data.AddNode("Assets"); foreach (var a in atomicAssetsInProject) { var assetNode = assetsNode.AddNode("Asset"); assetNode.AddAttribute("path", a.Item1); assetNode.AddAttribute("type", a.Item2); assetNode.AddAttribute("id", a.Item3); } foreach (var a in composedAssetsInProject) { var assetNode = assetsNode.AddNode("Asset"); assetNode.AddAttribute("path", a.Item1); assetNode.AddAttribute("type", a.Item2); assetNode.AddAttribute("id", a.Item3); } data.Save("AssetDatabase.xml"); }
public static void WriteDatabase() { XMLAbstraction data = new XMLAbstraction("UserCodeDatabase"); var assembliesNode = data.AddNode("Assemblies"); foreach (string s in assemblyPaths) { assembliesNode.AddNode("Assembly", s); } data.Save("UserCodeDatabase.xml"); }
public static int CreateMaterial(string path) { XMLAbstraction mat = new XMLAbstraction("Material"); mat.Save(path); if (!Import(path)) { return(-1); } Logging.LogInfo("Asset Database", "Created and imported new material!"); WriteDatabase(); return(GetIDFromPath(path)); }
public void SaveScene(string path) { XMLAbstraction xml = new XMLAbstraction("Scene"); //IDs var iDsNode = xml.AddNode("IDs"); iDsNode.AddNode("CurrentID", currentID.ToString()); var deletedIDsNode = iDsNode.AddNode("DeletedIDs"); foreach (int i in deletedIDs) { deletedIDsNode.AddNode("ID", i.ToString()); } //Hierarchy var hierarchyNode = xml.AddNode("Hierarchy"); foreach (var e in hierarchy.root) { SaveEntity(e, hierarchyNode); } xml.Save(Path); }