PatchOperationSequence - solaris0115/RimWorldModGuide GitHub Wiki
์ผ๋ จ์ ํจ์น ๊ณผ์ ๋ค์ ์์ฐจ์ ์ผ๋ก ์คํํฉ๋๋ค.
์๋์ ์์ ๋ฅผ ๋ณด๊ธฐ์ success์ ๋ํด ์ค๋ช
ํ๋ฉด ๋ชจ๋ ํจ์น๋ช
๋ น์ ํด๋น ์์
์ ๋ง์น๊ณ ์ฑ๊ณต ์คํจ์ฌ๋ถ๋ฅผ ๋ฐํํฉ๋๋ค.
๋ง์ฝ ๋๊น์ง ๋ง๋ฌด๋ฆฌ๊ฐ ์ ๋์๋ค๋ฉด True
๋ฅผ ๋ฐํํ๊ณ ๊ฒฝ๋ก์ ๋์์ด ์๊ฑฐ๋ ํจ์น๋ฅผ ์คํจํ๋ฉด False
๋ฅผ ๋ฐํํฉ๋๋ค.
์ํ์ค๋ ๊ทธ๋ฌํ ์ฑ๊ณต์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ํจ์น๋ช
๋ น ๋ฆฌ์คํธ์์ ๋ค์ ํจ์น๋ฅผ ์ ์ฉํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
๋ง์ฝ ์ค๊ฐ์ false๋ฅผ ๋ฐํํ๋ ๋ช
๋ น์ด ์์ ๊ฒฝ์ฐ ํด๋น ์ง์ ์์ ์ค๋จํ๊ณ ์ํ์ค ํจ์น๋ฅผ ์ข
๋ฃํฉ๋๋ค.
<Operation Class="PatchOperationSequence">
<success>Always</success>
<operations>
<li Class="PatchOperationTest">
<xpath>*/ThingDef[defName = "DiningChair"]/costList</xpath>
<success>Invert</success>
</li>
<li Class="PatchOperationAdd">
<xpath>*/ThingDef[defName = "DiningChair"]</xpath>
<value>
<costList>
<Steel>15</Steel>
</costList>
</value>
</li>
</operations>
</Operation>
์ ์์ ์์๋ DiningChair์ ๊ณ ์ ์ฌ๋ฃ์ธ ๋
ธ๋์ ์กด์ฌ ์ ๋ฌด๋ฅผ ํ์ธ ํ ์๋ค๋ฉด ์๋์ ํจ์น์์
์ ์คํํ๋ ๋ช
๋ น์
๋๋ค.
๋จผ์ PatchOperationSequence์ operations์๋ 2๊ฐ์ ๋ช
๋ น์ด ์กด์ฌํฉ๋๋ค.
PatchOperationTest์ PatchOperationAdd
PatchOperationTest
์์ xpath
(๊ฒฝ๋ก)์์ ๋
ธ๋๊ฐ ์กด์ฌํ๋์ง ํ์ธ ํ ์กด์ฌํ์ง ์๋๋ค๋ฉด false
๋ฅผ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
์ด๋ PatchOperationTest
์ success
๋ Invert
๊ฐ์ผ๋ก ์ค์ DiningChair
์ ์์ <costList>
๋
ธ๋๊ฐ ์กด์ฌํ์ง ์์ผ๋
false
์ ๋ํ Invert
(๋ฐ์ )๊ฐ์ธ true
๊ฐ ๋๊ณ ๋ฐ๋ผ์ ์๋์ PatchOperationAdd
๋ช
๋ น์ด ๊ทธ๋๋ก ์คํ๋ฉ๋๋ค.
๋ฌผ๋ก PatchOperationAdd
๋ช
๋ น๋ง์ ์ด์ฉํด ๋ฐ๋ก ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ๋ ์์ง๋ง
์์ ๊ฐ์ด ํ๋ ์ด์ ๋ ๋ค๋ฅธ ๋ชจ๋์์ ์ถ๊ฐํ๊ฑฐ๋ ํน์ ์์ ์ฑ์ ์ํด ์กด์ฌ ์ ๋ฌด๋ฅผ ํ๋ฒ ๊ฒ์ฌํ๊ณ ์ถ๊ฐ๋ฅผ ํจ์ผ๋ก์จ
์ค๋ฅ๋ก๋ถํฐ ์์ ํด์ง ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค.