添加效果

好了,现在我已经知道赞助者有哪些了,那么如何给他们加上炫酷的效果呢?

首先,我们要在自己的 RewardProvider 中声明某个等级拥有对应的特效:

@Override
public List<String> getRenderableTiers() {
    return Arrays.asList("2020q3", "2020q4");
}

@Override
@OnlyIn(Dist.CLIENT)
public RewardLayer createRenderer(IEntityRenderer<AbstractClientPlayerEntity, PlayerModel<AbstractClientPlayerEntity>> entityRenderer, String tier) {
    switch (tier) {
    case "2020q3":
        return new PlanetLayer(entityRenderer);
    case "2020q4":
        return new FoxTailLayer(entityRenderer);
    default:
        return null;
}

接下我们只需要编写玩家的 LayerRenderer 就可以了:

@OnlyIn(Dist.CLIENT)
public class MyLayer extends RewardLayer {

    public MyLayer(IEntityRenderer<AbstractClientPlayerEntity, PlayerModel<AbstractClientPlayerEntity>> entityRendererIn) {
        super(entityRendererIn);
    }

    @Override
    public void render(...) {
    }

}

玩家想要切换不同的特效,需要在游戏内按住 K 键,打开专门的特效选择界面。