Here is the line from repeater_1tick.json for the bottom face of the repeater:
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab", "cullface": "down" }
except...the bottom face is not rendered. The screenshot shows a floating repeater with no blocks touching, yet the bottom face is culled. Removing culling for the face makes it render, but by default it does not, as if the repeater were always against a solid block. Removing the cullface property like so will make the bottom face render.
"down": { "uv": [ 0, 0, 16, 16 ], "texture": "#slab" }
However, then the bottom face will never be culled, even when next to a solid block
If a repeater uses the cube model, both the top and bottom faces will be culled.
Relates to MC-50734
Related issues
Attachments
Comments


WAI. MC-47859

Screenshot of a repeater using the "cube_all" model.

I don't see at all how MC-47859 is resolved as works as intended simply because "that's how repeaters have always rendered"... That doesn't mean they should keep a bug that was always there. It is indeed a bug, since it is culling faces when they aren't meant to be culled.
I think the issue here may be that 'what blocks cull other blocks' is still hard-coded, not transferred to separate files with everything else. It seems that air is configured to cull repeaters. Air should not cull anything.

Actually repeaters only started explicitly specifying a bottom face in 1.8. This also applies to the top face, if one creates a custom model.

This isn't a duplicate of MC-47859! That's saying by default a face doesn't appear when above barriers, this is saying if you add a face with culling the face is being culled even though it shouldn't (I'm guessing the screenshot with the top face missing is to show that just enabling culling makes it culled?), which is not how the model format should work.

Not sure why this is marked as related to MC-50734 (it should be removed), however from my testing this was fixed in 1.13.