Refactor onModelRemoval
This commit is contained in:
parent
dc42bda09d
commit
6bb73a6ff4
|
|
@ -114,14 +114,14 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery {
|
||||||
.expireAfterAccess(ModelBakeryHelpers.MAX_MODEL_LIFETIME_SECS, TimeUnit.SECONDS)
|
.expireAfterAccess(ModelBakeryHelpers.MAX_MODEL_LIFETIME_SECS, TimeUnit.SECONDS)
|
||||||
.maximumSize(ModelBakeryHelpers.MAX_BAKED_MODEL_COUNT)
|
.maximumSize(ModelBakeryHelpers.MAX_BAKED_MODEL_COUNT)
|
||||||
.concurrencyLevel(8)
|
.concurrencyLevel(8)
|
||||||
.removalListener(this::onModelRemoved)
|
.<Triple<ResourceLocation, Transformation, Boolean>, BakedModel>removalListener(this::onBakedRemoved)
|
||||||
.softValues()
|
.softValues()
|
||||||
.build();
|
.build();
|
||||||
this.loadedModels = CacheBuilder.newBuilder()
|
this.loadedModels = CacheBuilder.newBuilder()
|
||||||
.expireAfterAccess(ModelBakeryHelpers.MAX_MODEL_LIFETIME_SECS, TimeUnit.SECONDS)
|
.expireAfterAccess(ModelBakeryHelpers.MAX_MODEL_LIFETIME_SECS, TimeUnit.SECONDS)
|
||||||
.maximumSize(ModelBakeryHelpers.MAX_UNBAKED_MODEL_COUNT)
|
.maximumSize(ModelBakeryHelpers.MAX_UNBAKED_MODEL_COUNT)
|
||||||
.concurrencyLevel(8)
|
.concurrencyLevel(8)
|
||||||
.removalListener(this::onModelRemoved)
|
.<ResourceLocation, UnbakedModel>removalListener(this::onUnbakedRemoved)
|
||||||
.softValues()
|
.softValues()
|
||||||
.build();
|
.build();
|
||||||
// temporarily replace this map to capture models into the small loading cache
|
// temporarily replace this map to capture models into the small loading cache
|
||||||
|
|
@ -145,21 +145,22 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private <K, V> void onModelRemoved(RemovalNotification<K, V> notification) {
|
private <K extends ResourceLocation, V extends UnbakedModel> void onUnbakedRemoved(RemovalNotification<K, V> notification) {
|
||||||
if(!debugDynamicModelLoading)
|
if(!debugDynamicModelLoading)
|
||||||
return;
|
return;
|
||||||
Object k = notification.getKey();
|
ResourceLocation k = notification.getKey();
|
||||||
if(k == null)
|
if(k == null)
|
||||||
return;
|
return;
|
||||||
ResourceLocation rl;
|
ModernFix.LOGGER.warn("Evicted unbaked model {}", k);
|
||||||
boolean baked = false;
|
|
||||||
if(k instanceof ResourceLocation) {
|
|
||||||
rl = (ResourceLocation)k;
|
|
||||||
} else {
|
|
||||||
rl = ((Triple<ResourceLocation, Transformation, Boolean>)k).getLeft();
|
|
||||||
baked = true;
|
|
||||||
}
|
}
|
||||||
ModernFix.LOGGER.warn("Evicted {} model {}", baked ? "baked" : "unbaked", rl);
|
|
||||||
|
private <K extends Triple<ResourceLocation, Transformation, Boolean>, V extends BakedModel> void onBakedRemoved(RemovalNotification<K, V> notification) {
|
||||||
|
if(!debugDynamicModelLoading)
|
||||||
|
return;
|
||||||
|
ResourceLocation k = notification.getKey().getLeft();
|
||||||
|
if(k == null)
|
||||||
|
return;
|
||||||
|
ModernFix.LOGGER.warn("Evicted baked model {}", k);
|
||||||
}
|
}
|
||||||
|
|
||||||
private UnbakedModel missingModel;
|
private UnbakedModel missingModel;
|
||||||
|
|
|
||||||
|
|
@ -103,14 +103,14 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery {
|
||||||
.expireAfterAccess(ModelBakeryHelpers.MAX_MODEL_LIFETIME_SECS, TimeUnit.SECONDS)
|
.expireAfterAccess(ModelBakeryHelpers.MAX_MODEL_LIFETIME_SECS, TimeUnit.SECONDS)
|
||||||
.maximumSize(ModelBakeryHelpers.MAX_BAKED_MODEL_COUNT)
|
.maximumSize(ModelBakeryHelpers.MAX_BAKED_MODEL_COUNT)
|
||||||
.concurrencyLevel(8)
|
.concurrencyLevel(8)
|
||||||
.removalListener(this::onModelRemoved)
|
.<Triple<ResourceLocation, Transformation, Boolean>, BakedModel>removalListener(this::onBakedRemoved)
|
||||||
.softValues()
|
.softValues()
|
||||||
.build();
|
.build();
|
||||||
this.loadedModels = CacheBuilder.newBuilder()
|
this.loadedModels = CacheBuilder.newBuilder()
|
||||||
.expireAfterAccess(ModelBakeryHelpers.MAX_MODEL_LIFETIME_SECS, TimeUnit.SECONDS)
|
.expireAfterAccess(ModelBakeryHelpers.MAX_MODEL_LIFETIME_SECS, TimeUnit.SECONDS)
|
||||||
.maximumSize(ModelBakeryHelpers.MAX_UNBAKED_MODEL_COUNT)
|
.maximumSize(ModelBakeryHelpers.MAX_UNBAKED_MODEL_COUNT)
|
||||||
.concurrencyLevel(8)
|
.concurrencyLevel(8)
|
||||||
.removalListener(this::onModelRemoved)
|
.<ResourceLocation, UnbakedModel>removalListener(this::onUnbakedRemoved)
|
||||||
.softValues()
|
.softValues()
|
||||||
.build();
|
.build();
|
||||||
this.bakedCache = loadedBakedModels.asMap();
|
this.bakedCache = loadedBakedModels.asMap();
|
||||||
|
|
@ -118,21 +118,22 @@ public abstract class ModelBakeryMixin implements IExtendedModelBakery {
|
||||||
this.bakedTopLevelModels = new DynamicBakedModelProvider((ModelBakery)(Object)this, bakedCache);
|
this.bakedTopLevelModels = new DynamicBakedModelProvider((ModelBakery)(Object)this, bakedCache);
|
||||||
}
|
}
|
||||||
|
|
||||||
private <K, V> void onModelRemoved(RemovalNotification<K, V> notification) {
|
private <K extends ResourceLocation, V extends UnbakedModel> void onUnbakedRemoved(RemovalNotification<K, V> notification) {
|
||||||
if(!debugDynamicModelLoading)
|
if(!debugDynamicModelLoading)
|
||||||
return;
|
return;
|
||||||
Object k = notification.getKey();
|
ResourceLocation k = notification.getKey();
|
||||||
if(k == null)
|
if(k == null)
|
||||||
return;
|
return;
|
||||||
ResourceLocation rl;
|
ModernFix.LOGGER.warn("Evicted unbaked model {}", k);
|
||||||
boolean baked = false;
|
|
||||||
if(k instanceof ResourceLocation) {
|
|
||||||
rl = (ResourceLocation)k;
|
|
||||||
} else {
|
|
||||||
rl = ((Triple<ResourceLocation, Transformation, Boolean>)k).getLeft();
|
|
||||||
baked = true;
|
|
||||||
}
|
}
|
||||||
ModernFix.LOGGER.warn("Evicted {} model {}", baked ? "baked" : "unbaked", rl);
|
|
||||||
|
private <K extends Triple<ResourceLocation, Transformation, Boolean>, V extends BakedModel> void onBakedRemoved(RemovalNotification<K, V> notification) {
|
||||||
|
if(!debugDynamicModelLoading)
|
||||||
|
return;
|
||||||
|
ResourceLocation k = notification.getKey().getLeft();
|
||||||
|
if(k == null)
|
||||||
|
return;
|
||||||
|
ModernFix.LOGGER.warn("Evicted baked model {}", k);
|
||||||
}
|
}
|
||||||
|
|
||||||
private UnbakedModel missingModel;
|
private UnbakedModel missingModel;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user