์ปจํ ์ด๋๋ ์ธ๋ฒคํ ๋ฆฌ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด ํด๋์ค๋ฅผ ์ธ๋ฒคํ ๋ฆฌ ์ ์ฉ์ผ๋ก ์ฐฉ๊ฐํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ง๋ง ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ทธ๋์ Container
๋ผ๋ ์ด๋ฆ์ ์ ์๊ฒ ์ ํ ํจ๊ณผ๊ฐ ์์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ์ผ๋์ ๋๊ณ SharedGuiState๋ ์ต๊ณ ์ ์ด๋ฆ์ด ์๋ ์ ์์ต๋๋ค. ๋ชจ๋ ํน์ ์ธ์คํด์ค์ ์ด๋ฆ์ smurf-name์ผ๋ก ์ง์ ํ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค. ๋ ๋์ ํจํค์ง ์ด๋ฆ์ผ๋ก ๋ง๋ค๋ ค๋ฉด ๋์ net.minecraft.guistate.GuiState๋ฅผ ์ฌ์ฉํ์ธ์. ๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ฒด์ ๋ชฉ์ ์ ๋ํด ์ข์ ํฉ์์ ๋๋ฌํ ์ ์๋ค๋ฉด ํจ์ฌ ๋ ์ ํฉํ ๊ฒ์ ์ฐพ์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋์ UiData ๋๋ UserInterfaceData?
SyncedGui
?
@therealfarfetchd ๋ ์ผ๋ฐ GUI๊ฐ ์๋ ๊ฒ์ด ์ค์ํ๋ฏ๋ก SyncedInterface
๋๋ ๊ธฐํ
19w02a Mojang์ด "createMenu"๋ผ๊ณ ๋งํฉ๋๋ค.
๋์ค์ฝ๋์ #yarn ์ฑ๋์์:
์ฐ๋ฆฌ๊ฐ ์๊ณ ์๋ Mojang ์ด๋ฆ์ ์ฌ์ฉํ๋ ์ ์ฑ
๋๋ฌธ์ ๊ถ๊ทน์ ์ผ๋ก Menu/Screen
๋ก ์ด๋ํด์ผ ํ ํ์๊ฐ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ด Mojang ์ด๋ฆ์ด๋๋ผ๋ "๋์ ์ด๋ฆ์ ๋ ๋์ ์ด๋ฆ์ผ๋ก ๋ฐ๊พธ์ง ๋ง์ญ์์ค"๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
Container
์ ์ฃผ์ ๋ฌธ์ ๋ ๊ทธ๊ฒ์ด voldename์ด๋ผ๋ ๊ฒ์
๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ฅผ ๊ณค๊ฒฝ์ ๋น ๋จ๋ฆด ์ ์๊ธฐ ๋๋ฌธ์ Mojang ์ด๋ฆ๋ณด๋ค IMO๊ฐ ๋ ๋์ฉ๋๋ค.
Container๋ ๊ต์ฒด๊ฐ ๋ฌด์์ด๋ ์๊ด์์ด ๊ฐ์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ๊ฑฐ์ ์๊ณ voldemap์ด ์๋์๋ค๋ฉด ์์ฌ์์ Container๋ผ๋ ์ด๋ฆ์ด ์ง์ ๋์ง ์์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฉ๋ด๋ ์ข๊ณ GuiState๋ ๋ ์ข์ง๋ง ๊ฒฌ๋ ๋งํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฆ์ ๊ฝค ์์ฃผ ์ฌ์ฉ๋๋ฏ๋ก 10์๋ฅผ ๋์ง ์์์ผ ํฉ๋๋ค.
GuiState๋ ๋ณด๊ธฐ์ ๊ฐ์ฅ ์ข์ ์ด๋ฆ์ ์๋์ง๋ง ๊ทธ ๊ธฐ๋ฅ์ ๊ฐ์ฅ ์ ๋ณด์ฌ์ฃผ๋ ์ด๋ฆ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋ ๋ค๋ฅธ ์ ์ฌํ ์ต์ ์ GuiController์ ๋๋ค. ์ผ์ข ์ MVC ํจํด(Inventory = model, Gui = View, Container = Controller)์ผ๋ก ๋ณด๋ฉด ์ดํด๊ฐ ๋์ง๋ง GuiState๋ณด๋ค ์ฝ๊ฐ ๋ ๊น๋๋ค.
Gui์ ์ด๋ฆ์ด ๋ฐ๋์์ผ๋ฏ๋ก ์ด์ ScreenState ๋๋ ScreenController์ฌ์ผ ํฉ๋๋ค.
๊ธด๊ฑฐ ๋นผ๊ณ ๋ ๋ค ๋ง์ ๋ค์ด์. CartographyTableScreenController
๋ฟ๋ง ์๋๋ผ DoubleLockableScreenController
๋ฐ NameableScreenControllerProvider
๋ก ๋ง๋ฌด๋ฆฌ๋ฉ๋๋ค. ๊ทธ๋๋ ๋งค์ฐ ๋ช
ํ ํฉ๋๋ค.
์ปจํธ๋กค๋ฌ ์์ฒด๊ฐ ๊ฒ์ ์์ง์ ํฌํจ๋๊ธฐ์๋ ๋๋ฌด ์ผ๋ฐ์ ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์ด ๊ฒฝ์ฐ์๋ ์๋ฌด ๊ฒ๊ณผ๋ ์ถฉ๋ํ์ง ์์ต๋๋ค. ๋ํ ํจํค์ง๋ฅผ ์ฌ์ฉํ์ฌ ๋ณด๋ค ๊ตฌ์ฒด์ ์ผ๋ก ๋ง๋ค ์ ์์ต๋๋ค. net.minecraft.screen.controller ํจํค์ง์ ํฌํจ์ํค๋ ๊ฒ์ ์ด๋ป์ต๋๊น?
์ปจํธ๋กค๋ฌ ์งฑ์งฑ๐
์ฌ์ ํ Controller๊ฐ ๊ฐ์ฅ ์ ํํ ์ด๋ฆ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง #846์ ์ฑํํด์ผ ํ๋ ๋งค์ฐ ๊ฐ๋ ฅํ ์ด์ ๊ฐ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
Container๋ ๊ต์ฒด๊ฐ ๋ฌด์์ด๋ ์๊ด์์ด ๊ฐ์ผ ํ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ด ์๋ฏธ๊ฐ ๊ฑฐ์ ์๊ณ voldemap์ด ์๋์๋ค๋ฉด ์์ฌ์์ Container๋ผ๋ ์ด๋ฆ์ด ์ง์ ๋์ง ์์์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ฉ๋ด๋ ์ข๊ณ GuiState๋ ๋ ์ข์ง๋ง ๊ฒฌ๋ ๋งํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ฆ์ ๊ฝค ์์ฃผ ์ฌ์ฉ๋๋ฏ๋ก 10์๋ฅผ ๋์ง ์์์ผ ํฉ๋๋ค.