2018-04-25 16:40:47 +02:00
|
|
|
package com.minelittlepony.model.player;
|
|
|
|
|
|
|
|
import com.minelittlepony.model.PMAPI;
|
|
|
|
import com.minelittlepony.model.ModelWrapper;
|
2018-04-24 14:55:32 +02:00
|
|
|
|
2018-04-24 17:12:23 +02:00
|
|
|
public enum PlayerModels {
|
|
|
|
HUMAN("default", "slim", () -> PMAPI.human, () -> PMAPI.humanSmall),
|
|
|
|
PONY("pony", "slimpony", () -> PMAPI.pony, () -> PMAPI.ponySmall);
|
|
|
|
|
|
|
|
private final ModelResolver normal, slim;
|
|
|
|
|
|
|
|
private final String normalKey, slimKey;
|
|
|
|
|
|
|
|
PlayerModels(String normalKey, String slimKey, ModelResolver normal, ModelResolver slim) {
|
|
|
|
this.normalKey = normalKey;
|
|
|
|
this.slimKey = slimKey;
|
|
|
|
|
|
|
|
this.normal = normal;
|
|
|
|
this.slim = slim;
|
|
|
|
}
|
|
|
|
|
2018-04-25 16:40:47 +02:00
|
|
|
public ModelWrapper getModel(boolean slim) {
|
2018-04-27 13:49:33 +02:00
|
|
|
return slim ? this.slim.resolve() : normal.resolve();
|
2018-04-24 17:12:23 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
public String getId(boolean useSlimArms) {
|
|
|
|
return useSlimArms ? slimKey : normalKey;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* FIXME: PMAPI fields are null when the game starts.
|
|
|
|
*/
|
|
|
|
static interface ModelResolver {
|
2018-04-25 16:40:47 +02:00
|
|
|
ModelWrapper resolve();
|
2018-04-24 17:12:23 +02:00
|
|
|
}
|
2018-04-24 14:55:32 +02:00
|
|
|
}
|