• R/O
  • HTTP
  • SSH
  • HTTPS

automap: コミット

Automap (OSS) GIT software repository


コミットメタ情報

リビジョンa410dd36022b986917558b51791174d78375efdc (tree)
日時2021-05-22 10:18:32
作者melchior <melchior@user...>
コミッターmelchior

ログメッセージ

Added Single Shard metadata dumper

変更サマリ

差分

--- a/ShardProcessor/Program.cs
+++ b/ShardProcessor/Program.cs
@@ -1,4 +1,5 @@
11 using System;
2+using System.Diagnostics;
23 using System.IO;
34 using System.Text.RegularExpressions;
45
@@ -58,6 +59,10 @@ namespace ShardProcessor
5859 Scan_PointsData( );
5960 break;
6061
62+ case @"--oneshard":
63+ Scan_OneShard( );
64+ break;
65+
6166 default:
6267 Console.WriteLine("Unrecognized Command: {0}", command);
6368 break;
@@ -250,5 +255,48 @@ namespace ShardProcessor
250255 Console.WriteLine("Scanned {0} files, {1} errors, {2} FLAT entries", count, errors, flat);
251256 }
252257
258+ private static void Scan_OneShard( )
259+ {
260+ //--oneshard ~/ApplicationData/vintagestory/Maps/World_1316328588/Chunks/9363_9379.png
261+ var oneChunkFile = new FileInfo(mapPath);
262+ if (oneChunkFile.Exists) {
263+
264+
265+ try {
266+ using (var fileStream = oneChunkFile.OpenRead( )) {
267+
268+ PngReader pngRead = new PngReader(fileStream);
269+ pngRead.ReadSkippingAllRows( );
270+
271+ //Parse PNG chunks for METADATA in shard
272+ PngMetadataChunk metadataFromPng = pngRead.GetChunksList( ).GetById1(PngMetadataChunk.ID) as PngMetadataChunk;
273+ ColumnMeta columnData = metadataFromPng.ChunkMetadata;
274+ var metadata = pngRead.GetMetadata( );
275+ var pngWriteTime = metadata.GetTime( );
276+ var chunkX = metadata.GetTxtForKey(@"Chunk_X");
277+ var chunkY = metadata.GetTxtForKey(@"Chunk_Y");
278+ var pixelSize = metadata.GetTxtForKey(@"PxSz");
279+ var gameDate = metadata.GetTxtForKey(@"GameDY");
280+ var dateBlob = pngWriteTime.GetYMDHMS( );
281+ /*
282+ return new int[] {
283+ this.year,
284+ this.mon,
285+ this.day,
286+ this.hour,
287+ this.min,
288+ this.sec
289+ */
290+
291+ 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}");
292+
293+ pngRead.End( );
294+ }
295+ } catch (Exception darn) {
296+ Debug.Write("Oops! File causes: {0}", darn.ToString( ));
297+ }
298+
299+ }
300+ }
253301 }
254302 }
--- a/ShardProcessor/ShardProcessor.csproj
+++ b/ShardProcessor/ShardProcessor.csproj
@@ -18,7 +18,7 @@
1818 <ErrorReport>prompt</ErrorReport>
1919 <WarningLevel>4</WarningLevel>
2020 <ExternalConsole>true</ExternalConsole>
21- <Commandlineparameters>--shards ~/ApplicationData/vintagestory/Maps/World_19781215</Commandlineparameters>
21+ <Commandlineparameters></Commandlineparameters>
2222 </PropertyGroup>
2323 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
2424 <Optimize>true</Optimize>
旧リポジトリブラウザで表示