public bool SetExtProperty(int x, int y, StageElement ele) { if (ele == StageElement.None) { return(false); } if (ele != StageElement.Target) { Debug.LogError(string.Format("unknown ExtProperty element({0},{1},{2})", x, y, (int)ele)); return(false); } int key = GetKey(x, y); if (key == -1) { Debug.LogError(string.Format("specified position is out of the map! ({0},{1})", x, y)); return(false); } if (!_data.ContainsKey(key)) { _data.Add(key, new StageNode()); } if (_data[key].ext_property != ele) { _data[key].ext_property = ele; return(true); } return(false); }
public bool LoadXML(string filename) { try { XmlDocument doc = new XmlDocument(); doc.Load(filename); XmlElement root = doc.DocumentElement; _max_xcount = Convert.ToInt32(root.GetAttribute("max_xcount")); _max_ycount = Convert.ToInt32(root.GetAttribute("max_ycount")); foreach (XmlElement node in root.ChildNodes) { int x = Convert.ToInt32(node.GetAttribute("x")); int y = Convert.ToInt32(node.GetAttribute("y")); StageElement ground = (StageElement)Convert.ToInt32(node.GetAttribute("ground")); StageElement entity = (StageElement)Convert.ToInt32(node.GetAttribute("entity")); StageElement ext_property = (StageElement)Convert.ToInt32(node.GetAttribute("ext_property")); SetGround(x, y, ground); SetEntity(x, y, entity); SetExtProperty(x, y, ext_property); } } catch (XmlException e) { Debug.LogError(e); return(false); } return(true); }
internal static string Serialize(AICanvas canvas) { var root = new StageElement( ElementName.Canvas, SerializationMaster.Stage(ElementName.Offset, canvas.offset), SerializationMaster.ToStageValue(ElementName.Zoom, canvas.zoom)); var views = canvas.views; int svCount = views.Count; for (int i = 0; i < svCount; i++) { var view = views[i]; StageElement viewElement; if (view is SelectorView) { viewElement = WriteSelectorView((SelectorView)view); } else if (view is AILinkView) { viewElement = WriteAILinkView((AILinkView)view); } else { throw new NotImplementedException("The view type has not been implemented for serialization."); } root.Add(viewElement); } return(SerializationMaster.Serialize(root)); }
public bool SetGround(int x, int y, StageElement ele) { if (ele == StageElement.None) { return(false); } if (ele != StageElement.Floor && ele != StageElement.Wall) { Debug.LogError(string.Format("unknown ground element({0},{1},{2})", x, y, (int)ele)); return(false); } int key = GetKey(x, y); if (key == -1) { Debug.LogError(string.Format("specified position is out of the map! ({0},{1})", x, y)); return(false); } if (!_data.ContainsKey(key)) { _data.Add(key, new StageNode()); } if (_data[key].ground != ele) { _data[key].ground = ele; return(true); } return(false); }
private static StageElement WriteSelectorView(SelectorView sv) { var sve = new StageElement( ElementName.SelectorView, SerializationMaster.Stage(ElementName.ViewArea, sv.viewArea)); sve.AddTextValue(ElementName.Name, sv.name); sve.AddTextValue(ElementName.Description, sv.description); var qualifierViews = sv.qualifierViews; int qvCount = qualifierViews.Count; for (int i = 0; i < qvCount; i++) { var qv = WriteQualifierView(qualifierViews[i]); sve.Add(qv); } var defQv = WriteQualifierView(sv.defaultQualifierView); sve.Add(defQv); return(sve); }
private static ActionView ReadActionView(StageElement ave, QualifierView parent) { var connectorType = ave.AttributeValueOrDefault <string>(AttributeName.ConnectorType, null); ActionView av; if (connectorType == ConnectorType.Selector) { av = new SelectorActionView(); } else if (connectorType == ConnectorType.AILink) { av = new AILinkActionView(); } else if (connectorType == ConnectorType.Composite) { av = new CompositeActionView(); } else { av = new ActionView(); } av.name = ave.ValueOrDefault <string>(ElementName.Name, null); av.description = ave.ValueOrDefault <string>(ElementName.Description, null); av.parent = parent; return(av); }
private static void DeserializeAction(StageElement aiElement, StageElement viewElement, AIUI targetUI) { var parent = targetUI.currentQualifier; if (parent == null) { EditorUtility.DisplayDialog("Invalid Action", "You must select a Qualifier before pasting an Action.", "Ok"); } else if (parent.actionView != null) { if (!EditorUtility.DisplayDialog("Confirm Replace", "The selected Qualifier already has an action, do you wish to replace it?", "Yes", "No")) { return; } } var requiresInit = new List <IInitializeAfterDeserialization>(); var actionView = ReadActionView(viewElement, parent); var action = SerializationMaster.Unstage <IAction>(aiElement, requiresInit); actionView.action = action; //Do the post deserialize initialization here if (requiresInit.Count == 1) { requiresInit[0].Initialize(targetUI.ai); } targetUI.SetAction(actionView, parent); parent.PruneBrokenConnections(); }
private static SelectorView ReadSelectorView(StageElement sve, AIUI parent) { var sv = new SelectorView { name = sve.ValueOrDefault <string>(ElementName.Name), description = sve.ValueOrDefault <string>(ElementName.Description), viewArea = sve.ValueOrDefault <Rect>(ElementName.ViewArea), parent = parent }; var defQv = sve.Element(ElementName.DefaultQualifier); sv.defaultQualifierView = defQv != null?ReadQualifierView(defQv, sv) : new QualifierView { parent = sv }; var qualifierViews = sve.Elements(ElementName.QualifierView); foreach (var qve in qualifierViews) { var qv = ReadQualifierView(qve, sv); sv.qualifierViews.Add(qv); } return(sv); }
public static StageElement createStageElement(StageGroup group, Form_Main form_MainT) { form_Main = form_MainT; element = new StageElement(group); SmallDialog_Stage dialog = new SmallDialog_Stage("新建场景",true); dialog.ShowDialog(); return element; }
public static StageElement createStageElement(StageGroup group, Form_Main form_MainT) { form_Main = form_MainT; element = new StageElement(group); SmallDialog_Stage dialog = new SmallDialog_Stage("新建场景", true); dialog.ShowDialog(); return(element); }
/// <summary> /// get the stage text /// </summary> /// <returns>text</returns> public string GetStage() { StageElement.Wait(2); if (Driver.GetType() == typeof(DummyDriver)) { StageElement.Text = FakeText; } return(StageElement.Text); }
private void ParseElement(string name) { StageElement stageElement = new StageElement(name); if (this._curRoot != null) { this._curRoot.Add(stageElement); } this._curRoot = stageElement; while (this._idx < this._length) { char chr = this._s[this._idx]; if (chr > ' ') { if (chr == ',') { goto Label0; } if (chr == '}') { this._curRoot = this._curRoot.parent ?? this._curRoot; return; } } else { switch (chr) { case '\t': case '\n': case '\f': case '\r': { goto Label0; } case '\v': { break; } default: { if (chr == ' ') { goto Label0; } break; } } } this.ParseItem(); Label0: this._idx++; } }
public string Serialize(StageItem item, bool pretty) { StageElement stageElement = item as StageElement; if (stageElement == null) { throw new ArgumentException("Only StageElements can serve as the root of a serialized graph."); } return((new StagedToJson(pretty)).Serialize(stageElement)); }
private void WriteElement(StageElement element) { bool separate = false; _json.WriteElementStart(); foreach (var a in element.Attributes()) { if (separate) { _json.WriteSeparator(); } else { separate = true; } _json.WriteAttributeLabel(a); _json.WriteValue(a); } foreach (var item in element.Items()) { if (separate) { _json.WriteSeparator(); } else { separate = true; } _json.WriteLabel(item); if (item is StageValue) { _json.WriteValue((StageValue)item); } else if (item is StageElement) { WriteElement((StageElement)item); } else if (item is StageList) { WriteList((StageList)item); } else if (item is StageNull) { _json.WriteNull((StageNull)item); } } _json.WriteElementEnd(); }
//设置地图单元 public static void configMapElement(StageElement elementT, Form_Main form_MainT) { form_Main = form_MainT; if (elementT == null) { Console.WriteLine("error in configMapElement"); return; } element = elementT; SmallDialog_Stage dialog = new SmallDialog_Stage("设置场景",false); dialog.ShowDialog(); }
private static StageElement WriteAILinkView(AILinkView lv) { var lve = new StageElement( ElementName.AILinkView, SerializationMaster.Stage(ElementName.ViewArea, lv.viewArea), SerializationMaster.ToStageAttribute(AttributeName.Id, lv.aiId)); lve.AddTextValue(ElementName.Name, lv.name); lve.AddTextValue(ElementName.Description, lv.description); return(lve); }
public StageItem StageValue(string name, object value) { Keyframe[] keyframeArray = ((AnimationCurve)value).keys; StageElement stageElement = new StageElement(name); for (int i = 0; i < (int)keyframeArray.Length; i++) { Keyframe keyframe = keyframeArray[i]; stageElement.Add(new StageElement("key", new StageItem[] { SerializationMaster.ToStageAttribute("time", keyframe.time), SerializationMaster.ToStageAttribute("value", keyframe.@value), SerializationMaster.ToStageAttribute("inTangent", keyframe.inTangent), SerializationMaster.ToStageAttribute("outTangent", keyframe.outTangent), SerializationMaster.ToStageAttribute("tangentMode", keyframe.tangentMode) })); } return(stageElement); }
FoundryHandle BuildStageElement(StageElement stageElement) { var blockInstanceHandle = stageElement.BlockInstance; var customizationPointHandle = stageElement.CustomizationPoint; var stageElementInternal = new TemplatePassStageElementInternal() { m_BlockInstanceHandle = blockInstanceHandle.handle, m_CustomizationPointHandle = customizationPointHandle.handle, }; return(container.AddTemplatePassStageElementInternal(stageElementInternal)); }
private void WriteElement(StageElement element) { bool flag = false; this._json.WriteElementStart(); foreach (StageAttribute stageAttribute in element.Attributes()) { if (!flag) { flag = true; } else { this._json.WriteSeparator(); } this._json.WriteAttributeLabel(stageAttribute); this._json.WriteValue(stageAttribute); } foreach (StageItem stageItem in element.Items()) { if (!flag) { flag = true; } else { this._json.WriteSeparator(); } this._json.WriteLabel(stageItem); if (stageItem is StageValue) { this._json.WriteValue((StageValue)stageItem); } else if (stageItem is StageElement) { this.WriteElement((StageElement)stageItem); } else if (!(stageItem is StageList)) { if (!(stageItem is StageNull)) { continue; } this._json.WriteNull((StageNull)stageItem); } else { this.WriteList((StageList)stageItem); } } this._json.WriteElementEnd(); }
private static AILinkView ReadAILinkView(StageElement lve, AIUI parent) { var lv = new AILinkView { name = lve.ValueOrDefault <string>(ElementName.Name), description = lve.ValueOrDefault <string>(ElementName.Description), viewArea = lve.ValueOrDefault <Rect>(ElementName.ViewArea), aiId = lve.AttributeValue <Guid>(AttributeName.Id), parent = parent }; return(lv); }
//设置地图单元 public static void configMapElement(StageElement elementT, Form_Main form_MainT) { form_Main = form_MainT; if (elementT == null) { Console.WriteLine("error in configMapElement"); return; } element = elementT; SmallDialog_Stage dialog = new SmallDialog_Stage("设置场景", false); dialog.ShowDialog(); }
internal static string Serialize(IList <TopLevelView> items) { var aiPart = new StageElement(ElementName.AIPart); var uiPart = new StageElement(ElementName.UIPart); var root = new StageElement(ElementName.ViewSnippet, aiPart, uiPart); root.AddTextAttribute(AttributeName.SnippetType, ElementName.ViewSnippet); var referencePos = new Vector2(float.MaxValue, float.MaxValue); for (int i = 0; i < items.Count; i++) { var view = items[i]; var selectorView = view as SelectorView; if (selectorView != null) { var item = selectorView.selector; var aiItem = SerializationMaster.Stage(typeof(Selector).Name, item); aiPart.Add(aiItem); var viewItem = WriteSelectorView(selectorView); uiPart.Add(viewItem); //Even though reid also happens on paste we have to do it here as well, otherwise copying linked selectors will fail. item.RegenerateId(); } var linkView = view as AILinkView; if (linkView != null) { var viewItem = WriteAILinkView(linkView); uiPart.Add(viewItem); } if (view.viewArea.xMin < referencePos.x) { referencePos.x = view.viewArea.xMin; } if (view.viewArea.yMin < referencePos.y) { referencePos.y = view.viewArea.yMin; } } uiPart.AddValue(ElementName.ReferencePosition, referencePos); return(SerializationMaster.Serialize(root)); }
public object UnstageValue(StageItem item, Type targetType) { StageElement[] array = ((StageList)item).Elements().ToArray <StageElement>(); Type[] genericArguments = targetType.GetGenericArguments(); Type type = genericArguments[0]; Type type1 = genericArguments[1]; IDictionary dictionaries = Activator.CreateInstance(targetType, new object[] { (int)array.Length }) as IDictionary; for (int i = 0; i < (int)array.Length; i++) { StageElement stageElement = array[i]; object obj = SerializationMaster.Unstage(stageElement.Item("key"), type); object obj1 = SerializationMaster.Unstage(stageElement.Item("value"), type1); dictionaries.Add(obj, obj1); } return(dictionaries); }
internal static string Serialize(QualifierView qualifier) { var aiPart = new StageElement(ElementName.AIPart); var uiPart = new StageElement(ElementName.UIPart); var root = new StageElement(ElementName.QualifierSnippet, aiPart, uiPart); root.AddTextAttribute(AttributeName.SnippetType, ElementName.QualifierSnippet); var aiItem = SerializationMaster.Stage(ElementName.Qualifier, qualifier.qualifier); aiPart.Add(aiItem); var viewItem = WriteQualifierView(qualifier); uiPart.Add(viewItem); return(SerializationMaster.Serialize(root)); }
private static StageElement WriteQualifierView(QualifierView qv) { var name = qv.isDefault ? ElementName.DefaultQualifier : ElementName.QualifierView; var qve = new StageElement(name); qve.AddTextValue(ElementName.Name, qv.name); qve.AddTextValue(ElementName.Description, qv.description); var av = qv.actionView; if (av != null) { var ae = WriteActionView(av); qve.Add(ae); } return(qve); }
/// <summary> /// Stages the value. /// </summary> /// <param name="name">The name to give the resulting <see cref="StageItem" />.</param> /// <param name="value">The value to stage</param> /// <returns> /// The element containing the staged value. /// </returns> public StageItem StageValue(string name, object value) { var dic = value as IDictionary; var count = dic.Count; var listElement = new StageList(name); foreach (var key in dic.Keys) { var item = new StageElement( string.Empty, SerializationMaster.Stage("key", key), SerializationMaster.Stage("value", dic[key])); listElement.Add(item); } return(listElement); }
private static QualifierView ReadQualifierView(StageElement qve, SelectorView parent) { var qv = new QualifierView { name = qve.ValueOrDefault <string>(ElementName.Name, null), description = qve.ValueOrDefault <string>(ElementName.Description, null), parent = parent }; var ave = qve.Element(ElementName.ActionView); if (ave != null) { qv.actionView = ReadActionView(ave, qv); } return(qv); }
internal static string Serialize(ActionView action) { var aiPart = new StageElement(ElementName.AIPart); var uiPart = new StageElement(ElementName.UIPart); var root = new StageElement(ElementName.ActionSnippet, aiPart, uiPart); root.AddTextAttribute(AttributeName.SnippetType, ElementName.ActionSnippet); var aiItem = SerializationMaster.Stage(ElementName.Action, action.action); aiPart.Add(aiItem); var viewItem = WriteActionView(action); uiPart.Add(viewItem); return(SerializationMaster.Serialize(root)); }
private void ParseElement(string name) { var el = new StageElement(name); if (_curRoot != null) { _curRoot.Add(el); } _curRoot = el; for (; _idx < _length; _idx++) { var c = _s[_idx]; switch (c) { case ',': case ' ': case '\t': case '\n': case '\r': case '\f': { /* Skip white space and item separator */ break; } case '}': { _curRoot = _curRoot.parent ?? _curRoot; return; } default: { ParseItem(); break; } } } }
private static StageElement WriteActionView(ActionView av) { var ae = new StageElement(ElementName.ActionView); ae.AddTextValue(ElementName.Name, av.name); ae.AddTextValue(ElementName.Description, av.description); if (av is SelectorActionView) { ae.AddAttribute(AttributeName.ConnectorType, ConnectorType.Selector); } else if (av is AILinkActionView) { ae.AddAttribute(AttributeName.ConnectorType, ConnectorType.AILink); } else if (av is CompositeActionView) { ae.AddAttribute(AttributeName.ConnectorType, ConnectorType.Composite); } return(ae); }
/// <summary> /// Stages the value. /// </summary> /// <param name="name">The name to give the resulting <see cref="StageItem" />.</param> /// <param name="value">The value to stage</param> /// <returns> /// The element containing the staged value. /// </returns> public StageItem StageValue(string name, object value) { var val = (AnimationCurve)value; var keys = val.keys; var curveElement = new StageElement(name); for (int i = 0; i < keys.Length; i++) { var key = keys[i]; var item = new StageElement( "key", SerializationMaster.ToStageAttribute("time", key.time), SerializationMaster.ToStageAttribute("value", key.value), SerializationMaster.ToStageAttribute("inTangent", key.inTangent), SerializationMaster.ToStageAttribute("outTangent", key.outTangent), SerializationMaster.ToStageAttribute("tangentMode", key.tangentMode)); curveElement.Add(item); } return(curveElement); }
private static void DeserializeQualifier(StageElement aiElement, StageElement viewElement, AIUI targetUI) { var parent = targetUI.currentSelector; if (parent == null) { EditorUtility.DisplayDialog("Invalid Action", "You must select a Selector before pasting a Qualifier.", "Ok"); } var requiresInit = new List <IInitializeAfterDeserialization>(); var qualifierView = ReadQualifierView(viewElement, parent); var qualifier = SerializationMaster.Unstage <IQualifier>(aiElement, requiresInit); qualifierView.Reconnect(qualifier); //Do the post deserialize initialization here if (requiresInit.Count == 1) { requiresInit[0].Initialize(targetUI.ai); } qualifierView.PruneBrokenConnections(); if (qualifierView.isDefault) { if (EditorUtility.DisplayDialog("Confirm Replacement", "Do you wish to replace the current Default Qualifier?", "Yes", "No")) { targetUI.ReplaceDefaultQualifier(qualifierView, parent); } } else { targetUI.AddQualifier(qualifierView, parent); } }