protected static void RenderEntityDetails(int x, int y, ShopItemControl display, IEntity shopItem, ISystemContainer systemContainer, ISpriteManager spriteManager)
        {
            BLT.Font("");
            SpriteAppearance appearance = shopItem.Has <SpriteAppearance>() ? shopItem.Get <SpriteAppearance>() : new SpriteAppearance {
                Bottom = "unknown"
            };
            AnimationFrame frame = shopItem.Has <Animated>() ? systemContainer.AnimationSystem.GetFrame(shopItem) : AnimationFrame.Idle0;
            Price          price = shopItem.Get <Price>();

            var playerWealth = systemContainer.ItemSystem.CheckWealth(systemContainer.PlayerSystem.Player, price.Currency);

            var canAfford = playerWealth >= price.Amount;

            BLTLayers.Set(BLTLayers.UIElementPieces, display.ActivityIndex);
            string appearanceBottom = appearance.Bottom;

            RenderSpriteIfSpecified(x + 4 + BLTTilesIOSystem.TILE_SPACING * 2, y + 4, spriteManager, appearanceBottom, frame);

            BLTLayers.Set(BLTLayers.UIElementPieces + 1, display.ActivityIndex);
            string appearanceTop = appearance.Top;

            RenderSpriteIfSpecified(x + 4 + BLTTilesIOSystem.TILE_SPACING * 2, y + 4, spriteManager, appearanceTop, frame);

            BLTLayers.Set(BLTLayers.Text, display.ActivityIndex);
            BLT.Font("text");
            BLT.Print(new Rectangle(x + 2, y + BLTTilesIOSystem.TILE_SPACING * 2 + 2, 6 * BLTTilesIOSystem.TILE_SPACING, 10), ContentAlignment.TopCenter, shopItem.GetBLTName());
            BLT.Color(canAfford ? Color.Gold : Color.Gray);
            BLT.Print(new Rectangle(x + 2, y + BLTTilesIOSystem.TILE_SPACING * 2 + 12, 6 * BLTTilesIOSystem.TILE_SPACING, 10), ContentAlignment.TopCenter, $"{price.Amount} {price.Currency}");
            BLT.Color(Color.White);
        }
        private static void RenderBarContent(int x, int y, int totalLength, decimal percentage, int bar_left, int bar_fill, int bar_full_right, int bar_right)
        {
            if (percentage > 0)
            {
                var lengthToCover = percentage * totalLength - 6;

                if (lengthToCover - 1 < 0)
                {
                    BLT.Put(x + 1, y + 2, bar_right);
                }
                else
                {
                    BLT.Put(x + 1, y + 2, bar_left);


                    for (int i = 3; i < lengthToCover - 1; i += 2)
                    {
                        BLT.Put(x + i, y + 2, bar_fill);
                    }

                    if (percentage == 1)
                    {
                        BLT.Put(x + totalLength - 7, y + 2, bar_full_right);
                    }
                    else
                    {
                        BLT.Put(x + (int)lengthToCover - 1, y + 2, bar_right);
                    }
                }
            }
        }
        private static void RenderHighlightedCells(IDataRogueControl control, ISpriteSheet topSprite, ISpriteSheet bottomSprite, IMap currentMap, int cameraX, int cameraY, int renderWidth, int renderHeight, int offsetX, int offsetY, List <MapCoordinate> highlightedCells)
        {
            var checks = new bool[renderWidth + 2, renderHeight + 2];

            for (int y = 0; y < renderHeight; y++)
            {
                for (int x = 0; x < renderWidth; x++)
                {
                    var lookupX = cameraX - offsetX + x;
                    var lookupY = cameraY - offsetY + y;

                    var currentCell = new MapCoordinate(currentMap.MapKey, lookupX, lookupY);

                    checks[x + 1, y + 1] = highlightedCells.Contains(currentCell);
                }
            }

            BLT.Color(Color.FromArgb(128, 255, 255, 255));

            if (bottomSprite != null)
            {
                RenderLayer(BLTLayers.MapShade, control, bottomSprite, renderWidth, renderHeight, checks);
            }

            if (topSprite != null)
            {
                RenderLayer(BLTLayers.MapShade + 1, control, topSprite, renderWidth, renderHeight, checks);
            }
        }
        protected override void DisplayInternal(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov)
        {
            var display = control as MenuActionsControl;

            if (display.AvailableActions.Count > 1)
            {
                BLT.Font("text");
                BLTLayers.Set(BLTLayers.Text, display.ActivityIndex);

                BLT.Color(display.Color);

                var x = control.Position.X;
                var y = control.Position.Y;

                BLT.Print(x, y, "[[");
                x += BLT.Measure("[[").Width;

                foreach (var action in display.AvailableActions)
                {
                    if (action == display.SelectedAction)
                    {
                        BLT.Color(display.SelectedColor);
                    }
                    BLT.Print(x, y, action.ToString());
                    BLT.Color("");

                    x += BLT.Measure(action.ToString()).Width;
                    BLT.Print(x, y, "|");
                    x += BLT.Measure("|").Width;
                }

                x -= BLT.Measure("|").Width;
                BLT.Print(x, y, "]]");
            }
        }
 protected static void RenderSpriteIfSpecified(int x, int y, ISpriteManager spriteManager, string spriteName, AnimationFrame frame)
 {
     if (!string.IsNullOrEmpty(spriteName))
     {
         BLT.Put(x, y, spriteManager.Tile(spriteName, frame));
     }
 }
        public void Initialise(GameLoopEventHandler onUpdate, GameLoopEventHandler onRender, IEntityDataProvider graphicsDataProvider)
        {
            BLT.Open();

            _update = onUpdate;
            _render = onRender;

            var config = $"window: size={Configuration.InitialWidth * TILE_SPACING}x{Configuration.InitialHeight * TILE_SPACING}, cellsize=4x4, title='{Configuration.WindowTitle}'";

            BLT.Set(config);

            BLT.Set("input: precise-mouse=false, filter=[keyboard,mouse+];");

            BLT.Set("text font: Images/Tileset/Andux_sleipnir_8x12_tf.png, codepage=437, size=8x12, spacing=2x3;");
            BLT.Set("textLarge font: Images/Tileset/Andux_sleipnir_8x12_tf.png, codepage=437, size=8x12, resize=16x24, resize-filter=nearest, spacing=4x6;");
            BLT.Set("textXLarge font: Images/Tileset/Andux_sleipnir_8x12_tf.png, codepage=437, size=8x12, resize=32x48, resize-filter=nearest, spacing=8x12;");


            _spriteManager = SetUpSpriteManager(graphicsDataProvider);

            List <IDataRogueControlRenderer> controlRenderers = BLTControlRenderer.DefaultControlRenderers;

            controlRenderers.AddRange(Configuration.AdditionalControlRenderers);

            Renderer = new BLTTilesUnifiedRenderer(controlRenderers, _spriteManager, Configuration);

            BLT.Refresh();
        }
        private void CheckInput()
        {
            while (BLT.HasInput() && !isClosed)
            {
                var input = BLT.Read();

                if (input == BLT.TK_CLOSE)
                {
                    isClosed = true;
                }

                if (IsMouseMove(input))
                {
                    _mouseActive = true;
                    _mouseX      = BLT.State(BLT.TK_MOUSE_X);
                    _mouseY      = BLT.State(BLT.TK_MOUSE_Y);
                }
                if (IsClickEvent(input))
                {
                    _mouseActive = true;
                }
                else
                {
                    ResolveKeyboardInput(input);
                }

                SetMouseButtons(input);
            }
        }
        public MapCoordinate GetMapEditorMapCoordinateFromMousePosition(MapCoordinate cameraPosition, int x, int y)
        {
            var lookupX = cameraPosition.X - BLT.State(BLT.TK_WIDTH) / (2 * BLTTilesIOSystem.TILE_SPACING) + x / BLTTilesIOSystem.TILE_SPACING;
            var lookupY = cameraPosition.Y - BLT.State(BLT.TK_HEIGHT) / (2 * BLTTilesIOSystem.TILE_SPACING) + y / BLTTilesIOSystem.TILE_SPACING;

            return(new MapCoordinate(cameraPosition.Key, lookupX, lookupY));
        }
        protected override void DisplayInternal(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov)
        {
            var messageLog = control as MessageLogControl;

            var numberOfMessages = messageLog.NumberOfMessages;

            BLTLayers.Set(BLTLayers.Text, control.ActivityIndex);
            BLT.Font("text");

            var messagesToRender = systemContainer.MessageSystem.RecentMessages(numberOfMessages);

            messagesToRender.Reverse();

            var x = control.Position.Left;
            var y = control.Position.Bottom;

            foreach (var message in messagesToRender)
            {
                var size = BLT.Measure(message.Text);
                y -= size.Height + 1;

                BLT.Color(message.Color);
                BLT.Print(x, y, message.Text);
            }

            BLT.Color("");
            BLT.Font("");
        }
