the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
at main 348 lines 14 kB view raw
1#pragma once 2 3#include "Stat.h" 4#include "Stats.h" 5 6//#include "DamageSource.h" 7 8//#include "..\Minecraft.Client\Common\Console_Awards_enum.h" 9 10/** 11 4J-JEV: 12 Java version exposed the static instance of each stat. 13 14 This was inconvient for me as I needed to structure the stats/achievements differently 15 on Durango. 16 17 Using getters like this means we can use different Stats easilly on different 18 platforms and still have a convenient identifier to use to award them. 19*/ 20class GenericStats 21{ 22private: // Static instance. 23 static GenericStats *instance; 24 25public: 26 static void setInstance(GenericStats *newInstance) { instance = newInstance; } 27 static GenericStats *getInstance() { return instance; } 28 29 // For retrieving a stat from an id. 30 virtual Stat *get_stat(int i) = 0; 31 static Stat *stat(int i) { return instance->get_stat(i); } 32 33 // STATS - STATIC // 34 35 static Stat* walkOneM() { return instance->get_walkOneM(); } 36 static Stat* swimOneM() { return instance->get_swimOneM(); } 37 static Stat* fallOneM() { return instance->get_fallOneM(); } 38 static Stat* climbOneM() { return instance->get_climbOneM(); } 39 static Stat* minecartOneM() { return instance->get_minecartOneM(); } 40 static Stat* boatOneM() { return instance->get_boatOneM(); } 41 static Stat* pigOneM() { return instance->get_pigOneM(); } 42 static Stat* portalsCreated() { return instance->get_portalsCreated(); } 43 static Stat* cowsMilked() { return instance->get_cowsMilked(); } 44 static Stat* netherLavaCollected() { return instance->get_netherLavaCollected(); } 45 46 static Stat* killMob() { return instance->get_killMob(); } 47 48 static Stat* killsZombie() { return instance->get_killsZombie(); } 49 static Stat* killsSkeleton() { return instance->get_killsSkeleton(); } 50 static Stat* killsCreeper() { return instance->get_killsCreeper(); } 51 static Stat* killsSpider() { return instance->get_killsSpider(); } 52 static Stat* killsSpiderJockey() { return instance->get_killsSpiderJockey(); } 53 static Stat* killsZombiePigman() { return instance->get_killsZombiePigman(); } 54 static Stat* killsSlime() { return instance->get_killsSlime(); } 55 static Stat* killsGhast() { return instance->get_killsGhast(); } 56 static Stat* killsNetherZombiePigman() { return instance->get_killsNetherZombiePigman(); } 57 58 static Stat* breedEntity(eINSTANCEOF entityId) { return instance->get_breedEntity(entityId); } 59 static Stat* tamedEntity(eINSTANCEOF entityId) { return instance->get_tamedEntity(entityId); } 60 static Stat* curedEntity(eINSTANCEOF entityId) { return instance->get_curedEntity(entityId); } 61 static Stat* craftedEntity(eINSTANCEOF entityId) { return instance->get_craftedEntity(entityId); } 62 static Stat* shearedEntity(eINSTANCEOF entityId) { return instance->get_shearedEntity(entityId); } 63 64 static Stat* totalBlocksMined() { return instance->get_totalBlocksMined(); } 65 static Stat* timePlayed() { return instance->get_timePlayed(); } 66 67 static Stat* blocksPlaced(int blockId) { return instance->get_blocksPlaced(blockId); } 68 static Stat* blocksMined(int blockId) { return instance->get_blocksMined(blockId); } 69 static Stat* itemsCollected(int itemId, int itemAux) { return instance->get_itemsCollected(itemId, itemAux); } 70 static Stat* itemsCrafted(int itemId) { return instance->get_itemsCrafted(itemId); } 71 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). 72 static Stat* itemsUsed(int itemId) { return instance->get_itemsUsed(itemId); } 73 static Stat* itemsBought(int itemId) { return instance->get_itemsBought(itemId); } 74 75 static Stat* killsEnderdragon() { return instance->get_killsEnderdragon(); } 76 static Stat* completeTheEnd() { return instance->get_completeTheEnd(); } 77 78 static Stat* changedDimension(int from, int to) { return instance->get_changedDimension(from,to); } 79 static Stat* enteredBiome(int biomeId) { return instance->get_enteredBiome(biomeId); } 80 81 // ACHIEVEMENTS - STATIC // 82 83 static Stat* achievement(eAward achievementId) { return instance->get_achievement(achievementId); } 84 85 static Stat* openInventory(); 86 static Stat* mineWood(); 87 static Stat* buildWorkbench(); 88 static Stat* buildPickaxe(); 89 static Stat* buildFurnace(); 90 static Stat* acquireIron(); 91 static Stat* buildHoe(); 92 static Stat* makeBread(); 93 static Stat* bakeCake(); 94 static Stat* buildBetterPickaxe(); 95 static Stat* cookFish(); 96 static Stat* onARail(); 97 static Stat* buildSword(); 98 static Stat* killEnemy(); 99 static Stat* killCow(); 100 static Stat* flyPig(); 101 static Stat* snipeSkeleton(); 102 static Stat* diamonds(); 103 static Stat* ghast(); 104 static Stat* blazeRod(); 105 static Stat* potion(); 106 static Stat* theEnd(); 107 static Stat* winGame(); 108 static Stat* enchantments(); 109 static Stat* overkill(); 110 static Stat* bookcase(); 111 112 static Stat* leaderOfThePack(); 113 static Stat* MOARTools(); 114 static Stat* dispenseWithThis(); 115 static Stat* InToTheNether(); 116 117 static Stat* socialPost(); 118 static Stat* eatPorkChop(); 119 static Stat* play100Days(); 120 static Stat* arrowKillCreeper(); 121 static Stat* mine100Blocks(); 122 static Stat* kill10Creepers(); 123 124 static Stat* adventuringTime(); // Requires new Stat 125 static Stat* repopulation(); 126 static Stat* diamondsToYou(); // +Durango 127 static Stat* porkChop(); // Req Stat? 128 static Stat* passingTheTime(); // Req Stat 129 static Stat* archer(); 130 static Stat* theHaggler(); // Req Stat 131 static Stat* potPlanter(); // Req Stat 132 static Stat* itsASign(); // Req Stat 133 static Stat* ironBelly(); 134 static Stat* haveAShearfulDay(); 135 static Stat* rainbowCollection(); // Requires new Stat 136 static Stat* stayinFrosty(); // +Durango 137 static Stat* chestfulOfCobblestone(); // +Durango 138 static Stat* renewableEnergy(); // +Durango 139 static Stat* musicToMyEars(); // +Durango 140 static Stat* bodyGuard(); 141 static Stat* ironMan(); // +Durango 142 static Stat* zombieDoctor(); // +Durango 143 static Stat* lionTamer(); 144 145 // STAT PARAMS - STATIC // 146 147 static byteArray param_walk(int distance); 148 static byteArray param_swim(int distance); 149 static byteArray param_fall(int distance); 150 static byteArray param_climb(int distance); 151 static byteArray param_minecart(int distance); 152 static byteArray param_boat(int distance); 153 static byteArray param_pig(int distance); 154 155 static byteArray param_cowsMilked(); 156 157 static byteArray param_blocksPlaced(int id, int data, int count); 158 static byteArray param_blocksMined(int id, int data, int count); 159 static byteArray param_itemsCollected(int id, int aux, int count); 160 static byteArray param_itemsCrafted(int id, int aux, int count); 161 static byteArray param_itemsSmelted(int id, int aux, int cound); 162 static byteArray param_itemsUsed(shared_ptr<Player> plr, shared_ptr<ItemInstance> itm); 163 static byteArray param_itemsBought(int id, int aux, int count); 164 165 static byteArray param_mobKill(shared_ptr<Player> plr, shared_ptr<Mob> mob, DamageSource *dmgSrc); 166 167 static byteArray param_breedEntity(eINSTANCEOF mobType); 168 static byteArray param_tamedEntity(eINSTANCEOF mobType); 169 static byteArray param_curedEntity(eINSTANCEOF mobType); 170 static byteArray param_craftedEntity(eINSTANCEOF mobType); 171 static byteArray param_shearedEntity(eINSTANCEOF mobType); 172 173 static byteArray param_time(int timediff); 174 175 static byteArray param_changedDimension(int from, int to); 176 static byteArray param_enteredBiome(int biomeId); 177 178 //static byteArray param_achievement(eAward id); 179 180 //static byteArray param_ach_onARail(); 181 //static byteArray param_overkill(int damage); //TODO 182 //static byteArray param_openInventory(int menuId); 183 //static byteArray param_chestfulOfCobblestone(); 184 //static byteArray param_musicToMyEars(int recordId); 185 186 static byteArray param_noArgs(); 187 188 // STATIC + VIRTUAL - ACHIEVEMENT - PARAMS // 189 190 static byteArray param_openInventory(); 191 static byteArray param_mineWood(); 192 static byteArray param_buildWorkbench(); 193 static byteArray param_buildPickaxe(); 194 static byteArray param_buildFurnace(); 195 static byteArray param_acquireIron(); 196 static byteArray param_buildHoe(); 197 static byteArray param_makeBread(); 198 static byteArray param_bakeCake(); 199 static byteArray param_buildBetterPickaxe(); 200 static byteArray param_cookFish(); 201 static byteArray param_onARail(int distance); 202 static byteArray param_buildSword(); 203 static byteArray param_killEnemy(); 204 static byteArray param_killCow(); 205 static byteArray param_flyPig(); 206 static byteArray param_snipeSkeleton(); 207 static byteArray param_diamonds(); 208 static byteArray param_ghast(); 209 static byteArray param_blazeRod(); 210 static byteArray param_potion(); 211 static byteArray param_theEnd(); 212 static byteArray param_winGame(); 213 static byteArray param_enchantments(); 214 static byteArray param_overkill(int dmg); 215 static byteArray param_bookcase(); 216 217 static byteArray param_leaderOfThePack(); 218 static byteArray param_MOARTools(); 219 static byteArray param_dispenseWithThis(); 220 static byteArray param_InToTheNether(); 221 222 static byteArray param_socialPost(); 223 static byteArray param_eatPorkChop(); 224 static byteArray param_play100Days(); 225 static byteArray param_arrowKillCreeper(); 226 static byteArray param_mine100Blocks(); 227 static byteArray param_kill10Creepers(); 228 229 static byteArray param_adventuringTime(); 230 static byteArray param_repopulation(); 231 static byteArray param_porkChop(); 232 static byteArray param_diamondsToYou(); 233 static byteArray param_passingTheTime(); 234 static byteArray param_archer(); 235 static byteArray param_theHaggler(); 236 static byteArray param_potPlanter(); 237 static byteArray param_itsASign(); 238 static byteArray param_ironBelly(); 239 static byteArray param_haveAShearfulDay(); 240 static byteArray param_rainbowCollection(); 241 static byteArray param_stayinFrosty(); 242 static byteArray param_chestfulOfCobblestone(int cobbleStone); 243 static byteArray param_renewableEnergy(); 244 static byteArray param_musicToMyEars(int recordId); 245 static byteArray param_bodyGuard(); 246 static byteArray param_ironMan(); 247 static byteArray param_zombieDoctor(); 248 static byteArray param_lionTamer(); 249 250protected: 251 // ACHIEVEMENTS - VIRTUAL // 252 253 virtual Stat* get_achievement(eAward achievementId); 254 255 256 // STATS - VIRTUAL // 257 258 virtual Stat* get_walkOneM(); 259 virtual Stat* get_swimOneM(); 260 virtual Stat* get_fallOneM(); 261 virtual Stat* get_climbOneM(); 262 virtual Stat* get_minecartOneM(); 263 virtual Stat* get_boatOneM(); 264 virtual Stat* get_pigOneM(); 265 virtual Stat* get_portalsCreated(); 266 virtual Stat* get_cowsMilked(); 267 virtual Stat* get_netherLavaCollected(); 268 269 virtual Stat* get_killMob(); 270 271 virtual Stat* get_killsZombie(); 272 virtual Stat* get_killsSkeleton(); 273 virtual Stat* get_killsCreeper(); 274 virtual Stat* get_killsSpider(); 275 virtual Stat* get_killsSpiderJockey(); 276 virtual Stat* get_killsZombiePigman(); 277 virtual Stat* get_killsSlime(); 278 virtual Stat* get_killsGhast(); 279 virtual Stat* get_killsNetherZombiePigman(); 280 281 virtual Stat* get_breedEntity(eINSTANCEOF entityId); 282 virtual Stat* get_tamedEntity(eINSTANCEOF entityId); 283 virtual Stat* get_curedEntity(eINSTANCEOF entityId); 284 virtual Stat* get_craftedEntity(eINSTANCEOF entityId); 285 virtual Stat* get_shearedEntity(eINSTANCEOF entityId); 286 287 virtual Stat* get_totalBlocksMined(); 288 virtual Stat* get_timePlayed(); 289 290 virtual Stat* get_blocksPlaced(int blockId); 291 virtual Stat* get_blocksMined(int blockId); 292 virtual Stat* get_itemsCollected(int itemId, int itemAux); 293 virtual Stat* get_itemsCrafted(int itemId); 294 virtual Stat* get_itemsSmelted(int itemId); 295 virtual Stat* get_itemsUsed(int itemId); 296 virtual Stat* get_itemsBought(int itemId); 297 298 virtual Stat* get_killsEnderdragon(); 299 virtual Stat* get_completeTheEnd(); 300 301 virtual Stat* get_changedDimension(int from, int to); 302 virtual Stat* get_enteredBiome(int biomeId); 303 304 // STAT PARAMS - VIRTUAL // 305 306 virtual byteArray getParam_walkOneM(int distance); 307 virtual byteArray getParam_swimOneM(int distance); 308 virtual byteArray getParam_fallOneM(int distance); 309 virtual byteArray getParam_climbOneM(int distance); 310 virtual byteArray getParam_minecartOneM(int distance); 311 virtual byteArray getParam_boatOneM(int distance); 312 virtual byteArray getParam_pigOneM(int distance); 313 314 virtual byteArray getParam_cowsMilked(); 315 316 virtual byteArray getParam_blocksPlaced(int id, int data, int count); 317 virtual byteArray getParam_blocksMined(int id, int data, int count); 318 virtual byteArray getParam_itemsCollected(int id, int aux, int count); 319 virtual byteArray getParam_itemsCrafted(int id, int aux, int count); 320 virtual byteArray getParam_itemsSmelted(int id, int aux, int count); 321 virtual byteArray getParam_itemsUsed(shared_ptr<Player> plr, shared_ptr<ItemInstance> itm); 322 virtual byteArray getParam_itemsBought(int id, int aux, int count); 323 324 virtual byteArray getParam_mobKill(shared_ptr<Player> plr, shared_ptr<Mob> mob, DamageSource *dmgSrc); 325 326 virtual byteArray getParam_breedEntity(eINSTANCEOF entityId); 327 virtual byteArray getParam_tamedEntity(eINSTANCEOF entityId); 328 virtual byteArray getParam_curedEntity(eINSTANCEOF entityId); 329 virtual byteArray getParam_craftedEntity(eINSTANCEOF entityId); 330 virtual byteArray getParam_shearedEntity(eINSTANCEOF entityId); 331 332 virtual byteArray getParam_time(int timediff); 333 334 virtual byteArray getParam_changedDimension(int from, int to); 335 virtual byteArray getParam_enteredBiome(int biomeId); 336 337 virtual byteArray getParam_achievement(eAward id); 338 339 virtual byteArray getParam_onARail(int distance); 340 virtual byteArray getParam_overkill(int damage); 341 virtual byteArray getParam_openInventory(int menuId); 342 virtual byteArray getParam_chestfulOfCobblestone(int cobbleStone); 343 virtual byteArray getParam_musicToMyEars(int recordId); 344 345 virtual byteArray getParam_noArgs(); 346}; 347 348// Req Stats