예제 #1
0
 public InputActionData GetActionDataByInputAction(InputsManager.InputAction input_action, ControllerType controller_type = ControllerType._Count)
 {
     InputActionData[] array;
     if (this.m_ActionsByInputAction.TryGetValue(input_action.GetActionId(TriggerAction.TYPE.None), out array))
     {
         return(array[(int)((controller_type == ControllerType._Count) ? GreenHellGame.Instance.m_Settings.m_ControllerType : controller_type)]);
     }
     return(null);
 }
예제 #2
0
    public void LoadSettings(BinaryFormatter bf, Stream file, GameVersion gv)
    {
        int controller_type = 0;
        Dictionary <int, int> dictionary  = new Dictionary <int, int>();
        Dictionary <int, int> dictionary2 = new Dictionary <int, int>();
        int num = (int)bf.Deserialize(file);

        if (num != 1)
        {
            int num2 = num;
            for (int i = 0; i < num2; i++)
            {
                bf.Deserialize(file);
                bf.Deserialize(file);
            }
            num2 = (int)bf.Deserialize(file);
            for (int j = 0; j < num2; j++)
            {
                bf.Deserialize(file);
                bf.Deserialize(file);
            }
            return;
        }
        int num3 = (int)bf.Deserialize(file);

        for (int k = 0; k < num3; k++)
        {
            InputsManager.InputAction inputAction = InputsManager.InputAction.None;
            TriggerAction.TYPE        type        = TriggerAction.TYPE.None;
            string            value    = (string)bf.Deserialize(file);
            bool              flag     = Enum.TryParse <InputsManager.InputAction>(value, out inputAction);
            bool              flag2    = !flag && Enum.TryParse <TriggerAction.TYPE>(value, out type);
            int               actionId = inputAction.GetActionId(type);
            string            value2   = (string)bf.Deserialize(file);
            KeyCode           value3   = (KeyCode)Enum.Parse(typeof(KeyCode), value2);
            InputActionData[] array;
            if (this.m_ActionsByInputAction.TryGetValue(actionId, out array))
            {
                if (flag)
                {
                    dictionary[(int)inputAction] = (int)value3;
                }
                if (flag2)
                {
                    dictionary2[(int)type] = (int)value3;
                }
            }
        }
        ScriptParser scriptParser = new ScriptParser();

        scriptParser.Parse(this.m_InputsScript, true);
        if (GreenHellGame.s_GameVersionEarlyAccessUpdate6 > gv)
        {
            for (int l = 0; l < scriptParser.GetKeysCount(); l++)
            {
                Key key = scriptParser.GetKey(l);
                if (key.GetName() == "Action" && (key.GetVariable(0).SValue == EnumUtils <InputsManager.InputAction> .GetName(InputsManager.InputAction.FishingAim) || key.GetVariable(0).SValue == EnumUtils <InputsManager.InputAction> .GetName(InputsManager.InputAction.FishingCast) || key.GetVariable(0).SValue == EnumUtils <InputsManager.InputAction> .GetName(InputsManager.InputAction.FishingReel) || key.GetVariable(0).SValue == EnumUtils <InputsManager.InputAction> .GetName(InputsManager.InputAction.FishingStrike)))
                {
                    this.LoadAction(key, false, false);
                }
            }
        }
        if (num3 == this.m_ActionsByInputAction.Count && gv >= GreenHellGame.s_GameVersionReleaseCandidate)
        {
            this.ApplyOptions(dictionary, dictionary2, (ControllerType)controller_type);
        }
    }
예제 #3
0
 public float GetActionValue(InputsManager.InputAction action)
 {
     return(this.GetActionValue(action.GetActionId(TriggerAction.TYPE.None)));
 }