void OnEnable() { _Data = Asset.Load(); CreateUI(); if (_Data != null) { if (_Data.Keys != null) { foreach (var item in _Data.Keys) { if (item != null) { AccessKeyListItem field = new AccessKeyListItem(this, item); field.UpdateName(); _ItemsList.Controls.Add(field); } } } } else { _ItemsList.Controls.Clear(); } if (_ItemsList.Controls.Count > 0) { _ItemsList.SelectedIndex = 0; } }
public SharedAccessKeysData Load() { SharedAccessKeysData data = null; if (!string.IsNullOrEmpty(XmlData)) { try { Skill.Framework.IO.XmlDocument document = new Framework.IO.XmlDocument(); document.LoadXml(XmlData); data = new SharedAccessKeysData(); data.Load(document.FirstChild); } catch (System.Exception ex) { data = null; Debug.LogException(ex, this); } } else { data = new SharedAccessKeysData(); data.Keys = new AccessKeyData[0]; Save(data); } data.Name = this.name; return(data); }
private void Build() { BehaviorTreeData bTree = _Data.Load(); if (bTree != null) { SharedAccessKeysData[] sharedAccessKeys = new SharedAccessKeysData[_Data.SharedKeys.Length]; for (int i = 0; i < _Data.SharedKeys.Length; i++) { if (_Data.SharedKeys[i] != null) { sharedAccessKeys[i] = _Data.SharedKeys[i].Load(); } } bool compiled = BehaviorTreeCompiler.Compile(bTree, sharedAccessKeys); if (compiled) { Builder.Build(bTree, _Data.BuildPath, _Data.name); } } else { Debug.LogError("Invalid SaveData"); } }
public static void Build(Skill.Editor.AI.SharedAccessKeysData keys, string localDir, string name) { ValidateGenerator(); _Generator.Reset(); _Generator.Generate(keys); CreateFile(_Generator, localDir, name); }
/// <summary> /// Generate code for SharedAccessKeys /// </summary> /// <param name="sharedAccessKeys">SharedAccessKeys</param> public void Generate(Skill.Editor.AI.SharedAccessKeysData sharedAccessKeys) { SharedAccessKeysClass saClass = new SharedAccessKeysClass(sharedAccessKeys); _Document.AddUsingSkillAI(); _Document.Add(saClass); HasPartial = false; }
public static bool Compile(SharedAccessKeysData data) { _ErrorFound = false; _Data = data; CheckForErrors(); _Data = null; return(!_ErrorFound); }
public void Save(SharedAccessKeysData data) { if (!this) { return; // if deleted } if (data == null) { return; } data.Name = this.name; Skill.Framework.IO.XmlDocument document = new Framework.IO.XmlDocument(); document.AppendChild(data.ToXmlElement()); XmlData = document.OuterXml; UnityEditor.EditorUtility.SetDirty(this); }
private static void CheckAccessKey(DecoratorData decorator) { if (decorator.Type == Framework.AI.DecoratorType.AccessLimit) { AccessLimitDecoratorData accessLimitDecorator = (AccessLimitDecoratorData)decorator; if (string.IsNullOrEmpty(accessLimitDecorator.AccessKey)) { Debug.LogError(string.Format("The provided AccessKey '{0}' for behavior node '{1}' does not exist.", accessLimitDecorator.AccessKey, accessLimitDecorator.Name)); _ErrorFound = true; return; } if (string.IsNullOrEmpty(accessLimitDecorator.ClassName)) { Debug.LogError(string.Format(" Invalid AccessKey for behavior node '{0}'", accessLimitDecorator.Name)); _ErrorFound = true; } else { SharedAccessKeysData ac = null; foreach (var item in _AccessKeys) { if (item != null) { if (item.Name == accessLimitDecorator.ClassName) { ac = item; break; } } } if (ac == null) { Debug.LogError(string.Format(" Invalid AccessKey for behavior node '{0}'", accessLimitDecorator.Name)); _ErrorFound = true; } else { if (ac.Keys.Count(c => c.Key == accessLimitDecorator.AccessKey) < 1) { Debug.LogError(string.Format("The provided AccessKey '{0}' for behavior node '{1}' does not exist.", accessLimitDecorator.AccessKey, accessLimitDecorator.Name)); _ErrorFound = true; } } } } }