private void Awake() { turnManager = GetComponent <TurnManager>(); navMeshAgent = GetComponent <NavMeshAgent>(); shooterCharacter = GetComponent <ShooterCharacter>(); movementDetector = GetComponentInChildren <MovementDetector>(); }
private bool TryRemoveChannel(string channelPath) { MovementDetector detector = (MovementDetector)Program.Workers.FirstOrDefault(w => w is MovementDetector); //Returns false if the given setting does not exist if (detector.Settings.Count(a => a.ChannelPath.Equals(channelPath)) == 0) { return(false); } //Creates a new array with the given setting removed MovementDetectorSetting[] newArr = detector.Settings.Where(a => !a.ChannelPath.Equals(channelPath)).ToArray(); //Tries to write the settings with the given one removed to file try { File.WriteAllText( MovementDetector.File, JsonSerializer.Serialize <MovementDetectorSetting[]>(newArr, new JsonSerializerOptions { WriteIndented = true })); } catch (Exception) { return(false); } return(true); }
private bool TryAddChannel(string channelPath) { MovementDetector detector = (MovementDetector)Program.Workers.FirstOrDefault(w => w is MovementDetector); //Returns false if the given setting already exists if (detector?.Settings.Count(a => a.ChannelPath.Equals(channelPath)) > 0) { return(false); } //Creates a new array with the new setting appended MovementDetectorSetting[] newArr = detector.Settings .Append(new MovementDetectorSetting(channelPath)).ToArray(); //Tries to write the new setting to file try { File.WriteAllText( MovementDetector.File, JsonSerializer.Serialize <MovementDetectorSetting[]>(newArr, new JsonSerializerOptions { WriteIndented = true })); } catch (Exception) { return(false); } return(true); }
public void IsMovementPercentAccurate() { using var img1 = new Bitmap(8, 8); using var img2 = new Bitmap(8, 8); img2.SetPixel(0, 0, Color.White); img2.SetPixel(1, 1, Color.White); img2.SetPixel(2, 2, Color.White); img2.SetPixel(3, 3, Color.White); var detector = new MovementDetector(); double movement = detector.GetMovementPercent(img1, img2); double expectedMovement = 4d / (8d * 8d); Assert.AreEqual(expectedMovement, movement); }
public void IsDetectorFilteringMovement() { using var img1 = new Bitmap(8, 8); using var img2 = new Bitmap(8, 8); img2.SetPixel(0, 0, Color.White); img2.SetPixel(1, 1, Color.White); img2.SetPixel(2, 2, Color.White); img2.SetPixel(3, 3, Color.White); var strictDetector = new MovementDetector(detectionPercentMin: 0.5); var preciseDetector = new MovementDetector(detectionPercentMin: 4d / (8d * 8d)); var tooPreciseDetector = new MovementDetector(detectionPercentMin: 5d / (8d * 8d)); Assert.IsFalse(strictDetector.HasMovement(img1, img2)); Assert.IsTrue(preciseDetector.HasMovement(img1, img2)); Assert.IsFalse(tooPreciseDetector.HasMovement(img1, img2)); }
public void IsDetectorFilteringPixels() { using var img1 = new Bitmap(8, 8); using var img2 = new Bitmap(8, 8); img2.SetPixel(0, 0, Color.White); img2.SetPixel(1, 1, Color.FromArgb(32, 32, 32)); img2.SetPixel(2, 2, Color.White); img2.SetPixel(3, 3, Color.White); var detector = new MovementDetector(64); double movement = detector.GetMovementPercent(img1, img2); double expectedMovement = 3d / (8d * 8d); Assert.AreEqual(expectedMovement, movement); }
private void Awake() { turnManager = GetComponent <TurnManager>(); movementDetector = GetComponentInChildren <MovementDetector>(); }