Skip to content

Commit

Permalink
migration: solve 1.20.6 compiling error
Browse files Browse the repository at this point in the history
  • Loading branch information
gloridifice committed Jun 17, 2024
1 parent ac162c9 commit 7d8d64c
Show file tree
Hide file tree
Showing 57 changed files with 647 additions and 690 deletions.
18 changes: 9 additions & 9 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -64,11 +64,11 @@ dependencies {
implementation 'com.akuleshov7:ktoml-core:0.5.1'
implementation 'com.akuleshov7:ktoml-file:0.5.1'

// compile against the JEI API but do not include it at runtime
modCompileOnlyApi("mezz.jei:jei-${mc_version}-common-api:${jei_version}")
modCompileOnlyApi("mezz.jei:jei-${mc_version}-fabric-api:${jei_version}")
// at runtime, use the full JEI jar for Fabric
modRuntimeOnly("mezz.jei:jei-${mc_version}-fabric:${jei_version}")
// // compile against the JEI API but do not include it at runtime
// modCompileOnlyApi("mezz.jei:jei-${mc_version}-common-api:${jei_version}")
// modCompileOnlyApi("mezz.jei:jei-${mc_version}-fabric-api:${jei_version}")
// // at runtime, use the full JEI jar for Fabric
// modRuntimeOnly("mezz.jei:jei-${mc_version}-fabric:${jei_version}")
}

processResources {
Expand All @@ -80,12 +80,12 @@ processResources {
}

tasks.withType(JavaCompile).configureEach {
it.options.release = 17
it.options.release = 21
}

tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
jvmTarget = 17
jvmTarget = 21
}
}

