Exemplo n.º 1
0
    void OnBoltOpened()
    {
        switch (state)
        {
        case EjectorState.Empty: break;

        case EjectorState.Round:
            Debug.Log("Round ejected.");
            if (OnRoundEjected != null)
            {
                OnRoundEjected();
            }
            break;

        case EjectorState.Case:
            Debug.Log("Case ejected.");
            if (OnCaseEjected != null)
            {
                OnCaseEjected();
            }
            break;
        }
        State             = EjectorState.Empty;
        previousBoltState = BoltState.Open;
    }
Exemplo n.º 2
0
    void OnBoltMoved(float position)
    {
        if (chamber == null)
        {
            return;
        }
        if (previousBoltState == BoltState.Closed)
        {
            switch (chamber.Clear())
            {
            case ChamberState.Empty:
                State = EjectorState.Empty;
                break;

            case ChamberState.Round:
                State = EjectorState.Round;
                break;

            case ChamberState.Case:
                State = EjectorState.Case;
                break;
            }
        }
        previousBoltState = BoltState.Running;
    }
Exemplo n.º 3
0
    void OnBoltClosed()
    {
        if (chamber != null)
        {
            switch (state)
            {
            case EjectorState.Empty: break;

            case EjectorState.Round:
                chamber.State = ChamberState.Round;
                break;

            case EjectorState.Case:
                chamber.State = ChamberState.Case;
                break;
            }
            State = EjectorState.Empty;
        }
        previousBoltState = BoltState.Closed;
    }