Example #1
0
        public char[][] GetCurrentViewWithLight(WorldSystem.WorldSystem world)
        {
            char[][] view = new char[width][];
            for (int i = 0; i < width; i++)
            {
                view[i] = new char[width];

                for (int j = 0; j < width; j++)
                {
                    view[i][j] = ' ';
                }
            }

            int yOffSet = position.YCoord - width / 2;
            int xOffSet = position.XCoord - width / 2;

            var yInLocalCoords = yOffSet - world.TopLeftCorner.YCoord;
            var xInLocalCoords = xOffSet - world.TopLeftCorner.XCoord;



            for (int y = 0; y < width; y++)
            {
                for (int x = 0; x < width; x++)
                {
                    if (visionSystem.VisionMask[yInLocalCoords + y][xInLocalCoords + x] != 0)
                    {
                        var entitiesToBeVisualizedAtPos = world.LocalMap[yInLocalCoords + y][xInLocalCoords + x]
                                                          .FirstOrDefault(e => e.HasComponent(typeof(VisualizationComponent)));

                        if (entitiesToBeVisualizedAtPos == null)
                        {
                            view[y][x] = '?';
                        }
                        else
                        {
                            var visualization = entitiesToBeVisualizedAtPos.GetComponent(
                                typeof(VisualizationComponent)) as VisualizationComponent;

                            view[y][x] = visualization.AsChar;
                        }

                        if (visionSystem.VisionMask[yInLocalCoords + y][xInLocalCoords + x] == 2)
                        {
                            view[y][x] = ' ';
                        }
                    }
                }
            }
            return(view);
        }
Example #2
0
 public MovementSystem(WorldSystem.WorldSystem world, TimeTrackingSystem timeTrackingSystem)
 {
     this._worldSystem        = world;
     this._timeTrackingSystem = timeTrackingSystem;
 }