From 679085b520f32e898a88823b1c2d23a12a1764f1 Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Sun, 18 Aug 2013 00:33:14 +0100 Subject: Bugfix Update [SEE DESC} Added stained clay, coal block, and hardened clay Block IDs Added stained clay and carpet block Metas Fixed bug with sticky retract bailing out but not unsetting arm Fixed autocomplete not working when not at the first character, fixes #64 Added furnace recipes for hardened clay and coal and coal blocks --- MCServer/furnace.txt | 5 ++++- source/BlockID.h | 44 +++++++++++++++++++++++++++++++++++++++++--- source/Piston.cpp | 1 + source/World.cpp | 15 +++++++++++---- 4 files changed, 57 insertions(+), 8 deletions(-) diff --git a/MCServer/furnace.txt b/MCServer/furnace.txt index e5d4ca70f..31d265ce7 100644 --- a/MCServer/furnace.txt +++ b/MCServer/furnace.txt @@ -48,6 +48,7 @@ 363:1 @ 200 = 364:1 # 1 Raw Beef -> 1 Cooked Beef (steak) 365:1 @ 200 = 366:1 # 1 Raw Chicken -> 1 Cooked Chicken 337:1 @ 200 = 336:1 # 1 Clay -> 1 Clay Brick +82:1 @ 200 = 172:1 # 1 Clay Block -> 1 Hardened Clay 87:1 @ 200 = 405:1 # 1 NetherRack -> 1 NetherBrick 349:1 @ 200 = 350:1 # 1 Raw Fish -> 1 Cooked Fish 17:1 @ 200 = 263:1:1 # 1 Log -> 1 Charcoal @@ -60,7 +61,8 @@ #-------------------------- # Fuels -! 263:1 = 1600 # 1 Charcoal -> 80 sec +! 263:1 = 1600 # 1 Coal -> 80 sec +! 263:1:1 = 1600 # 1 Charcoal -> 80 sec ! 42:126:1 = 150 # 1 Halfslab -> 7.5 seconds ! 5:1 = 300 # 1 Planks -> 15 sec ! 280:1 = 100 # 1 Stick -> 5 sec @@ -73,3 +75,4 @@ ! 327:1 = 200000 # 1 Lava Bucket -> 1000 sec ! 17:1 = 300 # 1 Wood -> 15 sec ! 6:1 = 100 # 1 Sapling -> 5 sec +! 173:1 = 7400 # 1 Coal Block -> 370 sec, based on https://github.com/minetest/common/commit/e0f5a6fd6936052756e27a05a2bfdd6aa86b38e1 which is a clone of MC \ No newline at end of file diff --git a/source/BlockID.h b/source/BlockID.h index b1c952857..8a60c16ce 100644 --- a/source/BlockID.h +++ b/source/BlockID.h @@ -169,8 +169,11 @@ enum ENUM_BLOCK_ID E_BLOCK_ACTIVATOR_RAIL = 157, E_BLOCK_DROPPER = 158, - - E_BLOCK_CARPET = 171, + E_BLOCK_STAINED_CLAY = 159, + E_BLOCK_HAY_BALE = 170 + E_BLOCK_CARPET = 171, + E_BLOCK_HARDENED_CLAY = 172, + E_BLOCK_BLOCK_OF_COAL = 173, // Keep these two as the last values, without a number - they will get their correct number assigned automagically by C++ // IsValidBlock() depends on this @@ -507,7 +510,42 @@ enum E_META_WOOL_RED = 14, E_META_WOOL_BLACK = 15, - + // E_BLOCK_CARPET metas: + E_META_CARPET_WHITE = 0, + E_META_CARPET_ORANGE = 1, + E_META_CARPET_MAGENTA = 2, + E_META_CARPET_LIGHTBLUE = 3, + E_META_CARPET_YELLOW = 4, + E_META_CARPET_LIGHTGREEN = 5, + E_META_CARPET_PINK = 6, + E_META_CARPET_GRAY = 7, + E_META_CARPET_LIGHTGRAY = 8, + E_META_CARPET_CYAN = 9, + E_META_CARPET_PURPLE = 10, + E_META_CARPET_BLUE = 11, + E_META_CARPET_BROWN = 12, + E_META_CARPET_GREEN = 13, + E_META_CARPET_RED = 14, + E_META_CARPET_BLACK = 15, + + // E_BLOCK_STAINED_CLAY metas + E_META_STAINED_CLAY_WHITE = 0, + E_META_STAINED_CLAY_ORANGE = 1, + E_META_STAINED_CLAY_MAGENTA = 2, + E_META_STAINED_CLAY_LIGHTBLUE = 3, + E_META_STAINED_CLAY_YELLOW = 4, + E_META_STAINED_CLAY_LIGHTGREEN = 5, + E_META_STAINED_CLAY_PINK = 6, + E_META_STAINED_CLAY_GRAY = 7, + E_META_STAINED_CLAY_LIGHTGRAY = 8, + E_META_STAINED_CLAY_CYAN = 9, + E_META_STAINED_CLAY_PURPLE = 10, + E_META_STAINED_CLAY_BLUE = 11, + E_META_STAINED_CLAY_BROWN = 12, + E_META_STAINED_CLAY_GREEN = 13, + E_META_STAINED_CLAY_RED = 14, + E_META_STAINED_CLAY_BLACK = 15, + /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Item metas: diff --git a/source/Piston.cpp b/source/Piston.cpp index 7ffa9febd..058f92a0e 100644 --- a/source/Piston.cpp +++ b/source/Piston.cpp @@ -173,6 +173,7 @@ void cPiston::RetractPiston( int pistx, int pisty, int pistz ) ) { // These cannot be moved by the sticky piston, bail out + m_World->SetBlock(pistx, pisty, pistz, E_BLOCK_AIR, 0); return; } diff --git a/source/World.cpp b/source/World.cpp index 702e94b56..5c15a3965 100644 --- a/source/World.cpp +++ b/source/World.cpp @@ -2635,12 +2635,19 @@ void cWorld::TabCompleteUserName(const AString & a_Text, AStringVector & a_Resul cCSLock Lock(m_CSPlayers); for (cPlayerList::iterator itr = m_Players.begin(), end = m_Players.end(); itr != end; ++itr) { - if (NoCaseCompare((*itr)->GetName().substr(0, a_Text.length()), a_Text) != 0) + for (unsigned int selected = 0; selected < a_Text.length(); selected++ ) { - // Player name doesn't match - continue; + std::string playername ((*itr)->GetName()); + std::string cut (a_Text.substr(selected, a_Text.length())); + std::size_t found = playername.find(cut); + if (found!=0) + { + //Player name doesn't match + continue; + } + a_Results.push_back((*itr)->GetName()); + break; } - a_Results.push_back((*itr)->GetName()); } } -- cgit v1.2.3