public void Remove(GameElement element) { if (children == null) { return; } children.Remove(element); Game.RemoveElement(element); element.Parent = null; }
public void Add(GameElement element) { element.Parent = this; if (children == null) { children = new List <GameElement>(); } children.Add(element); Game.AddAndInitElement(element); }
private void PaintCell(GameElement el) { if (el.Type.IsCrate) { var currCrate = Current[el.Position]; renderer[el.Position + PuzzleSurface.TL] = style[currCrate]; } else { renderer[el.Position + PuzzleSurface.TL] = style[el.Type]; } }
private void PaintMouse(GameElement _) { // Walk Path if (MouseMoveElement.WalkPath != null) { var s = Current.Player.Position + PuzzleSurface.TL; foreach (var pair in MouseMoveElement.WalkPath) { s += pair; renderer[s] = style.Mouse; } } // Overloys: Mouse if (parent.Input.IsMouseEnabled) { var mousePosition = parent.Input.MousePosition; var pz = mousePosition - parent.GameLogic.PuzzleSurface.TL; var headerStyle = parent.HeaderStyle; renderer.DrawText(0, 0, mousePosition.ToString().PadRight(20), headerStyle); if (parent.GameLogic.PuzzleSurface.Contains(mousePosition)) { var pc = parent.GameLogic.Current[pz]; renderer.DrawText(0, 1, $"{pz} -> {pc.Underlying}".PadRight(40), headerStyle); } else { renderer.DrawText(0, 1, $"".PadRight(40), headerStyle); } var start = renderer.Geometry.BL; foreach (var(item, index) in parent.GameLogic.ElementsAt(pz).WithIndex()) { renderer.DrawText(start - (0, index), item.ToString(), headerStyle); } } }