diff options
64 files changed, 257 insertions, 320 deletions
diff --git a/.gitignore b/.gitignore index a4cbef72f..6afc12116 100644 --- a/.gitignore +++ b/.gitignore @@ -56,6 +56,7 @@ Makefile *.a *.d *.so +BuildInfo.h CMakeCache.txt CMakeFiles Makefile diff --git a/CIbuild.sh b/CIbuild.sh index 683c1fc74..5d95f88a6 100755 --- a/CIbuild.sh +++ b/CIbuild.sh @@ -2,6 +2,10 @@ set -e +export MCSERVER_BUILD_SERIES_NAME="Travis $CC $TRAVIS_MCSERVER_BUILD_TYPE" +export MCSERVER_BUILD_ID=$TRAVIS_JOB_NUMBER +export MCSERVER_BUILD_DATETIME=`date` + cmake . -DBUILD_TOOLS=1 -DSELF_TEST=1; make -j 2; make -j 2 test; diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c47eb509..188cf81e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,6 +18,25 @@ if(DEFINED ENV{TRAVIS_BUILD_WITH_COVERAGE}) set(BUILD_WITH_COVERAGE $ENV{TRAVIS_BUILD_WITH_COVERAGE}) endif() +if(DEFINED ENV{MCSERVER_BUILD_ID}) + set(BUILD_ID $ENV{MCSERVER_BUILD_ID}) + set(BUILD_SERIES_NAME $ENV{MCSERVER_BUILD_SERIES_NAME}) + set(BUILD_DATETIME $ENV{MCSERVER_BUILD_DATETIME}) + if(DEFINED ENV{MCSERVER_BUILD_COMMIT_ID}) + set(BUILD_COMMIT_ID $ENV{MCSERVER_BUILD_COMMIT_ID}) + else() + message("Commit id not set, attempting to determine id from git") + execute_process( + COMMAND git rev-parse HEAD + RESULT_VARIABLE GIT_EXECUTED + OUTPUT_VARIABLE BUILD_COMMIT_ID) + string(STRIP ${BUILD_COMMIT_ID} BUILD_COMMIT_ID) + if (NOT (GIT_EXECUTED EQUAL 0)) + message(FATAL_ERROR "Could not identifiy git commit id") + endif() + endif() +endif() + # This has to be done before any flags have been set up. if(${BUILD_TOOLS}) add_subdirectory(Tools/MCADefrag/) diff --git a/Install/Zip2008.list b/Install/Zip2008.list index dba435f60..e69857d09 100644 --- a/Install/Zip2008.list +++ b/Install/Zip2008.list @@ -6,6 +6,7 @@ ..\MCServer\furnace.txt ..\MCServer\items.ini ..\MCServer\monsters.ini +..\MCServer\buildinfo.txt MCServer*debug.cmd *.example.ini ThirdPartyLicenses diff --git a/Install/Zip2008_PDBs.list b/Install/Zip2008_PDBs.list index 608b0185b..96e4cd7d3 100644 --- a/Install/Zip2008_PDBs.list +++ b/Install/Zip2008_PDBs.list @@ -1,2 +1,3 @@ MCServer\*.pdb -src\Bindings\Bindings.*
\ No newline at end of file +MCServer\buildinfo.txt +src\Bindings\Bindings.* diff --git a/MCServer/Plugins/APIDump/APIDesc.lua b/MCServer/Plugins/APIDump/APIDesc.lua index 718cb4e98..c23120600 100644 --- a/MCServer/Plugins/APIDump/APIDesc.lua +++ b/MCServer/Plugins/APIDump/APIDesc.lua @@ -524,6 +524,7 @@ end Functions = { GenerateOfflineUUID = { Params = "Username", Return = "string", Notes = "(STATIC) Generates an UUID based on the player name provided. This is used for the offline (non-auth) mode, when there's no UUID source. Each username generates a unique and constant UUID, so that when the player reconnects with the same name, their UUID is the same. Returns a 32-char UUID (no dashes)." }, + GetIPString = { Params = "", Return = "string", Notes = "Returns the IP address of the connection, as a string. Only the address part is returned, without the port number." }, GetLocale = { Params = "", Return = "Locale", Notes = "Returns the locale string that the client sends as part of the protocol handshake. Can be used to provide localized strings." }, GetPing = { Params = "", Return = "number", Notes = "Returns the ping time, in ms" }, GetPlayer = { Params = "", Return = "{{cPlayer|cPlayer}}", Notes = "Returns the player object connected to this client. Note that this may be nil, for example if the player object is not yet spawned." }, diff --git a/src/BlockInfo.cpp b/src/BlockInfo.cpp index a59229f87..9ac66d35d 100644 --- a/src/BlockInfo.cpp +++ b/src/BlockInfo.cpp @@ -18,6 +18,7 @@ cBlockInfo::cBlockInfo() , m_IsSolid(true) , m_FullyOccupiesVoxel(false) , m_CanBeTerraformed(false) + , m_PlaceSound("") , m_Handler(NULL) {} @@ -571,6 +572,172 @@ void cBlockInfo::Initialize(cBlockInfoArray & a_Info) a_Info[E_BLOCK_SOULSAND ].m_CanBeTerraformed = true; a_Info[E_BLOCK_STAINED_CLAY ].m_CanBeTerraformed = true; a_Info[E_BLOCK_STONE ].m_CanBeTerraformed = true; + + + // Block place sounds: + a_Info[E_BLOCK_STONE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_GRASS ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_DIRT ].m_PlaceSound = "dig.gravel"; + a_Info[E_BLOCK_COBBLESTONE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_PLANKS ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_SAPLING ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_BEDROCK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_SAND ].m_PlaceSound = "dig.sand"; + a_Info[E_BLOCK_GRAVEL ].m_PlaceSound = "dig.gravel"; + a_Info[E_BLOCK_GOLD_ORE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_IRON_ORE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_COAL_ORE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_LOG ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_LEAVES ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_SPONGE ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_GLASS ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_LAPIS_ORE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_LAPIS_BLOCK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_DISPENSER ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_SANDSTONE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_NOTE_BLOCK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_POWERED_RAIL ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_DETECTOR_RAIL ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_STICKY_PISTON ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_COBWEB ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_TALL_GRASS ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_DEAD_BUSH ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_PISTON ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_PISTON_EXTENSION ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_WOOL ].m_PlaceSound = "dig.cloth"; + a_Info[E_BLOCK_PISTON_MOVED_BLOCK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_DANDELION ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_FLOWER ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_BROWN_MUSHROOM ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_RED_MUSHROOM ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_GOLD_BLOCK ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_IRON_BLOCK ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_DOUBLE_STONE_SLAB ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_STONE_SLAB ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_BRICK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_TNT ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_BOOKCASE ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_MOSSY_COBBLESTONE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_OBSIDIAN ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_TORCH ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_FIRE ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_MOB_SPAWNER ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_WOODEN_STAIRS ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_CHEST ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_REDSTONE_WIRE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_DIAMOND_ORE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_DIAMOND_BLOCK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_CRAFTING_TABLE ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_FARMLAND ].m_PlaceSound = "dig.gravel"; + a_Info[E_BLOCK_FURNACE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_LIT_FURNACE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_SIGN_POST ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_WOODEN_DOOR ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_LADDER ].m_PlaceSound = "dig.ladder"; + a_Info[E_BLOCK_RAIL ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_COBBLESTONE_STAIRS ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_WALLSIGN ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_LEVER ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_STONE_PRESSURE_PLATE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_IRON_DOOR ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_WOODEN_PRESSURE_PLATE ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_REDSTONE_ORE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_REDSTONE_ORE_GLOWING ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_REDSTONE_TORCH_OFF ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_REDSTONE_TORCH_ON ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_STONE_BUTTON ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_SNOW ].m_PlaceSound = "dig.snow"; + a_Info[E_BLOCK_ICE ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_SNOW_BLOCK ].m_PlaceSound = "dig.snow"; + a_Info[E_BLOCK_CACTUS ].m_PlaceSound = "dig.cloth"; + a_Info[E_BLOCK_CLAY ].m_PlaceSound = "dig.gravel"; + a_Info[E_BLOCK_SUGARCANE ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_JUKEBOX ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_FENCE ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_PUMPKIN ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_NETHERRACK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_SOULSAND ].m_PlaceSound = "dig.sand"; + a_Info[E_BLOCK_GLOWSTONE ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_NETHER_PORTAL ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_JACK_O_LANTERN ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_CAKE ].m_PlaceSound = "dig.snow"; + a_Info[E_BLOCK_REDSTONE_REPEATER_OFF ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_REDSTONE_REPEATER_ON ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_STAINED_GLASS ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_TRAPDOOR ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_SILVERFISH_EGG ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_STONE_BRICKS ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_HUGE_BROWN_MUSHROOM ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_HUGE_RED_MUSHROOM ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_IRON_BARS ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_GLASS_PANE ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_MELON ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_PUMPKIN_STEM ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_MELON_STEM ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_VINES ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_FENCE_GATE ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_BRICK_STAIRS ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_STONE_BRICK_STAIRS ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_MYCELIUM ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_LILY_PAD ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_NETHER_BRICK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_NETHER_BRICK_FENCE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_NETHER_BRICK_STAIRS ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_NETHER_WART ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_ENCHANTMENT_TABLE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_BREWING_STAND ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_CAULDRON ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_END_PORTAL ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_END_PORTAL_FRAME ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_END_STONE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_DRAGON_EGG ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_REDSTONE_LAMP_OFF ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_REDSTONE_LAMP_ON ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_DOUBLE_WOODEN_SLAB ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_WOODEN_SLAB ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_COCOA_POD ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_SANDSTONE_STAIRS ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_EMERALD_ORE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_ENDER_CHEST ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_TRIPWIRE_HOOK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_TRIPWIRE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_EMERALD_BLOCK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_SPRUCE_WOOD_STAIRS ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_BIRCH_WOOD_STAIRS ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_JUNGLE_WOOD_STAIRS ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_COMMAND_BLOCK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_BEACON ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_COBBLESTONE_WALL ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_FLOWER_POT ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_CARROTS ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_POTATOES ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_HEAD ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_ANVIL ].m_PlaceSound = "dig.anvil"; + a_Info[E_BLOCK_TRAPPED_CHEST ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_LIGHT_WEIGHTED_PRESSURE_PLATE ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_HEAVY_WEIGHTED_PRESSURE_PLATE ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_INACTIVE_COMPARATOR ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_ACTIVE_COMPARATOR ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_DAYLIGHT_SENSOR ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_BLOCK_OF_REDSTONE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_NETHER_QUARTZ_ORE ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_HOPPER ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_QUARTZ_BLOCK ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_QUARTZ_STAIRS ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_ACTIVATOR_RAIL ].m_PlaceSound = "dig.metal"; + a_Info[E_BLOCK_DROPPER ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_STAINED_CLAY ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_STAINED_GLASS_PANE ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_NEW_LEAVES ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_NEW_LOG ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_ACACIA_WOOD_STAIRS ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_DARK_OAK_WOOD_STAIRS ].m_PlaceSound = "dig.wood"; + a_Info[E_BLOCK_HAY_BALE ].m_PlaceSound = "dig.grass"; + a_Info[E_BLOCK_CARPET ].m_PlaceSound = "dig.cloth"; + a_Info[E_BLOCK_HARDENED_CLAY ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_BLOCK_OF_COAL ].m_PlaceSound = "dig.stone"; + a_Info[E_BLOCK_PACKED_ICE ].m_PlaceSound = "dig.glass"; + a_Info[E_BLOCK_BIG_FLOWER ].m_PlaceSound = "dig.grass"; } diff --git a/src/BlockInfo.h b/src/BlockInfo.h index 4c66c095a..567070a7f 100644 --- a/src/BlockInfo.h +++ b/src/BlockInfo.h @@ -48,6 +48,9 @@ public: /** Can a finisher change it? */ bool m_CanBeTerraformed; + /** Sound when placing this block */ + AString m_PlaceSound; + // tolua_end /** Associated block handler. */ @@ -64,6 +67,7 @@ public: inline static bool IsSolid (BLOCKTYPE a_Type) { return Get(a_Type).m_IsSolid; } inline static bool FullyOccupiesVoxel (BLOCKTYPE a_Type) { return Get(a_Type).m_FullyOccupiesVoxel; } inline static bool CanBeTerraformed (BLOCKTYPE a_Type) { return Get(a_Type).m_CanBeTerraformed; } + inline static AString GetPlaceSound (BLOCKTYPE a_Type) { return Get(a_Type).m_PlaceSound; } // tolua_end diff --git a/src/Blocks/BlockBigFlower.h b/src/Blocks/BlockBigFlower.h index 72e552dee..646980634 100644 --- a/src/Blocks/BlockBigFlower.h +++ b/src/Blocks/BlockBigFlower.h @@ -118,12 +118,6 @@ public: } } } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockButton.h b/src/Blocks/BlockButton.h index 3b45afff8..8e4f04740 100644 --- a/src/Blocks/BlockButton.h +++ b/src/Blocks/BlockButton.h @@ -57,12 +57,6 @@ public: } - virtual const char * GetStepSound(void) override - { - return m_BlockType == E_BLOCK_WOODEN_BUTTON ? "step.wood" : "step.stone"; - } - - inline static NIBBLETYPE BlockFaceToMetaData(eBlockFace a_BlockFace) { switch (a_BlockFace) diff --git a/src/Blocks/BlockCactus.h b/src/Blocks/BlockCactus.h index ed441517d..910966c43 100644 --- a/src/Blocks/BlockCactus.h +++ b/src/Blocks/BlockCactus.h @@ -69,12 +69,6 @@ public: { a_Chunk.GetWorld()->GrowCactus(a_RelX + a_Chunk.GetPosX() * cChunkDef::Width, a_RelY, a_RelZ + a_Chunk.GetPosZ() * cChunkDef::Width, 1); } - - - virtual const char * GetStepSound(void) override - { - return "step.cloth"; - } } ; diff --git a/src/Blocks/BlockCake.h b/src/Blocks/BlockCake.h index f05f468e5..3a754ce18 100644 --- a/src/Blocks/BlockCake.h +++ b/src/Blocks/BlockCake.h @@ -43,11 +43,6 @@ public: { return true; } - - virtual const char * GetStepSound(void) override - { - return "step.cloth"; - } } ; diff --git a/src/Blocks/BlockCarpet.h b/src/Blocks/BlockCarpet.h index d1aa52687..4b287c664 100644 --- a/src/Blocks/BlockCarpet.h +++ b/src/Blocks/BlockCarpet.h @@ -22,12 +22,6 @@ public: cBlockHandler(a_BlockType) { } - - - virtual const char * GetStepSound(void) override - { - return "step.cloth"; - } virtual bool GetPlacementBlockTypeMeta( diff --git a/src/Blocks/BlockChest.h b/src/Blocks/BlockChest.h index 28adbed4f..201f2309b 100644 --- a/src/Blocks/BlockChest.h +++ b/src/Blocks/BlockChest.h @@ -106,12 +106,6 @@ public: // Single chest, no further processing needed } - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } - virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk) override { int BlockX = a_RelX + a_Chunk.GetPosX() * cChunkDef::Width; diff --git a/src/Blocks/BlockCloth.h b/src/Blocks/BlockCloth.h index 3c1ae7c25..525176725 100644 --- a/src/Blocks/BlockCloth.h +++ b/src/Blocks/BlockCloth.h @@ -15,11 +15,6 @@ public: : cBlockHandler(a_BlockType) { } - - virtual const char * GetStepSound(void) override - { - return "step.cloth"; - } } ; diff --git a/src/Blocks/BlockCommandBlock.h b/src/Blocks/BlockCommandBlock.h index cf0103765..b66def201 100644 --- a/src/Blocks/BlockCommandBlock.h +++ b/src/Blocks/BlockCommandBlock.h @@ -20,11 +20,6 @@ public: { a_Pickups.push_back(cItem(E_BLOCK_AIR, 8, 0)); } - - virtual const char * GetStepSound(void) override - { - return "step.stone"; - } } ; diff --git a/src/Blocks/BlockComparator.h b/src/Blocks/BlockComparator.h index 6caaaab13..3443fc69e 100644 --- a/src/Blocks/BlockComparator.h +++ b/src/Blocks/BlockComparator.h @@ -64,12 +64,6 @@ public: a_BlockMeta = cBlockRedstoneRepeaterHandler::RepeaterRotationToMetaData(a_Player->GetYaw()); return true; } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/BlockCrops.h b/src/Blocks/BlockCrops.h index ae6e490e1..53e996683 100644 --- a/src/Blocks/BlockCrops.h +++ b/src/Blocks/BlockCrops.h @@ -100,12 +100,6 @@ public: { return ((a_RelY > 0) && (a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ) == E_BLOCK_FARMLAND)); } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockDirt.h b/src/Blocks/BlockDirt.h index d458c6062..23e5a3cde 100644 --- a/src/Blocks/BlockDirt.h +++ b/src/Blocks/BlockDirt.h @@ -88,12 +88,6 @@ public: } } // for i - repeat twice } - - - virtual const char * GetStepSound(void) override - { - return "step.gravel"; - } } ; diff --git a/src/Blocks/BlockDoor.cpp b/src/Blocks/BlockDoor.cpp index e80473cb5..1204debab 100644 --- a/src/Blocks/BlockDoor.cpp +++ b/src/Blocks/BlockDoor.cpp @@ -109,15 +109,6 @@ void cBlockDoorHandler::OnPlacedByPlayer( -const char * cBlockDoorHandler::GetStepSound(void) -{ - return (m_BlockType == E_BLOCK_WOODEN_DOOR) ? "step.wood" : "step.stone"; -} - - - - - NIBBLETYPE cBlockDoorHandler::MetaRotateCCW(NIBBLETYPE a_Meta) { if (a_Meta & 0x08) diff --git a/src/Blocks/BlockDoor.h b/src/Blocks/BlockDoor.h index c86fe829b..69e30d9c8 100644 --- a/src/Blocks/BlockDoor.h +++ b/src/Blocks/BlockDoor.h @@ -19,7 +19,6 @@ public: virtual void OnDestroyed(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, int a_BlockX, int a_BlockY, int a_BlockZ) override; virtual void OnUse(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, int a_CursorX, int a_CursorY, int a_CursorZ) override; virtual void OnCancelRightClick(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace) override; - virtual const char * GetStepSound(void) override; virtual NIBBLETYPE MetaRotateCCW(NIBBLETYPE a_Meta) override; virtual NIBBLETYPE MetaRotateCW(NIBBLETYPE a_Meta) override; diff --git a/src/Blocks/BlockEnderchest.h b/src/Blocks/BlockEnderchest.h index 4672f1459..0bc67a8f5 100644 --- a/src/Blocks/BlockEnderchest.h +++ b/src/Blocks/BlockEnderchest.h @@ -33,11 +33,6 @@ public: a_BlockMeta = RotationToMetaData(a_Player->GetYaw()); return true; } - - virtual const char * GetStepSound(void) override - { - return "step.stone"; - } static NIBBLETYPE RotationToMetaData(double a_Rotation) { diff --git a/src/Blocks/BlockFire.h b/src/Blocks/BlockFire.h index b9f211042..b6d1d95f2 100644 --- a/src/Blocks/BlockFire.h +++ b/src/Blocks/BlockFire.h @@ -50,11 +50,6 @@ public: return true; } - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } - /** Traces along YP until it finds an obsidian block, returns Y difference or 0 if no portal, and -1 for border Takes the X, Y, and Z of the base block; with an optional MaxY for portal border finding */ int FindObsidianCeiling(int X, int Y, int Z, cChunkInterface & a_ChunkInterface, int MaxY = 0) diff --git a/src/Blocks/BlockFlower.h b/src/Blocks/BlockFlower.h index 6f64c062b..3eb8a0baa 100644 --- a/src/Blocks/BlockFlower.h +++ b/src/Blocks/BlockFlower.h @@ -28,12 +28,6 @@ public: { return (a_RelY > 0) && IsBlockTypeOfDirt(a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ)); } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockGravel.h b/src/Blocks/BlockGravel.h index e1c9ff390..717bd5f5f 100644 --- a/src/Blocks/BlockGravel.h +++ b/src/Blocks/BlockGravel.h @@ -15,11 +15,6 @@ public: : cBlockHandler(a_BlockType) { } - - virtual const char * GetStepSound(void) override - { - return "step.gravel"; - } } ; diff --git a/src/Blocks/BlockHandler.cpp b/src/Blocks/BlockHandler.cpp index 6767d4de4..34925a252 100644 --- a/src/Blocks/BlockHandler.cpp +++ b/src/Blocks/BlockHandler.cpp @@ -495,15 +495,6 @@ void cBlockHandler::DropBlock(cChunkInterface & a_ChunkInterface, cWorldInterfac -const char * cBlockHandler::GetStepSound() -{ - return "step.stone"; -} - - - - - bool cBlockHandler::CanBeAt(cChunkInterface & a_ChunkInterface, int a_BlockX, int a_BlockY, int a_BlockZ, const cChunk & a_Chunk) { return true; diff --git a/src/Blocks/BlockHandler.h b/src/Blocks/BlockHandler.h index de90ce55b..b3ada279c 100644 --- a/src/Blocks/BlockHandler.h +++ b/src/Blocks/BlockHandler.h @@ -84,9 +84,6 @@ public: */ virtual void DropBlock(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cBlockPluginInterface & a_BlockPluginInterface, cEntity * a_Digger, int a_BlockX, int a_BlockY, int a_BlockZ, bool a_CanDrop = true, bool a_DropVerbatim = false); - /// Returns step sound name of block - virtual const char * GetStepSound(void); - /// Checks if the block can stay at the specified relative coords in the chunk virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk); diff --git a/src/Blocks/BlockHayBale.h b/src/Blocks/BlockHayBale.h index 3c6472adb..8150b10d3 100644 --- a/src/Blocks/BlockHayBale.h +++ b/src/Blocks/BlockHayBale.h @@ -15,12 +15,6 @@ public: : cBlockSidewaysHandler(a_BlockType) { } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockLadder.h b/src/Blocks/BlockLadder.h index 284d1d732..ab3f55439 100644 --- a/src/Blocks/BlockLadder.h +++ b/src/Blocks/BlockLadder.h @@ -111,12 +111,6 @@ public: int BlockZ = a_RelZ + a_Chunk.GetPosZ() * cChunkDef::Width; return LadderCanBePlacedAt(a_ChunkInterface, BlockX, a_RelY, BlockZ, BlockFace); } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/BlockLeaves.h b/src/Blocks/BlockLeaves.h index a8aa28a0f..add571675 100644 --- a/src/Blocks/BlockLeaves.h +++ b/src/Blocks/BlockLeaves.h @@ -112,12 +112,6 @@ public: DropBlock(a_ChunkInterface, a_WorldInterface, a_PluginInterface, NULL, BlockX, a_RelY, BlockZ); a_ChunkInterface.DigBlock(a_WorldInterface, BlockX, a_RelY, BlockZ); } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockLever.h b/src/Blocks/BlockLever.h index 4316fd06b..3b63b396c 100644 --- a/src/Blocks/BlockLever.h +++ b/src/Blocks/BlockLever.h @@ -70,12 +70,6 @@ public: } - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } - - inline static eBlockFace BlockMetaDataToBlockFace(NIBBLETYPE a_Meta) { switch (a_Meta & 0x7) diff --git a/src/Blocks/BlockMelon.h b/src/Blocks/BlockMelon.h index 60202d66e..22cdb4d29 100644 --- a/src/Blocks/BlockMelon.h +++ b/src/Blocks/BlockMelon.h @@ -22,12 +22,6 @@ public: cFastRandom Random; a_Pickups.push_back(cItem(E_ITEM_MELON_SLICE, (char)(3 + Random.NextInt(5)), 0)); } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/BlockMushroom.h b/src/Blocks/BlockMushroom.h index 135d418d7..7c06fcc74 100644 --- a/src/Blocks/BlockMushroom.h +++ b/src/Blocks/BlockMushroom.h @@ -50,12 +50,6 @@ public: } return true; } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockMycelium.h b/src/Blocks/BlockMycelium.h index 2a8ef5fca..628e87181 100644 --- a/src/Blocks/BlockMycelium.h +++ b/src/Blocks/BlockMycelium.h @@ -22,11 +22,6 @@ public: { a_Pickups.push_back(cItem(E_BLOCK_DIRT, 1, 0)); } - - virtual const char * GetStepSound(void) override - { - return "step.gravel"; - } } ; diff --git a/src/Blocks/BlockPlanks.h b/src/Blocks/BlockPlanks.h index 4c5bb4860..3c243ebdc 100644 --- a/src/Blocks/BlockPlanks.h +++ b/src/Blocks/BlockPlanks.h @@ -27,12 +27,6 @@ public: a_BlockMeta = (NIBBLETYPE)(a_Player->GetEquippedItem().m_ItemDamage); return true; } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/BlockRedstoneRepeater.h b/src/Blocks/BlockRedstoneRepeater.h index 4b18add12..3e5259c56 100644 --- a/src/Blocks/BlockRedstoneRepeater.h +++ b/src/Blocks/BlockRedstoneRepeater.h @@ -63,12 +63,6 @@ public: } - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } - - inline static NIBBLETYPE RepeaterRotationToMetaData(double a_Rotation) { a_Rotation += 90 + 45; // So its not aligned with axis diff --git a/src/Blocks/BlockRedstoneTorch.h b/src/Blocks/BlockRedstoneTorch.h index cb897ba3f..8416a415c 100644 --- a/src/Blocks/BlockRedstoneTorch.h +++ b/src/Blocks/BlockRedstoneTorch.h @@ -23,12 +23,6 @@ public: // Always drop the ON torch, meta 0 a_Pickups.push_back(cItem(E_BLOCK_REDSTONE_TORCH_ON, 1, 0)); } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/BlockSand.h b/src/Blocks/BlockSand.h index 3fc271483..48beab138 100644 --- a/src/Blocks/BlockSand.h +++ b/src/Blocks/BlockSand.h @@ -15,12 +15,6 @@ public: : cBlockHandler(a_BlockType) { } - - virtual const char * GetStepSound(void) override - { - return "step.sand"; - } - }; diff --git a/src/Blocks/BlockSapling.h b/src/Blocks/BlockSapling.h index de28273d5..bec79c6f3 100644 --- a/src/Blocks/BlockSapling.h +++ b/src/Blocks/BlockSapling.h @@ -46,12 +46,6 @@ public: a_Chunk.SetMeta(a_RelX, a_RelY, a_RelZ, Meta | 0x08); } } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockSideways.h b/src/Blocks/BlockSideways.h index f5f10899d..4b1e38d6d 100644 --- a/src/Blocks/BlockSideways.h +++ b/src/Blocks/BlockSideways.h @@ -65,12 +65,6 @@ public: } } } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/BlockSignPost.h b/src/Blocks/BlockSignPost.h index d0cc760b0..40e15c253 100644 --- a/src/Blocks/BlockSignPost.h +++ b/src/Blocks/BlockSignPost.h @@ -27,12 +27,6 @@ public: } - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } - - virtual bool CanBeAt(cChunkInterface & a_ChunkInterface, int a_RelX, int a_RelY, int a_RelZ, const cChunk & a_Chunk) override { if (a_RelY <= 0) diff --git a/src/Blocks/BlockSlab.h b/src/Blocks/BlockSlab.h index e67f0e8b3..0ad30bb2b 100644 --- a/src/Blocks/BlockSlab.h +++ b/src/Blocks/BlockSlab.h @@ -85,18 +85,6 @@ public: return true; } - - - virtual const char * GetStepSound(void) override - { - switch (m_BlockType) - { - case E_BLOCK_WOODEN_SLAB: return "step.wood"; - case E_BLOCK_STONE_SLAB: return "step.stone"; - } - ASSERT(!"Unhandled slab type!"); - return ""; - } virtual bool CanDirtGrowGrass(NIBBLETYPE a_Meta) override @@ -174,17 +162,6 @@ public: ASSERT(!"Unhandled double slab type!"); return a_BlockType; } - - virtual const char * GetStepSound(void) override - { - switch (m_BlockType) - { - case E_BLOCK_DOUBLE_STONE_SLAB: return "step.stone"; - case E_BLOCK_DOUBLE_WOODEN_SLAB: return "step.wood"; - } - ASSERT(!"Unhandled double slab type!"); - return ""; - } } ; diff --git a/src/Blocks/BlockSnow.h b/src/Blocks/BlockSnow.h index 977f19a16..7b6094c9f 100644 --- a/src/Blocks/BlockSnow.h +++ b/src/Blocks/BlockSnow.h @@ -87,12 +87,6 @@ public: { return false; } - - - virtual const char * GetStepSound(void) override - { - return "step.cloth"; - } } ; diff --git a/src/Blocks/BlockStairs.h b/src/Blocks/BlockStairs.h index 417969a82..d396204e0 100644 --- a/src/Blocks/BlockStairs.h +++ b/src/Blocks/BlockStairs.h @@ -55,24 +55,6 @@ public: } - virtual const char * GetStepSound(void) override - { - if ( - (m_BlockType == E_BLOCK_WOODEN_STAIRS) || - (m_BlockType == E_BLOCK_SPRUCE_WOOD_STAIRS) || - (m_BlockType == E_BLOCK_JUNGLE_WOOD_STAIRS) || - (m_BlockType == E_BLOCK_ACACIA_WOOD_STAIRS) || - (m_BlockType == E_BLOCK_BIRCH_WOOD_STAIRS) || - (m_BlockType == E_BLOCK_DARK_OAK_WOOD_STAIRS) - ) - { - return "step.wood"; - } - - return "step.stone"; - } - - virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override { // Reset meta to zero diff --git a/src/Blocks/BlockStems.h b/src/Blocks/BlockStems.h index b726a0901..860c7dd45 100644 --- a/src/Blocks/BlockStems.h +++ b/src/Blocks/BlockStems.h @@ -47,12 +47,6 @@ public: { return ((a_RelY > 0) && (a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ) == E_BLOCK_FARMLAND)); } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/BlockSugarcane.h b/src/Blocks/BlockSugarcane.h index 5902c791b..c832ff218 100644 --- a/src/Blocks/BlockSugarcane.h +++ b/src/Blocks/BlockSugarcane.h @@ -78,12 +78,6 @@ public: { a_Chunk.GetWorld()->GrowSugarcane(a_RelX + a_Chunk.GetPosX() * cChunkDef::Width, a_RelY, a_RelZ + a_Chunk.GetPosZ() * cChunkDef::Width, 1); } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockTNT.h b/src/Blocks/BlockTNT.h index 283a03730..3a573ae67 100644 --- a/src/Blocks/BlockTNT.h +++ b/src/Blocks/BlockTNT.h @@ -16,11 +16,6 @@ public: { } - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } - virtual void OnCancelRightClick(cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace) override { a_WorldInterface.SendBlockTo(a_BlockX, a_BlockY, a_BlockZ, a_Player); diff --git a/src/Blocks/BlockTallGrass.h b/src/Blocks/BlockTallGrass.h index 9c008f793..f520414a7 100644 --- a/src/Blocks/BlockTallGrass.h +++ b/src/Blocks/BlockTallGrass.h @@ -53,12 +53,6 @@ public: { return ((a_RelY > 0) && (a_Chunk.GetBlock(a_RelX, a_RelY - 1, a_RelZ) != E_BLOCK_AIR)); } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } } ; diff --git a/src/Blocks/BlockTorch.h b/src/Blocks/BlockTorch.h index df5574d5d..fa46b37a8 100644 --- a/src/Blocks/BlockTorch.h +++ b/src/Blocks/BlockTorch.h @@ -184,12 +184,6 @@ public: // Always drop meta = 0 a_Pickups.push_back(cItem(m_BlockType, 1, 0)); } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/BlockTrapdoor.h b/src/Blocks/BlockTrapdoor.h index a6327b5c2..41256ae55 100644 --- a/src/Blocks/BlockTrapdoor.h +++ b/src/Blocks/BlockTrapdoor.h @@ -16,11 +16,6 @@ public: { } - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } - virtual void ConvertToPickups(cItems & a_Pickups, NIBBLETYPE a_BlockMeta) override { // Reset meta to zero diff --git a/src/Blocks/BlockTripwire.h b/src/Blocks/BlockTripwire.h index 3ab17bf4a..d03f37537 100644 --- a/src/Blocks/BlockTripwire.h +++ b/src/Blocks/BlockTripwire.h @@ -20,11 +20,6 @@ public: { a_Pickups.push_back(cItem(E_ITEM_STRING, 1, 0)); } - - virtual const char * GetStepSound(void) override - { - return ""; - } }; diff --git a/src/Blocks/BlockTripwireHook.h b/src/Blocks/BlockTripwireHook.h index 4f9d79483..88d389711 100644 --- a/src/Blocks/BlockTripwireHook.h +++ b/src/Blocks/BlockTripwireHook.h @@ -70,11 +70,6 @@ public: return ((a_RelY > 0) && cBlockInfo::FullyOccupiesVoxel(BlockIsOn)); } - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } }; diff --git a/src/Blocks/BlockVine.h b/src/Blocks/BlockVine.h index 578224c61..b61673cc5 100644 --- a/src/Blocks/BlockVine.h +++ b/src/Blocks/BlockVine.h @@ -159,12 +159,6 @@ public: { return true; } - - - virtual const char * GetStepSound(void) override - { - return "step.grass"; - } virtual bool DoesDropOnUnsuitable(void) override diff --git a/src/Blocks/BlockWallSign.h b/src/Blocks/BlockWallSign.h index 47649379e..0abe9c52c 100644 --- a/src/Blocks/BlockWallSign.h +++ b/src/Blocks/BlockWallSign.h @@ -27,12 +27,6 @@ public: } - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } - - virtual void OnPlacedByPlayer( cChunkInterface & a_ChunkInterface, cWorldInterface & a_WorldInterface, cPlayer * a_Player, int a_BlockX, int a_BlockY, int a_BlockZ, eBlockFace a_BlockFace, diff --git a/src/Blocks/BlockWorkbench.h b/src/Blocks/BlockWorkbench.h index 70468369c..699badaf2 100644 --- a/src/Blocks/BlockWorkbench.h +++ b/src/Blocks/BlockWorkbench.h @@ -30,12 +30,6 @@ public: { return true; } - - - virtual const char * GetStepSound(void) override - { - return "step.wood"; - } } ; diff --git a/src/Blocks/WorldInterface.h b/src/Blocks/WorldInterface.h index d1c6f9bfc..b43d011d8 100644 --- a/src/Blocks/WorldInterface.h +++ b/src/Blocks/WorldInterface.h @@ -17,7 +17,7 @@ class cWorldInterface public: virtual ~cWorldInterface() {} - virtual Int64 GetTimeOfDay(void) const = 0; + virtual int GetTimeOfDay(void) const = 0; virtual Int64 GetWorldAge(void) const = 0; virtual eDimension GetDimension(void) const = 0; @@ -44,7 +44,7 @@ public: /** Calls the callback for each player in the list; returns true if all players processed, false if the callback aborted by returning true */ virtual bool ForEachPlayer(cItemCallback<cPlayer> & a_Callback) = 0; - virtual void SetTimeOfDay(Int64 a_TimeOfDay) = 0; + virtual void SetTimeOfDay(int a_TimeOfDay) = 0; /** Returns true if it is raining, stormy or snowing at the specified location. This takes into account biomes. */ virtual bool IsWeatherWetAt(int a_BlockX, int a_BlockZ) = 0; diff --git a/src/BuildInfo.h.cmake b/src/BuildInfo.h.cmake new file mode 100644 index 000000000..6337dab3e --- /dev/null +++ b/src/BuildInfo.h.cmake @@ -0,0 +1,15 @@ + +#pragma once + +#cmakedefine BUILD_ID + +#ifdef BUILD_ID + +#undef BUILD_ID + +#define BUILD_SERIES_NAME "@BUILD_SERIES_NAME@" +#define BUILD_ID "@BUILD_ID@" +#define BUILD_COMMIT_ID "@BUILD_COMMIT_ID@" +#define BUILD_DATETIME "@BUILD_DATETIME@" +#endif + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2d96662a9..9d0e2cede 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -75,6 +75,7 @@ SET (HDRS BlockInfo.h BlockTracer.h BoundingBox.h + BuildInfo.h.cmake ByteBuffer.h ChatColor.h Chunk.h @@ -140,6 +141,8 @@ include_directories(".") include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/../lib/sqlite") include_directories ("${CMAKE_CURRENT_SOURCE_DIR}/../lib/SQLiteCpp/include") +configure_file("BuildInfo.h.cmake" "${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo.h") + if (NOT MSVC) # Bindings need to reference other folders, so they are done here instead # lib dependencies are not included diff --git a/src/ClientHandle.cpp b/src/ClientHandle.cpp index 6b31bfa64..a6d7c3066 100644 --- a/src/ClientHandle.cpp +++ b/src/ClientHandle.cpp @@ -1448,7 +1448,7 @@ void cClientHandle::HandlePlaceBlock(int a_BlockX, int a_BlockY, int a_BlockZ, e NewBlock->OnPlacedByPlayer(ChunkInterface, *World, m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, BlockType, BlockMeta); // Step sound with 0.8f pitch is used as block placement sound - World->BroadcastSoundEffect(NewBlock->GetStepSound(), (double)a_BlockX, (double)a_BlockY, (double)a_BlockZ, 1.0f, 0.8f); + World->BroadcastSoundEffect(cBlockInfo::GetPlaceSound(BlockType), (double)a_BlockX, (double)a_BlockY, (double)a_BlockZ, 1.0f, 0.8f); cRoot::Get()->GetPluginManager()->CallHookPlayerPlacedBlock(*m_Player, a_BlockX, a_BlockY, a_BlockZ, a_BlockFace, a_CursorX, a_CursorY, a_CursorZ, BlockType, BlockMeta); } diff --git a/src/ClientHandle.h b/src/ClientHandle.h index 593d0780d..74e89deee 100644 --- a/src/ClientHandle.h +++ b/src/ClientHandle.h @@ -62,7 +62,7 @@ public: cClientHandle(const cSocket * a_Socket, int a_ViewDistance); virtual ~cClientHandle(); - const AString & GetIPString(void) const { return m_IPString; } + const AString & GetIPString(void) const { return m_IPString; } // tolua_export cPlayer * GetPlayer(void) { return m_Player; } // tolua_export diff --git a/src/HTTPServer/HTTPServer.cpp b/src/HTTPServer/HTTPServer.cpp index c91be677e..0c41b54b2 100644 --- a/src/HTTPServer/HTTPServer.cpp +++ b/src/HTTPServer/HTTPServer.cpp @@ -170,8 +170,8 @@ bool cHTTPServer::Initialize(const AString & a_PortsIPv4, const AString & a_Port // Notify the admin about the HTTPS / HTTP status if (m_Cert.get() == NULL) { - LOGWARNING("WebServer: The server is running in unsecure HTTP mode."); - LOGINFO("Put a valid HTTPS certificate to file 'webadmin/httpscert.crt' and its corresponding private key to 'httpskey.pem' (without any password) to enable HTTPS support"); + LOGWARNING("WebServer: The server is running in unsecured HTTP mode."); + LOGINFO("Put a valid HTTPS certificate in file 'webadmin/httpscert.crt' and its corresponding private key to 'webadmin/httpskey.pem' (without any password) to enable HTTPS support"); } else { diff --git a/src/Root.cpp b/src/Root.cpp index f04cbf08b..86a497a76 100644 --- a/src/Root.cpp +++ b/src/Root.cpp @@ -18,6 +18,7 @@ #include "DeadlockDetect.h" #include "OSSupport/Timer.h" #include "LoggerListeners.h" +#include "BuildInfo.h" #include "inifile/iniFile.h" @@ -111,6 +112,11 @@ void cRoot::Start(void) LOG("--- Started Log ---\n"); + #ifdef BUILD_ID + LOG("MCServer " BUILD_SERIES_NAME " build id: " BUILD_ID ); + LOG("from commit id: " BUILD_COMMIT_ID " built at: " BUILD_DATETIME ); + #endif + cDeadlockDetect dd; m_bStop = false; @@ -151,6 +157,7 @@ void cRoot::Start(void) m_MojangAPI.Start(IniFile); // Mojang API needs to be started before plugins, so that plugins may use it for DB upgrades on server init if (!m_Server->InitServer(IniFile)) { + IniFile.WriteFile("settings.ini"); LOGERROR("Failure starting server, aborting..."); return; } diff --git a/src/World.cpp b/src/World.cpp index e669f6fa0..fdc0aebad 100644 --- a/src/World.cpp +++ b/src/World.cpp @@ -757,6 +757,11 @@ void cWorld::InitialiseGeneratorDefaults(cIniFile & a_IniFile) a_IniFile.GetValueSet("Generator", "BottomLavaHeight", "30"); break; } + case dimNotSet: + { + ASSERT(!"Dimension not set"); + break; + } } } @@ -772,6 +777,7 @@ void cWorld::InitialiseAndLoadMobSpawningValues(cIniFile & a_IniFile) case dimOverworld: DefaultMonsters = "bat, cavespider, chicken, cow, creeper, enderman, horse, mooshroom, ocelot, pig, sheep, silverfish, skeleton, slime, spider, squid, wolf, zombie"; break; case dimNether: DefaultMonsters = "blaze, ghast, magmacube, skeleton, zombie, zombiepigman"; break; case dimEnd: DefaultMonsters = "enderman"; break; + case dimNotSet: ASSERT(!"Dimension not set"); break; } m_bAnimals = a_IniFile.GetValueSetB("Monsters", "AnimalsOn", true); @@ -876,7 +882,7 @@ void cWorld::Tick(float a_Dt, int a_LastTickDurationMSec) m_TimeOfDaySecs -= 1200.0; } - m_TimeOfDay = (Int64)(m_TimeOfDaySecs * 20.0); + m_TimeOfDay = static_cast<int>(m_TimeOfDaySecs * 20.0); // Updates the sky darkness based on current time of day UpdateSkyDarkness(); @@ -1130,7 +1136,7 @@ void cWorld::UpdateSkyDarkness(void) } else if (TempTime <= TIME_NIGHT_START) { - m_SkyDarkness = (TIME_NIGHT_START - TempTime) / TIME_SPAWN_DIVISOR; + m_SkyDarkness = static_cast<NIBBLETYPE>((TIME_NIGHT_START - TempTime) / TIME_SPAWN_DIVISOR); } else if (TempTime <= TIME_NIGHT_END) { @@ -1138,7 +1144,7 @@ void cWorld::UpdateSkyDarkness(void) } else { - m_SkyDarkness = (TIME_SUNRISE - TempTime) / TIME_SPAWN_DIVISOR; + m_SkyDarkness = static_cast<NIBBLETYPE>((TIME_SUNRISE - TempTime) / TIME_SPAWN_DIVISOR); } } @@ -1592,9 +1598,9 @@ bool cWorld::GrowRipePlant(int a_BlockX, int a_BlockY, int a_BlockZ, bool a_IsBy MTRand r1; for (int i = 0; i < 60; i++) { - int OfsX = (r1.randInt(3) + r1.randInt(3) + r1.randInt(3) + r1.randInt(3)) / 2 - 3; - int OfsY = r1.randInt(3) + r1.randInt(3) - 3; - int OfsZ = (r1.randInt(3) + r1.randInt(3) + r1.randInt(3) + r1.randInt(3)) / 2 - 3; + int OfsX = static_cast<int>(r1.randInt(3) + r1.randInt(3) + r1.randInt(3) + r1.randInt(3)) / 2 - 3; + int OfsY = static_cast<int>(r1.randInt(3) + r1.randInt(3)) - 3; + int OfsZ = static_cast<int>(r1.randInt(3) + r1.randInt(3) + r1.randInt(3) + r1.randInt(3)) / 2 - 3; BLOCKTYPE Ground = GetBlock(a_BlockX + OfsX, a_BlockY + OfsY, a_BlockZ + OfsZ); if (Ground != E_BLOCK_GRASS) { @@ -2844,7 +2850,7 @@ bool cWorld::SetCommandBlockCommand(int a_BlockX, int a_BlockY, int a_BlockZ, co { AString m_Command; public: - cUpdateCommandBlock(const AString & a_Command) : m_Command(a_Command) {} + cUpdateCommandBlock(const AString & a_CallbackCommand) : m_Command(a_CallbackCommand) {} virtual bool Item(cCommandBlockEntity * a_CommandBlock) override { @@ -3319,20 +3325,26 @@ cFluidSimulator * cWorld::InitializeFluidSimulator(cIniFile & a_IniFile, const c int Falloff = a_IniFile.GetValueSetI(SimulatorSectionName, "Falloff", IsWater ? 1 : 2); int TickDelay = a_IniFile.GetValueSetI(SimulatorSectionName, "TickDelay", IsWater ? 5 : 30); int NumNeighborsForSource = a_IniFile.GetValueSetI(SimulatorSectionName, "NumNeighborsForSource", IsWater ? 2 : -1); + + if ((Falloff > 15) || (Falloff < 0)) + { + LOGWARNING("Falloff for %s simulator is out of range, assuming default of %d", a_FluidName, IsWater ? 1 : 2); + Falloff = IsWater ? 1 : 2; + } if (NoCaseCompare(SimulatorName, "floody") == 0) { - res = new cFloodyFluidSimulator(*this, a_SimulateBlock, a_StationaryBlock, Falloff, TickDelay, NumNeighborsForSource); + res = new cFloodyFluidSimulator(*this, a_SimulateBlock, a_StationaryBlock, static_cast<NIBBLETYPE>(Falloff), TickDelay, NumNeighborsForSource); } else if (NoCaseCompare(SimulatorName, "vanilla") == 0) { - res = new cVanillaFluidSimulator(*this, a_SimulateBlock, a_StationaryBlock, Falloff, TickDelay, NumNeighborsForSource); + res = new cVanillaFluidSimulator(*this, a_SimulateBlock, a_StationaryBlock, static_cast<NIBBLETYPE>(Falloff), TickDelay, NumNeighborsForSource); } else { // The simulator name doesn't match anything we have, issue a warning: LOGWARNING("%s [Physics]:%s specifies an unknown simulator, using the default \"Vanilla\".", GetIniFileName().c_str(), SimulatorNameKey.c_str()); - res = new cVanillaFluidSimulator(*this, a_SimulateBlock, a_StationaryBlock, Falloff, TickDelay, NumNeighborsForSource); + res = new cVanillaFluidSimulator(*this, a_SimulateBlock, a_StationaryBlock, static_cast<NIBBLETYPE>(Falloff), TickDelay, NumNeighborsForSource); } } @@ -3442,9 +3454,9 @@ void cWorld::cTaskSendBlockToAllPlayers::Run(cWorld & a_World) public cPlayerListCallback { public: - cPlayerCallback(std::vector<Vector3i> & a_SendQueue, cWorld & a_World) : + cPlayerCallback(std::vector<Vector3i> & a_SendQueue, cWorld & a_CallbackWorld) : m_SendQueue(a_SendQueue), - m_World(a_World) + m_World(a_CallbackWorld) { } diff --git a/src/World.h b/src/World.h index 6316c6811..274bd2dcf 100644 --- a/src/World.h +++ b/src/World.h @@ -157,14 +157,14 @@ public: } virtual Int64 GetWorldAge (void) const override { return m_WorldAge; } - virtual Int64 GetTimeOfDay(void) const override { return m_TimeOfDay; } + virtual int GetTimeOfDay(void) const override { return m_TimeOfDay; } void SetTicksUntilWeatherChange(int a_WeatherInterval) { m_WeatherInterval = a_WeatherInterval; } - virtual void SetTimeOfDay(Int64 a_TimeOfDay) override + virtual void SetTimeOfDay(int a_TimeOfDay) override { m_TimeOfDay = a_TimeOfDay; m_TimeOfDaySecs = (double)a_TimeOfDay / 20.0; @@ -888,7 +888,7 @@ private: double m_WorldAgeSecs; // World age, in seconds. Is only incremented, cannot be set by plugins. double m_TimeOfDaySecs; // Time of day in seconds. Can be adjusted. Is wrapped to zero each day. Int64 m_WorldAge; // World age in ticks, calculated off of m_WorldAgeSecs - Int64 m_TimeOfDay; // Time in ticks, calculated off of m_TimeOfDaySecs + int m_TimeOfDay; // Time in ticks, calculated off of m_TimeOfDaySecs Int64 m_LastTimeUpdate; // The tick in which the last time update has been sent. Int64 m_LastUnload; // The last WorldAge (in ticks) in which unloading was triggerred Int64 m_LastSave; // The last WorldAge (in ticks) in which save-all was triggerred |