Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SubsystemFenceBlockBehavior.cs
浏览该文件的文档.
1
namespace
Game
{
2
public
class
SubsystemFenceBlockBehavior
:
SubsystemBlockBehavior
{
3
public
override
int
[]
HandledBlocks
=> [];
4
5
public
override
void
OnNeighborBlockChanged
(
int
x,
int
y,
int
z,
int
neighborX,
int
neighborY,
int
neighborZ) {
6
int
cellValue =
SubsystemTerrain
.Terrain.GetCellValue(x, y, z);
7
UpdateVariant
(cellValue, x, y, z);
8
}
9
10
public
override
void
OnBlockAdded
(
int
value,
int
oldValue,
int
x,
int
y,
int
z) {
11
UpdateVariant
(value, x, y, z);
12
}
13
14
public
virtual
void
UpdateVariant
(
int
value,
int
x,
int
y,
int
z) {
15
int
num =
Terrain
.
ExtractContents
(value);
16
if
(
BlocksManager
.
Blocks
[num] is
FenceBlock
fenceBlock) {
17
int
cellValue =
SubsystemTerrain
.Terrain.GetCellValue(x + 1, y, z);
18
int
cellValue2 =
SubsystemTerrain
.Terrain.GetCellValue(x - 1, y, z);
19
int
cellValue3 =
SubsystemTerrain
.Terrain.GetCellValue(x, y, z + 1);
20
int
cellValue4 =
SubsystemTerrain
.Terrain.GetCellValue(x, y, z - 1);
21
int
num2 = 0;
22
if
(fenceBlock.ShouldConnectTo(cellValue)) {
23
num2++;
24
}
25
if
(fenceBlock.ShouldConnectTo(cellValue2)) {
26
num2 += 2;
27
}
28
if
(fenceBlock.ShouldConnectTo(cellValue3)) {
29
num2 += 4;
30
}
31
if
(fenceBlock.ShouldConnectTo(cellValue4)) {
32
num2 += 8;
33
}
34
int
data =
Terrain
.
ExtractData
(value);
35
int
value2 =
Terrain
.
ReplaceData
(value,
FenceBlock
.
SetVariant
(data, num2));
36
SubsystemTerrain
.ChangeCell(x, y, z, value2);
37
}
38
}
39
}
40
}
Game.BlocksManager
定义
BlocksManager.cs:10
Game.BlocksManager.Blocks
static Block[] Blocks
定义
BlocksManager.cs:41
Game.FenceBlock
定义
FenceBlock.cs:5
Game.FenceBlock.SetVariant
static int SetVariant(int data, int variant)
定义
FenceBlock.cs:395
Game.SubsystemBlockBehavior
定义
SubsystemBlockBehavior.cs:6
Game.SubsystemBlockBehavior.SubsystemTerrain
SubsystemTerrain SubsystemTerrain
定义
SubsystemBlockBehavior.cs:9
Game.SubsystemFenceBlockBehavior
定义
SubsystemFenceBlockBehavior.cs:2
Game.SubsystemFenceBlockBehavior.UpdateVariant
virtual void UpdateVariant(int value, int x, int y, int z)
定义
SubsystemFenceBlockBehavior.cs:14
Game.SubsystemFenceBlockBehavior.HandledBlocks
override int[] HandledBlocks
定义
SubsystemFenceBlockBehavior.cs:3
Game.SubsystemFenceBlockBehavior.OnBlockAdded
override void OnBlockAdded(int value, int oldValue, int x, int y, int z)
定义
SubsystemFenceBlockBehavior.cs:10
Game.SubsystemFenceBlockBehavior.OnNeighborBlockChanged
override void OnNeighborBlockChanged(int x, int y, int z, int neighborX, int neighborY, int neighborZ)
定义
SubsystemFenceBlockBehavior.cs:5
Game.Terrain
定义
Terrain.cs:5
Game.Terrain.ExtractContents
static int ExtractContents(int value)
定义
Terrain.cs:303
Game.Terrain.ReplaceData
static int ReplaceData(int value, int data)
定义
Terrain.cs:331
Game.Terrain.ExtractData
static int ExtractData(int value)
定义
Terrain.cs:307
Game
定义
ContentFileBridge.cs:4
SurvivalcraftApi 1.8.2.3
Survivalcraft.Windows
Subsystem
SubsystemFenceBlockBehavior.cs
制作者
1.16.1