Beispiel #1
0
        public void Initialize()
        {
            IsOwner = ReferenceEquals(Source, null);

            // make this a bit faster
            Behaviours = UnityObject.GetComponentsInChildren(typeof(IEntityBehaviour)).Select(x => x as IEntityBehaviour).Where(x => x != null).ToArray();

            // assign usertokens
            UnityObject.entity = this;

            // try to find a priority calculator
            var calculators = UnityObject.GetComponentsInChildren(typeof(IPriorityCalculator), true);

            foreach (IPriorityCalculator calculator in calculators)
            {
                var parent = ((MonoBehaviour)(object)calculator).GetComponentInParent <AscensionEntity>();

                if (parent && ReferenceEquals(parent.entity, this))
                {
                    PriorityCalculator = calculator;
                    break;
                }
            }

            // use the default priority calculator if none is available
            if (PriorityCalculator == null)
            {
                PriorityCalculator = this;
            }

            // find replication filter
            var filters = UnityObject.GetComponentsInChildren(typeof(IEntityReplicationFilter), true);

            foreach (IEntityReplicationFilter filter in filters)
            {
                var parent = ((MonoBehaviour)(object)filter).GetComponentInParent <AscensionEntity>();

                if (parent && ReferenceEquals(parent.entity, this))
                {
                    ReplicationFilter = filter;
                    break;
                }
            }

            // use the default replication filter if none is available
            if (ReplicationFilter == null)
            {
                ReplicationFilter = this;
            }

            // call into serializer
            Serializer.OnInitialized();

            // call to behaviours (this happens BEFORE attached)
            foreach (IEntityBehaviour eb in Behaviours)
            {
                eb.Initialized();
            }
        }
Beispiel #2
0
 public FinalResultCalculator(IPriorityCalculator priorityCalculator, IAlternativeService alternativeService, IMatrixCreator matrixCreator, IDataPreparation dataPreparation, ICriteriaService criteriaService)
 {
     this.PriorityCalculator = priorityCalculator;
     this.MatrixCreator      = matrixCreator;
     this.DataPreparation    = dataPreparation;
     this.CriteriaService    = criteriaService;
     this.AlternativeService = alternativeService;
 }
Beispiel #3
0
        /// <summary>
        /// Creates a new hierarchy builder.
        /// </summary>
        public HierarchyBuilder(DirectedMetaGraph graph, IPriorityCalculator priorityCalculator, IWitnessCalculator witnessCalculator,
                                WeightHandler <T> weightHandler)
        {
            weightHandler.CheckCanUse(graph);

            _graph = graph;
            _priorityCalculator = priorityCalculator;
            _witnessCalculator  = witnessCalculator;
            _weightHandler      = weightHandler;
        }
Beispiel #4
0
        /// <summary>
        /// Creates a new hierarchy builder.
        /// </summary>
        public HierarchyBuilder(DirectedDynamicGraph graph, IPriorityCalculator priorityCalculator, IWitnessCalculator <T> witnessCalculator,
                                WeightHandler <T> weightHandler, Func <uint, IEnumerable <uint[]> > getRestrictions)
        {
            weightHandler.CheckCanUse(graph);

            _graph = graph;
            _priorityCalculator = priorityCalculator;
            _witnessCalculator  = witnessCalculator;
            _getRestrictions    = getRestrictions;
            _weightHandler      = weightHandler;
        }
Beispiel #5
0
 public HierarchyBuilder(DirectedMetaGraph graph, IPriorityCalculator priorityCalculator, IWitnessCalculator witnessCalculator)
 {
     this._graph = graph;
     this._priorityCalculator = priorityCalculator;
     this._witnessCalculator  = witnessCalculator;
 }