Esempio n. 1
0
 public DraggableItem(DwarfGUI gui, GUIComponent parent, GItem item)
     : base(gui, parent)
 {
     IsDragging = false;
     Item = item;
     OnHover += DraggableItem_OnHover;
     OnUnHover += DraggableItem_OnUnHover;
     OnPressed += DraggableItem_OnPressed;
     OnRelease += DraggableItem_OnRelease;
     OnDragStarted += DraggableItem_OnDragStarted;
     OnDragEnded += DraggableItem_OnDragEnded;
     IsHighlighting = false;
     KeepAspectRatio = true;
 }
Esempio n. 2
0
 void ItemSelector_OnItemAdded(GItem item, int amount)
 {
 }
Esempio n. 3
0
        public GUIComponent CreateItem(Column columnType, GItem item, int row, int column)
        {
            string tooltip = item.ResourceType.Type + "\n" + item.ResourceType.Description + "\n" +
                             item.ResourceType.GetTagDescription(" , ");

            if (item.ResourceType.FoodContent > 0)
            {
                tooltip += "\n" + item.ResourceType.FoodContent + " energy";
            }

            switch (columnType)
            {
            case Column.Amount:
                Label amountLabel = new Label(GUI, Layout, item.CurrentAmount.ToString(), GUI.SmallFont)
                {
                    ToolTip   = "Total Amount",
                    Alignment = Drawer2D.Alignment.Right
                };

                Layout.SetComponentPosition(amountLabel, column, row, 1, 1);
                return(amountLabel);

            case Column.Image:
                ImagePanel image = new ImagePanel(GUI, Layout, item.Image)
                {
                    KeepAspectRatio = true,
                    ConstrainSize   = true,
                    Tint            = item.Tint,
                    ToolTip         = tooltip,
                };
                Layout.SetComponentPosition(image, column, row, 1, 1);

                return(image);

            case Column.Name:
                Label label = new Label(GUI, Layout, item.Name, GUI.SmallFont)
                {
                    ToolTip = tooltip
                };

                Layout.SetComponentPosition(label, column, row, 1, 1);

                return(label);

            case Column.PricePerItem:
                Label priceLabel = new Label(GUI, Layout, GetPrice(item).ToString("C"), GUI.SmallFont)
                {
                    ToolTip = "Price per item",
                };
                Layout.SetComponentPosition(priceLabel, column, row, 1, 1);

                return(priceLabel);


            case Column.TotalPrice:
                Label totalLabel = new Label(GUI, Layout, (GetPrice(item) * item.CurrentAmount).ToString("C"), GUI.SmallFont)
                {
                    ToolTip = "Total price"
                };
                Layout.SetComponentPosition(totalLabel, column, row, 1, 1);

                return(totalLabel);

            case Column.ArrowRight:
                ImagePanel panel = new ImagePanel(GUI, Layout, GUI.Skin.GetSpecialFrame(GUISkin.Tile.SmallArrowRight))
                {
                    KeepAspectRatio = true,
                    ConstrainSize   = true
                };
                Layout.SetComponentPosition(panel, column, row, 1, 1);
                return(panel);

            case Column.ArrowLeft:
                ImagePanel panelLeft = new ImagePanel(GUI, Layout, GUI.Skin.GetSpecialFrame(GUISkin.Tile.SmallArrowLeft))
                {
                    KeepAspectRatio = true,
                    ConstrainSize   = true
                };
                Layout.SetComponentPosition(panelLeft, column, row, 1, 1);
                return(panelLeft);
            }

            return(null);
        }
Esempio n. 4
0
        public void UpdateItem(Column columnType, int row, int column)
        {
            Rectangle key = new Rectangle(column, row, 1, 1);

            if (!Layout.ComponentPositions.ContainsKey(key))
            {
                return;
            }
            GItem        item      = FilteredItems[row - 1];
            GUIComponent component = Layout.ComponentPositions[key];
            string       tooltip   = item.ResourceType.Type + "\n" + item.ResourceType.Description + "\n" +
                                     item.ResourceType.GetTagDescription(" , ");

            if (item.ResourceType.FoodContent > 0)
            {
                tooltip += "\n" + item.ResourceType.FoodContent + " energy";
            }
            switch (columnType)
            {
            case Column.Amount:
                Label amountLabel = component as Label;

                if (amountLabel == null)
                {
                    break;
                }

                amountLabel.Text = item.CurrentAmount.ToString();

                break;

            case Column.Image:
                ImagePanel image = component as ImagePanel;

                if (image == null)
                {
                    break;
                }

                image.Image   = item.Image;
                image.Tint    = item.Tint;
                image.ToolTip = tooltip;
                break;

            case Column.Name:
                Label label = component as Label;

                if (label == null)
                {
                    break;
                }

                label.Text    = item.Name;
                label.ToolTip = tooltip;
                break;

            case Column.PricePerItem:
                Label priceLabel = component as Label;

                if (priceLabel == null)
                {
                    break;
                }
                float price = GetPrice(item);
                priceLabel.Text = price.ToString("C");

                break;


            case Column.TotalPrice:
                Label totalpriceLabel = component as Label;

                if (totalpriceLabel == null)
                {
                    break;
                }

                totalpriceLabel.Text = (item.CurrentAmount * GetPrice(item)).ToString("C");

                break;
            }
        }
Esempio n. 5
0
 void shoppingCart_OnItemChanged(GItem item)
 {
     TradeEvent trade = new TradeEvent() {GoodsReceived = GoodsReceived, GoodsSent = GoodsSent};
     float total = trade.GetProfit().TotalProfit;
     BuyTotal.Text = "Total Profit: " + (total).ToString("C");
 }
Esempio n. 6
0
 void SellCart_OnItemChanged(GItem item)
 {
     SellTotal.Text = "Order Total: " + SellCart.ComputeTotal().ToString("C");
 }
Esempio n. 7
0
 public bool AddItem(GItem item, int r, int c)
 {
     Rectangle rect = new Rectangle(c, r, 1, 1);
     if(Layout.ComponentPositions.ContainsKey(rect))
     {
         GUIComponent slot = Layout.ComponentPositions[rect];
         AddItem(slot, item);
         return true;
     }
     else
     {
         return false;
     }
 }
Esempio n. 8
0
 private void ItemSelector_OnItemChanged(GItem item)
 {
     UpdateItems();
 }
Esempio n. 9
0
 void ItemSelector_OnItemAdded(GItem item, int amount)
 {
 }
Esempio n. 10
0
        void ItemClicked(GItem item)
        {
            KeyboardState state = Keyboard.GetState();

            bool shiftPressed = state.IsKeyDown(Keys.LeftShift) || state.IsKeyDown(Keys.RightShift);

            int amount = (shiftPressed && AllowShiftClick) ? item.CurrentAmount : 1;

            switch(Behavior)
            {
                    case ClickBehavior.AddItem:
                        item.CurrentAmount += amount;
                        OnItemAdded(item, amount);
                        OnItemChanged(item);
                        break;

                    case ClickBehavior.None:
                        break;

                    case ClickBehavior.RemoveItem:
                        item.CurrentAmount -= amount;

                    if(item.CurrentAmount <= 0)
                    {
                        Items.Remove(item);
                        ReCreateItems();
                    }

                        OnItemRemoved(item, amount);
                        OnItemChanged(item);
                        break;
            }
        }
Esempio n. 11
0
 protected virtual void OnOnItemRemoved(GItem item, int amount)
 {
     ItemRemoved handler = OnItemRemoved;
     if(handler != null)
     {
         handler(item, amount);
     }
 }
Esempio n. 12
0
 public void SetItemNumber(GItem item, float number)
 {
     item.CurrentAmount = (int) number;
     OnItemChanged.Invoke(item);
 }
Esempio n. 13
0
        public GUIComponent CreateItem(Column columnType, GItem item, int row, int column)
        {
            switch(columnType)
            {
               case Column.Amount:
                    Label amountLabel = new Label(GUI, Layout, item.CurrentAmount.ToString(), GUI.SmallFont)
                    {
                        ToolTip = "Total Amount"
                    };

                    Layout.SetComponentPosition(amountLabel, column, row, 1, 1);
                    return amountLabel;

                case Column.Image:
                    ImagePanel image = new ImagePanel(GUI, Layout, item.Image)
                    {
                        KeepAspectRatio = true,
                        ConstrainSize = true
                    };
                    Layout.SetComponentPosition(image, column, row, 1, 1);

                    return image;

                case Column.Name:
                    Label label = new Label(GUI, Layout, item.Name, GUI.SmallFont);
                    Layout.SetComponentPosition(label, column, row, 1, 1);

                    return label;

                case Column.PricePerItem:
                    Label priceLabel = new Label(GUI, Layout, item.Price.ToString("C"), GUI.SmallFont)
                    {
                        ToolTip = "Price per item"
                    };
                    Layout.SetComponentPosition(priceLabel, column, row, 1, 1);

                    return priceLabel;

                case Column.TotalPrice:
                    Label totalLabel = new Label(GUI, Layout, (item.Price * item.CurrentAmount).ToString("C"), GUI.SmallFont)
                    {
                        ToolTip = "Total price"
                    };
                    Layout.SetComponentPosition(totalLabel, column, row, 1, 1);

                    return totalLabel;

                case Column.ArrowRight:
                    ImagePanel panel = new ImagePanel(GUI, Layout, GUI.Skin.GetSpecialFrame(GUISkin.Tile.SmallArrowRight))
                    {
                        KeepAspectRatio = true,
                        ConstrainSize = true
                    };
                    Layout.SetComponentPosition(panel, column, row, 1, 1);
                    return panel;

                case Column.ArrowLeft:
                    ImagePanel panelLeft = new ImagePanel(GUI, Layout, GUI.Skin.GetSpecialFrame(GUISkin.Tile.SmallArrowLeft))
                    {
                        KeepAspectRatio = true,
                        ConstrainSize = true
                    };
                    Layout.SetComponentPosition(panelLeft, column, row, 1, 1);
                    return panelLeft;
            }

            return null;
        }
Esempio n. 14
0
        public void AddItem(GItem item, int amount)
        {
            GItem existingItem = Items.FirstOrDefault(myItem => myItem.Name == item.Name);

            if(existingItem == null)
            {
                existingItem = new GItem(item.Name, item.Image, 0, 10000, amount, item.Price)
                {
                    CurrentAmount = amount
                };
                Items.Add(existingItem);
                ReCreateItems();
                OnItemChanged(existingItem);
                return;
            }
            else
            {
                existingItem.CurrentAmount += amount;
                UpdateItems();
                OnItemChanged(existingItem);
            }
        }
Esempio n. 15
0
 void TheirGoods_OnItemAdded(GItem item, int amount)
 {
     GoodsSent.Add(new ResourceAmount(ResourceLibrary.GetResourceByName(item.Name), amount));
 }
Esempio n. 16
0
 void ItemSelector_OnItemRemoved(GItem item, int amount)
 {
 }
Esempio n. 17
0
 public void SetItemNumber(GItem item, float number)
 {
     item.CurrentAmount = (int)number;
     OnItemChanged.Invoke(item);
 }
Esempio n. 18
0
 private void ItemSelector_OnItemChanged(GItem item)
 {
     UpdateItems();
 }
Esempio n. 19
0
        public void AddItem(GUIComponent slot, GItem item)
        {
            DraggableItem dItem = new DraggableItem(GUI, slot, item)
            {
                ToolTip = item.Name
            };
            DragManager.Slots[slot] = dItem;
            dItem.OnDragStarted += () => DragManager.StartDrag(dItem, 1);

            dItem.OnDragEnded += () => DragManager.Drop();

            dItem.LocalBounds = new Rectangle(0, 0, GridWidth, GridHeight);
            slot.ClearChildren();
            slot.AddChild(dItem);
            Items.Add(dItem);
        }
Esempio n. 20
0
 void ItemSelector_OnItemRemoved(GItem item, int amount)
 {
 }
Esempio n. 21
0
        public void AddItem(GItem item)
        {
            int index = Items.Count;
            int r = index / TotalCols;
            int c = index % TotalCols;

            AddItem(item, r, c);
        }
Esempio n. 22
0
 void SellCart_OnItemChanged(GItem item)
 {
     SellTotal.Text = "Order Total: " + SellCart.ComputeTotal().ToString("C");
 }
Esempio n. 23
0
        void shoppingCart_OnItemChanged(GItem item)
        {
            float total = ShoppingCart.ComputeTotal();
            float shipping = ShoppingCart.ComputeShipping();
            BuyTotal.Text = "Order Total: " + (total).ToString("C") + "\n (" + shipping.ToString("C") + " shipping)";

            if(total > Faction.Economy.CurrentMoney)
            {
                BuyTotal.TextColor = Microsoft.Xna.Framework.Color.DarkRed;
                BuyTotal.ToolTip = "Can't buy! Not enough money!";
            }
            else
            {
                BuyTotal.TextColor = Microsoft.Xna.Framework.Color.Black;
                BuyTotal.ToolTip = "We have enough money to buy this.";
            }
        }
Esempio n. 24
0
 void MyGoods_OnItemAdded(GItem item, int amount)
 {
     GoodsReceived.Add(new ResourceAmount(ResourceLibrary.GetResourceByName(item.Name), amount));
 }