コード例 #1
0
        protected override void RenderMap()
        {
            // first render the floor for all the rooms
            List <Region> rooms = Map.GetRegions().Where(r => r is Room).ToList();

            foreach (Room room in rooms)
            {
                if (room is SquareRoom)
                {
                    // first calculate the floor size we need
                    SquareRoom sroom             = room as SquareRoom;
                    int        maxPossibleWidth  = sroom.Width;
                    int        maxPossibleHeight = sroom.Height;
                    int        areaToCover       = sroom.Width * sroom.Height;
                    Vector3    floorPlacement    = new Vector3(sroom.X, 0, sroom.Y);

                    FloorComponent floor = Floors.Where(f => f.WidthInTiles == sroom.Width && f.DepthInTiles == sroom.Height).FirstOrDefault();

                    if (floor == null)
                    {
                        throw new Exception("We failed to find a floor for the room " + sroom.Width + " X " + sroom.Height);
                    }

                    FloorComponent renderedComponent = Instantiate(floor, floorPlacement, Quaternion.identity);
                    MapRender.Add(renderedComponent.gameObject);
                }
                else
                {
                    throw new NotImplementedException("We don't know how to render " + room.GetType());
                }
            }
        }
コード例 #2
0
        public Image <Rgba32> RenderLayer(int mapId, int layer, int frame, bool filterTrash, int?minX = null, int?minY = null)
        {
            Map       entry    = GetMap(mapId);
            MapRender renderer = new MapRender(entry, entry.mapEntry);

            return(renderer.RenderLayer(frame, layer, filterTrash, minX, minY));
        }
コード例 #3
0
        public Image <Rgba32> Render(int id, int frame, bool showLife, bool showPortals, bool showBackgrounds)
        {
            Map       entry    = GetMap(id);
            MapRender renderer = new MapRender(entry, entry.mapEntry);

            return(renderer.Render(frame, showLife, showPortals, showBackgrounds));
        }
コード例 #4
0
        public Image <Rgba32> RenderLayer(int mapId, int layer, int frame)
        {
            Map       entry    = GetMap(mapId);
            MapRender renderer = new MapRender(entry, entry.mapEntry);

            return(renderer.RenderLayer(frame, layer));
        }
コード例 #5
0
        protected override void RenderMap()
        {
            for (int x = 0; x < Map.MapSize.x; x++)
            {
                for (int y = 0; y < Map.MapSize.y; y++)
                {
                    Tile    tile   = Map.GetTile(x, y);
                    Vector3 mapLoc = ConvertMapToScreen(new Vector3(x, tile.Z, y));

                    if (tile.IsFloor())
                    {
                        GameObject floor = Instantiate(FloorTile, mapLoc, Quaternion.identity);
                        floor.layer = 8; // render to minimap
                        MapRender.Add(floor);
                        if (CeilingTile != null)
                        {
                            MapRender.Add(Instantiate(CeilingTile, mapLoc + Vector3.up * 4, Quaternion.identity));
                        }
                    }
                    else if (tile.IsWall())
                    {
                        GameObject firstWall = Instantiate(WallTile, mapLoc + Vector3.up, Quaternion.identity);
                        firstWall.layer = 8; // render to minimap
                        MapRender.Add(firstWall);
                    }
                    else if (tile.Type == ETileType.DOOR)
                    {
                        GameObject door = Instantiate(CeilingTile, mapLoc, Quaternion.identity);
                        door.layer = 8; // render to minimap
                        MapRender.Add(door);
                        if (CeilingTile != null)
                        {
                            MapRender.Add(Instantiate(CeilingTile, mapLoc + Vector3.up * 4, Quaternion.identity));
                        }
                    }

                    if (tile.DebugMark)
                    {
                        MapRender.Add(Instantiate(MarkerTile, mapLoc, Quaternion.identity));
                    }

                    PlacePlayer();
                }
            }
        }
コード例 #6
0
ファイル: MapSystem.cs プロジェクト: Seraph-ED/StarlightRiver
 public void DrawToMap(string Map, MapRender MR) => MapPasses[Map].DrawToBatchedTarget(MR);
コード例 #7
0
ファイル: MapSystem.cs プロジェクト: Seraph-ED/StarlightRiver
 public void DrawToPrimitiveTarget(MapRender method) => PrimitiveCalls += method;
コード例 #8
0
ファイル: MapSystem.cs プロジェクト: Seraph-ED/StarlightRiver
 public void DrawToBatchedTarget(MapRender method) => BatchedCalls += method;