Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
ChestWidget.cs
浏览该文件的文档.
1using System.Xml.Linq;
2using Engine;
3
4namespace Game {
5 public class ChestWidget : CanvasWidget {
7
9
11
12 public ChestWidget(IInventory inventory, ComponentChest componentChest) {
13 m_componentChest = componentChest;
14 XElement node = ContentManager.Get<XElement>("Widgets/ChestWidget");
15 LoadContents(this, node);
16 m_inventoryGrid = Children.Find<GridPanelWidget>("InventoryGrid");
17 m_chestGrid = Children.Find<GridPanelWidget>("ChestGrid");
18 int num = 0;
19 for (int i = 0; i < m_chestGrid.RowsCount; i++) {
20 for (int j = 0; j < m_chestGrid.ColumnsCount; j++) {
21 InventorySlotWidget inventorySlotWidget = new();
22 inventorySlotWidget.AssignInventorySlot(componentChest, num++);
23 m_chestGrid.Children.Add(inventorySlotWidget);
24 m_chestGrid.SetWidgetCell(inventorySlotWidget, new Point2(j, i));
25 }
26 }
27 num = 10;
28 for (int k = 0; k < m_inventoryGrid.RowsCount; k++) {
29 for (int l = 0; l < m_inventoryGrid.ColumnsCount; l++) {
30 InventorySlotWidget inventorySlotWidget2 = new();
31 inventorySlotWidget2.AssignInventorySlot(inventory, num++);
32 m_inventoryGrid.Children.Add(inventorySlotWidget2);
33 m_inventoryGrid.SetWidgetCell(inventorySlotWidget2, new Point2(l, k));
34 }
35 }
36 }
37
38 public override void Update() {
39 if (!m_componentChest.IsAddedToProject) {
40 ParentWidget.Children.Remove(this);
41 }
42 }
43 }
44}
GridPanelWidget m_inventoryGrid
override void Update()
ComponentChest m_componentChest
ChestWidget(IInventory inventory, ComponentChest componentChest)
GridPanelWidget m_chestGrid
readonly WidgetsList Children
static object Get(Type type, string name)
virtual void AssignInventorySlot(IInventory inventory, int slotIndex)
ContainerWidget ParentWidget
virtual void LoadContents(object eventsTarget, XElement node)