summaryrefslogtreecommitdiffstats
path: root/src/UI/SlotArea.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Add player statistics to API (#5193)nshah252021-05-031-13/+13
| | | | | | * Fixed issue #5166 Co-authored-by: 12xx12 <44411062+12xx12@users.noreply.github.com> Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* Some emplace_back replacements (#5149)12xx122021-03-071-1/+1
| | | * replace push_back with emplace_back when a new object was created in the function call
* MultiVersionProtocol: fix two crashesTiger Wang2021-01-191-1/+0
| | | | | | | | | | | | First one: add missing exception handler in ProcessProtocolIn Second: remove faulty logic dealing with incomplete packets. `a_Data = a_Data.substr(m_Buffer.GetUsedSpace() - m_Buffer.GetReadableSpace());` was incorrect; it attempted to apply a length derived from m_Buffer to an unrelated a_Data. Its purpose was to give cProtocol the data the client sent, minus initial handshake bytes. However, we can use the knowledge that during initial handshake, there is no encryption and every byte can be written unchanged into m_Buffer, to just call cProtocol with a data length of zero. This will cause it to parse from m_Buffer - wherein we have already written everything the client sent - with no a_Data manipulation needed. Additionally, removed UnsupportedButPingableProtocolException (use of exception as control flow) and encode this state as m_Protocol == nullptr, id est "no protocol for this unsupported version", which is then handled by cMultiVersionProtocol itself.
* Fixed horse UI desync when taking saddle out (#5108)wereii2021-01-161-0/+3
| | | due to overlooked fallthrough
* Comment and code style fixTiger Wang2020-12-211-8/+11
| | | | | + Add static keyword - Don't capture everything in lambda
* Warnings improvementsTiger Wang2020-12-181-7/+7
| | | | | | | | | * Turn off global-constructors warning. These are needed to implement cRoot signal handler functionality * Add Clang flags based on version lookup instead of a compile test. The CMake config process is single threaded and slow enough already * Reduced GetStackValue verbosity + Clarify EnchantmentLevel, StayCount, AlwaysTicked, ViewDistance signedness + Give SettingsRepositoryInterface a move constructor to simplify main.cpp code - Remove do {} while (false) construction in redstone handler
* Anvil fixes (#4976)KingCol132020-10-101-47/+61
| | | | | | | | | | | | | * Rewrite to use wiki target/sacrifice terminology. * Fix negative damages. * Prevent repairing if output matches target. * Make target and sacrifice const. * Pre-PR tidy-up * Keep m_MaximumCost updated.
* Fix cmake not adding Werror on clang, and _lots_ of warnings (#4963)peterbell102020-10-051-9/+9
| | | | | | | | | | | | | | | * Fix cmake not adding Werror on clang, and _lots_ of warnings * WIP: Build fixes * Cannot make intermediate blockhandler instance * Tiger's changes * Fix BitIndex check * Handle invalid NextState values in cMultiVersionProtocol Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* Remove SetProperty(...cPlayer)Tiger Wang2020-10-031-10/+10
| | | | Enchantment table, anvil windows are already opened one per-player.
* Enchanting table shows detail on hover. Enchanting is deterministic. (#4937)KingCol132020-10-011-17/+62
| | | | | * Use lapis for enchanting, subtract correct number of levels, ClientHandle now selects from pregenerated list. Co-authored-by: Tiger Wang <ziwei.tiger@outlook.com>
* Add Statistics and Achievements for newer Network standards12xx122020-08-191-13/+13
|
* Added HandleCraftItem call to ShiftClickedResult to make sure achievements are awarded (#4791)12xx122020-08-011-0/+3
|
* Introduce recipe book functionality (#4493)Tobias Wilken2020-07-141-5/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Introduce recipe book functionality The recipe book helps especially new players. Missing it gives the impression that cuberite is not as advanced as it is. The handling of the recipe book uses the following functions: - Unlock Recipes (https://wiki.vg/index.php?title=Protocol&oldid=14204#Unlock_Recipes) to make recipes available and show the notification for new recipes. Initialization is done on player login for known ones, the update is done when new items are discovered. - Craft Recipe Request (https://wiki.vg/index.php?title=Protocol&oldid=14204#Craft_Recipe_Request) when the user selects a recipe from the recipe book to fill the slots. Known recipes are initialized on player login via `Unlock Recipes` with `Action` 0. As soon as a new recipe is discovered this is added via `Unlock Recipes` with `Action` 1. To be able to know and recognize new recipes the player class is extended with `KnownItems` and `KnownRecipes`. As soon as a player touches an item this is compared to the list of `KnownItems`, if the item is unknown the recipes are checked for this item and the other ingredients are checked with the list of `KnownItems`. If a full match is discovered the recipe is unlocked with the client and stored in the `KnownRecipes`. To unlock recipes the recipe ID is sent to the client. A mapping file (for protocol 1.12.2) translated the minecraft recipe names to ids. The crafting.txt is extended with and minecraft recipe names is possible. Limitations: Only a single recipe is added to the crafting area. Multiple clicks or shift click does not increase the number of builds. Co-authored-by: peterbell10 <peterbell10@live.co.uk> * Address first issues mentioned by @peterbell10 - Some linting - Extract loading of recipe specific protocol mapping into a function - Build `RecipeNameMap` only once - Use `std::optional` - Extract `LoadRecipe` from `Window` * Start to implement new suggestions * Update with suggestions from @peterbell10 * Some minor cleanup * Update protocol packet IDs * Remove unused include * Include header in cmake * Change a vector to integer counter * Change dromedaryCase method names to PascalCase * Address suggestions from @madmaxoft * Read Protocol subdirectories to load recipe books To load all recipebooks iterate over the `Protocol` subdirectories to find mapping files. Co-authored-by: peterbell10 <peterbell10@live.co.uk>
* cWindow: Convert XYZ to Vector3 (#4764)MaxwellScroggs2020-07-041-11/+7
|
* Enable some more clang-tidy linter checks (#4738)peterbell102020-05-151-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Avoid inefficient AString -> c_str() -> AString round trip * Avoid redundant string init expressions * Avoid unnecessary return, continue, etc. * Add .clang-format to help with clang-tidy fix-its * Avoid unnecessary passing by value * Avoid unnecessary local copying * Avoid copying in range-for loops * Avoid over-complicated boolean expressions * Some violations missed by my local clang-tidy * Allow unnecessary continue statements * Add brackets * Another expression missed locally * Move BindingsProcessor call into clang-tidy.sh and add space * Fix pushd not found error * Different grouping of CheckBlockInteractionRate
* Improve entity position updates (#4701)Tiger Wang2020-05-041-4/+1
| | | | | | | | | * Make puking pickups fly nicer * Improve entity position updates * Move determination of whether a delta is too big for a packet into the protocol handlers + Less jittery movement + Generalise CollectEntity to take any entity
* Using Super.Mattes D2020-04-161-16/+16
|
* Toss all items from enchantment table (#4569)Mat2020-03-281-2/+2
|
* Force all headers other than "Globals.h" to be included with relative paths (#4269)peterbell102018-08-291-1/+1
| | | | | | | Closes #4236 CMake now creates a header file in the build directory under the path "include/Globals.h" which just includes "src/Globals.h" with an absolute path. Then instead of adding "src/" to the include directories, it adds "include/". #include "Globals.h" still works by including the build generated file and any other src-relative path will not work.
* Handle the lapis slot separately (#4286)Nate2018-08-171-0/+36
| | | | | This is my attempt to fix #4112. The root cause of the issue was that the lapis slot was treated exactly the same as the enchanting slot, so it on the server side it would only ever slot one item. My fix is to check if its the second slot in the window, then check if it's lapis (it would slot whatever). If it is lapis I call the base click handler.
* Experience orb (#4259)changyong guo2018-08-021-1/+1
| | | | | | | * Replace cWorld::FindClosesPlayer with cWorld::DoWithClosestPlayer * Implement experience reward splitting into the orb sizes used in vanilla * Modified speed calculation in cExpOrb::Tick to make the orbs fly towards the player Fixes #4216
* cWorld: Manually bind deprecated broadcast functions (#4265)peterbell102018-07-271-3/+4
| | | Ref: https://github.com/cuberite/cuberite/pull/4264#discussion_r204769193
* CheckBasicStyle: Check number of empty lines between functions (#4267)peterbell102018-07-261-1/+6
| | | | Add check for number of empty lines between functions and fix the corresponding failures
* Prefer static_cast to reinterpret_cast (#4223)peterbell102018-05-021-3/+3
| | | | | | | * Change reinterpret_cast -> static_cast wherever possible * Remove more unnecessary `const_cast`s. reinterpret_casts should be avoided for the same reason as c-style casts - they don't do any type-checking. reinterpret_cast was mainly being used for down-casting in inheritance hierarchies but static_cast works just as well while also making sure that there is actually an inheritance relationship there.
* Smelting Gives Experience (#4094)Alex Sweet2018-04-111-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Smelting Exp Smelting now gives experience * Furnace.txt update Exp rewards are entered in furnace.txt, Reward calculation is now done is the furnaceentity class * furnace.txt update Changed alignment tabs to spaces Included documentation of exp in recipe * Updated StringToFloat changed strtod to strtof * Explicit Float to Int * Reworked Smelting Rewards * No C casts -Adds new function to the api -Sets reward counter to 0 in furnace constructor * Style and exp lock removed -Fixed style mistakes accoring to PR notes -XP isn't locked to a single player anymore * No Smelter API -Removed SetLastSmelter and GetLastSmelter -Fixed comments -Fixed log reward amounts
* Implement horse inventory (#4053)peterbell102017-10-211-0/+119
| | | | | | | | | | * Implement horse inventory * Fix sign conversions * Add API doc for ItemCategory::IsHorseArmor * Improve HandleOpenHorseInventory comment and style fixes.
* Fix switch warnings (#4013)peterbell102017-09-141-2/+5
| | | | | | | | | | | | | | | * Fix switch warnings * Fix a variety of -Wswitch and -Wswitch-enum warnings * Remove unneeded -Wno-error flags * Reorganise some eMonsterType switches * Alpha sort eMonsterType cases in WriteMobMetadata and in cNBTChunkSerializer::AddMonsterEntity * List all mob types in protocol 1.12 and NBTChunkSerializer * cStructGenTrees::GetNumTrees: remove switch default * cWSSAnvil::LoadOldMinecartFromNBT: Log unhandled minecart type
* Removed double includes (#3885)Lukas Pioch2017-08-021-1/+0
|
* Added anvil enchantment handling. (#3857)Lane Kolbly2017-07-281-4/+5
| | | + Added anvil enchantment handling.
* FastRandom rewrite (#3754)peterbell102017-06-131-4/+3
|
* Corrected brewingstand and added support for fuelLukas Pioch2017-05-081-71/+76
|
* Fixed bindings for cBlockArea:Read and Write. (#3568)Mattes D2017-02-051-2/+2
| | | The original bindings accepted nil as the World param, causing a crash.
* Removed ClientHandle.h dependencies from common headers.Mattes D2016-11-181-0/+1
|
* Spectators added (#2852)bibo382016-10-121-0/+8
|
* Bulk clearing of whitespaceLogicParrot2016-02-051-28/+28
|
* Moved variables into scope, removed unused variables and fixed variablesLukas Pioch2015-12-171-2/+1
|
* Add enum for Sound and Particle EffectsDave Tucker2015-11-241-3/+4
| | | | | | Fixes #2603 Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
* Implemented brewingLukas Pioch2015-11-031-0/+238
|
* Silenced and fixed many warning messages across multiple files.Samuel Barney2015-07-291-28/+28
|
* Fixes #2041Tiger Wang2015-05-241-3/+3
|
* Fixes #2003Tiger Wang2015-05-181-1/+1
|
* Implemented vanilla-like shift click.Howaner2014-12-131-55/+68
| | | This fixes many visual bugs.
* Own classes for all windows.Howaner2014-12-131-3/+4
|
* Merge remote-tracking branch 'origin/master' into c++11Tiger Wang2014-12-061-1/+1
|\ | | | | | | | | Conflicts: src/OSSupport/Thread.cpp
| * Fixed reported parentheses around comparisons.Mattes D2014-12-051-1/+1
| |
* | Merged branch 'master' into c++11.Mattes D2014-10-231-1/+1
|\|
| * En masse NULL -> nullptr replaceTiger Wang2014-10-231-20/+20
| |
* | Replace &*[0] accesses with .data()Tiger Wang2014-10-211-2/+2
| |
* | En masse NULL -> nullptr replaceTiger Wang2014-10-201-20/+20
|/
* Functions in cPluginManager get references instead of pointers.Mattes D2014-10-151-2/+2
|
* Implemented Chest MinecartsTiger Wang2014-09-131-0/+35
|
* Added comments.Hownaer2014-08-281-1/+3
|
* Fixed crashes and use std::swap.Hownaer2014-08-281-6/+3
|
* Enchanting table improvements.Hownaer2014-08-281-115/+77
|
* Added beacon.Howaner2014-07-301-0/+195
|
* Change comment.Howaner2014-07-261-1/+1
|
* Add armor items directly to the armor slots.Howaner2014-07-201-2/+2
|
* Moved comment.Howaner2014-07-181-1/+1
|
* Fixed the armor slot in creative mode. Also removed that armor get directly to the armor slot. It is extremely buggy and unnecessary.Howaner2014-07-181-0/+13
|
* Basic style fixes.madmaxoft2014-07-171-3/+3
|
* Normalized comments.madmaxoft2014-07-171-16/+16
| | | | | This was mostly done automatically and then visually inspected for obvious errors. All //-style comments should have a 2-space separation from the code, and 1 space after the comment sign.
* Merge pull request #1157 from Howaner/WindowMattes D2014-07-091-23/+214
|\ | | | | Add more inventory actions.
| * Removed unused include line.Howaner2014-07-091-1/+0
| |
| * Added inventory number click.Howaner2014-07-091-0/+38
| |
| * Added drop window action.Howaner2014-07-061-10/+100
| |
| * Add middle click.Howaner2014-07-051-19/+83
| |
* | Fixed crafting grid updating.Mattes D2014-07-061-2/+20
|/ | | | Fixes #1152.
* Removed bad commentTiger Wang2014-06-291-1/+0
|
* Properly implemented enderchestsTiger Wang2014-06-291-2/+2
|
* derpworktycho2014-06-041-1/+1
|
* Make sure m_StackSizeToBeUsedInRepair Always has a valid valueworktycho2014-06-041-1/+3
|
* Players can't set items in the result slot, when they shift a item.Howaner2014-06-011-0/+38
|
* Add HandleSmeltItem() call for achievements.Howaner2014-06-011-7/+11
|
* Missing return;Howaner2014-06-011-0/+1
|
* Set DraggingItem to Slot directly.Howaner2014-05-311-1/+1
|
* Fix DBL bug.Howaner2014-05-311-5/+4
|
* Change "Slot.IsEmpty()" to "Slot.m_ItemCount <= 0"Howaner2014-05-311-1/+1
|
* Fix the furnace result slot.Howaner2014-05-301-2/+90
|
* Merge pull request #998 from mc-server/StatManagerMattes D2014-05-181-1/+41
|\ | | | | Statistic Manager
| * cEntity::Killed(cEntity *) Handler; Achievement triggers; cPlayer::AwardAchievement()andrew2014-05-121-1/+41
| |
* | Fixed anvil exp removingtonibm192014-05-161-1/+1
|/
* Fixed MSVC 64-bit build warnings.Mattes D2014-05-091-1/+1
|
* Change m_RepairCost to int.Howaner2014-05-071-9/+3
|
* Add repair cost to cItem, add custom name to NBTChunkSerializer and fix anvil bugs.Howaner2014-05-071-24/+36
|
* Rename CanRepairWithItem to CanRepairWithRawMaterial and rename Size() to Count()Howaner2014-05-061-6/+5
|
* Fix SetRepairedItemName() in SlotArea.cppHowaner2014-05-051-1/+1
|
* Add comments to CanTakeResultItem()Howaner2014-05-051-5/+5
|
* Add anvil shift click.Howaner2014-05-051-4/+83
|
* Add clicks, exp subtraction, item check, ...Howaner2014-05-051-9/+155
|
* Add MC|ItemName plugin message.Howaner2014-05-051-5/+5
|
* Add anvil window and slot area.Howaner2014-05-051-0/+173
|
* Add armor to switch() in ItemHandler.cppHowaner2014-04-241-1/+1
|
* Fix armor in survival mode.Howaner2014-04-241-0/+74
|
* Merge pull request #909 from jfhumann/fixesMattes D2014-04-221-5/+6
|\ | | | | | | | | Bug fixes and optimizations. We need to visit the API functions and check that they return only those values expected. `cWorld::CreateProjectile()` seems affected, too, by the same issue of ToLua returning extra values. In the cleanest form, these functions will need moving to ManualBindings.cpp
| * Did some static analysis, fixed some bugs and optimized a lot of codejfhumann2014-04-181-5/+6
| |
* | Fixed MSVC compilation.madmaxoft2014-04-201-1/+1
| |
* | Fixed Codedaniel09162014-04-191-2/+3
| |
* | Modified many thingsdaniel09162014-04-171-16/+50
| |
* | Fixed double enchanting itemsdaniel09162014-04-161-2/+2
| |
* | Added Book Enchantingdaniel09162014-04-151-1/+1
| |
* | Add more checks to cSlotAreaEnchantingHowaner2014-04-151-88/+198
| |
* | Added ItemPlaceCount in SlotAreadaniel09162014-04-141-0/+32
| | | | | | | | Thanks to Howaner for helping
* | Blocked enchanting a item twicedaniel09162014-04-141-6/+8
| |
* | Fixed Bookshelf Checkingdaniel09162014-04-141-8/+10
| | | | | | | | Code by LO1ZB
* | Bug fixesdaniel09162014-04-141-15/+17
| |
* | Fixed invisibility enchantmentsdaniel09162014-04-131-0/+2
| |
* | Some Fixesdaniel09162014-04-131-1/+1
| |
* | Fixed Bookshelves Checking (not completly)daniel09162014-04-121-7/+10
| |
* | Added complete Enchanting Systemdaniel09162014-04-121-15/+34
| | | | | | | | http://minecraft.gamepedia.com/Enchantment_mechanics
* | Merge remote-tracking branch 'upstream/master' into Enchantingdaniel09162014-04-071-0/+30
|\|
| * Fixed multiple gcc warnings about unused params.madmaxoft2014-02-281-0/+30
| |
* | Added Enchantment-Slot-Level generatingdaniel09162014-04-071-9/+19
| |
* | Some updates for enchantingdaniel09162014-01-241-12/+12
| |
* | first changes for enchanting (not finished)daniel09162014-01-201-0/+86
|/ | | | | | | | - added enchanting table block handler and added it to the blockhandler - added enchanting window - drop item in the slot 0 when the player close the window - added enchanting packet (1.7 only) - some more...
* Removed internal cEntity::GetRot() usage.madmaxoft2014-01-171-1/+1
|
* Really did what xoft wantedTiger Wang2014-01-161-5/+8
|
* Removed obsoleted functionsTiger Wang2014-01-161-3/+3
|
* Possibly did what xoft wantedTiger Wang2014-01-161-10/+3
|
* Implemented custom names and loreTiger Wang2014-01-151-0/+7
| | | | | | + Added custom names and lore + Added saving and loading + Added writing and parsing of NBT
* More MSVC warning fixes.madmaxoft2014-01-071-2/+2
|
* Removed unused variable ResultSlotTycho Bickerstaff2013-12-081-1/+0
|
* Fixed Warning Unhandeled enum values in switch as src/UI/SlotArea.cpp line 54worktycho2013-12-091-1/+4
|
* Added basic ender chestsTiger Wang2013-12-071-0/+33
| | | | Note that they just mirror chests now, so no per player inventory.
* Moved source to srcAlexander Harkness2013-11-241-0/+897