    001    package net.minecraft.stats;
    002
    003    import java.util.ArrayList;
    004    import java.util.List;
    005    import net.minecraft.block.Block;
    006    import net.minecraft.item.Item;
    007
    008    public class AchievementList
    009    {
    010        /** Is the smallest column used to display a achievement on the GUI. */
    011        public static int minDisplayColumn;
    012
    013        /** Is the smallest row used to display a achievement on the GUI. */
    014        public static int minDisplayRow;
    015
    016        /** Is the biggest column used to display a achievement on the GUI. */
    017        public static int maxDisplayColumn;
    018
    019        /** Is the biggest row used to display a achievement on the GUI. */
    020        public static int maxDisplayRow;
    021
    022        /** Holds a list of all registered achievements. */
    023        public static List achievementList = new ArrayList();
    024
    025        /** Is the 'open inventory' achievement. */
    026        public static Achievement openInventory = (new Achievement(0, "openInventory", 0, 0, Item.book, (Achievement)null)).setIndependent().registerAchievement();
    027
    028        /** Is the 'getting wood' achievement. */
    029        public static Achievement mineWood = (new Achievement(1, "mineWood", 2, 1, Block.wood, openInventory)).registerAchievement();
    030
    031        /** Is the 'benchmarking' achievement. */
    032        public static Achievement buildWorkBench = (new Achievement(2, "buildWorkBench", 4, -1, Block.workbench, mineWood)).registerAchievement();
    033
    034        /** Is the 'time to mine' achievement. */
    035        public static Achievement buildPickaxe = (new Achievement(3, "buildPickaxe", 4, 2, Item.pickaxeWood, buildWorkBench)).registerAchievement();
    036
    037        /** Is the 'hot topic' achievement. */
    038        public static Achievement buildFurnace = (new Achievement(4, "buildFurnace", 3, 4, Block.stoneOvenActive, buildPickaxe)).registerAchievement();
    039
    040        /** Is the 'acquire hardware' achievement. */
    041        public static Achievement acquireIron = (new Achievement(5, "acquireIron", 1, 4, Item.ingotIron, buildFurnace)).registerAchievement();
    042
    043        /** Is the 'time to farm' achievement. */
    044        public static Achievement buildHoe = (new Achievement(6, "buildHoe", 2, -3, Item.hoeWood, buildWorkBench)).registerAchievement();
    045
    046        /** Is the 'bake bread' achievement. */
    047        public static Achievement makeBread = (new Achievement(7, "makeBread", -1, -3, Item.bread, buildHoe)).registerAchievement();
    048
    049        /** Is the 'the lie' achievement. */
    050        public static Achievement bakeCake = (new Achievement(8, "bakeCake", 0, -5, Item.cake, buildHoe)).registerAchievement();
    051
    052        /** Is the 'getting a upgrade' achievement. */
    053        public static Achievement buildBetterPickaxe = (new Achievement(9, "buildBetterPickaxe", 6, 2, Item.pickaxeStone, buildPickaxe)).registerAchievement();
    054
    055        /** Is the 'delicious fish' achievement. */
    056        public static Achievement cookFish = (new Achievement(10, "cookFish", 2, 6, Item.fishCooked, buildFurnace)).registerAchievement();
    057
    058        /** Is the 'on a rail' achievement */
    059        public static Achievement onARail = (new Achievement(11, "onARail", 2, 3, Block.rail, acquireIron)).setSpecial().registerAchievement();
    060
    061        /** Is the 'time to strike' achievement. */
    062        public static Achievement buildSword = (new Achievement(12, "buildSword", 6, -1, Item.swordWood, buildWorkBench)).registerAchievement();
    063
    064        /** Is the 'monster hunter' achievement. */
    065        public static Achievement killEnemy = (new Achievement(13, "killEnemy", 8, -1, Item.bone, buildSword)).registerAchievement();
    066
    067        /** is the 'cow tipper' achievement. */
    068        public static Achievement killCow = (new Achievement(14, "killCow", 7, -3, Item.leather, buildSword)).registerAchievement();
    069
    070        /** Is the 'when pig fly' achievement. */
    071        public static Achievement flyPig = (new Achievement(15, "flyPig", 8, -4, Item.saddle, killCow)).setSpecial().registerAchievement();
    072
    073        /** The achievement for killing a Skeleton from 50 meters aways. */
    074        public static Achievement snipeSkeleton = (new Achievement(16, "snipeSkeleton", 7, 0, Item.bow, killEnemy)).setSpecial().registerAchievement();
    075
    076        /** Is the 'DIAMONDS!' achievement */
    077        public static Achievement diamonds = (new Achievement(17, "diamonds", -1, 5, Item.diamond, acquireIron)).registerAchievement();
    078
    079        /** Is the 'We Need to Go Deeper' achievement */
    080        public static Achievement portal = (new Achievement(18, "portal", -1, 7, Block.obsidian, diamonds)).registerAchievement();
    081
    082        /** Is the 'Return to Sender' achievement */
    083        public static Achievement ghast = (new Achievement(19, "ghast", -4, 8, Item.ghastTear, portal)).setSpecial().registerAchievement();
    084
    085        /** Is the 'Into Fire' achievement */
    086        public static Achievement blazeRod = (new Achievement(20, "blazeRod", 0, 9, Item.blazeRod, portal)).registerAchievement();
    087
    088        /** Is the 'Local Brewery' achievement */
    089        public static Achievement potion = (new Achievement(21, "potion", 2, 8, Item.potion, blazeRod)).registerAchievement();
    090
    091        /** Is the 'The End?' achievement */
    092        public static Achievement theEnd = (new Achievement(22, "theEnd", 3, 10, Item.eyeOfEnder, blazeRod)).setSpecial().registerAchievement();
    093
    094        /** Is the 'The End.' achievement */
    095        public static Achievement theEnd2 = (new Achievement(23, "theEnd2", 4, 13, Block.dragonEgg, theEnd)).setSpecial().registerAchievement();
    096
    097        /** Is the 'Enchanter' achievement */
    098        public static Achievement enchantments = (new Achievement(24, "enchantments", -4, 4, Block.enchantmentTable, diamonds)).registerAchievement();
    099        public static Achievement overkill = (new Achievement(25, "overkill", -4, 1, Item.swordDiamond, enchantments)).setSpecial().registerAchievement();
    100
    101        /** Is the 'Librarian' achievement */
    102        public static Achievement bookcase = (new Achievement(26, "bookcase", -3, 6, Block.bookShelf, enchantments)).registerAchievement();
    103
    104        /**
    105         * A stub functions called to make the static initializer for this class run.
    106         */
    107        public static void init() {}
    108
    109        static
    110        {
    111            System.out.println(achievementList.size() + " achievements");
    112        }
    113    }