Fix flash of paint without decals when switching between default and

custom appearance
This commit is contained in:
bkuker 2013-03-31 11:45:01 -04:00
parent f1ef2f39d0
commit b20076f248

View File

@ -37,7 +37,7 @@ public class AppearanceBuilder extends AbstractChangeSource {
setAppearance(a); setAppearance(a);
} }
public void resetToDefaults() { private void resetToDefaults() {
paint = new Color(0, 0, 0); paint = new Color(0, 0, 0);
shine = 0; shine = 0;
offsetU = offsetV = 0; offsetU = offsetV = 0;
@ -48,21 +48,26 @@ public class AppearanceBuilder extends AbstractChangeSource {
edgeMode = EdgeMode.REPEAT; edgeMode = EdgeMode.REPEAT;
} }
public void setAppearance(Appearance a) { public void setAppearance(final Appearance a) {
resetToDefaults(); batch(new Runnable() {
if (a != null) { @Override
setPaint(a.getPaint()); public void run() {
setShine(a.getShine()); resetToDefaults();
Decal d = a.getTexture(); if (a != null) {
if (d != null) { setPaint(a.getPaint());
setOffset(d.getOffset().x, d.getOffset().y); setShine(a.getShine());
setCenter(d.getCenter().x, d.getCenter().y); Decal d = a.getTexture();
setScaleUV(d.getScale().x, d.getScale().y); if (d != null) {
setRotation(d.getRotation()); setOffset(d.getOffset().x, d.getOffset().y);
setEdgeMode(d.getEdgeMode()); setCenter(d.getCenter().x, d.getCenter().y);
setImage(d.getImage()); setScaleUV(d.getScale().x, d.getScale().y);
setRotation(d.getRotation());
setEdgeMode(d.getEdgeMode());
setImage(d.getImage());
}
}
} }
} });
} }
public Appearance getAppearance() { public Appearance getAppearance() {