diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll
index 3afe885..2f0a627 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ
diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.pdb b/1.6/1.6/Assemblies/ArachnaeSwarm.pdb
index c6bb610..0c08ab8 100644
Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.pdb and b/1.6/1.6/Assemblies/ArachnaeSwarm.pdb differ
diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_QueuedIncubator.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_QueuedIncubator.xml
index a0ac11d..e9144b3 100644
--- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_QueuedIncubator.xml
+++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/ARA_QueuedIncubator.xml
@@ -85,7 +85,7 @@
选择孵化目标...
选择生产目标...
- (满)
+
就绪 - 点击上方选择目标
等待幼虫激活
diff --git a/Source/ArachnaeSwarm/Building_Comps/ARA_CompInteractiveProducer/CompQueuedInteractiveProducerWithFlux.cs b/Source/ArachnaeSwarm/Building_Comps/ARA_CompInteractiveProducer/CompQueuedInteractiveProducerWithFlux.cs
index 8df50e8..47d03ad 100644
--- a/Source/ArachnaeSwarm/Building_Comps/ARA_CompInteractiveProducer/CompQueuedInteractiveProducerWithFlux.cs
+++ b/Source/ArachnaeSwarm/Building_Comps/ARA_CompInteractiveProducer/CompQueuedInteractiveProducerWithFlux.cs
@@ -83,6 +83,7 @@ namespace ArachnaeSwarm
public float GizmoScrollPosition { get; set; } = 0f;
public int QueueLimit => Props.productionQueueLimit;
void IOrderGizmoProvider.ShowOrderMenu() => ShowOrderMenuPublic();
+ public void CallLarvaForGizmo() => CallLarvae();
// === 组件引用 ===
private CompRefuelableNutrition _fuelComp;
diff --git a/Source/ArachnaeSwarm/Building_Comps/ARA_SpawnPawnFromList/CompQueuedPawnSpawnerWithFlux.cs b/Source/ArachnaeSwarm/Building_Comps/ARA_SpawnPawnFromList/CompQueuedPawnSpawnerWithFlux.cs
index 88eca79..f599339 100644
--- a/Source/ArachnaeSwarm/Building_Comps/ARA_SpawnPawnFromList/CompQueuedPawnSpawnerWithFlux.cs
+++ b/Source/ArachnaeSwarm/Building_Comps/ARA_SpawnPawnFromList/CompQueuedPawnSpawnerWithFlux.cs
@@ -165,6 +165,7 @@ namespace ArachnaeSwarm
// === IOrderGizmoProvider 实现 ===
public int QueueLimit => Props.productionQueueLimit;
void IOrderGizmoProvider.ShowOrderMenu() => ShowOrderMenuPublic();
+ public void CallLarvaForGizmo() => CallLarvae();
// === Gizmo 用的订单信息 ===
public List GetOrdersForGizmo()
diff --git a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs
index e64913d..763878f 100644
--- a/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs
+++ b/Source/ArachnaeSwarm/Buildings/Building_EquipmentOotheca/Building_EquipmentOotheca.cs
@@ -140,6 +140,7 @@ namespace ArachnaeSwarm
}
public void ShowOrderMenu() => EquipmentIncubatorData?.ShowFloatMenu();
+ public void CallLarvaForGizmo() => CallLarva();
public void RemoveOrderByIndex(int index)
{
diff --git a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs
index fa99108..05adacb 100644
--- a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs
+++ b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Building_Ootheca.cs
@@ -141,6 +141,7 @@ namespace ArachnaeSwarm
}
public void ShowOrderMenu() => IncubatorData?.ShowFloatMenu();
+ public void CallLarvaForGizmo() => CallLarva();
public void RemoveOrderByIndex(int index)
{
diff --git a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Gizmo_PawnProgressBar.cs b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Gizmo_PawnProgressBar.cs
index 75899c3..14ea652 100644
--- a/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Gizmo_PawnProgressBar.cs
+++ b/Source/ArachnaeSwarm/Buildings/Building_Ootheca/Gizmo_PawnProgressBar.cs
@@ -159,6 +159,17 @@ namespace ArachnaeSwarm
if (order.status == OrderStatus.WaitingForLarva)
{
+ // 整个标签区域可点击呼叫幼虫
+ if (Mouse.IsOver(labelRect))
+ {
+ Widgets.DrawHighlight(labelRect);
+ }
+
+ if (Widgets.ButtonInvisible(labelRect))
+ {
+ provider.CallLarvaForGizmo();
+ }
+
GUI.color = new Color(1f, 0.8f, 0.4f);
Widgets.Label(labelRect, $"{order.label} [" + "ARA_Status_WaitingForLarva".Translate() + "]");
}
diff --git a/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Building_ResearchBlueprintReader.cs b/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Building_ResearchBlueprintReader.cs
index 6f39215..384b63d 100644
--- a/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Building_ResearchBlueprintReader.cs
+++ b/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Building_ResearchBlueprintReader.cs
@@ -278,7 +278,7 @@ namespace ArachnaeSwarm
}
}
- private void ShowResearchMenu()
+ public void ShowResearchMenu()
{
try
{
diff --git a/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Gizmo_ResearchProgress.cs b/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Gizmo_ResearchProgress.cs
index a22f130..059cffc 100644
--- a/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Gizmo_ResearchProgress.cs
+++ b/Source/ArachnaeSwarm/Buildings/Building_ResearchBlueprintReader/Gizmo_ResearchProgress.cs
@@ -44,24 +44,38 @@ namespace ArachnaeSwarm
var storedResearch = reader.StoredResearch;
- // === 第一行:标题 ===
+ // === 第一行:标题(可点击选择研究) ===
Text.Font = GameFont.Small;
Text.Anchor = TextAnchor.MiddleLeft;
- GUI.color = Color.white;
Rect titleRect = new Rect(innerRect.x, curY, innerRect.width, 18f);
string title;
if (storedResearch != null)
{
title = storedResearch.LabelCap.RawText ?? storedResearch.defName;
- // 截断过长的标题
- title = title.Truncate(innerRect.width - 4f);
+ // 截断过长的标题(留出下拉箭头空间)
+ title = title.Truncate(innerRect.width - 20f);
}
else
{
title = "ARA_ResearchProgress_NoProject".Translate();
}
- Widgets.Label(titleRect, title);
+
+ // 标题可点击
+ if (Mouse.IsOver(titleRect))
+ {
+ Widgets.DrawHighlight(titleRect);
+ }
+
+ if (Widgets.ButtonInvisible(titleRect))
+ {
+ reader.ShowResearchMenu();
+ }
+
+ // 带下拉箭头的标题
+ GUI.color = new Color(0.7f, 0.9f, 1f);
+ Widgets.Label(titleRect, title + " ▼");
+ GUI.color = Color.white;
curY += 20f;
// === 第二行:状态信息 ===
diff --git a/Source/ArachnaeSwarm/Buildings/IOrderGizmoProvider.cs b/Source/ArachnaeSwarm/Buildings/IOrderGizmoProvider.cs
index 1d0b322..302186c 100644
--- a/Source/ArachnaeSwarm/Buildings/IOrderGizmoProvider.cs
+++ b/Source/ArachnaeSwarm/Buildings/IOrderGizmoProvider.cs
@@ -21,6 +21,9 @@ namespace ArachnaeSwarm
/// 移除指定索引的订单
void RemoveOrderByIndex(int index);
+ /// 呼叫幼虫
+ void CallLarvaForGizmo();
+
/// Gizmo 滚动位置(用于多订单时)
float GizmoScrollPosition { get; set; }
}