aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament
diff options
context:
space:
mode:
authornea <nea@nea.moe>2023-07-25 19:48:22 +0200
committernea <nea@nea.moe>2023-07-25 19:48:22 +0200
commit3375907c44704b968f06ac996cb389c4e29b3826 (patch)
tree07dcc268946d2966806ac814646512861f16b8c9 /src/main/kotlin/moe/nea/firmament
parent0aacb6b965852647fde85045882b6aa6cf58c287 (diff)
downloadfirmament-3375907c44704b968f06ac996cb389c4e29b3826.tar.gz
firmament-3375907c44704b968f06ac996cb389c4e29b3826.tar.bz2
firmament-3375907c44704b968f06ac996cb389c4e29b3826.zip
Fix some issues idk
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament')
-rw-r--r--src/main/kotlin/moe/nea/firmament/events/HandledScreenKeyPressedEvent.kt8
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/debug/DeveloperFeatures.kt27
-rw-r--r--src/main/kotlin/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt8
3 files changed, 37 insertions, 6 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/events/HandledScreenKeyPressedEvent.kt b/src/main/kotlin/moe/nea/firmament/events/HandledScreenKeyPressedEvent.kt
index 3c19aa7..9cff27d 100644
--- a/src/main/kotlin/moe/nea/firmament/events/HandledScreenKeyPressedEvent.kt
+++ b/src/main/kotlin/moe/nea/firmament/events/HandledScreenKeyPressedEvent.kt
@@ -18,10 +18,16 @@
package moe.nea.firmament.events
+import net.minecraft.client.gui.screen.ingame.HandledScreen
import net.minecraft.client.option.KeyBinding
import moe.nea.firmament.keybindings.IKeyBinding
-data class HandledScreenKeyPressedEvent(val keyCode: Int, val scanCode: Int, val modifiers: Int) : FirmamentEvent.Cancellable() {
+data class HandledScreenKeyPressedEvent(
+ val screen: HandledScreen<*>,
+ val keyCode: Int,
+ val scanCode: Int,
+ val modifiers: Int
+) : FirmamentEvent.Cancellable() {
companion object : FirmamentEventBus<HandledScreenKeyPressedEvent>()
fun matches(keyBinding: KeyBinding): Boolean {
diff --git a/src/main/kotlin/moe/nea/firmament/features/debug/DeveloperFeatures.kt b/src/main/kotlin/moe/nea/firmament/features/debug/DeveloperFeatures.kt
index 253bc0d..ffa0fd2 100644
--- a/src/main/kotlin/moe/nea/firmament/features/debug/DeveloperFeatures.kt
+++ b/src/main/kotlin/moe/nea/firmament/features/debug/DeveloperFeatures.kt
@@ -2,16 +2,25 @@ package moe.nea.firmament.features.debug
import java.nio.file.Path
import java.util.concurrent.CompletableFuture
+import org.lwjgl.glfw.GLFW
import kotlin.io.path.absolute
import kotlin.io.path.exists
import net.minecraft.client.MinecraftClient
+import net.minecraft.text.ClickEvent
+import net.minecraft.text.HoverEvent
+import net.minecraft.text.Style
import net.minecraft.text.Text
+import net.minecraft.util.Formatting
import moe.nea.firmament.Firmament
+import moe.nea.firmament.events.HandledScreenKeyPressedEvent
import moe.nea.firmament.features.FirmamentFeature
import moe.nea.firmament.gui.config.ManagedConfig
+import moe.nea.firmament.keybindings.IKeyBinding
+import moe.nea.firmament.mixins.accessor.AccessorHandledScreen
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.TimeMark
import moe.nea.firmament.util.iterate
+import moe.nea.firmament.util.skyBlockId
object DeveloperFeatures : FirmamentFeature {
override val identifier: String
@@ -50,5 +59,23 @@ object DeveloperFeatures : FirmamentFeature {
}
override fun onLoad() {
+ HandledScreenKeyPressedEvent.subscribe {
+ if (it.matches(IKeyBinding.ofKeyCode(GLFW.GLFW_KEY_K))) {
+ it.screen as AccessorHandledScreen
+ val focussedSlot = it.screen.focusedSlot_NEU ?: return@subscribe
+ val item = focussedSlot.stack ?: return@subscribe
+ val ident = item.skyBlockId?.identifier.toString()
+ MinecraftClient.getInstance().inGameHud.chatHud.addMessage(
+ Text.translatable(
+ "firmament.debug.skyblockid",
+ ident
+ ).setStyle(
+ Style.EMPTY.withColor(Formatting.AQUA)
+ .withClickEvent(ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, ident))
+ .withHoverEvent(HoverEvent(HoverEvent.Action.SHOW_TEXT, Text.translatable("firmament.debug.skyblockid.copy")))
+ )
+ )
+ }
+ }
}
}
diff --git a/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt b/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt
index 0b25e44..b73c591 100644
--- a/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt
+++ b/src/main/kotlin/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt
@@ -5,7 +5,7 @@ import moe.nea.firmament.events.CustomItemModelEvent
import moe.nea.firmament.events.TickEvent
import moe.nea.firmament.features.FirmamentFeature
import moe.nea.firmament.gui.config.ManagedConfig
-import moe.nea.firmament.util.extraAttributes
+import moe.nea.firmament.util.skyBlockId
object CustomSkyBlockTextures : FirmamentFeature {
override val identifier: String
@@ -22,10 +22,8 @@ object CustomSkyBlockTextures : FirmamentFeature {
override fun onLoad() {
CustomItemModelEvent.subscribe {
if (!TConfig.enabled) return@subscribe
- val extra = it.itemStack.extraAttributes
- val id = extra.getString("id")
- if (id.isNotBlank())
- it.overrideModel = ModelIdentifier("firmskyblock", id.lowercase(), "inventory")
+ val id = it.itemStack.skyBlockId ?: return@subscribe
+ it.overrideModel = ModelIdentifier("firmskyblock", id.identifier.path, "inventory")
}
TickEvent.subscribe {
if (it.tickCount % TConfig.cacheDuration == 0)