Exemple #1
0
 public void Remove(GameElement element)
 {
     if (children == null)
     {
         return;
     }
     children.Remove(element);
     Game.RemoveElement(element);
     element.Parent = null;
 }
Exemple #2
0
 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);
                }
            }
        }