teaGeom.setQueueBucket(Bucket.Translucent);
teaGeom.setShadowMode(ShadowMode.CastAndReceive);
It makes the tree receive it’s own shadows, but if you look through the leaves from above, the floor doesn’t receive a shadow anymore. I don’t think this problem is easily solvable.
Edit: It works like below, but then there’s a problem with the fire (transparent vs. translucent vs. geometry sorting?).
geom.setQueueBucket(Bucket.Transparent);
teaGeom.setQueueBucket(Bucket.Translucent);
teaGeom.setShadowMode(ShadowMode.CastAndReceive);