Ejemplo n.º 1
0
 private void Awake()
 {
     turnManager      = GetComponent <TurnManager>();
     navMeshAgent     = GetComponent <NavMeshAgent>();
     shooterCharacter = GetComponent <ShooterCharacter>();
     movementDetector = GetComponentInChildren <MovementDetector>();
 }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 7
0
 private void Awake()
 {
     turnManager      = GetComponent <TurnManager>();
     movementDetector = GetComponentInChildren <MovementDetector>();
 }