示例#1
0
        internal PressureStatisticalResult(
            PressureNode first,
            PressureNode last,
            IEnumerable <Crest> crests,
            IEnumerable <Trough> troughs,
            Crest highestInCrests,
            Crest lowestInCrests,
            Trough highestInTroughs,
            Trough lowestInTroughs)
        {
            this.First      = first;
            this.Last       = last;
            this.Crests     = crests.ToList();
            this.Troughs    = troughs.ToList();
            this.PeakToPeak = this.Crests
                              .Cast <PressureNode>()
                              .Concat(this.Troughs)
                              .OrderBy(x => x.TimeStamp)
                              .ToList();

            this.HighestInCrests  = highestInCrests;
            this.HighestInTroughs = highestInTroughs;
            this.LowestInCrests   = lowestInCrests;
            this.LowestInTroughs  = lowestInTroughs;
        }
示例#2
0
        public void setup()
        {
            LoadConfig(@"configuration/machine.json");
            setup_ball_search();

            this.all_gi_on();

            // Lamp showage
            //this.lampctrl.register_show("attract1", @"lamps\attract1.lampshow");
            this.lampctrl.RegisterShow("attract2", @"lamps/attract2.lampshow");
            //this.lampctrl.register_show("attract3", @"lamps\attract3.lampshow");
            //this.lampctrl.register_show("attract4", @"lamps\attract4.lampshow");

            // Intantiate basic game features
            attract         = new Attract(this);
            _base_game_mode = new BaseGameMode(this);

            string[] trough_switchnames = new string[3] {
                "trough1", "trough2", "trough3"
            };
            trough = new Trough(this,
                                trough_switchnames,
                                "trough1",
                                "trough",
                                new string[] { "leftOutlane", "rightOutlane" },
                                "shooterLane");
            ball_save = new BallSave(this, "ballSave", "shooterLane");

            // Link ball save to trough
            ball_save.allow_multiple_saves    = false;
            trough.ball_save_callback         = new AnonDelayedHandler(ball_save.launch_callback);
            trough.num_balls_to_save          = new GetNumBallsToSaveHandler(ball_save.get_num_balls_to_save);
            ball_save.trough_enable_ball_save = new BallSaveEnable(trough.enable_ball_save);

            this.PROC.initialize_i2c(0x40);

            ServoConfiguration _servoConfig = new ServoConfiguration()
            {
                address = 0x40, minimum = 150, maximum = 600
            };

            this.wall1         = new I2cServo(0, _servoConfig, this.PROC);
            this.wall2         = new I2cServo(1, _servoConfig, this.PROC);
            this.flasherMotor1 = new I2cServo(2, _servoConfig, this.PROC);
            this.flasherMotor2 = new I2cServo(3, _servoConfig, this.PROC);
            this.flasherMotor3 = new I2cServo(4, _servoConfig, this.PROC);
            this.testServo     = new I2cServo(0, _servoConfig, this.PROC);

            if (this.ledDriver != null)
            {
                this.ledDriver.FadeAllToColor(255, 255, 255, 0);
                this.ledDriver.ScheduleAll(0xFFFFFFFF);
            }

            // Instead of resetting everything here as well as when a user initiated reset occurs, do everything in
            // this.reset and call it now and during a user initiated reset
            this.Reset();
        }
示例#3
0
        public void RegisterTrough(Trough trough, GameObject go)
        {
            var troughApi = new TroughApi(trough, this);

            _apis.Add(troughApi);
            _initializables.Add(troughApi);
            _switchDevices[trough.Name] = troughApi;
            _coilDevices[trough.Name]   = troughApi;
            _wireDevices[trough.Name]   = troughApi;
        }
        private void AddReagent(IReagent reagent)
        {
            var reagentTrough = new Trough
            {
                Name = reagent.Name
            };

            _result.Labware.Add(reagentTrough);
            _locationRepository.SetOrigin(reagent, reagentTrough);
        }
示例#5
0
        public static GameObject InstantiateEditorPrefab(this Trough trough, Transform parent)
        {
            var prefab   = Resources.Load <GameObject>("Prefabs/Trough");
            var troughGo = UnityEditor.PrefabUtility.InstantiatePrefab(prefab, parent) as GameObject;

            if (!troughGo)
            {
                return(troughGo);
            }
            var troughComponent = troughGo.GetComponent <TroughComponent>();

            troughComponent.SetData(trough.Data);
            return(troughGo);
        }
