*알고보니 ThingDefs 하나로 추가되는것들을 정리할수있었다. (폴더구분을 딱히 안하는듯? 한글명도될지는 모르겠음)
총 4개의 폴더로 정리했다.
1. 레시피
Recipes_Meals.xml
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<RecipeDef>
<defName>CookSuperRiceMeal</defName>
<label>SuperRiceMeal 2.0</label>
<description>A</description>
<jobString>B</jobString>
<workSpeedStat>CookSpeed</workSpeedStat>
<requiredGiverWorkType>Cooking</requiredGiverWorkType>
<effectWorking>Cook</effectWorking>
<soundWorking>Recipe_CookMeal</soundWorking>
<allowMixingIngredients>true</allowMixingIngredients>
<ingredientValueGetterClass>IngredientValueGetter_Nutrition</ingredientValueGetterClass>
<ingredients>
<li>
<filter>
<categories>
<li>SuperFood</li>
</categories>
</filter>
<count>10</count>
</li>
</ingredients>
<products>
<SuperRiceMeal>10</SuperRiceMeal>
</products>
<workSkill>Cooking</workSkill>
</RecipeDef>
</Defs>
2. 카테고리
ThingCategories.xml
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingCategoryDef>
<defName>SuperFood</defName>
<label>SuperFood</label>
<parent>FoodRaw</parent>
<iconPath>UI/Icons/ThingCategories/PlantFoodRaw</iconPath>
</ThingCategoryDef>
</Defs>
3. 추가아이템
SuperRice.xml (*벼)
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef ParentName="PlantBase">
<defName>SuperRice</defName>
<label>SuperRice 2.0</label>
<description>A</description>
<statBases>
<MaxHitPoints>200</MaxHitPoints>
<Nutrition>0.175</Nutrition>
<Flammability>0</Flammability>
<DeteriorationRate>0</DeteriorationRate>
<Mass>0.03</Mass>
</statBases>
<graphicData>
<texPath>Things/Plant/RicePlant</texPath>
<graphicClass>Graphic_Random</graphicClass>
</graphicData>
<selectable>true</selectable>
<pathCost>14</pathCost>
<ingestible />
<plant>
<dieIfLeafless>true</dieIfLeafless>
<maxMeshCount>4</maxMeshCount>
<harvestTag>Standard</harvestTag>
<harvestedThingDef>RawSuperRice</harvestedThingDef>
<harvestYield>75</harvestYield>
<sowTags>
<li>Ground</li>
<li>Hydroponic</li>
</sowTags>
<topWindExposure>0.1</topWindExposure>
<growDays>1</growDays>
<visualSizeRange>0.3~0.8</visualSizeRange>
<wildOrder>2</wildOrder>
<purpose>Food</purpose>
<humanFoodPlant>true</humanFoodPlant>
</plant>
<tickerType>Rare</tickerType>
<healthAffectsPrice>false</healthAffectsPrice>
</ThingDef>
</Defs>
Items_Resource_RawPlant.xml (*생쌀)
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef ParentName="PlantFoodRawBase">
<defName>RawSuperRice</defName>
<label>RawSuperRice 2.0</label>
<description>A</description>
<soundInteract>Grain_Drop</soundInteract>
<soundDrop>Grain_Drop</soundDrop>
<graphicData>
<texPath>Things/Item/Resource/PlantFoodRaw/Rice</texPath>
</graphicData>
<statBases>
<MarketValue>10</MarketValue>
<Nutrition>0.5</Nutrition>
<FoodPoisonChanceFixedHuman>0</FoodPoisonChanceFixedHuman>
</statBases>
<ingestible>
<foodType>Seed</foodType>
</ingestible>
<thingCategories>
<li>SuperFood</li>
</thingCategories>
<comps>
<li Class="CompProperties_Rottable">
<daysToRotStart>360</daysToRotStart>
<rotDestroys>true</rotDestroys>
</li>
</comps>
</ThingDef>
</Defs>
Items_Food.xml (*밥)
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef ParentName="MealCooked">
<defName>SuperRiceMeal</defName>
<label>SuperRiceMeal 2.0</label>
<description>A</description>
<graphicData>
<texPath>Things/Item/Meal/Lavish</texPath>
<graphicClass>Graphic_StackCount</graphicClass>
</graphicData>
<statBases>
<MarketValue>150</MarketValue>
<WorkToMake>100</WorkToMake>
<Nutrition>1</Nutrition>
</statBases>
<ingestible>
<preferability>MealLavish</preferability>
<tasteThought>AteSuperRiceMeaSet</tasteThought>
<ingestEffect>EatVegetarian</ingestEffect>
<ingestSound>Meal_Eat</ingestSound>
</ingestible>
<tradeability>Buyable</tradeability>
<comps>
<li Class="CompProperties_Rottable">
<daysToRotStart>180</daysToRotStart>
<rotDestroys>true</rotDestroys>
</li>
</comps>
</ThingDef>
</Defs>
Buildings_Production.xml (*전기스토브와 스토브내역에 추가)
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThingDef ParentName="BenchBase">
<defName>ElectricStove</defName>
<label>electric stove</label>
<description>An electrically-powered stove with an attached countertop for preparing meals.</description>
<thingClass>Building_WorkTable_HeatPush</thingClass>
<graphicData>
<texPath>Things/Building/Production/TableStoveElectric</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(3.5,1.5)</drawSize>
<damageData>
<cornerTL>Damage/Corner</cornerTL>
<cornerTR>Damage/Corner</cornerTR>
<cornerBL>Damage/Corner</cornerBL>
<cornerBR>Damage/Corner</cornerBR>
</damageData>
</graphicData>
<castEdgeShadows>true</castEdgeShadows>
<staticSunShadowHeight>0.20</staticSunShadowHeight>
<constructEffect>ConstructMetal</constructEffect>
<costList>
<Steel>80</Steel>
<ComponentIndustrial>2</ComponentIndustrial>
</costList>
<altitudeLayer>Building</altitudeLayer>
<fillPercent>0.5</fillPercent>
<useHitPoints>True</useHitPoints>
<statBases>
<WorkToBuild>2000</WorkToBuild>
<MaxHitPoints>180</MaxHitPoints>
<Flammability>1.0</Flammability>
</statBases>
<size>(3,1)</size>
<designationCategory>Production</designationCategory>
<passability>PassThroughOnly</passability>
<pathCost>50</pathCost>
<hasInteractionCell>True</hasInteractionCell>
<interactionCellOffset>(0,0,-1)</interactionCellOffset>
<surfaceType>Item</surfaceType>
<constructionSkillPrerequisite>4</constructionSkillPrerequisite>
<recipes>
<li>CookMealSimple</li>
<li>CookMealFine</li>
<li>CookMealFine_Veg</li>
<li>CookMealFine_Meat</li>
<li>CookMealLavish</li>
<li>CookMealLavish_Veg</li>
<li>CookMealLavish_Meat</li>
<li>CookMealSurvival</li>
<li>CookMealSimpleBulk</li>
<li>CookMealFineBulk</li>
<li>CookMealFineBulk_Veg</li>
<li>CookMealFineBulk_Meat</li>
<li>CookMealLavishBulk</li>
<li>CookMealLavishBulk_Veg</li>
<li>CookMealLavishBulk_Meat</li>
<li>CookMealSurvivalBulk</li>
<li>Make_Pemmican</li>
<li>Make_PemmicanBulk</li>
<li>CookSuperRiceMeal</li>
</recipes>
<inspectorTabs>
<li>ITab_Bills</li>
</inspectorTabs>
<comps>
<li Class="CompProperties_Power">
<compClass>CompPowerTrader</compClass>
<shortCircuitInRain>true</shortCircuitInRain>
<basePowerConsumption>350</basePowerConsumption>
</li>
<li Class="CompProperties_Flickable"/>
<li Class="CompProperties_Breakdownable"/>
<li Class="CompProperties_HeatPusher">
<compClass>CompHeatPusherPowered</compClass>
<heatPerSecond>3</heatPerSecond>
</li>
</comps>
<building>
<isMealSource>true</isMealSource>
<spawnedConceptLearnOpportunity>BillsTab</spawnedConceptLearnOpportunity>
<heatPerTickWhileWorking>0.10</heatPerTickWhileWorking>
</building>
<designationHotKey>Misc8</designationHotKey>
<placeWorkers>
<li>PlaceWorker_PreventInteractionSpotOverlap</li>
</placeWorkers>
<researchPrerequisites>
<li>Electricity</li>
</researchPrerequisites>
</ThingDef>
<ThingDef ParentName="BenchBase">
<defName>FueledStove</defName>
<label>fueled stove</label>
<description>A wood-fueled stove with an attached countertop for preparing meals.</description>
<thingClass>Building_WorkTable_HeatPush</thingClass>
<drawerType>MapMeshAndRealTime</drawerType>
<graphicData>
<texPath>Things/Building/Production/TableStoveFueled</texPath>
<graphicClass>Graphic_Multi</graphicClass>
<drawSize>(3.5,1.5)</drawSize>
<damageData>
<cornerTL>Damage/Corner</cornerTL>
<cornerTR>Damage/Corner</cornerTR>
<cornerBL>Damage/Corner</cornerBL>
<cornerBR>Damage/Corner</cornerBR>
</damageData>
</graphicData>
<castEdgeShadows>true</castEdgeShadows>
<staticSunShadowHeight>0.20</staticSunShadowHeight>
<constructEffect>ConstructMetal</constructEffect>
<costList>
<Steel>80</Steel>
</costList>
<altitudeLayer>Building</altitudeLayer>
<fillPercent>0.5</fillPercent>
<useHitPoints>True</useHitPoints>
<statBases>
<WorkToBuild>2000</WorkToBuild>
<MaxHitPoints>180</MaxHitPoints>
<Flammability>1.0</Flammability>
</statBases>
<size>(3,1)</size>
<designationCategory>Production</designationCategory>
<passability>PassThroughOnly</passability>
<pathCost>50</pathCost>
<hasInteractionCell>True</hasInteractionCell>
<interactionCellOffset>(0,0,-1)</interactionCellOffset>
<surfaceType>Item</surfaceType>
<recipes>
<li>CookMealSimple</li>
<li>CookMealFine</li>
<li>CookMealFine_Veg</li>
<li>CookMealFine_Meat</li>
<li>CookMealLavish</li>
<li>CookMealLavish_Veg</li>
<li>CookMealLavish_Meat</li>
<li>CookMealSurvival</li>
<li>CookMealSimpleBulk</li>
<li>CookMealFineBulk</li>
<li>CookMealFineBulk_Veg</li>
<li>CookMealFineBulk_Meat</li>
<li>CookMealLavishBulk</li>
<li>CookMealLavishBulk_Veg</li>
<li>CookMealLavishBulk_Meat</li>
<li>CookMealSurvivalBulk</li>
<li>Make_Pemmican</li>
<li>Make_PemmicanBulk</li>
<li>CookSuperRiceMeal</li>
</recipes>
<inspectorTabs>
<li>ITab_Bills</li>
</inspectorTabs>
<comps>
<li Class="CompProperties_Refuelable">
<fuelConsumptionRate>160.0</fuelConsumptionRate>
<fuelCapacity>50.0</fuelCapacity>
<fuelFilter>
<thingDefs>
<li>WoodLog</li>
</thingDefs>
</fuelFilter>
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
</li>
<li Class="CompProperties_HeatPusher">
<compClass>CompHeatPusherPowered</compClass>
<heatPerSecond>4</heatPerSecond>
</li>
</comps>
<placeWorkers>
<li>PlaceWorker_PreventInteractionSpotOverlap</li>
</placeWorkers>
<building>
<isMealSource>true</isMealSource>
<spawnedConceptLearnOpportunity>BillsTab</spawnedConceptLearnOpportunity>
<heatPerTickWhileWorking>0.10</heatPerTickWhileWorking>
</building>
</ThingDef>
</Defs>
4. 아이템효과
Thoughts_Memory_Eating.xml
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
<ThoughtDef>
<defName>AteSuperRiceMeaSet</defName>
<durationDays>7</durationDays>
<stages>
<li>
<label>A</label>
<description>B</description>
<baseMoodEffect>20</baseMoodEffect>
</li>
</stages>
</ThoughtDef>
</Defs>
이렇게 등록하고 나니 에러없이 깔끔하게 완성됬다.
*라벨과 설명을 한글로 하고싶어서 한글화 찾아보니까 Language / korean / keyed 에 <LanguageData> 추가하는것을 발견했는데 해보니까 적용이안된다... 쳇 =ㅅ= 왜안되는건지 모르겠으나 나중에 한글화 할수있으면 추가하겠음.
한글로 바꾸는걸 알아냈다.
모드 폴더안에 Languages/Korean/DefInjected 안에 넣었어야하는거였다. Keyed랑 DefInjected랑 다른거였음.
이안에 구조는 Defs랑 똑같이하고 안에 xml만 다르게 입력하는것으로 처리했다.
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>
<CookSuperRiceMeal.label>쌀밥 2.0</CookSuperRiceMeal.label>
<CookSuperRiceMeal.description>영양만점 맛있는 식단.</CookSuperRiceMeal.description>
<CookSuperRiceMeal.jobString>쿡후~ 밥하는 중~</CookSuperRiceMeal.jobString>
</LanguageData>
이런식으로 DefName를 기준으로 label, description, jobString 등을 한글로 넣어주면 된다.
'Rim World (림월드) > (old) 모딩' 카테고리의 다른 글
막무가내로 기존의 게임에서 불필요한것들 사용안되게 하기 (0) | 2021.08.22 |
---|---|
[0단계] 폴더만들고 기본파일들 만들기. (0) | 2021.08.20 |
내멋대로 림월드 모드만들기 (*RimWorld 1.3 Steam판) (0) | 2021.08.20 |