From 9ff3843035f5a07a42fb9a60b5352494aa875a8f Mon Sep 17 00:00:00 2001 From: The Grand Dog Date: Sun, 23 Feb 2020 13:36:03 -0500 Subject: [PATCH] prep Metadata.js for ViewFrame, bug fix with POI positions --- Automap/Subsystems/AutomapSystem.cs | 84 ++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 48 deletions(-) diff --git a/Automap/Subsystems/AutomapSystem.cs b/Automap/Subsystems/AutomapSystem.cs index 45e9146..77923dc 100644 --- a/Automap/Subsystems/AutomapSystem.cs +++ b/Automap/Subsystems/AutomapSystem.cs @@ -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();// - //## 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(); } -- 2.11.0