1
0

AnvilStats: complete per-biome blocktype statistics

git-svn-id: http://mc-server.googlecode.com/svn/trunk@897 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2012-09-28 20:17:29 +00:00
parent 19a3981eb9
commit 3165458c59
9 changed files with 431 additions and 32 deletions

225
AnvilStats/Utils.cpp Normal file
View File

@@ -0,0 +1,225 @@
// Utils.cpp
// Implements utility functions
#include "Globals.h"
#include "Utils.h"
const char * GetBiomeString(unsigned char a_Biome)
{
static const char * BiomeNames[] = // Biome names, as equivalent to their index
{
"Ocean",
"Plains",
"Desert",
"Extreme Hills",
"Forest",
"Taiga",
"Swampland",
"River",
"Hell",
"Sky",
"Frozen Ocean",
"Frozen River",
"Ice Plains",
"Ice Mountains",
"Mushroom Island",
"Mushroom Island Shore",
"Beach",
"Desert Hills",
"Forest Hills",
"Taiga Hills",
"Extreme Hills Edge",
"Jungle",
"Jungle Hills",
} ;
return (a_Biome < ARRAYCOUNT(BiomeNames)) ? BiomeNames[a_Biome] : "";
}
const char * GetBlockTypeString(unsigned char a_BlockType)
{
static const char * BlockTypeNames[] = // Block type names, as equivalent to their index
{
"air",
"stone",
"grass",
"dirt",
"cobblestone",
"planks",
"sapling",
"bedrock",
"water",
"stillwater",
"lava",
"stilllava",
"sand",
"gravel",
"goldore",
"ironore",
"coalore",
"log",
"leaves",
"sponge",
"glass",
"lapisore",
"lapisblock",
"dispenser",
"sandstone",
"noteblock",
"bedblock",
"poweredrail",
"detectorrail",
"stickypiston",
"cobweb",
"tallgrass",
"deadbush",
"piston",
"pistonhead",
"wool",
"pistonmovedblock",
"flower",
"rose",
"brownmushroom",
"redmushroom",
"goldblock",
"ironblock",
"doubleslab",
"slab",
"brickblock",
"tnt",
"bookcase",
"mossycobblestone",
"obsidian",
"torch",
"fire",
"mobspawner",
"woodstairs",
"chest",
"redstonedust",
"diamondore",
"diamondblock",
"workbench",
"crops",
"soil",
"furnace",
"litfurnace",
"signblock",
"wooddoorblock",
"ladder",
"tracks",
"cobblestonestairs",
"wallsign",
"lever",
"stoneplate",
"irondoorblock",
"woodplate",
"redstoneore",
"redstoneorealt",
"redstonetorchoff",
"redstonetorchon",
"button",
"snow",
"ice",
"snowblock",
"cactus",
"clayblock",
"reedblock",
"jukebox",
"fence",
"pumpkin",
"netherrack",
"soulsand",
"glowstone",
"portal",
"jack-o-lantern",
"cakeblock",
"repeateroff",
"repeateron",
"lockedchest",
"trapdoor",
"silverfishblock",
"stonebricks",
"hugebrownmushroom",
"hugeredmushroom",
"ironbars",
"glasspane",
"melon",
"pumpkinstem",
"melonstem",
"vines",
"fencegate",
"brickstairs",
"stonebrickstairs",
"mycelium",
"lilypad",
"netherbrick",
"netherbrickfence",
"netherbrickstairs",
"netherwartblock",
"enchantmenttable",
"brewingstandblock",
"cauldronblock",
"endportal",
"endportalframe",
"endstone",
"dragonegg",
"redstonelampoff",
"redstonelampon",
"woodendoubleslab",
"woodenslab",
"cocoapod",
"sandstonestairs", /* 128 */
"Emerald Ore",
"Ender Chest",
"Tripwire Hook",
"Tripwire",
"Block of Emerald",
"Spruce Wood Stairs",
"Birch Wood Stairs",
"Jungle Wood Stairs",
"Command Block",
"Beacon",
"Cobblestone Wall",
"Flower Pot",
"Carrots",
"Potatoes",
"Wooden Button",
"Head",
} ;
return (a_BlockType < ARRAYCOUNT(BlockTypeNames)) ? BlockTypeNames[a_BlockType] : "";
}
int GetNumCores(void)
{
// Get number of cores by querying the system process affinity mask (Windows-specific)
DWORD Affinity, ProcAffinity;
GetProcessAffinityMask(GetCurrentProcess(), &ProcAffinity, &Affinity);
int NumCores = 0;
while (Affinity > 0)
{
if ((Affinity & 1) == 1)
{
++NumCores;
}
Affinity >>= 1;
} // while (Affinity > 0)
return NumCores;
}