Esempio n. 1
0
        public void AddRemoveNodeTest()
        {
            var root      = CoreAI_BT.InitRootNode(null, null, null);
            var childName = "if_inspire_available__maybe_inspire";

            var foundChild = root.FindChildByName(childName, out var foundParent);

            Assert.IsNotNull(foundChild);
            Assert.AreEqual(root, foundParent);

            var removedChild = root.RemoveChildByName(childName);

            Assert.IsNotNull(removedChild);
            Assert.AreEqual(foundChild, removedChild);

            Assert.IsNull(root.FindChildByName(childName, out _));

            var parentName = "free_engage";
            var hasAdded   = root.AddNode(removedChild, parentName, "lanceDetectsEnemies0000", true);

            Assert.IsTrue(hasAdded);
            Assert.AreEqual(removedChild, root.FindChildByName(childName, out var addedParent));
            Assert.AreEqual(parentName, addedParent.GetName());
            Assert.AreEqual(0, (addedParent as CompositeBehaviorNode)?.Children.FindIndex(child => child.Equals(removedChild)));
        }
Esempio n. 2
0
        public void FindNonPresentChild()
        {
            var root       = CoreAI_BT.InitRootNode(null, null, null);
            var foundChild = root.FindChildByName("NOT HERE", out var foundParent);

            Assert.IsNull(foundParent);
            Assert.IsNull(foundChild);
        }
Esempio n. 3
0
        public void SerializeDeserializeRepReserializeTest()
        {
            var root = CoreAI_BT.InitRootNode(null, null, null);

            var repFirst  = BehaviorNodeDef.FromNode(root);
            var jsonFirst = repFirst.ToJSONString();

            var repSecond  = SerializeUtil.FromJSON <BehaviorNodeDef>(jsonFirst);
            var jsonSecond = repSecond.ToJSONString();

            Assert.AreEqual(jsonFirst, jsonSecond);
        }
Esempio n. 4
0
        public void FindPresentChildUnderCompositeNode()
        {
            var root = CoreAI_BT.InitRootNode(null, null, null) as CompositeBehaviorNode;

            var foundChild = root.FindChildByName("isShutdown0000", out var foundParent);

            var realParent = root?.Children.Find(node => node.GetName() == "if_shutdown__restart") as CompositeBehaviorNode;
            var realChild  = realParent?.Children.Find(node => node.GetName() == "isShutdown0000");

            Assert.AreEqual(realChild, foundChild);
            Assert.AreEqual(realParent, foundParent);
        }
Esempio n. 5
0
        public void FindPresentChildUnderDecoratorNode()
        {
            var root = CoreAI_BT.InitRootNode(null, null, null) as CompositeBehaviorNode;

            var foundChild = root.FindChildByName("sequence0000", out var foundParent);

            var realParentParent = root?.Children.Find(node => node.GetName() == "startup_cleanup") as DecoratorBehaviorNode;
            var realParent       = realParentParent?.ChildNode as DecoratorBehaviorNode;
            var realChild        = realParent?.ChildNode;

            Assert.AreEqual(realChild, foundChild);
            Assert.AreEqual(realParent, foundParent);
        }
Esempio n. 6
0
        public void SimpleAddNodeTest()
        {
            var root     = CoreAI_BT.InitRootNode(null, null, null);
            var name     = "braceNodeTest";
            var typeName = "BraceNode";

            var leaf = BehaviorNodeFactory.CreateBehaviorNode(typeName, name, null, null);

            Assert.IsNull(root.FindChildByName(name, out _));

            root.AddNode(leaf, "core_AI_root", "startup_cleanup");
            var foundNode = root.FindChildByName(name, out var foundParent);

            Assert.AreEqual(leaf, foundNode);
            Assert.AreEqual(root, foundParent);
            Assert.IsInstanceOfType(foundNode, AccessTools.TypeByName(typeName));
            Assert.AreEqual(1, (foundParent as CompositeBehaviorNode)?.Children.IndexOf(foundNode));
        }
Esempio n. 7
0
        public static void DumpTrees(DumpType type)
        {
            var dirPath = Path.Combine(Main.Directory, "_Dump");

            if (!Directory.Exists(dirPath))
            {
                Directory.CreateDirectory(dirPath);
            }

            DumpTree(AlwaysPass_BT.InitRootNode(null, null, null), dirPath, "AlwaysPass_BT", type);
            DumpTree(CoreAI_BT.InitRootNode(null, null, null), dirPath, "CoreAI_BT", type);
            DumpTree(PatrolAI_BT.InitRootNode(null, null, null), dirPath, "PatrolAI_BT", type);
            DumpTree(FleeAI_BT.InitRootNode(null, null, null), dirPath, "FleeAI_BT", type);
            DumpTree(PatrolAndShoot_BT.InitRootNode(null, null, null), dirPath, "PatrolAndShoot_BT", type);
            DumpTree(TutorialSprint_BT.InitRootNode(null, null, null), dirPath, "TutorialSprint_BT", type);
            DumpTree(PatrolOppAI_BT.InitRootNode(null, null, null), dirPath, "PatrolOppAI_BT", type);
            DumpTree(PanzyrAI_BT.InitRootNode(null, null, null), dirPath, "PanzyrAI_BT", type);
        }
Esempio n. 8
0
        public void RemoveChildFromDecoratorNode()
        {
            var root      = CoreAI_BT.InitRootNode(null, null, null);
            var childName = "clearSensorLock0000";

            var foundChild = root.FindChildByName(childName, out var foundParent);

            Assert.IsNotNull(foundChild);
            Assert.IsNotNull(foundParent);

            var removed = root.RemoveChildByName(childName);

            Assert.IsNotNull(removed);
            Assert.AreEqual(foundChild, removed);

            var notFound = root.FindChildByName(childName, out var notFoundParent);

            Assert.IsNull(notFound);
            Assert.IsNull(notFoundParent);

            Assert.IsNotNull(root.FindChildByName(foundParent.GetName(), out _));
        }
Esempio n. 9
0
        public void RemoveChildFromCompositeByNameTest()
        {
            var root      = CoreAI_BT.InitRootNode(null, null, null);
            var childName = "canMove";

            var foundChild = root.FindChildByName(childName, out var foundParent);

            Assert.IsNotNull(foundChild);
            Assert.IsNotNull(foundParent);

            var removed = root.RemoveChildByName(childName);

            Assert.IsNotNull(removed);
            Assert.AreEqual(foundChild, removed);

            var notFound = root.FindChildByName(childName, out var notFoundParent);

            Assert.IsNull(notFound);
            Assert.IsNull(notFoundParent);

            var parent = root.FindChildByName(foundParent.GetName(), out _);

            Assert.IsNotNull(parent);
        }