public static RecipeNode Create(Recipe baseRecipe, ProductionGraph graph) { var node = new RecipeNode(baseRecipe, graph); node.Graph.Nodes.Add(node); node.Graph.InvalidateCaches(); return(node); }
internal override void Build(ProductionGraph graph) { Built = createFunction(new Item(itemName), graph); if (target > 0) { Built.DesiredRate = target; Built.RateType = RateType.Manual; } else { Built.RateType = RateType.Auto; } }
internal BuiltData Build() { var graph = new ProductionGraph(); foreach (var node in nodes) { node.Build(graph); } foreach (var link in links) { var lhs = link.Item1; var rhs = link.Item2; foreach (var item in lhs.Built.Outputs.Intersect(rhs.Built.Inputs)) { NodeLink.Create(lhs.Built, rhs.Built, item); } } return(new BuiltData(graph)); }
internal override void Build(ProductionGraph graph) { var duration = 1; name ??= "recipe-" + GetSequence(); var recipe = new Recipe(name, duration, itemizeKeys(inputs), itemizeKeys(outputs)); Built = RecipeNode.Create(recipe, graph); Built.BeaconModules.OverrideProductivityBonus = efficiency; if (target > 0) { Built.DesiredRate = target; Built.RateType = RateType.Manual; } else { Built.RateType = RateType.Auto; } }
internal override void Build(ProductionGraph graph) { var duration = 1; if (name == null) { name = "recipe-" + GetSequence(); } Recipe recipe = new Recipe(name, duration, itemizeKeys(inputs), itemizeKeys(outputs)); Built = RecipeNode.Create(recipe, graph); this.Built.ProductivityBonus = efficiency; if (target > 0) { this.Built.desiredRate = target; this.Built.rateType = RateType.Manual; } else { this.Built.rateType = RateType.Auto; } }
public BuiltData(ProductionGraph graph) { Graph = graph; }
} = null !; // TODO: Build if not already internal abstract void Build(ProductionGraph graph);
protected RecipeNode(Recipe baseRecipe, ProductionGraph graph) : base(graph) { BaseRecipe = baseRecipe; }
protected EffectableNode(ProductionGraph graph) : base(graph) { Modules = ModuleSelector.Default; }