This commit is contained in:
2025-12-25 17:54:23 +08:00
parent efee26e83c
commit ef380b8382
11 changed files with 39 additions and 7 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -85,7 +85,7 @@
<!-- Gizmo 进度条 -->
<ARA_Gizmo_SelectIncubationTarget>选择孵化目标...</ARA_Gizmo_SelectIncubationTarget>
<ARA_Gizmo_SelectProductionTarget>选择生产目标...</ARA_Gizmo_SelectProductionTarget>
<ARA_Gizmo_QueueFull>(满)</ARA_Gizmo_QueueFull>
<ARA_Gizmo_QueueFull></ARA_Gizmo_QueueFull>
<ARA_Gizmo_ReadyClickAbove>就绪 - 点击上方选择目标</ARA_Gizmo_ReadyClickAbove>
<ARA_Gizmo_WaitingForLarvaActivation>等待幼虫激活</ARA_Gizmo_WaitingForLarvaActivation>

View File

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

View File

@@ -165,6 +165,7 @@ namespace ArachnaeSwarm
// === IOrderGizmoProvider 实现 ===
public int QueueLimit => Props.productionQueueLimit;
void IOrderGizmoProvider.ShowOrderMenu() => ShowOrderMenuPublic();
public void CallLarvaForGizmo() => CallLarvae();
// === Gizmo 用的订单信息 ===
public List<PawnOrderDisplayInfo> GetOrdersForGizmo()

View File

@@ -140,6 +140,7 @@ namespace ArachnaeSwarm
}
public void ShowOrderMenu() => EquipmentIncubatorData?.ShowFloatMenu();
public void CallLarvaForGizmo() => CallLarva();
public void RemoveOrderByIndex(int index)
{

View File

@@ -141,6 +141,7 @@ namespace ArachnaeSwarm
}
public void ShowOrderMenu() => IncubatorData?.ShowFloatMenu();
public void CallLarvaForGizmo() => CallLarva();
public void RemoveOrderByIndex(int index)
{

View File

@@ -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() + "]");
}

View File

@@ -278,7 +278,7 @@ namespace ArachnaeSwarm
}
}
private void ShowResearchMenu()
public void ShowResearchMenu()
{
try
{

View File

@@ -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;
// === 第二行:状态信息 ===

View File

@@ -21,6 +21,9 @@ namespace ArachnaeSwarm
/// <summary>移除指定索引的订单</summary>
void RemoveOrderByIndex(int index);
/// <summary>呼叫幼虫</summary>
void CallLarvaForGizmo();
/// <summary>Gizmo 滚动位置(用于多订单时)</summary>
float GizmoScrollPosition { get; set; }
}