Dump stats on permanently loaded baked models to debug log
This commit is contained in:
parent
5a93bc6109
commit
8c34c0de50
|
|
@ -12,6 +12,7 @@ import net.minecraftforge.fml.ModList;
|
||||||
import net.minecraftforge.fml.ModLoader;
|
import net.minecraftforge.fml.ModLoader;
|
||||||
import net.minecraftforge.fml.util.ObfuscationReflectionHelper;
|
import net.minecraftforge.fml.util.ObfuscationReflectionHelper;
|
||||||
import org.embeddedt.modernfix.ModernFix;
|
import org.embeddedt.modernfix.ModernFix;
|
||||||
|
import org.embeddedt.modernfix.dynamicresources.DynamicBakedModelProvider;
|
||||||
import org.embeddedt.modernfix.forge.dynresources.ModelBakeEventHelper;
|
import org.embeddedt.modernfix.forge.dynresources.ModelBakeEventHelper;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
|
@ -62,5 +63,8 @@ public class ForgeHooksClientMixin {
|
||||||
ModernFix.LOGGER.warn(" {}: {}", entry.getKey(), entry.getValue().toString());
|
ModernFix.LOGGER.warn(" {}: {}", entry.getKey(), entry.getValue().toString());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (bakeEvent.getModels() instanceof DynamicBakedModelProvider dynamicProvider) {
|
||||||
|
dynamicProvider.dumpStats();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ package org.embeddedt.modernfix.dynamicresources;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.mojang.math.Transformation;
|
import com.mojang.math.Transformation;
|
||||||
|
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||||
|
import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
|
||||||
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
||||||
import net.minecraft.client.renderer.block.model.BakedQuad;
|
import net.minecraft.client.renderer.block.model.BakedQuad;
|
||||||
import net.minecraft.client.renderer.block.model.ItemOverrides;
|
import net.minecraft.client.renderer.block.model.ItemOverrides;
|
||||||
|
|
@ -248,4 +250,47 @@ public class DynamicBakedModelProvider implements Map<ResourceLocation, BakedMod
|
||||||
return function.apply(loc.id(), oldModel);
|
return function.apply(loc.id(), oldModel);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void dumpStats() {
|
||||||
|
Object2ObjectOpenHashMap<Class<? extends BakedModel>, Object2IntOpenHashMap<String>> byClassAndNamespace = new Object2ObjectOpenHashMap<>();
|
||||||
|
Object2IntOpenHashMap<Class<? extends BakedModel>> totalsByClass = new Object2IntOpenHashMap<>();
|
||||||
|
synchronized (permanentOverrides) {
|
||||||
|
for (var entry : permanentOverrides.entrySet()) {
|
||||||
|
var model = entry.getValue();
|
||||||
|
if (model == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
totalsByClass.addTo(model.getClass(), 1);
|
||||||
|
var byNamespace = byClassAndNamespace.computeIfAbsent(model.getClass(), $ -> new Object2IntOpenHashMap<>());
|
||||||
|
byNamespace.addTo(entry.getKey().getNamespace(), 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ModernFix.LOGGER.debug("Loaded {} permanent overrides", permanentOverrides.size());
|
||||||
|
byClassAndNamespace.entrySet().stream().sorted((a, b) ->
|
||||||
|
Integer.compare(
|
||||||
|
totalsByClass.getInt(b.getKey()),
|
||||||
|
totalsByClass.getInt(a.getKey())
|
||||||
|
))
|
||||||
|
.forEach(classEntry -> {
|
||||||
|
var byNamespace = classEntry.getValue();
|
||||||
|
int totalModels = totalsByClass.getInt(classEntry.getKey());
|
||||||
|
ModernFix.LOGGER.debug(
|
||||||
|
"{}: {} models",
|
||||||
|
classEntry.getKey().getName(),
|
||||||
|
totalModels
|
||||||
|
);
|
||||||
|
|
||||||
|
// sort namespaces by count (descending)
|
||||||
|
byNamespace.object2IntEntrySet().stream()
|
||||||
|
.sorted((a, b) ->
|
||||||
|
Integer.compare(b.getIntValue(), a.getIntValue()))
|
||||||
|
.forEach(nsEntry -> {
|
||||||
|
ModernFix.LOGGER.debug(
|
||||||
|
" {}: {}",
|
||||||
|
nsEntry.getKey(),
|
||||||
|
nsEntry.getIntValue()
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user