Ejemplo n.º 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();
            }
        }
Ejemplo n.º 2
0
        public void Invoke()
        {
            var data = m_meshSet.Value;

            foreach (var m in data.Meshes)
            {
                m_mesh.SetValue((UnityEngine.Object)m);
                m_continue.Invoke();
            }
        }
Ejemplo n.º 3
0
        public void Invoke()
        {
            var pos = m_pos.Value.Vector3Int();

            for (var idx = m_idxOffset.Value; idx < IterationOffset.Length; idx++)
            {
                var offset = IterationOffset[idx];
                m_iteratorIdx.SetValue(idx);
                m_cornerPos.SetValue(new Vector3(pos.x + offset.x, pos.y + offset.y, pos.z + offset.z));

                m_continue.Invoke();
            }
        }
Ejemplo n.º 4
0
        public void Invoke()
        {
            var grid = m_grid.Value;
            var pos  = m_currentPos.Value.Vector3Int();
            var tile = grid[pos.x, pos.y, pos.z];

            if (m_filter.IsTileActive(tile))
            {
                m_trueAction?.Invoke();
            }
            else
            {
                m_falseAction?.Invoke();
            }
        }
Ejemplo n.º 5
0
        public void Invoke()
        {
            var data = m_grid.Value;

            for (var y = 0; y < data.GetLength(1) - m_reducedIteration.y; y++)
            {
                for (var x = 0; x < data.GetLength(0) - m_reducedIteration.x; x++)
                {
                    for (var z = 0; z < data.GetLength(2) - m_reducedIteration.z; z++)
                    {
                        m_currentPosition.SetValue(new Vector3(x, y, z));
                        m_continue.Invoke();
                    }
                }
            }
            m_currentPosition.SetValue(new Vector3(-1, -1, -1));
        }