Expand All @@ -95,8 +95,8 @@ java {
// If you remove this line, sources will not be generated.
withSourcesJar()

sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

jar {
Expand Down
13 changes: 6 additions & 7 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Done to increase the memory available to gradle.
org.gradle.jvmargs=-Xmx1G
org.gradle.jvmargs=-Xmx3G
org.gradle.parallel=true

# Fabric Properties
# check these on https://fabricmc.net/develop
mc_version=1.20.1
yarn_mappings=1.20.1+build.10
loader_version=0.15.7
fabric_kotlin_version=1.10.18+kotlin.1.9.22
mc_version=1.20.6
yarn_mappings=1.20.6+build.1
loader_version=0.15.10
fabric_kotlin_version=1.11.0+kotlin.2.0.0

# Mod Properties
mod_version=2.0.0
Expand All @@ -16,5 +16,4 @@ maven_group=xyz.koiro.watersource
archives_base_name=watersource

# Dependencies
fabric_version=0.92.0+1.20.1
jei_version=15.3.0.4
fabric_version=0.97.8+1.20.6
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,6 @@ fun VertexConsumer.quadFace(
.overlay(OverlayTexture.DEFAULT_UV)
.texture(u, v)
.light(240)
.normal(matrixStack.peek().normalMatrix, normalN.x, normalN.y, normalN.z).next()
.normal(matrixStack.peek(), normalN.x, normalN.y, normalN.z).next()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ object ItemTooltipEventHandlers {

val renderItemTooltipHydrationData = ModClientEvents.DrawMouseoverTooltip { context, x, y, stack ->
HydrationDataManager.findByItemStack(stack)?.let { hydrationData ->
val isThirty = hydrationData.effects.any { it.effect.effectType == ModStatusEffects.THIRSTY }
val isThirty = hydrationData.effects?.any { it.effect == ModStatusEffects.THIRSTY } ?: false
if (hydrationData.isDry()) {
if (WSClientConfig.format.showHydrationDryItemTooltip)
drawDry(context, hydrationData, isThirty, x, y)
Expand Down Expand Up @@ -62,8 +62,8 @@ object ItemTooltipEventHandlers {
}

fun drawRestoration(context: DrawContext, hydrationData: HydrationData, isThirty: Boolean, x: Int, y: Int) {
val level = hydrationData.level
val saturation = hydrationData.saturation
val level = hydrationData.level ?: 0
val saturation = hydrationData.saturation ?: 0

val levelCount = ceil(level.toFloat() / 2f).toInt()
val isLevelEndHalf = level % 2 != 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,11 @@ import xyz.koiro.watersource.world.block.entity.FilterBlockEntity

object ModClientNetworking {
fun initialize() {
ClientPlayNetworking.registerGlobalReceiver(ModNetworking.UPDATE_WATER_DATA_ID){ client, _, buf, sent ->
val data = WaterLevelData.readBuf(buf)

ClientPlayNetworking.registerGlobalReceiver(ModNetworking.UPDATE_WATER_LEVEL){ payload, handler ->
val client = handler.client()
client.execute {
val player = client.player!!
player.setAttached(ModAttachmentTypes.WATER_LEVEL, data)
}
}
ClientPlayNetworking.registerGlobalReceiver(ModNetworking.UPDATE_FILTER_ENTITY_ID) { mc, _, buf, sent ->
val pos = buf.readBlockPos()
val entity = mc.world?.getBlockEntity(pos)
if (entity is FilterBlockEntity) {
entity.readPacket(buf)
player.getAttachedOrCreate(ModAttachmentTypes.WATER_LEVEL).setData(payload.level, payload.saturation, payload.exhaustion)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package xyz.koiro.watersource.render.blockentity

import com.mojang.blaze3d.systems.RenderSystem
import net.fabricmc.fabric.api.renderer.v1.render.RenderContext
import net.minecraft.client.MinecraftClient
import net.minecraft.client.render.RenderLayer
import net.minecraft.client.render.VertexConsumerProvider
Expand Down Expand Up @@ -63,7 +62,7 @@ class FilterBERenderer : BlockEntityRenderer<FilterBlockEntity> {

matrices.push()
RenderSystem.enableBlend()
val consumer = vertexConsumers.getBuffer(RenderLayer.getTranslucentNoCrumbling())
val consumer = vertexConsumers.getBuffer(RenderLayer.getGlintTranslucent())
val u0 = fluidSprite.minU
val v0 = fluidSprite.minV
val u1 = fluidSprite.maxU
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,30 @@ package xyz.koiro.watersource.render.color

import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry
import net.fabricmc.fabric.api.client.rendering.v1.ColorProviderRegistry
import net.fabricmc.fabric.api.client.rendering.v1.ColorResolverRegistry
import net.minecraft.client.MinecraftClient
import net.minecraft.item.ItemStack
import net.minecraft.util.math.BlockPos
import net.minecraft.util.math.ColorHelper
import xyz.koiro.watersource.api.storage.getOrCreateFluidStorageData
import xyz.koiro.watersource.world.fluid.ModFluids
import xyz.koiro.watersource.world.item.ModItems

object ModItemColorProviders {
val cupColorProvider = { stack: ItemStack, layer: Int ->
if (layer == 1) {
ColorHelper.Argb.fullAlpha(if (layer == 1) {
stack.getOrCreateFluidStorageData()?.let {
FluidRenderHandlerRegistry.INSTANCE?.get(it.fluid)?.getFluidColor(
MinecraftClient.getInstance().world,
BlockPos.ORIGIN,
ModFluids.PURIFIED_WATER.defaultState
MinecraftClient.getInstance().world, BlockPos.ORIGIN, ModFluids.PURIFIED_WATER.defaultState
)
} ?: 0xFFFFFF
} else {
0xFFFFFF
}
})
}

fun initialize() {

ColorProviderRegistry.ITEM.register(cupColorProvider, ModItems.WOODEN_CUP)
ColorProviderRegistry.ITEM.register(cupColorProvider, ModItems.POTTERY_CUP)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import net.minecraft.util.hit.BlockHitResult
import xyz.koiro.watersource.WSClientConfig
import xyz.koiro.watersource.api.WaterBallRenderer
import xyz.koiro.watersource.api.WaterLevelUiRenderUtils
import xyz.koiro.watersource.api.entry
import xyz.koiro.watersource.world.attachment.ModAttachmentTypes
import xyz.koiro.watersource.world.block.entity.FilterBlockEntity
import xyz.koiro.watersource.world.effect.ModStatusEffects
Expand Down Expand Up @@ -59,7 +60,7 @@ object ModClientHUD {
var y: Int = context.scaledWindowHeight - 39 - offsetBetweenFoodBar
if (player.isSubmergedInWater || player.air < player.maxAir) y -= 10
val xStart: Int = context.scaledWindowWidth / 2 + 91
val isThirty = player.hasStatusEffect(ModStatusEffects.THIRSTY)
val isThirty = player.hasStatusEffect(ModStatusEffects.THIRSTY.entry())

val yOffsetList = if (saturation <= 0.0f && elapsedTime.toInt() % (level * 3 + 1) == 0) {
List(10) {
Expand Down
2 changes: 1 addition & 1 deletion src/client/resources/watersource.client.mixins.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"required": true,
"package": "xyz.koiro.watersource.mixin.client",
"compatibilityLevel": "JAVA_17",
"compatibilityLevel": "JAVA_21",
"client": [
"ExampleClientMixin", "HandledScreenMixin"
],
Expand Down
4 changes: 1 addition & 3 deletions src/main/kotlin/xyz/koiro/watersource/ModItemGroups.kt
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
package xyz.koiro.watersource

import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup
import net.minecraft.enchantment.EnchantmentHelper
import net.minecraft.enchantment.EnchantmentLevelEntry
import net.minecraft.fluid.Fluids
import net.minecraft.item.EnchantedBookItem
import net.minecraft.item.ItemStack
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
import net.minecraft.text.Text
import net.minecraft.village.TradeOffers.EnchantBookFactory
import xyz.koiro.watersource.api.simpleStack
import xyz.koiro.watersource.api.storage.insertFluid
import xyz.koiro.watersource.world.enchantment.ModEnchantments
import xyz.koiro.watersource.world.fluid.ModFluids
import xyz.koiro.watersource.world.item.FluidContainerItem
import xyz.koiro.watersource.world.item.ModItems

object ModItemGroups {
Expand Down
19 changes: 10 additions & 9 deletions src/main/kotlin/xyz/koiro/watersource/WSConfig.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package xyz.koiro.watersource

import kotlinx.serialization.Serializable
import net.minecraft.component.DataComponentTypes
import net.minecraft.entity.effect.StatusEffect
import net.minecraft.entity.effect.StatusEffectInstance
import net.minecraft.entity.effect.StatusEffects
import net.minecraft.item.ItemStack
import net.minecraft.registry.Registries
import net.minecraft.registry.entry.RegistryEntry
import net.minecraft.util.Identifier
import xyz.koiro.watersource.api.identifier
import xyz.koiro.watersource.data.HydrationData
import xyz.koiro.watersource.datagen.provider.HydrationDataProvider
import xyz.koiro.watersource.world.effect.ModStatusEffects
Expand Down Expand Up @@ -91,7 +94,7 @@ object WSConfig {
}
return raw.map {
StatusEffectInstance(
Registries.STATUS_EFFECT.get(Identifier.tryParse(it.id)),
RegistryEntry.of(Registries.STATUS_EFFECT.get(Identifier.tryParse(it.id))) ,
duration,
it.amplifier
)
Expand All @@ -104,7 +107,7 @@ object WSConfig {
val id: String,
val amplifier: Int = 0
) {
constructor(effectType: StatusEffect, amplifier: Int = 0) : this(effectType.identifier().toString(), amplifier)
constructor(effectType: RegistryEntry<StatusEffect>, amplifier: Int = 0) : this(effectType.identifier().toString(), amplifier)

companion object {
fun fromInstance(instance: StatusEffectInstance): EffectObject {
Expand All @@ -131,11 +134,8 @@ object WSConfig {
return value * (1 + (mul - 1) / 2)
}

fun getWaterThirstyProbabilityEffect(): HydrationData.ProbabilityStatusEffectInstance =
HydrationData.ProbabilityStatusEffectInstance(
0.8f,
StatusEffectInstance(ModStatusEffects.THIRSTY, 1200)
)
fun getWaterThirstyProbabilityEffect(): HydrationData.StatusEffectObject =
HydrationData.StatusEffectObject(ModStatusEffects.THIRSTY, 0, 10f, 0.8f)

fun getMoisturizingRatio(levelSum: Int): Float {
return 1f / (1f + levelSum.toFloat() * 0.15f)
Expand Down Expand Up @@ -181,8 +181,9 @@ object WSConfig {
}

fun getDefaultFoodDryData(itemStack: ItemStack): HydrationData? {
if (format.enableDefaultDryData && itemStack.isFood) {
itemStack.item.foodComponent?.hunger?.let {
val foodData = itemStack.get(DataComponentTypes.FOOD)
if (format.enableDefaultDryData && foodData != null) {
foodData.nutrition.let {
if (it > 1) {
return HydrationDataProvider.dryItem(itemStack.item, floor(it / 2f).toInt())
}
Expand Down
4 changes: 4 additions & 0 deletions src/main/kotlin/xyz/koiro/watersource/WaterSource.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@ import org.slf4j.LoggerFactory
import xyz.koiro.watersource.config.ModConfigLoader
import xyz.koiro.watersource.data.ModResourceRegistries
import xyz.koiro.watersource.event.ModEventsHandlers
import xyz.koiro.watersource.network.ModNetworking
import xyz.koiro.watersource.world.block.ModBlocks
import xyz.koiro.watersource.world.block.entity.ModBlockEntities
import xyz.koiro.watersource.world.datacomponent.ModDataComponentTypes
import xyz.koiro.watersource.world.effect.ModStatusEffects
import xyz.koiro.watersource.world.fluid.ModFluids
import xyz.koiro.watersource.world.item.ModFuelRegister
Expand All @@ -27,10 +29,12 @@ object WaterSource : ModInitializer {
ModBlockEntities.active()
ModStatusEffects.active()
ModItemGroups.active()
ModDataComponentTypes.active()
ModRecipes.initialize()
ModResourceRegistries.initialize()
ModEventsHandlers.initialize()
ModCommands.initialize()
ModNetworking.initialize()
WSConfig.format = ModConfigLoader.loadOrCreateConfig<WSConfig.Format>("common", WSConfig.Format())
}

Expand Down
34 changes: 13 additions & 21 deletions src/main/kotlin/xyz/koiro/watersource/WaterSourceDataGenerator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,19 @@ package xyz.koiro.watersource

import net.fabricmc.fabric.api.datagen.v1.DataGeneratorEntrypoint
import net.fabricmc.fabric.api.datagen.v1.FabricDataGenerator
import xyz.koiro.watersource.datagen.HydrationDataGenerator
import xyz.koiro.watersource.datagen.ModChineseLangGenerator
import xyz.koiro.watersource.datagen.ModEnglishLangGenerator
import xyz.koiro.watersource.datagen.ModModelGenerator
import xyz.koiro.watersource.datagen.ModItemTagGenerator
import xyz.koiro.watersource.datagen.ModFluidTagGenerator
import xyz.koiro.watersource.datagen.ModRecipeGenerator
import xyz.koiro.watersource.datagen.FilterRecipeDataGenerator
import xyz.koiro.watersource.datagen.ModBlockLootTableGenerator
import xyz.koiro.watersource.datagen.*

object WaterSourceDataGenerator : DataGeneratorEntrypoint {
override fun onInitializeDataGenerator(fabricDataGenerator: FabricDataGenerator) {
val pack = fabricDataGenerator.createPack()
pack.addProvider(::HydrationDataGenerator)
pack.addProvider(::FilterRecipeDataGenerator)
pack.addProvider(::ModModelGenerator)
pack.addProvider(::ModChineseLangGenerator)
pack.addProvider(::ModEnglishLangGenerator)
pack.addProvider(::ModItemTagGenerator)
pack.addProvider(::ModFluidTagGenerator)
pack.addProvider(::ModRecipeGenerator)
pack.addProvider(::ModBlockLootTableGenerator)
}
override fun onInitializeDataGenerator(fabricDataGenerator: FabricDataGenerator) {
val pack = fabricDataGenerator.createPack()
pack.addProvider(::HydrationDataGenerator)
pack.addProvider(::FilterRecipeDataGenerator)
pack.addProvider(::ModModelGenerator)
pack.addProvider(::ModChineseLangGenerator)
pack.addProvider(::ModEnglishLangGenerator)
pack.addProvider(::ModItemTagGenerator)
pack.addProvider(::ModFluidTagGenerator)
pack.addProvider(::ModRecipeGenerator)
pack.addProvider(::ModBlockLootTableGenerator)
}
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package xyz.koiro.watersource
package xyz.koiro.watersource.api

import net.minecraft.entity.effect.StatusEffect
import net.minecraft.fluid.Fluid
import net.minecraft.item.Item
import net.minecraft.item.ItemStack
import net.minecraft.registry.Registries
import net.minecraft.registry.entry.RegistryEntry
import net.minecraft.util.Identifier

fun Item.identifier(): Identifier {
Expand All @@ -24,3 +25,16 @@ fun StatusEffect.identifier(): Identifier? {
return Registries.STATUS_EFFECT.getId(this)
}

fun RegistryEntry<StatusEffect>.identifier(): Identifier? {
return if (this.hasKeyAndValue())
Registries.STATUS_EFFECT.getId(this.value())
else null
}

fun String.toIdentifier(): Identifier? {
return Identifier.tryParse(this)
}

fun StatusEffect.entry(): RegistryEntry<StatusEffect>{
return RegistryEntry.of(this)
}
Loading

0 comments on commit 7d8d64c

Please sign in to comment.