From b501efc51519220fb30aebd054235d8c0c4ba719 Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Wed, 12 Oct 2022 21:45:16 +0700 Subject: [PATCH] Make slots appear to mods at "proper" positions --- build.gradle.kts | 3 +++ gradle.properties | 1 + .../dbotthepony/mc/otm/client/screen/MatteryScreen.kt | 7 +++++++ .../mc/otm/client/screen/panels/SlotPanel.kt | 10 ++++++++++ src/main/resources/META-INF/accesstransformer.cfg | 3 +++ 5 files changed, 24 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index e512b3216..059d89680 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -186,6 +186,7 @@ dependencies { val cosmetic_armor_reworked_version: String by project val jade_id: String by project val worldedit_fileid: String by project + val more_overlays_version: String by project implementation(fg.deobf("top.theillusivec4.curios:curios-forge:${mc_version}-${curios_version}")) compileOnly(fg.deobf("lain.mods.cos:CosmeticArmorReworked:${mc_version}-${cosmetic_armor_reworked_version}")) @@ -197,6 +198,7 @@ dependencies { runtimeOnly(fg.deobf("curse.maven:jade-324717:${jade_id}")) runtimeOnly(fg.deobf("curse.maven:worldedit-225608:${worldedit_fileid}")) + runtimeOnly(fg.deobf("at.ridgo8.moreoverlays:MoreOverlays-updated:${more_overlays_version}")) implementation(fg.deobf("mekanism:Mekanism:${mc_version}-${mekanism_version}:all")) } @@ -310,6 +312,7 @@ repositories { includeGroup("yalter.mousetweaks") includeGroup("mekanism") includeGroup("lain.mods.cos") + includeGroup("at.ridgo8.moreoverlays") } } diff --git a/gradle.properties b/gradle.properties index 96afafa6b..610692986 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,6 +23,7 @@ curios_version=5.1.1.0 cosmetic_armor_reworked_version=v1 jade_id=4010505 worldedit_fileid=3922622 +more_overlays_version=1.21.3-mc1.19 kotlin_for_forge_version=3.1.0 kotlin_version=1.6.10 diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt index 2470ed1b2..0468f706d 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/MatteryScreen.kt @@ -56,6 +56,13 @@ abstract class MatteryScreen(menu: T, inventory: Inventory, tit val quickCraftingType get() = quickCraftingType val isQuickCrafting get() = isQuickCrafting + init { + for (slot in menu.slots) { + slot.x = Int.MAX_VALUE + slot.y = Int.MAX_VALUE + } + } + private val inventorySlotsRows = Int2ObjectAVLTreeMap>>() private lateinit var slotListCanvas: EditablePanel> private lateinit var inventoryScrollbar: DiscreteScrollBarPanel> diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/SlotPanel.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/SlotPanel.kt index 983fd3f59..263da4a72 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/SlotPanel.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/client/screen/panels/SlotPanel.kt @@ -18,6 +18,7 @@ import ru.dbotthepony.mc.otm.client.render.drawRect import ru.dbotthepony.mc.otm.client.render.setDrawColor import ru.dbotthepony.mc.otm.client.screen.MatteryScreen import javax.annotation.Nonnull +import kotlin.math.roundToInt open class SlotPanel, out T : Slot> @JvmOverloads constructor( screen: S, @@ -47,7 +48,16 @@ open class SlotPanel, out T : Slot> @JvmOverloads const override val itemStack: ItemStack get() = slot.item + override fun visibilityChanges(new: Boolean, old: Boolean) { + if (!new) { + slot.x = Int.MAX_VALUE + slot.y = Int.MAX_VALUE + } + } + override fun innerRender(stack: PoseStack, mouseX: Float, mouseY: Float, partialTick: Float) { + slot.x = absoluteX.roundToInt() - screen.guiLeft + slot.y = absoluteY.roundToInt() - screen.guiTop renderSlotBackground(stack, mouseX, mouseY, partialTick) var itemstack = slot.item diff --git a/src/main/resources/META-INF/accesstransformer.cfg b/src/main/resources/META-INF/accesstransformer.cfg index 0a34cc6a3..06aa86123 100644 --- a/src/main/resources/META-INF/accesstransformer.cfg +++ b/src/main/resources/META-INF/accesstransformer.cfg @@ -76,3 +76,6 @@ public com.mojang.math.Matrix3f f_8139_ # m12 public com.mojang.math.Matrix3f f_8140_ # m20 public com.mojang.math.Matrix3f f_8141_ # m21 public com.mojang.math.Matrix3f f_8142_ # m22 + +public-f net.minecraft.world.inventory.Slot f_40220_ # x +public-f net.minecraft.world.inventory.Slot f_40221_ # y