diff options
11 files changed, 46 insertions, 46 deletions
diff --git a/build.gradle.kts b/build.gradle.kts index aed1c07..1eea5e8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -201,7 +201,7 @@ val yaclSourceSet = createIsolatedSourceSet("yacl") val wildfireGenderSourceSet = createIsolatedSourceSet("wildfireGender") val jadeSourceSet = createIsolatedSourceSet("jade") val modmenuSourceSet = createIsolatedSourceSet("modmenu") -val reiSourceSet = createIsolatedSourceSet("rei") +val reiSourceSet = createIsolatedSourceSet("rei", isEnabled = false) val moulconfigSourceSet = createIsolatedSourceSet("moulconfig") val irisSourceSet = createIsolatedSourceSet("iris") val customTexturesSourceSet = createIsolatedSourceSet("texturePacks", "texturePacks") @@ -254,7 +254,7 @@ dependencies { // Actual dependencies - val reiDeps = libs.rei.dev + val reiDeps = libs.rei (reiSourceSet.modImplementationConfigurationName)(reiDeps.api) (reiSourceSet.modRuntimeOnlyConfigurationName)(reiDeps.fabric) nonModImplentation(libs.repoparser) 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 |
