public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { var back = r.GetLayerGraphics("parallax_back"); var front = r.GetLayerGraphics("parallax_front"); CameraView view = Owner.CurrentViewport; foreach (Parallax parallax in WatchedComponents) { if (!parallax.Owner.Active) { continue; } var layer = parallax.Speed.X >= 1 ? front : back; Spatial sp = parallax.Owner.Components.Get <Spatial>(); Vector2D center = (sp.Position - view.Location); center.X *= parallax.Speed.X; center.Y *= parallax.Speed.Y; double width = parallax.SourceBounds.Width * parallax.Scale; double height = parallax.SourceBounds.Height * parallax.Scale; Rectangle destination = new Rectangle(center.X, center.Y, width, height); destination.X -= width / 2; destination.Y -= height / 2; destination.X += layer.GetSize().Width / 2; destination.Y += layer.GetSize().Height / 2; destination.Y *= -1; layer.Draw(r.SpriteManager[parallax.Texture], destination.ToDrawing(), parallax.SourceBounds.ToDrawing()); } }
internal void InvokeRender <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) => renderSystems.ForEach((s) => { if (Owner.Disposed) { return; } s.Render(r); });
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { if (!ModalVisible) { return; } var layer = r.GetLayerGraphics("hi_res_overlay"); System.Drawing.Rectangle sidebar = new System.Drawing.Rectangle(EditorRendering.SidebarX, 0, EditorRendering.SidebarWidth, 720); layer.FillRect(sidebar, Color.FromArgb(45, 45, 48)); layer.FillRect(new System.Drawing.Rectangle(sidebar.X + EditorRendering.SidebarMargin, sidebar.Y + EditorRendering.SidebarMargin, sidebar.Width - 2 * EditorRendering.SidebarMargin, sidebar.Height - 2 * EditorRendering.SidebarMargin), Color.FromArgb(37, 37, 38)); int x = EditorRendering.SidebarX + 2 * EditorRendering.SidebarMargin; int y = EditorRendering.SidebarMargin + 4; new TextUnit(EditorMenuSystem.CogIcon, new[] { "Top", "Right", "Bottom", "Left" }[FaceIndex] +" Face").Render(r, layer, new Point(x, y), 2); y += 20; layer.FillRect(new System.Drawing.Rectangle(x - 2 * EditorRendering.SidebarMargin, y, EditorRendering.SidebarWidth - 2 * EditorRendering.SidebarMargin, 3), Color.FromArgb(45, 45, 48)); y += 8; int index = 0; foreach (IMemberSummary member in Members) { TextUnit label = member.Label; label.Color = SelectedPropertyIndex == index ? Color.CornflowerBlue : Color.White; label.Render(r, layer, new Point(x + 8, y), 2); y += 24; index++; } }
private void CreateRendererControl() { _hostControl = new System.Windows.Forms.Panel { Dock = System.Windows.Forms.DockStyle.Fill, BackColor = Color.Transparent, ForeColor = Color.Transparent, }; HostControlWrapper = new WindowsFormsHost() { Child = _hostControl, }; void EnsureFocus(System.Windows.Forms.Control control) { if (!control.Focused) { control.Focus(); } } _hostControl.MouseEnter += (sender, args) => EnsureFocus(_hostControl); _hostControl.MouseClick += (sender, args) => EnsureFocus(_hostControl); HostControlWrapper.SizeChanged += ChangeRenderSize; var size = new System.Drawing.Size((int)HostControlWrapper.Width, (int)HostControlWrapper.Height); if (size.Width < 1 || size.Height < 1) { size = new System.Drawing.Size(1, 1); } ScreenRenderer = new ScreenRenderer(_hostControl.Handle, size); }
public static void DrawSpriteName(RendererDestinationData destData, Map activeMap, Enums.MapID targetMapID, ISprite sprite, Color color, string name) { int textX; int textY; int x = sprite.Location.X; int y = sprite.Location.Y; Renderers.Maps.SeamlessWorldHelper.ConvertCoordinatesToBorderless(activeMap, targetMapID, ref x, ref y); string adjustedName; if (sprite.Shiny == Enums.Coloration.Shiny) { adjustedName = $"*{name}"; } else { adjustedName = name; } //if (sprite.Size == Enums.Size.Normal) { textX = ScreenRenderer.ToTileX(x) + sprite.Offset.X + (Constants.TILE_WIDTH / 2) - (adjustedName.Length * 7 / 2); textY = ScreenRenderer.ToTileY(y) + sprite.Offset.Y - (Constants.TILE_HEIGHT / 2) - /*4*/ 32; TextRenderer.DrawText(destData, adjustedName, color, Color.Black, textX, textY); //} else { // textX = ScreenRenderer.ToTileX(sprite.Location.X) + sprite.Offset.X + (Constants.TILE_WIDTH / 2) - ((name.Length / 2) * 8); // textY = ScreenRenderer.ToTileY(sprite.Location.Y) + sprite.Offset.Y - (Constants.TILE_HEIGHT / 2) - 48; // TextRenderer.DrawText(destData, name, color, Color.Black, textX, textY); //} }
public static void DrawSpriteName(RendererDestinationData destData, Map activeMap, Enums.MapID targetMapID, ISprite sprite, Color color, string name) { int textX; int textY; //gets location of sprite to draw on top of (name will be on top of these coords) int x = sprite.Location.X; int y = sprite.Location.Y; Renderers.Maps.SeamlessWorldHelper.ConvertCoordinatesToBorderless(activeMap, targetMapID, ref x, ref y); //if (sprite.Size == Enums.Size.Normal) { textX = ScreenRenderer.ToTileX(x) + sprite.Offset.X + (Constants.TILE_WIDTH / 2) - (name.Length * 7 / 2); textY = ScreenRenderer.ToTileY(y) + sprite.Offset.Y - (Constants.TILE_HEIGHT / 2) - /*4*/ 32; TextRenderer.DrawText(destData, name, color, Color.Black, textX, textY); //TEST CODE Bitmap bitmap = (Bitmap)Image.FromFile(@"C:\Users\Frosty\Desktop\PJOFiles\Client\build\Skins\Main Theme\General\Badges\Moderator.png"); Surface sheetSurface = new Surface(bitmap); sheetSurface.Transparent = true; int emblemX = ScreenRenderer.ToTileX(x) + sprite.Offset.X + (Constants.TILE_WIDTH / 2) + (name.Length * 7 / 2) + 5; Point point = new Point(emblemX, textY + 3); destData.Blit(sheetSurface, point); }
private static void DrawStaffIcon(RendererDestinationData destData, Map activeMap, Enums.MapID targetMapID, IPlayer player) { if (player.Rank != Enums.Rank.Normal && player.Rank != Enums.Rank.Owner) { int x = player.Location.X; int y = player.Location.Y; Maps.SeamlessWorldHelper.ConvertCoordinatesToBorderless(activeMap, targetMapID, ref x, ref y); Bitmap bitmap; try { bitmap = (Bitmap)Image.FromFile(@".\Skins\Main Theme\General\Badges\" + player.Rank + ".png"); } catch (System.IO.FileNotFoundException e) { bitmap = null; } int badgeX = ScreenRenderer.ToTileX(x) + player.Offset.X + 3 + (Constants.TILE_WIDTH / 2) - (player.Name.Length * 7 / 2) - (bitmap.Width); int badgeY = ScreenRenderer.ToTileY(y) + player.Offset.Y - (Constants.TILE_HEIGHT / 2) - 31; if (bitmap != null) { Surface sheetSurface = new Surface(bitmap); sheetSurface.Transparent = true; Point point = new Point(badgeX, badgeY + 3); destData.Blit(sheetSurface, point); } } }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { foreach (CounterVariableComponent counter in WatchedComponents.Where(c => c is CounterVariableComponent)) { if (counter.DoRender) { Renderable renderable = counter.Owner.Components.Get <Renderable>(); if (renderable == null) { continue; } if (renderable.Sprites.Count == 0) { renderable.Sprites.Add(new Sprite("lab_objects", new Rectangle(-4, -8, 8, 16), new Rectangle(0, 400, 8, 16))); renderable.Sprites.Add(new Sprite("lab_objects", new Rectangle(-4, -8, 8, 16), new Rectangle(8, 400, 8, 16))); } if (renderable.Sprites.Count >= 2) { if (counter.EndValue - counter.StartValue == 0) { continue; } float percent = (float)(counter.Value - counter.StartValue) / (counter.EndValue - counter.StartValue); int height = (int)Math.Round(percent * 12) + 2; renderable.Sprites[1].Destination.Height = height; renderable.Sprites[1].Source.Y = 400 + 16 - height; renderable.Sprites[1].Source.Height = height; } } } }
public void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r, DirectGraphicsContext <TSurface, TSource> layer, Point destination, int fontScale = 1) { var font = r.SpriteManager["font"]; byte[] asciiBytes = Encoding.ASCII.GetBytes(Text); int destX = destination.X; if (Icon != null) { Rectangle iconDestination = new Rectangle(Icon.Destination); iconDestination.X += destination.X; iconDestination.Y += destination.Y; layer.Draw(r.SpriteManager[Icon.Texture], iconDestination.ToDrawing(), Icon.Source != Rectangle.Empty ? Icon.Source.ToDrawing() : (System.Drawing.Rectangle?)null); destX += (int)iconDestination.Width + 4; } foreach (byte c in asciiBytes) { int srcX = (c % 16) * 8; int srcY = (c / 16) * 8; layer.Draw(font, new System.Drawing.Rectangle(destX, destination.Y, 8 * fontScale, 8 * fontScale), new System.Drawing.Rectangle(srcX, srcY, 8, 8), new DrawInfo() { Color = Color }); destX += char_sizes[c] * fontScale; } }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { if (!ModalActive) { return; } var layer = r.GetLayerGraphics("hi_res_overlay"); if (Label != null) { TextUnit label = new TextUnit(Label); label.Render(r, layer, new Point(80 - 18, 500 - 18 - 30 - 30), 3); } TextUnit textDisplay = new TextUnit(Display); layer.FillRect(new System.Drawing.Rectangle(80 - 18, 500 - 18 - 30 - 7, 40 * 13 - 4, 36 - 3), Color.FromArgb(27, 27, 28)); textDisplay.Render(r, layer, new Point(80 - 18 + 4, 500 - 18 - 30), 3); if (CaretBlinkingProgress <= CaretBlinkingPeriod / 2) { int caretX = 80 - 18 + new TextUnit(Display.Substring(0, CaretIndex)).GetSize(3).Width + 6; layer.FillRect(new System.Drawing.Rectangle(caretX, 500 - 18 - 30, 2, 24), Color.White); } foreach (GUIButton button in Pad) { button.Render(r, layer, new Vector2D(80, 500)); } }
public static void DrawSpriteHPBar(RendererDestinationData destData, ISprite sprite, int hp, int maxHP) { int x = 0; int y = 0; x = ScreenRenderer.ToTileX(sprite.Location.X) + sprite.Offset.X; y = ScreenRenderer.ToTileY(sprite.Location.Y) + sprite.Offset.Y; //if (sprite == ScreenRenderer.Camera.FocusedSprite) { // x = ScreenRenderer.NewX; // y = ScreenRenderer.NewY; //} else { //} //if (MaxInfo.SpriteSize == 0) { // Box hpBox = new SdlDotNet.Graphics.Primitives.Box(new Point(x, y + 32), new Point(x + 50, y + 36)); // destSurf.Draw(hpBox, Color.Black, false, true); // if (maxHP < 1) { // hpBox = new SdlDotNet.Graphics.Primitives.Box(new Point(x, y + 32), new Point(x + ((hp / 100) / ((maxHP + 1) / 100) * 50), y + 36)); // } else { // hpBox = new SdlDotNet.Graphics.Primitives.Box(new Point(x, y + 32), new Point(x + ((hp / 100) / (maxHP / 100) * 50), y + 36)); // } // destSurf.Draw(hpBox, Color.LightGreen, false, true); //} else { Box hpBox = new SdlDotNet.Graphics.Primitives.Box(new Point(destData.Location.X + x, destData.Location.Y + y + 36), new Point(destData.Location.X + x + 32, destData.Location.Y + y + 40)); destData.Draw(hpBox, Color.Black, false, true); if (maxHP > 0) { hpBox = new SdlDotNet.Graphics.Primitives.Box(new Point(destData.Location.X + x + 1, destData.Location.Y + y + 37), new Point(Convert.ToInt32(destData.Location.X + x + (Logic.MathFunctions.CalculatePercent(hp, maxHP) * 0.01) * 31), destData.Location.Y + y + 39)); } destData.Draw(hpBox, Color.LightGreen, false, true); //} }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { var layer = r.GetLayerGraphics("hi_res_overlay"); layer.Clear(Color.FromArgb(31, 24, 51)); System.Drawing.Size layerSize = layer.GetSize(); var logo = r.SpriteManager["logo"]; System.Drawing.Size logoSize = r.GraphicsContext.GetSize(logo); logoSize.Width *= 4; logoSize.Height *= 4; layer.Draw(logo, new System.Drawing.Rectangle(layerSize.Width / 2 - logoSize.Width / 2, layerSize.Height / 2 - logoSize.Height / 2, logoSize.Width, logoSize.Height)); if (Delay <= 0) { TextUnit text = new TextUnit(new Sprite("x_icons", new Rectangle(0, -4, 9 * 4, 9 * 4), new Rectangle(0, 0, 9, 9)) { Modifiers = Sprite.Mod_InputType }, " Start", Color.FromArgb(182, 203, 207)); System.Drawing.Size textSize = text.GetSize(4); text.Render(r, layer, new Point(layerSize.Width / 2 - textSize.Width / 2, layerSize.Height / 2 + logoSize.Height / 2 + 32), 4); } }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { var layer = r.GetLayerGraphics("hi_res_overlay"); foreach (Health health in WatchedComponents) { if (!health.Owner.Active) { continue; } if (!health.DoShowHealth) { continue; } if (!health.HealthBarVisible) { continue; } Transform sp = health.Owner.Components.Get <Transform>(); int width = 50; int height = 5; if (sp != null) { System.Drawing.Point destination = Renderable.ToScreenCoordinates(sp.Position + health.HealthBarOffset, layer.GetSize()); layer.FillRect(new System.Drawing.Rectangle(destination.X - width / 2, destination.Y + height / 2, width, height), System.Drawing.Color.FromArgb(201, 48, 56)); layer.FillRect(new System.Drawing.Rectangle(destination.X - width / 2, destination.Y + height / 2, width * health.CurrentHealth / health.MaxHealth, height), System.Drawing.Color.FromArgb(81, 196, 63)); } } }
public ScreenRendererPackageFile(ScreenRenderer screenRenderer) { this.Name = $"{Path}/{LayoutExtension.GetPageName(screenRenderer.Model)}.xml"; List <IRenderer> childrens = RendererTreeHelper .FindChildrens <IRenderer>(screenRenderer) .ToList(); childrens.Insert(0, screenRenderer); this.Model = new ObjectContainer <RendererSurface>() { Items = childrens .Select(c => new RendererSurface() { Guid = c.Model.Guid, Metadata = c.Metadata, Location = new Point( Canvas.GetLeft(c.Element), Canvas.GetTop(c.Element)) }).ToList() }; base.CreateStream(); }
public static void DrawStatus(RendererDestinationData destData, Map activeMap, Enums.MapID targetMapID, ISprite sprite, int emoteIndex, int emoteFrame, Point offset) { int x, y; int width = Constants.TILE_WIDTH; int height = Constants.TILE_HEIGHT; Rectangle rec = new Rectangle(); Point dstPoint = new Point(); rec.X = emoteFrame * width; rec.Width = width; rec.Y = 0; rec.Height = height; x = sprite.Location.X; // * Const.PIC_X + sx + player.XOffset; y = sprite.Location.Y; // * Const.PIC_Y + sx + player.YOffset; Maps.SeamlessWorldHelper.ConvertCoordinatesToBorderless(activeMap, targetMapID, ref x, ref y); dstPoint.X = ScreenRenderer.ToTileX(x) + sprite.Offset.X + offset.X; dstPoint.Y = ScreenRenderer.ToTileY(y) + sprite.Offset.Y + offset.Y; // - (Constants.TILE_HEIGHT / 2); destData.Blit(Graphics.GraphicsManager.GetEmoteSheet(emoteIndex).Sheet, dstPoint, rec); }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { var layer = r.GetLayerGraphics("hud"); layer.Draw(r.SpriteManager["menu_bg"], new System.Drawing.Rectangle(new Point(0, 0), layer.GetSize())); r.GetLayerGraphics("hi_res_overlay").Draw(r.SpriteManager["logo"], new System.Drawing.Rectangle(648, 128, 480, 152)); int destY = 100; int index = 0; foreach (string label in OptionLabels) { TextUnit text; if (index == SelectedIndex) { text = new TextUnit(new Sprite("gui", new EntityComponentSystem.Util.Rectangle(0, 0, 8, 8), new EntityComponentSystem.Util.Rectangle(0, 0, 8, 8)), label, Color.Coral); } else { text = new TextUnit(label, Color.White); } text.Render(r, layer, new Point(8, destY)); destY += 12; index++; } }
public static void DrawMapItem(RendererDestinationData destData, Map map, Enums.MapID targetMapID, int itemSlot) { Item item = ItemHelper.Items[map.MapItems[itemSlot].Num]; Rectangle cropRect = new Rectangle((item.Pic - (item.Pic / 6) * 6) * Constants.TILE_WIDTH, (item.Pic / 6) * Constants.TILE_HEIGHT, Constants.TILE_WIDTH, Constants.TILE_HEIGHT); int itemX = map.MapItems[itemSlot].X; int itemY = map.MapItems[itemSlot].Y; Renderers.Maps.SeamlessWorldHelper.ConvertCoordinatesToBorderless(map, targetMapID, ref itemX, ref itemY); Point dstPoint = new Point(ScreenRenderer.ToScreenX(itemX * Constants.TILE_WIDTH), ScreenRenderer.ToScreenY(itemY * Constants.TILE_HEIGHT)); //Surface itemSurface = new Surface(32,32); //itemSurface.Blit(Graphics.GraphicsManager.Items, cropRect); //if (darkness != null && !darkness.Disposed) { // Point darknessPoint = new Point(darkness.Buffer.Width / 2 + dstPoint.X - darkness.Focus.X, darkness.Buffer.Height / 2 + dstPoint.Y - darkness.Focus.Y); // Surface darknessSurface = new Surface(32, 32); // darknessSurface.Blit(darkness.Buffer, new Point(0, 0), new Rectangle(darknessPoint, new Size(Constants.TILE_WIDTH, Constants.TILE_HEIGHT))); //} //destData.Blit(itemSurface, dstPoint); destData.Blit(Graphics.GraphicsManager.Items, dstPoint, cropRect); }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { /*var bg = r.GetLayerGraphics("background"); * bg.Clear(System.Drawing.Color.FromArgb(32, 255, 0, 255)); * bg.Complete();*/ var layer = r.GetLayerGraphics("level"); CameraView view = Owner.CurrentViewport; WatchedComponents = WatchedComponents.OrderBy(c => ((LevelRenderable)c).ZOrder).ToList(); foreach (LevelRenderable tile in WatchedComponents) { if (!tile.Owner.Active) { continue; } if (tile.Owner.Components.Has <DamageFlashing>() && tile.Owner.Components.Get <Health>() is Health health && ((int)(health.InvincibilityTimer / 6) % 2) != 0) { continue; } if (tile.Owner.Components.Get <Renderable>() is Renderable renderable) { Renderable.Render(layer, view, r, renderable.Sprites, renderable.Owner.Components.Get <Spatial>()); } } }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { if (Owner.Controller.Paused) { return; } foreach (AnimationComponent c in WatchedComponents) { Renderable renderable = c.Owner.Components.Get <Renderable>(); if (renderable == null) { continue; } foreach (AnimatedSprite anim in c.Animations) { if (anim.SpriteIndex >= 0 && anim.SpriteIndex < renderable.Sprites.Count) { if (anim.FrameProgress >= 0) { renderable.Sprites[anim.SpriteIndex].Source = anim.Frame + (anim.Step * anim.CurrentFrame); } else { renderable.Sprites[anim.SpriteIndex].Source = new Rectangle(-1, -1, 0, 0); } } } } }
public void Draw <TSurface, TSource>(ScreenRenderer <TSurface, TSource> screenRenderer) { if (ResolutionChanged) { screenRenderer.UpdateLayers(RenderingUnit); ResolutionChanged = false; } RenderingUnit.Draw(screenRenderer); }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { var layer = r.GetLayerGraphics("hi_res_overlay"); System.Drawing.Rectangle sidebar = new System.Drawing.Rectangle(SidebarX, 0, SidebarWidth, 720); layer.FillRect(sidebar, Color.FromArgb(45, 45, 48)); layer.FillRect(new System.Drawing.Rectangle(sidebar.X + SidebarMargin, sidebar.Y + SidebarMargin, sidebar.Width - 2 * SidebarMargin, sidebar.Height - 2 * SidebarMargin), Color.FromArgb(37, 37, 38)); //layer.Draw(r.SpriteManager["pixel"], new System.Drawing.Rectangle(1280 * 4 / 5, 0, 1280 / 10, 720), info: new DrawInfo() { Mode = DrawMode.Normal, Color = Color.Black }); }
private void ChangeRenderSize(object sender, SizeChangedEventArgs args) { var size = new System.Drawing.Size((int)args.NewSize.Width, (int)args.NewSize.Height); if (size.Width < 1 || size.Height < 1) { size = new System.Drawing.Size(1, 1); } ScreenRenderer.UpdateHostHandle(_hostControl.Handle, size); }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { if (!ModalActive) { return; } if (Dirty) { bool negative = Display.StartsWith("-"); if (negative) { Display = Display.Substring(1); } if (Display.Length == 0) { Display = "0"; negative = false; } int i; for (i = 0; i < Display.Length; i++) { if (Display[i] == '0' && i + 1 < Display.Length && Display[i + 1] != '.') { continue; } else { break; } } Display = (negative ? "-" : "") + Display.Substring(i); Dirty = false; } var layer = r.GetLayerGraphics("hi_res_overlay"); if (Label != null) { TextUnit label = new TextUnit(Label); label.Render(r, layer, new Point(80 - 18, 500 - 18 - 30 - 30), 3); } TextUnit numberDisplay = new TextUnit(Display); layer.FillRect(new System.Drawing.Rectangle(80 - 18, 500 - 18 - 30 - 7, 40 * 3 - 4, 36 - 3), Color.FromArgb(27, 27, 28)); numberDisplay.Render(r, layer, new Point(80 - 18 + 4, 500 - 18 - 30), 3); foreach (GUIButton button in Pad) { button.Render(r, layer, new Vector2D(80, 500)); } }
private void DrawSlot <TSurface, TSource>(int index, int y, ScreenRenderer <TSurface, TSource> r, LayerGraphics <TSurface, TSource> layer) { Color a = Color.FromArgb(104, 113, 122); Color b = Color.FromArgb(43, 46, 66); if (SelectedIndex == index) { Color temp = a; a = b; b = temp; } System.Drawing.Rectangle bounds = new System.Drawing.Rectangle(128, y, layer.GetSize().Width - 256, 96); layer.FillRect(bounds, (SelectedIndex == index) ? Color.FromArgb(65, 72, 89) : Color.FromArgb(31, 24, 51)); layer.FillRect(new System.Drawing.Rectangle(bounds.X, bounds.Y, bounds.Width, 4), a); layer.FillRect(new System.Drawing.Rectangle(bounds.X, bounds.Y, 4, bounds.Height), a); layer.FillRect(new System.Drawing.Rectangle(bounds.X, bounds.Y + bounds.Height - 4, bounds.Width, 4), b); layer.FillRect(new System.Drawing.Rectangle(bounds.X + bounds.Width - 4, bounds.Y, 4, bounds.Height), b); GameData slot = Slots[index]; string text = "File " + (index + 1); if (slot == null && SelectedIndex == index) { text += " - Create"; } List <Sprite> icons = new List <Sprite>(); new TextUnit(text).Render(r, layer, new Point(bounds.X + bounds.Height, y + 24), 3); if (slot != null) { layer.Draw(r.SpriteManager["gui"], new System.Drawing.Rectangle(bounds.X, bounds.Y, bounds.Height, bounds.Height), new System.Drawing.Rectangle(0, 76, 32, 32)); if (slot.HasWoofer) { icons.Add(new Sprite("gui", new Rectangle(0, 0, 21, 21), new Rectangle(0, slot.MaxEnergy > 100 ? 34 : 13, 21, 21))); } if (slot.MaxHealth > 4) { icons.Add(new Sprite("gui", new Rectangle(0, 0, 19, 21), new Rectangle(0, 55, 19, 21))); } } int iconX = bounds.X + bounds.Height; int iconY = y + 56; foreach (Sprite sprite in icons) { layer.Draw(r.SpriteManager[sprite.Texture], new System.Drawing.Rectangle(iconX + (int)sprite.Destination.X, iconY + (int)sprite.Destination.Y, (int)sprite.Destination.Width, (int)sprite.Destination.Height), sprite.Source != Rectangle.Empty ? sprite.Source.ToDrawing() : (System.Drawing.Rectangle?)null); iconX += 24; } }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { if (!ModalVisible) { return; } SelectedIndex = Math.Max(-1, Math.Min(SelectedIndex, Owner.Entities.Count - 1)); StartOffset = Math.Max(-1, Math.Min(StartOffset, Owner.Entities.Count - 1)); var layer = r.GetLayerGraphics("hi_res_overlay"); int y = 14; int x = EditorRendering.SidebarX + EditorRendering.SidebarMargin + 4; List <Entity> entities = Owner.Entities.ToList(); int index = StartOffset; for (; index < entities.Count; index++) { if (index == -1) { GUIButton button = new GUIButton(new Vector2D(x - 4 + EditorRendering.SidebarMargin, y), "Add Entity", new EntityComponentSystem.Util.Rectangle(0, 0, EditorRendering.SidebarWidth - 4 * EditorRendering.SidebarMargin, 24)) { TextSize = 2 }; button.Highlighted = SelectedIndex == -1; button.Render(r, layer, Vector2D.Empty); y += 24 + 8; } else { Entity entity = entities[index]; if (index == SelectedIndex) { layer.FillRect(new System.Drawing.Rectangle(x - 4, y, EditorRendering.SidebarWidth - 2 * EditorRendering.SidebarMargin, 20), ModalActive ? Color.CornflowerBlue : Color.FromArgb(63, 63, 70)); } TextUnit label = new TextUnit(entity.Name); label.Render <TSurface, TSource>(r, layer, new Point(x, y + 2), 2); y += 20; if (y > 720 - 16) { break; } } } AmountVisible = index - StartOffset - 1; if (RemoveTimer > 0 && SelectedIndex >= 0) { TextUnit removingLabel = new TextUnit("Removing " + entities[SelectedIndex].Name + new string('.', RemoveTimer / 25)); System.Drawing.Size labelSize = removingLabel.GetSize(3); removingLabel.Render(r, layer, new Point(EditorRendering.SidebarX - labelSize.Width, layer.GetSize().Height - labelSize.Height), 3); } }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { if (!ModalActive) { return; } var layer = r.GetLayerGraphics("hi_res_overlay"); new TextUnit("Coordinate Edit Mode").Render(r, layer, new System.Drawing.Point(8, 8), 3); new TextUnit($"X: {CursorSystem.CursorPos.X}, Y: {CursorSystem.CursorPos.Y}").Render(r, layer, new System.Drawing.Point(8, 36), 2); }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { /*r.BeginRenderingSection(false); * * Surface textSurface = font.Render($"{Framerate} fps", Color.Yellow); * r.View.Blit(textSurface, new Point(0, 0)); * textSurface.Dispose(); * //g.DrawString(, new Font("Consolas", 12), new SolidBrush(Color.Yellow), 0, 0); * * r.EndRenderingSection();*/ }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { var layer = r.GetLayerGraphics("level"); foreach (TilingGenerator gen in WatchedComponents) { if (gen.Preview) { Renderable.Render(layer, Owner.CurrentViewport, r, gen.Sprites, gen.Owner.Components.Get <Spatial>()); } } }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { if (!ModalActive) { return; } var layer = r.GetLayerGraphics("hi_res_overlay"); new TextUnit("Activation Link Edit Mode").Render(r, layer, new System.Drawing.Point(8, 8), 3); new TextUnit(new[] { "Create", "Remove", "Single" }[Mode], Mode == Remove ? Color.Red : Color.White).Render(r, layer, new System.Drawing.Point(8, 36), 2); }
public override void Render <TSurface, TSource>(ScreenRenderer <TSurface, TSource> r) { if (!ModalVisible) { return; } var layer = r.GetLayerGraphics("hi_res_overlay"); new TextUnit("Collision Edit Mode").Render(r, layer, new System.Drawing.Point(8, 8), 3); new TextUnit(new[] { "Edit", "Tweak Faces", "Create", "Delete" }[Mode], Mode == Delete ? Color.Red : Color.White).Render(r, layer, new System.Drawing.Point(8, 36), 2); }
public Car(World world, Texture2D texture, Color Color, RandomTrack _randomTrack, int _index, PlayerIndex _carIndex) : base(world, texture, new Vector2(65.0f, 40.0f), Color, new Vector2(130.0f,80.0f)) { vibrationTimer = 0.0f; mustVibrate = false; carIndex = _carIndex; hasNeverStarted = true; powerupDurationSpeed = powerupDuration / 2.7f; startBlinkingFromSpeed = startBlinkingFrom / 2.7f; powerupDurationCurrent = powerupDuration; startBlinkingFromCurrent = startBlinkingFrom; isInsideMucus=false; index = _index; message = new PopupMessage(this); isActive = true; this.randomTrack = _randomTrack; projectedPosition = new Vector2(); mForceVector = new Vector2(); mDirection = new Vector2(); mForce = 1.0f; mTrailPoints = 0; mTrailVertices = new Vertices(); mTrailPositions = new Vector2[mMaximumTrailPoints]; mDummyTexture = new Texture2D(GameServices.GetService<GraphicsDevice>(), 1, 1); mDummyTexture.SetData(new Color[] { Color.White }); mColor = Color; bullet = new Bullet(world, this,mDummyTexture); bulletIsShot = false; _compound.LinearDamping = 1; _compound.AngularDamping = 1; hasBoost = false; boostFrames = 0; for (int i = 0; i < trailVertices.Count(); i++) trailVertices[i].Color = mColor; for (int i = 0; i < burnoutsVertices.Count(); i++) burnoutsVertices[i].Color = Color.Black; newWVert = new Vector3(-0.1f); newEVert = new Vector3(-0.1f); oldWVert = new Vector3(-0.1f); oldEVert = new Vector3(-0.1f); texNW = new Vector2(0, 0); texNE = new Vector2(1, 0); texOW = new Vector2(0, 1); texOE = new Vector2(1, 1); newWVertBurnoutRight = new Vector3(-0.1f); newEVertBurnoutRight = new Vector3(-0.1f); oldWVertBurnoutRight = new Vector3(-0.1f); oldEVertBurnoutRight = new Vector3(-0.1f); newWVertBurnoutLeft = new Vector3(-0.1f); newEVertBurnoutLeft = new Vector3(-0.1f); oldWVertBurnoutLeft = new Vector3(-0.1f); oldEVertBurnoutLeft = new Vector3(-0.1f); newWVertBurnoutRightFront = new Vector3(-0.1f); newEVertBurnoutRightFront = new Vector3(-0.1f); oldWVertBurnoutRightFront = new Vector3(-0.1f); oldEVertBurnoutRightFront = new Vector3(-0.1f); newWVertBurnoutLeftFront = new Vector3(-0.1f); newEVertBurnoutLeftFront = new Vector3(-0.1f); oldWVertBurnoutLeftFront = new Vector3(-0.1f); oldEVertBurnoutLeftFront = new Vector3(-0.1f); score = 27; driftValue = 0; maxBoostFrames = -1; currentAcc = acc; currentMaxVel = maxVel; burnoutCounter = 0; freeToSwap = true; //register collision _compound.OnCollision += body_OnCollision; messageImagePos = ConvertUnits.ToDisplayUnits( _compound.Position);// +new Vector2(1, 1)); painters = new List<Painter>(); for (int i = 0; i < paintersCount; i++) { Painter newPainter=new Painter(seed); painters.Add(newPainter); } _graphicsDevice = GameServices.GetService<GraphicsDeviceManager>(); _camera = GameServices.GetService<Camera>(); _soundManager = GameServices.GetService<SoundManager>(); loopBurnout = false; updateCounter=0; updateOrthogonalVelocityCounter = 0; _compound.CollisionCategories = Category.Cat20; ContentManager cm = GameServices.GetService<ContentManager>(); powerupsTextures[0] = null; powerupsTextures[1] = cm.Load<Texture2D>("Images/powerups/powerup-ali"); powerupsTextures[2] = cm.Load<Texture2D>("Images/powerups/powerup-fuoco"); powerupsTextures[3] = null; powerupsTextures[4] = cm.Load<Texture2D>("Images/powerups/powerup-paracadute"); powerupsTextures[5] = null; powerupsTextures[6] = cm.Load<Texture2D>("Images/powerups/powerup-freccia"); powerupGlowTexture = cm.Load<Texture2D>("Images/powerups/glow"); gloatingTexture = cm.Load<Texture2D>("Images/powerups/glow"); screenRenderer = GameServices.GetService<ScreenRenderer>(); isVisible = true; }
public override void LoadContent() { // We add to the GameServices objects that we want to be able to use accross different classes // without having to pass them explicitly every time. GraphicsDevice = GameServices.GetService<GraphicsDevice>(); Content = GameServices.GetService<ContentManager>(); graphics = GameServices.GetService<GraphicsDeviceManager>(); soundManager = GameServices.GetService<SoundManager>(); ScreenManager.AddScreen(RankScreen, null, false); ScreenManager.AddScreen(PauseScreen, null, false); world = new World(new Vector2(0, 0)); GameServices.AddService<World>(world); this.world.ContactManager.PostSolve += new PostSolveDelegate(PostSolve); // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // Create a new track randomRaceTrack = RandomTrack.createTrack(); randomRaceTrack.polygonList = polygonsList; int[] crucialPoints = { 300, 600, 1000 }; Logic = new GameLogic(crucialPoints, randomRaceTrack.curvePointsMiddle.Count); randomRaceTrack.gameLogic = Logic; Logic.DidFinishLap += randomRaceTrack.ResetStickyNotes; mySneezesManager.randomTrack = randomRaceTrack; LoadPaperEffect(); screenRenderer = new ScreenRenderer(); GameServices.AddService<ScreenRenderer>(screenRenderer); Logic.DidEliminateCar += screenRenderer.setSadToPlayer; Logic.DidFinishLap += screenRenderer.setLap; for (int i = 0; i < 4; i++) { Car aCar = new Car(world, Content.Load<Texture2D>("Images/small_car"), Color.White, randomRaceTrack, i, playerIndexes[i]); Cars.Add(aCar); } assetCreator = new AssetCreator(graphics.GraphicsDevice); assetCreator.LoadContent(this.Content); defaultViewport = GraphicsDevice.Viewport; isFullHd=(ScreenManager.preferredHeight!=720); // Single screen mode only cameraFollowing = new Camera(defaultViewport, Vector2.Zero, new Vector2(defaultViewport.Width / 2, defaultViewport.Height / 2), 0.0f, Cars.Count, isFullHd); //ZOOM: //low res: //0.95 for 2 players //0.93 for 3 players //0.91 for 4 players //high res: //0.95 for 4 players GameServices.AddService<Camera>(cameraFollowing); mySneezesManager.camera = cameraFollowing; //generate starting positions and angles int startingPoint = 0; // positionCars(startingPoint); _debugView = new DebugViewXNA(world); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.Shape); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.DebugPanel); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.PerformanceGraph); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.Joint); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.ContactPoints); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.ContactNormals); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.Controllers); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.CenterOfMass); _debugView.AppendFlags(FarseerPhysics.DebugViewFlags.AABB); _debugView.DefaultShapeColor = Color.White; _debugView.SleepingShapeColor = Color.LightGray; _debugView.LoadContent(GraphicsDevice, Content); basicVert = new VertexPositionColorTexture[maxNumberOfTriangles]; for (int i = 0; i < maxNumberOfTriangles; i++) basicVert[i].TextureCoordinate = new Vector2(-1); verticesBorders = new VertexPositionColorTexture[randomRaceTrack.curvePointsInternal.Count]; fluid = new Fluid(); fluid.Init(); currentPoses = new Vector2[4]; prevPoses = new Vector2[4]; currentMousePos = new Vector2(100); prevMousePos = new Vector2(0); quad = new QuadRenderComponent(ScreenManager.Game, cameraFollowing, ScreenManager.GraphicsDevice.Viewport.Width, ScreenManager.GraphicsDevice.Viewport.Height); ScreenManager.Game.Components.Add(quad); fluidUpdateThread = new Thread(this.UpdateFluid); fluidUpdateThread.Start(); mySneezesManager.fluid = fluid; fluidEffect = Content.Load<Effect>("Shaders/FluidEffect"); fluidEffect.Parameters["random"].SetValue(randomTex); texInk = new Texture2D(graphics.GraphicsDevice, fluid.m_w, fluid.m_h, true, SurfaceFormat.Color); buffer = new RenderTarget2D(GraphicsDevice, ScreenManager.GraphicsDevice.Viewport.Width, ScreenManager.GraphicsDevice.Viewport.Height, true, SurfaceFormat.Color, GraphicsDevice.PresentationParameters.DepthStencilFormat); //gaussian = new GaussianBlur(ScreenManager.Game); }