https://github.com/FabricMC/yarn/issues/1656#issuecomment -812829091 ์ฐธ์กฐ
onSizeChanged
๋๋ onItemCountChanged
๊ฐ ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์คํ ์(์คํ ์)๊ฐ ์๋๋ผ ๋ณ๊ฒฝ๋๋ ์คํ ํฌ๊ธฐ ๋๋ ํญ๋ชฉ ์์
๋๋ค.
์ด๊ฒ์ 21w11a์ ๊ฐ์ ํ๋ฉด ํธ๋ค๋ฌ์ ๋ํ mojang์ ์ต๊ทผ ๊ฐ์ ํ์๋ ์ฌ์ ํ ์ ์ฉ ๊ฐ๋ฅํฉ๋๊น?
์ข์ต๋๋ค. ์๋ ๋ถ์์ด 100% ์ ํํ์ง ์์ ์ ์์ต๋๋ค. ํ์ฌ ํ๋:
Slot.onStackChanged
๋ ์ฌ์ ํ ์ผ๋ฐ์ ์ธ ์คํ ๋ณ๊ฒฝ ํธ๋ค๋ฌ๊ฐ ์๋๋๋ค.transferSlot
๊ตฌํ์์ ํธ์ถ๋์ง๋ง ์์กฐ ์คํ ๋ ์
๋ ฅ์๋ ์ฌ์ฉ๋ฉ๋๋ค.newStack, originalStack
๋ก ๋ณด์
๋๋ค(ํ์ฌ ๋งคํ๋ ๋ฐฉ์์์ ๊ต์ฒด๋จ).onCrafted(ItemStack, int)
์ originalStack
(์ ํ newItem
ํ์ฌ ๋งคํ์์)๊ณผ์ ์ฐจ์ด ์ฌ์ด ์คํ ํฌ๊ธฐ.Slot.onCrafted(ItemStack, int)
๋ onStackChanged
์์๋ง ํธ์ถ๋ฉ๋๋ค.CraftingResultSlot
, FurnaceOutputSlot
๋ฐ TradeOutputSlot
๊ตฌํ์ ํญ์ ๋์ผํฉ๋๋ค. int ๋งค๊ฐ๋ณ์์ ์ํด private 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
์ ์ ์ฉ๋๋ฏ๋ก ๋ค์ ์ฝ๋๋ค.