Beispiel #1
0
 // Use this for initialization
 void Start()
 {
     conveyor   = GameObject.FindGameObjectWithTag("conveyor").GetComponent <ConveyorManager>();
     chopMaster = conveyor.chopMaster;
     cursorPos  = conveyor.transform.GetChild(0).position;
     GoToGrabPos();
 }
Beispiel #2
0
 private void Start()
 {
     manager    = GameObject.FindWithTag("TileManager").GetComponent <ConveyorManager>();
     sr         = GetComponent <SpriteRenderer>();
     mb         = GameObject.FindObjectOfType <MenuBehaviour>();
     startColor = sr.color;
 }
Beispiel #3
0
 // Use this for initialization
 void Start()
 {
     audioManager          = GameObject.Find("AudioManager");
     conveyor              = GameObject.FindGameObjectWithTag("conveyor").GetComponent <ConveyorManager>();
     handManager           = hand.GetComponent <HandManager>();
     activated             = false;
     madeArrowSequenceList = false;
     currSequenceIdx       = 0;
     sequenceIterator      = 0;
     arrowTime             = timeBetweenArrows;
 }
Beispiel #4
0
        /// <summary> Create <see cref="IConveyor{TData, TResult}" /> with single static conveyor machine without service registration </summary>
        /// <param name="services"> Service collection </param>
        /// <param name="conveyorMachine"> Conveyor machine instance </param>
        /// <param name="maxAttempts"> Max allowed retry on fail attempts </param>
        /// <typeparam name="TData"> Input data type </typeparam>
        /// <typeparam name="TResult"> Processing result type </typeparam>
        /// <exception cref="ArgumentNullException"> Thrown if <paramref name="conveyorMachine" /> is NULL </exception>
        public static IConveyor <TData, TResult> CreateConveyor <TData, TResult>(this IServiceCollection services,
                                                                                 IConveyorMachine <TData, TResult> conveyorMachine, int maxAttempts = int.MaxValue)
            where TData : notnull
        {
            if (conveyorMachine == null)
            {
                throw new ArgumentNullException(nameof(conveyorMachine));
            }
            var manager = new ConveyorManager <TData, TResult>(maxAttempts);

            services.AddHostedService(provider => new TaskWorker <IConveyorMachine <TData, TResult>, object?>(provider,
                                                                                                              manager,
                                                                                                              ProcessorFactory.CreateProcessor <IConveyorMachine <TData, TResult>, object?>(conveyorMachine)));
            return(manager);
        }
        public void HandleOneMotorPulseTest()
        {
            BiscuitMakerManager.TurnOn(this.Maker);
            Action action = () => ConveyorManager.HandleMotorPulse(
                null,
                new OnMotorPulseEventArgs {
                Maker = this.Maker
            }
                );

            action.Should().NotThrow();

            this.Maker.FirstConveyor.Belt.Count.Should().Be(6);
            this.Maker.FirstConveyor.Belt.ElementAt(1).Should().NotBeNull();
            this.Maker.FirstConveyor.Belt.ElementAt(1).IsExtruded.Should().BeTrue();
        }
Beispiel #6
0
        /// <summary> Create <see cref="IConveyor{TData, TResult}" /> with static conveyor machines without service registration </summary>
        /// <param name="services"> Service collection </param>
        /// <param name="conveyorMachines"> Conveyor machines collection </param>
        /// <param name="maxAttempts"> Max allowed retry on fail attempts </param>
        /// <typeparam name="TData"> Input data type </typeparam>
        /// <typeparam name="TResult"> Processing result type </typeparam>
        /// <exception cref="ArgumentNullException"> Thrown if <paramref name="conveyorMachines" /> is NULL </exception>
        /// <exception cref="ArgumentException"> Thrown if <paramref name="conveyorMachines" /> collection is empty </exception>
        public static IConveyor <TData, TResult> CreateConveyor <TData, TResult>(this IServiceCollection services,
                                                                                 IEnumerable <IConveyorMachine <TData, TResult> > conveyorMachines, int maxAttempts = int.MaxValue)
            where TData : notnull
        {
            var arguments = (conveyorMachines ?? throw new ArgumentNullException(nameof(conveyorMachines))).Where(machine => machine != null).ToList();

            if (arguments.Count == 0)
            {
                throw new ArgumentException("Empty collection", nameof(conveyorMachines));
            }
            var manager = new ConveyorManager <TData, TResult>(maxAttempts);

            services.AddHostedService(provider => new TaskWorker <IConveyorMachine <TData, TResult>, object?>(provider,
                                                                                                              manager,
                                                                                                              ProcessorFactory.CreateProcessor <IConveyorMachine <TData, TResult>, object?>(arguments)));
            return(manager);
        }
        public void HandleFullCycleMotorPulseTest()
        {
            BiscuitMakerManager.TurnOn(this.Maker);
            Action action = () => ConveyorManager.HandleMotorPulse(
                null,
                new OnMotorPulseEventArgs {
                Maker = this.Maker
            }
                );

            action.Should().NotThrow();
            action.Invoke();
            action.Invoke();
            action.Invoke();
            action.Invoke();
            action.Invoke();

            this.Maker.FirstConveyor.Belt.Count.Should().Be(6);
            this.Maker.FirstConveyor.Belt.ElementAt(0).Should().BeNull();

            this.Maker.FirstConveyor.Belt.ElementAt(1).Should().NotBeNull();
            this.Maker.FirstConveyor.Belt.ElementAt(1).IsExtruded.Should().BeTrue();

            this.Maker.FirstConveyor.Belt.ElementAt(2).Should().NotBeNull();
            this.Maker.FirstConveyor.Belt.ElementAt(2).IsExtruded.Should().BeTrue();
            this.Maker.FirstConveyor.Belt.ElementAt(2).IsStamped.Should().BeTrue();

            this.Maker.FirstConveyor.Belt.ElementAt(3).Should().NotBeNull();
            this.Maker.FirstConveyor.Belt.ElementAt(3).IsExtruded.Should().BeTrue();
            this.Maker.FirstConveyor.Belt.ElementAt(3).IsStamped.Should().BeTrue();

            this.Maker.FirstConveyor.Belt.ElementAt(4).Should().NotBeNull();
            this.Maker.FirstConveyor.Belt.ElementAt(4).IsExtruded.Should().BeTrue();
            this.Maker.FirstConveyor.Belt.ElementAt(4).IsStamped.Should().BeTrue();

            this.Maker.FirstConveyor.Belt.ElementAt(5).Should().NotBeNull();
            this.Maker.FirstConveyor.Belt.ElementAt(5).IsExtruded.Should().BeTrue();
            this.Maker.FirstConveyor.Belt.ElementAt(5).IsStamped.Should().BeTrue();

            this.Maker.FirstBucket.Biscuits.Count.Should().Be(1);
            this.Maker.FirstBucket.Biscuits.First().IsExtruded.Should().BeTrue();
            this.Maker.FirstBucket.Biscuits.First().IsStamped.Should().BeTrue();
            this.Maker.FirstBucket.Biscuits.First().IsDone.Should().BeTrue();
        }
