DemoAchievement

基本信息

属性 值
类名 betterachievementsdemo.betterachivements.DemoAchievement
父类 net.minecraft.stats.Achievement
实现接口 ICustomBackgroundColour
类型 抽象类
源文件 src/demo/java/betterachievementsdemo/betterachivements/DemoAchievement.java

功能

Demo mod 中的示例 Achievement 基类,提供三种构造函数(Item / Block / ItemStack),并自动实现 ICustomBackgroundColour。子类只需提供 recolourBackground 实现即可自定义方框背景色。

注意:包名拼写为 betterachivements(少一个 e)—— 这是 mod 自带 demo 的原始拼写错误,与主类 betterachievements 不同。

构造

构造 签名
(String id, String name, int column, int row, Item item, Achievement parent) 转发父类
(String id, String name, int column, int row, Block block, Achievement parent) 转发父类
(String id, String name, int column, int row, ItemStack itemStack, Achievement parent) 转发父类

使用示例

private static Achievement blue = new DemoAchievement("demo.blue", "Blue", 0, 0, Blocks.wool, null) {
    @Override
    public int recolourBackground(float greyScale) {
        return ColourHelper.blendWithGreyScale(ColourHelper.RGB(0, 0, 255), greyScale);
    }
};
private static Achievement red = new DemoAchievement("demo.red", "Red", 2, -1, Blocks.wool, blue) {
    @Override
    public int recolourBackground(float greyScale) {
        return ColourHelper.blendWithGreyScale(ColourHelper.RGB(255, 0, 0), greyScale);
    }
};
private static Achievement rainbow = new DemoAchievement("demo.rainbow", "Rainbow", 2, 1, Items.nether_star, red) {
    @Override
    public int recolourBackground(float greyScale) {
        return ColourHelper.blendWithGreyScale(
            ColourHelper.getRainbowColour(0.3F, 0.3F, 0.3F, 0, 2, 4, 128, 127, 50),
            greyScale);
    }
};

注册:

blue.initIndependentStat().registerStat();
red.registerStat();
rainbow.setSpecial().registerStat();

相关条目