Yarn: '์—”ํ‹ฐํ‹ฐ' ์ ‘๋ฏธ์‚ฌ ์‚ญ์ œ

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

  • ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋ชจํ˜ธํ•จ์ด ์—†์Šต๋‹ˆ๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ๋œ ์žฅํ™ฉํ•˜๊ฒŒ ๋งŒ๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์šฐ๋ฆฌ๋Š” "5๊ฐœ์˜ ์•”์†Œ ๊ฐœ์ฒด"๊ฐ€ ์•„๋‹ˆ๋ผ "5๊ฐœ์˜ ์•”์†Œ"๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.
  • Mojang์€ Entity ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
discussion vote

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

"๋‚˜๋Š” 5๊ฐœ์˜ ๋Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒฝ์šฐ:+1: ์ด ๋ฌธ์ œ

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

์ด๊ฒƒ์€ BlockEntities๊ฐ€ ์•„๋‹Œ ์ผ๋ฐ˜ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•ด Entity ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‘.

Sponge๋Š” Entity ์ ‘๋ฏธ์‚ฌ๋„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

+1ํ•˜์ง€๋งŒ ๊ทธ ์ธ์ˆ˜๋Š” ๋ธ”๋ก๊ณผ ๊ฐ™์€ ๊ฒƒ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๊นŒ? ๊ฑฐ์˜ ์ถฉ๋Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ธ”๋ก์˜ ์•„์ด๋””์–ด๋ฅผ ์ข‹์•„ํ•œ๋‹ค. ๊ฐ€์Šดํ•˜์ง€๋งŒ ์—„๊ฒฉํ•˜๊ฒŒ ๋ธ”๋ก๊ณผ ๊ด€๋ จ๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค๋ฉด ์ด์ƒํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ผ๊ด€์„ฑ์„ ์œ„ํ•ด ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์„ ๊ฐ€์ง„ ๊ฒƒ์€ Block ์ ‘๋ฏธ์‚ฌ, IMO, ๊ทธ๊ฒƒ์€ ๋ธ”๋ก,ํ•˜์ง€๋งŒ ๋ธ”๋ก ๋‹จ์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. (A)์˜ ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค์žˆ๋‹ค, ์˜ˆ๋ฅผ ๋“ค์–ด ์ž”๋””๋ฅผ ํƒ€๊ณ  GrassBlock ๊ทธ๊ฒƒ "์ด ์ž”๋”” ๋ธ”๋ก์ด๋‹ค"๋ผ๊ณ ํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋ฏ€๋กœ, ์ฃผ์–ด์ง„ ์‹œ๊ฐ„์—. ์—”ํ‹ฐํ‹ฐ๋Š” ์‹ค์ œ๋กœ ์ด์™€ ๊ฐ™์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์„ธ๊ณ„์˜ ๊ฐ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ ์—”ํ‹ฐํ‹ฐ ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์˜ˆ๋กœ ์ข€๋น„์˜ ๊ฒฝ์šฐ "์ด๊ฒŒ ์ข€๋น„๋‹ค"๋ผ๊ณ  ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค . ์ข€๋น„๊ฐ€ ์ข€๋น„์ž…๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๊ณ  ์‹ถ์ง€๋งŒ.

๋ฐ˜๋ฉด์— ์ผ๊ด€์„ฑ ์ธ์ˆ˜๋Š” ์ข‹์€ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ•ญ๋ชฉ์—๋Š” ํ•ด๋‹น ์œ ํ˜•์„ ์ ‘๋ฏธ์‚ฌํ•˜๊ณ  ๋‚˜๋จธ์ง€ ํ•ญ๋ชฉ์—๋Š” ์ ‘๋ฏธ์‚ฌ ์—†์ด ๋‘๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„ ์ผ๊ด€์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ , ๋–จ์–ด์ง€๋Š” ๋ธ”๋ก์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

@Sorixelle ์€ ์ •๋ง ์ข‹์€ ์ง€์ ์„ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ ‘๋ฏธ์‚ฌ์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, ์ด๋ฆ„์— ์—†๋Š” ๊ฒƒ์ด ๋ฉ‹์ง€์ง€๋งŒ ์ผ๊ด€์„ฑ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ZombieEntity๋Š” ์ข€๋น„์˜ Entity ์œ ํ˜•์„ ์˜๋ฏธํ•ฉ๋‹ˆ๊นŒ?

