Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
PlayerWidget.cs
浏览该文件的文档.
1using System.Xml.Linq;
2
3namespace Game {
4 public class PlayerWidget : CanvasWidget {
9
12 public const string fName = "PlayerWidget";
13
14 public PlayerWidget(PlayerData playerData, CharacterSkinsCache characterSkinsCache) {
15 XElement node = ContentManager.Get<XElement>("Widgets/PlayerWidget");
16 LoadContents(this, node);
17 m_playerModel = Children.Find<PlayerModelWidget>("PlayerModel");
18 m_nameLabel = Children.Find<LabelWidget>("Name");
19 m_detailsLabel = Children.Find<LabelWidget>("Details");
20 m_editButton = Children.Find<ButtonWidget>("EditButton");
21 m_playerModel.CharacterSkinsCache = characterSkinsCache;
22 m_playerData = playerData;
23 }
24
25 public override void Update() {
26 SubsystemGameInfo subsystemGameInfo = m_playerData.SubsystemPlayers.Project.FindSubsystem<SubsystemGameInfo>(true);
27 m_playerModel.PlayerClass = m_playerData.PlayerClass;
28 m_playerModel.CharacterSkinName = m_playerData.CharacterSkinName;
29 m_playerModel.PlayerData = m_playerData;
30 m_nameLabel.Text = m_playerData.Name;
31 m_detailsLabel.Text = m_playerData.PlayerClass.ToString();
32 m_detailsLabel.Text += "\n";
33 LabelWidget detailsLabel = m_detailsLabel;
34 detailsLabel.Text = string.Format(
36 detailsLabel.Text,
38 );
39 m_detailsLabel.Text += "\n";
40 float time = 1200f;
41 if (m_subsystemTimeOfDay == null
42 && m_playerData.m_subsystemGameInfo != null) {
43 m_subsystemTimeOfDay = m_playerData.m_subsystemGameInfo.Project.FindSubsystem<SubsystemTimeOfDay>();
44 }
45 if (m_subsystemTimeOfDay != null) {
46 time = m_subsystemTimeOfDay.DayDuration;
47 }
48 m_detailsLabel.Text += m_playerData.LastSpawnTime >= 0.0
49 ? string.Format(
51 $"{(subsystemGameInfo.TotalElapsedGameTime - m_playerData.LastSpawnTime) / time:N1}"
52 )
54 if (m_editButton.IsClicked) {
56 }
57 }
58 }
59}
readonly WidgetsList Children
static object Get(Type type, string name)
override string Text
static string Get(string className, int key)
获取在当前语言类名键对应的字符串
static string GetDeviceDisplayName(WidgetInputDevice device)
override void Update()
LabelWidget m_detailsLabel
ButtonWidget m_editButton
PlayerWidget(PlayerData playerData, CharacterSkinsCache characterSkinsCache)
SubsystemTimeOfDay m_subsystemTimeOfDay
PlayerModelWidget m_playerModel
static void SwitchScreen(string name, params object[] parameters)
virtual void LoadContents(object eventsTarget, XElement node)