public override void Initialize(WidgetArgs args) { base.Initialize(args); // The four layers are stored in a 2x2 grid within a single texture radarSheet = new Sheet(SheetType.BGRA, new Size(2 * previewWidth, 2 * previewHeight).NextPowerOf2()); radarSheet.CreateBuffer(); radarData = radarSheet.GetData(); MapBoundsChanged(); // Set initial terrain data foreach (var cell in world.Map.AllCells) UpdateTerrainCell(cell); world.Map.MapTiles.Value.CellEntryChanged += UpdateTerrainCell; world.Map.CustomTerrain.CellEntryChanged += UpdateTerrainCell; }
public override void Initialize(WidgetArgs args) { base.Initialize(args); var width = world.Map.Bounds.Width; var height = world.Map.Bounds.Height; var rb = RenderBounds; previewScale = Math.Min(rb.Width * 1f / width, rb.Height * 1f / height); previewOrigin = new int2((int)((rb.Width - previewScale * width) / 2), (int)((rb.Height - previewScale * height) / 2)); mapRect = new Rectangle(previewOrigin.X, previewOrigin.Y, (int)(previewScale * width), (int)(previewScale * height)); // The four layers are stored in a 2x2 grid within a single texture radarSheet = new Sheet(new Size(2 * width, 2 * height).NextPowerOf2()); radarSheet.CreateBuffer(); radarData = radarSheet.GetData(); terrainSprite = new Sprite(radarSheet, new Rectangle(0, 0, width, height), TextureChannel.Alpha); shroudSprite = new Sprite(radarSheet, new Rectangle(width, 0, width, height), TextureChannel.Alpha); actorSprite = new Sprite(radarSheet, new Rectangle(0, height, width, height), TextureChannel.Alpha); // Set initial terrain data foreach (var cell in world.Map.CellsInsideBounds) UpdateTerrainCell(cell); world.Map.MapTiles.Value.CellEntryChanged += UpdateTerrainCell; world.Map.CustomTerrain.CellEntryChanged += UpdateTerrainCell; }