public GraphicsWindow(GraphicsService graphicsService, TileService tileService, PalettesService palettesService) { InitializeComponent(); _graphicsService = graphicsService; _tileService = tileService; _paletteService = palettesService; _graphicsAccessor = new GraphicsAccessor(_graphicsService.GetTilesAtAddress(0)); _graphicsRenderer = new GraphicsSetRender(_graphicsAccessor); _blockRenderer = new BlockRenderer(); Dpi dpi = this.GetDpi(); _graphicsBitmap = new WriteableBitmap(128, 128, dpi.X, dpi.Y, PixelFormats.Bgra32, null); _editorBitmap = new WriteableBitmap(16, 16, dpi.X, dpi.Y, PixelFormats.Bgra32, null); PatternTable.Source = _graphicsBitmap; EditorImage.Source = _editorBitmap; LoadPalettes(); GraphicsType.SelectedIndex = LayoutOrder.SelectedIndex = 0; _paletteService.PalettesChanged += _paletteService_PalettesChanged; }
public TileBlockEditor(ProjectService projectService, WorldService worldService, LevelService levelService, GraphicsService graphicsService, PalettesService palettesService, TileService tileService, TextService textService) { _ignoreChanges = true; InitializeComponent(); _projectService = projectService; _palettesService = palettesService; _graphicsService = graphicsService; _worldService = worldService; _levelService = levelService; _tileService = tileService; _textService = textService; List <KeyValuePair <string, string> > tileSetText = _textService.GetTable("tile_sets"); tileSetText.Insert(0, new KeyValuePair <string, string>("0", "Map")); TerrainList.ItemsSource = _localTileTerrain = _tileService.GetTerrainCopy(); LevelList.ItemsSource = _levelService.AllWorldsLevels(); MapInteractionList.ItemsSource = _localMapTileInteraction = _tileService.GetMapTileInteractionCopy(); _graphicsAccessor = new GraphicsAccessor(_graphicsService.GetTileSection(0), _graphicsService.GetTileSection(0), _graphicsService.GetGlobalTiles(), _graphicsService.GetExtraTiles()); _graphicsSetRenderer = new GraphicsSetRender(_graphicsAccessor); _tileSetRenderer = new TileSetRenderer(_graphicsAccessor, _localTileTerrain, _localMapTileInteraction); Dpi dpi = this.GetDpi(); _graphicsSetBitmap = new WriteableBitmap(128, 128, dpi.X, dpi.Y, PixelFormats.Bgra32, null); _tileBlockBitmap = new WriteableBitmap(16, 16, dpi.X, dpi.Y, PixelFormats.Bgra32, null); GraphicsSetImage.Source = _graphicsSetBitmap; TileBlockImage.Source = _tileBlockBitmap; BlockSelector.Initialize(_graphicsAccessor, _tileService, _tileService.GetTileSet(0), _graphicsService.GetPalette(0), _tileSetRenderer); BlockSelector.TileBlockSelected += BlockSelector_TileBlockSelected; LevelList.SelectedIndex = 1; BlockSelector.SelectedBlockValue = 0; _ignoreChanges = false; _graphicsService.GraphicsUpdated += _graphicsService_GraphicsUpdated; _graphicsService.ExtraGraphicsUpdated += _graphicsService_GraphicsUpdated; }