Example #10
0
        private void RenderMapShade(ISpriteManager spriteManager, bool[,] renderTracker, bool[,] fovTracker, int renderWidth, int renderHeight, BLTMapRendererOffset[,,] offsetTracker, IDataRogueControl mapConfiguration)
        {
            var shadeSprite = spriteManager.Get("shade");

            BLTLayers.Set(BLTLayers.MapShade, 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 offsetX = (int)Math.Floor(offsetTracker[x + 1, y + 1, 0].OffsetX * BLTTilesIOSystem.TILE_SPACING);
                        var offsetY = (int)Math.Floor(offsetTracker[x + 1, y + 1, 0].OffsetY * BLTTilesIOSystem.TILE_SPACING);

                        if (!fovTracker[x + 1, y + 1])
                        {
                            var sprite = shadeSprite.Tile(TileDirections.None);
                            BLT.Put(mapConfiguration.Position.Left + x * BLTTilesIOSystem.TILE_SPACING + offsetX, mapConfiguration.Position.Top + y * BLTTilesIOSystem.TILE_SPACING + offsetY, sprite);
                        }
                        else
                        {
                            var aboveConnect = (fovTracker[x + 1, y]);
                            var belowConnect = (fovTracker[x + 1, y + 2]);
                            var leftConnect  = (fovTracker[x, y + 1]);
                            var rightConnect = (fovTracker[x + 2, y + 1]);

                            var directions = TileDirections.None;
                            if (aboveConnect)
                            {
                                directions |= TileDirections.Up;
                            }
                            if (belowConnect)
                            {
                                directions |= TileDirections.Down;
                            }
                            if (leftConnect)
                            {
                                directions |= TileDirections.Left;
                            }
                            if (rightConnect)
                            {
                                directions |= TileDirections.Right;
                            }

                            var sprite = shadeSprite.Tile(directions);



                            BLT.Put(
                                mapConfiguration.Position.Left + x * BLTTilesIOSystem.TILE_SPACING + offsetX,
                                mapConfiguration.Position.Top + y * BLTTilesIOSystem.TILE_SPACING + offsetY,
                                sprite);
                        }
                    }
                }
            }
        }
Example #11
0
        private void RenderMapParticles(ISystemContainer systemContainer, bool[,] renderTracker, bool[,] fovTracker, List <IEntity>[,] particlesTracker, int renderWidth, int renderHeight, IDataRogueControl mapConfiguration)
        {
            BLTLayers.Set(BLTLayers.MapParticles, mapConfiguration.ActivityIndex);
            BLT.Font("text");

            for (int x = 0; x < renderWidth; x++)
            {
                for (int y = 0; y < renderHeight; y++)
                {
                    if (renderTracker[x + 1, y + 1] && fovTracker[x + 1, y + 1] && particlesTracker[x + 1, y + 1].Any())
                    {
                        foreach (var particle in particlesTracker[x + 1, y + 1])
                        {
                            var textParticle = particle.Get <TextParticle>();
                            BLT.Color(textParticle.Color);

                            var moving  = particle.TryGet <Moving>();
                            var offsetX = (int)Math.Floor((moving?.OffsetX ?? 0) * BLTTilesIOSystem.TILE_SPACING);
                            var offsetY = (int)Math.Floor((moving?.OffsetY ?? 0) * BLTTilesIOSystem.TILE_SPACING);

                            BLT.Print(
                                (int)(mapConfiguration.Position.Left + x * BLTTilesIOSystem.TILE_SPACING + offsetX),
                                (int)(mapConfiguration.Position.Top + y * BLTTilesIOSystem.TILE_SPACING + offsetY),
                                textParticle.Text);
                        }
                    }
                }
            }
        }
