private static byte EncodeItems(SurfaceItem item1, SurfaceItem item2) { var over1 = (byte)(item1.overrideExisting ? 1 : 0); var number1 = (byte)(over1 | (GetSurfaceCode(item1.surface) << 1)); var over2 = (byte)(item2.overrideExisting ? 1 : 0); var number2 = (byte)(over2 | (GetSurfaceCode(item2.surface) << 1)); return((byte)(number1 | (number2 << 4))); }
public void SetSurfaceItem(int z, int x, TerrainModify.Surface surface, bool overrideExisting) { x = Mathf.Min(x, SurfaceManager.GRID_SIZE - 1); z = Mathf.Min(z, SurfaceManager.GRID_SIZE - 1); var item = new SurfaceItem { surface = surface, overrideExisting = overrideExisting }; if (isEightyOneEnabled) { Surfaces[z * GRID_SIZE + x] = item; return; } if (x < GRID_PER_AREA * 2 || x >= GRID_PER_AREA * 7 || z < GRID_PER_AREA * 2 || z >= GRID_PER_AREA * 7) { return; } Surfaces[(z - 2 * GRID_PER_AREA) * (GRID_SIZE - GRID_PER_AREA * 4) + x - 2 * GRID_PER_AREA] = item; }