๊ทธ ์ธ์ˆ˜๋Š” ๋ธ”๋ก๊ณผ ๊ฐ™์€ ๊ฒƒ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ผ๊ด€์„ฑ์„ ์œ„ํ•ด ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์ฐจ์ด์ ์€ "๋‚˜๋Š” 5๊ฐœ์˜ ๋Œ ๋ธ”๋ก์ด ์žˆ์Šต๋‹ˆ๋‹ค"("5๊ฐœ์˜ ๋Œ"์ด ์•„๋‹˜)๋ผ๊ณ  ๋งํ•˜๊ณ  "๋‚˜๋Š” 5๊ฐœ์˜ ์–‘์ด ์žˆ์Šต๋‹ˆ๋‹ค"("์–‘ ๊ฐœ์ฒด"๊ฐ€ ์•„๋‹˜)๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค.

"๋‚˜๋Š” 5๊ฐœ์˜ ๋Œ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒฝ์šฐ:+1: ์ด ๋ฌธ์ œ

ํด๋ž˜์Šค ์ด๋ฆ„์„ SheepThing ๋ฐ ItemThing ๋ผ๊ณ  ์ƒ์ƒํ•ด ๋ณด์„ธ์š”.

"entity"๋Š” "thing"๊ณผ "object"์˜ ๋™์˜์–ด์ผ ๋ฟ์ž…๋‹ˆ๋‹ค .

์—”ํ‹ฐํ‹ฐ๋Š” Minecraft ์„ธ๊ณ„์˜ ๋ชจ๋“  ๋™์ ์ด๊ณ  ์›€์ง์ด๋Š” ๋ฌผ์ฒด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

SheepDynamicObject ๋˜๋Š” SheepGameObject ์ด๋ฆ„์œผ๋กœ ๊ดœ์ฐฎ์Šต๋‹ˆ๊นŒ?

"article", "object" ๋ฐ "thing"์€ "item"์˜ ๋™์˜์–ด์ž…๋‹ˆ๋‹ค . SwordItem ์„ SwordArticle , SwordObject ๋˜๋Š” SwordThing ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์š”์ ์€ SheepThing ๋ฐ ItemThing ๋Š” "์—”ํ‹ฐํ‹ฐ"์˜ ๊ฐœ๋…์ด Minecraft์˜ "์‚ฌ๋ฌผ" ๋˜๋Š” "๊ฐ์ฒด"๋ณด๋‹ค ๋” ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์œผ๋กœ ์ž˜ ์ •์˜๋  ๋•Œ ์˜๋ฏธ ์—†๋Š” ๋ณ€ํ˜•์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "์•ˆ๊ฑด".

Entity๊ฐ€ ๋ฌด์˜๋ฏธํ•˜๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. java.lang.Object , StringObject , IntegerObject ๋“ฑ์ด ์•„๋‹Œ ๋ชจ๋“  ๋™์  ์‚ฌ๋ฌผ์— ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด์ž…๋‹ˆ๋‹ค.

๊ทธ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๋‚ด๊ฐ€ ๋งํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ์š”์ ์€ Mojang์ด Entity Thing ๋Œ€์‹  SheepThing , ItemThing ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ด๋ฆ„์„ ์ง€์—ˆ๋‹ค ๋ฉด ?

"article", "object" ๋ฐ "thing"์€ "item"์˜ ๋™์˜์–ด์ž…๋‹ˆ๋‹ค . SwordItem ์„ SwordArticle , SwordObject ๋˜๋Š” SwordThing ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์š”์ ์€ SheepThing ๋ฐ ItemThing ๋Š” "์—”ํ‹ฐํ‹ฐ"์˜ ๊ฐœ๋…์ด Minecraft์˜ "์‚ฌ๋ฌผ" ๋˜๋Š” "๊ฐ์ฒด"๋ณด๋‹ค ๋” ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์œผ๋กœ ์ž˜ ์ •์˜๋  ๋•Œ ์˜๋ฏธ ์—†๋Š” ๋ณ€ํ˜•์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "์•ˆ๊ฑด".

ํ•ญ๋ชฉ ์ด๋ฆ„์„ ๊ธฐ์‚ฌ๋‚˜ ๋ฌผ๊ฑด์œผ๋กœ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Shulkers๋Š” ๊ฐœ์ฒด ํ‘œ์‹œ๋ฅผ ์ œ๊ฑฐํ•˜๋ฉด ์œ ์‚ฌํ•œ ๋ช…๋ช… ์‹œ๋‚˜๋ฆฌ์˜ค์™€ ๋™์ผํ•œ ์ด๋ฆ„์˜ ๋ธ”๋ก ๊ฐœ์ฒด, ๋ธ”๋ก ๋ฐ ๊ฐœ์ฒด ์ •์˜๋กœ ์ธํ•ด ํ˜ผ๋™์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

Entity๊ฐ€ ๋ฌด์˜๋ฏธํ•˜๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. java.lang.Object , StringObject , IntegerObject ๋“ฑ์ด ์•„๋‹Œ ๋ชจ๋“  ๋™์  ์‚ฌ๋ฌผ์— ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ฐ˜์ ์ธ ์šฉ์–ด์ž…๋‹ˆ๋‹ค.

