42 lines
1.7 KiB
C#
42 lines
1.7 KiB
C#
using GeometryTD.Definition;
|
|
using GeometryTD.Procedure;
|
|
|
|
namespace GeometryTD.UI
|
|
{
|
|
public sealed partial class NodeMapFormController
|
|
{
|
|
private static NodeMapFormContext BuildContext(NodeMapFormRawData rawData)
|
|
{
|
|
NodeItemContext[] nodeItemContexts = System.Array.Empty<NodeItemContext>();
|
|
if (rawData?.Nodes != null && rawData.Nodes.Count > 0)
|
|
{
|
|
nodeItemContexts = new NodeItemContext[rawData.Nodes.Count];
|
|
for (int i = 0; i < rawData.Nodes.Count; i++)
|
|
{
|
|
NodeMapNodeRawData node = rawData.Nodes[i];
|
|
nodeItemContexts[i] = new NodeItemContext
|
|
{
|
|
NodeId = node?.NodeId ?? 0,
|
|
SequenceIndex = node?.SequenceIndex ?? i,
|
|
NodeType = node?.NodeType ?? RunNodeType.None,
|
|
IsLocked = node != null && node.Status == RunNodeStatus.Locked,
|
|
IsCurrent = node != null && node.IsCurrentNode,
|
|
IsCompleted = node != null && node.Status == RunNodeStatus.Completed,
|
|
IsException = node != null && node.Status == RunNodeStatus.Exception,
|
|
CanClick = node != null && node.CanEnter
|
|
};
|
|
}
|
|
}
|
|
|
|
return new NodeMapFormContext
|
|
{
|
|
Title = rawData?.Title ?? "节点地图",
|
|
ProgressText = rawData?.ProgressText ?? "0 / 0",
|
|
CurrentNodeText = rawData?.CurrentNodeText ?? "当前节点: 无",
|
|
IsRunCompleted = rawData != null && rawData.IsRunCompleted,
|
|
NodeItems = nodeItemContexts
|
|
};
|
|
}
|
|
}
|
|
}
|