aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt8
-rw-r--r--src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBKatRecipe.kt37
-rw-r--r--src/compat/yacl/java/KeybindingController.kt16
-rw-r--r--src/compat/yacl/java/YaclIntegration.kt4
-rw-r--r--src/main/kotlin/keybindings/GenericInputButton.kt1
-rw-r--r--src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt2
-rw-r--r--src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt6
-rw-r--r--src/texturePacks/java/moe/nea/firmament/features/texturepack/PredicateModel.kt7
-rw-r--r--src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/GenericComponentPredicate.kt3
-rw-r--r--src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/SkullPredicate.kt4
10 files changed, 44 insertions, 44 deletions
diff --git a/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt b/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt
index 53e3255..f5b58c5 100644
--- a/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt
+++ b/src/compat/jade/java/moe/nea/firmament/compat/jade/CustomFakeBlockProvider.kt
@@ -17,11 +17,10 @@ class CustomFakeBlockProvider(val registration: IWailaClientRegistration) : Jade
): Accessor<*>? {
if (!JadeIntegration.TConfig.blockDetection) return accessor
if (accessor !is BlockAccessor) return accessor
- val customBlock = JadeIntegration.customBlocks[accessor.block]
- if (customBlock == null) return accessor
+ val customBlock = JadeIntegration.customBlocks[accessor.block] ?: return accessor
return registration.blockAccessor()
.from(accessor)
- .fakeBlock(customBlock.getDisplayItem(accessor.block))
+ .serversideRep(customBlock.getDisplayItem(accessor.block))
.build()
}
@@ -33,8 +32,7 @@ class CustomFakeBlockProvider(val registration: IWailaClientRegistration) : Jade
@JvmStatic
fun getCustomBlock(accessor: BlockAccessor): MiningRepoData.CustomMiningBlock? {
- if (!accessor.isFakeBlock) return null
- val item = accessor.fakeBlock
+ val item = accessor.serversideRep ?: return null
return item.get(FirmamentDataComponentTypes.CUSTOM_MINING_BLOCK_DATA)
}
}
diff --git a/src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBKatRecipe.kt b/src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBKatRecipe.kt
index cb7877d..5de315c 100644
--- a/src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBKatRecipe.kt
+++ b/src/compat/rei/java/moe/nea/firmament/compat/rei/recipes/SBKatRecipe.kt
@@ -18,6 +18,7 @@ import me.shedaniel.rei.api.client.gui.widgets.Widgets
import me.shedaniel.rei.api.client.registry.display.DisplayCategory
import me.shedaniel.rei.api.common.category.CategoryIdentifier
import kotlin.time.Duration.Companion.seconds
+import net.minecraft.client.gui.Click
import net.minecraft.client.gui.DrawContext
import net.minecraft.client.gui.Element
import net.minecraft.item.Items
@@ -175,56 +176,50 @@ fun wrapWidget(bounds: Rectangle, component: GuiComponent): Widget {
)
}
- override fun mouseClicked(mouseX: Double, mouseY: Double, button: Int): Boolean {
- val mouseXInt = mouseX.toInt()
- val mouseYInt = mouseY.toInt()
+ override fun mouseClicked(click: Click, doubled: Boolean): Boolean {
+ val mouseXInt = click.x.toInt()
+ val mouseYInt = click.y.toInt()
return component.mouseEvent(
- MouseEvent.Click(button, true),
+ MouseEvent.Click(click.button(), true),
GuiImmediateContext(
IMinecraft.INSTANCE.provideTopLevelRenderContext(),
bounds.minX, bounds.minY,
bounds.width, bounds.height,
mouseXInt - bounds.minX, mouseYInt - bounds.minY,
mouseXInt, mouseYInt,
- mouseX.toFloat(), mouseY.toFloat()
+ click.x.toFloat(), click.y.toFloat()
)
)
}
- override fun mouseReleased(mouseX: Double, mouseY: Double, button: Int): Boolean {
- val mouseXInt = mouseX.toInt()
- val mouseYInt = mouseY.toInt()
+ override fun mouseReleased(click: Click): Boolean {
+ val mouseXInt = click.x.toInt()
+ val mouseYInt = click.y.toInt()
return component.mouseEvent(
- MouseEvent.Click(button, false),
+ MouseEvent.Click(click.button(), false),
GuiImmediateContext(
IMinecraft.INSTANCE.provideTopLevelRenderContext(),
bounds.minX, bounds.minY,
bounds.width, bounds.height,
mouseXInt - bounds.minX, mouseYInt - bounds.minY,
mouseXInt, mouseYInt,
- mouseX.toFloat(), mouseY.toFloat()
+ click.x.toFloat(), click.y.toFloat()
)
)
}
- override fun mouseDragged(
- mouseX: Double,
- mouseY: Double,
- button: Int,
- deltaX: Double,
- deltaY: Double
- ): Boolean {
- val mouseXInt = mouseX.toInt()
- val mouseYInt = mouseY.toInt()
+ override fun mouseDragged(click: Click, offsetX: Double, offsetY: Double): Boolean {
+ val mouseXInt = click.x.toInt()
+ val mouseYInt = click.y.toInt()
return component.mouseEvent(
- MouseEvent.Move(deltaX.toFloat(), deltaY.toFloat()),
+ MouseEvent.Move(offsetX.toFloat(), offsetY.toFloat()),
GuiImmediateContext(
IMinecraft.INSTANCE.provideTopLevelRenderContext(),
bounds.minX, bounds.minY,
bounds.width, bounds.height,
mouseXInt - bounds.minX, mouseYInt - bounds.minY,
mouseXInt, mouseYInt,
- mouseX.toFloat(), mouseY.toFloat()
+ click.x.toFloat(), click.y.toFloat()
)
)
diff --git a/src/compat/yacl/java/KeybindingController.kt b/src/compat/yacl/java/KeybindingController.kt
index c303da2..6ceef5d 100644
--- a/src/compat/yacl/java/KeybindingController.kt
+++ b/src/compat/yacl/java/KeybindingController.kt
@@ -6,6 +6,8 @@ import dev.isxander.yacl3.api.utils.Dimension
import dev.isxander.yacl3.gui.AbstractWidget
import dev.isxander.yacl3.gui.YACLScreen
import dev.isxander.yacl3.gui.controllers.ControllerWidget
+import net.minecraft.client.gui.Click
+import net.minecraft.client.input.KeyInput
import net.minecraft.text.Text
import moe.nea.firmament.gui.config.KeyBindingHandler
import moe.nea.firmament.gui.config.KeyBindingStateManager
@@ -57,12 +59,12 @@ class KeybindingWidget(
return sm.label
}
- override fun keyPressed(keyCode: Int, scanCode: Int, modifiers: Int): Boolean {
- return sm.keyboardEvent(GenericInputButton.ofKeyAndScan(keyCode, scanCode), true)
+ override fun keyPressed(keyEvent: KeyInput): Boolean {
+ return sm.keyboardEvent(GenericInputButton.of(keyEvent), true)
}
- override fun keyReleased(keyCode: Int, scanCode: Int, modifiers: Int): Boolean {
- return sm.keyboardEvent(GenericInputButton.ofKeyAndScan(keyCode, scanCode), false)
+ override fun keyReleased(keyEvent: KeyInput): Boolean {
+ return sm.keyboardEvent(GenericInputButton.of(keyEvent), false)
}
override fun unfocus() {
@@ -74,11 +76,11 @@ class KeybindingWidget(
if (!focused) sm.onLostFocus()
}
- override fun mouseClicked(mouseX: Double, mouseY: Double, button: Int): Boolean {
+ override fun mouseClicked(mouseButtonEvent: Click, doubleClick: Boolean): Boolean {
if (isHovered) {
- sm.onClick(button)
+ sm.onClick(mouseButtonEvent.button())
return true
}
- return super.mouseClicked(mouseX, mouseY, button)
+ return super.mouseClicked(mouseButtonEvent, doubleClick)
}
}
diff --git a/src/compat/yacl/java/YaclIntegration.kt b/src/compat/yacl/java/YaclIntegration.kt
index 79ab528..d94e96f 100644
--- a/src/compat/yacl/java/YaclIntegration.kt
+++ b/src/compat/yacl/java/YaclIntegration.kt
@@ -18,7 +18,6 @@ import dev.isxander.yacl3.api.controller.StringControllerBuilder
import dev.isxander.yacl3.api.controller.TickBoxControllerBuilder
import dev.isxander.yacl3.api.controller.ValueFormatter
import dev.isxander.yacl3.gui.YACLScreen
-import dev.isxander.yacl3.gui.tab.ListHolderWidget
import io.github.notenoughupdates.moulconfig.ChromaColour
import java.awt.Color
import kotlin.time.Duration
@@ -26,6 +25,7 @@ import kotlin.time.Duration.Companion.seconds
import kotlin.time.DurationUnit
import net.minecraft.client.gui.Element
import net.minecraft.client.gui.screen.Screen
+import net.minecraft.client.gui.widget.ContainerWidget
import net.minecraft.text.Text
import moe.nea.firmament.gui.config.BooleanHandler
import moe.nea.firmament.gui.config.ChoiceHandler
@@ -208,7 +208,7 @@ class YaclIntegration : FirmamentConfigScreenProvider {
return object : YACLScreen(buildConfig(), parent) {
override fun setFocused(focused: Element?) {
if (this.focused is KeybindingWidget &&
- focused is ListHolderWidget<*>
+ focused is ContainerWidget
) {
return
}
diff --git a/src/main/kotlin/keybindings/GenericInputButton.kt b/src/main/kotlin/keybindings/GenericInputButton.kt
index 39bb4dd..7a3d8d5 100644
--- a/src/main/kotlin/keybindings/GenericInputButton.kt
+++ b/src/main/kotlin/keybindings/GenericInputButton.kt
@@ -62,6 +62,7 @@ sealed interface GenericInputButton {
companion object {
+ fun of(event: KeyInput) = ofKeyAndScan(event.keycode, event.scancode)
fun escape() = ofKeyCode(GLFW.GLFW_KEY_ESCAPE)
fun ofKeyCode(keyCode: Int): GenericInputButton = KeyCodeButton(keyCode)
fun ofScanCode(scanCode: Int): GenericInputButton = ScanCodeButton(scanCode)
diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt
index bb205e7..b837a3c 100644
--- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt
+++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomSkyBlockTextures.kt
@@ -98,7 +98,7 @@ object CustomSkyBlockTextures {
}
fun getSkullTexture(profile: ProfileComponent): Identifier? {
- val id = getSkullId(profile.properties["textures"].firstOrNull() ?: return null) ?: return null
+ val id = getSkullId(profile.gameProfile.properties["textures"].firstOrNull() ?: return null) ?: return null
return Identifier.of("firmskyblock", "textures/placedskull/$id.png")
}
diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt
index 3e8cc4e..8b97a4b 100644
--- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt
+++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt
@@ -13,6 +13,7 @@ import net.minecraft.client.world.ClientWorld
import net.minecraft.entity.LivingEntity
import net.minecraft.item.ItemDisplayContext
import net.minecraft.item.ItemStack
+import net.minecraft.util.HeldItemContext
import net.minecraft.util.Identifier
object HeadModelChooser {
@@ -28,13 +29,14 @@ object HeadModelChooser {
}
data class Baked(val head: ItemModel, val regular: ItemModel) : ItemModel {
+
override fun update(
state: ItemRenderState,
stack: ItemStack?,
resolver: ItemModelManager?,
displayContext: ItemDisplayContext,
world: ClientWorld?,
- user: LivingEntity?,
+ heldItemContext: HeldItemContext?,
seed: Int
) {
val instance =
@@ -44,7 +46,7 @@ object HeadModelChooser {
} else {
regular
}
- instance.update(state, stack, resolver, displayContext, world, user, seed)
+ instance.update(state, stack, resolver, displayContext, world, heldItemContext, seed)
}
}
diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/PredicateModel.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/PredicateModel.kt
index e6b5bcf..a3926a8 100644
--- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/PredicateModel.kt
+++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/PredicateModel.kt
@@ -14,6 +14,7 @@ import net.minecraft.client.world.ClientWorld
import net.minecraft.entity.LivingEntity
import net.minecraft.item.ItemDisplayContext
import net.minecraft.item.ItemStack
+import net.minecraft.util.HeldItemContext
import net.minecraft.util.Identifier
import moe.nea.firmament.features.texturepack.predicates.AndPredicate
@@ -33,15 +34,15 @@ class PredicateModel {
resolver: ItemModelManager?,
displayContext: ItemDisplayContext?,
world: ClientWorld?,
- user: LivingEntity?,
+ heldItemContext: HeldItemContext?,
seed: Int
) {
val model =
overrides
- .findLast { it.predicate.test(stack, user) }
+ .findLast { it.predicate.test(stack, heldItemContext?.entity) }
?.model
?: fallback
- model.update(state, stack, resolver, displayContext, world, user, seed)
+ model.update(state, stack, resolver, displayContext, world, heldItemContext, seed)
}
}
diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/GenericComponentPredicate.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/GenericComponentPredicate.kt
index 71392ef..74fd0d6 100644
--- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/GenericComponentPredicate.kt
+++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/GenericComponentPredicate.kt
@@ -16,6 +16,7 @@ import moe.nea.firmament.features.texturepack.FirmamentModelPredicate
import moe.nea.firmament.features.texturepack.FirmamentModelPredicateParser
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.mc.NbtPrism
+import moe.nea.firmament.util.mc.unsafeNbt
data class GenericComponentPredicate<T>(
val componentType: ComponentType<T>,
@@ -30,7 +31,7 @@ data class GenericComponentPredicate<T>(
val component = stack.get(componentType) ?: return false
// TODO: cache this
val nbt =
- if (component is NbtComponent) component.nbt
+ if (component is NbtComponent) component.unsafeNbt
else codec.encodeStart(NbtOps.INSTANCE, component)
.resultOrPartial().getOrNull() ?: return false
return path.access(nbt).any { matcher.matches(it) }
diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/SkullPredicate.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/SkullPredicate.kt
index f17582d..935fe7a 100644
--- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/SkullPredicate.kt
+++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/SkullPredicate.kt
@@ -36,13 +36,13 @@ class SkullPredicate(
override fun test(stack: ItemStack, holder: LivingEntity?): Boolean {
if (!stack.isOf(Items.PLAYER_HEAD)) return false
val profile = stack.get(DataComponentTypes.PROFILE) ?: return false
- val textureProperty = profile.properties["textures"].firstOrNull()
+ val textureProperty = profile.gameProfile.properties["textures"].firstOrNull()
val textureMode = lazy(LazyThreadSafetyMode.NONE) {
decodeProfileTextureProperty(textureProperty ?: return@lazy null)
}
when {
profileId != null
- && profileId != profile.uuid.getOrNull() ->
+ && profileId != profile.gameProfile.id ->
return false
textureValue != null