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; } }
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; } } }
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(); } }
public bool IsMoving() { if (AxisList.Count != 0) { if (DateTime.Now.Subtract(AxisList.Last().CurrentDateTime).TotalMilliseconds > 666) { return(false); } } return(true); }
public bool Reset() { try { AxisList.Clear(); } catch (Exception) { return(false); } return(true); }
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); } }
/// <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); }
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); }
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(); } }