Inheritance: BlockEntityBehavior
        public override bool OnBlockInteractStep(float secondsUsed, IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
        {
            BEBehaviorFruiting bef = world.BlockAccessor.GetBlockEntity(blockSel.Position)?.GetBehavior<BEBehaviorFruiting>();
            if (bef != null) return bef.OnPlayerInteract(secondsUsed, byPlayer, blockSel.HitPosition);

            return base.OnBlockInteractStep(secondsUsed, world, byPlayer, blockSel);
        }
 public FruitData(int variant, double totalDays, BEBehaviorFruiting be, Vec3f rot)
 {
     this.variant = variant;
     this.transitionDate = totalDays;
     this.behavior = be;
     this.rotation = rot;
 }
        public override bool OnBlockInteractStart(IWorldAccessor world, IPlayer byPlayer, BlockSelection blockSel)
        {
            BlockEntityFarmland befarmland = world.BlockAccessor.GetBlockEntity(blockSel.Position.DownCopy()) as BlockEntityFarmland;
            if (befarmland != null && befarmland.OnBlockInteract(byPlayer)) return true;

            BEBehaviorFruiting bef = world.BlockAccessor.GetBlockEntity(blockSel.Position)?.GetBehavior<BEBehaviorFruiting>();
            if (bef != null) return true;  //Move to BlockInteractStep

            return base.OnBlockInteractStart(world, byPlayer, blockSel);
        }