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); } }
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); }
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); } }
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; } } }
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); } }
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]); } } }