ActionControl

Action과 관련된 기능을 담당하는 컨트롤

GetStateActionMaps

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

정의

주어진 State에서 고려할 Action 집합을 정의합니다.

매개변수

TypeDescription

State

대상 State 입니다.

반환

TypeDescriptionDefault

List<StateActionMap>

StateActionMap 리스트 입니다.

Empty List

예제

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