Add custom skull texture keybind for items
This commit is contained in:
@@ -10,7 +10,7 @@ fabric_kotlin = "1.9.4+kotlin.1.8.21"
|
|||||||
yarn = "1.20.4+build.3"
|
yarn = "1.20.4+build.3"
|
||||||
libgui = "9.2.2+1.20.2"
|
libgui = "9.2.2+1.20.2"
|
||||||
rei = "14.0.688"
|
rei = "14.0.688"
|
||||||
devauth = "1.0.0"
|
devauth = "1.2.0"
|
||||||
modmenu = "9.0.0"
|
modmenu = "9.0.0"
|
||||||
ktor = "2.3.0"
|
ktor = "2.3.0"
|
||||||
dbus_java = "4.2.1"
|
dbus_java = "4.2.1"
|
||||||
|
|||||||
@@ -11,5 +11,11 @@ pkgs.mkShell {
|
|||||||
temurin-bin-17
|
temurin-bin-17
|
||||||
reuse
|
reuse
|
||||||
pre-commit
|
pre-commit
|
||||||
|
glfw
|
||||||
|
libGL
|
||||||
];
|
];
|
||||||
|
shellHook = ''
|
||||||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.glfw}/lib"
|
||||||
|
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${pkgs.libGL}/lib"
|
||||||
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ package moe.nea.firmament.features.debug
|
|||||||
import net.minecraft.block.SkullBlock
|
import net.minecraft.block.SkullBlock
|
||||||
import net.minecraft.block.entity.SkullBlockEntity
|
import net.minecraft.block.entity.SkullBlockEntity
|
||||||
import net.minecraft.item.ItemStack
|
import net.minecraft.item.ItemStack
|
||||||
|
import net.minecraft.item.Items
|
||||||
|
import net.minecraft.nbt.NbtHelper
|
||||||
import net.minecraft.text.Text
|
import net.minecraft.text.Text
|
||||||
import net.minecraft.util.hit.BlockHitResult
|
import net.minecraft.util.hit.BlockHitResult
|
||||||
import net.minecraft.util.hit.HitResult
|
import net.minecraft.util.hit.HitResult
|
||||||
@@ -25,6 +27,7 @@ import moe.nea.firmament.mixins.accessor.AccessorHandledScreen
|
|||||||
import moe.nea.firmament.util.ClipboardUtils
|
import moe.nea.firmament.util.ClipboardUtils
|
||||||
import moe.nea.firmament.util.MC
|
import moe.nea.firmament.util.MC
|
||||||
import moe.nea.firmament.util.focusedItemStack
|
import moe.nea.firmament.util.focusedItemStack
|
||||||
|
import moe.nea.firmament.util.getOrCreateCompoundTag
|
||||||
import moe.nea.firmament.util.skyBlockId
|
import moe.nea.firmament.util.skyBlockId
|
||||||
|
|
||||||
object PowerUserTools : FirmamentFeature {
|
object PowerUserTools : FirmamentFeature {
|
||||||
@@ -105,7 +108,8 @@ object PowerUserTools : FirmamentFeature {
|
|||||||
return@subscribe
|
return@subscribe
|
||||||
}
|
}
|
||||||
ClipboardUtils.setTextContent(sbId.neuItem)
|
ClipboardUtils.setTextContent(sbId.neuItem)
|
||||||
lastCopiedStack = Pair(item, Text.stringifiedTranslatable("firmament.tooltip.copied.skyblockid", sbId.neuItem))
|
lastCopiedStack =
|
||||||
|
Pair(item, Text.stringifiedTranslatable("firmament.tooltip.copied.skyblockid", sbId.neuItem))
|
||||||
} else if (it.matches(TConfig.copyTexturePackId)) {
|
} else if (it.matches(TConfig.copyTexturePackId)) {
|
||||||
val model = CustomItemModelEvent.getModelIdentifier(item)
|
val model = CustomItemModelEvent.getModelIdentifier(item)
|
||||||
if (model == null) {
|
if (model == null) {
|
||||||
@@ -113,11 +117,31 @@ object PowerUserTools : FirmamentFeature {
|
|||||||
return@subscribe
|
return@subscribe
|
||||||
}
|
}
|
||||||
ClipboardUtils.setTextContent(model.toString())
|
ClipboardUtils.setTextContent(model.toString())
|
||||||
lastCopiedStack = Pair(item, Text.stringifiedTranslatable("firmament.tooltip.copied.modelid", model.toString()))
|
lastCopiedStack =
|
||||||
|
Pair(item, Text.stringifiedTranslatable("firmament.tooltip.copied.modelid", model.toString()))
|
||||||
} else if (it.matches(TConfig.copyNbtData)) {
|
} else if (it.matches(TConfig.copyNbtData)) {
|
||||||
val nbt = item.orCreateNbt.toString()
|
val nbt = item.orCreateNbt.toString()
|
||||||
ClipboardUtils.setTextContent(nbt)
|
ClipboardUtils.setTextContent(nbt)
|
||||||
lastCopiedStack = Pair(item, Text.translatable("firmament.tooltip.copied.nbt"))
|
lastCopiedStack = Pair(item, Text.translatable("firmament.tooltip.copied.nbt"))
|
||||||
|
} else if (it.matches(TConfig.copySkullTexture)) {
|
||||||
|
if (item.item != Items.PLAYER_HEAD) {
|
||||||
|
lastCopiedStack = Pair(item, Text.translatable("firmament.tooltip.copied.skull-id.fail.no-skull"))
|
||||||
|
return@subscribe
|
||||||
|
}
|
||||||
|
val profile = NbtHelper.toGameProfile(item.orCreateNbt.getOrCreateCompoundTag("SkullOwner"))
|
||||||
|
if (profile == null) {
|
||||||
|
lastCopiedStack = Pair(item, Text.translatable("firmament.tooltip.copied.skull-id.fail.no-profile"))
|
||||||
|
return@subscribe
|
||||||
|
}
|
||||||
|
val skullTexture = CustomSkyBlockTextures.getSkullTexture(profile)
|
||||||
|
if (skullTexture == null) {
|
||||||
|
lastCopiedStack = Pair(item, Text.translatable("firmament.tooltip.copied.skull-id.fail.no-texture"))
|
||||||
|
return@subscribe
|
||||||
|
}
|
||||||
|
ClipboardUtils.setTextContent(skullTexture.toString())
|
||||||
|
lastCopiedStack =
|
||||||
|
Pair(item, Text.stringifiedTranslatable("firmament.tooltip.copied.skull-id", skullTexture.toString()))
|
||||||
|
println("Copied skull id: $skullTexture")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user