mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-18 02:45:21 +02:00
Fix inventory swapping not calling all callbacks (#9923)
"Predicts" whether something will be swapped for allow callbacks, then calls callbacks a second time with swapped properties. Co-authored-by: SmallJoker <SmallJoker@users.noreply.github.com>
This commit is contained in:
@@ -183,6 +183,18 @@ struct IMoveAction : public InventoryAction, public MoveAction
|
||||
void apply(InventoryManager *mgr, ServerActiveObject *player, IGameDef *gamedef);
|
||||
|
||||
void clientApply(InventoryManager *mgr, IGameDef *gamedef);
|
||||
|
||||
void swapDirections();
|
||||
|
||||
void onPutAndOnTake(const ItemStack &src_item, ServerActiveObject *player) const;
|
||||
|
||||
void onMove(int count, ServerActiveObject *player) const;
|
||||
|
||||
int allowPut(const ItemStack &dst_item, ServerActiveObject *player) const;
|
||||
|
||||
int allowTake(const ItemStack &src_item, ServerActiveObject *player) const;
|
||||
|
||||
int allowMove(int try_take_count, ServerActiveObject *player) const;
|
||||
};
|
||||
|
||||
struct IDropAction : public InventoryAction, public MoveAction
|
||||
|
Reference in New Issue
Block a user