Example #12
0
        public static void Set(int layer, int activityIndex)
        {
            if (activityIndex > 11)
            {
                throw new ApplicationException("Can't have more than 11 layers of activities");
            }

            BLT.Layer(layer + activityIndex * FULL_LAYER_SIZE);
        }
        private static void RenderBarFillMask(int x, int y, ISpriteManager spriteManager, int totalLength, decimal percentage, Color color, IDataRogueControl display)
        {
            BLTLayers.Set(BLTLayers.UIMasks, display.ActivityIndex);
            BLT.Color(color);
            var mask_main = spriteManager.Tile("bar_fill_mask");

            RenderBarContent(x, y, totalLength, percentage, mask_main, mask_main, mask_main, mask_main);
            BLT.Color("");
        }
        protected override Size Measure(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov, Rectangle boundingBox, Padding padding, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment)
        {
            var display = control as MenuActionsControl;
            var text    = $"[[{string.Join("|", display.AvailableActions.Select(a => a.ToString()))}]]";

            BLT.Font("text");
            var size = BLT.Measure(text);

            return(size);
        }
Example #15
0
        private void LoadSpriteSheetFile(string imageFile, int spriteWidth, int spriteHeight, int scaling, int spacing)
        {
            string configString = $"0x{_offset.ToString("X")}: {imageFile}, size={spriteWidth}x{spriteHeight}, resize={spriteWidth * scaling}x{spriteHeight * scaling}, resize-filter=nearest, spacing={spacing}x{spacing};";
            var    ok           = BLT.Set(configString);

            if (!ok)
            {
                throw new Exception($"BLT wasn't OK with sprite loading (tried to load {imageFile}). Check that the sprite is set to 'Copy Always'.");
            }
        }
Example #16
0
        private void SetMouseButtons(int input)
        {
            var leftMouseCurrentlyDown  = BLT.State(BLT.TK_MOUSE_LEFT) == 1;
            var rightMouseCurrentlyDown = BLT.State(BLT.TK_MOUSE_RIGHT) == 1;

            _leftClick  = _leftMouseDown && !leftMouseCurrentlyDown;
            _rightClick = _rightMouseDown && !rightMouseCurrentlyDown;

            _leftMouseDown  = leftMouseCurrentlyDown;
            _rightMouseDown = rightMouseCurrentlyDown;
        }
Example #17
0
        protected override void DisplayInternal(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov)
        {
            var display = control as MenuSelectorControl;
            var baseX   = control.Position.Left;
            var y       = control.Position.Top;
            var sprite  = spriteManager.Get(display.Direction == TileDirections.Left ? "selector_left" : "selector_right");

            BLTLayers.Set(BLTLayers.UIElementPieces, display.ActivityIndex);
            BLT.Font("");
            BLT.PutExt(baseX, y, 0, -1, sprite.Tile(display.Direction));
        }
        protected static void RenderText(int x, int y, int activityIndex, out Size textSize, string text, Color color, bool updateY = true, string font = "text")
        {
            BLTLayers.Set(BLTLayers.Text, activityIndex);
            BLT.Font(font);
            BLT.Color(color);
            BLT.Print(x, y, text);
            textSize         = BLT.Measure(text);
            textSize.Height += 1;

            BLT.Color("");
        }
        protected override void DisplayInternal(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov)
        {
            var x       = control.Position.X;
            var y       = control.Position.Y;
            var display = control as IDataRogueInfoControl;

            var player = systemContainer.PlayerSystem.Player;

            var ac           = Math.Floor(systemContainer.EventSystem.GetStat(player, "AC"));
            var ev           = Math.Floor(systemContainer.EventSystem.GetStat(player, "EV"));
            var sh           = Math.Floor(systemContainer.EventSystem.GetStat(player, "SH"));
            var currentAegis = Math.Floor(systemContainer.EventSystem.GetStat(player, "CurrentAegisLevel"));
            var aegis        = Math.Floor(systemContainer.EventSystem.GetStat(player, "Aegis"));
            var aegisText    = $"{currentAegis}/{aegis}";
            var renderAegis  = aegis > 0;
            var tiltFighter  = player.Get <TiltFighter>();
            var brokenTicks  = tiltFighter.BrokenTicks;
            var broken       = brokenTicks > 0;

            if (broken)
            {
                BLT.Font("");
                BLTLayers.Set(BLTLayers.UIElements, control.ActivityIndex);
                RenderSpriteIfSpecified(x, y, spriteManager, "defence_broken", AnimationFrame.Idle0);

                BLTLayers.Set(BLTLayers.Text, control.ActivityIndex);
                BLT.Font("text");
                BLT.Print(x + 10, y + 2, $"DEFENCE BROKEN (Recovery: {100 - brokenTicks / 200}%)");
            }
            else
            {
                BLT.Font("");
                BLTLayers.Set(BLTLayers.UIElements, control.ActivityIndex);
                RenderSpriteIfSpecified(x, y, spriteManager, "AC", AnimationFrame.Idle0);
                RenderSpriteIfSpecified(x + 10, y, spriteManager, "SH", AnimationFrame.Idle0);
                RenderSpriteIfSpecified(x + 20, y, spriteManager, "EV", AnimationFrame.Idle0);
                if (renderAegis)
                {
                    var aegisSprite = currentAegis > 0 ? "aegis" : "aegis_none";
                    RenderSpriteIfSpecified(x + 30, y, spriteManager, aegisSprite, AnimationFrame.Idle0);
                }

                BLTLayers.Set(BLTLayers.Text, control.ActivityIndex);
                BLT.Font("text");

                PrintTextCentered(ac.ToString(), x + 4, y + 2);
                PrintTextCentered(sh.ToString(), x + 4 + 10, y + 2);
                PrintTextCentered(ev.ToString(), x + 4 + 20, y + 2);
                if (renderAegis)
                {
                    PrintTextCentered(aegisText, x + 4 + 30, y + 2);
                }
            }
        }
        private static void RenderBarContainer(int x, int y, ISpriteManager spriteManager, int totalLength, IDataRogueControl display)
        {
            BLTLayers.Set(BLTLayers.UIElements, display.ActivityIndex);
            BLT.Put(x, y, spriteManager.Tile("bar_container_left"));

            for (int i = 4; i < totalLength - 6; i += 2)
            {
                BLT.Put(x + i, y, spriteManager.Tile("bar_container_mid"));
            }

            BLT.Put(x + totalLength - 4 - 4, y, spriteManager.Tile("bar_container_right"));
        }
