Beispiel #1
0
        public override bool SetCart(Rails from, Cart cart)
        {
            if (From[Count % From.Count] != from)
            {
                return(false);
            }

            return(base.SetCart(from, cart));
        }
Beispiel #2
0
 public virtual bool SetCart(Rails from, Cart cart)
 {
     if (_cart == null)
     {
         _cart = cart;
         return(true);
     }
     else
     {
         return(false);
     }
 }
Beispiel #3
0
        private bool Move()
        {
            // Return true if you won't be dead
            if (Rails == null)
            {
                return(true);
            }

            if (Rails.To != null)
            {
                var cartHasSet = ((Rails)Rails.To).SetCart(Rails, this);

                if (cartHasSet)
                {
                    var to = Rails.To;

                    Rails.RemoveCart();
                    Rails = (Rails)to;

                    return(true);
                }
                else
                {
                    if (Rails is Parking)
                    {
                        return(true);
                    }
                    if (Rails.To is Switch)
                    {
                        return(true);
                    }

                    return(false);
                }
            }
            else if (!(Rails is Parking))
            {
                // Cart couldnt move
                // Delete cart
                Rails.RemoveCart();
                Rails = null;

                return(true);
            }

            return(true);
        }
Beispiel #4
0
 public virtual bool SetCart(Rails from, Cart cart)
 {
     return(true);
 }
Beispiel #5
0
        public Block[,] GetMap()
        {
            Block[,] map = new Rails[8, 12];

            // De map wordt vanaf links boven gemaakt
            // Bovenste rij
            for (int i = 0; i < 12; i++)
            {
                if (i == 9)
                {
                    var w = new Wharf(RailType.HORIZONTAL);
                    map[0, i] = w;
                    Wharf     = w;
                }
                else
                {
                    if (i == 11)
                    {
                        map[0, i] = new Rails(RailType.BOTTOMLEFT);
                    }
                    else
                    {
                        map[0, i] = new Rails(RailType.HORIZONTAL);
                    }
                }
            }

            //Rechts boven
            for (int i = 1; i < 4; i++)
            {
                if (i == 3)
                {
                    map[i, 11] = new Rails(RailType.TOPLEFT);
                }
                else
                {
                    map[i, 11] = new Rails(RailType.VERTICAL);
                }
            }

            map[3, 10] = new Rails(RailType.HORIZONTAL);

            var s1 = new Switch(RailType.TOPRIGHT, 3);

            map[3, 9] = s1;
            Switches.Add(s1);

            for (int i = 5; i < 10; i++)
            {
                if (i == 9)
                {
                    map[2, i] = new Rails(RailType.BOTTOMLEFT);
                }
                else if (i == 5)
                {
                    map[2, i] = new Rails(RailType.BOTTOMRIGHT);
                }
                else
                {
                    map[2, i] = new Rails(RailType.HORIZONTAL);
                }
            }

            var s2 = new Switch(RailType.TOPLEFT, 2);

            map[3, 5] = s2;
            Switches.Add(s2);

            map[3, 4] = new Rails(RailType.HORIZONTAL);

            var s3 = new Switch(RailType.TOPRIGHT, 1);

            map[3, 3] = s3;
            Switches.Add(s3);

            for (int i = 1; i < 4; i++)
            {
                if (i == 3)
                {
                    map[2, i] = new Rails(RailType.BOTTOMLEFT);
                }
                else
                {
                    map[2, i] = new Rails(RailType.HORIZONTAL);
                }
            }

            for (int i = 1; i < 4; i++)
            {
                if (i == 3)
                {
                    map[4, i] = new Rails(RailType.TOPLEFT);
                }
                else
                {
                    map[4, i] = new Rails(RailType.HORIZONTAL);
                }
            }

            map[4, 5] = new Rails(RailType.TOPRIGHT);
            map[4, 6] = new Rails(RailType.BOTTOMLEFT);
            map[4, 8] = new Rails(RailType.BOTTOMRIGHT);
            map[4, 9] = new Rails(RailType.TOPLEFT);

            var s4 = new Switch(RailType.TOPRIGHT, 4);

            map[5, 6] = s4;
            Switches.Add(s4);

            map[5, 7] = new Rails(RailType.HORIZONTAL);

            var s5 = new Switch(RailType.TOPLEFT, 5);

            map[5, 8] = s5;
            Switches.Add(s5);

            for (int i = 1; i < 7; i++)
            {
                if (i == 6)
                {
                    map[6, i] = new Rails(RailType.TOPLEFT);
                }
                else
                {
                    map[6, i] = new Rails(RailType.HORIZONTAL);
                }
            }

            for (int i = 8; i < 12; i++)
            {
                if (i == 8)
                {
                    map[6, i] = new Rails(RailType.TOPRIGHT);
                }
                else if (i == 11)
                {
                    map[6, i] = new Rails(RailType.BOTTOMLEFT);
                }
                else
                {
                    map[6, i] = new Rails(RailType.HORIZONTAL);
                }
            }

            for (int i = 1; i < 9; i++)
            {
                map[7, i] = new Parking(RailType.HORIZONTAL);
            }

            for (int i = 8; i < 12; i++)
            {
                if (i == 11)
                {
                    map[7, i] = new Rails(RailType.TOPLEFT);
                }
                else
                {
                    map[7, i] = new Rails(RailType.HORIZONTAL);
                }
            }

            // Warehouses
            var w1 = new Warehouse(RailType.HORIZONTAL, 'A');
            var w2 = new Warehouse(RailType.HORIZONTAL, 'B');
            var w3 = new Warehouse(RailType.HORIZONTAL, 'C');

            Warehouses.Add(w1);
            Warehouses.Add(w2);
            Warehouses.Add(w3);

            map[2, 0] = w1;
            map[4, 0] = w2;
            map[6, 0] = w3;

            map = LinkMap(map);

            return(map);
        }
Beispiel #6
0
 public override bool SetCart(Rails from, Cart cart)
 {
     return(base.SetCart(from, cart));
 }