Example #1
0
 private void addDebugDrawArea(ViewportDisplayList displayList, IArea area, IViewport viewport)
 {
     if (area.Mask.DebugDraw == null)
     {
         return;
     }
     addToDisplayList(displayList, area.Mask.DebugDraw, viewport);
 }
Example #2
0
        private void addToDisplayList(ViewportDisplayList displayList, IObject obj, IViewport viewport)
        {
            if (!viewport.IsObjectVisible(obj))
            {
                return;
            }

            var layer = displayList.DisplayListPerLayer.GetOrAdd(obj?.RenderLayer?.Z ?? 0, _ => new LayerDisplayList(_comparer));

            if (!layer.IsDirty)
            {
                return;
            }
            layer.Items.Add(obj);
        }
Example #3
0
        private void updateDisplayList(IViewport viewport, ViewportDisplayList displayList)
        {
            var settings = viewport.DisplayListSettings;
            var room     = viewport.RoomProvider.Room;

            if (settings.DisplayRoom && room != null)
            {
                if (room.Background != null)
                {
                    addToDisplayList(displayList, room.Background, viewport);
                }

                foreach (IObject obj in room.Objects)
                {
                    if (!room.ShowPlayer && obj == _gameState.Player)
                    {
                        continue;
                    }
                    addToDisplayList(displayList, obj, viewport);
                }

                foreach (var area in room.Areas)
                {
                    addDebugDrawArea(displayList, area, viewport);
                }
            }

            if (settings.DisplayGUIs)
            {
                foreach (IObject ui in _gameState.UI)
                {
                    addToDisplayList(displayList, ui, viewport);
                }
            }

            displayList.Sort();
        }