Survivalcraft API 1.8.2.3
v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
PressurePlateElectricElement.cs
浏览该文件的文档.
1
using
Engine
;
2
3
namespace
Game
{
4
public
class
PressurePlateElectricElement
:
MountedElectricElement
{
5
public
float
m_voltage
;
6
7
public
int
m_lastPressFrameIndex
;
8
9
public
float
m_pressure
;
10
11
public
PressurePlateElectricElement
(
SubsystemElectricity
subsystemElectricity,
CellFace
cellFace) : base(subsystemElectricity, cellFace) { }
12
13
public
void
Press
(
float
pressure) {
14
m_lastPressFrameIndex
=
Time
.
FrameIndex
;
15
if
(pressure >
m_pressure
) {
16
m_pressure
= pressure;
17
CellFace
cellFace =
CellFaces
[0];
18
SubsystemElectricity
.
SubsystemAudio
.
PlaySound
(
19
"Audio/BlockPlaced"
,
20
1f,
21
0.3f,
22
new
Vector3
(cellFace.
X
, cellFace.
Y
, cellFace.
Z
),
23
2.5f,
24
true
25
);
26
SubsystemElectricity
.
QueueElectricElementForSimulation
(
this
,
SubsystemElectricity
.
CircuitStep
+ 1);
27
}
28
}
29
30
public
override
float
GetOutputVoltage
(
int
face) =>
m_voltage
;
31
32
public
override
bool
Simulate
() {
33
float
voltage =
m_voltage
;
34
if
(
m_pressure
> 0f
35
&&
Time
.
FrameIndex
-
m_lastPressFrameIndex
< 2) {
36
m_voltage
=
PressureToVoltage
(
m_pressure
);
37
SubsystemElectricity
.
QueueElectricElementForSimulation
(
this
,
SubsystemElectricity
.
CircuitStep
+ 10);
38
}
39
else
{
40
if
(
IsSignalHigh
(
m_voltage
)) {
41
CellFace
cellFace =
CellFaces
[0];
42
SubsystemElectricity
.
SubsystemAudio
.
PlaySound
(
43
"Audio/BlockPlaced"
,
44
0.6f,
45
-0.1f,
46
new
Vector3
(cellFace.
X
, cellFace.
Y
, cellFace.
Z
),
47
2.5f,
48
true
49
);
50
}
51
m_voltage
= 0f;
52
m_pressure
= 0f;
53
}
54
return
m_voltage
!= voltage;
55
}
56
57
public
override
void
OnCollide
(
CellFace
cellFace,
float
velocity,
ComponentBody
componentBody) {
58
Press
(componentBody.
Mass
);
59
componentBody.
ApplyImpulse
(
new
Vector3
(0f, -2E-05f, 0f));
60
}
61
62
public
override
void
OnHitByProjectile
(
CellFace
cellFace,
WorldItem
worldItem) {
63
int
num =
Terrain
.
ExtractContents
(worldItem.
Value
);
64
Block
block =
BlocksManager
.
Blocks
[num];
65
Press
(1f * block.
GetDensity
(worldItem.
Value
));
66
}
67
68
public
static
float
PressureToVoltage
(
float
pressure) {
69
if
(pressure <= 0f) {
70
return
0f;
71
}
72
if
(pressure < 1f) {
73
return
8f / 15f;
74
}
75
if
(pressure < 2f) {
76
return
0.6f;
77
}
78
if
(pressure < 5f) {
79
return
2f / 3f;
80
}
81
if
(pressure < 25f) {
82
return
11f / 15f;
83
}
84
if
(pressure < 100f) {
85
return
0.8f;
86
}
87
if
(pressure < 250f) {
88
return
13f / 15f;
89
}
90
if
(pressure < 500f) {
91
return
14f / 15f;
92
}
93
return
1f;
94
}
95
}
96
}
Vector3
Engine.Vector3 Vector3
定义
SubsystemAudio.cs:5
Engine.Time
定义
Time.cs:4
Engine.Time.FrameIndex
static int FrameIndex
定义
Time.cs:26
Game.Block
定义
Block.cs:5
Game.Block.GetDensity
virtual float GetDensity(int value)
定义
Block.cs:184
Game.BlocksManager
定义
BlocksManager.cs:10
Game.BlocksManager.Blocks
static Block[] Blocks
定义
BlocksManager.cs:41
Game.ComponentBody
定义
ComponentBody.cs:7
Game.ComponentBody.Mass
virtual float Mass
定义
ComponentBody.cs:103
Game.ComponentBody.ApplyImpulse
virtual void ApplyImpulse(Vector3 impulse)
定义
ComponentBody.cs:250
Game.ElectricElement.IsSignalHigh
static bool IsSignalHigh(float voltage)
定义
ElectricElement.cs:40
Game.ElectricElement.CellFaces
ReadOnlyList< CellFace > CellFaces
定义
ElectricElement.cs:7
Game.MountedElectricElement.MountedElectricElement
MountedElectricElement(SubsystemElectricity subsystemElectricity, CellFace cellFace)
定义
MountedElectricElement.cs:5
Game.PressurePlateElectricElement.m_pressure
float m_pressure
定义
PressurePlateElectricElement.cs:9
Game.PressurePlateElectricElement.Simulate
override bool Simulate()
定义
PressurePlateElectricElement.cs:32
Game.PressurePlateElectricElement.OnHitByProjectile
override void OnHitByProjectile(CellFace cellFace, WorldItem worldItem)
定义
PressurePlateElectricElement.cs:62
Game.PressurePlateElectricElement.Press
void Press(float pressure)
定义
PressurePlateElectricElement.cs:13
Game.PressurePlateElectricElement.m_voltage
float m_voltage
定义
PressurePlateElectricElement.cs:5
Game.PressurePlateElectricElement.PressureToVoltage
static float PressureToVoltage(float pressure)
定义
PressurePlateElectricElement.cs:68
Game.PressurePlateElectricElement.OnCollide
override void OnCollide(CellFace cellFace, float velocity, ComponentBody componentBody)
定义
PressurePlateElectricElement.cs:57
Game.PressurePlateElectricElement.m_lastPressFrameIndex
int m_lastPressFrameIndex
定义
PressurePlateElectricElement.cs:7
Game.PressurePlateElectricElement.GetOutputVoltage
override float GetOutputVoltage(int face)
定义
PressurePlateElectricElement.cs:30
Game.PressurePlateElectricElement.PressurePlateElectricElement
PressurePlateElectricElement(SubsystemElectricity subsystemElectricity, CellFace cellFace)
定义
PressurePlateElectricElement.cs:11
Game.SubsystemAudio.PlaySound
void PlaySound(string name, float volume, float pitch, float pan, float delay)
定义
SubsystemAudio.cs:86
Game.SubsystemElectricity
定义
SubsystemElectricity.cs:9
Game.SubsystemElectricity.SubsystemAudio
SubsystemAudio SubsystemAudio
定义
SubsystemElectricity.cs:247
Game.SubsystemElectricity.CircuitStep
int CircuitStep
定义
SubsystemElectricity.cs:251
Game.SubsystemElectricity.QueueElectricElementForSimulation
void QueueElectricElementForSimulation(ElectricElement electricElement, int circuitStep)
定义
SubsystemElectricity.cs:357
Game.Terrain
定义
Terrain.cs:5
Game.Terrain.ExtractContents
static int ExtractContents(int value)
定义
Terrain.cs:303
Game.WorldItem
定义
WorldItem.cs:5
Game.WorldItem.Value
int Value
定义
WorldItem.cs:6
Engine
定义
BaseSound.cs:10
Game
定义
ContentFileBridge.cs:4
Game.CellFace
定义
CellFace.cs:4
Game.CellFace.X
int X
定义
CellFace.cs:5
Game.CellFace.Y
int Y
定义
CellFace.cs:7
Game.CellFace.Z
int Z
定义
CellFace.cs:9
SurvivalcraftApi 1.8.2.3
Survivalcraft.Windows
Game
PressurePlateElectricElement.cs
制作者
1.16.1