This commit is contained in:
Tourswen
2025-12-16 02:29:08 +08:00
parent b17407b53f
commit 4f46620e26
7 changed files with 182 additions and 270 deletions

Binary file not shown.

View File

@@ -142,9 +142,7 @@
<comps> <comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo"> <li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDefs> <cocoonDefs>
<li>ARA_Cocoon_Weapon_1Stage</li> <li>ARA_Equipment_Ootheca</li>
<li>ARA_Cocoon_Weapon_1Stage_From_Death</li>
<li>ARA_BioforgeIncubator_Thing</li>
</cocoonDefs> </cocoonDefs>
</li> </li>
</comps> </comps>
@@ -222,9 +220,7 @@
<comps> <comps>
<li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo"> <li Class="ArachnaeSwarm.CompProperties_ExtraIncubationInfo">
<cocoonDefs> <cocoonDefs>
<li>ARA_Cocoon_Weapon_2Stage</li> <li>ARA_Equipment_Ootheca</li>
<li>ARA_Cocoon_Weapon_2Stage_From_Death</li>
<li>ARA_BioforgeIncubator_Thing</li>
</cocoonDefs> </cocoonDefs>
</li> </li>
<li Class="ArachnaeSwarm.CompProperties_Cleave"> <li Class="ArachnaeSwarm.CompProperties_Cleave">

View File

@@ -85,6 +85,14 @@
<ARA_EquipmentIncubator.IncubationTarget>生产目标:{0}</ARA_EquipmentIncubator.IncubationTarget> <ARA_EquipmentIncubator.IncubationTarget>生产目标:{0}</ARA_EquipmentIncubator.IncubationTarget>
<ARA_EquipmentIncubator.Requires>需要</ARA_EquipmentIncubator.Requires> <ARA_EquipmentIncubator.Requires>需要</ARA_EquipmentIncubator.Requires>
<ARA_EquipmentIncubator.NoDescription>无描述</ARA_EquipmentIncubator.NoDescription> <ARA_EquipmentIncubator.NoDescription>无描述</ARA_EquipmentIncubator.NoDescription>
<ARA_EquipmentIncubator.ResearchCompleted>研究: {0} (已完成)</ARA_EquipmentIncubator.ResearchCompleted>
<ARA_EquipmentIncubator.ResearchRequired>研究: {0} (需要)</ARA_EquipmentIncubator.ResearchRequired> <!-- 研究相关翻译 -->
<ARA_EquipmentIncubator.ResearchCompleted>研究要求: {0} (已完成)</ARA_EquipmentIncubator.ResearchCompleted>
<ARA_EquipmentIncubator.ResearchRequired>研究要求: {0} (需要)</ARA_EquipmentIncubator.ResearchRequired>
<ARA_EquipmentIncubator.NoResearchRequired>研究要求: 无</ARA_EquipmentIncubator.NoResearchRequired>
<ARA_EquipmentIncubator.ResearchRequiredFor>生产{0}需要完成研究: {1}</ARA_EquipmentIncubator.ResearchRequiredFor>
<ARA_EquipmentIncubator.ResearchNotCompleted>研究未完成</ARA_EquipmentIncubator.ResearchNotCompleted>
<!-- 其他翻译 -->
<ARA_EquipmentIncubator.NoTargetSelected>未选择生产目标</ARA_EquipmentIncubator.NoTargetSelected>
</LanguageData> </LanguageData>

View File

