示例#1
0
    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));
    }
示例#2
0
        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}");
        }