Yarn: ์ฐจ๋‹จ ๋™์ž‘ -> ?

์— ๋งŒ๋“  2020๋…„ 05์›” 01์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: FabricMC/yarn

ํ˜„์žฌ "๋ธ”๋ก ์ž‘์—…"์ด๋ผ๊ณ  ํ•˜๋Š” ์›์‚ฌ๋Š” ๋‹ค์Œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ํ”ผ์Šคํ†ค(๋ฐ€๊ธฐ์šฉ)
  • ์Œํ‘œ ๋ธ”๋ก(์‚ฌ์šด๋“œ ์žฌ์ƒ์šฉ)
  • ๋ฒจ(๋ฒจ์ด ์šธ๋ฆฌ๋Š” ๊ฒฝ์šฐ)
  • ์ƒ์ž(๊ฐœ๋ด‰ ์• ๋‹ˆ๋ฉ”์ด์…˜์šฉ)
  • ์—”๋” ์ƒ์ž(์˜คํ”„๋‹ ์• ๋‹ˆ๋ฉ”์ด์…˜์šฉ)
  • ์…œ์ปค ์ƒ์ž(์˜คํ”„๋‹ ์• ๋‹ˆ๋ฉ”์ด์…˜์šฉ)
  • ์—”๋“œ ๊ฒŒ์ดํŠธ์›จ์ด(๋น”์šฉ)
  • ๋ชน ์ƒ์„ฑ๊ธฐ(๋ชน ํšŒ์ „ ์†๋„๋ฅผ ์žฌ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ชน ์ƒ์„ฑ ์‹œ ํŠธ๋ฆฌ๊ฑฐ๋จ)

"์ฐจ๋‹จ ์ž‘์—…"์€ ์„œ๋ฒ„์— ์˜ํ•ด ํŠธ๋ฆฌ๊ฑฐ๋˜๊ณ  ์ฐจ๋‹จ ๋ฒ”์œ„ ๋‚ด์—์„œ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค("์ฐจ๋‹จ ์ž‘์—…"์ด ์ด๋Ÿฌํ•œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋จ). ๊ธฐ๋ณธ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์—์„œ๋„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ด๋ฒคํŠธ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์‹ค ์ด๋ฆ„์€ ํ˜ผ๋ž€์Šค๋Ÿฝ๊ณ  ์‹ค์ œ ๋ชฉ์ ์„ ํฌ์ฐฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ํด๋ฆญ ๋™์ž‘ ๋“ฑ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœํ•˜๋ ค๋Š” ๋ฉ”์„œ๋“œ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  ๋ญ๋ผ๊ณ  ๋ถˆ๋Ÿฌ์•ผ ํ• ๊นŒ์š”?

discussion refactor

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

BlockEvent ์˜ ๋ฌธ์ œ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „์ฒด์—์„œ ๋” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์„ธ๊ณ„ ์ด๋ฒคํŠธ์™€ ์ผ์น˜ํ•˜์ง€๋งŒ ์ด๋ฆ„์— "์ฐจ๋‹จ ์กฐ์น˜"์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ €๋Š” World.addBlockAction ๋ฅผ addSyncedBlockEvent ๋กœ, Block.onBlockAction ๋ฅผ onSyncedBlockEvent ๋กœ ๋ณ€๊ฒฝํ•˜๋„๋ก ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ BlockAction ๋ผ๊ณ  ํ•˜๋Š” ํด๋ž˜์Šค๋Š” $ BlockEvent ๋กœ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๋™๊ธฐํ™”๋œ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— SyncedBlockEvent ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์„ธ๊ณ„ ์ด๋ฒคํŠธ์˜ ์ด๋ฆ„์„ ๋™๊ธฐํ™”๋œ ์„ธ๊ณ„ ์ด๋ฒคํŠธ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ณด๋‹ค ๋ช…ํ™•ํ•˜๊ณ  ์ผ๊ด€์„ฑ ์žˆ๋Š” ์„ธ๊ณ„ ์ด๋ฒคํŠธ๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  6 ๋Œ“๊ธ€

