From c130185a20adc00d3c8b909a80e1f111b1a6d132 Mon Sep 17 00:00:00 2001 From: Tangent Date: Wed, 5 Nov 2025 00:27:33 -0700 Subject: [PATCH] more map data --- ReadMe.md | 3 ++- map.json | 57 ++++++++++++++++++++++++++++++++++++++++------------ src/main.lua | 12 +++++++---- 3 files changed, 54 insertions(+), 18 deletions(-) diff --git a/ReadMe.md b/ReadMe.md index d1eb14f..6f6ca34 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -7,7 +7,8 @@ Data must be in a map.json file. `nodes` is an object with named arrays of info. Each node is an `x`, `y`, and `z` position. The optional 4th item is `true` to display the node's name, a string to display *that* as the node name, or `false` to completely hide a node. `edges` is an array of arrays of two names of nodes. -An optional 3rd item can be set to `false` to hide an edge. +An optional 3rd item can be set to `false` to hide an edge, or a string for a +custom label. - TODO: Make drag and drop loading of a JSON file possible. :D - TODO: Make it not error with no map file. diff --git a/map.json b/map.json index b33504c..b6fbde8 100644 --- a/map.json +++ b/map.json @@ -1,19 +1,50 @@ { "nodes": { - "TestA": [100, 0, 100], - "TestB": [150, 0, 200], - "TestC": [300, 0, -200, true], - "TestE": [1200, 0, 200, "Displayed Name"], - "TestFarLeft": [-200, 5000, 50], - "TestFarBottomRight": [1200, 0, 2000, true], - "Hidden Node": [0, 0, 0, false] + "Second Farm": [-260, 67, -263, true], + "tree farm north": [-164, 71, -267, false], + "Tree Farm": [-156, 68, -252, true], + "farm paths diverge point": [-157, 71, -15, false], + "First Farm": [-146, 74, 10, true], + "1st water crossing / halfway point": [-51, 64, 24, false], + "1st path split": [0, 95, 36, false], + "Spawn Point": [0, 87, 0, "Spawn"], + "Warehouse/Mine": [84, 110, 76, true], + "to village curve point": [139, 105, 145, false], + "Cliffspawn Village Bridge": [130, 104, 255, false], + "Cliffspawn Village": [147, 96, 305, true], + "spawn hovel": [4, 91, -10, false], + "zombie spawner (hovel mine)": [96, 32, 26, "Zombie Dungeon"], + "geode (hovel mine)": [126, -37, -12, "geode"], + "future sand mine": [191, 63, -297, true], + "skeleton spawner (1st mine)": [119, 36, 92, true, "Skelton Dungeon"], + "Mount Sharpe": [696, 178, 667, true], + "Great Rock Waterfall": [814, 120, 601, true], + "Great Rock Waterfall (bottom)": [809, 74, 536, false], + "waterfall 2 top": [832, 121, 631, false], + "waterfall 2 bottom": [884, 82, 628, false], + "Ruined Nether Portal": [853, 79, 805, true], + "Trickster Waterfall": [439, 81, 743, true], + "Trickster Waterfall (bottom)": [441, 62, 730, false], + "village crossroad": [130, 101, 296, false, {"notes": "insignificant"}] }, "edges": [ - ["TestA", "TestB"], - ["TestA", "TestC"], - ["TestB", "TestC"], - ["TestC", "TestE"], - ["TestE", "TestFarLeft"], - ["Hidden Node", "TestC", false] + ["tree farm north", "Second Farm"], + ["tree farm north", "farm paths diverge point"], + ["farm paths diverge point", "First Farm"], + ["First Farm", "1st water crossing / halfway point"], + ["1st water crossing / halfway point", "1st path split"], + ["1st path split", "Spawn Point"], + ["Spawn Point", "Warehouse/Mine"], + ["Warehouse/Mine", "to village curve point"], + ["to village curve point", "Cliffspawn Village Bridge"], + ["Second Farm", "farm paths diverge point"], + ["1st path split", "Warehouse/Mine", false, {"notes": "not real"}], + ["Cliffspawn Village", "Cliffspawn Village Bridge"], + ["spawn hovel", "geode (hovel mine)"], + ["spawn hovel", "zombie spawner (hovel mine)"], + ["Warehouse/Mine", "skeleton spawner (1st mine)", false], + ["Great Rock Waterfall", "Great Rock Waterfall (bottom)"], + ["waterfall 2 top", "waterfall 2 bottom"], + ["Trickster Waterfall", "Trickster Waterfall (bottom)", ""] ] } diff --git a/src/main.lua b/src/main.lua index 712fd2a..fe6118d 100644 --- a/src/main.lua +++ b/src/main.lua @@ -1,8 +1,9 @@ local json = require "lib.dkjson" +love.window.setMode(1600, 900) local screen_width, screen_height = love.graphics.getDimensions() -local node_radius = 5 -local safe_zone = 15 +local node_radius = 2 +local safe_zone = 12 @@ -63,10 +64,13 @@ function love.draw() local center_x = node_a[1] + (node_b[1] - node_a[1]) / 2 local center_z = node_a[3] + (node_b[3] - node_a[3]) / 2 - local distance = math.floor(math.sqrt((node_b[3] - node_a[3])^2 + (node_b[2] - node_a[2])^2 + (node_b[1] - node_a[1])^2)) + local distance = math.floor(math.sqrt((node_b[3] - node_a[3])^2 + (node_b[2] - node_a[2])^2 + (node_b[1] - node_a[1])^2)) .. "m" + if type(edge[3]) == "string" then + distance = edge[3] + end love.graphics.setColor(0.67, 0.67, 0.67, 1) - love.graphics.print(distance .. "m", center_x, center_z - font:getHeight() / 2, 0, 1 / scale, 1 / scale) + love.graphics.print(distance, center_x, center_z - font:getHeight() / 2, 0, 1 / scale, 1 / scale) end end