Exemple #1
0
        public List <int>[] Build(LabyrinthData labyrinth, AssetInfo info, IsometricMode mode, IAssetManager assets)
        {
            if (labyrinth == null)
            {
                throw new ArgumentNullException(nameof(labyrinth));
            }
            _labId = labyrinth.Id;
            _mode  = mode;

            _layout.Load(labyrinth, info, _mode, BuildProperties(), _paletteId, assets);
            int rows = (_layout.TileCount + _tilesPerRow - 1) / _tilesPerRow;

            if (Framebuffer != null)
            {
                Framebuffer.Width  = (uint)(_width * _tilesPerRow);
                Framebuffer.Height = (uint)(_height * rows);
            }

            Update();

            return(mode switch
            {
                IsometricMode.Floors => _layout.FloorFrames,
                IsometricMode.Ceilings => _layout.CeilingFrames,
                IsometricMode.Walls => _layout.WallFrames,
                IsometricMode.Contents => _layout.ContentsFrames,
                _ => null
            });
Exemple #2
0
    public List <int>[] Build(LabyrinthData labyrinth, AssetInfo info, IsometricMode mode, IAssetManager assets)
    {
        if (labyrinth == null)
        {
            throw new ArgumentNullException(nameof(labyrinth));
        }
        _labId = labyrinth.Id;
        _mode  = mode;

        _layout.Load(labyrinth, info, _mode, BuildProperties(), _paletteId, assets);
        ResizeFramebuffer();
        Update();

        return(mode switch
        {
            IsometricMode.Floors => _layout.FloorFrames,
            IsometricMode.Ceilings => _layout.CeilingFrames,
            IsometricMode.Walls => _layout.WallFrames,
            IsometricMode.Contents => _layout.ContentsFrames,
            _ => null
        });