mirror of
https://github.com/GTNewHorizons/GTNHLib.git
synced 2026-11-08 12:34:52 +00:00
Remove mixin-based IResourcePack detection (#192)
This commit is contained in:
1 parent
06e9555a92
commit
6b1aebd8e5
10 files changed
+19
-81
No files matched your search
+1
-1
@@ -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) {
|
||||
|
||||
-10
@@ -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();
|
||||
}
|
||||
-10
@@ -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();
|
||||
}
|
||||
+3
-1
@@ -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();
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -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();
|
||||
}
|
||||
Reference in new issue
Block a user