ShieldSpecialRenderer.java
net.minecraft.client.renderer.special.ShieldSpecialRenderer
信息
- 全限定名:net.minecraft.client.renderer.special.ShieldSpecialRenderer
- 类型:public class
- 包:net.minecraft.client.renderer.special
- 源码路径:src/main/java/net/minecraft/client/renderer/special/ShieldSpecialRenderer.java
- 起始行号:L29
- 实现:SpecialModelRenderer
- 职责:
TODO
字段/常量
-
DEFAULT_TRANSFORMATION- 类型:
Transformation - 修饰符:
public static final - 源码定位:
L30 - 说明:
TODO
- 类型:
-
sprites- 类型:
SpriteGetter - 修饰符:
private final - 源码定位:
L31 - 说明:
TODO
- 类型:
-
model- 类型:
ShieldModel - 修饰符:
private final - 源码定位:
L32 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.client.renderer.special.ShieldSpecialRenderer.Unbaked- 类型:
record - 修饰符:
public - 源码定位:
L89 - 说明:
TODO
- 类型:
构造器
public ShieldSpecialRenderer(SpriteGetter sprites, ShieldModel model) @ L34
- 构造器名:ShieldSpecialRenderer
- 源码定位:L34
- 修饰符:public
参数:
- sprites: SpriteGetter
- model: ShieldModel
说明:
TODO
方法
下面的方法块按源码顺序生成。
public DataComponentMap extractArgument(ItemStack stack) @ L39
- 方法名:extractArgument
- 源码定位:L39
- 返回类型:DataComponentMap
- 修饰符:public
参数:
- stack: ItemStack
说明:
TODO
public void submit(DataComponentMap components, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, int overlayCoords, boolean hasFoil, int outlineColor) @ L43
- 方法名:submit
- 源码定位:L43
- 返回类型:void
- 修饰符:public
参数:
- components: DataComponentMap
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- lightCoords: int
- overlayCoords: int
- hasFoil: boolean
- outlineColor: int
说明:
TODO
public void getExtents(Consumer<Vector3fc> output) @ L82
- 方法名:getExtents
- 源码定位:L82
- 返回类型:void
- 修饰符:public
参数:
- output: Consumer
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class ShieldSpecialRenderer implements SpecialModelRenderer<DataComponentMap> {
public static final Transformation DEFAULT_TRANSFORMATION = new Transformation(null, null, new Vector3f(1.0F, -1.0F, -1.0F), null);
private final SpriteGetter sprites;
private final ShieldModel model;
public ShieldSpecialRenderer(SpriteGetter sprites, ShieldModel model) {
this.sprites = sprites;
this.model = model;
}
public @Nullable DataComponentMap extractArgument(ItemStack stack) {
return stack.immutableComponents();
}
public void submit(
@Nullable DataComponentMap components,
PoseStack poseStack,
SubmitNodeCollector submitNodeCollector,
int lightCoords,
int overlayCoords,
boolean hasFoil,
int outlineColor
) {
BannerPatternLayers patterns = components != null
? components.getOrDefault(DataComponents.BANNER_PATTERNS, BannerPatternLayers.EMPTY)
: BannerPatternLayers.EMPTY;
DyeColor baseColor = components != null ? components.get(DataComponents.BASE_COLOR) : null;
boolean hasPatterns = !patterns.layers().isEmpty() || baseColor != null;
SpriteId base = hasPatterns ? Sheets.SHIELD_BASE : Sheets.SHIELD_BASE_NO_PATTERN;
submitNodeCollector.submitModel(this.model, Unit.INSTANCE, poseStack, lightCoords, overlayCoords, -1, base, this.sprites, outlineColor, null);
if (hasPatterns) {
BannerRenderer.submitPatterns(
this.sprites,
poseStack,
submitNodeCollector,
lightCoords,
overlayCoords,
this.model,
Unit.INSTANCE,
false,
Objects.requireNonNullElse(baseColor, DyeColor.WHITE),
patterns,
null
);
}
if (hasFoil) {
submitNodeCollector.submitModel(
this.model, Unit.INSTANCE, poseStack, RenderTypes.entityGlint(), lightCoords, overlayCoords, -1, this.sprites.get(base), 0, null
);
}
}
@Override
public void getExtents(Consumer<Vector3fc> output) {
PoseStack poseStack = new PoseStack();
this.model.root().getExtentsForGui(poseStack, output);
}
@OnlyIn(Dist.CLIENT)
public record Unbaked() implements SpecialModelRenderer.Unbaked<DataComponentMap> {
public static final ShieldSpecialRenderer.Unbaked INSTANCE = new ShieldSpecialRenderer.Unbaked();
public static final MapCodec<ShieldSpecialRenderer.Unbaked> MAP_CODEC = MapCodec.unit(INSTANCE);
@Override
public MapCodec<ShieldSpecialRenderer.Unbaked> type() {
return MAP_CODEC;
}
public ShieldSpecialRenderer bake(SpecialModelRenderer.BakingContext context) {
return new ShieldSpecialRenderer(context.sprites(), new ShieldModel(context.entityModelSet().bakeLayer(ModelLayers.SHIELD)));
}
}
}引用的其他类
-
- 引用位置:
参数/构造调用 - 关联成员:
PoseStack()
- 引用位置:
-
- 引用位置:
字段/构造调用 - 关联成员:
Transformation()
- 引用位置:
-
- 引用位置:
参数/字段/构造调用 - 关联成员:
ShieldModel()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
BannerRenderer.submitPatterns()
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
RenderTypes.entityGlint()
- 引用位置:
-
- 引用位置:
实现
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/返回值
- 引用位置:
-
- 引用位置:
参数
- 引用位置: