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; } }