Exemplo n.º 1
0
        public void Add(Axis axis)
        {
            var Gravity = axis.X * axis.X + axis.Y * axis.Y + axis.Z * axis.Z;

            if (Gravity < 0.5 || Gravity > 1.5)
            {
                AxisList.Add(axis);
                if (-0.2 > axis.X || axis.X > 0.2)
                {
                    if (axis.X < -0.6)
                    {
                        axis.AccDirection = AccelerationDirection.Right;
                    }
                    else if (axis.X > 0.6)
                    {
                        axis.AccDirection = AccelerationDirection.Left;
                    }
                }
                else
                {
                    if ((axis.Y * axis.Y + axis.Z * axis.Z > 1.5))
                    {
                        axis.AccDirection = AccelerationDirection.Up;
                    }
                    else if (axis.Y * axis.Y + axis.Z * axis.Z < 0.5)
                    {
                        axis.AccDirection = AccelerationDirection.Down;
                    }
                }
                axis.CurrentDateTime = DateTime.Now;
            }
        }
Exemplo n.º 2
0
 public void CheckCurrentAction()
 {
     if (AxisList.Count == 0)
     {
         CurrentActionEnum = ActionEnum.None;
     }
     else
     {
         if (!(CurrentActionEnum.Equals(ActionEnum.None)))
         {
             return;
         }
         if (AxisList.Where(al => al.AccDirection.Equals(AccelerationDirection.Left)).Count() > 2)
         {
             CurrentActionEnum = ActionEnum.LeftShake;
         }
         else if (AxisList.Where(al => al.AccDirection.Equals(AccelerationDirection.Up)).Count() > 2)
         {
             CurrentActionEnum = ActionEnum.UpShake;
         }
         else if (AxisList.Where(al => al.AccDirection.Equals(AccelerationDirection.Down)).Count() > 2)
         {
             CurrentActionEnum = ActionEnum.DownShake;
         }
         else if (AxisList.Where(al => al.AccDirection.Equals(AccelerationDirection.Right)).Count() > 2)
         {
             CurrentActionEnum = ActionEnum.RightShake;
         }
     }
 }
Exemplo n.º 3
0
 public override void Initialize()
 {
     base.Initialize();
     AxisList.Add(this);
     Pos.X       = random.Next(WidthOfGame);
     Pos.Y       = random.Next(HeightOfGame) + 50;
     AngleInDeg  = 0;
     CollideType = CollideTypes.EnemyShips;
     CollideAgainstTypes.Add(CollideTypes.EnemyShips);
     SortAxisList();
 }
        public override async void GoHomePosition(bool suspendRefreshFromDevice = false)
        {
            //do not let each access to a status update request
            AxisList.ForEach(a => a.GoHomePosition(true));

            //might need to wait for the move to finish?
            if (!suspendRefreshFromDevice)
            {
                UpdateCurrentPositionFromDevice();
            }
        }
Exemplo n.º 5
0
 public bool IsMoving()
 {
     if (AxisList.Count != 0)
     {
         if (DateTime.Now.Subtract(AxisList.Last().CurrentDateTime).TotalMilliseconds > 666)
         {
             return(false);
         }
     }
     return(true);
 }
Exemplo n.º 6
0
 public bool Reset()
 {
     try
     {
         AxisList.Clear();
     }
     catch (Exception)
     {
         return(false);
     }
     return(true);
 }
Exemplo n.º 7
0
 private void AddAxis(AxisType axisType, float distanceToNext, float weightValue, float loadLimit = 0, float damage = 0)
 {
     if (AxisList.Count < 10)
     {
         float weightValueWithInaccuracy    = Math.Max(weightValue - Scales.Inaccuracy, 0);
         float distanceToNextWithInaccuracy = distanceToNext + InaccuracyRoulette;
         var   axis = new Axis(index: AxisList.Count,
                               type: axisType,
                               weightValue: weightValue,
                               weightValueWithInaccuracy: weightValueWithInaccuracy,
                               distanceToNext: distanceToNext,
                               distanceToNextWithInaccuracy: distanceToNextWithInaccuracy,
                               loadLimit: loadLimit,
                               damage: damage);
         AxisList.Add(axis);
     }
 }
Exemplo n.º 8
0
        /// <summary>
        /// Fluent interface for initializing pivot requests
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="axis"></param>
        /// <returns></returns>
        public PivotDefinition <T> OnAxis(params Expression <Func <T, object> >[] axis)
        {
            var axisNames = axis.Select(ExpressionTreeHelper.PropertyName);

            foreach (var axisName in axisNames)
            {
                var metadata = _schema.ServerSide.FirstOrDefault(v => v.Name == axisName);
                if (metadata == null)
                {
                    throw new ArgumentException($"Property {axisName} can not be used as a pivot axis as it is not a server-side value");
                }

                if (metadata.IsCollection)
                {
                    throw new ArgumentException($"Property {axisName} can not be used as a pivot axis as it is a collection");
                }

                AxisList.Add(metadata.Order);
            }

            return(this);
        }
Exemplo n.º 9
0
    Vector3 PortalNormal(GameObject portal, Camera camera, AxisList forwardAxis)
    {
        switch (forwardAxis)
        {
        case (AxisList.x):
            if (Vector3.Angle(portal.transform.right, (camera.transform.position - portal.transform.position)) <= 90)
            {
                return(-portal.transform.right);
            }
            else
            {
                return(portal.transform.right);
            }

        case (AxisList.y):
            if (Vector3.Angle(portal.transform.up, (camera.transform.position - portal.transform.position)) <= 90)
            {
                return(-portal.transform.up);
            }
            else
            {
                return(portal.transform.up);
            }

        case (AxisList.z):
            if (Vector3.Angle(portal.transform.forward, (camera.transform.position - portal.transform.position)) <= 90)
            {
                return(-portal.transform.forward);
            }
            else
            {
                return(portal.transform.forward);
            }
        }

        return(Vector3.zero);
    }
Exemplo n.º 10
0
    public ConfigFileIO()
    {
        axisList     = new AxisList(controlList);
        configPath   = Application.dataPath + "/CustomInputManager/Config/controls.cfg";
        defaultsPath = Application.dataPath + "/CustomInputManager/Config/defaultcontrols.cfg";

        if (!Directory.Exists(Application.dataPath + "/CustomInputManager/Config"))
        {
            Debug.Log("Creating Config folder...");
            AssetDatabase.CreateFolder("Assets/CustomInputManager", "Config");
        }

        //validate controls file
        try {
            LoadControls(configPath);
            Debug.Log("Successfully loaded controls file");
        } catch {
            Debug.Log("Controls file is nonexistent or corrupted. Generating new one...");
            if (File.Exists(defaultsPath))
            {
                LoadControls(defaultsPath);
                Debug.Log("Loaded controls from defaultcontrols.cfg");
            }
            else
            {
                Debug.Log("Default Controls are nonexistent or corrupted. Generating new one...");
                ///Default sample config
                controlList.AddKeybind("SampleKey", "Space", "A");
                controlList.AddKeybind("SampleKeyTwo", "W", "X");
                axisList.AddAxis("SampleAxis", "SampleKey", "SampleKeyTwo", "LeftStickX");
                WriteControls(defaultsPath);
            }

            ResetControls();
        }
    }