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); }
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; }