コード例 #1
0
ファイル: Mechanic.cs プロジェクト: thou-kasatik/Solution1
 public void MoveToHome()
 {
     while (!NextCoordinates.IsLocatedIn(BaseCoordinates))
     {
         MoveTo(BaseCoordinates);
     }
 }
コード例 #2
0
 public void MoveTo(Coordinates coordinates)
 {
     Thread.Sleep(100);
     if (!NextCoordinates.IsLocatedIn(coordinates))
     {
         NextCoordinates.ShiftTo(coordinates);
     }
 }
コード例 #3
0
ファイル: Mechanic.cs プロジェクト: thou-kasatik/Solution1
 public void Repair()
 {
     while (!NextCoordinates.IsLocatedIn(Warehouse.Coordinates))
     {
         MoveTo(Warehouse.Coordinates);
     }
     Thread.Sleep(1000);
     Warehouse.NeedMechanic = false;
     Warehouse.Workload     = 0;
     Warehouse.ImageId      = 1;
     MoveToHome();
 }
コード例 #4
0
 public void Run()
 {
     while (true)
     {
         if (Warehouses.Count == 0)
         {
             MoveTo(BaseCoordinates);
         }
         else
         {
             while (!NextCoordinates.IsLocatedIn(Warehouses[0].Coordinates))
             {
                 MoveTo(Warehouses[0].Coordinates);
             }
             Unload(Warehouses[0]);
         }
     }
 }
コード例 #5
0
 public void Run()
 {
     while (true)
     {
         if (Warehouses.Count == 0)
         {
             MoveTo(BaseCoordinates);
         }
         else
         {
             Warehouse warehouse = Next();
             while (!NextCoordinates.IsLocatedIn(warehouse.Coordinates))
             {
                 MoveTo(warehouse.Coordinates);
             }
             Unload(warehouse);
         }
     }
 }
コード例 #6
0
        public Warehouse Next()
        {
            Warehouse warehouse = null;

            foreach (Warehouse current in Warehouses)
            {
                if (warehouse == null)
                {
                    warehouse = current;
                }
                else
                {
                    if (NextCoordinates.CalculateDistanceTo(warehouse.Coordinates) > NextCoordinates.CalculateDistanceTo(current.Coordinates))
                    {
                        warehouse = current;
                    }
                }
            }
            return(warehouse);
        }
コード例 #7
0
 public bool InBaseCoordinates()
 {
     return(NextCoordinates.IsLocatedIn(BaseCoordinates));
 }