Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 38 additions & 11 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,13 @@ plugins {
alias(libs.plugins.publish)
}

version = providers.gradleProperty("mod_version").get() + "+" + libs.versions.minecraft.get()
val versionedLibs = the<VersionCatalogsExtension>().find("versionedLibs${sc.current.project.replace(".", "")}").get()
fun VersionCatalog.library(name: String): Provider<MinimalExternalModuleDependency> = this.findLibrary(name).get()
fun VersionCatalog.version(name: String): VersionConstraint = this.findVersion(name).get()

version = providers.gradleProperty("mod_version").get() + "+" + sc.current.version
group = providers.gradleProperty("maven_group").get()
base.archivesName = rootProject.name

repositories {
exclusiveContent {
Expand Down Expand Up @@ -54,27 +59,27 @@ repositories {
}

dependencies {
minecraft(libs.minecraft)
minecraft(versionedLibs.library("minecraft"))

implementation(libs.fabric.loader)
implementation(libs.fabric.language.kotlin)

implementation(libs.fabric.api)
api(libs.skyblock.api) {
implementation(versionedLibs.library("fabric.api"))
api(versionedLibs.library("skyblock.api")) {
Comment thread
Alex33856 marked this conversation as resolved.
capabilities {
requireCapability("tech.thatgravyboat:skyblock-api-26.1")
requireCapability("tech.thatgravyboat:skyblock-api-${sc.current.project}")
}
}
include(libs.skyblock.api) {
include(versionedLibs.library("skyblock.api")) {
capabilities {
requireCapability("tech.thatgravyboat:skyblock-api-26.1")
requireCapability("tech.thatgravyboat:skyblock-api-${sc.current.project}")
}
}

includeImplementation(libs.keval)
includeImplementation(libs.lattice)
includeImplementation(versionedLibs.library("lattice"))

compileOnly(libs.modmenu)
compileOnly(versionedLibs.library("modmenu"))
}

fun DependencyHandlerScope.includeImplementation(dependencyNotation: Provider<*>) {
Expand All @@ -87,17 +92,22 @@ loom {
ideConfigGenerated(true)
}

accessWidenerPath = file("src/main/resources/skyblock-item-list.classtweaker")
accessWidenerPath = sc.process(
rootProject.file("src/main/resources/skyblock-item-list.classtweaker"),
"build/skyblock-item-list.classtweaker"
)
}

tasks.processResources {
inputs.property("version", project.property("version"))
inputs.property("sbapi", libs.skyblock.api.get().version)
inputs.property("sbapi", versionedLibs.version("skyblock.api"))
inputs.property("minecraft", versionedLibs.version("mcRange"))

filesMatching("fabric.mod.json") {
val props = mapOf(
"version" to inputs.properties["version"],
"sbapi" to inputs.properties["sbapi"],
"minecraft" to inputs.properties["minecraft"],
)
expand(props)
}
Expand Down Expand Up @@ -141,6 +151,23 @@ tasks.register<Jar>("apiSourcesJar") {

tasks.named("assemble") {
dependsOn("apiJar", "apiSourcesJar")
doLast {
val files = listOf("${base.archivesName.get()}-$version.jar", "api/${base.archivesName.get()}-api-$version.jar")
for (fileName in files) {
val sourceFile = project.projectDir.resolve("build/libs/${fileName}")
val targetFile = rootProject.projectDir.resolve("build/libs/${fileName}")
targetFile.parentFile.mkdirs()
targetFile.writeBytes(sourceFile.readBytes())
}
}
}

tasks.named("clean") {
doLast {
val libsFolder = rootProject.projectDir.resolve("build/libs")
if (!libsFolder.exists()) return@doLast
delete(libsFolder)
}
}

publishing {
Expand Down
14 changes: 14 additions & 0 deletions gradle/26_1.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[versions]
minecraft = "26.1.2"
mcRange = "~26.1"
fabric-api = "0.148.0+26.1.2"
skyblock-api = "4.1.13"
lattice = "2.0.1+26.1"
modmenu = "18.0.0-alpha.6"

[libraries]
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-api" }
skyblock-api = { module = "tech.thatgravyboat:skyblock-api", version.ref = "skyblock-api" }
lattice = { module = "com.moulberry:lattice", version.ref = "lattice" }
modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" }
14 changes: 14 additions & 0 deletions gradle/26_2.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
[versions]
minecraft = "26.2"
mcRange = "~26.2"
fabric-api = "0.152.0+26.2"
skyblock-api = "4.2.1"
lattice = "2.0.1+26.1"
modmenu = "18.0.0-alpha.6"

[libraries]
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-api" }
skyblock-api = { module = "tech.thatgravyboat:skyblock-api", version.ref = "skyblock-api" }
lattice = { module = "com.moulberry:lattice", version.ref = "lattice" }
modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" }
10 changes: 0 additions & 10 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,13 @@ fabric-language-kotlin = "1.13.11+kotlin.2.3.21"
fabric-loom = "1.16-SNAPSHOT"
kotlin = "2.3.21"

minecraft = "26.1.2"
fabric-api = "0.148.0+26.1.2"
skyblock-api = "4.1.13"
keval = "1.1.1"
lattice = "2.0.1+26.1"
modmenu = "18.0.0-alpha.6"


[libraries]
fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" }
fabric-language-kotlin = { module = "net.fabricmc:fabric-language-kotlin", version.ref = "fabric-language-kotlin" }
minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" }
fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fabric-api" }
skyblock-api = { module = "tech.thatgravyboat:skyblock-api", version.ref = "skyblock-api" }
keval = { module = "com.notkamui.libs:keval", version.ref = "keval" }
lattice = { module = "com.moulberry:lattice", version.ref = "lattice" }
modmenu = { module = "com.terraformersmc:modmenu", version.ref = "modmenu" }

[plugins]
fabric-loom = { id = "net.fabricmc.fabric-loom", version.ref = "fabric-loom" }
Expand Down
31 changes: 25 additions & 6 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,15 +1,34 @@
pluginManagement {
repositories {
maven {
name = "Fabric"
url = uri("https://maven.fabricmc.net/")
}
maven("https://maven.fabricmc.net/") { name = "Fabric" }
maven("https://maven.kikugie.dev/snapshots") { name = "KikuGie Snapshots" }
mavenCentral()
gradlePluginPortal()
}
}

// Should match your modid
rootProject.name = "skyblock-item-list"

val versions = listOf("26.1")
plugins {
id("dev.kikugie.stonecutter") version "0.9.6"
}

stonecutter {
create(rootProject) {
version("26.2")
version("26.1", "26.1.2")
}
}

val versions = listOf("26.2", "26.1")

dependencyResolutionManagement {
versionCatalogs {
versions.forEach {
create("versionedLibs${it.replace(".", "")}") {
from(files("gradle/${it.replace(".", "_")}.versions.toml"))
}
}
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.operationpotato.itemlist.mixin;
//? if >=26.2 {
import com.moulberry.lattice.LatticeConfigScreen;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;

@SuppressWarnings("UnstableApiUsage")
@Mixin(LatticeConfigScreen.class)
public class LatticeConfigScreenMixin {
@Shadow
@Final
private @Nullable Screen closeTo;

/**
* @author alex
* @reason Fix onClose not working on 26.2
*/
@Overwrite
public void onClose() {
Minecraft minecraft = Minecraft.getInstance();
if (this.closeTo != null) {
minecraft.gui.setScreen(this.closeTo);
} else {
minecraft.gui.setScreen(null);
}
}
}
//? }
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ object SkyBlockItemList : ClientModInitializer {
FavoritesManager.save()
}

PictureInPictureRendererRegistry.register { ScaledItemRenderer(it.bufferSource()) }
PictureInPictureRendererRegistry.register { ScaledItemRenderer(/*? if <26.2 {*//*it.bufferSource() *//*? }*/) }
}

fun addItemListWidget(mc: Minecraft, screen: Screen, w: Int, h: Int) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import net.minecraft.client.input.MouseButtonEvent
import net.minecraft.util.ARGB
import net.minecraft.util.CommonColors
import net.minecraft.world.item.ItemStack
import tech.thatgravyboat.skyblockapi.helpers.McClient
import tech.thatgravyboat.skyblockapi.helpers.McFont
import tech.thatgravyboat.skyblockapi.helpers.McScreen
import tech.thatgravyboat.skyblockapi.platform.pushPop
Expand Down Expand Up @@ -149,7 +148,7 @@ class CollapsibleStackDisplay(

if (isChildHovered) {
val tooltipLines = getTooltipLines(itemStack)
graphics.setComponentTooltipForNextFrame(McClient.gui.font, tooltipLines, mouseX, mouseY)
graphics.setComponentTooltipForNextFrame(McFont.self, tooltipLines, mouseX, mouseY)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,12 @@ class PaginatedGridLayout(private var x: Int, private var y: Int) : Layout {
return getPageLayout(activePage)?.height ?: -1
}

//? if >=26.2 {
override fun removeChildren() {
gridLayouts.forEach { it.removeChildren() }
}
//? }

class MarkedGridLayout(x: Int, y: Int) : GridLayout(x, y) {
val children: List<AbstractWidget> by lazy { getWidgets() }
var hasBeenArranged: Boolean = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.TooltipFlag
import tech.thatgravyboat.skyblockapi.api.repo.LazyItemStack
import tech.thatgravyboat.skyblockapi.helpers.McClient
import tech.thatgravyboat.skyblockapi.helpers.McFont
import tech.thatgravyboat.skyblockapi.helpers.McLevel
import tech.thatgravyboat.skyblockapi.helpers.McPlayer
import tech.thatgravyboat.skyblockapi.helpers.McScreen
Expand Down Expand Up @@ -79,7 +80,7 @@ open class StackDisplay(
createStackIfEmpty()
extractStack(graphics, stack, x, y, isHovered)
if (isHovered) {
graphics.setComponentTooltipForNextFrame(McClient.gui.font, getTooltipLines(stack), mouseX, mouseY)
graphics.setComponentTooltipForNextFrame(McFont.self, getTooltipLines(stack), mouseX, mouseY)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class IngredientDisplay(val stack: ItemStack, val showStackSize: Boolean = true)
}

if (isHovered) {
graphics.setComponentTooltipForNextFrame(McClient.gui.font, getTooltipLines(), mouseX, mouseY)
graphics.setComponentTooltipForNextFrame(McFont.self, getTooltipLines(), mouseX, mouseY)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ sealed class Currency(

data object BingoPoint : Currency(Text.of("Bingo Point", TextColor.GREEN), "") {
override val stack: ItemStack by registryBoundLazy {
Items.WHITE_DYE.defaultInstance.apply {
//~ if <26.2 'DYE.white().' -> 'WHITE_DYE.'
Items.DYE.white().defaultInstance.apply {
set(DataComponents.CUSTOM_NAME, this@BingoPoint.itemName.apply { italic = false })
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import net.minecraft.client.gui.GuiGraphicsExtractor
import net.minecraft.client.gui.navigation.ScreenRectangle
import net.minecraft.client.gui.render.TextureSetup
import net.minecraft.client.gui.render.pip.PictureInPictureRenderer
import net.minecraft.client.renderer.MultiBufferSource
import net.minecraft.client.renderer.RenderPipelines
import net.minecraft.client.renderer.SubmitNodeCollector
import net.minecraft.client.renderer.item.TrackingItemStackRenderState
import net.minecraft.client.renderer.state.gui.BlitRenderState
import net.minecraft.client.renderer.state.gui.GuiItemRenderState
Expand All @@ -26,10 +26,13 @@ import tech.thatgravyboat.skyblockapi.helpers.McLevel
import tech.thatgravyboat.skyblockapi.helpers.McPlayer
import java.util.*

//? if <26.2
//import net.minecraft.client.renderer.MultiBufferSource

// Taken with Permission from Meowdding-Lib and modified a bit ~J10a1n15
// https://github.com/meowdding/meowdding-lib/blob/master/src/main/kotlin/me/owdding/lib/displays/item/ItemStateRenderer.kt
class ScaledItemRenderer(buffer: MultiBufferSource.BufferSource) :
PictureInPictureRenderer<ScaledItemRenderer.State>(buffer) {
class ScaledItemRenderer(/*? if <26.2 {*//*buffer: MultiBufferSource.BufferSource*//*? }*/) :
PictureInPictureRenderer<ScaledItemRenderer.State>(/*? if <26.2 {*//*buffer*//*? }*/) {

private var textureView: GpuTextureView? = null
private var lastState: State? = null
Expand All @@ -38,21 +41,32 @@ class ScaledItemRenderer(buffer: MultiBufferSource.BufferSource) :
return this.lastState != null && this.lastState == state
}

override fun renderToTexture(state: State, stack: PoseStack) {
override fun renderToTexture(
state: State,
stack: PoseStack,
//? if >=26.2
submitNodeCollector: SubmitNodeCollector
) {
this.lastState = state
this.textureView = RenderSystem.outputColorTextureOverride

stack.scale(1f, -1f, -1f)
val item = state.state

McClient.self.gameRenderer.lighting.setupFor(
//~ if <26.2 'lighting().' -> 'lighting.'
McClient.self.gameRenderer.lighting().setupFor(
if (item.itemStackRenderState().usesBlockLight()) Lighting.Entry.ITEMS_3D else Lighting.Entry.ITEMS_FLAT
)

val featureRenderer = McClient.self.gameRenderer.featureRenderDispatcher
item.itemStackRenderState()
.submit(stack, featureRenderer.submitNodeStorage, LightCoordsUtil.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, 0)
featureRenderer.renderAllFeatures()
//? if <26.2
//val featureRenderer = McClient.self.gameRenderer.featureRenderDispatcher
item.itemStackRenderState().submit(
//~ if <26.2 'submitNodeCollector' -> 'featureRenderer.submitNodeStorage'
stack, submitNodeCollector,
LightCoordsUtil.FULL_BRIGHT, OverlayTexture.NO_OVERLAY, 0
)
//? if <26.2
//featureRenderer.renderAllFeatures()
}

override fun getTranslateY(height: Int, ignored: Int): Float {
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/fabric.mod.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
"accessWidener": "skyblock-item-list.classtweaker",
"depends": {
"fabricloader": ">=0.19.2",
"minecraft": "~26.1",
"minecraft": "${minecraft}",
"java": ">=25",
"fabric-api": "*",
"fabric-language-kotlin": "*",
Expand Down
3 changes: 2 additions & 1 deletion src/main/resources/skyblock-item-list.mixins.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
"package": "com.operationpotato.itemlist.mixin",
"compatibilityLevel": "JAVA_25",
"client": [
"InventoryScreenMixin"
"InventoryScreenMixin",
"LatticeConfigScreenMixin"
],
"injectors": {
"defaultRequire": 1
Expand Down
4 changes: 4 additions & 0 deletions stonecutter.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
plugins {
id("dev.kikugie.stonecutter")
}
stonecutter active "26.2"
Loading