diff options
Diffstat (limited to 'Minecraft.World/GenericStats.h')
| -rw-r--r-- | Minecraft.World/GenericStats.h | 348 |
1 files changed, 348 insertions, 0 deletions
diff --git a/Minecraft.World/GenericStats.h b/Minecraft.World/GenericStats.h new file mode 100644 index 00000000..541424db --- /dev/null +++ b/Minecraft.World/GenericStats.h @@ -0,0 +1,348 @@ +#pragma once + +#include "Stat.h" +#include "Stats.h" + +//#include "DamageSource.h" + +//#include "..\Minecraft.Client\Common\Console_Awards_enum.h" + +/** + 4J-JEV: + Java version exposed the static instance of each stat. + + This was inconvient for me as I needed to structure the stats/achievements differently + on Durango. + + Using getters like this means we can use different Stats easilly on different + platforms and still have a convenient identifier to use to award them. +*/ +class GenericStats +{ +private: // Static instance. + static GenericStats *instance; + +public: + static void setInstance(GenericStats *newInstance) { instance = newInstance; } + static GenericStats *getInstance() { return instance; } + + // For retrieving a stat from an id. + virtual Stat *get_stat(int i) = 0; + static Stat *stat(int i) { return instance->get_stat(i); } + + // STATS - STATIC // + + static Stat* walkOneM() { return instance->get_walkOneM(); } + static Stat* swimOneM() { return instance->get_swimOneM(); } + static Stat* fallOneM() { return instance->get_fallOneM(); } + static Stat* climbOneM() { return instance->get_climbOneM(); } + static Stat* minecartOneM() { return instance->get_minecartOneM(); } + static Stat* boatOneM() { return instance->get_boatOneM(); } + static Stat* pigOneM() { return instance->get_pigOneM(); } + static Stat* portalsCreated() { return instance->get_portalsCreated(); } + static Stat* cowsMilked() { return instance->get_cowsMilked(); } + static Stat* netherLavaCollected() { return instance->get_netherLavaCollected(); } + + static Stat* killMob() { return instance->get_killMob(); } + + static Stat* killsZombie() { return instance->get_killsZombie(); } + static Stat* killsSkeleton() { return instance->get_killsSkeleton(); } + static Stat* killsCreeper() { return instance->get_killsCreeper(); } + static Stat* killsSpider() { return instance->get_killsSpider(); } + static Stat* killsSpiderJockey() { return instance->get_killsSpiderJockey(); } + static Stat* killsZombiePigman() { return instance->get_killsZombiePigman(); } + static Stat* killsSlime() { return instance->get_killsSlime(); } + static Stat* killsGhast() { return instance->get_killsGhast(); } + static Stat* killsNetherZombiePigman() { return instance->get_killsNetherZombiePigman(); } + + static Stat* breedEntity(eINSTANCEOF entityId) { return instance->get_breedEntity(entityId); } + static Stat* tamedEntity(eINSTANCEOF entityId) { return instance->get_tamedEntity(entityId); } + static Stat* curedEntity(eINSTANCEOF entityId) { return instance->get_curedEntity(entityId); } + static Stat* craftedEntity(eINSTANCEOF entityId) { return instance->get_craftedEntity(entityId); } + static Stat* shearedEntity(eINSTANCEOF entityId) { return instance->get_shearedEntity(entityId); } + + static Stat* totalBlocksMined() { return instance->get_totalBlocksMined(); } + static Stat* timePlayed() { return instance->get_timePlayed(); } + + static Stat* blocksPlaced(int blockId) { return instance->get_blocksPlaced(blockId); } + static Stat* blocksMined(int blockId) { return instance->get_blocksMined(blockId); } + static Stat* itemsCollected(int itemId, int itemAux) { return instance->get_itemsCollected(itemId, itemAux); } + static Stat* itemsCrafted(int itemId) { return instance->get_itemsCrafted(itemId); } + static Stat* itemsSmelted(int itemId) { return instance->get_itemsSmelted(itemId); } // 4J-JEV: Diffentiation needed, when only one type of event should be sent (eg iron smelting). + static Stat* itemsUsed(int itemId) { return instance->get_itemsUsed(itemId); } + static Stat* itemsBought(int itemId) { return instance->get_itemsBought(itemId); } + + static Stat* killsEnderdragon() { return instance->get_killsEnderdragon(); } + static Stat* completeTheEnd() { return instance->get_completeTheEnd(); } + + static Stat* changedDimension(int from, int to) { return instance->get_changedDimension(from,to); } + static Stat* enteredBiome(int biomeId) { return instance->get_enteredBiome(biomeId); } + + // ACHIEVEMENTS - STATIC // + + static Stat* achievement(eAward achievementId) { return instance->get_achievement(achievementId); } + + static Stat* openInventory(); + static Stat* mineWood(); + static Stat* buildWorkbench(); + static Stat* buildPickaxe(); + static Stat* buildFurnace(); + static Stat* acquireIron(); + static Stat* buildHoe(); + static Stat* makeBread(); + static Stat* bakeCake(); + static Stat* buildBetterPickaxe(); + static Stat* cookFish(); + static Stat* onARail(); + static Stat* buildSword(); + static Stat* killEnemy(); + static Stat* killCow(); + static Stat* flyPig(); + static Stat* snipeSkeleton(); + static Stat* diamonds(); + static Stat* ghast(); + static Stat* blazeRod(); + static Stat* potion(); + static Stat* theEnd(); + static Stat* winGame(); + static Stat* enchantments(); + static Stat* overkill(); + static Stat* bookcase(); + + static Stat* leaderOfThePack(); + static Stat* MOARTools(); + static Stat* dispenseWithThis(); + static Stat* InToTheNether(); + + static Stat* socialPost(); + static Stat* eatPorkChop(); + static Stat* play100Days(); + static Stat* arrowKillCreeper(); + static Stat* mine100Blocks(); + static Stat* kill10Creepers(); + + static Stat* adventuringTime(); // Requires new Stat + static Stat* repopulation(); + static Stat* diamondsToYou(); // +Durango + static Stat* porkChop(); // Req Stat? + static Stat* passingTheTime(); // Req Stat + static Stat* archer(); + static Stat* theHaggler(); // Req Stat + static Stat* potPlanter(); // Req Stat + static Stat* itsASign(); // Req Stat + static Stat* ironBelly(); + static Stat* haveAShearfulDay(); + static Stat* rainbowCollection(); // Requires new Stat + static Stat* stayinFrosty(); // +Durango + static Stat* chestfulOfCobblestone(); // +Durango + static Stat* renewableEnergy(); // +Durango + static Stat* musicToMyEars(); // +Durango + static Stat* bodyGuard(); + static Stat* ironMan(); // +Durango + static Stat* zombieDoctor(); // +Durango + static Stat* lionTamer(); + + // STAT PARAMS - STATIC // + + static byteArray param_walk(int distance); + static byteArray param_swim(int distance); + static byteArray param_fall(int distance); + static byteArray param_climb(int distance); + static byteArray param_minecart(int distance); + static byteArray param_boat(int distance); + static byteArray param_pig(int distance); + + static byteArray param_cowsMilked(); + + static byteArray param_blocksPlaced(int id, int data, int count); + static byteArray param_blocksMined(int id, int data, int count); + static byteArray param_itemsCollected(int id, int aux, int count); + static byteArray param_itemsCrafted(int id, int aux, int count); + static byteArray param_itemsSmelted(int id, int aux, int cound); + static byteArray param_itemsUsed(shared_ptr<Player> plr, shared_ptr<ItemInstance> itm); + static byteArray param_itemsBought(int id, int aux, int count); + + static byteArray param_mobKill(shared_ptr<Player> plr, shared_ptr<Mob> mob, DamageSource *dmgSrc); + + static byteArray param_breedEntity(eINSTANCEOF mobType); + static byteArray param_tamedEntity(eINSTANCEOF mobType); + static byteArray param_curedEntity(eINSTANCEOF mobType); + static byteArray param_craftedEntity(eINSTANCEOF mobType); + static byteArray param_shearedEntity(eINSTANCEOF mobType); + + static byteArray param_time(int timediff); + + static byteArray param_changedDimension(int from, int to); + static byteArray param_enteredBiome(int biomeId); + + //static byteArray param_achievement(eAward id); + + //static byteArray param_ach_onARail(); + //static byteArray param_overkill(int damage); //TODO + //static byteArray param_openInventory(int menuId); + //static byteArray param_chestfulOfCobblestone(); + //static byteArray param_musicToMyEars(int recordId); + + static byteArray param_noArgs(); + + // STATIC + VIRTUAL - ACHIEVEMENT - PARAMS // + + static byteArray param_openInventory(); + static byteArray param_mineWood(); + static byteArray param_buildWorkbench(); + static byteArray param_buildPickaxe(); + static byteArray param_buildFurnace(); + static byteArray param_acquireIron(); + static byteArray param_buildHoe(); + static byteArray param_makeBread(); + static byteArray param_bakeCake(); + static byteArray param_buildBetterPickaxe(); + static byteArray param_cookFish(); + static byteArray param_onARail(int distance); + static byteArray param_buildSword(); + static byteArray param_killEnemy(); + static byteArray param_killCow(); + static byteArray param_flyPig(); + static byteArray param_snipeSkeleton(); + static byteArray param_diamonds(); + static byteArray param_ghast(); + static byteArray param_blazeRod(); + static byteArray param_potion(); + static byteArray param_theEnd(); + static byteArray param_winGame(); + static byteArray param_enchantments(); + static byteArray param_overkill(int dmg); + static byteArray param_bookcase(); + + static byteArray param_leaderOfThePack(); + static byteArray param_MOARTools(); + static byteArray param_dispenseWithThis(); + static byteArray param_InToTheNether(); + + static byteArray param_socialPost(); + static byteArray param_eatPorkChop(); + static byteArray param_play100Days(); + static byteArray param_arrowKillCreeper(); + static byteArray param_mine100Blocks(); + static byteArray param_kill10Creepers(); + + static byteArray param_adventuringTime(); + static byteArray param_repopulation(); + static byteArray param_porkChop(); + static byteArray param_diamondsToYou(); + static byteArray param_passingTheTime(); + static byteArray param_archer(); + static byteArray param_theHaggler(); + static byteArray param_potPlanter(); + static byteArray param_itsASign(); + static byteArray param_ironBelly(); + static byteArray param_haveAShearfulDay(); + static byteArray param_rainbowCollection(); + static byteArray param_stayinFrosty(); + static byteArray param_chestfulOfCobblestone(int cobbleStone); + static byteArray param_renewableEnergy(); + static byteArray param_musicToMyEars(int recordId); + static byteArray param_bodyGuard(); + static byteArray param_ironMan(); + static byteArray param_zombieDoctor(); + static byteArray param_lionTamer(); + +protected: + // ACHIEVEMENTS - VIRTUAL // + + virtual Stat* get_achievement(eAward achievementId); + + + // STATS - VIRTUAL // + + virtual Stat* get_walkOneM(); + virtual Stat* get_swimOneM(); + virtual Stat* get_fallOneM(); + virtual Stat* get_climbOneM(); + virtual Stat* get_minecartOneM(); + virtual Stat* get_boatOneM(); + virtual Stat* get_pigOneM(); + virtual Stat* get_portalsCreated(); + virtual Stat* get_cowsMilked(); + virtual Stat* get_netherLavaCollected(); + + virtual Stat* get_killMob(); + + virtual Stat* get_killsZombie(); + virtual Stat* get_killsSkeleton(); + virtual Stat* get_killsCreeper(); + virtual Stat* get_killsSpider(); + virtual Stat* get_killsSpiderJockey(); + virtual Stat* get_killsZombiePigman(); + virtual Stat* get_killsSlime(); + virtual Stat* get_killsGhast(); + virtual Stat* get_killsNetherZombiePigman(); + + virtual Stat* get_breedEntity(eINSTANCEOF entityId); + virtual Stat* get_tamedEntity(eINSTANCEOF entityId); + virtual Stat* get_curedEntity(eINSTANCEOF entityId); + virtual Stat* get_craftedEntity(eINSTANCEOF entityId); + virtual Stat* get_shearedEntity(eINSTANCEOF entityId); + + virtual Stat* get_totalBlocksMined(); + virtual Stat* get_timePlayed(); + + virtual Stat* get_blocksPlaced(int blockId); + virtual Stat* get_blocksMined(int blockId); + virtual Stat* get_itemsCollected(int itemId, int itemAux); + virtual Stat* get_itemsCrafted(int itemId); + virtual Stat* get_itemsSmelted(int itemId); + virtual Stat* get_itemsUsed(int itemId); + virtual Stat* get_itemsBought(int itemId); + + virtual Stat* get_killsEnderdragon(); + virtual Stat* get_completeTheEnd(); + + virtual Stat* get_changedDimension(int from, int to); + virtual Stat* get_enteredBiome(int biomeId); + + // STAT PARAMS - VIRTUAL // + + virtual byteArray getParam_walkOneM(int distance); + virtual byteArray getParam_swimOneM(int distance); + virtual byteArray getParam_fallOneM(int distance); + virtual byteArray getParam_climbOneM(int distance); + virtual byteArray getParam_minecartOneM(int distance); + virtual byteArray getParam_boatOneM(int distance); + virtual byteArray getParam_pigOneM(int distance); + + virtual byteArray getParam_cowsMilked(); + + virtual byteArray getParam_blocksPlaced(int id, int data, int count); + virtual byteArray getParam_blocksMined(int id, int data, int count); + virtual byteArray getParam_itemsCollected(int id, int aux, int count); + virtual byteArray getParam_itemsCrafted(int id, int aux, int count); + virtual byteArray getParam_itemsSmelted(int id, int aux, int count); + virtual byteArray getParam_itemsUsed(shared_ptr<Player> plr, shared_ptr<ItemInstance> itm); + virtual byteArray getParam_itemsBought(int id, int aux, int count); + + virtual byteArray getParam_mobKill(shared_ptr<Player> plr, shared_ptr<Mob> mob, DamageSource *dmgSrc); + + virtual byteArray getParam_breedEntity(eINSTANCEOF entityId); + virtual byteArray getParam_tamedEntity(eINSTANCEOF entityId); + virtual byteArray getParam_curedEntity(eINSTANCEOF entityId); + virtual byteArray getParam_craftedEntity(eINSTANCEOF entityId); + virtual byteArray getParam_shearedEntity(eINSTANCEOF entityId); + + virtual byteArray getParam_time(int timediff); + + virtual byteArray getParam_changedDimension(int from, int to); + virtual byteArray getParam_enteredBiome(int biomeId); + + virtual byteArray getParam_achievement(eAward id); + + virtual byteArray getParam_onARail(int distance); + virtual byteArray getParam_overkill(int damage); + virtual byteArray getParam_openInventory(int menuId); + virtual byteArray getParam_chestfulOfCobblestone(int cobbleStone); + virtual byteArray getParam_musicToMyEars(int recordId); + + virtual byteArray getParam_noArgs(); +}; + +// Req Stats
\ No newline at end of file |
