aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/features/world/Waypoints.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/features/world/Waypoints.kt')
-rw-r--r--src/main/kotlin/features/world/Waypoints.kt65
1 files changed, 5 insertions, 60 deletions
diff --git a/src/main/kotlin/features/world/Waypoints.kt b/src/main/kotlin/features/world/Waypoints.kt
index 467fa0f..3e9a41a 100644
--- a/src/main/kotlin/features/world/Waypoints.kt
+++ b/src/main/kotlin/features/world/Waypoints.kt
@@ -91,7 +91,7 @@ object Waypoints : FirmamentFeature {
fun useEditableWaypoints(): FirmWaypoints {
var w = waypoints
if (w == null) {
- w = FirmWaypoints("Unlabeled", "unlabeled", null, mutableListOf(), false)
+ w = FirmWaypoints("Unlabeled", "unknown", null, mutableListOf(), false)
waypoints = w
}
return w
@@ -104,6 +104,8 @@ object Waypoints : FirmamentFeature {
return w
}
+ val WAYPOINTS_SUBCOMMAND = "waypoints"
+
@Subscribe
fun onCommand(event: CommandEvent.SubCommand) {
event.subcommand("waypoint") {
@@ -120,10 +122,10 @@ object Waypoints : FirmamentFeature {
}
}
}
- event.subcommand("waypoints") {
+ event.subcommand(WAYPOINTS_SUBCOMMAND) {
thenLiteral("clear") {
thenExecute {
- waypoints?.waypoints?.clear()
+ waypoints = null
source.sendFeedback(Text.translatable("firmament.command.waypoint.clear"))
}
}
@@ -165,65 +167,8 @@ object Waypoints : FirmamentFeature {
}
}
}
- thenLiteral("export") {
- thenExecute {
- TODO()
-// val data = Firmament.tightJson.encodeToString<List<ColeWeightWaypoint>>(waypoints.map {
-// ColeWeightWaypoint(it.x,
-// it.y,
-// it.z)
-// })
-// ClipboardUtils.setTextContent(data)
-// source.sendFeedback(tr("firmament.command.waypoint.export",
-// "Copied ${waypoints.size} waypoints to clipboard"))
- }
- }
- thenLiteral("exportrelative") {
- thenExecute {
- TODO()
-// val playerPos = MC.player!!.blockPos
-// val x = playerPos.x
-// val y = playerPos.y
-// val z = playerPos.z
-// val data = Firmament.tightJson.encodeToString<List<ColeWeightWaypoint>>(waypoints.map {
-// ColeWeightWaypoint(it.x - x,
-// it.y - y,
-// it.z - z)
-// })
-// ClipboardUtils.setTextContent(data)
-// source.sendFeedback(tr("firmament.command.waypoint.export.relative",
-// "Copied ${waypoints.size} relative waypoints to clipboard. Make sure to stand in the same position when importing."))
-//
- }
- }
- thenLiteral("import") {
- thenExecute {
- source.sendFeedback(
- importRelative(BlockPos.ORIGIN)// TODO: rework imports
- ?: Text.stringifiedTranslatable("firmament.command.waypoint.import",
- useNonEmptyWaypoints()?.waypoints?.size),
- )
- }
- }
- thenLiteral("importrelative") {
- thenExecute {
- source.sendFeedback(
- importRelative(MC.player!!.blockPos) ?: tr("firmament.command.waypoint.import.relative",
- "Imported ${useNonEmptyWaypoints()?.waypoints?.size} relative waypoints from clipboard. Make sure you stand in the same position as when you exported these waypoints for them to line up correctly."),
- )
- }
- }
}
}
-
- fun importRelative(pos: BlockPos): Text? {
- val contents = ClipboardUtils.getTextContents()
- val cw = ColeWeightCompat.tryParse(contents).map { ColeWeightCompat.intoFirm(it) }
- waypoints = cw.getOrNull() // TODO: directly parse firm waypoints
- return null // TODO: show error if this does not work
- // TODO: make relative imports work again
- }
-
}
fun <E> List<E>.wrappingWindow(startIndex: Int, windowSize: Int): List<E> {