示例#6
0
        private void CreateTrough()
        {
            var troughData = new TroughData("Trough");

            if (_table.Has <Kicker>("BallRelease"))
            {
                troughData.ExitKicker = "BallRelease";
            }
            if (_table.Has <Kicker>("Drain"))
            {
                troughData.EntryKicker = "Drain";
            }
            var item = new Trough(troughData);

            _table.Add(item, true);
            CreateGameObjects(_tableAuthoring.Table, item, _tableAuthoring.gameObject);
        }
        /// <summary>
        /// Creates a trough.
        /// </summary>
        /// <param name="tableGo">Table game object, for retrieving references</param>
        /// <param name="parentGo">Parent game object of the new trough</param>
        /// <param name="name">Name of the new trough</param>
        /// <param name="exitKicker">Name of the exit kicker</param>
        /// <param name="entrySwitch">Name of the entry switch</param>
        protected static TroughComponent CreateTrough(GameObject tableGo, GameObject parentGo,
                                                      string name = "Trough", string exitKicker = "BallRelease", string entrySwitch = "Drain")
        {
            var trough = new Trough(new TroughData {
                BallCount   = 4,
                SwitchCount = 4,
                Type        = TroughType.ModernMech,
            });

            var troughGo        = trough.InstantiateEditorPrefab(parentGo.transform);
            var troughComponent = troughGo.GetComponent <TroughComponent>();

            var kickers = tableGo.GetComponentsInChildren <KickerComponent>();

            foreach (var kicker in kickers)
            {
                if (string.Equals(kicker.name, exitKicker, StringComparison.OrdinalIgnoreCase))
                {
                    troughComponent.PlayfieldExitKicker     = kicker;
                    troughComponent.PlayfieldExitKickerItem = kicker.AvailableCoils.First().Id;
                }
                if (string.Equals(kicker.name, entrySwitch, StringComparison.OrdinalIgnoreCase))
                {
                    troughComponent.PlayfieldEntrySwitch     = kicker;
                    troughComponent.PlayfieldEntrySwitchItem = kicker.AvailableSwitches.First().Id;
                }
            }

            if (troughComponent.PlayfieldEntrySwitch == null)
            {
                var triggers = tableGo.GetComponentsInChildren <TriggerComponent>();
                foreach (var trigger in triggers)
                {
                    if (string.Equals(trigger.name, entrySwitch, StringComparison.OrdinalIgnoreCase))
                    {
                        troughComponent.PlayfieldEntrySwitch = trigger;
                    }
                }
            }

            troughGo.name = name;
            return(troughComponent);
        }
示例#8
0
        public void setup()
        {
            LoadConfig(@"configuration\machine.json");
            setup_ball_search();

            this.all_gi_on();

            // Lamp showage
            this.lampctrl.register_show("attract1", @"lamps\attract1.lampshow");
            this.lampctrl.register_show("attract2", @"lamps\attract2.lampshow");
            this.lampctrl.register_show("attract3", @"lamps\attract3.lampshow");
            this.lampctrl.register_show("attract4", @"lamps\attract4.lampshow");

            // Intantiate basic game features
            attract         = new Attract(this);
            _base_game_mode = new BaseGameMode(this);

            string[] trough_switchnames = new string[5] {
                "trough1", "trough2", "trough3", "trough4", "trough5"
            };
            trough = new Trough(this,
                                trough_switchnames,
                                "trough5",
                                "trough",
                                new string[] { "leftOutlane", "rightOutlane" },
                                "shooterLane");
            ball_save = new BallSave(this, "ballSave", "shooterLane");

            claw = new Claw(this);

            // Link ball save to trough
            ball_save.allow_multiple_saves    = false;
            trough.ball_save_callback         = new AnonDelayedHandler(ball_save.launch_callback);
            trough.num_balls_to_save          = new GetNumBallsToSaveHandler(ball_save.get_num_balls_to_save);
            ball_save.trough_enable_ball_save = new BallSaveEnable(trough.enable_ball_save);

            // Instead of resetting everything here as well as when a user initiated reset occurs, do everything in
            // this.reset and call it now and during a user initiated reset
            this.Reset();
        }
        internal static IVpxPrefab InstantiatePrefab(this Trough trough)
        {
            var prefab = Resources.Load <GameObject>("Prefabs/Trough");

            return(new VpxPrefab <Trough, TroughData, TroughComponent>(prefab, trough));
        }
示例#10
0
        public void RegisterTrough(Trough trough, Entity entity, GameObject go)
        {
            var troughApi = new TroughApi(trough, entity, this);

            _initializables.Add(troughApi);
        }