private void RenderMapSprites( ISpriteManager spriteManager, IDataRogueControl mapConfiguration, bool[,] renderTracker, int renderWidth, int renderHeight, SpriteAppearance[,,] tilesTracker, AnimationFrame[,,] frameTracker, BLTMapRendererOffset[,,] offsetTracker, int z, bool top) { if (z == 0) { BLTLayers.Set(top ? BLTLayers.MapTileTop : BLTLayers.MapTileBottom, mapConfiguration.ActivityIndex); } else { BLTLayers.Set(top ? BLTLayers.MapEntityTop : BLTLayers.MapEntityBottom, mapConfiguration.ActivityIndex); } BLT.Font(""); BLT.Color(Color.White); for (int x = 0; x < renderWidth; x++) { for (int y = 0; y < renderHeight; y++) { if (renderTracker[x + 1, y + 1]) { var appearance = tilesTracker[x + 1, y + 1, z]; var frame = frameTracker[x + 1, y + 1, z]; if (appearance != null) { var spriteName = top ? appearance.Top : appearance.Bottom; if (spriteName != null) { TileDirections directions = BLTTileDirectionHelper.GetDirections(tilesTracker, x + 1, y + 1, z, top); var sprite = spriteManager.Tile(spriteName, directions, frame); var offsetX = (int)Math.Floor(offsetTracker[x + 1, y + 1, z].OffsetX * BLTTilesIOSystem.TILE_SPACING); var offsetY = (int)Math.Floor(offsetTracker[x + 1, y + 1, z].OffsetY * BLTTilesIOSystem.TILE_SPACING); BLT.Put( mapConfiguration.Position.Left + x * BLTTilesIOSystem.TILE_SPACING + offsetX, mapConfiguration.Position.Top + y * BLTTilesIOSystem.TILE_SPACING + offsetY, sprite); } } } } } }
protected override void DisplayInternal(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov) { var backgroundSpriteSheet = spriteManager.Get("textbox_blue"); BLTLayers.Set(BLTLayers.Background, control.ActivityIndex); BLT.Font(""); var width = (int)Math.Ceiling(control.Position.Width / (double)BLTTilesIOSystem.TILE_SPACING); var height = (int)Math.Ceiling(control.Position.Height / (double)BLTTilesIOSystem.TILE_SPACING); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { TileDirections directions = BLTTileDirectionHelper.GetDirections(x, width, y, height); var sprite = backgroundSpriteSheet.Tile(directions); BLT.Put(control.Position.Left + x * BLTTilesIOSystem.TILE_SPACING, control.Position.Top + y * BLTTilesIOSystem.TILE_SPACING, sprite); } } }
protected static void RenderBackgroundBox(int x, int y, int activityIndex, Size size, ISpriteManager spriteManager, string spriteName = "textbox_blue") { BLTLayers.Set(BLTLayers.UIElements, activityIndex); BLT.Font(""); var width = size.Width / BLTTilesIOSystem.TILE_SPACING; var height = size.Height / BLTTilesIOSystem.TILE_SPACING; var spriteSheet = spriteManager.Get(spriteName); for (int xCoord = 0; xCoord < width; xCoord++) { for (int yCoord = 0; yCoord < height; yCoord++) { BLT.Put(x + xCoord * BLTTilesIOSystem.TILE_SPACING, y + yCoord * BLTTilesIOSystem.TILE_SPACING, spriteSheet.Tile(BLTTileDirectionHelper.GetDirections(xCoord, width, yCoord, height))); } } }