mirror of
https://github.com/MineLittlePony/MineLittlePony.git
synced 2025-02-13 16:24: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);
|
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());
|
playerModel.apply(thePony.getMetadata());
|
||||||
|
|
||||||
renderPony.setPonyModel(playerModel);
|
renderPony.setPonyModel(playerModel);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.minelittlepony.client.model.races;
|
package com.minelittlepony.client.model.races;
|
||||||
|
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
|
import com.minelittlepony.client.model.ModelWrapper;
|
||||||
import com.minelittlepony.client.model.entities.ModelSeapony;
|
import com.minelittlepony.client.model.entities.ModelSeapony;
|
||||||
import com.minelittlepony.client.render.entities.player.RenderPonyPlayer;
|
import com.minelittlepony.client.render.entities.player.RenderPonyPlayer;
|
||||||
import com.minelittlepony.client.render.entities.player.RenderSeaponyPlayer;
|
import com.minelittlepony.client.render.entities.player.RenderSeaponyPlayer;
|
||||||
|
@ -31,7 +32,7 @@ public enum PlayerModels {
|
||||||
SEAPONY(Race.SEAPONY, ModelSeapony::new) {
|
SEAPONY(Race.SEAPONY, ModelSeapony::new) {
|
||||||
@Override
|
@Override
|
||||||
public RenderPonyPlayer createRenderer(EntityRenderDispatcher manager, boolean slimArms) {
|
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;
|
return isSlim ? slim : normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T extends LivingEntity, M extends IModel> M getModel(boolean isSlim) {
|
public <T extends LivingEntity, M extends IModel> ModelWrapper<T, M> getWrappedModel(boolean isSlim) {
|
||||||
return getPendingModel(isSlim).getModel(isSlim);
|
return getPendingModel(isSlim).getWrappedModel(isSlim);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getId(boolean isSlim) {
|
public String getId(boolean isSlim) {
|
||||||
|
@ -81,7 +82,7 @@ public enum PlayerModels {
|
||||||
}
|
}
|
||||||
|
|
||||||
public RenderPonyPlayer createRenderer(EntityRenderDispatcher manager, boolean slimArms) {
|
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) {
|
public static PlayerModels forRace(Race race) {
|
||||||
|
@ -90,7 +91,7 @@ public enum PlayerModels {
|
||||||
|
|
||||||
private final class PendingModel {
|
private final class PendingModel {
|
||||||
@Nullable
|
@Nullable
|
||||||
private IModel model;
|
private ModelWrapper<?, IModel> model;
|
||||||
|
|
||||||
private final String key;
|
private final String key;
|
||||||
|
|
||||||
|
@ -99,12 +100,12 @@ public enum PlayerModels {
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@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) {
|
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);
|
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);
|
super(manager, useSmallArms);
|
||||||
|
|
||||||
this.model = renderPony.setPonyModel(new ModelWrapper<>(model));
|
this.model = renderPony.setPonyModel(model);
|
||||||
|
|
||||||
addLayers();
|
addLayers();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,12 +15,12 @@ public class RenderSeaponyPlayer extends RenderPonyPlayer {
|
||||||
protected final ModelWrapper<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> normalPony;
|
protected final ModelWrapper<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> normalPony;
|
||||||
|
|
||||||
public RenderSeaponyPlayer(EntityRenderDispatcher manager, boolean useSmallArms,
|
public RenderSeaponyPlayer(EntityRenderDispatcher manager, boolean useSmallArms,
|
||||||
ClientPonyModel<AbstractClientPlayerEntity> model,
|
ModelWrapper<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> model,
|
||||||
ClientPonyModel<AbstractClientPlayerEntity> alternate) {
|
ModelWrapper<AbstractClientPlayerEntity, ClientPonyModel<AbstractClientPlayerEntity>> alternate) {
|
||||||
super(manager, useSmallArms, model);
|
super(manager, useSmallArms, model);
|
||||||
|
|
||||||
seapony = new ModelWrapper<>(alternate);
|
seapony = alternate;
|
||||||
normalPony = new ModelWrapper<>(model);
|
normalPony = model;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue