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; }
void ItemSelector_OnItemAdded(GItem item, int amount) { }
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); }
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; } }
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"); }
void SellCart_OnItemChanged(GItem item) { SellTotal.Text = "Order Total: " + SellCart.ComputeTotal().ToString("C"); }
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; } }
private void ItemSelector_OnItemChanged(GItem item) { UpdateItems(); }
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; } }
protected virtual void OnOnItemRemoved(GItem item, int amount) { ItemRemoved handler = OnItemRemoved; if(handler != null) { handler(item, amount); } }
public void SetItemNumber(GItem item, float number) { item.CurrentAmount = (int) number; OnItemChanged.Invoke(item); }
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; }
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); } }
void TheirGoods_OnItemAdded(GItem item, int amount) { GoodsSent.Add(new ResourceAmount(ResourceLibrary.GetResourceByName(item.Name), amount)); }
void ItemSelector_OnItemRemoved(GItem item, int amount) { }
public void SetItemNumber(GItem item, float number) { item.CurrentAmount = (int)number; OnItemChanged.Invoke(item); }
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); }
public void AddItem(GItem item) { int index = Items.Count; int r = index / TotalCols; int c = index % TotalCols; AddItem(item, r, c); }
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."; } }
void MyGoods_OnItemAdded(GItem item, int amount) { GoodsReceived.Add(new ResourceAmount(ResourceLibrary.GetResourceByName(item.Name), amount)); }