Пример #1
0
        public void Invoke()
        {
            var iterationSet = m_sourceConfig.GetSet(m_iterateOnTileConfig);

            var filters = new TilesSetFilter[m_filter.Length];

            for (var i = 0; i < m_filter.Length; i++)
            {
                var filterSet = m_sourceConfig.GetSet(m_filter[i].Config.Result);
                filters[i] = new TilesSetFilter()
                {
                    Data = filterSet, FilterIdx = m_filter[i].TileIdx
                };
            }

            var startNode = 0;

            ushort[] texTypesDone    = { ushort.MaxValue, ushort.MaxValue, ushort.MaxValue };
            var      texTypesDoneIdx = 0;

            ushort next;

            while ((next = NextType(iterationSet, filters, ref startNode,
                                    ref texTypesDone, ref texTypesDoneIdx)) != ushort.MaxValue)
            {
                m_tilesSetFilter.SetValue(new TilesSetFilter()
                {
                    Data = iterationSet, FilterIdx = next
                });
                m_continueAction.Invoke();
            }
        }
Пример #2
0
        public void Invoke()
        {
            var grid    = m_grid.Value;
            var pos     = m_currentPos.Value.Vector3Int();
            var tile    = grid[pos.x, pos.y, pos.z];
            var texType = m_texConfigSetData.GetTileIdx(tile);

            m_tilesSetFilter.SetValue(new TilesSetFilter()
            {
                Data      = m_texConfigSetData,
                FilterIdx = texType
            });
        }