internal static PictureBox CreateFuelTankPictureBox(FuelTankView fuelTankView,
                                                            Point locationPoint)
        {
            var        size     = 50;
            PictureBox fuelTank = new PictureBox
            {
                Tag       = fuelTankView,
                Image     = Properties.Resources.FuelTank,
                Size      = new Size(size, size),
                Location  = locationPoint,
                SizeMode  = PictureBoxSizeMode.StretchImage,
                BackColor = Color.Wheat
            };

            fuelTankView.DefinePointOfRefilling(fuelTank);

            fuelTank.MouseClick += FuelTankPictureBox_Click;

            _modelingForm.PlaygroundPanel.Controls.Add(fuelTank);
            fuelTank.BringToFront();

            _mappedTopology.FuelTanksList.Add(fuelTank);

            return(fuelTank);
        }
コード例 #2
0
        public static RefuellerView CreateRefuellerView(FuelTankView fuelTank)
        {
            var speedOfRefillingPerSecond = 5000;

            return(new RefuellerView(speedOfRefillingPerSecond)
            {
                FuelTank = fuelTank
            });
        }
コード例 #3
0
        internal static void RefillFuelTank(RefuellerPictureBox refueller, FuelTankView fillingFuelTank)
        {
            var refuellerView = refueller.Tag as RefuellerView;

            refuellerView.RefillFuelTank();

            if (fillingFuelTank.CurrentFullness >= fillingFuelTank.Volume || refuellerView.FuelRemaining <= 0)
            {
                StopRefilling(refueller, fillingFuelTank);
            }
        }
コード例 #4
0
        private static void StopRefilling(RefuellerPictureBox refueller, FuelTankView fillingFuelTank)
        {
            var refuellerView = refueller.Tag as RefuellerView;

            if (fillingFuelTank.CurrentFullness >= fillingFuelTank.Volume)
            {
                var fuelSurplus = fillingFuelTank.CurrentFullness - fillingFuelTank.Volume;

                if (refuellerView.FuelRemaining <= 0)
                {
                    fuelSurplus = -fuelSurplus;
                }

                refuellerView.ReturnFuelFromFuelTank(fuelSurplus);
            }

            refueller.IsFilling = false;
            refueller.IsFilled  = true;

            _isRefilling = false;
        }
コード例 #5
0
 internal static void StartRefilling(RefuellerPictureBox refueller, FuelTankView fuelTank)
 {
     refueller.IsFilling = true;
 }
コード例 #6
0
 private static void CallRefueller(FuelTankView fuelTank)
 {
     RefuellerCreator.SpawnRefueller(fuelTank);
 }
コード例 #7
0
 internal static void SpawnRefueller(FuelTankView fuelTank)
 {
     var refuellerView = ElementViewProducer.CreateRefuellerView(fuelTank);
     var refueller     = ElementPictureBoxProducer.CreateRefuellerPictureBox(refuellerView);
 }