diff options
| author | hannibal2 <24389977+hannibal002@users.noreply.github.com> | 2024-09-13 20:23:57 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-13 20:23:57 +0200 |
| commit | 5e01624dcc315a2bf7665fc808b1113fa4c9e0d8 (patch) | |
| tree | 6a97c6970fecd2d517eac80c1aa391eee42addd2 /src/main/java/at/hannibal2/skyhanni/data/model | |
| parent | 691d2551cf722b76c1894c814d1f6c2e98fe17d6 (diff) | |
| download | skyhanni-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.kt | 28 |
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> |
