Esempio n. 1
0
        public void Draw(MySpriteDrawFrame frame, Data dataChanged)
        {
            if (UseDataMinMax)
            {
                def.min = shipData[def.data].Min;
                def.max = shipData[def.data].Max;
                total   = def.max - def.min;
            }
            val = Ini.AdjustToUnit(def, shipData, total, UseDataMinMax);

            //Check for hide condition.
            if (Ini.MeetsConditions(def.conditions, val, def.condVals))
            {
                return;
            }

            if ((dataChanged & def.data) != 0)
            {
                semi.RotationOrScale = MathHelper.ToRadians(MathHelper.Clamp((float)(shipData[def.data].Value / total * 180f), 0, 180)) + def.rotation;

                frame.Add(full);
                frame.Add(semi);
                frame.Add(inner);
                frame.Add(box);
            }
            else
            {
                frame.Add(full);
                frame.Add(semi);
                frame.Add(inner);
                frame.Add(box);
            }
        }
        public void Draw(MySpriteDrawFrame frame, Data dataChanged)
        {
            if (UseDataMinMax)
            {
                def.min = shipData[def.data].Min;
                def.max = shipData[def.data].Max;
                total   = def.max - def.min;
            }
            val = Ini.AdjustToUnit(def, shipData, total, UseDataMinMax);

            //Check for hide condition.
            if (Ini.MeetsConditions(def.conditions, val, def.condVals))
            {
                return;
            }


            if ((dataChanged & def.data) != 0)
            {
                val = MathHelper.Clamp(shipData[def.data].Value, def.min, def.max) / total;
                semi.RotationOrScale = (float)MathHelper.ToRadians((val * 270) - 46f) + def.rotation;

                frame.Add(full);

                if (val > 0.5)
                {
                    frame.Add(semi);
                    frame.Add(top);
                }
                else
                {
                    frame.Add(semi);
                    frame.Add(bottom);
                }
                frame.Add(inner);
                frame.Add(triangle);
            }
            else
            {
                frame.Add(full);

                if (val > 0.5)
                {
                    frame.Add(semi);
                    frame.Add(top);
                }
                else
                {
                    frame.Add(semi);
                    frame.Add(bottom);
                }
                frame.Add(inner);
                frame.Add(triangle);
            }
        }
Esempio n. 3
0
        public void Draw(MySpriteDrawFrame frame, Data dataChanged)
        {
            if (def.data != Data.None)
            {
                val = Ini.AdjustToUnit(def, shipData, total, UseDataMinMax);

                //Check for hide condition.
                if (Ini.MeetsConditions(def.conditions, val, def.condVals))
                {
                    return;
                }
            }

            frame.Add(sprite);
        }
Esempio n. 4
0
        public void Draw(MySpriteDrawFrame frame, Data dataChanged)
        {
            if (UseDataMinMax)
            {
                def.min = shipData[def.data].Min;
                def.max = shipData[def.data].Max;
                total   = def.max - def.min;
            }
            val = Ini.AdjustToUnit(def, shipData, total, UseDataMinMax);

            //Check for hide condition.
            if (Ini.MeetsConditions(def.conditions, val, def.condVals))
            {
                return;
            }

            if ((dataChanged & def.data) != 0)
            {
                spriteSize.X = (float)Math.Abs(MathHelper.Clamp(shipData[def.data].Value, def.min, def.max) / total * def.size.X);
                //_sprite.Position = sm.AdjustToAnchor(def.anchor, def.position, spriteSize);
                sprite.Position = sm.AdjustToRotation(sm.AdjustToAnchor(def.anchor, def.position, spriteSize), def.position, def.rotation);
                sprite.Size     = spriteSize;
                if (def.backgroundSet)
                {
                    frame.Add(background);
                }
                frame.Add(sprite);
            }
            else
            {
                sprite.Size = spriteSize;
                if (def.backgroundSet)
                {
                    frame.Add(background);
                }
                frame.Add(sprite);
            }
        }
Esempio n. 5
0
        public void Draw(MySpriteDrawFrame frame, Data dataChanged)
        {
            //if(def.unit == Units.Percent)
            //{
            //	if (UseDataMinMax)
            //	{
            //		total = shipData[def.data].Max - shipData[def.data].Min;
            //	}
            //	val = shipData[def.data].Value / total * 100;
            //}
            //else if(def.unit == Units.Default)
            //{
            //	val = shipData[def.data].Value;
            //}
            //else
            //{
            //	val = Ini.ConvertTo(def.unit, shipData[def.data].Value);
            //}
            if ((dataChanged & def.data) != 0)
            {
                val = Ini.AdjustToUnit(def, shipData, total, UseDataMinMax);


                if (Ini.MeetsConditions(def.conditions, val, def.condVals))
                {
                    if (!conditionMet)
                    {
                        Execute();
                    }
                    conditionMet = true;
                }
                else
                {
                    conditionMet = false;
                }
            }
        }