๋‹จ์ˆœํ•จ์„ ์ถ”๊ตฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค... ๋™๊ธฐํ™” ์ด๋ฒคํŠธ?

์„ธ๊ณ„์— ๋Œ€ํ•œ ์„ธ๊ณ„ ์ด๋ฒคํŠธ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ผํ•˜์ง€๋งŒ Block ์ธ์Šคํ„ด์Šค์— ์ข…์†๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ "[๋ฌด์–ธ๊ฐ€] ์ด๋ฒคํŠธ"๊ฐ€ ์ข‹์Šต๋‹ˆ๋‹ค.

"๋™๊ธฐํ™” ์ด๋ฒคํŠธ"๋Š” ์•ฝ๊ฐ„ ๋ชป์ƒ๊ธด IMO์ด์ง€๋งŒ ์„ค๋ช…์ ์ด๋ฏ€๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

BlockEvent ?

์ €๋Š” ๊ฐœ์ธ์ ์œผ๋กœ ์•ก์…˜์ด ์ด ๋ชจ๋“  ๊ฒƒ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์„ค๋ช…ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. action์ด๋ผ๋Š” ๋‹จ์–ด๋Š” " ์™„๋ฃŒ๋œ ๊ฒƒ "(๋ฐ€๊ธฐ, ์—ฐ์ฃผํ•˜๊ธฐ, ์šธ๋ฆฌ๊ธฐ, ์—ด๊ธฐ, ๊ด‘์„  ๋ฐฉ์ถœ ๋“ฑ)์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋‹จ์ˆœํžˆ ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๊ตฌ์ฒด์ ์ด๋ฉฐ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก์„ ๋‹ค์‹œ ์‚ดํŽด๋ณด๊ณ  ํ•ด๋‹น ํŒจํ„ด์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

BlockEvent ์˜ ๋ฌธ์ œ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์ „์ฒด์—์„œ ๋” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ ์„ธ๊ณ„ ์ด๋ฒคํŠธ์™€ ์ผ์น˜ํ•˜์ง€๋งŒ ์ด๋ฆ„์— "์ฐจ๋‹จ ์กฐ์น˜"์™€ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ €๋Š” World.addBlockAction ๋ฅผ addSyncedBlockEvent ๋กœ, Block.onBlockAction ๋ฅผ onSyncedBlockEvent ๋กœ ๋ณ€๊ฒฝํ•˜๋„๋ก ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ BlockAction ๋ผ๊ณ  ํ•˜๋Š” ํด๋ž˜์Šค๋Š” $ BlockEvent ๋กœ ์ด๋ฆ„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ž˜์Šค์— ๋Œ€ํ•ด ๋™๊ธฐํ™”๋œ ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— SyncedBlockEvent ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ์„ธ๊ณ„ ์ด๋ฒคํŠธ์˜ ์ด๋ฆ„์„ ๋™๊ธฐํ™”๋œ ์„ธ๊ณ„ ์ด๋ฒคํŠธ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ณด๋‹ค ๋ช…ํ™•ํ•˜๊ณ  ์ผ๊ด€์„ฑ ์žˆ๋Š” ์„ธ๊ณ„ ์ด๋ฒคํŠธ๋ฅผ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

Bixilon picture Bixilon  ยท  5์ฝ”๋ฉ˜ํŠธ

Sollace picture Sollace  ยท  5์ฝ”๋ฉ˜ํŠธ

Draylar picture Draylar  ยท  6์ฝ”๋ฉ˜ํŠธ

asiekierka picture asiekierka  ยท  3์ฝ”๋ฉ˜ํŠธ

ChloeDawn picture ChloeDawn  ยท  6์ฝ”๋ฉ˜ํŠธ