aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSychic <47618543+Sychic@users.noreply.github.com>2021-10-11 13:06:00 -0400
committerSychic <47618543+Sychic@users.noreply.github.com>2021-10-11 13:06:00 -0400
commit97ac2f94a2587a9a391b2206913db577b31e3054 (patch)
treee41a813998b0df884b9bda9236f7a73380017931
parenta813d82fc3bd476ac547e47febbecae6ad4b159e (diff)
downloadSkytilsMod-97ac2f94a2587a9a391b2206913db577b31e3054.tar.gz
SkytilsMod-97ac2f94a2587a9a391b2206913db577b31e3054.tar.bz2
SkytilsMod-97ac2f94a2587a9a391b2206913db577b31e3054.zip
Add waypoint colors
-rw-r--r--src/main/kotlin/skytils/skytilsmod/features/impl/handlers/Waypoints.kt14
-rw-r--r--src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt4
-rw-r--r--src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt38
3 files changed, 42 insertions, 14 deletions
diff --git a/src/main/kotlin/skytils/skytilsmod/features/impl/handlers/Waypoints.kt b/src/main/kotlin/skytils/skytilsmod/features/impl/handlers/Waypoints.kt
index b2ebe2fd..ad4ac90a 100644
--- a/src/main/kotlin/skytils/skytilsmod/features/impl/handlers/Waypoints.kt
+++ b/src/main/kotlin/skytils/skytilsmod/features/impl/handlers/Waypoints.kt
@@ -61,7 +61,8 @@ class Waypoints : PersistentSave(File(Skytils.modDir, "waypoints.json")) {
SkyblockIsland.values().find {
it.mode == e["island"].asString
} ?: return@mapNotNullTo null,
- e["enabled"].asBoolean
+ e["enabled"].asBoolean,
+ e["color"]?.let { Color(it.asInt) } ?: Color.RED
)
}
}
@@ -76,6 +77,7 @@ class Waypoints : PersistentSave(File(Skytils.modDir, "waypoints.json")) {
addProperty("z", it.pos.z)
addProperty("island", it.island.mode)
addProperty("enabled", it.enabled)
+ addProperty("color", it.color.rgb)
})
}
gson.toJson(arr, writer)
@@ -91,7 +93,13 @@ class Waypoints : PersistentSave(File(Skytils.modDir, "waypoints.json")) {
}
}
-data class Waypoint(var name: String, var pos: BlockPos, var island: SkyblockIsland, var enabled: Boolean) {
+data class Waypoint(
+ var name: String,
+ var pos: BlockPos,
+ var island: SkyblockIsland,
+ var enabled: Boolean,
+ val color: Color
+) {
fun draw(partialTicks: Float) {
val (viewerX, viewerY, viewerZ) = RenderUtil.getViewerPos(partialTicks)
val x = pos.x - viewerX
@@ -99,7 +107,7 @@ data class Waypoint(var name: String, var pos: BlockPos, var island: SkyblockIsl
val z = pos.z - viewerZ
RenderUtil.drawFilledBoundingBox(
AxisAlignedBB(x, y, z, x + 1, y + 1, z + 1),
- Color.RED,
+ color,
0.5f
)
GlStateManager.disableDepth()
diff --git a/src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt b/src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt
index 9aac12e5..944f0de8 100644
--- a/src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt
+++ b/src/main/kotlin/skytils/skytilsmod/gui/WaypointShareGui.kt
@@ -154,7 +154,8 @@ class WaypointShareGui : WindowScreen(newGuiScale = 2) {
SkyblockIsland.values().find {
it.mode == e["island"].asString
} ?: return@mapNotNull null,
- e["enabled"].asBoolean
+ e["enabled"].asBoolean,
+ e["color"]?.let{Color(it.asInt)} ?: Color.RED
)
}.onFailure {
it.printStackTrace()
@@ -187,6 +188,7 @@ class WaypointShareGui : WindowScreen(newGuiScale = 2) {
addProperty("z", it.z.getText().toInt())
addProperty("island", island.mode)
addProperty("enabled", true)
+ addProperty("color", Color.RED.rgb)
})
}.onFailure {
it.printStackTrace()
diff --git a/src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt b/src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt
index 121fba3b..d0b1acd3 100644
--- a/src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt
+++ b/src/main/kotlin/skytils/skytilsmod/gui/WaypointsGui.kt
@@ -23,13 +23,11 @@ import gg.essential.elementa.components.ScrollComponent
import gg.essential.elementa.components.UIContainer
import gg.essential.elementa.components.UIText
import gg.essential.elementa.components.input.UITextInput
-import gg.essential.elementa.constraints.CenterConstraint
-import gg.essential.elementa.constraints.ChildBasedSizeConstraint
-import gg.essential.elementa.constraints.RelativeConstraint
-import gg.essential.elementa.constraints.SiblingConstraint
+import gg.essential.elementa.constraints.*
import gg.essential.elementa.dsl.*
import gg.essential.elementa.effects.OutlineEffect
import gg.essential.vigilance.gui.settings.CheckboxComponent
+import gg.essential.vigilance.gui.settings.ColorComponent
import gg.essential.vigilance.gui.settings.DropDown
import gg.essential.vigilance.utils.onLeftClick
import net.minecraft.util.BlockPos
@@ -133,7 +131,8 @@ class WaypointsGui : WindowScreen(newGuiScale = 2), ReopenableGUI {
entry.z.getText().toInt()
),
current,
- entry.enabled.checked
+ entry.enabled.checked,
+ entry.color
)
)
}.onFailure {
@@ -149,17 +148,22 @@ class WaypointsGui : WindowScreen(newGuiScale = 2), ReopenableGUI {
Waypoints.waypoints.filter {
it.island == island
}.sortedBy { "${it.name} ${it.pos} ${it.enabled}" }.forEach {
- addNewWaypoint(it.name, it.pos, it.enabled)
+ addNewWaypoint(it.name, it.pos, it.enabled, it.color)
}
}
}
- private fun addNewWaypoint(name: String = "", pos: BlockPos = mc.thePlayer.position, enabled: Boolean = true) {
+ private fun addNewWaypoint(
+ name: String = "",
+ pos: BlockPos = mc.thePlayer.position,
+ enabled: Boolean = true,
+ color: Color = Color.RED
+ ) {
val container = UIContainer().childOf(scrollComponent).constrain {
x = CenterConstraint()
y = SiblingConstraint(5f)
width = 80.percent()
- height = 9.5.percent()
+ height = 30.percent()
}.effect(OutlineEffect(Color(0, 243, 255), 1f))
val enabled = CheckboxComponent(enabled).childOf(container).constrain {
@@ -216,6 +220,14 @@ class WaypointsGui : WindowScreen(newGuiScale = 2), ReopenableGUI {
}
}
+ val colorComponent = ColorComponent(color, false).childOf(container).constrain {
+ x = SiblingConstraint(5f)
+ y = CenterConstraint()
+ width = AspectConstraint()
+ }.also {
+ it.setColor(color)
+ }
+
SimpleButton("Remove").childOf(container).constrain {
x = 85.percent()
y = CenterConstraint()
@@ -225,7 +237,12 @@ class WaypointsGui : WindowScreen(newGuiScale = 2), ReopenableGUI {
entries.remove(container)
}
- entries[container] = Entry(enabled, nameComponent, xComponent, yComponent, zComponent)
+ entries[container] =
+ Entry(enabled, nameComponent, xComponent, yComponent, zComponent, colorComponent.getColor()).also { entry ->
+ colorComponent.onValueChange { newColor ->
+ entry.color = newColor as Color
+ }
+ }
}
override fun onScreenClose() {
@@ -238,6 +255,7 @@ class WaypointsGui : WindowScreen(newGuiScale = 2), ReopenableGUI {
val name: UITextInput,
val x: UITextInput,
val y: UITextInput,
- val z: UITextInput
+ val z: UITextInput,
+ var color: Color
)
} \ No newline at end of file