hiding option, readme

This commit is contained in:
2025-11-04 22:35:21 -07:00
parent cf5df577f5
commit f879f9afa8
3 changed files with 53 additions and 10 deletions

37
ReadMe.md Normal file
View File

@@ -0,0 +1,37 @@
# World6-travelmap
I made a little program for displaying a simplistic graph of nodes and edges to
make a travel network with calculated distances... specifically for my Minecraft
World.
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.
- TODO: Make drag and drop loading of a JSON file possible. :D
- TODO: Make it not error with no map file.
## Example JSON
```json
{
"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]
},
"edges": [
["TestA", "TestB"],
["TestA", "TestC"],
["TestB", "TestC"],
["TestC", "TestE"],
["TestE", "TestFarLeft"],
["Hidden Node", "TestC", false]
]
}
```

View File

@@ -5,13 +5,15 @@
"TestC": [300, 0, -200, true], "TestC": [300, 0, -200, true],
"TestE": [1200, 0, 200, "Displayed Name"], "TestE": [1200, 0, 200, "Displayed Name"],
"TestFarLeft": [-200, 5000, 50], "TestFarLeft": [-200, 5000, 50],
"TestFarBottomRight": [1200, 0, 2000, true] "TestFarBottomRight": [1200, 0, 2000, true],
"Hidden Node": [0, 0, 0, false]
}, },
"edges": [ "edges": [
["TestA", "TestB"], ["TestA", "TestB"],
["TestA", "TestC"], ["TestA", "TestC"],
["TestB", "TestC"], ["TestB", "TestC"],
["TestC", "TestE"], ["TestC", "TestE"],
["TestE", "TestFarLeft"] ["TestE", "TestFarLeft"],
["Hidden Node", "TestC", false]
] ]
} }

View File

@@ -57,6 +57,7 @@ function love.draw()
error("Edge " .. index .. " names nonexistent node(s): " .. edge[1] .. "->" .. node_a .. ", " .. edge[2] .. "->" .. node_b) error("Edge " .. index .. " names nonexistent node(s): " .. edge[1] .. "->" .. node_a .. ", " .. edge[2] .. "->" .. node_b)
end end
if not (edge[3] == false) then
love.graphics.setColor(0.33, 0.33, 0.33, 1) love.graphics.setColor(0.33, 0.33, 0.33, 1)
love.graphics.line(node_a[1], node_a[3], node_b[1], node_b[3]) love.graphics.line(node_a[1], node_a[3], node_b[1], node_b[3])
@@ -67,11 +68,14 @@ function love.draw()
love.graphics.setColor(0.67, 0.67, 0.67, 1) 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 .. "m", center_x, center_z - font:getHeight() / 2, 0, 1 / scale, 1 / scale)
end end
end
-- draw nodes and label them -- draw nodes and label them
love.graphics.setColor(1, 1, 1, 1) love.graphics.setColor(1, 1, 1, 1)
for name, node in pairs(nodes) do for name, node in pairs(nodes) do
if not (node[4] == false) then
love.graphics.circle("fill", node[1], node[3], node_radius / scale) love.graphics.circle("fill", node[1], node[3], node_radius / scale)
end
if node[4] then if node[4] then
if type(node[4]) == "string" then if type(node[4]) == "string" then