Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
FurnaceWidget.cs
浏览该文件的文档.
1using System.Xml.Linq;
2using Engine;
3
4namespace Game {
5 public class FurnaceWidget : CanvasWidget {
7
9
11
13
15
17
19
21
22 public FurnaceWidget(IInventory inventory, ComponentFurnace componentFurnace) {
23 m_componentFurnace = componentFurnace;
24 XElement node = ContentManager.Get<XElement>("Widgets/FurnaceWidget");
25 LoadContents(this, node);
26 m_inventoryGrid = Children.Find<GridPanelWidget>("InventoryGrid");
27 m_furnaceGrid = Children.Find<GridPanelWidget>("FurnaceGrid");
28 m_fire = Children.Find<FireWidget>("Fire");
29 m_progress = Children.Find<ValueBarWidget>("Progress");
30 m_resultSlot = Children.Find<InventorySlotWidget>("ResultSlot");
31 m_remainsSlot = Children.Find<InventorySlotWidget>("RemainsSlot");
32 m_fuelSlot = Children.Find<InventorySlotWidget>("FuelSlot");
33 int num = 10;
34 for (int i = 0; i < m_inventoryGrid.RowsCount; i++) {
35 for (int j = 0; j < m_inventoryGrid.ColumnsCount; j++) {
36 InventorySlotWidget inventorySlotWidget = new();
37 inventorySlotWidget.AssignInventorySlot(inventory, num++);
38 m_inventoryGrid.Children.Add(inventorySlotWidget);
39 m_inventoryGrid.SetWidgetCell(inventorySlotWidget, new Point2(j, i));
40 }
41 }
42 num = 0;
43 for (int k = 0; k < m_furnaceGrid.RowsCount; k++) {
44 for (int l = 0; l < m_furnaceGrid.ColumnsCount; l++) {
45 InventorySlotWidget inventorySlotWidget2 = new();
46 inventorySlotWidget2.AssignInventorySlot(componentFurnace, num++);
47 m_furnaceGrid.Children.Add(inventorySlotWidget2);
48 m_furnaceGrid.SetWidgetCell(inventorySlotWidget2, new Point2(l, k));
49 }
50 }
51 m_fuelSlot.AssignInventorySlot(componentFurnace, componentFurnace.FuelSlotIndex);
52 m_resultSlot.AssignInventorySlot(componentFurnace, componentFurnace.ResultSlotIndex);
53 m_remainsSlot.AssignInventorySlot(componentFurnace, componentFurnace.RemainsSlotIndex);
54 }
55
56 public override void Update() {
57 m_fire.ParticlesPerSecond = m_componentFurnace.HeatLevel > 0f ? 24 : 0;
58 m_progress.Value = m_componentFurnace.SmeltingProgress;
59 if (!m_componentFurnace.IsAddedToProject) {
60 ParentWidget.Children.Remove(this);
61 }
62 }
63 }
64}
readonly WidgetsList Children
static object Get(Type type, string name)
InventorySlotWidget m_remainsSlot
ComponentFurnace m_componentFurnace
InventorySlotWidget m_resultSlot
GridPanelWidget m_inventoryGrid
FurnaceWidget(IInventory inventory, ComponentFurnace componentFurnace)
ValueBarWidget m_progress
InventorySlotWidget m_fuelSlot
GridPanelWidget m_furnaceGrid
virtual void AssignInventorySlot(IInventory inventory, int slotIndex)
ContainerWidget ParentWidget
virtual void LoadContents(object eventsTarget, XElement node)