java.lang.Object ๋Š” ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์Šˆํผํด๋ž˜์Šค์ด๋ฉฐ ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค๋Š” ๊ทธ ์ผ๋ถ€๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด Item์—์„œ ItemEntity๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๋˜ํ•œ Java ํ‘œ์ค€์€ EnumSet, EnumMap ๋“ฑ์„ ๋ณด์—ฌ์ฃผ๋ฏ€๋กœ ๊ธฐ๋ณธ ํด๋ž˜์Šค๋Š” Extender์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค.
CompoundTag, ListTag, StringTag...

์Šˆํผ ์œ ํ˜•์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ๊ด€ํ–‰์ž…๋‹ˆ๋‹ค.

๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์š”์†Œ์— ๋Œ€ํ•œ ItemType ๋Œ€ํ•œ ์—”ํ‹ฐํ‹ฐ์— ๋Œ€ํ•œ Drop

minecraft:item ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” Registry ์ด ์•„๋‹ˆ๋ผ Item ItemType ์ด๊ณ  ํ•ญ๋ชฉ ์œ ํ˜• ID๋Š” minecraft:item ์ด๋ฏ€๋กœ ItemEntity .

๋ฌผ๋ก  Entity ์ ‘๋ฏธ์‚ฌ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์€ ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์œผ๋กœ ์‚ด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์—”ํ„ฐํ‹ฐ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ญ์ œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํ˜ผ๋ž€๋งŒ ๊ฐ€์ค‘์‹œํ‚ฌ ๊ฒƒ์ด๊ณ , ์ •ํ™•ํ•œ ์ด๋ฆ„์„ ์ง“๊ธฐ ๋ณด๋‹ค๋Š” ์ ‘๋ฏธ์‚ฌ๊ฐ€ ์—†๋Š” ๊ฐœ์ฒด์™€ ํ˜ผ๋™ํ•˜์ง€ ์•Š๋„๋ก ์ด๋ฆ„์„ ์ง“๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ ๋น„๊ต๋ฅผ ํ†ตํ•ด ๋‚ด๊ฐ€ ๋งํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ์š”์ ์€ Mojang์ด Entity Thing ๋Œ€์‹  SheepThing , ItemThing ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ์ด๋ฆ„์„ ์ง€์—ˆ๋‹ค๋ฉด?

์˜ˆ, Thing ๋Š” ์ด ๊ฒฝ์šฐ์— ํŠน์ •ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Yanis๊ฐ€ ๋งํ–ˆ๋“ฏ์ด ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ํ˜ผ๋ž€๋งŒ ๊ฐ€์ค‘๋ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„์€ "์ž˜์ƒ๊น€"์ด ์•„๋‹ˆ๋ผ ๋ช…ํ™•์„ฑ์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฆ„์€ "์ž˜์ƒ๊น€"์ด ์•„๋‹ˆ๋ผ ๋ช…ํ™•์„ฑ์„ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋“ค๋ฆฌ๋Š” ์ด๋ฆ„์€ ๋ช…ํ™•์„ฑ ๋ชป์ง€์•Š๊ฒŒ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

Minecraft๋ฅผ ํ”Œ๋ ˆ์ดํ•˜๋Š” ๋™์•ˆ "๋‚˜๋Š” ์ƒ ์‡ ๊ณ ๊ธฐ ํ•ญ๋ชฉ์„ ์–ป๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ์†Œ ๊ฐœ์ฒด๋ฅผ ์ฃฝ์ธ ๋‹ค์Œ ํ™”๋กœ ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”๋ฆฌ๋œ ์‡ ๊ณ ๊ธฐ ํ•ญ๋ชฉ์œผ๋กœ ๋ฐ”๊ฟ€ ๊ฒƒ์ž…๋‹ˆ๋‹ค"๋ผ๊ณ  ๋งํ•œ ๊ฒƒ์„ ์ƒ์ƒํ•ด ๋ณด์‹ญ์‹œ์˜ค.

์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๊ณ  ๋งํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์ผ์น˜ํ•˜๋Š” ์ฝ”๋“œ๋Š” ๋งค์šฐ ์ข‹์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฒœ์—ฐ ๊ธฐ๋ฐ˜(์†Œ, ์ƒ์‡ ๊ณ ๊ธฐ, ํ™”๋กœ)๊ณผ ๋ช…ํ™•ํ•œ ์ ‘๋ฏธ์‚ฌ(๊ฐœ์ฒด, ์•„์ดํ…œ, ๋ธ”๋ก)๋ฅผ ๋™์‹œ์— ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ ์€ ์ ‘๋ฏธ์‚ฌ๊ฐ€ ํ•„์š” ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์†Œ๊ฐ€ ์‹ค์ฒด์ด๊ณ  ์‡ ๊ณ ๊ธฐ๊ฐ€ ํ’ˆ๋ชฉ์ด๋ผ๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ์•„๋ฌด๋„ "์†Œ ๊ฐœ์ฒด" ๋˜๋Š” "์‡ ๊ณ ๊ธฐ ํ•ญ๋ชฉ"์ด๋ผ๊ณ  ๋งํ•˜์ง€ ์•Š๋Š”๋ฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ/์ฝ์„ ๋•Œ ์™œ ๊ทธ๋ ‡๊ฒŒ ๋งํ•˜๊ณ /์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์—ฌ์ „ํžˆ ItemEntity ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, Item ์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์œ ์ผํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ Item -> ItemType ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋™์˜ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๊ฒŒ์ž„์— ์žˆ๋Š” ์•„์ดํ…œ์˜ ์ „๋‹จ ์–‘์œผ๋กœ ์ธํ•ด ํ›จ์”ฌ โ€‹โ€‹๋” ํฐ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์˜ต์…˜์€ ์ด๋ฆ„์ด ๋ชจํ˜ธํ•˜์ง€๋งŒ ์ด๋ฆ„์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ช…ํ™•ํžˆ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ItemEntity -> DroppedItem , ThrownSnowballEntity ๊ฐ€ ์žˆ๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์†Œ๊ฐ€ ์‹ค์ฒด์ด๊ณ  ์‡ ๊ณ ๊ธฐ๊ฐ€ ํ’ˆ๋ชฉ์ด๋ผ๋Š” ๊ฒƒ์„ ์••๋‹ˆ๋‹ค. ์•„๋ฌด๋„ "์†Œ ๊ฐœ์ฒด" ๋˜๋Š” "์‡ ๊ณ ๊ธฐ ํ•ญ๋ชฉ"์ด๋ผ๊ณ  ๋งํ•˜์ง€ ์•Š๋Š”๋ฐ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ/์ฝ์„ ๋•Œ ์™œ ๊ทธ๋ ‡๊ฒŒ ๋งํ•˜๊ณ /์ฝ์–ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์œ ์ผํ•œ ๋‹ค๋ฅธ ์˜ต์…˜์€ ์†”๋ฃจ์…˜์— ๊ด€๊ณ„์—†์ด ์ผ๊ด€์„ฑ์ด ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋‹ค๋ฅธ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์˜ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ํด๋ž˜์Šค์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Item ๊ธฐ๋ณธ ํด๋ž˜์Šค์˜ ์ด๋ฆ„์€ minecraft:item ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ „์ฒด ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(๋˜๋Š” ํ•ด๋‹น ํ•˜์œ„ ํด๋ž˜์Šค)๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ™•์‹คํžˆ ๊ทธ๋ ‡๊ฒŒ ๋ช…๋ช…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ItemEntity ์—”ํ„ฐํ‹ฐ ํด๋ž˜์Šค๋Š” ํ•ด๋‹น ์—”ํ„ฐํ‹ฐ ์œ ํ˜•์ด minecraft:entity_type ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— minecraft:item ๋กœ ๋“ฑ๋ก๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ™•์‹คํžˆ ๊ทธ๋ ‡๊ฒŒ ๋ช…๋ช…๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ Item ํด๋ž˜์Šค๋Š” Item ๋กœ ์œ ์ง€๋˜์ง€๋งŒ ItemEntity ํด๋ž˜์Šค๋„ Item ๋ฉ๋‹ˆ๋‹ค.

์ด ํŠน์ • ๋ฌธ์ œ๊ฐ€ ํ›„์ž์˜ ํด๋ž˜์Šค ์ด๋ฆ„์„ DroppedItem ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•ด๊ฒฐ๋œ ๊ฒฝ์šฐ ๋” ์ด์ƒ ์‹๋ณ„์ž์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ํ˜„์žฌ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ฝ˜ํ…์ธ  ํด๋ž˜์Šค์˜ ํ•„๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๊ณ  ํด๋ž˜์Šค ์ด๋ฆ„์— ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ž๋™ ์‹œ์Šคํ…œ์ด ์žˆ๋‹ค๋Š” ์ ์—์„œ ์‹๋ณ„์ž๊ฐ€ ํด๋ž˜์Šค ์ด๋ฆ„์— ๋Œ€ํ•œ ์ข‹์€ ํ‘œํ˜„์ด๋ผ๋Š” ์ถฉ๋ถ„ํ•œ ๋ฏฟ์Œ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ญ์ œํ•œ๋‹ค๋Š” ์ „์ฒด ์•„์ด๋””์–ด๋Š” ์ด์ „์— ์–ธ๊ธ‰ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ Java ํ‘œ์ค€๊ณผ๋„ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(List ๋˜๋Š” Map ๊ตฌํ˜„ ์ฐธ์กฐ).

์šฐ๋ฆฌ๊ฐ€ Item -> ItemType ํ•˜์ง€ ์•Š๋Š” ํ•œ ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋™์˜ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๊ฒƒ์€ ๊ฒŒ์ž„์— ์žˆ๋Š” ์•„์ดํ…œ์˜ ์ „๋‹จ ์–‘์œผ๋กœ ์ธํ•ด ํ›จ์”ฌ โ€‹โ€‹๋” ํฐ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

Mojang์ด ํ•ญ๋ชฉ์„ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“œ๋Š” ์ฆ‰์‹œ ItemType ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜๋ฏ€๋กœ ์ง€๊ธˆ์€ ๋ณด๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด๋Š” minecraft:x_type ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๊ด€ํ•œ ์‹๋ณ„์ž ๋ฐ ํ˜„์žฌ ๊ทœ์น™๊ณผ ์—ฌ์ „ํžˆ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ItemEntity -> DroppedItem , ThrownSnowballEntity ๊ฐ€ ์žˆ๋Š” ๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์‹œ ํ•œ ๋ฒˆ ์ด๊ฒƒ์€ Java ํ‘œ์ค€ ๋ฐ Yarn ํ‘œ์ค€๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹๋ณ„์ž๊ฐ€ minecraft:snowball ์ž„์„ ๊ณ ๋ คํ•˜๋”๋ผ๋„ ThrownSnowballEntity ์— ๋Œ€ํ•œ ํ† ๋ก ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค.

์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ญ์ œํ•œ๋‹ค๋Š” ์ „์ฒด ์•„์ด๋””์–ด๋Š” Java ํ‘œ์ค€๊ณผ๋„ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(List ๋˜๋Š” Map ๊ตฌํ˜„ ์ฐธ์กฐ).

HashMap ๋Š” ํ•ด์‹œ๊ฐ€ ์•„๋‹ˆ๋ผ ํ•ด์‹œ[๊ธฐ๋ฐ˜] ๋งต์ด๊ณ  ArrayList ๋Š” ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ผ ๋ฐฐ์—ด[๊ธฐ๋ฐ˜] ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. CowEntity ๋Š” ์†Œ์ž…๋‹ˆ๋‹ค. '์—ฐํ•„'์ด ์•„๋‹Œ '์—ฐํ•„ ๊นŽ์ด'๋ผ๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— '์†Œ'๊ฐ€ ์•„๋‹Œ '์†Œ ๋™๋ฌผ'์ด๋ผ๊ณ  ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.

Java AWT๋ฅผ ๋ณด์‹ญ์‹œ์˜ค. ๋ชจ๋“  ๊ฒƒ์ด Component ํ™•์žฅ๋˜์ง€๋งŒ Button ๋Œ€์‹  ButtonComponent , Scrollbar ๋Œ€์‹  ScrollbarComponent ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ์„ ๋”ฐ๋ฅด๋ฉด Java ํ‘œ์ค€์—์„œ๋Š” ์ ‘๋ฏธ์‚ฌ๋ฅผ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŠน์ • ๋ฌธ์ œ๊ฐ€ ํ›„์ž์˜ ํด๋ž˜์Šค ์ด๋ฆ„์„ DroppedItem ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๊ฒƒ์œผ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•ด๊ฒฐ๋œ ๊ฒฝ์šฐ ๋” ์ด์ƒ ์‹๋ณ„์ž์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹๋ณ„์ž๋ฅผ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด ํด๋ž˜์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜์ง€๋งŒ ์™œ ์™„์ „ํžˆ ์ผ์น˜์‹œ์ผœ์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. Dropped ์™€ ๊ฐ™์€ ๋ช…ํ™•ํ•œ ๋‹จ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

"๋‚ด OCD๋ฅผ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์‹๋ณ„์ž๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ผ์น˜"์™€ "์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ์ด๋ฆ„์„ ๊ฐ€์ง" ์ค‘์—์„œ ๋‘ ๋ฒˆ์งธ๋ฅผ ์„ ํƒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Mojang์ด ํ•ญ๋ชฉ์„ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“œ๋Š” ์ฆ‰์‹œ ItemType ๊ฐ€ ์žˆ์„ ๊ฑฐ๋ผ ํ™•์‹ ํ•˜๋ฏ€๋กœ ์ง€๊ธˆ์€ ๋ณด๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

