public void UpdateIntermediatePlan(byte layerIndex, PlannerResult plan) { if (layerIndex >= _domain.IntermediateLayerCount) { return; } var planCount = plan.Count; var planBufferSize = plan.BufferSize; if (planCount > planBufferSize) { return; } var actionPool = _domain.IntermediateLayers[layerIndex]; var actionPoolLength = actionPool.Length; var currentPlan = _intermediateGoals[layerIndex] = new string[planCount]; for (byte i = 0; i < planCount; i++) { if (plan[i] < actionPoolLength && actionPool[i] != null) { currentPlan[i] = actionPool[i].name; } else { currentPlan[i] = "INVALID"; } } _activeGoalsIndices[layerIndex] = plan.CurrentIndex; }
public MainPlannerJob( RawLayer layer, PlannerResult previousLayerResult, PlannerResult currentPlan, float maxFScore, RawBlackboardArray datasets, PlannerResult output) { // domain layer.Break(out _targets, out _actions); _goal = default; // layering _previousLayerResult = previousLayerResult; // previous run _currentPlan = currentPlan; // settings _maxFScore = maxFScore; // runtime data _datasets = datasets; // output _output = output; }
public void UpdateCorePlan(PlannerResult plan) { var planCount = plan.Count; var planBufferSize = plan.BufferSize; if (planCount > planBufferSize) { return; } var actionPool = _domain.Actions; var actionPoolLength = actionPool.Length; var currentPlan = _actions = new string[planCount]; _executables = new string[planCount][]; _services = new string[planCount][]; for (byte i = 0; i < planCount; i++) { var currentAction = actionPool[i]; if (plan[i] < actionPoolLength && currentAction != null) { currentPlan[i] = currentAction.name; var executablesPool = currentAction.Collection4; var executablesCount = executablesPool.Length; var currentExecutables = _executables[i] = new string[executablesCount]; for (var j = 0; j < executablesCount; j++) { currentExecutables[j] = ((Object)executablesPool[j]).name; } var servicesPool = currentAction.Collection5; var servicesCount = servicesPool.Length; var currentServices = _services[i] = new string[servicesCount]; for (var j = 0; j < servicesCount; j++) { currentServices[j] = ((Object)servicesPool[j]).name; } } else { currentPlan[i] = "INVALID"; _executables[i] = new string[0]; _services[i] = new string[0]; } } _activeActionIndex = plan.CurrentIndex; }
public GoalCalculatorJob(IBlackboardComponent blackboard, RawInsistenceCalculatorsArray domainData, PlannerResult result) { _blackboard = blackboard.Data; _insistenceCalculators = domainData; _result = result; }