Example #1
0
            public void DrawMachine(Drawing drawing, Vector2 position, IMyProductionBlock block, List <Item> items, Style style)
            {
                float size_icon       = style.Height - 10;
                Color color_title     = new Color(100, 100, 100, 128);
                Color color_text      = new Color(100, 100, 100, 255);
                float RotationOrScale = 0.5f;
                float cell_spacing    = 10f;

                float form_width  = style.Width - 5;
                float form_height = style.Height - 5;

                string colorDefault = DisplayLcd.program.MyProperty.Get("color", "default");

                float x = 0f;

                drawing.AddForm(position + new Vector2(0, 0), SpriteForm.SquareSimple, form_width, form_height, new Color(5, 5, 5, 125));

                foreach (Item item in items)
                {
                    // icon
                    drawing.AddSprite(new MySprite()
                    {
                        Type     = SpriteType.TEXTURE,
                        Data     = item.Icon,
                        Size     = new Vector2(size_icon, size_icon),
                        Color    = DisplayLcd.program.MyProperty.GetColor("color", item.Name, colorDefault),
                        Position = position + new Vector2(x, size_icon / 2 + cell_spacing)
                    });

                    if (drawing.Symbol.Keys.Contains(item.Name))
                    {
                        // symbol
                        Vector2 positionSymbol = position + new Vector2(x, 20);
                        drawing.AddForm(positionSymbol, SpriteForm.SquareSimple, size_icon, 15f, new Color(10, 10, 10, 200));
                        drawing.AddSprite(new MySprite()
                        {
                            Type            = SpriteType.TEXT,
                            Data            = drawing.Symbol[item.Name],
                            Color           = color_text,
                            Position        = positionSymbol,
                            RotationOrScale = RotationOrScale,
                            FontId          = drawing.Font,
                            Alignment       = TextAlignment.LEFT
                        });
                    }

                    // Quantity
                    Vector2 positionQuantity = position + new Vector2(x, size_icon - 12);
                    Color   mask_color       = new Color(0, 0, 20, 200);
                    if (item.Variance == 2)
                    {
                        mask_color = new Color(20, 0, 0, 200);
                    }
                    if (item.Variance == 3)
                    {
                        mask_color = new Color(0, 20, 0, 200);
                    }
                    drawing.AddForm(positionQuantity, SpriteForm.SquareSimple, size_icon, 15f, mask_color);
                    drawing.AddSprite(new MySprite()
                    {
                        Type            = SpriteType.TEXT,
                        Data            = Util.GetKiloFormat(item.Amount),
                        Color           = color_text,
                        Position        = positionQuantity,
                        RotationOrScale = RotationOrScale,
                        FontId          = drawing.Font,
                        Alignment       = TextAlignment.LEFT
                    });
                    x += style.Height;
                }

                // Element Name
                MySprite icon = new MySprite()
                {
                    Type            = SpriteType.TEXT,
                    Data            = Util.CutString(block.CustomName, string_len),
                    Color           = color_title,
                    Position        = position + new Vector2(style.Margin.X, 0),
                    RotationOrScale = 0.6f,
                    FontId          = drawing.Font,
                    Alignment       = TextAlignment.LEFT
                };

                drawing.AddSprite(icon);
            }