Item -> ItemType ( ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Block -> BlockType )๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•˜๋ฉฐ ๊ฐ€๋Šฅํ•œ ํ•œ ๋นจ๋ฆฌ ์™„๋ฃŒ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Item ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์‹ฌ์ง€์–ด ๋ชจ๋”ฉ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์•„์ดํ…œ ํด๋ž˜์Šค์˜ ํ•„๋“œ์— ์•„์ดํ…œ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ์‹ค์ˆ˜๋ฅผ ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

minecraft:x_type ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๊ด€ํ•œ ์‹๋ณ„์ž ๋ฐ ํ˜„์žฌ ๊ทœ์น™๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ทธ ํ˜‘์•ฝ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ๊ฐ ๊ฐœ๋ณ„ ํ•ญ๋ชฉ ๋ฐ ๋ธ”๋ก์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ํ•ญ๋ชฉ ์œ ํ˜• ๋ฐ ๋ธ”๋ก ์œ ํ˜•์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. _type ์ ‘๋ฏธ์‚ฌ์˜ ๋ณ€ํ˜•์€ Mojang์˜ ๋ถˆ์ผ์น˜์ด๋ฉฐ ์‹๋ณ„์ž์˜ ์˜คํƒ€๋ฅผ ๋ณต์‚ฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณต์‚ฌํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์†”์งํžˆ Rune์€ ๊ธฐ์ˆ  ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋‚˜์˜ค๋Š” "๋‚˜๋Š” ์†Œ ๊ฐœ์ฒด๋ฅผ ์ฃฝ์ด๋Ÿฌ ๊ฐ€๊ฒ ๋‹ค"๋Š” ๋ง์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

Minecraft๋ฅผ ์ž์—ฐ์–ด์ฒ˜๋Ÿผ ์ฝ๊ฒŒ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. "๋‚˜๋Š” ์ผ๋ถ€ ๋‚˜๋ฌด ํŠน์ง•์„ ์ž˜๋ผ๋‚ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค"๋Š” ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ์ž˜ ์ฝํžˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. TreeFeature ์„ Tree ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์•„๋‹ˆ! ๊ทธ๋Ÿฌ๋‚˜ "์•”์†Œ ๊ฐœ์ฒด"๋Š” ์‹ค์ œ๋กœ ์ž˜ ์ฝ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ "ํ•œ ์žฅ์†Œ์— ๋งŽ์€ ์ –์†Œ ์—”ํ„ฐํ‹ฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ์ง€์—ฐ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค"์™€ ๊ฐ™์€ ์ปจํ…์ŠคํŠธ์—์„œ.

TreeFeature ์„ Tree ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์˜ˆ, ์—ฌ๊ธฐ์„œ Feature ๋ผ๋Š” ๋‹จ์–ด๋Š” ์ค‘๋ณต๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ๋Šฅ ํด๋ž˜์Šค์˜ ๋์— Generator ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹ค์ œ๋กœ ๊ธฐ๋Šฅ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ƒ์„ฑ๊ธฐ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. TreeGenerator extends FeatureGenerator ์™€ ๊ฐ™์€ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•œ ์žฅ์†Œ์— ๋งŽ์€ ์†Œ ๊ฐœ์ฒด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„๊ฐ€ ์ง€์—ฐ๋ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๋งํ•˜๋Š” ์ด์œ ๋Š” ์„œ๋ฒ„์— ๋’ค์ฒ˜์ง€๋Š” ๊ฐœ์ฒด๊ฐ€ ์†Œ๋ผ๋Š” ์‚ฌ์‹ค์„ ๊ฐ•์กฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ๊ฐ•์กฐ๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์ผ๋ฐ˜ ๋ชจ๋“œ(์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ชจ๋“œ๊ฐ€ ์•„๋‹˜)์—์„œ ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ "์†Œ ์œ ํ˜•์˜ ๊ฐœ์ฒด ์ƒ์„ฑ"์ด ์•„๋‹ˆ๋ผ "์ผ๋ถ€ ์†Œ ์ƒ์„ฑ"์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๊ณ  ๋‹ค์Œ์„ ์ž‘์„ฑํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์‹์œผ๋กœ ๋‚ด ์ฝ”๋“œ.

๊ทธ๋Ÿฌ๋‚˜ ๊ทธ๋“ค์€ ์†Œ๊ฐ€ ์•„๋‹ˆ๋ผ ์†Œ ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค. ์†Œ์˜ ๊ฐœ๋…์€ ์ž์—ฐ์–ด์—๋งŒ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. CowEntity๋Š” ์†Œ์˜ ์ „์ฒด ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ ๊ตฌ์ฒด์ ์œผ๋กœ ์†Œ _entity_๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ –์†Œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„(์˜ˆ: ์ –์†Œ)๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋Š” ํ•ด๋‹น ํด๋ž˜์Šค์— ๋„ฃ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์ž์ „๊ฑฐ๋Š” ๊ทธ๋ƒฅ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค ...

