1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
using System;
using UnityEngine;
using XMainClient.UI.UICommon;
using XUtliPoolLib;
namespace XMainClient
{
internal abstract class XConcreteStage : XStage
{
public XConcreteStage(EXStage eStage) : base(eStage)
{
}
public override void OnEnterStage(EXStage eOld)
{
base.OnEnterStage(eOld);
}
public override void OnLeaveStage(EXStage eNew)
{
base.OnLeaveStage(eNew);
bool flag = eNew != EXStage.Null && !XStage.IsConcreteStage(eNew);
if (flag)
{
XSingleton<XAttributeMgr>.singleton.OnLeaveStage();
XSingleton<XGame>.singleton.Doc.Refresh();
}
}
private void InitTerrain(uint sceneid)
{
XSingleton<XScene>.singleton.CurrentTerrain = Terrain.activeTerrain;
SceneTable.RowData sceneData = XSingleton<XSceneMgr>.singleton.GetSceneData(sceneid);
bool flag = !string.IsNullOrEmpty(sceneData.BlockFilePath);
if (flag)
{
bool flag2 = !XCurrentGrid.grid.LoadFile(sceneData.BlockFilePath);
if (flag2)
{
XSingleton<XDebug>.singleton.AddErrorLog("Load Grid file: Assets\\Resources\\", sceneData.BlockFilePath, " failed!", null, null, null);
}
}
else
{
XSingleton<XDebug>.singleton.AddErrorLog("Null path of Grid file for sceneid ", sceneid.ToString(), null, null, null, null);
}
}
protected virtual void InstallCamera()
{
XSingleton<XComponentMgr>.singleton.CreateComponent(XSingleton<XScene>.singleton.GameCamera, XCameraActionComponent.uuID);
XSingleton<XComponentMgr>.singleton.CreateComponent(XSingleton<XScene>.singleton.GameCamera, XCameraCollisonComponent.uuID);
XSingleton<XComponentMgr>.singleton.CreateComponent(XSingleton<XScene>.singleton.GameCamera, XCameraShakeComponent.uuID);
XSingleton<XScene>.singleton.GameCamera.Target = XSingleton<XEntityMgr>.singleton.Player;
}
public override void OnEnterScene(uint sceneid, bool transfer)
{
base.OnEnterScene(sceneid, transfer);
XSingleton<XAttributeMgr>.singleton.ResetPlayerData();
XSingleton<XLevelStatistics>.singleton.OnEnterScene(sceneid);
this.InitTerrain(sceneid);
this.InstallCamera();
XSingleton<UIManager>.singleton.OnEnterScene();
XSingleton<XGameUI>.singleton.LoadConcreteUI(this._eStage);
XSingleton<XPostEffectMgr>.singleton.OnEnterScene(sceneid);
XSingleton<XSceneMgr>.singleton.PlaceDynamicScene(sceneid);
XSingleton<XLevelAIMgr>.singleton.InitAIData();
}
public override void OnLeaveScene(bool transfer)
{
XSingleton<XPostEffectMgr>.singleton.OnLeaveScene();
XSingleton<XScene>.singleton.CurrentTerrain = null;
XSingleton<XGame>.singleton.Doc.OnLeaveScene();
XSingleton<X3DAvatarMgr>.singleton.Clean(transfer);
base.OnLeaveScene(transfer);
}
}
}
|