BlockEntityRenderers.java

net.minecraft.client.renderer.blockentity.BlockEntityRenderers

信息

  • 全限定名:net.minecraft.client.renderer.blockentity.BlockEntityRenderers
  • 类型:public class
  • 包:net.minecraft.client.renderer.blockentity
  • 源码路径:src/main/java/net/minecraft/client/renderer/blockentity/BlockEntityRenderers.java
  • 起始行号:L15
  • 职责:

    TODO

字段/常量

  • PROVIDERS
    • 类型: Map<BlockEntityType<?>,BlockEntityRendererProvider<?,?>>
    • 修饰符: private static final
    • 源码定位: L16
    • 说明:

      TODO

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

private static <T extends BlockEntity,S extends BlockEntityRenderState> void register(BlockEntityType<?extends T> type, BlockEntityRendererProvider<T,S> renderer) @ L18

  • 方法名:register
  • 源码定位:L18
  • 返回类型:<T extends BlockEntity,S extends BlockEntityRenderState> void
  • 修饰符:private static

参数:

  • type: BlockEntityType<?extends T>
  • renderer: BlockEntityRendererProvider<T,S>

说明:

TODO

public static Map<BlockEntityType<?>,BlockEntityRenderer<?,?>> createEntityRenderers(BlockEntityRendererProvider.Context context) @ L24

  • 方法名:createEntityRenderers
  • 源码定位:L24
  • 返回类型:Map<BlockEntityType,BlockEntityRenderer>
  • 修饰符:public static

参数:

  • context: BlockEntityRendererProvider.Context

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public class BlockEntityRenderers {
    private static final Map<BlockEntityType<?>, BlockEntityRendererProvider<?, ?>> PROVIDERS = Maps.newHashMap();
 
    private static <T extends BlockEntity, S extends BlockEntityRenderState> void register(
        BlockEntityType<? extends T> type, BlockEntityRendererProvider<T, S> renderer
    ) {
        PROVIDERS.put(type, renderer);
    }
 
    public static Map<BlockEntityType<?>, BlockEntityRenderer<?, ?>> createEntityRenderers(BlockEntityRendererProvider.Context context) {
        Builder<BlockEntityType<?>, BlockEntityRenderer<?, ?>> result = ImmutableMap.builder();
        PROVIDERS.forEach((type, provider) -> {
            try {
                result.put((BlockEntityType<?>)type, provider.create(context));
            } catch (Exception var5) {
                throw new IllegalStateException("Failed to create model for " + BuiltInRegistries.BLOCK_ENTITY_TYPE.getKey((BlockEntityType<?>)type), var5);
            }
        });
        return result.build();
    }
 
    static {
        register(BlockEntityType.SIGN, StandingSignRenderer::new);
        register(BlockEntityType.HANGING_SIGN, HangingSignRenderer::new);
        register(BlockEntityType.MOB_SPAWNER, SpawnerRenderer::new);
        register(BlockEntityType.PISTON, var0 -> new PistonHeadRenderer());
        register(BlockEntityType.CHEST, ChestRenderer::new);
        register(BlockEntityType.ENDER_CHEST, ChestRenderer::new);
        register(BlockEntityType.TRAPPED_CHEST, ChestRenderer::new);
        register(BlockEntityType.ENCHANTING_TABLE, EnchantTableRenderer::new);
        register(BlockEntityType.LECTERN, LecternRenderer::new);
        register(BlockEntityType.END_PORTAL, var0 -> new TheEndPortalRenderer());
        register(BlockEntityType.END_GATEWAY, var0 -> new TheEndGatewayRenderer());
        register(BlockEntityType.BEACON, var0 -> new BeaconRenderer());
        register(BlockEntityType.SKULL, SkullBlockRenderer::new);
        register(BlockEntityType.BANNER, BannerRenderer::new);
        register(BlockEntityType.STRUCTURE_BLOCK, var0 -> new BlockEntityWithBoundingBoxRenderer());
        register(BlockEntityType.TEST_INSTANCE_BLOCK, var0 -> new TestInstanceRenderer());
        register(BlockEntityType.SHULKER_BOX, ShulkerBoxRenderer::new);
        register(BlockEntityType.BED, BedRenderer::new);
        register(BlockEntityType.CONDUIT, ConduitRenderer::new);
        register(BlockEntityType.BELL, BellRenderer::new);
        register(BlockEntityType.CAMPFIRE, CampfireRenderer::new);
        register(BlockEntityType.BRUSHABLE_BLOCK, BrushableBlockRenderer::new);
        register(BlockEntityType.DECORATED_POT, DecoratedPotRenderer::new);
        register(BlockEntityType.TRIAL_SPAWNER, TrialSpawnerRenderer::new);
        register(BlockEntityType.VAULT, VaultRenderer::new);
        register(BlockEntityType.COPPER_GOLEM_STATUE, CopperGolemStatueBlockRenderer::new);
        register(BlockEntityType.SHELF, ShelfRenderer::new);
    }
}

引用的其他类