@@ -6,53 +6,17 @@
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_equipmentootheca\\building_equipmentootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_equipmentootheca\\building_equipmentootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\building_equipmentootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\building_equipmentootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_equipmentootheca\\compproperties_equipmentincubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\compproperties_equipmentincubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_ootheca\\oothecaincubatorextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\oothecaincubatorextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\thing_comps\\ara_compextraincubationinfo\\compproperties_extraincubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_compextraincubationinfo\\compproperties_extraincubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\thing_comps\\ara_compextraincubationinfo\\compextraincubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:thing_comps\\ara_compextraincubationinfo\\compextraincubationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_ootheca\\building_ootheca.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\building_comps\\ara_swarmmaintenance\\comp_swarmmaintenance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\buildings\\building_equipmentootheca\\compproperties_equipmentincubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_swarmmaintenance\\comp_swarmmaintenance.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:buildings\\building_equipmentootheca\\compproperties_equipmentincubatordata.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\building_comps\\ara_buildingterrainspawn\\compdelayedterrainspawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\ara_buildingterrainspawn\\compdelayedterrainspawn.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:ara_hediffdefof.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\building_comps\\comptemperatureruinabledamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:building_comps\\comptemperatureruinabledamage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\abilities\\ara_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:abilities\\ara_showtemperaturerange\\compabilityeffect_abilityshowtemperaturerange.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_swarmmaintain\\jobdriver_swarmmaintain.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|e:\\steamlibrary\\steamapps\\common\\rimworld\\mods\\arachnaeswarm\\source\\arachnaeswarm\\jobs\\jobdriver_feedwithhoney\\jobdriver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{EAE0DB6B-E282-C812-7F5A-6D13E9D24581}|ArachnaeSwarm.csproj|solutionrelative:jobs\\jobdriver_feedwithhoney\\jobdriver_feedwithhoney.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
} }
], ],
"DocumentGroupContainers": [ "DocumentGroupContainers": [
@@ -62,21 +26,47 @@
"DocumentGroups": [ "DocumentGroups": [
{ {
"DockedWidth": 200, "DockedWidth": 200,
"SelectedChildIndex": 3, "SelectedChildIndex": 1,
"Children": [ "Children": [
{ {
"$type": "Bookmark", "$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}" "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
}, },
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Building_EquipmentOotheca.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
"RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs*",
"RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs*",
"ViewState": "AgIAANoBAAAAAAAAAAAAAAACAABSAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T18:22:14.171Z",
"EditorCaption": ""
},
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 1,
"Title": "Building_Ootheca.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
"RelativeToolTip": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T18:22:12.217Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "CompProperties_EquipmentIncubatorData.cs", "Title": "CompProperties_EquipmentIncubatorData.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", "DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs",
"RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", "RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", "ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs",
"RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs", "RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\CompProperties_EquipmentIncubatorData.cs",
"ViewState": "AgIAAAQAAAAAAAAAAAAmwDMBAAAlAAAAAAAAAA==", "ViewState": "AgIAAAAAAAAAAAAAAAAAACYAAAAaAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:55:40.041Z", "WhenOpened": "2025-12-15T17:55:40.041Z",
"EditorCaption": "" "EditorCaption": ""
@@ -93,149 +83,6 @@
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:32:18.493Z", "WhenOpened": "2025-12-15T17:32:18.493Z",
"EditorCaption": "" "EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Building_EquipmentOotheca.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
"RelativeDocumentMoniker": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs*",
"RelativeToolTip": "Buildings\\Building_EquipmentOotheca\\Building_EquipmentOotheca.cs*",
"ViewState": "AgIAADIBAAAAAAAAAAAAAEQBAAAIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:32:08.87Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "CompExtraIncubationInfo.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs",
"RelativeDocumentMoniker": "Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs",
"RelativeToolTip": "Thing_Comps\\ARA_CompExtraIncubationInfo\\CompExtraIncubationInfo.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:13:20.87Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "CompProperties_ExtraIncubationInfo.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompProperties_ExtraIncubationInfo.cs",
"RelativeDocumentMoniker": "Thing_Comps\\ARA_CompExtraIncubationInfo\\CompProperties_ExtraIncubationInfo.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Thing_Comps\\ARA_CompExtraIncubationInfo\\CompProperties_ExtraIncubationInfo.cs",
"RelativeToolTip": "Thing_Comps\\ARA_CompExtraIncubationInfo\\CompProperties_ExtraIncubationInfo.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:13:20.069Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "OothecaIncubatorExtension.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs",
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs",
"RelativeToolTip": "Buildings\\Building_Ootheca\\OothecaIncubatorExtension.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvxIAAAA4AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:11:54.114Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "Building_Ootheca.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
"RelativeDocumentMoniker": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Buildings\\Building_Ootheca\\Building_Ootheca.cs",
"RelativeToolTip": "Buildings\\Building_Ootheca\\Building_Ootheca.cs",
"ViewState": "AgIAAA0DAAAAAAAAAAAAACAAAAArAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T17:10:05.509Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "Comp_SwarmMaintenance.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs",
"RelativeDocumentMoniker": "Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs",
"RelativeToolTip": "Building_Comps\\ARA_SwarmMaintenance\\Comp_SwarmMaintenance.cs",
"ViewState": "AgIAABkBAAAAAAAAAAAAAE0BAABIAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T16:59:28.717Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "CompDelayedTerrainSpawn.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs",
"RelativeDocumentMoniker": "Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs",
"RelativeToolTip": "Building_Comps\\ARA_BuildingTerrainSpawn\\CompDelayedTerrainSpawn.cs",
"ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T16:59:21.314Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 9,
"Title": "CompTemperatureRuinableDamage.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\CompTemperatureRuinableDamage.cs",
"RelativeDocumentMoniker": "Building_Comps\\CompTemperatureRuinableDamage.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Building_Comps\\CompTemperatureRuinableDamage.cs",
"RelativeToolTip": "Building_Comps\\CompTemperatureRuinableDamage.cs",
"ViewState": "AgIAAB8AAAAAAAAAAAAAwDoAAAAlAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T16:52:05.743Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "CompAbilityEffect_AbilityShowTemperatureRange.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
"RelativeDocumentMoniker": "Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
"RelativeToolTip": "Abilities\\ARA_ShowTemperatureRange\\CompAbilityEffect_AbilityShowTemperatureRange.cs",
"ViewState": "AgIAAHUAAAAAAAAAAAAAAJIAAABEAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T16:52:00.971Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "JobDriver_SwarmMaintain.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs",
"RelativeToolTip": "Jobs\\JobDriver_SwarmMaintain\\JobDriver_SwarmMaintain.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAABPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T16:36:34.047Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "JobDriver_FeedWithHoney.cs",
"DocumentMoniker": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs",
"RelativeDocumentMoniker": "Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs",
"ToolTip": "E:\\SteamLibrary\\steamapps\\common\\RimWorld\\Mods\\ArachnaeSwarm\\Source\\ArachnaeSwarm\\Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs",
"RelativeToolTip": "Jobs\\JobDriver_FeedWithHoney\\JobDriver_FeedWithHoney.cs",
"ViewState": "AgIAACEAAAAAAAAAAAAYwEsAAAAOAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-12-15T16:35:50.511Z",
"EditorCaption": ""
} }
] ]
} }

View File

@@ -181,24 +181,48 @@ namespace ArachnaeSwarm
return builder.ToString().TrimEndNewlines(); return builder.ToString().TrimEndNewlines();
} }
// 呼叫幼虫 // 呼叫幼虫
private void CallLarva() private void CallLarva()
{ {
// 检查是否已经在孵化中
if (isIncubating) if (isIncubating)
{ {
Messages.Message("ARA_EquipmentIncubator.AlreadyIncubating".Translate() + " " + "ARA_EquipmentIncubator.CancelFirst".Translate(), Messages.Message("ARA_EquipmentIncubator.AlreadyIncubating".Translate() + " " + "ARA_EquipmentIncubator.CancelFirst".Translate(),
MessageTypeDefOf.RejectInput); MessageTypeDefOf.RejectInput);
return; return;
} }
// 检查是否有幼虫在任务中
if (assignedLarva != null) if (assignedLarva != null)
{ {
Messages.Message("ARA_EquipmentIncubator.LarvaAlreadyOnWay".Translate(), Messages.Message("ARA_EquipmentIncubator.LarvaAlreadyOnWay".Translate(),
MessageTypeDefOf.RejectInput); MessageTypeDefOf.RejectInput);
return; return;
} }
// 获取当前选择的配置
var config = EquipmentIncubatorData?.SelectedConfig;
if (config == null)
{
Messages.Message("ARA_EquipmentIncubator.NoTargetSelected".Translate(),
MessageTypeDefOf.RejectInput);
return;
}
// 检查研究是否完成
if (!config.IsResearchComplete)
{
if (config.requiredResearch != null)
{
Messages.Message("ARA_EquipmentIncubator.ResearchRequiredFor".Translate(config.thingDef.LabelCap, config.requiredResearch.LabelCap),
MessageTypeDefOf.RejectInput);
}
else
{
Messages.Message("ARA_EquipmentIncubator.ResearchNotCompleted".Translate(),
MessageTypeDefOf.RejectInput);
}
return;
}
// 查找幼虫
var larva = FindLarva(); var larva = FindLarva();
if (larva == null) if (larva == null)
{ {
@@ -206,17 +230,15 @@ namespace ArachnaeSwarm
MessageTypeDefOf.RejectInput); MessageTypeDefOf.RejectInput);
return; return;
} }
// 给幼虫分配任务
var job = JobMaker.MakeJob(ARA_JobDefOf.ARA_OperateEquipmentIncubator, this); var job = JobMaker.MakeJob(ARA_JobDefOf.ARA_OperateEquipmentIncubator, this);
job.count = 1; job.count = 1;
larva.jobs.TryTakeOrderedJob(job, JobTag.MiscWork); larva.jobs.TryTakeOrderedJob(job, JobTag.MiscWork);
assignedLarva = larva; assignedLarva = larva;
Messages.Message("ARA_EquipmentIncubator.LarvaCalled".Translate() + " " + "ARA_EquipmentIncubator.ArriveShortly".Translate(), Messages.Message("ARA_EquipmentIncubator.LarvaCalled".Translate() + " " + "ARA_EquipmentIncubator.ArriveShortly".Translate(),
MessageTypeDefOf.PositiveEvent); MessageTypeDefOf.PositiveEvent);
} }
// 幼虫到达 // 幼虫到达
public void NotifyLarvaArrived(Pawn larva) public void NotifyLarvaArrived(Pawn larva)
{ {
@@ -475,16 +497,16 @@ namespace ArachnaeSwarm
} }
} }
} }
// 创建切换目标Gizmo - 现在使用装备的图标 // 创建切换目标Gizmo - 现在使用装备的图标
private Gizmo CreateTargetSwitchGizmo() private Gizmo CreateTargetSwitchGizmo()
{ {
var configs = EquipmentIncubatorData?.IncubationConfigs; var configs = EquipmentIncubatorData?.IncubationConfigs;
if (configs == null || configs.Count == 0) return null; if (configs == null || configs.Count == 0) return null;
var props = EquipmentIncubatorData?.props as CompProperties_EquipmentIncubatorData; var props = EquipmentIncubatorData?.props as CompProperties_EquipmentIncubatorData;
var selectedConfig = EquipmentIncubatorData?.SelectedConfig; var selectedConfig = EquipmentIncubatorData?.SelectedConfig;
var switchButton = new Command_Action var switchButton = new Command_Action
{ {
defaultLabel = BuildSwitchButtonLabel(selectedConfig, props), defaultLabel = BuildSwitchButtonLabel(selectedConfig, props),
@@ -493,18 +515,65 @@ namespace ArachnaeSwarm
action = ShowSelectionMenu, action = ShowSelectionMenu,
hotKey = KeyBindingDefOf.Misc2 hotKey = KeyBindingDefOf.Misc2
}; };
if (selectedConfig != null && !selectedConfig.IsResearchComplete) // 检查研究是否完成,如果未完成则禁用按钮
{ //if (selectedConfig != null && !selectedConfig.IsResearchComplete)
if (selectedConfig.requiredResearch != null) //{
{ // if (selectedConfig.requiredResearch != null)
switchButton.Disable($"Requires research: {selectedConfig.requiredResearch.LabelCap}"); // {
} // switchButton.Disable("ARA_EquipmentIncubator.ResearchRequired".Translate() + " " + selectedConfig.requiredResearch.LabelCap);
} // }
// else
// {
// switchButton.Disable("ARA_EquipmentIncubator.ResearchNotCompleted".Translate());
// }
//}
return switchButton; return switchButton;
} }
// 改进的BuildSwitchButtonDescription方法
private string BuildSwitchButtonDescription(EquipmentIncubationConfig config, CompProperties_EquipmentIncubatorData props)
{
var builder = new StringBuilder();
builder.AppendLine();
if (config != null)
{
if (config.thingDef != null)
{
builder.AppendLine($"ARA_EquipmentIncubator.ButtonLabel".Translate(config.thingDef.LabelCap));
if (!string.IsNullOrEmpty(config.thingDef.description))
{
builder.AppendLine(config.thingDef.description);
}
}
builder.AppendLine($"ARA_EquipmentIncubator.IncubationTime".Translate(config.DaysRequired));
if (config.requiredResearch != null)
{
if (config.requiredResearch.IsFinished)
{
builder.AppendLine($"ARA_EquipmentIncubator.ResearchCompleted".Translate(config.requiredResearch.LabelCap));
}
else
{
builder.AppendLine($"ARA_EquipmentIncubator.ResearchRequired".Translate(config.requiredResearch.LabelCap));
}
}
else
{
builder.AppendLine("ARA_EquipmentIncubator.NoResearchRequired".Translate());
}
}
builder.AppendLine();
builder.AppendLine("ARA_EquipmentIncubator.ButtonDesc".Translate());
return builder.ToString().TrimEndNewlines();
}
// 获取配置图标 - 现在直接从ThingDef获取 // 获取配置图标 - 现在直接从ThingDef获取
private Texture2D GetConfigIcon(EquipmentIncubationConfig config) private Texture2D GetConfigIcon(EquipmentIncubationConfig config)
{ {
@@ -527,42 +596,6 @@ namespace ArachnaeSwarm
} }
return (props?.buttonLabel ?? "ARA_EquipmentIncubator.IncubateLabel").Translate("None"); return (props?.buttonLabel ?? "ARA_EquipmentIncubator.IncubateLabel").Translate("None");
} }
private string BuildSwitchButtonDescription(EquipmentIncubationConfig config, CompProperties_EquipmentIncubatorData props)
{
var builder = new StringBuilder();
builder.AppendLine((props?.buttonDesc ?? "ARA_EquipmentIncubator.ButtonDesc").Translate());
builder.AppendLine();
if (config != null)
{
if (config.thingDef != null)
{
builder.AppendLine($"ARA_EquipmentIncubator.ButtonLabel".Translate(config.thingDef.LabelCap));
if (!string.IsNullOrEmpty(config.thingDef.description))
{
builder.AppendLine(config.thingDef.description);
}
}
builder.AppendLine($"ARA_EquipmentIncubator.IncubationTime".Translate(config.DaysRequired));
if (config.requiredResearch != null)
{
if (config.requiredResearch.IsFinished)
builder.AppendLine($"Research: {config.requiredResearch.LabelCap} (Completed)");
else
builder.AppendLine($"Research: {config.requiredResearch.LabelCap} (Required)");
}
}
builder.AppendLine();
builder.AppendLine("ARA_EquipmentIncubator.ButtonDesc".Translate());
return builder.ToString().TrimEndNewlines();
}
private void ShowSelectionMenu() private void ShowSelectionMenu()
{ {
var configs = EquipmentIncubatorData?.IncubationConfigs; var configs = EquipmentIncubatorData?.IncubationConfigs;
@@ -583,15 +616,15 @@ namespace ArachnaeSwarm
string prefix = (i == currentIndex) ? "✓ " : " "; string prefix = (i == currentIndex) ? "✓ " : " ";
// 使用原版FloatMenuOption的构造函数直接传入图标 // 获取图标
FloatMenuOption option; Texture2D icon = config.thingDef?.uiIcon;
// 尝试获取ThingDef的图标 // 创建选项
Texture2D icon = config.thingDef.uiIcon; FloatMenuOption option;
if (icon != null) if (icon != null)
{ {
// 使用带有Texture2D图标的构造函数 // 使用带有图标的构造函数
option = new FloatMenuOption( option = new FloatMenuOption(
prefix + label, prefix + label,
() => SwitchToConfig(index), () => SwitchToConfig(index),
@@ -611,7 +644,7 @@ namespace ArachnaeSwarm
} }
else else
{ {
// 如果没有图标,使用普通构造函数 // 使用普通构造函数
option = new FloatMenuOption( option = new FloatMenuOption(
prefix + label, prefix + label,
() => SwitchToConfig(index) () => SwitchToConfig(index)
@@ -626,7 +659,10 @@ namespace ArachnaeSwarm
{ {
option.Label = prefix + label; option.Label = prefix + label;
option.Disabled = true; option.Disabled = true;
option.tooltip = description + "\n\n " + "ARA_EquipmentIncubator.ResearchRequired".Translate() + " " + config.requiredResearch.LabelCap; if (config.requiredResearch != null)
{
option.tooltip = description + "\n\n " + "ARA_EquipmentIncubator.ResearchRequired".Translate() + " " + config.requiredResearch.LabelCap;
}
} }
options.Add(option); options.Add(option);
@@ -638,7 +674,6 @@ namespace ArachnaeSwarm
(props?.menuTitle ?? "ARA_EquipmentIncubator.MenuTitle").Translate())); (props?.menuTitle ?? "ARA_EquipmentIncubator.MenuTitle").Translate()));
} }
} }
private void SwitchToConfig(int index) private void SwitchToConfig(int index)
{ {
if (EquipmentIncubatorData != null) if (EquipmentIncubatorData != null)

View File

@@ -12,7 +12,7 @@ namespace ArachnaeSwarm
public class EquipmentIncubationConfig : IExposable public class EquipmentIncubationConfig : IExposable
{ {
public ThingDef thingDef; public ThingDef thingDef;
public ResearchProjectDef requiredResearch; public ResearchProjectDef requiredResearch; // 从recipeMaker中读取
public float daysRequired; // 从stat中读取 public float daysRequired; // 从stat中读取
public string buttonIconPath; public string buttonIconPath;
@@ -74,7 +74,17 @@ namespace ArachnaeSwarm
} }
// 检查是否满足研究要求 // 检查是否满足研究要求
public bool IsResearchComplete => requiredResearch == null || requiredResearch.IsFinished; public bool IsResearchComplete
{
get
{
// 如果未指定研究,则默认已完成
if (requiredResearch == null)
return true;
return requiredResearch.IsFinished;
}
}
// 获取描述 // 获取描述
public string GetDescription() public string GetDescription()
@@ -86,14 +96,23 @@ namespace ArachnaeSwarm
builder.AppendLine(thingDef.description ?? "ARA_EquipmentIncubator.NoDescription".Translate()); builder.AppendLine(thingDef.description ?? "ARA_EquipmentIncubator.NoDescription".Translate());
builder.AppendLine(); builder.AppendLine();
builder.AppendLine("ARA_EquipmentIncubator.IncubationTime".Translate(DaysRequired)); builder.AppendLine("ARA_EquipmentIncubator.IncubationTime".Translate(DaysRequired));
}
// 显示研究要求
if (requiredResearch != null) if (requiredResearch != null)
{ {
if (requiredResearch.IsFinished) if (requiredResearch.IsFinished)
builder.AppendLine("ARA_EquipmentIncubator.ResearchCompleted".Translate(requiredResearch.LabelCap)); {
builder.AppendLine("ARA_EquipmentIncubator.ResearchCompleted".Translate(requiredResearch.LabelCap));
}
else
{
builder.AppendLine("ARA_EquipmentIncubator.ResearchRequired".Translate(requiredResearch.LabelCap));
}
}
else else
builder.AppendLine("ARA_EquipmentIncubator.ResearchRequired".Translate(requiredResearch.LabelCap)); {
builder.AppendLine("ARA_EquipmentIncubator.NoResearchRequired".Translate());
}
} }
return builder.ToString().TrimEndNewlines(); return builder.ToString().TrimEndNewlines();
@@ -205,7 +224,7 @@ namespace ArachnaeSwarm
} }
} }
// 扫描所有ThingDef来构建配置列表 // 扫描所有ThingDef来构建配置列表 - 现在会读取研究要求
private void ScanThingDefsForConfigs() private void ScanThingDefsForConfigs()
{ {
var allThingDefs = DefDatabase<ThingDef>.AllDefsListForReading; var allThingDefs = DefDatabase<ThingDef>.AllDefsListForReading;
@@ -251,14 +270,21 @@ namespace ArachnaeSwarm
continue; continue;
} }
// 获取研究要求从recipeMaker中读取
ResearchProjectDef requiredResearch = null;
if (thingDef.recipeMaker != null)
{
// 从recipeMaker中获取研究要求
requiredResearch = thingDef.recipeMaker.researchPrerequisite;
}
// 创建配置 // 创建配置
var config = new EquipmentIncubationConfig var config = new EquipmentIncubationConfig
{ {
thingDef = thingDef, thingDef = thingDef,
daysRequired = daysRequired, daysRequired = daysRequired,
// 可以在这里添加其他配置,比如所需研究等 requiredResearch = requiredResearch
// requiredResearch = ...
// buttonIconPath = ...
}; };
cachedConfigs.Add(config); cachedConfigs.Add(config);