summaryrefslogtreecommitdiffstats
path: root/src/UI (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-07-14Introduce recipe book functionality (#4493)Tobias Wilken6-17/+87
* 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>
2020-07-04cWindow: Convert XYZ to Vector3 (#4764)MaxwellScroggs8-40/+21
2020-05-16Upgrade to C++17 [CMake] (#4717)Tiger Wang1-9/+5
* Make our CMake slightly less insane
2020-05-15Enable some more clang-tidy linter checks (#4738)peterbell101-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
2020-05-09Update submodules (#4727)peterbell101-1/+1
Closes #4708 This updates jsoncpp, mbedtls, TCLAP and SQLiteCpp to their latest stable release. A few additional changes were needed: * jsoncpp deprecated Reader, FastWriter and StyledWriter which I've replaced with some helper functions in JsonUtils.cpp * SQLiteCpp changed how it builds with external sqlite libraries, now expecting them to be installed. The simplest path was to remove sqlite from cuberite's submodule and just use SQLiteCpp's internal version.
2020-05-04Improve entity position updates (#4701)Tiger Wang1-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
2020-04-16Using Super.Mattes D25-104/+126
2020-03-28Inventory changes (#4561)Mat1-5/+2
Co-Authored-By: peterbell10 <peterbell10@live.co.uk>
2020-03-28Toss all items from enchantment table (#4569)Mat1-2/+2
2019-09-29Refactored more of Entities and BlockEntities to use Vector3. (#4403)Mattes D12-18/+19
2018-08-29Force all headers other than "Globals.h" to be included with relative paths (#4269)peterbell103-7/+4
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.
2018-08-17Handle the lapis slot separately (#4286)Nate1-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.
2018-08-02Experience orb (#4259)changyong guo1-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
2018-07-27cWorld: Manually bind deprecated broadcast functions (#4265)peterbell101-3/+4
Ref: https://github.com/cuberite/cuberite/pull/4264#discussion_r204769193
2018-07-26CheckBasicStyle: Check number of empty lines between functions (#4267)peterbell102-2/+6
Add check for number of empty lines between functions and fix the corresponding failures
2018-05-02Prefer static_cast to reinterpret_cast (#4223)peterbell101-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.
2018-04-11Smelting Gives Experience (#4094)Alex Sweet1-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
2018-01-28A player's inventory is always opened by its owner. (#4176)peterbell101-4/+6
Fixes #4093 Window updates are only broadcast to players in the m_OpenedBy list. Normally players are added after sending a window open packet but no packet is sent for a player's inventory. This meant broadcasts were never sent for the inventory window.
2018-01-15cWindow: Fix slot area priority when double click stacking. (#4086)peterbell102-34/+6
Fixes #4084
2018-01-03Add the fmt library (#4065)peterbell102-1/+2
* Replaces AppendVPrintf with fmt::sprintf * fmt::ArgList now used as a type safe alternative to varargs. * Removed SIZE_T_FMT compatibility macros. fmt::sprintf is fully portable and supports %zu. * Adds FLOG functions to log with fmt's native formatting style.
2017-10-21Implement horse inventory (#4053)peterbell105-0/+241
* Implement horse inventory * Fix sign conversions * Add API doc for ItemCategory::IsHorseArmor * Improve HandleOpenHorseInventory comment and style fixes.
2017-09-19Changed BroadcastSoundEffect, SendSoundEffect, and CastThunderbolt parameters to vectors (#3959)Lane Kolbly5-27/+17
* Made BroadcastSoundEffect take vector parameters. * Added docs for new vectored methods * Removed old code * Fixed lua warnings * Made old BroadcastSoundEffect not an override. * m_Block to m_BlockPos, used Vector3d constructor where prettier. * a_Block to a_BlockPos * Changed thunderbolt a_Block to a_BlockPos
2017-09-14Fix switch warnings (#4013)peterbell102-7/+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
2017-09-11Replace ItemCallbacks with lambdas (#3993)peterbell102-9/+11
2017-09-02Revert "Replace ItemCallbacks with lambdas (#3948)"LogicParrot2-13/+11
This reverts commit 496c337cdfa593654018c171f6a74c28272265b5.
2017-09-01Replace ItemCallbacks with lambdas (#3948)peterbell102-11/+13
2017-08-17Add cLuaWindow OnClicked Callback (#3901)Lane Kolbly1-1/+1
2017-08-17Changed int parameters to vector parameters in cCuboid and simulators (#3874)Lane Kolbly1-4/+4
2017-08-13Replaced includes with forward declarationsLukas Pioch1-1/+2
2017-08-02Removed double includes (#3885)Lukas Pioch2-2/+0
2017-07-28Added anvil enchantment handling. (#3857)Lane Kolbly1-4/+5
+ Added anvil enchantment handling.
2017-07-13Handle middle mouse drag (#3847)peterbell102-10/+41
2017-06-13FastRandom rewrite (#3754)peterbell101-4/+3
2017-05-24Off-hand/shield slot functional, save and load slot, bow + arrow functional (#3725)Pablo Beltrán2-0/+18
Fixes #3714.
2017-05-21Clang 5.0 fixesLukas Pioch4-7/+7
- Added override keyword - Removed inherited member variables
2017-05-08Corrected brewingstand and added support for fuelLukas Pioch3-77/+80
2017-02-15Updated sounds and effect IDs (#3422)mathiascode3-7/+7
2017-02-05Fixed bindings for cBlockArea:Read and Write. (#3568)Mattes D2-3/+3
The original bindings accepted nil as the World param, causing a crash.
2016-11-18Removed ClientHandle.h dependencies from common headers.Mattes D5-0/+5
2016-10-12Spectators added (#2852)bibo381-0/+8
2016-08-24Fixed type-casting-related warnings.Mattes D1-2/+2
2016-07-18CMake: Remove needless minimum version specifications.Mattes D1-2/+0
2016-07-18Updated API documentation.Mattes D1-2/+6
2016-06-27Changed cLuaWindow callbacks to use cLuaState::cCallback.Mattes D1-1/+1
2016-03-21Revert "Lua callback"Mattes D1-1/+1
2016-03-17Changed cLuaWindow callbacks to use cLuaState::cCallback.Mattes D1-1/+1
2016-02-05Bulk clearing of whitespaceLogicParrot7-123/+123
2016-01-31Updated old forum linksMathias1-1/+1
2016-01-01Renamed leftover strings to Cuberite / Server, as needed.Mattes D1-1/+1
Also upgraded the user setting file for MSVC to 2013.
2015-12-18Reorganised the redstone simulatorTiger Wang1-12/+4
-> Many thanks to @worktycho for the idea, and @Haxi52 for the implementation plan! * Uses classes and inheritance now * Speed should be improved
2015-12-17Moved variables into scope, removed unused variables and fixed variablesLukas Pioch1-2/+1
2015-11-24Add enum for Sound and Particle EffectsDave Tucker1-3/+4
Fixes #2603 Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2015-11-03Implemented brewingLukas Pioch6-0/+372
2015-07-31Unified the doxy-comment format.Mattes D3-66/+54
2015-07-29Silenced and fixed many warning messages across multiple files.Samuel Barney5-43/+42
2015-07-26Fixed custom recipes result clientside bug.Mattes D1-0/+8
Fixes #2345.
2015-05-28Fix commentstycho1-6/+9
2015-05-24Fixes #2041Tiger Wang1-3/+3
2015-05-24Made -Weverything an error.tycho3-7/+18
2015-05-23Fixed missing overrides and added a ignore flag for reserved macro for clang version 3.6 and higher.Lukas Pioch1-1/+1
2015-05-19Make -Werror disabling file onlytycho1-0/+5
Ad fix a load of warnings
2015-05-18Fixes #2003Tiger Wang2-9/+7
2015-05-09CheckBasicStyle: checks spaces around * and &.Mattes D1-1/+1
2015-05-09More style checking.Mattes D4-4/+4
Spaces around some operators are checked.
2015-04-21Narrowed WindowID to use only 7 bits.Mattes D2-3/+7
Ref.: http://forum.mc-server.org/showthread.php?tid=1876
2015-03-21Changed cEntity::m_UniqueID to UInt32.Mattes D1-7/+10
2015-03-10Moved window code into cpp filesHowaner21-516/+836
2015-02-06Readded old commentHowaner1-0/+2
2015-01-25Readded old DistributeStackToAreas() comment.Howaner1-2/+5
2014-12-17C++11 and function rename.Howaner13-48/+51
2014-12-13Implemented vanilla-like shift click.Howaner15-105/+380
This fixes many visual bugs.
2014-12-13Own classes for all windows.Howaner16-591/+633
2014-12-05Fixed reported parentheses around comparisons.Mattes D1-1/+1
2014-10-23En masse NULL -> nullptr replaceTiger Wang4-44/+44
2014-10-21Replace &*[0] accesses with .data()Tiger Wang1-2/+2
2014-10-20En masse NULL -> nullptr replaceTiger Wang4-44/+44
2014-10-15Functions in cPluginManager get references instead of pointers.Mattes D1-2/+2
2014-10-03Improved furnacesTiger Wang2-27/+11
* Fixed progress bar on 1.8 * Fixed bugs * Improved code * Fixes #1068 * Fixes #1070
2014-09-27SuggestionsTiger Wang1-11/+57
2014-09-13e.t.c. -> etc.Tiger Wang1-1/+1
etcetera, not egg tray conglomerate :P
2014-09-13Added newlinesTiger Wang1-1/+5
2014-09-13Implemented Chest MinecartsTiger Wang5-68/+95
2014-09-111.8: Fixed inventory open packet.Howaner2-1/+30
2014-08-28Added comments.Hownaer1-1/+3
2014-08-28Fixed crashes and use std::swap.Hownaer1-6/+3
2014-08-28Enchanting table improvements.Hownaer4-134/+101
2014-07-31Renamed functions and added beacon json saving.Howaner1-2/+2
2014-07-30Added beacon.Howaner4-0/+276
2014-07-26Change comment.Howaner1-1/+1
2014-07-21Style: Normalized to no spaces before closing parenthesis.madmaxoft2-4/+4
2014-07-20Add armor items directly to the armor slots.Howaner2-3/+3
2014-07-19Subdirs: Only add_library if not using MSVCarchshift1-1/+3
2014-07-19UI/CMakeLists.txt: Replaced glob with list of filesarchshift1-5/+9
2014-07-18Moved comment.Howaner1-1/+1
2014-07-18Fixed the armor slot in creative mode. Also removed that armor get directly to the armor slot. It is extremely buggy and unnecessary.Howaner1-0/+13
2014-07-17Fixed tabs used for alignment.madmaxoft1-2/+2
2014-07-17More trailing whitespace fixes.madmaxoft1-1/+1
2014-07-17Basic style fixes.madmaxoft4-8/+8
2014-07-17Normalized comments.madmaxoft2-25/+25
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.
2014-07-13Changed BroadcastSoundEffect function to take floating pos.Howaner1-5/+5
2014-07-12Suggestions and bug fixTiger Wang1-1/+1
* Fixed hoppers pushing/pulling to/from (trapped)chests that do not form a double-chest with the chest type directly connected to said hopper; thank you, @madmaxoft
2014-07-09Removed unused include line.Howaner1-1/+0
2014-07-09Added inventory number click.Howaner2-1/+43
2014-07-07Implemented trapped chests & othersTiger Wang2-9/+63
+ Added trapped chests * Fixed a bunch of bugs in the redstone simulator concerning wires and repeaters * Other potential bugfixes
2014-07-06Fixed crafting grid updating.Mattes D2-2/+21
Fixes #1152.
2014-07-06Added drop window action.Howaner3-25/+113
2014-07-05Add middle click.Howaner2-21/+88
2014-07-01Only fixes the server crash.Howaner1-6/+0
2014-07-01Fix server-crash with non-existing items.Howaner1-1/+7
2014-06-29Removed bad commentTiger Wang1-1/+0
2014-06-29Properly implemented enderchestsTiger Wang2-4/+4
2014-06-04SuggestionsTiger Wang1-1/+1
2014-06-04derpworktycho1-1/+1
2014-06-04Make sure m_StackSizeToBeUsedInRepair Always has a valid valueworktycho1-1/+3
2014-06-01Players can't set items in the result slot, when they shift a item.Howaner2-0/+39
2014-06-01Add HandleSmeltItem() call for achievements.Howaner1-7/+11
2014-06-01Missing return;Howaner1-0/+1
2014-05-31Set DraggingItem to Slot directly.Howaner1-1/+1
2014-05-31Fix DBL bug.Howaner1-5/+4
2014-05-31Change "Slot.IsEmpty()" to "Slot.m_ItemCount <= 0"Howaner1-1/+1
2014-05-30Fix the furnace result slot.Howaner1-2/+90
2014-05-19Changed the m_slotarea positionJulian Laubstein1-2/+2
2014-05-19Fixed some warnings in Server.cpp, and in UI/Julian Laubstein2-2/+4
2014-05-16Fixed anvil exp removingtonibm191-1/+1
2014-05-12cEntity::Killed(cEntity *) Handler; Achievement triggers; cPlayer::AwardAchievement()andrew2-1/+47
2014-05-09Fixed MSVC 64-bit build warnings.Mattes D2-2/+2
2014-05-08Fixed MSVC 64-bit build warnings.Mattes D2-2/+2
2014-05-07Change m_RepairCost to int.Howaner1-9/+3
2014-05-07Add repair cost to cItem, add custom name to NBTChunkSerializer and fix anvil bugs.Howaner1-24/+36
2014-05-06Rename CanRepairWithItem to CanRepairWithRawMaterial and rename Size() to Count()Howaner1-6/+5
2014-05-05Fix SetRepairedItemName() in SlotArea.cppHowaner1-1/+1
2014-05-05Add comments to CanTakeResultItem()Howaner1-5/+5
2014-05-05Add doxycomments to cSlotAreaAnvil functions.Howaner1-0/+2
2014-05-05Add anvil shift click.Howaner2-5/+86
2014-05-05This isn't a enchantment table :DHowaner1-1/+1
2014-05-05Add clicks, exp subtraction, item check, ...Howaner4-16/+204
2014-05-05Add MC|ItemName plugin message.Howaner4-8/+16
2014-05-05Add anvil window and slot area.Howaner4-0/+229
2014-04-25Cmake generated projects for IDEs include headers in project files.archshift1-0/+1
2014-04-24Add armor to switch() in ItemHandler.cppHowaner1-1/+1
2014-04-24Fix armor in survival mode.Howaner2-1/+80
2014-04-20Fixed MSVC compilation.madmaxoft1-1/+1
2014-04-19Fixed Codedaniel09162-8/+5
2014-04-18Did some static analysis, fixed some bugs and optimized a lot of codejfhumann1-5/+6
2014-04-17Modified many thingsdaniel09163-55/+54
2014-04-16Fixed double enchanting itemsdaniel09161-2/+2
2014-04-15Added Book Enchantingdaniel09161-1/+1
2014-04-15Add more checks to cSlotAreaEnchantingHowaner3-99/+212
2014-04-14Added ItemPlaceCount in SlotAreadaniel09162-0/+35
Thanks to Howaner for helping
2014-04-14Blocked enchanting a item twicedaniel09162-8/+10
2014-04-14Fixed Bookshelf Checkingdaniel09161-8/+10
Code by LO1ZB
2014-04-14Bug fixesdaniel09162-21/+19
2014-04-13Fixed invisibility enchantmentsdaniel09162-0/+4
2014-04-13Some Fixesdaniel09161-1/+1
2014-04-12Fixed Bookshelves Checking (not completly)daniel09161-7/+10
2014-04-12Added complete Enchanting Systemdaniel09163-20/+135
http://minecraft.gamepedia.com/Enchantment_mechanics
2014-04-07Added Enchantment-Slot-Level generatingdaniel09161-9/+19
2014-03-28Fixed non-virtual destructors warnings.madmaxoft1-0/+4
2014-03-12Added additional macros to support the MSVC size_t format and changed all formats to use the macrosTycho1-1/+1
2014-03-11Fixed a load of format string errorsTycho1-1/+1
2014-02-28Fixed multiple gcc warnings about unused params.madmaxoft2-3/+33
2014-01-24Some updates for enchantingdaniel09162-13/+13
2014-01-24Fixed indentation once and for all.Mike Hunsinger1-15/+15
2014-01-24Fixed indentation and doxygen comments... For real this time.Mike Hunsinger1-12/+12
2014-01-24Fixed spacing and doxycomments.Mike Hunsinger1-12/+10
2014-01-23Removed extra lineMike Hunsinger1-2/+0
2014-01-23Split TossItem into three Toss functions (Held, Equipped and Pickup)Mike Hunsinger1-5/+32
2014-01-20first changes for enchanting (not finished)daniel09164-0/+141
- 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...
2014-01-17Removed internal cEntity::GetRot() usage.madmaxoft1-1/+1
2014-01-16Really did what xoft wantedTiger Wang1-5/+8
2014-01-16Removed obsoleted functionsTiger Wang2-4/+4
2014-01-16Possibly did what xoft wantedTiger Wang1-10/+3
2014-01-15Implemented custom names and loreTiger Wang1-0/+7
+ Added custom names and lore + Added saving and loading + Added writing and parsing of NBT
2014-01-07More MSVC warning fixes.madmaxoft1-2/+2
2013-12-18added zlib and UITycho Bickerstaff1-0/+11
2013-12-08added default fallthrough clause to switch at line 178 of src/UI/Window.cppTycho Bickerstaff1-0/+4
2013-12-08Reordered Listed Initalisation order in src/UI/Window.cppTycho Bickerstaff1-2/+2
Reordered the Listed Initalisation order for CWindow to the executed initalisation order. The compiler initalises values in the order the fields are declared not the initalisations listed
2013-12-08Removed unused variable ResultSlotTycho Bickerstaff1-1/+0
2013-12-09Fixed Warning Unhandeled enum values in switch as src/UI/SlotArea.cpp line 54worktycho1-1/+4
2013-12-07Added basic ender chestsTiger Wang4-0/+106
Note that they just mirror chests now, so no per player inventory.
2013-11-24Moved source to srcAlexander Harkness5-0/+2521