Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
GameLoadingScreen.cs
浏览该文件的文档.
1
using
System.Xml.Linq;
2
3
namespace
Game
{
4
public
class
GameLoadingScreen
:
Screen
{
5
public
WorldInfo
m_worldInfo
;
6
7
public
string
m_worldSnapshotName
;
8
9
public
LabelWidget
m_loadingLabel
;
10
11
public
StateMachine
m_stateMachine
=
new
();
12
13
public
bool
m_upgradeCompleted
;
14
15
public
Exception
m_upgradeError
;
16
public
static
string
fName
=
"GameLoadingScreen"
;
17
18
public
GameLoadingScreen
() {
19
XElement node =
ContentManager
.
Get
<XElement>(
"Screens/GameLoadingScreen"
);
20
LoadContents
(
this
, node);
21
m_stateMachine
.AddState(
22
"WaitingForFadeIn"
,
23
null
,
24
delegate {
25
if
(!
ScreensManager
.
IsAnimating
) {
26
if
(
string
.IsNullOrEmpty(
m_worldSnapshotName
)) {
27
m_stateMachine
.TransitionTo(
"Loading"
);
28
}
29
else
{
30
m_stateMachine
.TransitionTo(
"RestoringSnapshot"
);
31
}
32
}
33
},
34
null
35
);
36
m_stateMachine
.AddState(
37
"Upgrading"
,
38
delegate {
39
GameManager
.
DisposeProject
();
40
m_upgradeCompleted
=
false
;
41
m_upgradeError
=
null
;
42
Task.Run(
43
delegate {
44
try
{
45
GameManager
.
RepairAndUpgradeWorld
(
m_worldInfo
);
46
m_upgradeCompleted
=
true
;
47
}
48
catch
(Exception upgradeError) {
49
m_upgradeError
= upgradeError;
50
}
51
}
52
);
53
},
54
delegate {
55
if
(
m_upgradeCompleted
) {
56
m_stateMachine
.TransitionTo(
"Loading"
);
57
}
58
else
if
(
m_upgradeError
!=
null
) {
59
throw
m_upgradeError
;
60
}
61
},
62
null
63
);
64
m_stateMachine
.AddState(
65
"Loading"
,
66
null
,
67
delegate {
68
ContainerWidget
gamesWidget =
ScreensManager
.FindScreen<
GameScreen
>(
"Game"
).
Children
.Find<
ContainerWidget
>(
"GamesWidget"
);
69
GameManager
.
LoadProject
(
m_worldInfo
, gamesWidget);
70
ScreensManager
.
SwitchScreen
(
"Game"
);
71
},
72
null
73
);
74
m_stateMachine
.AddState(
75
"RestoringSnapshot"
,
76
null
,
77
delegate {
78
GameManager
.
DisposeProject
();
79
WorldsManager
.
RestoreWorldFromSnapshot
(
m_worldInfo
.DirectoryName,
m_worldSnapshotName
);
80
m_stateMachine
.TransitionTo(
"Upgrading"
);
81
},
82
null
83
);
84
}
85
86
public
override
void
Update
() {
87
try
{
88
m_stateMachine
.Update();
89
}
90
catch
(Exception) {
91
ScreensManager
.
SwitchScreen
(
ScreensManager
.
PreviousScreen
);
92
ViewGameLogDialog
dialog =
new
();
93
dialog.
SetErrorHead
(11, 10);
94
DialogsManager
.
ShowDialog
(
null
, dialog);
95
}
96
}
97
98
public
override
void
Enter
(
object
[] parameters) {
99
m_worldInfo
= (
WorldInfo
)parameters[0];
100
m_worldSnapshotName
= (string)parameters[1];
101
m_stateMachine
.TransitionTo(
"WaitingForFadeIn"
);
102
ProgressManager
.
UpdateProgress
(
"Loading World"
, 0f);
103
CommunityContentScreen
screen =
ScreensManager
.FindScreen<
CommunityContentScreen
>(
"CommunityContent"
);
104
if
(screen !=
null
) {
105
screen.
m_treePanel
.
Clear
();
106
screen.m_treePanel.ScrollPosition = 0f;
107
screen.m_contentExpiryTime = 0;
108
}
109
OriginalCommunityContentScreen
originalCommunityContentScreen =
ScreensManager
.FindScreen<
OriginalCommunityContentScreen
>(
"OriginalCommunityContent"
);
110
if
(originalCommunityContentScreen !=
null
) {
111
originalCommunityContentScreen.
m_listPanel
.
ClearItems
();
112
originalCommunityContentScreen.m_listPanel.ScrollPosition = 0f;
113
originalCommunityContentScreen.m_itemsCacheExpiryTime = 0;
114
}
115
}
116
}
117
}
Game.CommunityContentScreen
定义
CommunityContentScreen.cs:12
Game.CommunityContentScreen.m_treePanel
TreeViewWidget m_treePanel
定义
CommunityContentScreen.cs:26
Game.ContainerWidget
定义
ContainerWidget.cs:4
Game.ContainerWidget.Children
readonly WidgetsList Children
定义
ContainerWidget.cs:5
Game.ContentManager
定义
ContentManager.cs:50
Game.ContentManager.Get
static object Get(Type type, string name)
定义
ContentManager.cs:70
Game.DialogsManager
定义
DialogsManager.cs:4
Game.DialogsManager.ShowDialog
static void ShowDialog(ContainerWidget parentWidget, Dialog dialog)
定义
DialogsManager.cs:35
Game.GameLoadingScreen.fName
static string fName
定义
GameLoadingScreen.cs:16
Game.GameLoadingScreen.m_upgradeCompleted
bool m_upgradeCompleted
定义
GameLoadingScreen.cs:13
Game.GameLoadingScreen.m_stateMachine
StateMachine m_stateMachine
定义
GameLoadingScreen.cs:11
Game.GameLoadingScreen.m_loadingLabel
LabelWidget m_loadingLabel
定义
GameLoadingScreen.cs:9
Game.GameLoadingScreen.m_worldInfo
WorldInfo m_worldInfo
定义
GameLoadingScreen.cs:5
Game.GameLoadingScreen.Update
override void Update()
定义
GameLoadingScreen.cs:86
Game.GameLoadingScreen.m_worldSnapshotName
string m_worldSnapshotName
定义
GameLoadingScreen.cs:7
Game.GameLoadingScreen.GameLoadingScreen
GameLoadingScreen()
定义
GameLoadingScreen.cs:18
Game.GameLoadingScreen.Enter
override void Enter(object[] parameters)
定义
GameLoadingScreen.cs:98
Game.GameLoadingScreen.m_upgradeError
Exception m_upgradeError
定义
GameLoadingScreen.cs:15
Game.GameManager
定义
GameManager.cs:8
Game.GameManager.RepairAndUpgradeWorld
static void RepairAndUpgradeWorld(WorldInfo worldInfo)
定义
GameManager.cs:27
Game.GameManager.LoadProject
static void LoadProject(WorldInfo worldInfo, ContainerWidget gamesWidget)
定义
GameManager.cs:32
Game.GameManager.DisposeProject
static void DisposeProject()
定义
GameManager.cs:193
Game.GameScreen
定义
GameScreen.cs:6
Game.LabelWidget
定义
LabelWidget.cs:4
Game.ListPanelWidget.ClearItems
void ClearItems()
定义
ListPanelWidget.cs:130
Game.OriginalCommunityContentScreen
定义
OriginalCommunityContentScreen.cs:5
Game.OriginalCommunityContentScreen.m_listPanel
ListPanelWidget m_listPanel
定义
OriginalCommunityContentScreen.cs:15
Game.ProgressManager
定义
ProgressManager.cs:4
Game.ProgressManager.UpdateProgress
static void UpdateProgress(string operationName, float progress)
定义
ProgressManager.cs:9
Game.Screen
定义
Screen.cs:2
Game.ScreensManager
定义
ScreensManager.cs:5
Game.ScreensManager.PreviousScreen
static Screen PreviousScreen
上一个Screen
定义
ScreensManager.cs:45
Game.ScreensManager.SwitchScreen
static void SwitchScreen(string name, params object[] parameters)
定义
ScreensManager.cs:65
Game.ScreensManager.IsAnimating
static bool IsAnimating
定义
ScreensManager.cs:38
Game.StateMachine
定义
StateMachine.cs:2
Game.TreeViewWidget.Clear
void Clear(bool dispose=true)
定义
TreeViewWidget.cs:124
Game.ViewGameLogDialog
定义
ViewGameLogDialog.cs:6
Game.ViewGameLogDialog.SetErrorHead
void SetErrorHead(int headLangIndex, int adviceLangIndex)
定义
ViewGameLogDialog.cs:17
Game.Widget.LoadContents
virtual void LoadContents(object eventsTarget, XElement node)
定义
Widget.cs:507
Game.WorldInfo
定义
WorldInfo.cs:2
Game.WorldsManager
定义
WorldsManager.cs:8
Game.WorldsManager.RestoreWorldFromSnapshot
static void RestoreWorldFromSnapshot(string directoryName, string snapshotName)
定义
WorldsManager.cs:120
Game
定义
ContentFileBridge.cs:4
SurvivalcraftApi 1.8.2.3
Survivalcraft.Windows
Screen
GameLoadingScreen.cs
制作者
1.16.1