OSDN Git Service

prep Metadata.js for ViewFrame, bug fix with POI positions
authorThe Grand Dog <alex.h@me.com>
Sun, 23 Feb 2020 18:36:03 +0000 (13:36 -0500)
committerThe Grand Dog <alex.h@me.com>
Sun, 23 Feb 2020 18:36:03 +0000 (13:36 -0500)
Automap/Subsystems/AutomapSystem.cs

index 45e9146..77923dc 100644 (file)
@@ -92,10 +92,12 @@ namespace Automap
 
                        ClientAPI.Event.ChunkDirty += ChunkAChanging;
 
-                       cartographer_thread = new Thread(Cartographer);
-                       cartographer_thread.Name = "Cartographer";
-                       cartographer_thread.Priority = ThreadPriority.Lowest;
-                       cartographer_thread.IsBackground = true;
+                       cartographer_thread = new Thread(Cartographer)
+                       {
+                               Name = "Cartographer",
+                               Priority = ThreadPriority.Lowest,
+                               IsBackground = true
+                       };
 
                        ClientAPI.Event.RegisterGameTickListener(AwakenCartographer, 6000);
                }
@@ -308,21 +310,6 @@ namespace Automap
                                        tableWriter.Write(stylesFile.ToText());
                                        tableWriter.RenderEndTag();//</style>
 
-                                       //## JSON map-state data ######################
-                                       tableWriter.AddAttribute(HtmlTextWriterAttribute.Type, "text/javascript");
-                                       tableWriter.RenderBeginTag(HtmlTextWriterTag.Script);
-
-                                       tableWriter.Write("var available_images = [");
-
-                                       foreach (var shard in this.chunkTopMetadata)
-                                       {
-                                               tableWriter.Write("{{X:{0},Y:{1} }}, ", shard.Location.X, shard.Location.Y);
-                                       }
-
-                                       tableWriter.Write(" ];\n");
-
-                                       tableWriter.RenderEndTag();
-
                                        tableWriter.RenderEndTag();
 
                                        tableWriter.RenderBeginTag(HtmlTextWriterTag.Body);
