public override void Init(IShipDockComponentContext context)
        {
            base.Init(context);

            mArounds          = new KeyValueList <int, List <int> >();
            mPhysicsCheckable = new KeyValueList <int, bool>();
        }
示例#2
0
 public virtual void Init(IShipDockComponentContext context)
 {
     mEntitasIDs        = new List <int>();
     mEntitasIDsRemoved = new List <int>();
     mEntitasIDsRelease = new List <int>();
     mEntitas           = new IntegerMapper <IShipDockEntitas>();
 }
示例#3
0
        /// <summary>
        /// 填充需要关联的组件
        /// </summary>
        public void FillRelateComponents(IShipDockComponentContext manager)
        {
            int name;
            IShipDockComponent item;
            int max = RelateComponents != default ? RelateComponents.Length : 0;

            for (int i = 0; i < max; i++)
            {
                name = RelateComponents[i];
                if (!mRelatedComponents.ContainsKey(name))
                {
                    item = manager.RefComponentByName(name);
                    if (item != default)
                    {
                        mRelatedComponents[name] = item;
                    }
                }
            }
            bool needCheckReFill = (max > 0) && (mRelatedComponents.Size != max);

            if (needCheckReFill)
            {
                manager.RelateComponentsReFiller += ReFillRelateComponents;
            }
        }
示例#4
0
        public DataComponentGroup(IShipDockComponentContext context, ref K[] keys, ref int[] componentNames)
        {
            int max = componentNames.Length;

            Group = new KeyValueList <K, C>(max);

            C groupItem;

            for (int i = 0; i < max; i++)
            {
                groupItem = (C)context.RefComponentByName(componentNames[i]);
                Group.Put(keys[i], groupItem);
            }
        }
示例#5
0
        public override void Init(IShipDockComponentContext context)
        {
            base.Init(context);

            mWorldEventNotices = new Queue <INotice>();
            mEventItems        = new Queue <WorldInteracter>();

            mWorldItemMapper = new KeyValueList <int, WorldInteracter>();
            mGroupsMapper    = new KeyValueList <int, ClusteringData>();
            mAroundMapper    = new KeyValueList <int, WorldMovement>();

            WorldComp        = GetRelatedComponent <WorldComponent>(WorldComponentName);
            BehaviourIDsComp = context.RefComponentByName(WorldComp.BehaviaourIDsComponentName) as BehaviourIDsComponent;
            ClusteringComp   = context.RefComponentByName(WorldComp.WorldGroupComponentName) as ClusteringComponent;

            ShouldWorldGroupable = ClusteringComp != default;
        }
示例#6
0
        public override void Init(IShipDockComponentContext manager)
        {
            base.Init(manager);

            Context = manager;

            FillRelateComponents(manager);

            List <IShipDockComponent> values = mRelatedComponents.Values;

            IShipDockComponent item;
            int max = values.Count;

            for (int i = 0; i < max; i++)
            {
                item = values[i];
                item.OnEntitasStretch += ComponentEntitasStretch;
            }
        }
示例#7
0
        /// <summary>
        /// 重新填充关联的组件
        /// </summary>
        protected virtual void ReFillRelateComponents(int name, IShipDockComponent target, IShipDockComponentContext manager)
        {
            int item;
            int max    = RelateComponents != default ? RelateComponents.Length : 0;
            int remain = max;

            for (int i = 0; i < max; i++)
            {
                item = RelateComponents[i];
                if (item == name)
                {
                    if (!mRelatedComponents.ContainsKey(name))
                    {
                        remain--;
                        mRelatedComponents[name] = target;
                    }
                }
            }

            bool needCheckReFill = remain > 0;

            if (!needCheckReFill)
            {
                manager.RelateComponentsReFiller -= ReFillRelateComponents;
            }
        }
示例#8
0
 public override void Init(IShipDockComponentContext context)
 {
     base.Init(context);
 }