private static Voxel UpgradeVoxel(LegacyVoxelV1 legacyVoxelV1) { var voxel = new Voxel { Value = legacyVoxelV1.Value }; var absAltered = Math.Abs(legacyVoxelV1.Altered); if (absAltered == 0) { voxel.Alteration = Voxel.Unaltered; } else if (absAltered == 1) { voxel.Alteration = Voxel.OnSurface; } else if (absAltered >= LegacyVoxelV1.TextureNearSurfaceOffset && absAltered < LegacyVoxelV1.TextureOffset) { voxel.Alteration = absAltered == legacyVoxelV1.Altered ? Voxel.NearAboveSurface : Voxel.NearBelowSurface; voxel.FirstTextureIndex = (uint)(absAltered - LegacyVoxelV1.TextureNearSurfaceOffset); } else if (absAltered >= LegacyVoxelV1.TextureOffset) { voxel.Alteration = absAltered == legacyVoxelV1.Altered ? Voxel.FarAboveSurface : Voxel.FarBelowSurface; voxel.FirstTextureIndex = (uint)(absAltered - LegacyVoxelV1.TextureOffset); } return(voxel); }
private static void ReadLegacyVoxelBytes(int sizeVox, byte[] rawBytes, ref LegacyVoxelV1[] voxelArray) { if (voxelArray == null) { voxelArray = new LegacyVoxelV1[sizeVox * sizeVox * sizeVox]; } var voxelBytes = new NativeArray <byte>(rawBytes, Allocator.Temp); var bytes = new NativeSlice <byte>(voxelBytes); var voxelSlice = bytes.SliceConvert <LegacyVoxelV1>(); DirectNativeCollectionsAccess.CopyTo(voxelSlice, voxelArray); voxelBytes.Dispose(); }