Cuberite
A lightweight, fast and extensible game server for Minecraft
|
#include <EnchantingWindow.h>
Public Member Functions | |
cEnchantingWindow (Vector3i a_BlockPos, const AString &a_Title) | |
virtual void | DistributeStack (cItem &a_ItemStack, int a_Slot, cPlayer &a_Player, cSlotArea *a_ClickedArea, bool a_ShouldApply) override |
Called on shift-clicking to distribute the stack into other areas; Modifies a_ItemStack as it is distributed! if a_ShouldApply is true, the changes are written into the slots; if a_ShouldApply is false, only a_ItemStack is modified to reflect the number of fits (for fit-testing purposes) More... | |
short | GetProperty (size_t a_Property) |
Return the level requirement of the given enchantment slot. More... | |
virtual void | SetProperty (size_t a_Property, short a_Value) override |
Sends enchantment properties to the client. More... | |
Public Member Functions inherited from cWindow | |
void | BroadcastSlot (cSlotArea *a_Area, int a_LocalSlotNum) |
Sends the specified slot's contents to all clients of this window; the slot is specified as local in an area. More... | |
void | BroadcastWholeWindow (void) |
Sends the contents of the whole window to all clients of this window. More... | |
virtual void | Clicked (cPlayer &a_Player, int a_WindowID, short a_SlotNum, eClickAction a_ClickAction, const cItem &a_ClickedItem) |
Handles a click event from a player. More... | |
virtual bool | ClosedByPlayer (cPlayer &a_Player, bool a_CanRefuse) |
Called when a player closes this window; notifies all slot areas. More... | |
bool | CollectItemsToHand (cItem &a_Dragging, cSlotArea &a_Area, cPlayer &a_Player, bool a_CollectFullStacks) |
Called on DblClicking to collect all stackable items from all areas into hand. More... | |
cWindow (WindowType a_WindowType, const AString &a_WindowTitle) | |
void | DistributeStackToAreas (cItem &a_ItemStack, cPlayer &a_Player, cSlotAreas &a_AreasInOrder, bool a_ShouldApply, bool a_BackFill) |
Called from DistributeStack() to distribute the stack into a_AreasInOrder; Modifies a_ItemStack as it is distributed! If a_ShouldApply is true, the changes are written into the slots; if a_ShouldApply is false, only a_ItemStack is modified to reflect the number of fits (for fit-testing purposes) If a_BackFill is true, the areas will be filled from the back (right side). More... | |
bool | ForEachClient (cClientHandleCallback a_Callback) |
Calls the callback safely for each client that has this window open; returns true if all clients have been enumerated. More... | |
bool | ForEachPlayer (cPlayerListCallback a_Callback) |
Calls the callback safely for each player that has this window open; returns true if all players have been enumerated. More... | |
int | GetNumNonInventorySlots (void) const |
Returns the number of slots, excluding the player's inventory (used for network protocols) More... | |
int | GetNumSlots (void) const |
Returns the total number of slots. More... | |
cWindowOwner * | GetOwner (void) |
const cItem * | GetSlot (cPlayer &a_Player, int a_SlotNum) const |
Returns the item at the specified slot for the specified player. More... | |
void | GetSlots (cPlayer &a_Player, cItems &a_Slots) const |
Fills a_Slots with the slots read from m_SlotAreas[], for the specified player. More... | |
char | GetWindowID (void) const |
const AString & | GetWindowTitle () const |
int | GetWindowType (void) const |
const AString | GetWindowTypeName (void) const |
Returns the textual representation of the window's type, such as "minecraft:chest". More... | |
bool | IsSlotInPlayerHotbar (int a_SlotNum) const |
Returns true if the specified slot is in the Player Hotbar slotarea. More... | |
bool | IsSlotInPlayerInventory (int a_SlotNum) const |
Returns true if the specified slot is in the Player Main Inventory or Hotbar slotareas. More... | |
bool | IsSlotInPlayerMainInventory (int a_SlotNum) const |
Returns true if the specified slot is in the Player Main Inventory slotarea. More... | |
virtual void | OpenedByPlayer (cPlayer &a_Player) |
void | OwnerDestroyed (void) |
void | SendSlot (cPlayer &a_Player, cSlotArea *a_SlotArea, int a_RelativeSlotNum) |
Used by cSlotAreas to send individual slots to clients, a_RelativeSlotNum is the slot number relative to a_SlotArea. More... | |
void | SendWholeWindow (cClientHandle &a_Client) |
Sends the contents of the whole window to the specified client. More... | |
void | SetOwner (cWindowOwner *a_Owner) |
void | SetSlot (cPlayer &a_Player, int a_SlotNum, const cItem &a_Item) |
Sets the item to the specified slot for the specified player. More... | |
void | SetWindowTitle (const AString &a_WindowTitle) |
virtual | ~cWindow () |
Public Attributes | |
cSlotAreaEnchanting * | m_SlotArea |
Protected Attributes | |
Vector3i | m_BlockPos |
std::array< short, 3 > | m_PropertyValue |
Protected Attributes inherited from cWindow | |
cCriticalSection | m_CS |
bool | m_IsDestroyed |
cPlayerList | m_OpenedBy |
cWindowOwner * | m_Owner |
cSlotAreas | m_SlotAreas |
char | m_WindowID |
AString | m_WindowTitle |
int | m_WindowType |
Private Types | |
using | Super = cWindow |
Additional Inherited Members | |
Public Types inherited from cWindow | |
enum | WindowType { wtInventory = -1 , wtChest = 0 , wtWorkbench = 1 , wtFurnace = 2 , wtDropSpenser = 3 , wtEnchantment = 4 , wtBrewery = 5 , wtNPCTrade = 6 , wtBeacon = 7 , wtAnvil = 8 , wtHopper = 9 , wtDropper = 10 , wtAnimalChest = 11 } |
Static Public Attributes inherited from cWindow | |
static const int | c_NumInventorySlots = 36 |
Protected Member Functions inherited from cWindow | |
virtual void | Destroy (void) |
Sets the internal flag as "destroyed"; notifies the owner that the window is destroying. More... | |
char | DistributeItemToSlots (cPlayer &a_Player, const cItem &a_Item, char a_NumToEachSlot, const cSlotNums &a_SlotNums, bool a_LimitItems=true) |
Distributes a_NumToEachSlot items into the slots specified in a_SlotNums; returns the total number of items distributed. More... | |
cSlotArea * | GetSlotArea (int a_GlobalSlotNum, int &a_LocalSlotNum) |
Returns the correct slot area for the specified window-global SlotNum Also returns the area-local SlotNum corresponding to the GlobalSlotNum If the global SlotNum is out of range, returns nullptr. More... | |
const cSlotArea * | GetSlotArea (int a_GlobalSlotNum, int &a_LocalSlotNum) const |
Returns the correct slot area for the specified window-global SlotNum Also returns the area-local SlotNum corresponding to the GlobalSlotNum If the global SlotNum is out of range, returns nullptr. More... | |
void | OnLeftPaintEnd (cPlayer &a_Player) |
Processes the entire action stored in the internal structures for inventory painting; distributes as many items as possible. More... | |
void | OnMiddlePaintEnd (cPlayer &a_Player) |
Processes the entire action stored in the internal structures for inventory painting; distributes a full stack into each slot. More... | |
void | OnPaintBegin (cPlayer &a_Player) |
Prepares the internal structures for inventory painting from the specified player. More... | |
void | OnPaintProgress (cPlayer &a_Player, int a_SlotNum) |
Adds the slot to the internal structures for inventory painting by the specified player. More... | |
void | OnRightPaintEnd (cPlayer &a_Player) |
Processes the entire action stored in the internal structures for inventory painting; distributes one item into each slot. More... | |
Static Protected Attributes inherited from cWindow | |
static Byte | m_WindowIDCounter = 0 |
Definition at line 24 of file EnchantingWindow.h.
|
private |
Definition at line 27 of file EnchantingWindow.h.
Definition at line 14 of file EnchantingWindow.cpp.
|
overridevirtual |
Called on shift-clicking to distribute the stack into other areas; Modifies a_ItemStack as it is distributed! if a_ShouldApply is true, the changes are written into the slots; if a_ShouldApply is false, only a_ItemStack is modified to reflect the number of fits (for fit-testing purposes)
Implements cWindow.
Definition at line 53 of file EnchantingWindow.cpp.
short cEnchantingWindow::GetProperty | ( | size_t | a_Property | ) |
Return the level requirement of the given enchantment slot.
Definition at line 43 of file EnchantingWindow.cpp.
|
overridevirtual |
Sends enchantment properties to the client.
If the property represents a level requirement, stores it for later GetProperty retrieval.
Reimplemented from cWindow.
Definition at line 29 of file EnchantingWindow.cpp.
|
protected |
Definition at line 47 of file EnchantingWindow.h.
|
protected |
Definition at line 46 of file EnchantingWindow.h.
cSlotAreaEnchanting* cEnchantingWindow::m_SlotArea |
Definition at line 42 of file EnchantingWindow.h.