Example #1
0
    public override void OnSignalRecieved(eObject source, string[] signal)
    {
        base.OnSignalRecieved(source, signal);

        switch (signal[0])
        {
        case "Activate":
            if (source != this)
            {
                m_activator = source;
            }
            m_playerSlime.FreezePlayer();
            TriggerEvent(dShower, "dialog " + passageName);
            break;

        case "cameraMove":
            camCtrl.cameraMoveTo(cameraPos.position, cameraPos.rotation);
            break;

        case "cameraRet":
            camCtrl.cameraMoveBack();
            break;

        case "dialogEnd":
            camCtrl.cameraMoveBack();
            m_playerSlime.UnfreezePlayer();
            TriggerEvent(m_activator, "dialogEnd");
            break;

        case "translate":
            if (transformList != null)
            {
                int        index = int.Parse(signal[1]);
                Vector3    pos   = Toolbox.ToVec3(signal[2], signal[3], signal[4]);
                Quaternion q     = Quaternion.Euler(Toolbox.ToVec3(signal[5], signal[6], signal[7]));

                if (index < transformList.Length)
                {
                    transformList[index].position = pos;
                    transformList[index].rotation = q;
                }
            }
            break;

        case "changeState":
            if (state_changeTo != GameMainProcessState.None)
            {
                GameDataKeeper.GetSingleton().SetMainProcess(state_changeTo);
            }
            break;

        default:
            string str = "";
            for (int i = 0; i < signal.Length; i++)
            {
                if (i < signal.Length - 1)
                {
                    str = str + signal[i] + " ";
                }
                else
                {
                    str = str + signal[i];
                }
            }
            TriggerEvent(m_activator, str);
            break;
        }
    }