protected virtual void addParticles(WorldBase _world, int _clrIdx, int _x, int _y, int _z, BlockValue _blockValue) { if (this.particleName == null || this.particleName == string.Empty) { return; } float num = 0f; if (_y > 0 && Block.list[_blockValue.type].IsTerrainDecoration && Block.list[_world.GetBlock(_x, _y - 1, _z).type].shape.IsTerrain()) { sbyte density = _world.GetDensity(_clrIdx, _x, _y, _z); sbyte density2 = _world.GetDensity(_clrIdx, _x, _y - 1, _z); num = MarchingCubes.GetDecorationOffsetY(density, density2); } _world.GetGameManager().SpawnBlockParticleEffect(new Vector3i(_x, _y, _z), new ParticleEffect(this.particleName, new Vector3((float)_x, (float)_y + num, (float)_z) + this.getParticleOffset(_blockValue), this.shape.GetRotation(_blockValue), 1f, Color.white)); }
private static void SetDensity(WorldBase world, Vector3i pos) { sbyte density = 1; if (Options.ContainsKey("d")) { if (sbyte.TryParse(Options["d"], out density)) { SendOutput($"Using density {density}"); } } var blockValue = world.GetBlock(pos); if (blockValue.Equals(BlockValue.Air)) { SendOutput($"Target block is air @ {pos}"); return; } if (blockValue.ischild) { SendOutput($"Target block is a child block @ {pos} - Parent@ {blockValue.parentx},{blockValue.parenty},{blockValue.parentz}"); return; } var d = world.GetDensity(0, pos); if (d == density) { SendOutput($"No change in density @ {pos}"); return; } world.SetBlockRPC(pos, blockValue, density); SendOutput($"Changing density on block from '{d}' to '{density}' @ {pos}"); }