From 11c8b427c7fdae065b094fff4b82480a7a2fc63d Mon Sep 17 00:00:00 2001 From: Pyro Nicampt <81565698+PyroNicampt@users.noreply.github.com> Date: Sat, 15 Mar 2025 23:20:00 -0500 Subject: [PATCH] Add Demonstrator Spawn Locations --- CommunityMapTool/Main.cs | 4 +- index.js | 19 ++ js/mapdata.js | 17 +- legend.js | 16 ++ mapSprites.svg | 2 +- poi_dv.json | 429 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 482 insertions(+), 5 deletions(-) diff --git a/CommunityMapTool/Main.cs b/CommunityMapTool/Main.cs index 2ae8539..4712b83 100644 --- a/CommunityMapTool/Main.cs +++ b/CommunityMapTool/Main.cs @@ -99,8 +99,8 @@ namespace CommunityMapTool { sb.Append("\n{"); string[] jsonKVP = new[] { "name", $"\"{spawnPoint.name}\"", - "position", $"{{\"x\":{spawnPoint.transform.position.x},\"y\":{spawnPoint.transform.position.y},\"z\":{spawnPoint.transform.position.z}}}", - "isUsed", spawnPoint.pointUsed ? "true" : "false" + "type", $"\"demonstratorSpawn\"", + "position", $"{{\"x\":{spawnPoint.transform.position.x - WorldMover.currentMove.x},\"y\":{spawnPoint.transform.position.y - WorldMover.currentMove.y},\"z\":{spawnPoint.transform.position.z - WorldMover.currentMove.z}}}" }; for(int i = 0; i < jsonKVP.Length; i++) { if(i % 2 == 0) sb.Append($"\n\t\"{jsonKVP[i]}\":"); diff --git a/index.js b/index.js index a787a73..fc45095 100644 --- a/index.js +++ b/index.js @@ -418,6 +418,25 @@ function redrawMap(){ mapctx.fillStyle = '#000'; mapctx.fillText(marker.name, markerX - 0.5*tempMeasure.width, markerY + 0.5*tempMeasure.height); break; + case 'demonstratorSpawn': + if(!(MapData.layers.demonstratorExact && MapData.layers.poi)) break; + marker.visible = true; + curSprite = Config.spriteBounds.demonstrator; + spriteSize = 25; + break; + case 'demonstratorSpawnHint': + if(!(MapData.layers.demonstratorHint && MapData.layers.poi)) break; + marker.visible = true; + if(!marker.tooltipHitzone) marker.tooltipHitzone = {}; + marker.tooltipHitzone.radius = marker.radius * MapData.view.scale; + mapctx.beginPath(); + mapctx.moveTo(markerX, markerY); + mapctx.arc(markerX, markerY, marker.radius*MapData.view.scale, 0, Math.PI*2); + mapctx.fillStyle = '#894b35'; + mapctx.globalAlpha = 0.65; + mapctx.fill(); + mapctx.globalAlpha = 1.0; + break; default: if(!MapData.layers.poi) break; marker.visible = true; diff --git a/js/mapdata.js b/js/mapdata.js index 0184127..69c3880 100644 --- a/js/mapdata.js +++ b/js/mapdata.js @@ -104,6 +104,9 @@ export function sortMarkers(){ if(b.type == 'junction') return -1; if(a.type == 'service') return 1; if(b.type == 'service') return -1; + + if(a.type == 'demonstratorSpawnHint') return -1; + if(b.type == 'demonstratorSpawnHint') return 1; return 0; }); } @@ -256,16 +259,26 @@ export function addPoi(poiData, level = 0){ else if(poiData.military) newPoi.tooltip = '