1using System.Globalization;
49 public virtual void Update(
float dt) {
50 float num =
float.MaxValue;
61 new Vector3(point.
X, point.
Y, point.
Z) + gunpowderKegBlock.FuseOffset
66 explosiveData.TimeToExplosion -= dt;
91 public override void OnBlockRemoved(
int value,
int newValue,
int x,
int y,
int z) {
92 Point3 point =
new(x, y, z);
97 List<Point3> list =
new();
99 if (key.
X >= chunk.Origin.X
100 && key.
X < chunk.Origin.X + 16
101 && key.
Z >= chunk.Origin.Y
102 && key.
Z < chunk.Origin.Y + 16) {
106 foreach (
Point3 item
in list) {
111 public override void OnExplosion(
int value,
int x,
int y,
int z,
float damage) {
122 base.Load(valuesDictionary);
129 m_fuseSound.IsLooped =
true;
132 float value2 = value3.GetValue<
float>(
"TimeToExplosion");
138 base.Save(valuesDictionary);
141 valuesDictionary.SetValue(
"Explosives", valuesDictionary2);
144 valuesDictionary2.SetValue(num++.ToString(CultureInfo.InvariantCulture), valuesDictionary3);
145 valuesDictionary3.SetValue(
"Point", value.
Point);
156 ExplosiveData explosiveData =
new() { Point = point, TimeToExplosion = timeToExplosion };
163 if (value.FuseParticleSystem !=
null) {
static int Min(int x1, int x2)
static float Saturate(float x)
static float MinAudibleVolume
float ExplosionResilience
virtual float GetExplosionPressure(int value)
static float SoundsVolume
SubsystemTerrain SubsystemTerrain
FuseParticleSystem FuseParticleSystem
override void Load(ValuesDictionary valuesDictionary)
virtual void Update(float dt)
override void OnNeighborBlockChanged(int x, int y, int z, int neighborX, int neighborY, int neighborZ)
void AddExplosive(Point3 point, float timeToExplosion)
void RemoveExplosive(Point3 point)
SubsystemFireBlockBehavior m_subsystemFireBlockBehavior
SubsystemExplosions m_subsystemExplosions
override void Save(ValuesDictionary valuesDictionary)
override void OnBlockRemoved(int value, int newValue, int x, int y, int z)
Dictionary< Point3, ExplosiveData > m_explosiveDataByPoint
bool IgniteFuse(int x, int y, int z)
SubsystemAudio m_subsystemAudio
override void OnExplosion(int value, int x, int y, int z, float damage)
override int[] HandledBlocks
SubsystemParticles m_subsystemParticles
SubsystemTerrain m_subsystemTerrain
override void OnChunkDiscarding(TerrainChunk chunk)
static int ExtractContents(int value)
ValuesDictionary ValuesDictionary