LivingEntityEmissiveLayer.java
net.minecraft.client.renderer.entity.layers.LivingEntityEmissiveLayer
信息
- 全限定名:net.minecraft.client.renderer.entity.layers.LivingEntityEmissiveLayer
- 类型:public class
- 包:net.minecraft.client.renderer.entity.layers
- 源码路径:src/main/java/net/minecraft/client/renderer/entity/layers/LivingEntityEmissiveLayer.java
- 起始行号:L17
- 继承:RenderLayer<S,M>
- 职责:
TODO
字段/常量
-
textureProvider- 类型:
Function<S,Identifier> - 修饰符:
private final - 源码定位:
L18 - 说明:
TODO
- 类型:
-
alphaFunction- 类型:
LivingEntityEmissiveLayer.AlphaFunction<S> - 修饰符:
private final - 源码定位:
L19 - 说明:
TODO
- 类型:
-
model- 类型:
M - 修饰符:
private final - 源码定位:
L20 - 说明:
TODO
- 类型:
-
bufferProvider- 类型:
Function<Identifier,RenderType> - 修饰符:
private final - 源码定位:
L21 - 说明:
TODO
- 类型:
-
alwaysVisible- 类型:
boolean - 修饰符:
private final - 源码定位:
L22 - 说明:
TODO
- 类型:
内部类/嵌套类型
net.minecraft.client.renderer.entity.layers.LivingEntityEmissiveLayer.AlphaFunction- 类型:
interface - 修饰符:
public - 源码定位:
L64 - 说明:
TODO
- 类型:
构造器
public LivingEntityEmissiveLayer(RenderLayerParent<S,M> renderer, Function<S,Identifier> textureProvider, LivingEntityEmissiveLayer.AlphaFunction<S> alphaFunction, M model, Function<Identifier,RenderType> bufferProvider, boolean alwaysVisible) @ L24
- 构造器名:LivingEntityEmissiveLayer
- 源码定位:L24
- 修饰符:public
参数:
- renderer: RenderLayerParent<S,M>
- textureProvider: Function<S,Identifier>
- alphaFunction: LivingEntityEmissiveLayer.AlphaFunction
- model: M
- bufferProvider: Function<Identifier,RenderType>
- alwaysVisible: boolean
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void submit(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, S state, float yRot, float xRot) @ L40
- 方法名:submit
- 源码定位:L40
- 返回类型:void
- 修饰符:public
参数:
- poseStack: PoseStack
- submitNodeCollector: SubmitNodeCollector
- lightCoords: int
- state: S
- yRot: float
- xRot: float
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class LivingEntityEmissiveLayer<S extends LivingEntityRenderState, M extends EntityModel<S>> extends RenderLayer<S, M> {
private final Function<S, Identifier> textureProvider;
private final LivingEntityEmissiveLayer.AlphaFunction<S> alphaFunction;
private final M model;
private final Function<Identifier, RenderType> bufferProvider;
private final boolean alwaysVisible;
public LivingEntityEmissiveLayer(
RenderLayerParent<S, M> renderer,
Function<S, Identifier> textureProvider,
LivingEntityEmissiveLayer.AlphaFunction<S> alphaFunction,
M model,
Function<Identifier, RenderType> bufferProvider,
boolean alwaysVisible
) {
super(renderer);
this.textureProvider = textureProvider;
this.alphaFunction = alphaFunction;
this.model = model;
this.bufferProvider = bufferProvider;
this.alwaysVisible = alwaysVisible;
}
public void submit(PoseStack poseStack, SubmitNodeCollector submitNodeCollector, int lightCoords, S state, float yRot, float xRot) {
if (!state.isInvisible || this.alwaysVisible) {
float alpha = this.alphaFunction.apply(state, state.ageInTicks);
if (!(alpha <= 1.0E-5F)) {
int color = ARGB.white(alpha);
RenderType renderType = this.bufferProvider.apply(this.textureProvider.apply(state));
submitNodeCollector.order(1)
.submitModel(
this.model,
state,
poseStack,
renderType,
lightCoords,
LivingEntityRenderer.getOverlayCoords(state, 0.0F),
color,
null,
state.outlineColor,
null
);
}
}
}
@OnlyIn(Dist.CLIENT)
public interface AlphaFunction<S extends LivingEntityRenderState> {
float apply(final S state, final float ageInTicks);
}
}引用的其他类
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
LivingEntityRenderer.getOverlayCoords()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
继承
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
ARGB.white()
- 引用位置: