diff --git a/client/src/main/java/org/geysermc/rainbow/client/MinecraftAssetResolver.java b/client/src/main/java/org/geysermc/rainbow/client/MinecraftAssetResolver.java index 955165d..91ebd41 100644 --- a/client/src/main/java/org/geysermc/rainbow/client/MinecraftAssetResolver.java +++ b/client/src/main/java/org/geysermc/rainbow/client/MinecraftAssetResolver.java @@ -3,7 +3,6 @@ package org.geysermc.rainbow.client; import com.mojang.blaze3d.platform.NativeImage; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.item.ClientItem; -import net.minecraft.client.renderer.texture.SpriteContents; import net.minecraft.client.renderer.texture.TextureAtlas; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.resources.model.AtlasManager; @@ -11,8 +10,8 @@ import net.minecraft.client.resources.model.EquipmentAssetManager; import net.minecraft.client.resources.model.EquipmentClientInfo; import net.minecraft.client.resources.model.ModelManager; import net.minecraft.client.resources.model.ResolvedModel; +import net.minecraft.resources.Identifier; import net.minecraft.resources.ResourceKey; -import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.world.item.equipment.EquipmentAsset; import org.geysermc.rainbow.Rainbow; @@ -40,13 +39,13 @@ public class MinecraftAssetResolver implements AssetResolver { } @Override - public Optional getResolvedModel(ResourceLocation location) { - return ((ResolvedModelAccessor) modelManager).rainbow$getResolvedModel(location); + public Optional getResolvedModel(Identifier identifier) { + return ((ResolvedModelAccessor) modelManager).rainbow$getResolvedModel(identifier); } @Override - public Optional getClientItem(ResourceLocation location) { - return ((ResolvedModelAccessor) modelManager).rainbow$getClientItem(location); + public Optional getClientItem(Identifier identifier) { + return ((ResolvedModelAccessor) modelManager).rainbow$getClientItem(identifier); } @Override @@ -55,17 +54,17 @@ public class MinecraftAssetResolver implements AssetResolver { } @Override - public Optional getTexture(ResourceLocation atlasId, ResourceLocation location) { + public Optional getTexture(Identifier atlasId, Identifier identifier) { if (atlasId == null) { // Not in an atlas - so not animated, probably? return RainbowIO.safeIO(() -> { - try (InputStream textureStream = resourceManager.open(Rainbow.decorateTextureLocation(location))) { + try (InputStream textureStream = resourceManager.open(Rainbow.decorateTextureIdentifier(identifier))) { return new TextureResource(NativeImage.read(textureStream)); } }); } TextureAtlas atlas = atlasManager.getAtlasOrThrow(atlasId); - TextureAtlasSprite sprite = atlas.getSprite(location); + TextureAtlasSprite sprite = atlas.getSprite(identifier); if (sprite == atlas.missingSprite()) { return Optional.empty(); } diff --git a/client/src/main/java/org/geysermc/rainbow/client/MinecraftPackSerializer.java b/client/src/main/java/org/geysermc/rainbow/client/MinecraftPackSerializer.java index 2799c1e..00a2a28 100644 --- a/client/src/main/java/org/geysermc/rainbow/client/MinecraftPackSerializer.java +++ b/client/src/main/java/org/geysermc/rainbow/client/MinecraftPackSerializer.java @@ -4,10 +4,10 @@ import com.google.gson.JsonElement; import com.mojang.serialization.Codec; import com.mojang.serialization.DynamicOps; import com.mojang.serialization.JsonOps; -import net.minecraft.Util; import net.minecraft.client.Minecraft; import net.minecraft.core.HolderLookup; import net.minecraft.resources.RegistryOps; +import net.minecraft.util.Util; import org.geysermc.rainbow.CodecUtil; import org.geysermc.rainbow.RainbowIO; import org.geysermc.rainbow.mapping.PackSerializer; diff --git a/client/src/main/java/org/geysermc/rainbow/client/accessor/ResolvedModelAccessor.java b/client/src/main/java/org/geysermc/rainbow/client/accessor/ResolvedModelAccessor.java index c3a2cd3..8df9a04 100644 --- a/client/src/main/java/org/geysermc/rainbow/client/accessor/ResolvedModelAccessor.java +++ b/client/src/main/java/org/geysermc/rainbow/client/accessor/ResolvedModelAccessor.java @@ -2,7 +2,7 @@ package org.geysermc.rainbow.client.accessor; import net.minecraft.client.renderer.item.ClientItem; import net.minecraft.client.resources.model.ResolvedModel; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import java.util.Optional; @@ -10,7 +10,7 @@ import java.util.Optional; // This comes with some extra memory usage, but Rainbow should only be used to convert packs, so it should be fine public interface ResolvedModelAccessor { - Optional rainbow$getResolvedModel(ResourceLocation location); + Optional rainbow$getResolvedModel(Identifier identifier); - Optional rainbow$getClientItem(ResourceLocation location); + Optional rainbow$getClientItem(Identifier identifier); } diff --git a/client/src/main/java/org/geysermc/rainbow/client/mixin/ModelManagerMixin.java b/client/src/main/java/org/geysermc/rainbow/client/mixin/ModelManagerMixin.java index acd0a57..68804f4 100644 --- a/client/src/main/java/org/geysermc/rainbow/client/mixin/ModelManagerMixin.java +++ b/client/src/main/java/org/geysermc/rainbow/client/mixin/ModelManagerMixin.java @@ -7,7 +7,7 @@ import net.minecraft.client.renderer.item.ClientItem; import net.minecraft.client.resources.model.ClientItemInfoLoader; import net.minecraft.client.resources.model.ModelManager; import net.minecraft.client.resources.model.ResolvedModel; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.server.packs.resources.PreparableReloadListener; import org.geysermc.rainbow.client.accessor.ResolvedModelAccessor; import org.spongepowered.asm.mixin.Mixin; @@ -22,9 +22,9 @@ import java.util.concurrent.CompletableFuture; @Mixin(ModelManager.class) public abstract class ModelManagerMixin implements PreparableReloadListener, AutoCloseable, ResolvedModelAccessor { @Unique - private Map unbakedResolvedModels; + private Map unbakedResolvedModels; @Unique - private Map clientItems; + private Map clientItems; @WrapOperation(method = "method_65753", at = @At(value = "INVOKE", target = "Ljava/util/concurrent/CompletableFuture;join()Ljava/lang/Object;", ordinal = 1)) private static Object setResolvedModels(CompletableFuture instance, Operation original) { @@ -32,7 +32,7 @@ public abstract class ModelManagerMixin implements PreparableReloadListener, Aut try { // Couldn't be bothered setting up access wideners, this resolves the second component of the ResolvedModels record, which is called "models" // Ideally we'd somehow use the "this" instance, but that's not possible here since the lambda we inject into is a static one - ((ModelManagerMixin) (Object) Minecraft.getInstance().getModelManager()).unbakedResolvedModels = (Map) resolved.getClass().getRecordComponents()[1].getAccessor().invoke(resolved); + ((ModelManagerMixin) (Object) Minecraft.getInstance().getModelManager()).unbakedResolvedModels = (Map) resolved.getClass().getRecordComponents()[1].getAccessor().invoke(resolved); } catch (IllegalAccessException | InvocationTargetException | ClassCastException exception) { throw new RuntimeException(exception); } @@ -40,7 +40,7 @@ public abstract class ModelManagerMixin implements PreparableReloadListener, Aut } @WrapOperation(method = "method_65753", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/resources/model/ClientItemInfoLoader$LoadedClientInfos;contents()Ljava/util/Map;")) - private static Map setClientItems(ClientItemInfoLoader.LoadedClientInfos instance, Operation> original) { + private static Map setClientItems(ClientItemInfoLoader.LoadedClientInfos instance, Operation> original) { // Same note as above for not using "this" ModelManagerMixin thiz = ((ModelManagerMixin) (Object) Minecraft.getInstance().getModelManager()); thiz.clientItems = original.call(instance); @@ -48,12 +48,12 @@ public abstract class ModelManagerMixin implements PreparableReloadListener, Aut } @Override - public Optional rainbow$getResolvedModel(ResourceLocation location) { - return unbakedResolvedModels == null ? Optional.empty() : Optional.ofNullable(unbakedResolvedModels.get(location)); + public Optional rainbow$getResolvedModel(Identifier identifier) { + return unbakedResolvedModels == null ? Optional.empty() : Optional.ofNullable(unbakedResolvedModels.get(identifier)); } @Override - public Optional rainbow$getClientItem(ResourceLocation location) { - return clientItems == null ? Optional.empty() : Optional.ofNullable(clientItems.get(location)); + public Optional rainbow$getClientItem(Identifier identifier) { + return clientItems == null ? Optional.empty() : Optional.ofNullable(clientItems.get(identifier)); } } diff --git a/client/src/main/java/org/geysermc/rainbow/client/render/MinecraftGeometryRenderer.java b/client/src/main/java/org/geysermc/rainbow/client/render/MinecraftGeometryRenderer.java index 848e5f7..51d96e2 100644 --- a/client/src/main/java/org/geysermc/rainbow/client/render/MinecraftGeometryRenderer.java +++ b/client/src/main/java/org/geysermc/rainbow/client/render/MinecraftGeometryRenderer.java @@ -1,6 +1,6 @@ package org.geysermc.rainbow.client.render; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.world.item.ItemStack; import org.geysermc.rainbow.mapping.geometry.GeometryRenderer; import org.geysermc.rainbow.mapping.texture.TextureHolder; @@ -11,7 +11,7 @@ public class MinecraftGeometryRenderer implements GeometryRenderer { public static final MinecraftGeometryRenderer INSTANCE = new MinecraftGeometryRenderer(); @Override - public TextureHolder render(ResourceLocation location, ItemStack stack) { - return new RenderedTextureHolder(location, stack); + public TextureHolder render(Identifier identifier, ItemStack stack) { + return new RenderedTextureHolder(identifier, stack); } } diff --git a/client/src/main/java/org/geysermc/rainbow/client/render/RenderedTextureHolder.java b/client/src/main/java/org/geysermc/rainbow/client/render/RenderedTextureHolder.java index 961a1da..a4342d9 100644 --- a/client/src/main/java/org/geysermc/rainbow/client/render/RenderedTextureHolder.java +++ b/client/src/main/java/org/geysermc/rainbow/client/render/RenderedTextureHolder.java @@ -12,7 +12,7 @@ import net.minecraft.client.gui.render.state.GuiItemRenderState; import net.minecraft.client.gui.render.state.GuiRenderState; import net.minecraft.client.gui.render.state.pip.OversizedItemRenderState; import net.minecraft.client.renderer.item.TrackingItemStackRenderState; -import net.minecraft.resources.ResourceLocation; +import net.minecraft.resources.Identifier; import net.minecraft.util.ProblemReporter; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; @@ -35,8 +35,8 @@ import java.util.concurrent.locks.ReentrantLock; public class RenderedTextureHolder extends TextureHolder { private final ItemStack stackToRender; - public RenderedTextureHolder(ResourceLocation location, ItemStack stackToRender) { - super(location); + public RenderedTextureHolder(Identifier identifier, ItemStack stackToRender) { + super(identifier); this.stackToRender = stackToRender; } diff --git a/datagen/src/main/java/org/geysermc/rainbow/datagen/RainbowModelProvider.java b/datagen/src/main/java/org/geysermc/rainbow/datagen/RainbowModelProvider.java index ed4fe75..a5dcab9 100644 --- a/datagen/src/main/java/org/geysermc/rainbow/datagen/RainbowModelProvider.java +++ b/datagen/src/main/java/org/geysermc/rainbow/datagen/RainbowModelProvider.java @@ -223,7 +223,7 @@ public abstract class RainbowModelProvider extends FabricModelProvider { @Override public Optional getTexture(ResourceLocation atlas, ResourceLocation location) { // We don't care about atlas since there are none loaded at datagen - return resourceManager.getResource(Rainbow.decorateTextureLocation(location)) + return resourceManager.getResource(Rainbow.decorateTextureIdentifier(location)) .flatMap(resource -> RainbowIO.safeIO(() -> { Optional animationMetadata = resource.metadata().getSection(AnimationMetadataSection.TYPE); try (InputStream textureStream = resource.open()) { diff --git a/rainbow/src/main/java/org/geysermc/rainbow/Rainbow.java b/rainbow/src/main/java/org/geysermc/rainbow/Rainbow.java index a25b9c3..e7f9ca0 100644 --- a/rainbow/src/main/java/org/geysermc/rainbow/Rainbow.java +++ b/rainbow/src/main/java/org/geysermc/rainbow/Rainbow.java @@ -18,11 +18,11 @@ public class Rainbow { return identifier.toString().replace(':', '.').replace('/', '_'); } - public static Identifier decorateResourceLocation(Identifier identifier, String type, String extension) { + public static Identifier decorateIdentifier(Identifier identifier, String type, String extension) { return identifier.withPath(path -> type + "/" + path + "." + extension); } - public static Identifier decorateTextureLocation(Identifier identifier) { - return decorateResourceLocation(identifier, "textures", "png"); + public static Identifier decorateTextureIdentifier(Identifier identifier) { + return decorateIdentifier(identifier, "textures", "png"); } } diff --git a/rainbow/src/main/java/org/geysermc/rainbow/pack/BedrockPack.java b/rainbow/src/main/java/org/geysermc/rainbow/pack/BedrockPack.java index f19bac2..84bf712 100644 --- a/rainbow/src/main/java/org/geysermc/rainbow/pack/BedrockPack.java +++ b/rainbow/src/main/java/org/geysermc/rainbow/pack/BedrockPack.java @@ -125,7 +125,7 @@ public class BedrockPack { futures.add(serializer.saveJson(BedrockTextureAtlas.CODEC, BedrockTextureAtlas.itemAtlas(name, itemTextures), paths.itemAtlas())); Function> textureSaver = texture -> { - Identifier textureIdentifier = Rainbow.decorateTextureLocation(texture.location()); + Identifier textureIdentifier = Rainbow.decorateTextureIdentifier(texture.location()); return texture.save(context.assetResolver(), serializer, paths.packRoot().resolve(textureIdentifier.getPath()), reporter); };