Ejemplo n.º 1
0
        private ChunkData GetChunkData()
        {
            int index          = 0;
            int secondaryIndex = 0;

            for (int y = 0; y <= _size; y++)
            {
                for (int x = 0; x <= _size; x++)
                {
                    if (x < _size && y < _size)
                    {
                        ActionHelper.DoAction(() =>
                        {
                            _chunkData.Heights[secondaryIndex] = _heights[secondaryIndex];
                        });
                        ActionHelper.DoAction(() =>
                        {
                            _chunkData.Colors[secondaryIndex] = (byte)(_colors[secondaryIndex].r * 100);
                        });
                        secondaryIndex++;
                    }
                    ActionHelper.DoAction(() =>
                    {
                        _chunkData.Materials[index] = _materialIndexes[index];
                    });
                    ActionHelper.DoAction(() =>
                    {
                        _chunkData.States[index] = _states[index];
                    });
                    index++;
                }
            }

            return(_chunkData);
        }
Ejemplo n.º 2
0
        private void SetChunkData(ChunkData chunkData)
        {
            int   index          = 0;
            int   secondaryIndex = 0;
            float color;

            for (int y = 0; y <= _size; y++)
            {
                for (int x = 0; x <= _size; x++)
                {
                    ActionHelper.DoAction(() =>
                    {
                        _heights[index] = chunkData.Heights[index];
                    });
                    ActionHelper.DoAction(() =>
                    {
                        color          = (chunkData.Colors[index] / 100f);
                        _colors[index] = new Color(color, color, color, 1f);
                    });
                    if (x < _size && y < _size)
                    {
                        ActionHelper.DoAction(() =>
                        {
                            _materialIndexes[secondaryIndex] = chunkData.Materials[secondaryIndex];
                        });
                        ActionHelper.DoAction(() =>
                        {
                            _states[secondaryIndex] = chunkData.States[secondaryIndex];
                        });
                        secondaryIndex++;
                    }
                    index++;
                }
            }

            _chunkData = chunkData;
        }