Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
ComponentSpawn.cs
浏览该文件的文档.
3
4namespace Game {
7
8 public ComponentFrame ComponentFrame { get; set; }
9
11
12 public bool AutoDespawn { get; set; }
13
14 public bool IsDespawning => DespawnTime.HasValue;
15
16 public double SpawnTime { get; set; }
17
18 public double? DespawnTime { get; set; }
19
20 public float SpawnDuration { get; set; }
21
22 public float DespawnDuration { get; set; }
23
25
26 public virtual Action<ComponentSpawn> Despawned { get; set; }
27
28 public virtual void Despawn() {
29 if (!DespawnTime.HasValue) {
30 DespawnTime = m_subsystemGameInfo.TotalElapsedGameTime;
31 }
32 }
33
34 public override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap) {
35 m_subsystemGameInfo = Project.FindSubsystem<SubsystemGameInfo>(true);
36 ComponentFrame = Entity.FindComponent<ComponentFrame>(true);
38 AutoDespawn = valuesDictionary.GetValue<bool>("AutoDespawn");
39 double value = valuesDictionary.GetValue<double>("SpawnTime");
40 double value2 = valuesDictionary.GetValue<double>("DespawnTime");
41 SpawnDuration = 2f;
42 DespawnDuration = 2f;
43 SpawnTime = value < 0.0 ? m_subsystemGameInfo.TotalElapsedGameTime : value;
44 DespawnTime = value2 >= 0.0 ? new double?(value2) : null;
45 }
46
47 public override void Save(ValuesDictionary valuesDictionary, EntityToIdMap entityToIdMap) {
48 valuesDictionary.SetValue("SpawnTime", SpawnTime);
49 if (DespawnTime.HasValue) {
50 valuesDictionary.SetValue("DespawnTime", DespawnTime.Value);
51 }
52 }
53
54 public virtual void Update(float dt) {
55 if (DespawnTime.HasValue
56 && m_subsystemGameInfo.TotalElapsedGameTime >= DespawnTime.Value + DespawnDuration) {
57 Project.RemoveEntity(Entity, true);
58 Despawned?.Invoke(this);
59 }
60 }
61 }
62}
ComponentCreature ComponentCreature
virtual Action< ComponentSpawn > Despawned
override void Save(ValuesDictionary valuesDictionary, EntityToIdMap entityToIdMap)
virtual void Update(float dt)
ComponentFrame ComponentFrame
override void Load(ValuesDictionary valuesDictionary, IdToEntityMap idToEntityMap)
SubsystemGameInfo m_subsystemGameInfo
ValuesDictionary ValuesDictionary