Exemplo n.º 1
0
    public void UpdateVentingPhase(HeatVentController heatVent)
    {
        switch(heatVent.state)
        {
        case HeatVentState.Start:
            UpdateStart(heatVent);
            break;

        case HeatVentState.Closed:
            UpdateClosedState(heatVent);
            break;

        case HeatVentState.Opening:
            UpdateOpeningState(heatVent);
            break;

        case HeatVentState.WarmingUp:
            UpdateWarmingUpState(heatVent);
            break;

        case HeatVentState.Venting:
            UpdateVentingState(heatVent);
            break;

        case HeatVentState.Closing:
            UpdateClosingState(heatVent);
            break;
        }
    }
Exemplo n.º 2
0
    public void SetCycleCompletion(HeatVentController heatVent, float cyclePercent)
    {
        transitions[HeatVentState.Start](heatVent);
        HeatVentState targetState = HeatVentState.Closed;
        float targetStateStayTime = stateTimers[targetState];

        while (targetStateStayTime < totalCycleTime * cyclePercent)
        {
            transitions[targetState](heatVent);
            ++targetState;
            targetStateStayTime += stateTimers[targetState];
        }
        heatVent.state = targetState;
        heatVent.stateExitTime = Time.timeSinceLevelLoad + (targetStateStayTime - (totalCycleTime * cyclePercent));
    }
Exemplo n.º 3
0
 private void UpdateStart(HeatVentController heatVent)
 {
     TransitionToClosed(heatVent);
 }
Exemplo n.º 4
0
 private void UpdateWarmingUpState(HeatVentController heatVent)
 {
     if(Time.timeSinceLevelLoad >= heatVent.stateExitTime)
     {
         TransitionToVenting(heatVent);
     }
     else
     {
         heatVent.UpdateWarmingUp();
     }
 }
Exemplo n.º 5
0
    private void UpdateClosingState(HeatVentController heatVent)
    {
        if(Time.timeSinceLevelLoad >= heatVent.stateExitTime)
        {
            TransitionToClosed(heatVent);
        }
        else
        {
            heatVent.UpdateVentDoorClosing();

        }
    }
Exemplo n.º 6
0
 private void UpdateOpeningState(HeatVentController heatVent)
 {
     if(Time.timeSinceLevelLoad >= heatVent.stateExitTime)
     {
         TransitionToWarmingUp(heatVent);
     }
     else
     {
         heatVent.UpdateVentDoorOpening();
     }
 }
Exemplo n.º 7
0
 private void TransitionToWarmingUp(HeatVentController heatVent)
 {
     SetStateAndTimer(heatVent, HeatVentState.WarmingUp);
     UpdateWarmingUpState(heatVent);
 }
Exemplo n.º 8
0
 private void UpdateClosedState(HeatVentController heatVent)
 {
     if(Time.timeSinceLevelLoad >= heatVent.stateExitTime)
     {
         TransitionToOpening(heatVent);
     }
 }
Exemplo n.º 9
0
 private void TransitionToVenting(HeatVentController heatVent)
 {
     SetStateAndTimer(heatVent, HeatVentState.Venting);
     heatVent.SetHazadrousLayer();
     UpdateVentingState(heatVent);
 }
Exemplo n.º 10
0
 private void TransitionToOpening(HeatVentController heatVent)
 {
     SetStateAndTimer(heatVent, HeatVentState.Opening);
     UpdateOpeningState(heatVent);
 }
Exemplo n.º 11
0
 private void TransitionToClosing(HeatVentController heatVent)
 {
     SetStateAndTimer(heatVent, HeatVentState.Closing);
     heatVent.SetSafeLayer();
     UpdateClosingState(heatVent);
 }
Exemplo n.º 12
0
 private void TransitionToClosed(HeatVentController heatVent)
 {
     SetStateAndTimer(heatVent, HeatVentState.Closed);
     UpdateClosedState(heatVent);
 }
Exemplo n.º 13
0
 private void SetStateAndTimer(HeatVentController heatVent, HeatVentState state)
 {
     heatVent.StateExitTime = Time.timeSinceLevelLoad + stateTimers[state];
     heatVent.state = state;
 }