Пример #1
0
 public MoveNode(
     IActorStateModel actorStateModel,
     AiMovementController aiMovementController)
 {
     _aiMovementController = aiMovementController;
     _blackBoard           = actorStateModel.Get <BlackBoardDataComponent>();
 }
        public EnterScreenNode(
            IActorStateModel actorStateModel,
            AiMovementController aiMovementController,
            ScreenSizeModel screenSizeModel)
        {
            _aiMovementController = aiMovementController;
            _screenSizeModel      = screenSizeModel;

            _originDataComponent    = actorStateModel.Get <OriginDataComponent>();
            _transformDataComponent = actorStateModel.Get <TransformDataComponent>();
        }
        public BehaviourTree Create(
            IActorStateModel actor,
            AiMovementController aiMovementController)
        {
            _actorStateModel      = actor;
            _aiMovementController = aiMovementController;
            _generatedNodes       = new List <IBehaviourTreeNode>();

            // @formatter:off
            var startNode = new BehaviourTreeBuilder()
                            .Selector()
                            .Splice(SpawningTree(actor))
                            .Splice(UnacquaintedTree(actor))
                            .Splice(NeutralTree(actor))
                            .Splice(FriendTree(actor))
                            .Splice(EnemyTree(actor))
                            .End()
                            .Build();

            // @formatter:on

            return(new BehaviourTree(startNode, _generatedNodes.ToArray()));
        }