public Decorator Create(DecoratorType type) { Decorator decorator = null; switch (type) { case DecoratorType.Not: decorator = new NotDecorator(); break; case DecoratorType.False: decorator = new FalseDecorator(); break; case DecoratorType.True: decorator = new TrueDecorator(); break; default: Debug.Assert(false, "未定義のデコレータータイプ"); break; } if (decorator != null) { decorator.Init(decoratorIdSeed); Register(decoratorIdSeed, decorator); decoratorIdSeed += 1; } return(decorator); }
public INode CreateRandomSelectorTest() { NodeFactory factory = FactoryManager.Instance.GetFactory <NodeFactory>(FactoryType.Node); ConditionFactory conditionFactory = FactoryManager.Instance.GetFactory <ConditionFactory>(FactoryType.Condition); DecoratorFactory decoratorFactory = FactoryManager.Instance.GetFactory <DecoratorFactory>(FactoryType.Decorator); var rootNode = factory.Create <RootNode>(NodeType.Root); RandomSelectorNode randomSelectorNode = factory.Create <RandomSelectorNode>(NodeType.RandomSelector); DecoratorNode decoratorNode = factory.Create <DecoratorNode>(NodeType.Decorator); FalseDecorator not = decoratorFactory.Create <FalseDecorator>(DecoratorType.False); decoratorNode.SetDecoratable(not); var actionNode1 = CreateSampleActionNode1(); var actionNode2 = CreateSampleActionNode1(); var actionNode3 = CreateSampleActionNode2(); randomSelectorNode.AddNode(actionNode1); randomSelectorNode.AddNode(actionNode2); decoratorNode.AddNode(actionNode3); randomSelectorNode.AddNode(decoratorNode); rootNode.AddNode(randomSelectorNode); return(rootNode); }