Example #21
0
        private void ResolveKeyboardInput(int input)
        {
            var key = BLTKeyConverter.FromBLTInput(input);

            _keyCombination = new KeyCombination
            {
                Key   = key,
                Ctrl  = BLT.State(BLT.TK_CONTROL) != 0,
                Shift = BLT.State(BLT.TK_SHIFT) != 0,
                Alt   = BLT.State(BLT.TK_ALT) != 0,
            };
        }
        protected override Size Measure(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov, Rectangle boundingBox, Padding padding, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment)
        {
            var display = control as MultipleChoiceFormData;

            var text = display.Value.ToString();

            BLT.Font("text");

            var textSize = BLT.Measure(text);

            return(new Size(textSize.Width + 6, textSize.Height));
        }
Example #23
0
        protected override Size Measure(ISpriteManager spriteManager, IDataRogueControl display, ISystemContainer systemContainer, List <MapCoordinate> playerFov, Rectangle boundingBox, Padding padding, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment)
        {
            var statsControl = (display as IDataRogueInfoControl);
            var entity       = statsControl.Entity;

            BLT.Font("textLarge");
            var textSize = BLT.Measure(entity.GetBLTName());

            BLT.Font("");

            return(new Size(Math.Max(60, textSize.Width + 22), Height));
        }
        private void CircularcalcBtn_Click(object sender, EventArgs e)
        {
            double HCRT, Bt, HLC, WCF, BLT;

            if (Discanalrecttextbox.Text == "" || averageyradTextBox1.Text == "" || rblradTextBox2.Text == "" || cflradTextBox3.Text == "" || calradTextBox4.Text == "" || slopradTextBox5.Text == "" || BtmwdthradTextBox7.Text == "" || SIradTextBox1.Text == "" || LIradTextBox1.Text == "")
            {
                MessageBox.Show("please fill the filled corectly", "message", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
            }
            else
            {
                QC  = Convert.ToDouble(Discanalrecttextbox.Text);
                Y1  = Convert.ToDouble(averageyradTextBox1.Text);
                RBL = Convert.ToDouble(rblradTextBox2.Text);
                CFL = Convert.ToDouble(cflradTextBox3.Text);
                CAL = Convert.ToDouble(calradTextBox4.Text);
                S   = Convert.ToDouble(slopradTextBox5.Text);
                b   = Convert.ToDouble(BtmwdthradTextBox7.Text);
                LI  = Convert.ToDouble(LIradTextBox1.Text);
                SI  = Convert.ToDouble(SIradTextBox1.Text);
            }

            HCRT = (double)0.9 * Y1;
            Bt   = QC / ((double)1.61 * (Math.Sqrt(Math.Pow(HCRT, 3))));
            HLC  = CAL * S;
            HLI  = LI * SI;

            if (CanaltypecomboBox1.Text == "Trapezoidal")
            {
                WDC = (double)0.8673 * b;
            }
            else if (CanaltypecomboBox1.Text == "Rectangular")
            {
                WDC = (double)b / 2;
            }

            WCF = CFL + HLI + HLC + WDC;
            BLT = WCF - HCRT;

            if (BLT < RBL)
            {
                bwtradTextBox8.Text = Math.Round(Bt, 2).ToString();
                bltradTextBox9.Text = Math.Round(RBL, 2).ToString();
            }
            else
            {
                bwtradTextBox8.Text = Bt.ToString();
                bltradTextBox9.Text = BLT.ToString();
            }


            radButton1.Visible = true;
        }
        public void Render(ISystemContainer systemContainer, IActivity activity, int activityIndex)
        {
            if (activity.RendersEntireSpace)
            {
                BLT.Clear();
            }

            var playerFov = systemContainer.ActivitySystem.GameplayActivity.Running ? FOVHelper.CalculatePlayerFov(systemContainer) : null;

            activity.Layout(_controlRenderers, systemContainer, playerFov, _spriteManager);

            Paint(systemContainer, activity, playerFov, activityIndex);
        }
        protected override Size Measure(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov, Rectangle boundingBox, Padding padding, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment)
        {
            var display = control as IDataRogueInfoControl;
            var text    = display.Parameters;

            BLT.Font("textLarge");

            var size = BLT.Measure(text);

            size.Height += 1;

            return(size);
        }
        protected override void DisplayInternal(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov)
        {
            var display = control as IDataRogueInfoControl;
            var text    = display.Parameters;

            BLT.Font("textLarge");

            BLTLayers.Set(BLTLayers.Text, display.ActivityIndex);
            BLT.Color(display.Color);
            BLT.Print(display.Position.X, display.Position.Y, text);

            BLT.Color("");
        }
        protected override Size Measure(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov, Rectangle boundingBox, Padding padding, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment)
        {
            var display = control as StatsFormData;

            var stats = display.Stats;

            var statTotal = $"[[{display.CurrentTotalStat.ToString().PadLeft(4)}/{display.MaxTotalStat.ToString().PadRight(4)}]]";

            var statTotalSize = BLT.Measure(statTotal);

            var longestStat = stats.Max(s => BLT.Measure(s.statName).Width);
            var longest     = Math.Max(longestStat, statTotalSize.Width);

            return(new Size(longest, 4 * (stats.Count + 1)));
        }
Example #29
0
        protected override Size Measure(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov, Rectangle boundingBox, Padding padding, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment)
        {
            var display = control as IDataRogueInfoControl;
            var entity  = display.Entity;

            var experience = entity.Get <Experience>();

            var text1 = $"Level: {experience.Level}";
            var text2 = $"   XP: {experience.Amount}";

            BLT.Font("");
            var size1 = BLT.Measure(text1);
            var size2 = BLT.Measure(text2);

            return(new Size(Math.Max(size1.Width, size2.Width), size1.Height + size2.Height));
        }
        protected override Size Measure(ISpriteManager spriteManager, IDataRogueControl control, ISystemContainer systemContainer, List <MapCoordinate> playerFov, Rectangle boundingBox, Padding padding, HorizontalAlignment horizontalAlignment, VerticalAlignment verticalAlignment)
        {
            BLT.Font("text");

            var textSize = BLT.Measure(new String('@', 30));

            var textBoxSize = textSize.Width + 4;

            if (textBoxSize % TILE_SIZE != 0)
            {
                textBoxSize = (textBoxSize / TILE_SIZE + 1) * TILE_SIZE;
            }

            var numberOfTiles = textBoxSize / TILE_SIZE;

            return(new Size(numberOfTiles * TILE_SIZE, TILE_SIZE));
        }