diff options
Diffstat (limited to 'src/texturePacks/java')
7 files changed, 27 insertions, 26 deletions
diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt index dc3b109..f1aefc4 100644 --- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt +++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomBlockTextures.kt @@ -19,8 +19,8 @@ import kotlinx.serialization.serializer import kotlin.jvm.optionals.getOrNull import net.minecraft.block.Block import net.minecraft.block.BlockState -import net.minecraft.client.render.model.BakedModel -import net.minecraft.client.util.ModelIdentifier +import net.minecraft.client.render.item.model.ItemModel +import net.minecraft.client.render.model.BlockStateModel import net.minecraft.registry.RegistryKey import net.minecraft.registry.RegistryKeys import net.minecraft.resource.ResourceManager @@ -57,11 +57,11 @@ object CustomBlockTextures { ) { @Transient - val blockModelIdentifier get() = ModelIdentifier(block.withPrefixedPath("block/"), "firmament") + val blockModelIdentifier get() = block.withPrefixedPath("block/") @Transient - val bakedModel: BakedModel by lazy(LazyThreadSafetyMode.NONE) { - MC.instance.bakedModelManager.getModel(blockModelIdentifier) + val bakedModel: ItemModel by lazy(LazyThreadSafetyMode.NONE) { + MC.instance.bakedModelManager.blockModels.(blockModelIdentifier) } @OptIn(ExperimentalSerializationApi::class) @@ -189,7 +189,7 @@ object CustomBlockTextures { } @JvmStatic - fun getReplacementModel(block: BlockState, blockPos: BlockPos?): BakedModel? { + fun getReplacementModel(block: BlockState, blockPos: BlockPos?): BlockStateModel? { return getReplacement(block, blockPos)?.bakedModel } @@ -269,11 +269,6 @@ object CustomBlockTextures { return BakedReplacements(map.mapValues { LocationReplacements(it.value) }) } - @JvmStatic - fun patchIndigo(orig: BakedModel, pos: BlockPos, state: BlockState): BakedModel { - return getReplacementModel(state, pos) ?: orig - } - @Subscribe fun onStart(event: FinalizeResourceManagerEvent) { event.resourceManager.registerReloader(object : diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomGlobalArmorOverrides.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomGlobalArmorOverrides.kt index aafc85a..6885376 100644 --- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomGlobalArmorOverrides.kt +++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomGlobalArmorOverrides.kt @@ -81,7 +81,11 @@ object CustomGlobalArmorOverrides { null, Optional.of(RegistryKey.of(EquipmentAssetKeys.REGISTRY_KEY, model)), Optional.empty(), - Optional.empty(), false, false, false + Optional.empty(), + false, + false, + false, + false ) } diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomGlobalTextures.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomGlobalTextures.kt index 20f1fb6..403e3bd 100644 --- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomGlobalTextures.kt +++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/CustomGlobalTextures.kt @@ -8,7 +8,6 @@ import org.slf4j.LoggerFactory import kotlinx.serialization.Serializable import kotlinx.serialization.UseSerializers import kotlin.jvm.optionals.getOrNull -import net.minecraft.client.util.ModelIdentifier import net.minecraft.resource.ResourceManager import net.minecraft.resource.SinglePreparationResourceReloader import net.minecraft.text.Text 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 0edad4c..e6b5bcf 100644 --- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/PredicateModel.kt +++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/PredicateModel.kt @@ -9,12 +9,11 @@ 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.item.tint.TintSource 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.item.ModelTransformationMode import net.minecraft.util.Identifier import moe.nea.firmament.features.texturepack.predicates.AndPredicate @@ -29,10 +28,10 @@ class PredicateModel { ) override fun update( - state: ItemRenderState, + state: ItemRenderState?, stack: ItemStack, - resolver: ItemModelManager, - transformationMode: ModelTransformationMode, + resolver: ItemModelManager?, + displayContext: ItemDisplayContext?, world: ClientWorld?, user: LivingEntity?, seed: Int @@ -42,7 +41,7 @@ class PredicateModel { .findLast { it.predicate.test(stack, user) } ?.model ?: fallback - model.update(state, stack, resolver, transformationMode, world, user, seed) + model.update(state, stack, resolver, displayContext, world, user, seed) } } diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/StringMatcher.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/StringMatcher.kt index 2b13284..dd28d9f 100644 --- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/StringMatcher.kt +++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/StringMatcher.kt @@ -13,6 +13,7 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.descriptors.SerialDescriptor import kotlinx.serialization.encoding.Decoder import kotlinx.serialization.encoding.Encoder +import kotlin.jvm.optionals.getOrNull import net.minecraft.nbt.NbtString import net.minecraft.text.Text import moe.nea.firmament.util.MC @@ -26,7 +27,7 @@ interface StringMatcher { } fun matches(nbt: NbtString): Boolean { - val string = nbt.asString() + val string = nbt.value val jsonStart = string.indexOf('{') val stringStart = string.indexOf('"') val isString = stringStart >= 0 && string.subSequence(0, stringStart).isBlank() diff --git a/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/ExtraAttributesPredicate.kt b/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/ExtraAttributesPredicate.kt index 3c8023d..32df9cd 100644 --- a/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/ExtraAttributesPredicate.kt +++ b/src/texturePacks/java/moe/nea/firmament/features/texturepack/predicates/ExtraAttributesPredicate.kt @@ -5,6 +5,8 @@ import com.google.gson.JsonArray import com.google.gson.JsonElement import com.google.gson.JsonObject import com.google.gson.JsonPrimitive +import kotlin.jvm.optionals.getOrDefault +import kotlin.jvm.optionals.getOrNull import moe.nea.firmament.features.texturepack.FirmamentModelPredicate import moe.nea.firmament.features.texturepack.FirmamentModelPredicateParser import moe.nea.firmament.features.texturepack.StringMatcher @@ -193,7 +195,7 @@ fun interface NbtMatcher { class MatchStringExact(val string: String) : NbtMatcher { override fun matches(nbt: NbtElement): Boolean { - return nbt is NbtString && nbt.asString() == string + return nbt.asString().getOrNull() == string } override fun toString(): String { @@ -203,7 +205,7 @@ fun interface NbtMatcher { class MatchString(val string: StringMatcher) : NbtMatcher { override fun matches(nbt: NbtElement): Boolean { - return nbt is NbtString && string.matches(nbt.asString()) + return nbt.asString().map(string::matches).getOrDefault(false) } override fun toString(): String { diff --git a/src/texturePacks/java/moe/nea/firmament/mixins/custommodels/ReplaceBlockRenderManagerBlockModel.java b/src/texturePacks/java/moe/nea/firmament/mixins/custommodels/ReplaceBlockRenderManagerBlockModel.java index 711b2af..1c58c29 100644 --- a/src/texturePacks/java/moe/nea/firmament/mixins/custommodels/ReplaceBlockRenderManagerBlockModel.java +++ b/src/texturePacks/java/moe/nea/firmament/mixins/custommodels/ReplaceBlockRenderManagerBlockModel.java @@ -7,16 +7,17 @@ import moe.nea.firmament.features.texturepack.CustomBlockTextures; import net.minecraft.block.BlockState; import net.minecraft.client.render.block.BlockModels; import net.minecraft.client.render.block.BlockRenderManager; +import net.minecraft.client.render.chunk.SectionBuilder; import net.minecraft.client.render.model.BakedModel; +import net.minecraft.client.render.model.BlockStateModel; import net.minecraft.util.math.BlockPos; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -@Mixin(BlockRenderManager.class) +@Mixin(SectionBuilder.class) public class ReplaceBlockRenderManagerBlockModel { - @WrapOperation(method = "renderBlock", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/BlockRenderManager;getModel(Lnet/minecraft/block/BlockState;)Lnet/minecraft/client/render/model/BakedModel;")) - private BakedModel replaceModelInRenderBlock( - BlockRenderManager instance, BlockState state, Operation<BakedModel> original, @Local(argsOnly = true) BlockPos pos) { + @WrapOperation(method = "build", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/BlockRenderManager;getModel(Lnet/minecraft/block/BlockState;)Lnet/minecraft/client/render/model/BlockStateModel;")) + private BlockStateModel replaceModelInRenderBlock(BlockRenderManager instance, BlockState state, Operation<BlockStateModel> original, @Local(argsOnly = true) BlockPos pos) { var replacement = CustomBlockTextures.getReplacementModel(state, pos); if (replacement != null) return replacement; CustomBlockTextures.enterFallbackCall(); |