public void Register(BuildingTreeNode node, int questIdx) { if (_UnlockData.ContainsKey(questIdx)) { _UnlockData[questIdx].Nodes.Add(node); } else { _UnlockData.Add(questIdx, new UnlockData()); Register(node, questIdx); } }
private void Start() { //Convert EditorTree to Tree var placedNodes = new Dictionary <Vector2Int, BuildingTreeNode>(); _Tree = new List <BuildingTreeNode>(); foreach (var data in EditorTree) { var node = new BuildingTreeNode(); node.Id = data.Id; node.NrPrerequisiteNodes = data.NrRequiredNodes; node.Cost = data.Cost; node.BuildTime = data.BuildTime; node.AttachedBuilding = data.AttachedBuilding; if (data.IsActive) { node.Activate(); } if (data.QuestIdx >= 0) { node.IsUnlocked = false; ObjectiveManager.Instance.Register(node, data.QuestIdx); } placedNodes.Add(node.Id, node); _Tree.Add(node); } foreach (var data in EditorTree) { if (data.UpgradesFrom != new Vector2Int(0, 0)) { placedNodes[data.Id].PrevNode = placedNodes[data.UpgradesFrom]; } if (data.NextNode == new Vector2Int(0, 0)) { continue; } var node = placedNodes[data.Id]; node.NextNode = placedNodes[data.NextNode]; } }
public void BuildingStarted(BuildingTreeNode node) { _BuildingsBeingBuilt++; _BuildQueue.Add(node); }
public void BuildingFinished(BuildingTreeNode node) { _BuildingsBeingBuilt--; _BuildQueue.Remove(node); }
public void FinishedBuilding(BuildingTreeNode node) { _BuildQueue.Remove(node); _NrBuildingsBuilt--; }
public void AddBuilding(BuildingTreeNode node) { _BuildQueue.Add(node); _NrBuildingsBuilt++; }