summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data/model
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal002@users.noreply.github.com>2024-09-13 20:23:57 +0200
committerGitHub <noreply@github.com>2024-09-13 20:23:57 +0200
commit5e01624dcc315a2bf7665fc808b1113fa4c9e0d8 (patch)
tree6a97c6970fecd2d517eac80c1aa391eee42addd2 /src/main/java/at/hannibal2/skyhanni/data/model
parent691d2551cf722b76c1894c814d1f6c2e98fe17d6 (diff)
downloadskyhanni-5e01624dcc315a2bf7665fc808b1113fa4c9e0d8.tar.gz
skyhanni-5e01624dcc315a2bf7665fc808b1113fa4c9e0d8.tar.bz2
skyhanni-5e01624dcc315a2bf7665fc808b1113fa4c9e0d8.zip
Feature: Graphs Pathfinding (#2468)
Co-authored-by: hannibal2 <24389977+hannibal00212@users.noreply.github.com>
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data/model')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/model/Graph.kt28
1 files changed, 16 insertions, 12 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/model/Graph.kt b/src/main/java/at/hannibal2/skyhanni/data/model/Graph.kt
index 21440197d..8c63be891 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/model/Graph.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/model/Graph.kt
@@ -12,29 +12,29 @@ import java.util.PriorityQueue
@JvmInline
value class Graph(
- @Expose val graph: List<GraphNode>,
+ @Expose val nodes: List<GraphNode>,
) : List<GraphNode> {
override val size
- get() = graph.size
+ get() = nodes.size
- override fun contains(element: GraphNode) = graph.contains(element)
+ override fun contains(element: GraphNode) = nodes.contains(element)
- override fun containsAll(elements: Collection<GraphNode>) = graph.containsAll(elements)
+ override fun containsAll(elements: Collection<GraphNode>) = nodes.containsAll(elements)
- override fun get(index: Int) = graph.get(index)
+ override fun get(index: Int) = nodes.get(index)
- override fun isEmpty() = graph.isEmpty()
+ override fun isEmpty() = nodes.isEmpty()
- override fun indexOf(element: GraphNode) = graph.indexOf(element)
+ override fun indexOf(element: GraphNode) = nodes.indexOf(element)
- override fun iterator(): Iterator<GraphNode> = graph.iterator()
- override fun listIterator() = graph.listIterator()
+ override fun iterator(): Iterator<GraphNode> = nodes.iterator()
+ override fun listIterator() = nodes.listIterator()
- override fun listIterator(index: Int) = graph.listIterator(index)
+ override fun listIterator(index: Int) = nodes.listIterator(index)
- override fun subList(fromIndex: Int, toIndex: Int) = graph.subList(fromIndex, toIndex)
+ override fun subList(fromIndex: Int, toIndex: Int) = nodes.subList(fromIndex, toIndex)
- override fun lastIndexOf(element: GraphNode) = graph.lastIndexOf(element)
+ override fun lastIndexOf(element: GraphNode) = nodes.lastIndexOf(element)
companion object {
val gson = GsonBuilder().setPrettyPrinting().registerTypeAdapter<Graph>(
@@ -142,6 +142,10 @@ value class Graph(
// The node object that gets parsed from/to json
class GraphNode(val id: Int, val position: LorenzVec, val name: String? = null, val tagNames: List<String>? = null) {
+ val tags: List<GraphNodeTag> by lazy {
+ tagNames?.mapNotNull { GraphNodeTag.byId(it) } ?: emptyList()
+ }
+
/** Keys are the neighbours and value the edge weight (e.g. Distance) */
lateinit var neighbours: Map<GraphNode, Double>