Vintagestory.GameContent.BEBehaviorFruiting.OnBlockRemoved C# (CSharp) Method

OnBlockRemoved() public method

public OnBlockRemoved ( ) : void
return void
        public override void OnBlockRemoved()
        {
            base.OnBlockRemoved();

            if (Api is ICoreClientAPI)
            {
                RemoveRenderedFruits();
            }

            int dropCount = 0;
            for (int i = 0; i < fruitPoints.Length; i++)
            {
                FruitData val = fruitPoints[i];
                if (val.variant < 0 || val.currentStage == 0) continue;
                Item item = Api.World.GetItem(new AssetLocation(fruitCodeBases[val.variant] + val.currentStage));
                if (item == null) continue;
                if (item.Attributes != null && item.Attributes["onGround"].AsBool(false)) continue;  // ignore fruits already on the ground

                if (val.currentStage == this.ripeStage)
                {
                    dropCount++;
                }
                else if (Math.Abs(val.currentStage - this.ripeStage) == 1 && Api.World.Rand.NextDouble() > 0.5) dropCount++;
            }

            if (dropCount > 0)
            {
                ItemStack stack = new ItemStack(Api.World.GetItem(dropCode), dropCount);
                Api.World.SpawnItemEntity(stack, Blockentity.Pos.ToVec3d().Add(0.5, 0.25, 0.5));
            }
        }