Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
SubsystemNoise.cs
浏览该文件的文档.
1using Engine;
4
5namespace Game {
6 public class SubsystemNoise : Subsystem {
8
9 public DynamicArray<ComponentBody> m_componentBodies = [];
10
11 public void MakeNoise(Vector3 position, float loudness, float range) {
12 MakeNoisepublic(null, position, loudness, range);
13 }
14
15 public void MakeNoise(ComponentBody sourceBody, float loudness, float range) {
16 MakeNoisepublic(sourceBody, sourceBody.Position, loudness, range);
17 }
18
19 public override void Load(ValuesDictionary valuesDictionary) {
20 m_subsystemBodies = Project.FindSubsystem<SubsystemBodies>(true);
21 }
22
23 public void MakeNoisepublic(ComponentBody sourceBody, Vector3 position, float loudness, float range) {
24 float num = range * range;
25 m_componentBodies.Clear();
26 m_subsystemBodies.FindBodiesAroundPoint(new Vector2(position.X, position.Z), range, m_componentBodies);
27 for (int i = 0; i < m_componentBodies.Count; i++) {
28 ComponentBody componentBody = m_componentBodies.Array[i];
29 if (componentBody != sourceBody
30 && Vector3.DistanceSquared(componentBody.Position, position) < num) {
31 foreach (INoiseListener item in componentBody.Entity.FindComponents<INoiseListener>()) {
32 item.HearNoise(sourceBody, position, loudness);
33 }
34 }
35 }
36 }
37 }
38}
void MakeNoise(ComponentBody sourceBody, float loudness, float range)
override void Load(ValuesDictionary valuesDictionary)
void MakeNoise(Vector3 position, float loudness, float range)
DynamicArray< ComponentBody > m_componentBodies
SubsystemBodies m_subsystemBodies
void MakeNoisepublic(ComponentBody sourceBody, Vector3 position, float loudness, float range)
ValuesDictionary ValuesDictionary
void HearNoise(ComponentBody sourceBody, Vector3 sourcePosition, float loudness)
static float DistanceSquared(Vector3 v1, Vector3 v2)