Exemplo n.º 1
0
        public List <uint> ClaimForGroup(List <Vector2> positions)
        {
            Preconditions.Assert(!IsDirty, "Cannot claim for group, registry is dirty");
            Preconditions.Assert(IsEmpty, "Cannot claim for group, registry is not empty");
            Preconditions.Assert(positions.Count <= _configuration.ScopeLength, "Group count is bigger than  scopeLength, count is " + positions.Count);

            _localeArray = ConstantSizeClaimableContainer <Vector2?> .CreateFull(_configuration.ScopeLength);

            for (int i = 0; i < positions.Count; i++)
            {
                _localeArray.SetElementWithoutClaimedSpaceChanges(positions[i], i);
            }

            var outList = new List <uint>();

            for (uint i = 0; i < positions.Count; i++)
            {
                _updateOrders.Add(new EPropLocaleBufferScopeUpdateOrder()
                {
                    Index        = i,
                    FlatPosition = positions[(int)i]
                });
                outList.Add(i);
            }

            return(outList);
        }
Exemplo n.º 2
0
        public EPropLocaleBufferScopeRegistry(EPropElevationConfiguration configuration)
        {
            _configuration = configuration;
            _localeArray   = ConstantSizeClaimableContainer <Vector2?> .CreateEmpty(configuration.ScopeLength);

            _updateOrders = new List <EPropLocaleBufferScopeUpdateOrder>();
        }
Exemplo n.º 3
0
        private ConstantSizeClaimableContainer <object> _pointersContainer; //todo possible much less space taking data structure

        public EPropElevationLocalePointersOccupancyContainer(EPropElevationConfiguration configuration)
        {
            _pointersContainer = ConstantSizeClaimableContainer <object> .CreateEmpty(configuration.MaxLocalePointersCount);

            _pointerIdDict = new DoubleDictionary <EPropElevationId, EPropElevationPointer>();
        }