parent
66fa015534
commit
562d14e8ec
@ -468,6 +468,20 @@ void cSlotAreaCrafting::OnPlayerRemoved(cPlayer & a_Player)
|
||||
|
||||
|
||||
|
||||
void cSlotAreaCrafting::SetSlot(int a_SlotNum, cPlayer & a_Player, const cItem & a_Item)
|
||||
{
|
||||
// Update the recipe after setting the slot, if the slot is not the result slot:
|
||||
super::SetSlot(a_SlotNum, a_Player, a_Item);
|
||||
if (a_SlotNum != 0)
|
||||
{
|
||||
UpdateRecipe(a_Player);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
void cSlotAreaCrafting::DistributeStack(cItem & a_ItemStack, cPlayer & a_Player, bool a_ShouldApply, bool a_KeepEmptySlots)
|
||||
{
|
||||
UNUSED(a_ItemStack);
|
||||
@ -552,9 +566,13 @@ void cSlotAreaCrafting::ShiftClickedResult(cPlayer & a_Player)
|
||||
Recipe.ConsumeIngredients(Grid);
|
||||
Grid.CopyToItems(PlayerSlots);
|
||||
UpdateRecipe(a_Player);
|
||||
|
||||
// Broadcast the window, we sometimes move items to different locations than Vanilla, causing needless desyncs:
|
||||
m_ParentWindow.BroadcastWholeWindow();
|
||||
|
||||
// If the recipe has changed, bail out:
|
||||
if (!Recipe.GetResult().IsEqual(Result))
|
||||
{
|
||||
// The recipe has changed, bail out
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -232,6 +232,7 @@ public:
|
||||
virtual void Clicked (cPlayer & a_Player, int a_SlotNum, eClickAction a_ClickAction, const cItem & a_ClickedItem) override;
|
||||
virtual void DblClicked (cPlayer & a_Player, int a_SlotNum);
|
||||
virtual void OnPlayerRemoved(cPlayer & a_Player) override;
|
||||
virtual void SetSlot (int a_SlotNum, cPlayer & a_Player, const cItem & a_Item) override;
|
||||
|
||||
// Distributing items into this area is completely disabled
|
||||
virtual void DistributeStack(cItem & a_ItemStack, cPlayer & a_Player, bool a_ShouldApply, bool a_KeepEmptySlots) override;
|
||||
|
Loading…
Reference in New Issue
Block a user