Entity ์ ‘๋ฏธ์‚ฌ๋Š” "์ด ํด๋ž˜์Šค๊ฐ€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"์— ๋Œ€ํ•ด ์˜์‹ฌํ•˜์ง€ ์•Š๋„๋ก ๋ช…ํ™• ํ•ฉ๋‹ˆ๋‹ค. Minecraft์˜ ๋งฅ๋ฝ์—์„œ Entity ๋Š” ๋ถ„๋ช…ํžˆ Thing ์˜ ๋™์˜์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๋˜ํ•œ ๋นŒ์–ด๋จน์„ ๋ชจ๋”๋ฅผ ์œ„ํ•ด ์ด๋ ‡๊ฒŒ ํฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์—…๋ฐ์ดํŠธ๊ฐ€ ์˜ฌ ๋•Œ ์ด๋ฏธ ์ถฉ๋ถ„ํžˆ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ๋ˆ„๊ตฐ๊ฐ€ Entity ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‹ซ์–ดํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—… ๊ณต๊ฐ„์„ ๋ง์ณ ๋ชจ๋”๋ฅผ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ™•์‹คํžˆ, ๋ณ€๊ฒฝํ•˜๊ณ  ์ „ ์„ธ๊ณ„๊ฐ€ ๋ถˆํƒ€๋Š” ๊ฒƒ์„ ์ง€์ผœ๋ณด์‹ญ์‹œ์˜ค. ์ด์ œ 500 ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ชจ๋“œ๊ฐ€ ์ปดํŒŒ์ผ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  migrateMappings๊ฐ€ ์žˆ์ง€๋งŒ ์™œ ๊ทธ๋ ‡๊ฒŒ ์˜๋ฏธ ์—†๋Š” ๋ณ€๊ฒฝ์„ ์œ„ํ•ด ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

์ด ๋ฌธ์ œ๋Š” 1๋…„ ๋™์•ˆ ๊ณต๊ฐœ๋˜์—ˆ์œผ๋ฉฐ ์ ์šฉ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํ•œํŽธ ์‚ฌ๋žŒ๋“ค์€ Entity ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ณ‘ํ•ฉ๋˜์–ด ํ˜„์žฌ์˜ ๋ชจ๋“  ๋ชจ๋“œ ์ž‘์—… ๊ณต๊ฐ„์„ ํญ๋ฐœ์‹œํ‚ค๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ๋งค์šฐ ํ™”๊ฐ€ ๋‚ฌ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ok ์ž์—ฐ์–ด๋Š” ๋ฉ‹์ง€๊ณ  ๋ชจ๋“  ๊ฒƒ์ด์ง€๋งŒ ์ด๊ฒƒ์€ ๊ฒŒ์ž„ ์—”์ง„์—๋งŒ ํ•ด๋‹นํ•˜๋ฏ€๋กœ ์†Œ์„ค์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ฝ์œผ๋ ค๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋„ ์•„๋‹ˆ๋ผ๊ณ  ๋งํ•ด์•ผ๊ฒ ๋‹ค. ๋ชจํ˜ธํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค(์•ž์„œ ์–ธ๊ธ‰ํ•œ ItemEntity ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ArrowEntity ๋˜๋Š” TridentEntity ).

๋‚˜๋Š” ์ด ์•„์ด๋””์–ด์˜ ํŒฌ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์‹ค์ œ๋กœ ๊ทธ๊ฒƒ์ด ๊ตฌ์–ด์ฒด๋กœ ์–ด๋–ป๊ฒŒ ๋งํ–ˆ๋Š”์ง€์— ๋‹ฌ๋ ค ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›์‚ฌ ์ „์ฒด์—์„œ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฉฐ ์—”ํ‹ฐํ‹ฐ์—์„œ๋งŒ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ด์ƒํ•ด ๋ณด์ด๋ฉฐ ๋ชจ๋“  ๊ณณ(๋ธ”๋ก ๋ฐ ํ•ญ๋ชฉ)์—์„œ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ์ „ํ˜€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํˆฌํ‘œ๋ฅผ ๋ณด๋ฉด ๋ช…ํ™•ํ•ด ๋ณด์ด์ฃ ?

