Кок. Блок и его рендерер не имеют прямой связи, да и не должны, потому что специально был выбран уровень абстракции, который бы позволил свободно разделять нужные данные как хочешь.
Почему он не имеет связи с его рендерером? Потому что серверу это не нужно, сервер вообще не знает, что такое рендерер.
Зато клиент знает. И вот у клиента где-нибудь в главном классе имеется объект, который занимается отрисовкой всего, что надо: блоков, тайлов, сущностей. Он имеет прямой доступ к любому абстрактному миру, но любой абстрактный мир не имеет доступа к нему (ибо серверу рендер не нужен).
Таким образом есть какой-то один объект, который для себя связывает блок и его рендерер, давая последнему инфу о блоке, чтобы тот мог правильно его отрисовать.