mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 08:14:23 +01:00
Fixed performance issues on the skins gui
This commit is contained in:
parent
f8ab94f519
commit
9e40c6313d
4 changed files with 16 additions and 15 deletions
|
@ -62,7 +62,7 @@ public class RenderDummyPony extends RenderDummyPlayer<DummyPony, ClientPonyMode
|
|||
|
||||
boolean canWet = playermodel.wet && (loc == playermodel.getTextures().getBlankSkin(Type.SKIN) || race == Race.SEAPONY);
|
||||
|
||||
playerModel = new ModelWrapper<>(canWet ? PlayerModels.SEAPONY.getModel(slim) : PlayerModels.forRace(thePony.getRace(true)).getModel(slim));
|
||||
playerModel = canWet ? PlayerModels.SEAPONY.getWrappedModel(slim) : PlayerModels.forRace(thePony.getRace(true)).getWrappedModel(slim);
|
||||
playerModel.apply(thePony.getMetadata());
|
||||
|
||||
renderPony.setPonyModel(playerModel);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.minelittlepony.client.model.races;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.minelittlepony.client.model.ModelWrapper;
|
||||
import com.minelittlepony.client.model.entities.ModelSeapony;
|
||||
import com.minelittlepony.client.render.entities.player.RenderPonyPlayer;
|
||||
import com.minelittlepony.client.render.entities.player.RenderSeaponyPlayer;
|
||||
|
@ -31,7 +32,7 @@ public enum PlayerModels {
|
|||
SEAPONY(Race.SEAPONY, ModelSeapony::new) {
|
||||
@Override
|
||||
public RenderPonyPlayer createRenderer(EntityRenderDispatcher manager, boolean slimArms) {
|
||||
return new RenderSeaponyPlayer(manager, slimArms, PlayerModels.UNICORN.getModel(slimArms), getModel(slimArms));
|
||||
return new RenderSeaponyPlayer(manager, slimArms, PlayerModels.UNICORN.getWrappedModel(slimArms), getWrappedModel(slimArms));
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -72,8 +73,8 @@ public enum PlayerModels {
|
|||
return isSlim ? slim : normal;
|
||||
}
|
||||
|
||||
public <T extends LivingEntity, M extends IModel> M getModel(boolean isSlim) {
|
||||
return getPendingModel(isSlim).getModel(isSlim);
|
||||
public <T extends LivingEntity, M extends IModel> ModelWrapper<T, M> getWrappedModel(boolean isSlim) {
|
||||
return getPendingModel(isSlim).getWrappedModel(isSlim);
|
||||
}
|
||||
|
||||
public String getId(boolean isSlim) {
|
||||
|
@ -81,7 +82,7 @@ public enum PlayerModels {
|
|||
}
|
||||
|
||||
public RenderPonyPlayer createRenderer(EntityRenderDispatcher manager, boolean slimArms) {
|
||||
return new RenderPonyPlayer(manager, slimArms, getModel(slimArms));
|
||||
return new RenderPonyPlayer(manager, slimArms, getWrappedModel(slimArms));
|
||||
}
|
||||
|
||||
public static PlayerModels forRace(Race race) {
|
||||
|
@ -90,7 +91,7 @@ public enum PlayerModels {
|
|||
|
||||
private final class PendingModel {
|
||||
@Nullable
|
||||
private IModel model;
|
||||
private ModelWrapper<?, IModel> model;
|
||||
|
||||
private final String key;
|
||||
|
||||
|
@ -99,12 +100,12 @@ public enum PlayerModels {
|
|||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T extends LivingEntity, M extends IModel> M getModel(boolean isSlim) {
|
||||
public <T extends LivingEntity, M extends IModel> ModelWrapper<T, M> getWrappedModel(boolean isSlim) {
|
||||
if (model == null) {
|
||||
model = resolver.apply(isSlim);
|
||||
model = new ModelWrapper<>(resolver.apply(isSlim));
|
||||
}
|
||||
|
||||
return (M)model;
|
||||
return (ModelWrapper<T, M>)model;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,10 +36,10 @@ public class RenderPonyPlayer extends PlayerEntityRenderer implements IPonyRende
|
|||
|
||||
protected final RenderPony<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> renderPony = new RenderPony<>(this);
|
||||
|
||||
public RenderPonyPlayer(EntityRenderDispatcher manager, boolean useSmallArms, ClientPonyModel<AbstractClientPlayerEntity> model) {
|
||||
public RenderPonyPlayer(EntityRenderDispatcher manager, boolean useSmallArms, ModelWrapper<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> model) {
|
||||
super(manager, useSmallArms);
|
||||
|
||||
this.model = renderPony.setPonyModel(new ModelWrapper<>(model));
|
||||
this.model = renderPony.setPonyModel(model);
|
||||
|
||||
addLayers();
|
||||
}
|
||||
|
|
|
@ -15,12 +15,12 @@ public class RenderSeaponyPlayer extends RenderPonyPlayer {
|
|||
protected final ModelWrapper<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> normalPony;
|
||||
|
||||
public RenderSeaponyPlayer(EntityRenderDispatcher manager, boolean useSmallArms,
|
||||
ClientPonyModel<AbstractClientPlayerEntity> model,
|
||||
ClientPonyModel<AbstractClientPlayerEntity> alternate) {
|
||||
ModelWrapper<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> model,
|
||||
ModelWrapper<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> alternate) {
|
||||
super(manager, useSmallArms, model);
|
||||
|
||||
seapony = new ModelWrapper<>(alternate);
|
||||
normalPony = new ModelWrapper<>(model);
|
||||
seapony = alternate;
|
||||
normalPony = model;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue