Lie to model event handlers about some flags to speed up loading
This commit is contained in:
parent
327813fa91
commit
7dcce90a82
|
|
@ -0,0 +1,21 @@
|
|||
package org.embeddedt.modernfix.mixin.perf.faster_baking;
|
||||
|
||||
import net.minecraft.client.renderer.model.ModelBakery;
|
||||
import net.minecraft.client.renderer.model.ModelManager;
|
||||
import net.minecraft.profiler.IProfiler;
|
||||
import net.minecraft.resources.IResourceManager;
|
||||
import org.embeddedt.modernfix.models.LazyBakedModel;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(ModelManager.class)
|
||||
public class ModelManagerMixin {
|
||||
@Inject(method = "apply(Lnet/minecraft/client/renderer/model/ModelBakery;Lnet/minecraft/resources/IResourceManager;Lnet/minecraft/profiler/IProfiler;)V",
|
||||
at = @At(value = "INVOKE", target = "Lnet/minecraftforge/client/ForgeHooksClient;onModelBake(Lnet/minecraft/client/renderer/model/ModelManager;Ljava/util/Map;Lnet/minecraftforge/client/model/ModelLoader;)V", shift = At.Shift.AFTER)
|
||||
)
|
||||
private void allowBaking(ModelBakery pObject, IResourceManager pResourceManager, IProfiler pProfiler, CallbackInfo ci) {
|
||||
LazyBakedModel.allowBakeForFlags = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -27,6 +27,12 @@ public class LazyBakedModel implements IBakedModel {
|
|||
private IBakedModel delegate = null;
|
||||
private Supplier<IBakedModel> delegateSupplier;
|
||||
|
||||
/**
|
||||
* This flag is changed to true when we should bake instead of returning reasonable defaults for certain
|
||||
* method calls.
|
||||
*/
|
||||
public static boolean allowBakeForFlags = false;
|
||||
|
||||
public LazyBakedModel(Supplier<IBakedModel> delegateSupplier) {
|
||||
this.delegateSupplier = delegateSupplier;
|
||||
}
|
||||
|
|
@ -61,6 +67,10 @@ public class LazyBakedModel implements IBakedModel {
|
|||
|
||||
@Override
|
||||
public boolean isCustomRenderer() {
|
||||
if(this.delegate != null)
|
||||
return this.delegate.isCustomRenderer();
|
||||
if(!LazyBakedModel.allowBakeForFlags)
|
||||
return false;
|
||||
return computeDelegate().isCustomRenderer();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@
|
|||
"perf.blast_search_trees.IngredientFilterInvoker",
|
||||
"perf.faster_baking.ModelBakeryMixin",
|
||||
"perf.faster_baking.BlockModelShapesMixin",
|
||||
"perf.faster_baking.ModelManagerMixin",
|
||||
"perf.cache_model_materials.VanillaModelMixin",
|
||||
"perf.cache_model_materials.MultipartMixin",
|
||||
"bugfix.packet_leak.ClientPlayNetHandlerMixin",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user