/// <inheritdoc />
        public override void RandomUpdate(World world, Vector3i position, uint data)
        {
            LiquidInstance?liquid = world.GetLiquid(position);

            if (liquid?.Liquid == Liquid.Water && liquid.Level == LiquidLevel.Eight)
            {
                world.SetBlock(Mud.AsInstance(), position);
            }
        }
Exemple #2
0
        /// <inheritdoc />
        public override void RandomUpdate(World world, Vector3i position, uint data)
        {
            LiquidInstance?liquid = world.GetLiquid(position);

            if (liquid?.Liquid == Liquid.Water && liquid.Level == LiquidLevel.Eight)
            {
                world.SetBlock(Mud.AsInstance(), position);
            }

            for (int yOffset = -1; yOffset <= 1; yOffset++)
            {
                foreach (Orientation orientation in Orientations.All)
                {
                    Vector3i otherPosition = orientation.Offset(position) + Vector3i.UnitY * yOffset;

                    if (world.GetBlock(otherPosition)?.Block is IGrassSpreadable grassSpreadable)
                    {
                        grassSpreadable.SpreadGrass(world, otherPosition, this);
                    }
                }
            }
        }