Remove mixin-based IResourcePack detection (#192)

This commit is contained in:
ah-OOG-ah authored and GitHub committed 2025-11-10 23:31:51 +01:00
1 parent 06e9555a92
commit 6b1aebd8e5
10 files changed
+19 -81

No files matched your search

+1 -1
View File
@@ -23,7 +23,7 @@ dependencies {
compileOnly("com.gtnewhorizons.retrofuturabootstrap:RetroFuturaBootstrap:1.0.10") { transitive = false }
// Annotation things
compileOnly("com.github.GTNewHorizons:Angelica:1.0.0-beta67:dev") { transitive = false }
compileOnly("com.github.GTNewHorizons:Angelica:1.0.0-beta68:dev") { transitive = false }
compileOnly('org.jetbrains:annotations:26.0.1')
compileOnly("org.projectlombok:lombok:1.18.36") {transitive = false }
annotationProcessor("org.projectlombok:lombok:1.18.36")
@@ -1,5 +1,6 @@
package com.gtnewhorizon.gtnhlib.client.model.loading;
import static com.gtnewhorizon.gtnhlib.GTNHLibConfig.autoTextureLoading;
import static com.gtnewhorizon.gtnhlib.GTNHLibConfig.modelCacheSize;
import static com.gtnewhorizon.gtnhlib.client.model.unbaked.MissingModel.MISSING_MODEL;
import static it.unimi.dsi.fastutil.objects.Object2ObjectMaps.unmodifiable;
@@ -7,6 +8,7 @@ import static it.unimi.dsi.fastutil.objects.Object2ObjectMaps.unmodifiable;
import java.util.List;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.IResourceManager;
import net.minecraft.client.resources.IResourceManagerReloadListener;
import net.minecraft.client.resources.IResourcePack;
@@ -18,8 +20,6 @@ import org.apache.logging.log4j.Logger;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.gtnewhorizon.gtnhlib.client.model.baked.BakedModel;
import com.gtnewhorizon.gtnhlib.client.model.loading.ducks.BackingResourceManager;
import com.gtnewhorizon.gtnhlib.client.model.loading.ducks.GlobalResourceManager;
import com.gtnewhorizon.gtnhlib.client.model.state.BlockState;
import com.gtnewhorizon.gtnhlib.client.model.state.MissingState;
import com.gtnewhorizon.gtnhlib.client.model.state.StateDeserializer;
@@ -146,14 +146,14 @@ public class ModelRegistry {
STATE_MODEL_MAP_CACHE.clear();
JSON_MODEL_CACHE.clear();
if (!(irm instanceof GlobalResourceManager manager)) return;
if (autoTextureLoading) detectAndLoadTextures();
}
final var domains = manager.nhlib$getDomainResourceManagers();
private void detectAndLoadTextures() {
// Scan resourcepacks for model files
final var resourcePacks = new ObjectOpenHashSet<IResourcePack>();
for (var domain : domains.entrySet()) {
final var files = domain.getValue();
resourcePacks.addAll(((BackingResourceManager) files).nhlib$getResourcePacks());
}
Minecraft.getMinecraft().getResourcePackRepository().getRepositoryEntries()
.forEach(e -> resourcePacks.add(e.getResourcePack()));
final var texturesToLoad = new ObjectArrayList<String>();
for (var pack : resourcePacks) {
@@ -10,14 +10,10 @@ import java.util.stream.Stream;
import com.gtnewhorizon.gtnhlib.client.model.unbaked.JSONModel;
import it.unimi.dsi.fastutil.objects.ObjectLists;
public interface ModelResourcePack {
/// Returns a list of the texture names referenced by models in this resource pack.
default List<String> nhlib$getReferencedTextures(Function<Reader, JSONModel> jsonParser) {
return ObjectLists.emptyList();
}
List<String> nhlib$getReferencedTextures(Function<Reader, JSONModel> jsonParser);
default List<String> nhlib$getReferencedTextures(Stream<? extends InputStream> files,
Function<Reader, JSONModel> jsonParser) {
@@ -1,10 +0,0 @@
package com.gtnewhorizon.gtnhlib.client.model.loading.ducks;
import java.util.List;
import net.minecraft.client.resources.IResourcePack;
public interface BackingResourceManager {
List<IResourcePack> nhlib$getResourcePacks();
}
@@ -1,10 +0,0 @@
package com.gtnewhorizon.gtnhlib.client.model.loading.ducks;
import java.util.Map;
import net.minecraft.client.resources.FallbackResourceManager;
public interface GlobalResourceManager {
Map<String, FallbackResourceManager> nhlib$getDomainResourceManagers();
}
@@ -27,11 +27,9 @@ public enum Mixins implements IMixins {
BRIGADIER(Side.COMMON, "MixinCommandHandler", "MixinCommandHelp"),
FONT_RENDERER(new MixinBuilder("Font rendering replacements").addClientMixins("MixinFontRenderer")
.setPhase(Phase.EARLY).setApplyIf(() -> EarlyConfig.enableFontRendererMixin)),
MODEL_TEXTURE_LOADING(new MixinBuilder("Automatically load model textures").addClientMixins(
"models.FRMAccessor",
"models.MixinFileResourcePack",
"models.MixinFolderResourcePack",
"models.SRRMAccessor").setPhase(Phase.EARLY).setApplyIf(() -> autoTextureLoading));
MODEL_TEXTURE_LOADING(new MixinBuilder("Automatically load model textures")
.addClientMixins("models.MixinFileResourcePack", "models.MixinFolderResourcePack").setPhase(Phase.EARLY)
.setApplyIf(() -> autoTextureLoading));
private final MixinBuilder builder;
@@ -1,20 +0,0 @@
package com.gtnewhorizon.gtnhlib.mixins.early.models;
import java.util.List;
import net.minecraft.client.resources.FallbackResourceManager;
import net.minecraft.client.resources.IResourcePack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import com.gtnewhorizon.gtnhlib.client.model.loading.ducks.BackingResourceManager;
@SuppressWarnings("UnusedMixin")
@Mixin(FallbackResourceManager.class)
public interface FRMAccessor extends BackingResourceManager {
@Override
@Accessor("resourcePacks")
List<IResourcePack> nhlib$getResourcePacks();
}
@@ -18,6 +18,8 @@ import org.spongepowered.asm.mixin.Shadow;
import com.gtnewhorizon.gtnhlib.client.model.loading.ModelResourcePack;
import com.gtnewhorizon.gtnhlib.client.model.unbaked.JSONModel;
import it.unimi.dsi.fastutil.objects.ObjectLists;
@SuppressWarnings("UnusedMixin")
@Mixin(FileResourcePack.class)
public abstract class MixinFileResourcePack extends AbstractResourcePack implements ModelResourcePack {
@@ -59,6 +61,6 @@ public abstract class MixinFileResourcePack extends AbstractResourcePack impleme
MODEL_LOGGER.warn(e);
}
return ModelResourcePack.super.nhlib$getReferencedTextures(jsonParser);
return ObjectLists.emptyList();
}
}
@@ -19,6 +19,8 @@ import org.spongepowered.asm.mixin.Mixin;
import com.gtnewhorizon.gtnhlib.client.model.loading.ModelResourcePack;
import com.gtnewhorizon.gtnhlib.client.model.unbaked.JSONModel;
import it.unimi.dsi.fastutil.objects.ObjectLists;
@SuppressWarnings("UnusedMixin")
@Mixin(FolderResourcePack.class)
public abstract class MixinFolderResourcePack extends AbstractResourcePack implements ModelResourcePack {
@@ -55,6 +57,6 @@ public abstract class MixinFolderResourcePack extends AbstractResourcePack imple
MODEL_LOGGER.warn(e);
}
return ModelResourcePack.super.nhlib$getReferencedTextures(jsonParser);
return ObjectLists.emptyList();
}
}
@@ -1,20 +0,0 @@
package com.gtnewhorizon.gtnhlib.mixins.early.models;
import java.util.Map;
import net.minecraft.client.resources.FallbackResourceManager;
import net.minecraft.client.resources.SimpleReloadableResourceManager;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
import com.gtnewhorizon.gtnhlib.client.model.loading.ducks.GlobalResourceManager;
@SuppressWarnings("UnusedMixin")
@Mixin(SimpleReloadableResourceManager.class)
public interface SRRMAccessor extends GlobalResourceManager {
@Override
@Accessor("domainResourceManagers")
Map<String, FallbackResourceManager> nhlib$getDomainResourceManagers();
}