Yarn: Slot.onCrafted рдЧрд▓рдд рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдЕрдЧре░ 2020  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: FabricMC/yarn

рджреЗрдЦреЗрдВ https://github.com/FabricMC/yarn/issues/1656#issuecomment -812829091

bug discussion refactor

рд╕рднреА 5 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╛ рддреЛ onSizeChanged рдпрд╛ onItemCountChanged рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред рдпрд╣ рд╕реНрдЯреИрдХ рдЖрдХрд╛рд░, рдпрд╛ рдЖрдЗрдЯрдо рдЧрд┐рдирддреА рд╣реИ, рдЬрд┐рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рди рдХрд┐ рд╕реНрдЯреИрдХ рдХрд╛рдЙрдВрдЯ (рд╕реНрдЯреИрдХ рдХреА рд╕рдВрдЦреНрдпрд╛)ред

рдХреНрдпрд╛ рдпрд╣ рдЕрднреА рднреА 21w11a рдХреА рддрд░рд╣ рд╕реНрдХреНрд░реАрди рд╣реИрдВрдбрд▓рд░ рдкрд░ Mojang рдХреЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕реБрдзрд╛рд░ рдХреЗ рдмрд╛рдж рднреА рд▓рд╛рдЧреВ рд╣реИ?

рдареАрдХ рд╣реИ, рдореВрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг 100% рд╕рд╣реА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░:

  • Slot.onStackChanged рдЕрднреА рднреА рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдЯреИрдХ рдЪреЗрдВрдЬ рд╣реИрдВрдбрд▓рд░ рдирд╣реАрдВ рд╣реИред

    • рдЗрд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдХреНрд░рд╛рдлреНрдЯрд┐рдВрдЧ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд▓реЙрдЯреНрд╕ рдХреЗ рд▓рд┐рдП transferSlot рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдЯреИрдВрдб рдЗрдирдкреБрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред

    • рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ newStack, originalStack (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡реЗ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдк рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЙрд╕рд╕реЗ рд╕реНрд╡реИрдк рдХрд┐рдпрд╛ рдЧрдпрд╛)ред

    • рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕реНрд▓реЙрдЯ рд╕реЗ рдЖрдЗрдЯрдо рдирд┐рдХрд╛рд▓реЗ рдЧрдП рд╣реИрдВ рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ onCrafted(ItemStack, int) рдХреЛ originalStack (рд╡рд░реНрддрдорд╛рди рдореИрдкрд┐рдВрдЧ рдореЗрдВ newItem рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдвреЗрд░ рдХреЗ рдЖрдХрд╛рд░ред

    • рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд▓реЙрдЯ рдЖрдЗрдЯрдо рдЧрд┐рдирддреА рдкрд░ рдмрджрд▓ рдЧрдпрд╛" рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред

  • Slot.onCrafted(ItemStack, int) рдХреЗрд╡рд▓ onStackChanged рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрд░реНрде: рдиреЛ-рдСрдк

    • CraftingResultSlot , FurnaceOutputSlot рдФрд░ TradeOutputSlot рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдореЗрд╢рд╛ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ: рдпрд╣ int рдкреИрд░рд╛рдореАрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдирд┐рдЬреА amount рдлрд╝реАрд▓реНрдб рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдлрд┐рд░ onCrafted(ItemStack) рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ

  • Slot.onCrafted(ItemStack) рдХреЗрд╡рд▓ рдЙрди рддреАрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ onCrafted(ItemStack, int) рдФрд░ onTakeItem рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреНрд╡рд╛рд░рд╛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

    • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрд░реНрде: рдиреЛ-рдСрдк

    • рдЙрди рддреАрди рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди: рдирд┐рдЬреА amount рдлрд╝реАрд▓реНрдб рдХреЛ 0 рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп рдЪрд▓рд╛рддрд╛ рд╣реИ (рдлрд░реНрдиреЗрд╕ рдбреНрд░реЙрдк XP рдЖрджрд┐)

рдирд┐рд╖реНрдХрд░реНрд╖ (рдбреАрдмрдЧрд░ рдпрд╛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд╕рд╛рде рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ):

  • рдпреЗ рд╕рднреА рд╡рд┐рдзрд┐рдпрд╛рдВ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд▓реЙрдЯ (рдХреНрд░рд╛рдлреНрдЯрд┐рдВрдЧ рдпрд╛ рдЯреНрд░реЗрдбрд┐рдВрдЧ) рд╕реЗ рдЖрдЗрдЯрдо рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред
  • onStackChanged рдХреЛ рддрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд▓реЙрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдФрд░ onCrafted(ItemStack, int) рдЬрдм рд╡рд╣ рдЧрд┐рдирддреА рдШрдЯ рдЬрд╛рддреА рд╣реИ (= рдЖрдЗрдЯрдо рдирд┐рдХрд╛рд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред
  • onCrafted(ItemStack) рдпрд╛ рддреЛ рдЖрдВрд╢рд┐рдХ рдХрдореА ( onStackChanged ) рдпрд╛ рдПрдХ рдкреВрд░реНрдг рд╕реНрдЯреИрдХ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рдиреЗ рдкрд░ ( onTakeItem ) рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдВрддрд┐рдо рд░реВрдк рджреЗрддрд╛ рд╣реИред
  • рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЕрднреА рднреА рдирд╛рдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖ (рдбреАрдмрдЧрд░ рдпрд╛ рдХрд░реАрдм рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд╕рд╛рде рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ):

  • рдпреЗ рд╕рднреА рд╡рд┐рдзрд┐рдпрд╛рдВ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд▓реЙрдЯ (рдХреНрд░рд╛рдлреНрдЯрд┐рдВрдЧ рдпрд╛ рдЯреНрд░реЗрдбрд┐рдВрдЧ) рд╕реЗ рдЖрдЗрдЯрдо рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред
  • onStackChanged рдХреЛ рддрдм рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЖрдЗрдЯрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрд▓реЙрдЯ рдореЗрдВ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдФрд░ onCrafted(ItemStack, int) рдЬрдм рд╡рд╣ рдЧрд┐рдирддреА рдШрдЯ рдЬрд╛рддреА рд╣реИ (= рдЖрдЗрдЯрдо рдирд┐рдХрд╛рд▓ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред

рд╡рд┐рдзрд┐ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░рддреА рд╣реИ, transferSlot , рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рддреНрд╡рд░рд┐рдд рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдЙрд░реНрдл тАЛтАЛтАЛтАЛрд╢рд┐рдлреНрдЯ рдХреНрд▓рд┐рдХрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ, onQuickTransfer рдореБрдЭреЗ рд╕рдмрд╕реЗ рд╕рдЯреАрдХ рд▓рдЧрддрд╛ рд╣реИред рдкреИрд░рд╛рдореАрдЯрд░ рдирд╛рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрд╡рд┐рдЪ рдХрд┐рдП рдЧрдП рдереЗред

рдпрд╣ рдЕрднреА рднреА onCrafted рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Runemoro picture Runemoro  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

liach picture liach  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Awakened-Redstone picture Awakened-Redstone  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Draylar picture Draylar  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Boundarybreaker picture Boundarybreaker  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