aboutsummaryrefslogtreecommitdiff
path: root/src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-11-17 19:55:02 +0100
committerLinnea Gräf <nea@nea.moe>2025-11-17 19:55:02 +0100
commitc93a04a001b0f66b2724d46b04b6d1ed49a08d07 (patch)
tree5869ca70acc482ef0362f27785c3d3f1cbb9ffae /src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt
parentaf9893b59407c69d31ebd2ed513f0396ab4d2dc9 (diff)
downloadFirmament-c93a04a001b0f66b2724d46b04b6d1ed49a08d07.tar.gz
Firmament-c93a04a001b0f66b2724d46b04b6d1ed49a08d07.tar.bz2
Firmament-c93a04a001b0f66b2724d46b04b6d1ed49a08d07.zip
refactor: port to mojmaps
Diffstat (limited to 'src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt')
-rw-r--r--src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt60
1 files changed, 30 insertions, 30 deletions
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 8b97a4b..03496aa 100644
--- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt
+++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/HeadModelChooser.kt
@@ -3,18 +3,18 @@ package moe.nea.firmament.features.texturepack
import com.google.gson.JsonObject
import com.mojang.serialization.MapCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
-import net.minecraft.client.item.ItemModelManager
-import net.minecraft.client.render.item.ItemRenderState
-import net.minecraft.client.render.item.model.BasicItemModel
-import net.minecraft.client.render.item.model.ItemModel
-import net.minecraft.client.render.item.model.ItemModelTypes
-import net.minecraft.client.render.model.ResolvableModel
-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 net.minecraft.client.renderer.item.ItemModelResolver
+import net.minecraft.client.renderer.item.ItemStackRenderState
+import net.minecraft.client.renderer.item.BlockModelWrapper
+import net.minecraft.client.renderer.item.ItemModel
+import net.minecraft.client.renderer.item.ItemModels
+import net.minecraft.client.resources.model.ResolvableModel
+import net.minecraft.client.multiplayer.ClientLevel
+import net.minecraft.world.entity.LivingEntity
+import net.minecraft.world.item.ItemDisplayContext
+import net.minecraft.world.item.ItemStack
+import net.minecraft.world.entity.ItemOwner
+import net.minecraft.resources.ResourceLocation
object HeadModelChooser {
val IS_CHOOSING_HEAD_MODEL = ThreadLocal.withInitial { false }
@@ -24,20 +24,20 @@ object HeadModelChooser {
fun isExplicitHeadModel_Firmament(): Boolean
companion object{
@JvmStatic
- fun cast(state: ItemRenderState) = state as HasExplicitHeadModelMarker
+ fun cast(state: ItemStackRenderState) = state as HasExplicitHeadModelMarker
}
}
data class Baked(val head: ItemModel, val regular: ItemModel) : ItemModel {
override fun update(
- state: ItemRenderState,
- stack: ItemStack?,
- resolver: ItemModelManager?,
- displayContext: ItemDisplayContext,
- world: ClientWorld?,
- heldItemContext: HeldItemContext?,
- seed: Int
+ state: ItemStackRenderState,
+ stack: ItemStack?,
+ resolver: ItemModelResolver?,
+ displayContext: ItemDisplayContext,
+ world: ClientLevel?,
+ heldItemContext: ItemOwner?,
+ seed: Int
) {
val instance =
if (IS_CHOOSING_HEAD_MODEL.get()) {
@@ -51,23 +51,23 @@ object HeadModelChooser {
}
data class Unbaked(
- val head: ItemModel.Unbaked,
- val regular: ItemModel.Unbaked,
+ val head: ItemModel.Unbaked,
+ val regular: ItemModel.Unbaked,
) : ItemModel.Unbaked {
- override fun getCodec(): MapCodec<out ItemModel.Unbaked> {
+ override fun type(): MapCodec<out ItemModel.Unbaked> {
return CODEC
}
- override fun bake(context: ItemModel.BakeContext): ItemModel {
+ override fun bake(context: ItemModel.BakingContext): ItemModel {
return Baked(
head.bake(context),
regular.bake(context)
)
}
- override fun resolve(resolver: ResolvableModel.Resolver) {
- head.resolve(resolver)
- regular.resolve(resolver)
+ override fun resolveDependencies(resolver: ResolvableModel.Resolver) {
+ head.resolveDependencies(resolver)
+ regular.resolveDependencies(resolver)
}
companion object {
@@ -75,15 +75,15 @@ object HeadModelChooser {
fun fromLegacyJson(jsonObject: JsonObject, unbakedModel: ItemModel.Unbaked): ItemModel.Unbaked {
val model = jsonObject["firmament:head_model"] ?: return unbakedModel
val modelUrl = model.asJsonPrimitive.asString
- val headModel = BasicItemModel.Unbaked(Identifier.of(modelUrl), listOf())
+ val headModel = BlockModelWrapper.Unbaked(ResourceLocation.parse(modelUrl), listOf())
return Unbaked(headModel, unbakedModel)
}
val CODEC = RecordCodecBuilder.mapCodec {
it.group(
- ItemModelTypes.CODEC.fieldOf("head")
+ ItemModels.CODEC.fieldOf("head")
.forGetter(Unbaked::head),
- ItemModelTypes.CODEC.fieldOf("regular")
+ ItemModels.CODEC.fieldOf("regular")
.forGetter(Unbaked::regular),
).apply(it, ::Unbaked)
}