using System;
+using System.Diagnostics;
using System.IO;
using System.Text.RegularExpressions;
Scan_PointsData( );
break;
+ case @"--oneshard":
+ Scan_OneShard( );
+ break;
+
default:
Console.WriteLine("Unrecognized Command: {0}", command);
break;
Console.WriteLine("Scanned {0} files, {1} errors, {2} FLAT entries", count, errors, flat);
}
+ private static void Scan_OneShard( )
+ {
+ //--oneshard ~/ApplicationData/vintagestory/Maps/World_1316328588/Chunks/9363_9379.png
+ var oneChunkFile = new FileInfo(mapPath);
+ if (oneChunkFile.Exists) {
+
+
+ try {
+ using (var fileStream = oneChunkFile.OpenRead( )) {
+
+ PngReader pngRead = new PngReader(fileStream);
+ pngRead.ReadSkippingAllRows( );
+
+ //Parse PNG chunks for METADATA in shard
+ PngMetadataChunk metadataFromPng = pngRead.GetChunksList( ).GetById1(PngMetadataChunk.ID) as PngMetadataChunk;
+ ColumnMeta columnData = metadataFromPng.ChunkMetadata;
+ var metadata = pngRead.GetMetadata( );
+ var pngWriteTime = metadata.GetTime( );
+ var chunkX = metadata.GetTxtForKey(@"Chunk_X");
+ var chunkY = metadata.GetTxtForKey(@"Chunk_Y");
+ var pixelSize = metadata.GetTxtForKey(@"PxSz");
+ var gameDate = metadata.GetTxtForKey(@"GameDY");
+ var dateBlob = pngWriteTime.GetYMDHMS( );
+ /*
+ return new int[] {
+ this.year,
+ this.mon,
+ this.day,
+ this.hour,
+ this.min,
+ this.sec
+ */
+
+ Console.WriteLine($"PNG-Timestamp: Y{dateBlob[0] - 456960} M{dateBlob[1]} D{dateBlob[2]} H{dateBlob[3]} M {dateBlob[4]} S{dateBlob[5]} Chunk: X {chunkX} Y {chunkY} PixelSize:{pixelSize} Game-Date: {gameDate}");
+
+ pngRead.End( );
+ }
+ } catch (Exception darn) {
+ Debug.Write("Oops! File causes: {0}", darn.ToString( ));
+ }
+
+ }
+ }
}
}