// ResolveTo(position, resolveTo, [attributes]) private static FuncMethod GetResolveTo(DeltinScript deltinScript) => new FuncMethodBuilder() { Name = "ResolveTo", Documentation = "Resolves the path to the specified destination. This can be used to precalculate the path to a position, or to reuse the calculated path to a position.", DoesReturnValue = true, ReturnType = deltinScript.Types.GetInstance <PathResolveClass>(), Parameters = new CodeParameter[] { new CodeParameter("position", "The position to resolve."), new CodeParameter("resolveTo", "Resolving will stop once this position is reached."), new CodeParameter("attributes", "The attributes of the path.", new ExpressionOrWorkshopValue(new V_Null())) }, Action = (actionSet, call) => { ResolveDijkstra resolve = new ResolveDijkstra(actionSet, (Element)call.ParameterValues[0], ContainParameter(actionSet, "_pathfindDestinationStore", call.ParameterValues[1]), (Element)call.ParameterValues[2]); resolve.Get(); return(resolve.ClassReference.GetVariable()); } };
// Resolve(position, [attributes]) private FuncMethod GetResolve(DeltinScript deltinScript) => new FuncMethodBuilder() { Name = "Resolve", Documentation = "Resolves all potential paths to the specified destination. This can be used to precalculate the path to a position, or to reuse the calculated path to a position.", DoesReturnValue = true, ReturnType = deltinScript.Types.GetInstance <PathResolveClass>(), Parameters = new CodeParameter[] { new CodeParameter("position", "The position to resolve."), new CodeParameter("attributes", "The attributes of the path.", new ExpressionOrWorkshopValue(new V_Null())), OnLoopStartParameter, OnNeighborLoopParameter }, Action = (actionSet, call) => { ResolveDijkstra resolve = new ResolveDijkstra(actionSet, (Element)call.ParameterValues[0], (Element)call.ParameterValues[1]); // Set lambda hooks SetHooks(resolve, call.ParameterValues[2], call.ParameterValues[3]); // Apply resolve.Get(); return(resolve.ClassReference.GetVariable()); } };