Beispiel #8
0
        /// <summary>
        ///     Create <see cref="IConveyor{TData, TResult}" /> with given conveyor machines reuse <paramref name="strategy" /> without service
        ///     registration
        /// </summary>
        /// <param name="services"> Service collection </param>
        /// <param name="conveyorMachineFactory"> Conveyor machine factory function </param>
        /// <param name="strategy"> Conveyor machines reuse strategy <seealso cref="ReuseStrategy" /></param>
        /// <param name="maxParallelMachines"> Max allowed parallel conveyor machines </param>
        /// <param name="maxAttempts"> Max allowed retry on fail attempts </param>
        /// <typeparam name="TData"> Input data type </typeparam>
        /// <typeparam name="TResult"> Processing result type </typeparam>
        /// <exception cref="ArgumentNullException"> Thrown if <paramref name="conveyorMachineFactory" /> is NULL </exception>
        /// <exception cref="InvalidEnumArgumentException"> Thrown if <paramref name="strategy" /> has incorrect value </exception>
        public static IConveyor <TData, TResult> CreateConveyor <TData, TResult>(this IServiceCollection services,
                                                                                 Func <IServiceProvider, IConveyorMachine <TData, TResult> > conveyorMachineFactory, ReuseStrategy strategy, int maxParallelMachines = 1,
                                                                                 int maxAttempts = int.MaxValue)
            where TData : notnull
        {
            if (conveyorMachineFactory == null)
            {
                throw new ArgumentNullException(nameof(conveyorMachineFactory));
            }
            if (strategy != ReuseStrategy.Static && strategy != ReuseStrategy.Reuse && strategy != ReuseStrategy.OneTime)
            {
                throw new InvalidEnumArgumentException(nameof(strategy), (int)strategy, typeof(ReuseStrategy));
            }
            var manager = new ConveyorManager <TData, TResult>(maxAttempts);

            services.AddHostedService(provider => new TaskWorker <IConveyorMachine <TData, TResult>, object?>(provider,
                                                                                                              manager,
                                                                                                              ProcessorFactory.CreateProcessor <IConveyorMachine <TData, TResult>, object?>(conveyorMachineFactory,
                                                                                                                                                                                            strategy,
                                                                                                                                                                                            provider,
                                                                                                                                                                                            maxParallelMachines)));
            return(manager);
        }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        ConveyorManager conveyor = (ConveyorManager)target;

        string text = "####################################################\n           INVENTORY\n####################################################\n";

        for (int i = 0; i < conveyor.ConveyorInv.items.Count; i++)
        {
            Item item     = conveyor.ConveyorInv.items[i];
            int  quantity = conveyor.ConveyorInv.quantity[i];

            text += (item.name + ": " + quantity + "\n");
        }
        if (conveyor.ConveyorInv.items.Count == 0)
        {
            text += "Inv empty";
        }


        GUILayout.Label(text);
    }
 private void Start()
 {
     manager = GameObject.FindWithTag("TileManager").GetComponent <ConveyorManager>();
     //InvokeRepeating("SpawnObject", 0, spawnTimer);
     StartCoroutine(SpawnObject());
 }