public void Draw() { using (MySpriteDrawFrame frame = textSurface.DrawFrame()) { frame.AddRange(sprites.Values); } }
void Draw(Canvas can) { MySpriteDrawFrame _frame = _textSurface.DrawFrame(); if (can == null) { return; } foreach (BasePanel item in can.GetListChildrens()) { if (item == null) { return; } foreach (BaseCompo baseCompo in item.Content) { foreach (var sprite in baseCompo.content.Sprites) { _frame.Add(sprite); } } } _frame.Dispose(); }
private void AddElementsToPanels(MySpriteDrawFrame frame, bool isDoublePanel) { List <MySprite> backgroundSpriteList = new List <MySprite>(); List <MySprite> headerSpriteList = new List <MySprite>(); List <MySprite> productionSpriteList = new List <MySprite>(); List <MySprite> gasTanksSpriteList = new List <MySprite>(); List <MySprite> airlocksSpriteList = new List <MySprite>(); float screenOffset = 0; if (isDoublePanel) { screenOffset = 512; } DrawBackground(backgroundSpriteList, screenOffset); DrawHeader(headerSpriteList, screenOffset); DrawProduction(productionSpriteList, screenOffset); DrawGasTanks(gasTanksSpriteList, screenOffset); DrawAirlocks(airlocksSpriteList, screenOffset); frame.AddRange(backgroundSpriteList); frame.AddRange(headerSpriteList); frame.AddRange(productionSpriteList); frame.AddRange(gasTanksSpriteList); frame.AddRange(airlocksSpriteList); }
public override void Run() { using (MySpriteDrawFrame frame = m_surface.DrawFrame()) { AddBackground(frame, new Color?(new Color(m_foregroundColor, 0.66f))); string str = "No file found"; if (MyAPIGateway.Utilities.FileExistsInGlobalStorage("OutputHere.txt")) { var read = MyAPIGateway.Utilities.ReadFileInGlobalStorage("OutputHere.txt"); str = read.ReadToEnd(); read.Dispose(); } Vector2 vector2 = m_surface.MeasureStringInPixels(new StringBuilder(str), m_fontId, m_fontScale); MySprite sprite = new MySprite() { Position = new Vector2?(new Vector2(0, m_halfSize.Y * 2f - vector2.Y)), Size = new Vector2?(new Vector2(m_innerSize.X, m_innerSize.Y)), Type = SpriteType.TEXT, FontId = m_fontId, Alignment = TextAlignment.LEFT, Color = new Color?(m_foregroundColor), RotationOrScale = m_fontScale, Data = str }; frame.Add(sprite); float scale = (float)(m_innerSize.Y / 256.0 * 0.899999976158142); //AddBrackets(frame, new Vector2(64f, 256f), scale); } }
public void flush() { if (renderTarget_ != null && newMesssages_ == true) { float offset = (messages_.Count * lineHeight_ + lineCorrection_) - (renderTarget_.Size.Y + renderTarget_.Position.Y); int lineCount = 0; newMesssages_ = false; using (MySpriteDrawFrame frame = renderTarget_.getRenderFrame()) { // Workaround to fix the MP Sprite issue if (drawEmpty_) { frame.Add(new MySprite()); } drawEmpty_ = !drawEmpty_; // background renderTarget_.clearDrawArea(sprite => frame.Add(sprite)); // flush message lines foreach (var message in messages_) { MySprite line = MySprite.CreateText(message.Value, font_, getFontColor(message.Key), fontSize_, TextAlignment.LEFT); line.Position = new Vector2(renderTarget_.Position.X, lineCount++ *lineHeight_ - offset); frame.Add(line); } } } }
public void Main(string argument, UpdateType updateSource) { Dictionary <string, object> inputs = Me.GetProperty("ControlModule.Inputs")?.As <Dictionary <string, object> >()?.GetValue(Me); if (inputs != null) { blocks.Clear(); foreach (long key in spritesPreviewers.Keys) { missingSpritePreviewers.Add(key); } GridTerminalSystem.GetBlocks(blocks); foreach (IMyTerminalBlock block in blocks) { if (block is IMyTextPanel) { IMyTextPanel text_panel = (IMyTextPanel)block; if (text_panel.CustomData.Trim() == "previewSprites") { if (!(spritesPreviewers.ContainsKey(text_panel.EntityId))) { List <string> sprites = new List <string>(); text_panel.GetSprites(sprites); spritesPreviewers.Add(text_panel.EntityId, new SpritesPreviewer(text_panel, sprites)); } missingSpritePreviewers.Remove(text_panel.EntityId); } } } foreach (long key in missingSpritePreviewers) { spritesPreviewers.Remove(key); } missingSpritePreviewers.Clear(); foreach (string input in inputs.Keys) { if (spritesPreviewersKeyInputActions.ContainsKey(input)) { SpritesPreviewerKeyInputActionDelegate sprites_previewers_key_input_action = spritesPreviewersKeyInputActions[input]; foreach (SpritesPreviewer sprite_previewer in spritesPreviewers.Values) { sprites_previewers_key_input_action(sprite_previewer); } } } foreach (SpritesPreviewer sprite_previewer in spritesPreviewers.Values) { string selected_sprite = sprite_previewer.SelectedSprite; if (selected_sprite != null) { sprite_previewer.TextPanel.ContentType = ContentType.SCRIPT; using (MySpriteDrawFrame sprite_draw_frame = sprite_previewer.TextPanel.DrawFrame()) { sprite_draw_frame.Add(MySprite.CreateSprite(selected_sprite, sprite_previewer.TextPanel.SurfaceSize * 0.5f, sprite_previewer.TextPanel.SurfaceSize * sprite_previewer.ZoomFactor)); sprite_draw_frame.Add(MySprite.CreateText(selected_sprite, "DEBUG", Color.White, 1.0f, TextAlignment.CENTER)); } } } } }
public void DrawBar(ref MySpriteDrawFrame frame, Vector2 position, float value) { // Display 10 lines of text by 20 columns int bar_width = 21; var filled_blocks = (int)(bar_width * value); var empty_blocks = Math.Max(bar_width - filled_blocks, 0); var bar_top = new string('═', bar_width); var bar_mid = new string(' ', bar_width); var bar_bot = new string('═', bar_width); var bar_filled = new string('▓', filled_blocks); var bar_empty = new string(' ', empty_blocks); var line1 = $"╔{bar_top}╗\n"; var line2 = $"║{bar_filled}{bar_empty}║ {value:P}\n"; var line3 = $"╚{bar_top}╝"; // Create our first bar var bar_outline = new MySprite() { Type = SpriteType.TEXT, Data = $"{line1}{line2}{line3}", Position = position, RotationOrScale = 0.8f /* 80 % of the font's default size */, Color = Color.Red, Alignment = TextAlignment.LEFT /* Center the text on the position */, FontId = "Monospace" }; // Add the sprite to the frame frame.Add(bar_outline); }
public void Draw() { if (program.Me.CubeGrid.GridSizeEnum == MyCubeSize.Small) { return; } using (MySpriteDrawFrame frame = textSurface.DrawFrame()) { frame.Add(new MySprite(SpriteType.TEXT, "SolarMap v0.9.1", new Vector2(10, 100), null, Color.White, null, TextAlignment.LEFT, 0.7f)); frame.Add(new MySprite(SpriteType.TEXT, "Average instructions:\nInstruction peak:\nAverage runtime:\nRuntime:\nUpdates:", new Vector2(10, 125), null, Color.White, null, TextAlignment.LEFT, 0.6f)); // Calculate various. runTimes[tick] = program.Runtime.LastRunTimeMs; instructionCounts[tick] = program.Runtime.CurrentInstructionCount; time += program.Runtime.TimeSinceLastRun; tick = tick > 8 ? 0 : ++tick; frame.Add(new MySprite(SpriteType.TEXT, AverageInstructions + "/" + program.Runtime.MaxInstructionCount + "\n" + HighestInstruction + "\n" + AverageRunTime + " ms\n" + time.ToString(@"dd\.hh\:mm\:ss") + "\n" + program.terminalManager.ShipController.UpdateCount, new Vector2(200, 125), null, Color.White, null, TextAlignment.LEFT, 0.6f)); if (!program.terminalManager.ShipController.HasController) { frame.Add(new MySprite(SpriteType.TEXT, "Status", new Vector2(10, 250), null, Color.White, null, TextAlignment.LEFT, 0.7f)); frame.Add(new MySprite(SpriteType.TEXT, "- Controller does not exist.", new Vector2(10, 275), null, Color.White, null, TextAlignment.LEFT, 0.6f)); } } }
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 DrawSprites(ref MySpriteDrawFrame frame, RectangleF _viewport) { var background = MySprite.CreateSprite("SquareSimple", _viewport.Center, _viewport.Size); background.Color = new Color(26, 28, 32); frame.Add(background); Vector2 ocSize = percentageSize(80, _viewport); var outerCircle = MySprite.CreateSprite("Circle", _viewport.Center, ocSize); outerCircle.Color = new Color(29, 229, 128); frame.Add(outerCircle); Vector2 icSize = percentageSize(60, _viewport); var innerCircle = MySprite.CreateSprite("Circle", _viewport.Center, icSize); innerCircle.Color = new Color(37, 39, 45); frame.Add(innerCircle); float size = TextSize(40, _viewport); float offset = TextSizeOffset(size); var platformCode = MySprite.CreateText("01", "White", Color.White, size, TextAlignment.CENTER); // Vector2 pcPos = new Vector2(_viewport.Center.X, _viewport.Center.Y - 100); Vector2 pcPos = new Vector2(_viewport.Size.X / 2, _viewport.Size.Y / 2 - offset) + _viewport.Position; platformCode.Position = pcPos; frame.Add(platformCode); }
private void DisplayPerformance(Surface surface) { /* * display the last run times on the surface */ MySpriteDrawFrame frame = surface.TextSurface.DrawFrame(); RectangleF viewRect = surface.ViewRect; Color color = surface.TextSurface.ScriptForegroundColor; spritePosition = viewRect.Center; spritePosition.Y -= 20; sprite = new MySprite() { Type = SpriteType.TEXT, Data = $"last run: {parent.LastRunTime}ms ({parent.LastRunType})" + $"\nlast average: {parent.LastAverage}ms ({parent.RunsPerAverage} runs)", Position = spritePosition, RotationOrScale = 0.6f, Color = color, Alignment = TextAlignment.CENTER, FontId = "Monospace" }; frame.Add(sprite); frame.Dispose(); }
public override void Run() { using (MySpriteDrawFrame frame = m_surface.DrawFrame()) { AddBackground(frame, new Color?(new Color(m_foregroundColor, 0.66f))); num1 = num1 + 1; string str = "HELLO\n" + "MOD BY FROSTY\n" + num1.ToString(); Vector2 vector2 = m_surface.MeasureStringInPixels(new StringBuilder(str), m_fontId, m_fontScale); MySprite sprite = new MySprite() { Position = new Vector2?(new Vector2(m_halfSize.X, m_halfSize.Y - vector2.Y * 0.5f)), Size = new Vector2?(new Vector2(m_innerSize.X, m_innerSize.Y)), Type = SpriteType.TEXT, FontId = m_fontId, Alignment = TextAlignment.CENTER, Color = new Color?(m_foregroundColor), RotationOrScale = m_fontScale, Data = str }; frame.Add(sprite); float scale = (float)(m_innerSize.Y / 256.0 * 0.899999976158142); //AddBrackets(frame, new Vector2(64f, 256f), scale); } }
private MySpriteDrawFrame prepareScreen(IMyTextPanel scr) { scr.ContentType = ContentType.SCRIPT; MySpriteDrawFrame frame = scr.DrawFrame(); frame.Add(new MySprite(SpriteType.TEXTURE, "SquareSimple", size: screenSize, color: Color.Black)); return(frame); }
public MySpriteDrawFrame Draw() { Setup(); MySpriteDrawFrame frame = surface.DrawFrame(); DrawFrame(frame); return(frame); }
public override void DrawFrame(MySpriteDrawFrame frame) { using (frame) { sprite.Size = Viewport.Size; sprite.Position = Viewport.Center; frame.Add(sprite); } }
public void Render(Window window, StringBuilder text, ref MySpriteDrawFrame frame) { if (Tracker.Updating) { return; } var categories = window.GetData <CategoryStorage>(); if (categories == null) { return; } JobInventory.ItemTypeDescriptor.ItemCategory cat = categories.Categories; Buffer.Clear(); ValueStrings.Clear(); int name_w = 0; int val_w = 0; string val; foreach (var item in Tracker.Stock) { if ((cat & item.Value.Category) == item.Value.Category) { val = item.Value.FormatAmount(); ValueStrings[item.Value.Name] = val; name_w = Math.Max(name_w, item.Value.Name.Length); val_w = Math.Max(val_w, val.Length); } } string catname = cat.ToString(); int titlepad = name_w + 1 + val_w - catname.Length; if (titlepad < 0) { name_w += -titlepad; titlepad = 0; } Buffer.Append('-', titlepad / 2); Buffer.Append(catname); Buffer.Append('-', titlepad - titlepad / 2); Buffer.Append('\n'); foreach (var item in ValueStrings) { Buffer.Append(item.Key); Buffer.Append(' ', (name_w - item.Key.Length) + 1 + (val_w - item.Value.Length)); Buffer.Append(item.Value); Buffer.Append('\n'); } if (BgColor != Color.Transparent) { frame.Add(window.Surface.FitSprite("SquareSimple", window.Area, BgColor)); } frame.Add(window.Surface.FitText(Buffer.ToString(), window.Area, "Monospace", window.Surface.ScriptForegroundColor)); Buffer.Clear(); ValueStrings.Clear(); }
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); } }
private void drawBox(MySpriteDrawFrame frame, float f, Color c, float limit) { f = Math.Min(f, limit); float h = f * 512; Vector2 box = new Vector2(barSize2.X, h); Vector2 ctr = new Vector2(256, 512 - h / 2); MySprite sprite = new MySprite(SpriteType.TEXTURE, "SquareSimple", size: box, color: c); sprite.Position = ctr; frame.Add(sprite); }
private void UpdateLCD(IMyTextPanel surface) { RectangleF viewport = new RectangleF( (surface.TextureSize - surface.SurfaceSize) / 2, surface.SurfaceSize ); MySpriteDrawFrame frame = surface.DrawFrame(); DrawSprites(ref frame, viewport, surface); frame.Dispose(); }
public void Main(string argument, UpdateType updateSource) { frame = display.DrawFrame(); VRage.MyFixedPoint totKg = 0; inventories.ForEach(delegate(IMyInventory i) { totKg += i.CurrentMass; }); draw(totKg.ToIntSafe()); frame.Dispose(); }
public void Render(Window window, StringBuilder text, ref MySpriteDrawFrame frame) { text.Append('\n').Append(Buffer).Append('\n'); if (BgColor != Color.Transparent) { frame.Add(window.Surface.FitSprite("SquareSimple", window.Area, BgColor)); } Color textcolor = FontColor == Color.Transparent ? window.Surface.ScriptForegroundColor : FontColor; frame.Add(window.Surface.FitText(Buffer.ToString(), window.Area, "Monospace", textcolor, TextAlignment.LEFT)); }
void drawInitScreen() { using (MySpriteDrawFrame frame = getRenderFrame()) { MySprite textInit = MySprite.CreateText("Initilize screen", "debug", Color.LawnGreen, 1f, TextAlignment.LEFT); textInit.Position = new Vector2(5f, Default.CharHeight) + Position; clearDrawArea(sprite => frame.Add(sprite)); frame.Add(textInit); } }
public void Render(Window window, StringBuilder text, ref MySpriteDrawFrame frame) { int max = _Airlocks.Keys.Max((g) => g.Name.Length); foreach (var kv in _Airlocks) { Buffer.Append(kv.Key.Name).Append(' ', max - kv.Key.Name.Length) .Append(" : ").Append(kv.Value.CurrentState).Append('\n'); } frame.Add(window.Surface.FitText(Buffer.ToString(), window.Area, "Monospace", window.Surface.ScriptForegroundColor)); }
public void DrawSprites(ref MySpriteDrawFrame frame) { // Display a bar for the current storage capacity var position = new Vector2(20, 20) + _viewport.Position; var value = _miner.GetUsedStoragePercentage(); _display.DrawBar(ref frame, position, value); // Display a bar for the current depth position += new Vector2(0, 80); value = _miner.TotalPistonDistanceFromHome() / _miner.MaxPistonDistanceFromHome(); _display.DrawBar(ref frame, position, value); }
private static void DrawCross(ref MySpriteDrawFrame Frame) { MySprite CrossDiagonal1 = MySprite.CreateSprite("SquareSimple", Center, new Vector2(12 * UnitX, 100 * UnitY)); CrossDiagonal1.RotationOrScale = ToRadian(45); CrossDiagonal1.Color = Color.Tomato; Frame.Add(CrossDiagonal1); MySprite CrossDiagonal2 = MySprite.CreateSprite("SquareSimple", Center, new Vector2(12 * UnitX, 100 * UnitY)); CrossDiagonal2.RotationOrScale = ToRadian(-45); CrossDiagonal2.Color = Color.Tomato; Frame.Add(CrossDiagonal2); }
private static void DrawDataScreen(ref MySpriteDrawFrame Frame, IMyTextSurface Surface, CombinedDataSet CombinedData) { // ILS Data DrawDataScreenILSSection(ref Frame, Surface, CombinedData); // VOR DrawDataScreenVORSection(ref Frame, Surface, CombinedData); // Line between the two columns MySprite SeparationLine = MySprite.CreateSprite("SquareSimple", Center, new Vector2(3 * UnitX, 200 * UnitY)); SeparationLine.Color = CockpitFGColor.Alpha(1f); Frame.Add(SeparationLine); }
public override void Refresh(MySpriteDrawFrame?spriteDrawFrame) { if (textSurface == null) { base.Refresh(spriteDrawFrame); } else { textSurface.ContentType = ContentType.SCRIPT; using (MySpriteDrawFrame sprite_draw_frame = textSurface.DrawFrame()) { base.Refresh(sprite_draw_frame); } } }
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); }
private static void DrawDataScreenVORSection(ref MySpriteDrawFrame Frame, IMyTextSurface Surface, CombinedDataSet CombinedData) { float PositionYFactor = 5f; float PosistionX = Center.X + 12 * UnitX; if (CombinedData.VORData.Rotation == null) { Frame.Add(new MySprite() { Type = SpriteType.TEXT, Data = "No VOR\nConnection!", Position = new Vector2(PosistionX, PositionYFactor * UnitY) + Viewport.Position, RotationOrScale = DataScreenFontSize + 0.2f, Color = Color.Tomato, Alignment = TextAlignment.LEFT, FontId = "White" }); return; } string[] _lines = { "VOR: " + CombinedData.VORData.Name, "DME: " + Math.Round(CombinedData.VORData.Distance / 1000, 1).ToString(), "Radial: " + Math.Round(CombinedData.VORData.Radial, 0).ToString(), "OBS: " + Math.Round(CombinedData.VORData.OBS, 0).ToString(), "HDG: " + Math.Round(CombinedData.VORData.Heading, 0).ToString(), "DEV: " + Math.Round(CombinedData.VORData.Deviation, 0).ToString() }; List <string> Lines = new List <string>(_lines); foreach (string line in Lines) { Frame.Add(new MySprite() { Type = SpriteType.TEXT, Data = line, Position = new Vector2(PosistionX, PositionYFactor * UnitY) + Viewport.Position, RotationOrScale = DataScreenFontSize, Color = CockpitFGColor.Alpha(1f), Alignment = TextAlignment.LEFT, FontId = "White" }); PositionYFactor += 35; } }
public void DrawSprites(ref MySpriteDrawFrame frame) { var pos = _viewportCapacity.Center; var sprite = new MySprite() { Type = SpriteType.TEXT, Data = $"{percent}%", Position = pos, RotationOrScale = 1f, Color = fontColor, Alignment = TextAlignment.CENTER, FontId = "White" }; frame.Add(sprite); }