Esempio n. 1
0
        /// <summary>
        /// Mnozstvi ledu v generatoru
        /// </summary>
        /// <returns></returns>
        public List <string> GetIceStatus()
        {
            // definice
            List <string> status = new List <string>();

            // prochazeni bloku
            foreach (KeyValuePair <string, IMyGasGenerator> block in Instance.GetByType <IMyGasGenerator>())
            {
                // definice
                List <MyInventoryItem> items = new List <MyInventoryItem>();
                float total = 0;
                // nacteni polozek v inventari
                block.Value.GetInventory(0).GetItems(items);
                // vypocet celkoveho mnozstvi
                if (items.Count > 0)
                {
                    for (int j = 0; j < items.Count; j++)
                    {
                        if (items[j].Type.SubtypeId == "Ice")
                        {
                            total += (float)items[j].Amount;
                        }
                    }
                }
                // status
                if (block.Value.IsWorking && block.Value.IsFunctional)
                {
                    status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value), total, IceReference));
                }
            }
            // vraceni
            return(status);
        }
Esempio n. 2
0
        /// <summary>
        /// Stav zasobnikuplynu
        /// </summary>
        /// <returns>Stav zasobniku</returns>
        public List <string> GetTankStatus()
        {
            // definice
            List <string> status = new List <string>();

            // prochazeni bloku
            foreach (KeyValuePair <string, IMyGasTank> block in Instance.GetByType <IMyGasTank>())
            {
                status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value), (block.Value as IMyGasTank).FilledRatio, 1));
            }
            return(status);
        }
Esempio n. 3
0
        /// <summary>
        /// Status generatoru
        /// </summary>
        /// <returns></returns>
        public List <string> GetReactorStatus()
        {
            // definice
            List <string> status = new List <string>();

            //prochazeni bloku
            foreach (KeyValuePair <string, IMyReactor> block in Instance.GetByType <IMyReactor>())
            {
                //hodnoty
                IMyReactor reactor = block.Value as IMyReactor;
                float      actual  = reactor.CurrentOutput;
                float      maximum = reactor.MaxOutput;
                float      uranium = 0;
                //overeni funkcnosti
                if (reactor.IsFunctional && reactor.IsWorking)
                {
                    //overeni mnozstvi uranu
                    if (UraniumReference > 0)
                    {
                        // polozky inventare
                        List <MyInventoryItem> items = new List <MyInventoryItem>();
                        reactor.GetInventory(0).GetItems(items);
                        // vypocet mnozstvi uranu
                        if (items.Count > 0)
                        {
                            for (int j = 0; j < items.Count; j++)
                            {
                                if (items[j].Type.SubtypeId == "Uranium")
                                {
                                    uranium += (float)items[j].Amount;
                                }
                            }
                        }
                        // doplneni statusu do vystupu
                        status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value, uranium <= UraniumReference ? Status.UraniumIsLow : Status.Working), actual, maximum));
                    }
                    else
                    {
                        status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value, Status.UraniumIsEmpty), 0, maximum));
                    }
                }
                else
                {
                    status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value, Status.NotWorking), 0, maximum));
                }
            }
            // vraceni
            return(status);
        }
Esempio n. 4
0
        /// <summary>
        /// Status baterek
        /// </summary>
        /// <returns></returns>
        public List <string> GetBatteryStatus()
        {
            // definice
            List <string> status = new List <string>();

            //prochazeni bloku
            foreach (KeyValuePair <string, IMyBatteryBlock> block in Instance.GetByType <IMyBatteryBlock>())
            {
                // hodnoty
                float input   = block.Value.CurrentInput;
                float output  = block.Value.CurrentOutput;
                float stored  = block.Value.CurrentStoredPower;
                float maximum = block.Value.MaxStoredPower;
                // overeni funkcnosti
                if (block.Value.IsFunctional && block.Value.IsWorking)
                {
                    if (stored == maximum)
                    {
                        status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value, Status.FullyCharged), stored, maximum));
                    }
                    else if (input > output)
                    {
                        status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value, Status.Recharging), stored, maximum));
                    }
                    else
                    {
                        status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value, Status.Discharging), stored, maximum));
                    }
                }
                else
                {
                    status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value, Status.NotWorking), 0, maximum));
                }
            }
            // zadne baterky
            if (status.Count == 0)
            {
                status.Add(Status.NoBatteries);
            }
            // vraceni
            return(status);
        }
Esempio n. 5
0
        /// <summary>
        /// Status solarnich panelu
        /// </summary>
        /// <param name="groupedName">Nazev pro seskupeni</param>
        /// <returns></returns>
        public List <string> GetSolarStatus()
        {
            // definice
            List <string> status = new List <string>();

            //prochazeni bloku
            foreach (KeyValuePair <string, IMySolarPanel> block in Instance.GetByType <IMySolarPanel>())
            {
                // hodnoty
                float actual  = block.Value.CurrentOutput;
                float maximum = block.Value.MaxOutput;
                // overeni funkcnosti
                status.Add(Formater.BarsWithPercent(Block.GetStatus(block.Value), actual, maximum));
            }
            // zadne panely
            if (status.Count == 0)
            {
                status.Add(Status.NoSolarPanels);
            }
            // vraceni
            return(status);
        }