1.16-rc1+build.12
ํ์ฌ ServerWorld
getEntities
์ ๋ํด 5๊ฐ์ง(!) ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
EntityView#getEntities(<strong i="10">@Nullable</strong> Entity, Box)
๋ ์ฒซ ๋ฒ์งธ ์ธ์์ ํญ๋ชฉ์ ์ ์ธํ ์์์ ๋ชจ๋ ํญ๋ชฉ์ ๊ฐ์ ธ์ต๋๋ค.EntityView#getEntities(<strong i="14">@Nullable</strong> Entity, Box, Predicate)
๋ ์ ์ด์๋ ์ผ์นํ๋ ์ฒซ ๋ฒ์งธ ์ธ์์ ํญ๋ชฉ์ ์ ์ธ ํ๊ณ ์์์ ๋ชจ๋ ํญ๋ชฉ์ ๊ฐ์ ธ์ต๋๋ค.ServerWorld#getEntities(<strong i="18">@Nullable</strong> EntityType, Predicate)
๋ ์ฒซ ๋ฒ์งธ ์ธ์์ ์ ํ ๋ฐ ์ ์ด์ ์ผ์นํ๋ ์ ์ธ๊ณ์ ๋ชจ๋ ์ํฐํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.World#getEntities(<strong i="22">@Nullable</strong> EntityType, Box, Predicate)
๋ ์ฒซ ๋ฒ์งธ ์ธ์์ ์ ํ ๋ฐ ์ ์ด์ ์ผ์น ํ๋ ์์์ ๋ชจ๋ ์ํฐํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.EntityView#getEntities(Class, Box, Predicate)
๋ ์ฒซ ๋ฒ์งธ ์ธ์์ ํด๋์ค ๋ฐ ์ ์ด์ ์ผ์น ํ๋ ์์์ ๋ชจ๋ ์ํฐํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.์ด๊ฒ์ด ์ ๋ฌธ์ ์ ๋๊น?
null
๋ฅผ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ก ์ฌ์ฉํ์ฌ ์ธ ๊ฐ์ ์ธ์ ํ์์ ํธ์ถํ ๋ ํธ์ถ์ด ๋ชจํธํ๊ธฐ ๋๋ฌธ์ ํธ์ถ ์ฌ์ดํธ์์ null
๋ฅผ ์บ์คํ
ํด์ผ ํฉ๋๋ค.Class
์บ์คํ
ํ๋ฉด ๋ฐํ์์ NPE๊ฐ ๋ฉ๋๋ค. btw, ๊ทธ ๋ฐฉ๋ฒ์ null-safeํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค.)์ ์ ๋ ํด๋ฒ:
Entity
ํ๋ ์ ํ๋ผ๋ฏธํฐ๋ก์ getEntitiesExcept
.getEntities(Class, ...)
์ getEntitiesOfClass
๋๋ ์ด์ ์ ์ฌํ ๊ฒ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.Box
, ๋ ๋ชฐ๋ผ,๋ก๋ฅผ getAllEntities
.WorldChunk
๋ฉ์๋์ ์ ํํ์ญ์์ค. ์ด ๋ชจ๋ ๊ฒ์ด ์์๋ฉ๋๋ค.getEntitiesExcept๋ ์๋ฏธ๊ฐ ์์ต๋๋ค. ์ ๊ณต๋ ์ํฐํฐ๊ฐ ๋ค๋ฅธ ์ํฐํฐ์ ๋ํ ๊ฒ์์ ์ํํ๋ ์ํฐํฐ์ด๊ธฐ ๋๋ฌธ์ ์ํฐํฐ ๋งค๊ฐ๋ณ์๊ฐ ์ ๊ณต๋ฉ๋๋ค.
๊ทธ๋๋ ๊ทธ๊ฒ์ด ๋ฉ์๋๊ฐ ํ๋ ์ผ์ ๋๋ค. ์ ๋ฌํ ์กฐ๊ฑด์ ์ ์ธํ๊ณ ๋ค๋ฅธ ์กฐ๊ฑด์ ํต๊ณผํ๋ ๋ชจ๋ ์ํฐํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ฐธ๊ณ ๋ก ์ฒซ ๋ฒ์งธ ์ธ์ Entity
ํ์์ ๋ํ ๋๋ถ๋ถ์ ํธ์ถ์ null
๋๋ this
ํฉ๋๋ค. getEntitiesExcept(this, ...
์ ์ค์บ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. (๊ทธ๋ฆฌ๊ณ ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ ์ด๋ฏธ Yarn์์ except
์
๋๋ค.)
๋ค๋ฅธ ์ด๋ฆ์ ์ง์ ํ๋ฉด ์ฉ๋์ ์ฉ๋๊ฐ ๋ ๋ช ํํด์ง๋๋ค.
๊ทธ๊ฒ๋ค์ ๋ชจ๋ ๊ฐ์ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ธ๊ณ์์ ์ํฐํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ฃผ์ด์ง ๊ฒฝ์ฐ ์์์ ์ํฐํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ์ฃผ์ด์ง ๊ฒฝ์ฐ ๊ฒ์์ ์ํฐํฐ๋ฅผ ์ ์ธํ๊ณ ์ฃผ์ด์ง ๊ฒฝ์ฐ ์ ์ด๋ฅผ ์ ์ฉํฉ๋๋ค. ๊ฐ๋จํ์ง๋ง getEntities
๊ฐ ์ฌ๋ฐ๋ฅธ ์ด๋ฆ์
๋๋ค.
๋ชจํธํ ํตํ ๋ด์ฉ์ ๋งค์ฐ ์ฑ๊ฐ์๋ค.
๋ช
ํํ๊ฒ ํ๊ธฐ ์ํด getEntitiesOf
์ ํ/ํด๋์ค๋ฅผ ์ง์ ํ๋ ์ด๋ฆ์ ๋ฐ๊ฟ์ผ ํฉ๋๋ค.
์ํฐํฐ๋ฅผ ์ฌ์ฉํ๋ ํญ๋ชฉ์ ์ด๋ฆ์ getSurroundingEntities
์ด๊ณ ์ ํ์ ์ฌ์ฉํ๋ ํญ๋ชฉ์ ์ด๋ฆ์ getMatchingEntities
๋๋ getEntitiesByType
์ด๊ฒ์ ์ ๋ง ์ ์ฃผ์
๋๋ค. getEntities(Type, Entity, Box, Predicate)
ํธ์ถํ๋ ๋ฉ์๋์ ๋ณํ์ผ ๋ฟ์
๋๋ค.
์ฌ๊ธฐ์ Type์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ์ ํ์ผ๋ก, ์ํฐํฐ๋ null
๋ก ๊ธฐ๋ณธ ์ค์ ๋ ์ ์์ผ๋ฉฐ, ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌดํ๋๋ก, ์ ์ด๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํญ์ true๋ก ์ค์ ๋ ์ ์์ต๋๋ค. ์ด 5๊ฐ์ง ๋ฐฉ๋ฒ์ ์ด๋ฆ์ ๋ค๋ฅด๊ฒ ์ง์ ํ ์ด์ ๊ฐ ์ ํ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ทธ๋๋ ๊ทธ๊ฒ์ด ๋ฉ์๋๊ฐ ํ๋ ์ผ์ ๋๋ค. ์ ๋ฌํ ์กฐ๊ฑด์ ์ ์ธํ๊ณ ๋ค๋ฅธ ์กฐ๊ฑด์ ํต๊ณผํ๋ ๋ชจ๋ ์ํฐํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
์ฐธ๊ณ ๋ก ์ฒซ ๋ฒ์งธ ์ธ์
Entity
ํ์์ ๋ํ ๋๋ถ๋ถ์ ํธ์ถ์null
๋๋this
ํฉ๋๋ค.getEntitiesExcept(this, ...
์ ์ค์บ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. (๊ทธ๋ฆฌ๊ณ ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ ์ด๋ฏธ Yarn์์except
์ ๋๋ค.)