Esempio n. 6
0
        public void Draw(MySpriteDrawFrame frame, Data dataChanged)
        {
            if (def.data != Data.None)
            {
                val = Ini.AdjustToUnit(def, shipData, total, UseDataMinMax);

                //Check for hide condition.
                if (Ini.MeetsConditions(def.conditions, val, def.condVals))
                {
                    return;
                }
            }

            if ((dataChanged & def.data) != 0)
            {
                if (def.unit == Units.Percent)
                {
                    if (UseDataMinMax)
                    {
                        total = shipData[def.data].Max - shipData[def.data].Min;
                    }
                    val = shipData[def.data].Value / total * 100;
                    if (double.IsNaN(val))
                    {
                        sprite.Data = "--";
                    }
                    else if (double.IsInfinity(val))
                    {
                        sprite.Data = "••";
                    }
                    else
                    {
                        sprite.Data = string.Format(def.decimalFormat, val);
                    }
                    if (def.showUnit)
                    {
                        sprite.Data += unit;
                    }
                }
                else if (def.unit == Units.Auto && def.data == Data.HydrogenTime)
                {
                    if (double.IsNaN(shipData[def.data].Value))
                    {
                        sprite.Data = "--";
                    }
                    else if (double.IsInfinity(shipData[def.data].Value))
                    {
                        sprite.Data = "••";
                    }
                    else
                    {
                        TimeSpan time = TimeSpan.FromSeconds(shipData[def.data].Value);
                        if (def.showUnit)
                        {
                            if (time.TotalDays >= 1)
                            {
                                sprite.Data = string.Format("{0,2}d {1,2}h", (long)time.TotalDays, (long)time.Hours);
                            }
                            else if (time.TotalHours >= 1)
                            {
                                sprite.Data = string.Format("{0,2}h {1,2}m", (long)time.TotalHours, (long)time.Minutes);
                            }
                            else
                            {
                                sprite.Data = string.Format("{0,2}m {1,2}s", (long)time.TotalMinutes, (long)time.Seconds);
                            }
                        }
                        else
                        {
                            sprite.Data = string.Format("{0,2:D2}:{1,2:D2}:{2,2:D2}", (long)time.TotalHours, (long)time.Minutes, (long)time.Seconds);
                        }
                    }
                }
                else
                {
                    if (double.IsNaN(shipData[def.data].Value))
                    {
                        sprite.Data = "--";
                    }
                    else if (double.IsInfinity(shipData[def.data].Value))
                    {
                        sprite.Data = "••";
                    }
                    else
                    {
                        sprite.Data = string.Format(def.decimalFormat, Ini.ConvertTo(def.unit, shipData[def.data].Value));
                    }
                    if (def.showUnit)
                    {
                        if (def.unit == Units.Auto)
                        {
                            abs = Math.Abs(shipData[def.data].Value);
                            if (abs >= 1000000000000)
                            {
                                unit = "T";
                            }
                            else if (abs >= 1000000000)
                            {
                                unit = "G";
                            }
                            else if (abs >= 1000000)
                            {
                                unit = "M";
                            }
                            else if (abs >= 1000)
                            {
                                unit = "k";
                            }
                            else
                            {
                                unit = "";
                            }
                        }
                        sprite.Data += unit + shipData[def.data].Unit;
                    }
                }

                frame.Add(sprite);
            }
            else
            {
                frame.Add(sprite);
            }
        }
Esempio n. 7
0
        public void Draw(MySpriteDrawFrame frame, Data dataChanged)
        {
            if (UseDataMinMax)
            {
                def.min = shipData[def.data].Min;
                def.max = shipData[def.data].Max;
                total   = def.max - def.min;
            }
            val = Ini.AdjustToUnit(def, shipData, total, UseDataMinMax);

            //Check for hide condition.
            if (Ini.MeetsConditions(def.conditions, val, def.condVals))
            {
                return;
            }

            if ((dataChanged & def.data) != 0)
            {
                values[valueIndex] = shipData[def.data].Value;

                if (def.backgroundSet)
                {
                    frame.Add(background);
                }

                int     prev    = LINES - 1;
                int     value   = (valueIndex + 1) % LINES;
                Vector2 prevPos = sm.AdjustToRotation(new Vector2((pos.X), (float)(pos.Y - values[value] / total * def.size.Y)), def.position, def.rotation);
                for (int i = 0; i < LINES; i++)
                {
                    value = (valueIndex + i + 1) % LINES;

                    //1. Calc distance between points, fow rect width.
                    //2. Calc rotation between points, for rect rotation
                    //3. Calc point between points, for rect position
                    //4. Place rect there.

                    Vector2 newPos = sm.AdjustToRotation(new Vector2((pos.X + def.size.X * SECTION * i), (float)(pos.Y - values[value] / total * def.size.Y)), def.position, def.rotation);

                    sprites[i].Position = Vector2.Lerp(newPos, prevPos, 0.5f);

                    sprites[i].Size = new Vector2(Vector2.Distance(prevPos, newPos), thickness);

                    sprites[i].RotationOrScale = (float)Math.Atan2(newPos.Y - prevPos.Y, newPos.X - prevPos.X);

                    if (values[value] <= def.max && value >= def.min)
                    {
                        frame.Add(sprites[i]);
                    }

                    prevPos = newPos;
                    prev    = i;
                }

                valueIndex++;
                if (valueIndex >= LINES)
                {
                    valueIndex = 0;
                }
            }
            else
            {
                if (def.backgroundSet)
                {
                    frame.Add(background);
                }
                for (int i = 0; i < LINES; i++)
                {
                    frame.Add(sprites[i]);
                }
            }
        }