Exemple #1
0
        // Обновить состояние чайника
        public void Update(float timedelta = 1)
        {
            float heatQuantity = 0;

            if (PowerButton.State)
            {
                heatQuantity = Heater.Work(timedelta);
            }
            WaterContainer.Update(timedelta, heatQuantity);
        }
Exemple #2
0
        public Form1()
        {
            InitializeComponent();
            WaterContainer container = new WaterContainer(volume: 2000);
            Heater         heater    = new Heater(power: 1500, efficioncy: 0.85f);
            PowerButton    button    = new PowerButton();

            Teapot = new Teapot(container, heater, button);
            Teapot.AddWater(new Water(500, 20));
            DoubleBuffered = true;

            // Костыль
            ThreadStart start = new ThreadStart(() =>
            {
                Thread.Sleep(1000);
                while (ActiveForm != null)
                {
                    float timedelta = (float)(DateTime.Now - time).TotalSeconds;
                    if (timedelta > 0.03f)
                    {
                        time = DateTime.Now;
                        Teapot.Update(timedelta);
                        try
                        {
                            Form1.ActiveForm.Invoke(new Action(() => Refresh()));
                        }
                        catch
                        {
                            Thread.CurrentThread.Abort();
                        }
                    }
                }
            });
            Thread thread = new Thread(start);

            thread.Start();
        }
Exemple #3
0
 // Вылить количество воды (мл) из чайника
 public Water PourWater(int amount) => WaterContainer.PourWater(amount);
Exemple #4
0
 // Вылить всю воду из чайника
 public Water PourWater() => WaterContainer.PourWater();
Exemple #5
0
 // Добавить воды в чайник
 public void AddWater(Water water) => WaterContainer.AddWater(water);
Exemple #6
0
 public Teapot(WaterContainer waterContainer, Heater heater, PowerButton powerButton)
 {
     WaterContainer = waterContainer ?? throw new ArgumentNullException(nameof(waterContainer));
     Heater         = heater ?? throw new ArgumentNullException(nameof(heater));
     PowerButton    = powerButton ?? throw new ArgumentNullException(nameof(powerButton));
 }