public override object Load(XmlReader reader, ref Element current) { Dictionary <string, string> data = GameLoader.GetRequiredAttributes(reader, m_required); GameLoader.m_implicitTypes.Add(data["element"], data["property"], data["type"]); return(LoadInternal(data["element"], data["property"], data["type"])); }
private Element AddDelegate(XmlReader reader) { Dictionary <string, string> data = GameLoader.GetRequiredAttributes(reader, RequiredAttributes); Element del = WorldModel.AddDelegate(data["name"]); SetupProcedure(del, data["type"], GameLoader.GetTemplateContents(reader), data["name"], data["parameters"]); return(del); }
private Element AddProcedure(XmlReader reader) { Dictionary <string, string> data = GameLoader.GetRequiredAttributes(reader, RequiredAttributes); Element proc = ElementFactory.CreateFunction(data["name"]); SetupProcedure(proc, data["type"], GameLoader.GetTemplateContents(reader), data["name"], data["parameters"]); return(proc); }
protected object Load(XmlReader reader, ref Element current, string defaultName) { Dictionary <string, string> data = GameLoader.GetRequiredAttributes(reader, m_requiredAttributes); string pattern = data["pattern"]; string name = data["name"]; string template = data["template"]; bool anonymous = false; if (string.IsNullOrEmpty(name)) { name = defaultName; } if (string.IsNullOrEmpty(name)) { anonymous = true; name = GetUniqueCommandID(pattern); } Element newCommand = WorldModel.ObjectFactory.CreateCommand(name); if (anonymous) { newCommand.Fields[FieldDefinitions.Anonymous] = true; } if (current != null) { newCommand.Parent = (Element)current; } if (pattern != null) { newCommand.Fields[FieldDefinitions.Pattern] = pattern; } if (template != null) { LoadTemplate(newCommand, template); } string unresolved = data["unresolved"]; if (!string.IsNullOrEmpty(unresolved)) { newCommand.Fields[FieldDefinitions.Unresolved] = unresolved; } return(newCommand); }