@@ -507,57 +494,58 @@ namespace Automap
                        StreamWriter jsonWriter = new StreamWriter(jsonFilename, false, Encoding.UTF8);
                        using (jsonWriter)
                        {
-                               jsonWriter.WriteLine("var worldSeedNum = {0};", ClientAPI.World.Seed);
-                               jsonWriter.WriteLine("var genTime = new Date('{0}');", DateTimeOffset.UtcNow.ToString("O"));
-                               jsonWriter.WriteLine("var startCoords = {{X:{0},Y:{1}}};", startChunkColumn.X, startChunkColumn.Y);
-                               jsonWriter.WriteLine("var chunkSize = {0};", chunkSize);
-                               jsonWriter.WriteLine("var northMostChunk ={0};", chunkTopMetadata.North_mostChunk);
-                               jsonWriter.WriteLine("var southMostChunk ={0};", chunkTopMetadata.South_mostChunk);
-                               jsonWriter.WriteLine("var eastMostChunk ={0};", chunkTopMetadata.East_mostChunk);
-                               jsonWriter.WriteLine("var westMostChunk ={0};", chunkTopMetadata.West_mostChunk);
+                               jsonWriter.Write("ViewFrame.chunks={};");
+                               jsonWriter.Write("ViewFrame.chunks.worldSeedNum={0};", ClientAPI.World.Seed);
+                               jsonWriter.Write("ViewFrame.chunks.genTime=new Date('{0}');", DateTimeOffset.UtcNow.ToString("O"));
+                               jsonWriter.Write("ViewFrame.chunks.startCoords=[{0},{1}];", startChunkColumn.X, startChunkColumn.Y);
+                               jsonWriter.Write("ViewFrame.chunks.chunkSize={0};", chunkSize);
+                               jsonWriter.Write("ViewFrame.chunks.northMostChunk={0};", chunkTopMetadata.North_mostChunk);
+                               jsonWriter.Write("ViewFrame.chunks.southMostChunk={0};", chunkTopMetadata.South_mostChunk);
+                               jsonWriter.Write("ViewFrame.chunks.eastMostChunk={0};", chunkTopMetadata.East_mostChunk);
+                               jsonWriter.Write("ViewFrame.chunks.westMostChunk={0};", chunkTopMetadata.West_mostChunk);
                                //MAP object format - [key, value]: key is "x_y"
-                               jsonWriter.Write("let shardsMetadata = new Map([");
+                               jsonWriter.Write("ViewFrame.chunks.chunkMetadata=new Map([");
                                foreach (var shard in chunkTopMetadata)
                                {
                                        jsonWriter.Write("['{0}_{1}',", shard.Location.X, shard.Location.Y);
                                        jsonWriter.Write("{");
-                                       jsonWriter.Write("ChunkAge: '{0}',", shard.ChunkAge);//World age - relative? or last edit ??
-                                       jsonWriter.Write("Temperature: {0},", shard.Temperature.ToString("F1"));
-                                       jsonWriter.Write("YMax: {0},", shard.YMax);
-                                       jsonWriter.Write("Fertility: {0},", shard.Fertility.ToString("F1"));
-                                       jsonWriter.Write("ForestDensity: {0},", shard.ForestDensity.ToString("F1"));
-                                       jsonWriter.Write("Rainfall: {0},", shard.Rainfall.ToString("F1"));
-                                       jsonWriter.Write("ShrubDensity: {0},", shard.ShrubDensity.ToString("F1"));
-                                       jsonWriter.Write("AirBlocks: {0},", shard.AirBlocks);
-                                       jsonWriter.Write("NonAirBlocks: {0},", shard.NonAirBlocks);
+                                       jsonWriter.Write("chunkAge:'{0}',", shard.ChunkAge.ToString("g"));//World age - relative? or last edit ??
+                                       jsonWriter.Write("temp:{0},", shard.Temperature.ToString("F1"));
+                                       jsonWriter.Write("YMax:{0},", shard.YMax);
+                                       jsonWriter.Write("fert:{0},", shard.Fertility.ToString("F1"));
+                                       jsonWriter.Write("forestDens:{0},", shard.ForestDensity.ToString("F1"));
+                                       jsonWriter.Write("rain:{0},", shard.Rainfall.ToString("F1"));
+                                       jsonWriter.Write("shrubDens:{0},", shard.ShrubDensity.ToString("F1"));
+                                       jsonWriter.Write("airBlocks:{0},", shard.AirBlocks);
+                                       jsonWriter.Write("nonAirBlocks:{0},", shard.NonAirBlocks);
                                        //TODO: Heightmap
                                        //TODO: Rock-ratio
                                        jsonWriter.Write("}],");
                                }
-                               jsonWriter.Write("]);\n\n");
+                               jsonWriter.Write("]);");
 
 
-                               jsonWriter.Write("let pointsOfInterest = new Map([");
+                               jsonWriter.Write("ViewFrame.chunks.pointsOfInterest = new Map([");
                                foreach (var poi in POIs)
                                {
-                                       jsonWriter.Write("['{0}_{1}',", poi.Location.X, poi.Location.Y);
+                                       jsonWriter.Write("['{0}_{1}',", poi.Location.X, poi.Location.Z);
                                        jsonWriter.Write("{");
-                                       jsonWriter.Write("notes: '{0}',", poi.Notes.Replace("'", " "));
-                                       jsonWriter.Write("timestamp : new Date('{0}'),", poi.Timestamp.ToString("O"));
-                                       jsonWriter.Write("chunkPos:'{0}_{1}',", (poi.Location.X / chunkSize), (poi.Location.Y / chunkSize));
+                                       jsonWriter.Write("notes:'{0}',", poi.Notes.Replace("'", "\'").Replace("\n","\\n"));
+                                       jsonWriter.Write("time:new Date('{0}'),", poi.Timestamp.ToString("O"));
+                                       jsonWriter.Write("chunkPos:'{0}_{1}',", (poi.Location.X / chunkSize), (poi.Location.Z / chunkSize));
                                        jsonWriter.Write("}],");
                                }
 
                                foreach (var poi in EOIs.PointsList)
                                {
-                                       jsonWriter.Write("['{0}_{1}',", poi.Location.X, poi.Location.Y);
+                                       jsonWriter.Write("['{0}_{1}',", poi.Location.X, poi.Location.Z);
                                        jsonWriter.Write("{");
-                                       jsonWriter.Write("notes: '{0}',", poi.Notes.Replace("'", " "));
-                                       jsonWriter.Write("timestamp : new Date('{0}'),", poi.Timestamp.ToString("O"));
-                                       jsonWriter.Write("chunkPos:'{0}_{1}',", (poi.Location.X / chunkSize), (poi.Location.Y / chunkSize));
+                                       jsonWriter.Write("notes:'{0}',", poi.Notes.Replace("'", "\'"));
+                                       jsonWriter.Write("time:new Date('{0}'),", poi.Timestamp.ToString("O"));
+                                       jsonWriter.Write("chunkPos:'{0}_{1}',", (poi.Location.X / chunkSize), (poi.Location.Z / chunkSize));
                                        jsonWriter.Write("}],");
                                }
-                               jsonWriter.Write("]);\n\n");
+                               jsonWriter.Write("]);");
 
                                jsonWriter.Flush();
                        }