LivingEntity : Living ๋˜๋Š” Entity : ์—†์Œ, ์ ‘๋ฏธ์‚ฌ๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„๊ณผ ์ผ๊ด€์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. CowEntity ๊ฐ€ ์žˆ๋Š” @l-Luna๋Š” ๋‹ค์Œ์„ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. a Cow๋Š” CowEntity , Cow ๋Š” ์—”ํ‹ฐํ‹ฐ, ํ•ด๋‹น ๋ฐฉ์šธ ๋ฐ ๋ชจ๋ธ/๋ Œ๋”๋Ÿฌ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. Entity ์ ‘๋ฏธ์‚ฌ๋Š” ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ํ”ผํ•ด๋ฅผ ์ฃผ์ง€ ์•Š์œผ๋ฉฐ BlockEntity ๋„ ์‚ฌ์šฉ๋œ ์ ‘๋ฏธ์‚ฌ๋ผ๋Š” ์‚ฌ์‹ค๊ณผ ํ•จ๊ป˜ ๋งŒ์ผ์˜ ๊ฒฝ์šฐ์— ๋Œ€๋น„ํ•˜์—ฌ ์„ค๋ช…์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ๋‚ด 2 ์„ผํŠธ.

LivingEntity: Living ๋˜๋Š” Entity:

๋‚˜๋Š” LivingEntity ๋ฅผ "์‚ด์•„ ์žˆ๋Š” ์กด์žฌ"๋ผ๊ณ  ๋ถ€๋ฅด๋ฏ€๋กœ ๊ทธ ์ด๋ฆ„์€ ๊ทธ๋Œ€๋กœ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” CowEntity ๋ฅผ "์†Œ"๋ผ๊ณ  ๋ถ€๋ฅด๋ฏ€๋กœ ๊ทธ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ๋ฌธ์ œ๋Š” ์„œ๋ฒ„ ์ธก ์ „์šฉ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ธก ์ „์šฉ API์—์„œ CowEntity Cow ๋ผ๋Š” ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์€ ๋ง ๊ทธ๋Œ€๋กœ ์•”์†Œ์˜ ์ „์ฒด ๊ฐœ๋…์ด๋ฏ€๋กœ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„.

๊ทธ๋Ÿฌ๋‚˜ ์—ฌ๊ธฐ์—๋„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. CowEntity Cow ๋ผ๋Š” ์ด๋ฆ„์€ ์†Œ์˜ ์†์„ฑ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐœ์ฒด์ธ Entity ์˜ํ•ด ์†Œ๊ฐ€ ์ •์˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ช…๋ฐฑํžˆ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์„ธ๊ณ„ ๋ฐ ๊ทธ ๋ชฉํ‘œ์™€ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋ธ๊ณผ ๋ Œ๋”๋Ÿฌ์—

CowEntity Cow ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋ฉด ํด๋ž˜์Šค ์˜๋ฏธ์˜ ํฐ ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๊ณ  ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์–€์ด ์„œ๋ฒ„์ธก ์ „์šฉ์ด๋ฉด ๊ดœ์ฐฎ์„ ํ…๋ฐ ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„œ๋ฒ„์—์„œ๋„ CowEntity ๋Š” ๋ฐ์ดํ„ฐ ํŒฉ์— ๋ณ„๋„๋กœ ์ €์žฅ๋œ ์ „๋ฆฌํ’ˆ ํ…Œ์ด๋ธ”์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ –์†Œ๋ฅผ ์™„์ „ํžˆ ๋‚˜ํƒ€๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์œผ๋กœ ์ด์•ผ๊ธฐ ํ•  ๋•Œ ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๋งํ•  ์•Š์Šต๋‹ˆ๋‹ค CowEntity ๋Œ€์‹  Cow . ์šฐ๋ฆฌ๋Š” ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด ํŠœํ† ๋ฆฌ์–ผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ธฐ์ˆ ์ ์ธ ๋งคํ•‘ ์„ธํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, ์ผ๋ฐ˜์ ์ธ ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด์—์„œ ChestBlockEntity ๋ฅผ ์ƒ์ž๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์ธ ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ChestBlock ๋ฅผ ํ˜ผ๋™ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ๋ชจ๋“œ ์ œ์ž‘์ž…๋‹ˆ๋‹ค. ChestBlockEntity ๋ฐ ์ƒ์ž ์ „๋ฆฌํ’ˆ ํ…Œ์ด๋ธ”. ์˜ˆ, ๋‹ค๋ฅธ ํ•ญ๋ชฉ์˜ ๊ฒฝ์šฐ ์ ‘๋ฏธ์‚ฌ๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ( LivingEntity , Entity , ItemEntity ), IMO์— ๋Œ€ํ•ด ์ค‘๋ณต๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค LivingEntity ๋ฌธ๋ฒ•์ ์œผ๋กœ ์ •ํ™•ํ•œ ๊ฒƒ๋ณด๋‹ค ๊ธฐ์ˆ ์ ์ธ ์ •๋ณด์—์„œ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด ๋ฐ˜๋Œ€ํ•˜๋ฏ€๋กœ ์ด๊ฒƒ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

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

๊ด€๋ จ ๋ฌธ์ œ

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

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

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

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

Runemoro picture Runemoro  ยท  4์ฝ”๋ฉ˜ํŠธ