ActionControl

Controls for functions related to action

GetStateActionMaps

public virtual List<DataModel.StateActionMap> GetStateActionMaps(State state)

Definition

Defines a set of actions to consider in a given state.

Parameters

TypeDescription

The state to define the actions.

Return

TypeDescriptionDefault

List<StateActionMap>

The list of StateActionMap.

Empty List

Example

public override List<StateActionMap> GetStateActionMaps(State state)
{
    List<StateActionMap> maps = new List<StateActionMap>();
    CRPData data = DataManager.Instance.Data as CRPData;

    CRPState fromState = state as CRPState;
    Dictionary<int, CRPConveyor> stateInfo = fromState.StateInfo;

    CRPJob lastJob = fromState.LastRetrievedJob;

    for (int i = 1; i <= CRPParameter.CONV_NUM; i++)
    {
        CRPConveyor conv = stateInfo[i];

        if (conv.JobCount <= 0)
        {
            continue;
        }

        CRPState toState = new CRPState();
        toState.SetStateInfo(stateInfo);
        CRPJob toJob = toState.RetrieveJob(i);

        StateActionMap map = new StateActionMap();
        map.PreActionState = fromState;
        map.PostActionState = toState;

        double cost = 0;

        if (lastJob != null && lastJob.Color.ColorNumber != toJob.Color.ColorNumber)
            cost = 1;

        map.Cost = cost;

        if (toState.JobCount <= 0) 
        {
            toState.IsLastStage = true;
        }

        maps.Add(map);
    }

    return maps;
}

Last updated