Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SubsystemBlocksManager.cs
浏览该文件的文档.
1
using
GameEntitySystem
;
2
using
TemplatesDatabase
;
3
using
static
Game
.
BlocksManager
;
4
5
namespace
Game
{
6
public
class
SubsystemBlocksManager
:
Subsystem
{
7
//以ClassName, BlockContent的形式存储和读取方块信息
8
9
/*流程:
10
* 在加载世界时Load调用(需要将这个调整为高优先级加载)
11
* BlocksManager加载原版和所有mod的静态ID方块
12
* 调用SubsystemBlocksManager.CallAllocate()调用分配动态ID方块
13
* BlocksManager加载项目声明的动态ID方块
14
* BlocksManager加载剩下的动态ID方块
15
* PostProcess进行后处理
16
*/
17
18
//BlocksManager存储的是类名Name,SubsystemBlockManager存储的也是类名
19
public
Dictionary<string, int>
DynamicBlockNameToIndex
=
new
();
20
21
public
ValuesDictionary
m_savedValuesDictionary
;
22
23
public
override
void
Initialize
(
Project
project,
ValuesDictionary
valuesDictionary) {
24
base.Initialize(project, valuesDictionary);
25
DynamicBlockNameToIndex
.Clear();
26
m_savedValuesDictionary
= valuesDictionary;
27
InitializeBlocks(
this
);
28
PostProcessBlocksLoad();
29
CraftingRecipesManager
.
Initialize
();
30
}
31
32
public
virtual
void
CallAllocate
() {
33
//int tick1 = Environment.TickCount;
34
for
(
int
i = SurvivalCraftBlockCount + 1; i < 1024; i++) {
35
string
blockName =
m_savedValuesDictionary
.GetValue(i.ToString(),
string
.Empty);
36
if
(!
string
.IsNullOrEmpty(blockName)) {
37
DynamicBlockNameToIndex
[blockName] = i;
38
}
39
/*
40
if (!String.IsNullOrEmpty(fullName))
41
{
42
foreach(var blockAllocateData in BlocksAllocateData)
43
{
44
if(blockAllocateData.Block.GetType().FullName == fullName)
45
{
46
DynamicBlockNameToIndex[blockAllocateData.Block.GetType().FullName] = i;
47
Log.Information("加载方块:" + fullName + ", Index = " + i);
48
break;
49
}
50
}
51
}*/
52
}
53
//int tick2 = Environment.TickCount;
54
//Engine.Log.Information("加载项目方块系统耗时" + (tick2 - tick1).ToString() + "ms");
55
}
56
57
public
override
void
Save
(
ValuesDictionary
valuesDictionary) {
58
foreach
(KeyValuePair<string, int> item
in
DynamicBlockNameToIndex
) {
59
valuesDictionary.SetValue(item.Value.ToString(), item.Key);
60
}
61
}
62
}
63
}
Game.BlocksManager
定义
BlocksManager.cs:10
Game.CraftingRecipesManager
定义
CraftingRecipesManager.cs:7
Game.CraftingRecipesManager.Initialize
static void Initialize()
定义
CraftingRecipesManager.cs:18
Game.SubsystemBlocksManager
定义
SubsystemBlocksManager.cs:6
Game.SubsystemBlocksManager.DynamicBlockNameToIndex
Dictionary< string, int > DynamicBlockNameToIndex
定义
SubsystemBlocksManager.cs:19
Game.SubsystemBlocksManager.Save
override void Save(ValuesDictionary valuesDictionary)
定义
SubsystemBlocksManager.cs:57
Game.SubsystemBlocksManager.m_savedValuesDictionary
ValuesDictionary m_savedValuesDictionary
定义
SubsystemBlocksManager.cs:21
Game.SubsystemBlocksManager.Initialize
override void Initialize(Project project, ValuesDictionary valuesDictionary)
定义
SubsystemBlocksManager.cs:23
Game.SubsystemBlocksManager.CallAllocate
virtual void CallAllocate()
定义
SubsystemBlocksManager.cs:32
GameEntitySystem.Subsystem
定义
Subsystem.cs:5
GameEntitySystem.Subsystem.ValuesDictionary
ValuesDictionary ValuesDictionary
定义
Subsystem.cs:12
GameEntitySystem.Subsystem.Project
Project Project
定义
Subsystem.cs:10
GameEntitySystem
定义
Component.cs:6
Game
定义
ContentFileBridge.cs:4
TemplatesDatabase
定义
Database.cs:6
SurvivalcraftApi 1.8.2.3
Survivalcraft.Windows
Subsystem
SubsystemBlocksManager.cs
制作者
1.16.1