Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
ClothingWidget.cs
浏览该文件的文档.
1using System.Xml.Linq;
2using Engine;
3
4namespace Game {
5 public class ClothingWidget : CanvasWidget {
7
9
11
13
15
16 [Obsolete("m_innerClothingModelWidget contains all clothes, including outer clothes.")]
18
20
21 public ClothingWidget(ComponentPlayer componentPlayer) {
22 m_componentPlayer = componentPlayer;
23 XElement node = ContentManager.Get<XElement>("Widgets/ClothingWidget");
24 LoadContents(this, node);
25 m_clothingStack = Children.Find<StackPanelWidget>("ClothingStack");
26 m_inventoryGrid = Children.Find<GridPanelWidget>("InventoryGrid");
27 m_vitalStatsButton = Children.Find<ButtonWidget>("VitalStatsButton");
28 m_sleepButton = Children.Find<ButtonWidget>("SleepButton");
29 m_innerClothingModelWidget = Children.Find<PlayerModelWidget>("InnerClothingModel");
30#pragma warning disable CS0618
31 m_outerClothingModelWidget = Children.Find<PlayerModelWidget>("OuterClothingModel");
32#pragma warning restore CS0618
33 for (int i = 0; i < 4; i++) {
34 InventorySlotWidget inventorySlotWidget = new();
35 float y = float.PositiveInfinity;
36 if (i == 0) {
37 y = 68f;
38 }
39 if (i == 3) {
40 y = 54f;
41 }
42 inventorySlotWidget.Size = new Vector2(float.PositiveInfinity, y);
43 inventorySlotWidget.BevelColor = Color.Transparent;
44 inventorySlotWidget.CenterColor = Color.Transparent;
45 inventorySlotWidget.AssignInventorySlot(m_componentPlayer.ComponentClothing, i);
46 inventorySlotWidget.HideEditOverlay = true;
47 inventorySlotWidget.HideInteractiveOverlay = true;
48 inventorySlotWidget.HideFoodOverlay = true;
49 inventorySlotWidget.HideHighlightRectangle = true;
50 inventorySlotWidget.HideBlockIcon = true;
51 inventorySlotWidget.HideHealthBar = m_componentPlayer.Project.FindSubsystem<SubsystemGameInfo>(true).WorldSettings.GameMode
52 == GameMode.Creative;
53 m_clothingStack.Children.Add(inventorySlotWidget);
54 }
55 int num = 10;
56 for (int j = 0; j < m_inventoryGrid.RowsCount; j++) {
57 for (int k = 0; k < m_inventoryGrid.ColumnsCount; k++) {
58 InventorySlotWidget inventorySlotWidget2 = new();
59 inventorySlotWidget2.AssignInventorySlot(componentPlayer.ComponentMiner.Inventory, num++);
60 m_inventoryGrid.Children.Add(inventorySlotWidget2);
61 m_inventoryGrid.SetWidgetCell(inventorySlotWidget2, new Point2(k, j));
62 }
63 }
64 m_innerClothingModelWidget.PlayerClass = componentPlayer.PlayerData.PlayerClass;
65 m_innerClothingModelWidget.CharacterSkinTexture = m_componentPlayer.ComponentClothing.InnerClothedTexture;
66 m_innerClothingModelWidget.OuterClothingTexture = m_componentPlayer.ComponentClothing.OuterClothedTexture;
67 m_innerClothingModelWidget.PlayerData = componentPlayer.PlayerData;
68 }
69
70 public override void Update() {
71 if (m_vitalStatsButton.IsClicked
72 && m_componentPlayer != null) {
73 m_componentPlayer.ComponentGui.ModalPanelWidget = new VitalStatsWidget(m_componentPlayer);
74 }
75 if (m_sleepButton.IsClicked
76 && m_componentPlayer != null) {
77 if (!m_componentPlayer.ComponentSleep.CanSleep(out string reason)) {
78 m_componentPlayer.ComponentGui.DisplaySmallMessage(reason, Color.White, false, false);
79 }
80 else {
81 m_componentPlayer.ComponentSleep.Sleep(true);
82 }
83 }
84 }
85 }
86}
GridPanelWidget m_inventoryGrid
ClothingWidget(ComponentPlayer componentPlayer)
StackPanelWidget m_clothingStack
ComponentPlayer m_componentPlayer
PlayerModelWidget m_innerClothingModelWidget
PlayerModelWidget m_outerClothingModelWidget
readonly WidgetsList Children
static object Get(Type type, string name)
virtual void AssignInventorySlot(IInventory inventory, int slotIndex)
PlayerClass PlayerClass
virtual void LoadContents(object eventsTarget, XElement node)
static Color Transparent
定义 Color.cs:5
static Color White