public void WithWrongDescriptorValidatorFalseTest() { Descriptor descRight = ScriptableObject.CreateInstance <Descriptor>(); descRight.name = "DescriptorRight"; Descriptor descWrong = ScriptableObject.CreateInstance <Descriptor>(); descWrong.name = "DescriptorWrong"; DescriptorValidator val = ScriptableObject.CreateInstance <DescriptorValidator>(); val.descriptor = descWrong; GameObject obj = new GameObject(); Item item = obj.AddComponent <Item>(); item.Descriptors.Add(descRight); Assert.IsFalse(val.ValidateItem(item)); CleanUpScene(); ScriptableObject.DestroyImmediate(descRight); ScriptableObject.DestroyImmediate(descWrong); ScriptableObject.DestroyImmediate(val); }
public void SubDescriptorValidatorFalseTest() { // Child is accepted by Parent Validtor // Parent // \- Child // // Goblin Chief // \- Goblin Descriptor descParent = ScriptableObject.CreateInstance <Descriptor>(); descParent.name = "DescriptorParent"; Descriptor descChild = ScriptableObject.CreateInstance <Descriptor>(); descChild.name = "DescriptorChild"; descParent.children.Add(descChild); DescriptorValidator val = ScriptableObject.CreateInstance <DescriptorValidator>(); val.descriptor = descChild; GameObject obj = new GameObject(); Item item = obj.AddComponent <Item>(); item.Descriptors.Add(descParent); Assert.IsTrue(val.ValidateItem(item)); CleanUpScene(); ScriptableObject.DestroyImmediate(descChild); ScriptableObject.DestroyImmediate(descParent); ScriptableObject.DestroyImmediate(val); }
public void CombinationIsInitTwoTest() { Descriptor desc = ScriptableObject.CreateInstance <Descriptor>(); desc.name = "Descriptor"; DescriptorValidator descVal = ScriptableObject.CreateInstance <DescriptorValidator>(); descVal.descriptor = desc; ItemValidator itemVal = ScriptableObject.CreateInstance <ItemValidator>(); itemVal.name = "Item"; Combination comb = ScriptableObject.CreateInstance <Combination>(); comb.itemValidator1 = descVal; comb.itemValidator2 = itemVal; bool isInit = comb.IsInitialized(); Assert.IsTrue(isInit); ScriptableObject.DestroyImmediate(comb); ScriptableObject.DestroyImmediate(itemVal); ScriptableObject.DestroyImmediate(descVal); ScriptableObject.DestroyImmediate(desc); }
public void CombinationEventTest() { Descriptor desc = ScriptableObject.CreateInstance <Descriptor>(); desc.name = "Descriptor"; DescriptorValidator descVal = ScriptableObject.CreateInstance <DescriptorValidator>(); descVal.descriptor = desc; ItemValidator itemVal = ScriptableObject.CreateInstance <ItemValidator>(); itemVal.name = "Item"; GameObject obj1 = new GameObject(); Item item1 = obj1.AddComponent <Item>(); item1.Descriptors.Add(desc); GameObject obj2 = new GameObject(); Item item2 = obj2.AddComponent <Item>(); item2.name = "Item"; Combination comb = ScriptableObject.CreateInstance <Combination>(); comb.itemValidator1 = descVal; comb.itemValidator2 = itemVal; bool success = false; comb.Subscribe(new CombinationEventHandler(() => success = true)); if (comb.IsMatch(item1, item2)) { comb.Execute(item1, item2); } Assert.IsTrue(success); CleanUpScene(); ScriptableObject.DestroyImmediate(comb); ScriptableObject.DestroyImmediate(itemVal); ScriptableObject.DestroyImmediate(descVal); ScriptableObject.DestroyImmediate(desc); }
public void DescriptorValidatorTrueTest() { Descriptor desc = ScriptableObject.CreateInstance <Descriptor>(); desc.name = "DescriptorTest"; DescriptorValidator val = ScriptableObject.CreateInstance <DescriptorValidator>(); val.descriptor = desc; GameObject obj = new GameObject(); Item item = obj.AddComponent <Item>(); item.Descriptors.Add(desc); Assert.IsTrue(val.ValidateItem(item)); CleanUpScene(); ScriptableObject.DestroyImmediate(desc); ScriptableObject.DestroyImmediate(val); }
public void WithoutDescriptorValidatorFalseTest() { Descriptor desc = ScriptableObject.CreateInstance <Descriptor>(); desc.name = "DescriptorTest"; DescriptorValidator val = ScriptableObject.CreateInstance <DescriptorValidator>(); val.descriptor = desc; GameObject obj = new GameObject(); Item item = obj.AddComponent <Item>(); //item.Descriptors.Add(descWrong); //Desciptor is NOT added Assert.IsFalse(val.ValidateItem(item)); CleanUpScene(); ScriptableObject.DestroyImmediate(desc); ScriptableObject.DestroyImmediate(val); }
public void CombinationIsInitOtherOneTest() { Descriptor desc = ScriptableObject.CreateInstance <Descriptor>(); desc.name = "Descriptor"; DescriptorValidator descVal = ScriptableObject.CreateInstance <DescriptorValidator>(); descVal.descriptor = desc; Combination comb = ScriptableObject.CreateInstance <Combination>(); comb.itemValidator2 = descVal; bool isInit = comb.IsInitialized(); Assert.IsFalse(isInit); ScriptableObject.DestroyImmediate(comb); ScriptableObject.DestroyImmediate(descVal); ScriptableObject.DestroyImmediate(desc); }
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { AssetDatabase.Refresh(); List <string> pathsVisited = new List <string>(); for (int i = 0; i < movedAssets.Length; i++) { //Debug.Log("Moved Asset: " + movedAssets[i] + " from: " + movedFromAssetPaths[i]); if (movedAssets[i].Contains("/Descriptors/") && movedFromAssetPaths[i].Contains("/Descriptors/")) { int startIndex = movedAssets[i].LastIndexOf('/') + 1; string filename = movedAssets[i].Substring(startIndex, movedAssets[i].Length - startIndex - 6); int startIndexOld = movedFromAssetPaths[i].LastIndexOf('/') + 1; string filenameOld = movedFromAssetPaths[i].Substring(startIndexOld, movedFromAssetPaths[i].Length - startIndexOld - 6); AssetDatabase.RenameAsset("Assets/Resources/Validators/" + filenameOld + ".asset", filename); pathsVisited.Add(movedAssets[i]); Debug.Log("DescriptorValidator " + filenameOld + " renamed to " + filename); } } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); foreach (string str in deletedAssets) { if (str.Contains("/Descriptors/")) { int startIndex = str.LastIndexOf('/') + 1; string filename = str.Substring(startIndex, str.Length - startIndex - 6); DescriptorValidator val = AssetDatabase.LoadAssetAtPath <DescriptorValidator>("Assets/Resources/Validators/" + filename + ".asset"); if (val != null) { AssetDatabase.DeleteAsset("Assets/Resources/Validators/" + filename + ".asset"); Debug.Log("Delted DescriptorValidator " + filename); } } } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); foreach (string str in importedAssets) { if (pathsVisited.Contains(str)) { continue; } if (str.Contains("/Descriptors/")) { int startIndex = str.LastIndexOf('/') + 1; string filename = str.Substring(startIndex, str.Length - startIndex - 6); Descriptor des = AssetDatabase.LoadAssetAtPath <Descriptor>("Assets/Resources/Descriptors/" + filename + ".asset"); DescriptorValidator val = AssetDatabase.LoadAssetAtPath <DescriptorValidator>("Assets/Resources/Validators/" + filename + ".asset"); if (val == null) { DescriptorValidator newVal = DescriptorValidator.CreateInstance <DescriptorValidator>(); newVal.descriptor = des; AssetDatabase.CreateAsset(newVal, "Assets/Resources/Validators/" + filename + ".asset"); Debug.Log("DescriptorValidator " + filename + " created"); } else if (val.descriptor != des) { val.descriptor = des; Debug.Log("DescriptorValidator " + filename + " updated"); } } } AssetDatabase.SaveAssets(); }