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++; } }
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(EntityViewSystem.ObjectIcon, "Edit sprite animations", Color.White).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; AnimationRenderOffsets.Clear(); int startY = 0; int index = 0; foreach (ObjectSummary animation in Animations.Select(a => new ObjectSummary(Owner, a))) { AnimationRenderOffsets.Add(y); bool doRender = index >= ListFromIndex; if (index == ListFromIndex) { startY = y; y = 2 * EditorRendering.SidebarMargin + 20 + 22 + 20 + 8; } if (index == SelectedAnimationIndex && doRender) { layer.FillRect(new System.Drawing.Rectangle(x - 4, y - 2, EditorRendering.SidebarWidth - 2 * EditorRendering.SidebarMargin, 20), ComponentLocked ? Color.FromArgb(63, 63, 70) : Color.CornflowerBlue); } if (doRender) { new TextUnit( //new Sprite("editor", new Rectangle(0, 0, 16, 16), new Rectangle(0, 32, 16, 16)), "Animation " + (index + 1)) .Render(r, layer, new Point(x, y), 2); } y += 24; int memberIndex = 0; foreach (IMemberSummary member in animation.Members.Values) { if (doRender) { TextUnit label = member.Label; label.Color = ComponentLocked && SelectedAnimationIndex == index ? (memberIndex == SelectedPropertyIndex ? Color.CornflowerBlue : Color.White) : Color.Gray; label.Render(r, layer, new Point(x + 8, y), 1); } y += 16; memberIndex++; } y += 16; index++; } { AnimationRenderOffsets.Add(y); GUIButton button = new GUIButton(new Vector2D(x, y), "Add Animation", new Rectangle(0, 0, EditorRendering.SidebarWidth - 4 * EditorRendering.SidebarMargin, 24)) { TextSize = 2 }; button.Highlighted = SelectedAnimationIndex == Animations.Count; button.Render(r, layer, Vector2D.Empty); for (int i = 0; i < ListFromIndex; i++) { AnimationRenderOffsets[i] -= startY; } index++; y += 32; } if (RemoveTimer > 0 && SelectedAnimationIndex >= 0 && SelectedAnimationIndex < Animations.Count) { TextUnit removingLabel = new TextUnit("Removing Animation " + (SelectedAnimationIndex + 1) + 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); } }