BrainDebugRenderer.java
net.minecraft.client.renderer.debug.BrainDebugRenderer
信息
- 全限定名:net.minecraft.client.renderer.debug.BrainDebugRenderer
- 类型:public class
- 包:net.minecraft.client.renderer.debug
- 源码路径:src/main/java/net/minecraft/client/renderer/debug/BrainDebugRenderer.java
- 起始行号:L24
- 实现:DebugRenderer.SimpleDebugRenderer
- 职责:
TODO
字段/常量
-
SHOW_NAME_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L25 - 说明:
TODO
- 类型:
-
SHOW_PROFESSION_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L26 - 说明:
TODO
- 类型:
-
SHOW_BEHAVIORS_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L27 - 说明:
TODO
- 类型:
-
SHOW_ACTIVITIES_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L28 - 说明:
TODO
- 类型:
-
SHOW_INVENTORY_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L29 - 说明:
TODO
- 类型:
-
SHOW_GOSSIPS_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L30 - 说明:
TODO
- 类型:
-
SHOW_HEALTH_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L31 - 说明:
TODO
- 类型:
-
SHOW_WANTS_GOLEM_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L32 - 说明:
TODO
- 类型:
-
SHOW_ANGER_LEVEL_FOR_ALL- 类型:
boolean - 修饰符:
private static final - 源码定位:
L33 - 说明:
TODO
- 类型:
-
SHOW_NAME_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L34 - 说明:
TODO
- 类型:
-
SHOW_PROFESSION_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L35 - 说明:
TODO
- 类型:
-
SHOW_BEHAVIORS_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L36 - 说明:
TODO
- 类型:
-
SHOW_ACTIVITIES_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L37 - 说明:
TODO
- 类型:
-
SHOW_MEMORIES_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L38 - 说明:
TODO
- 类型:
-
SHOW_INVENTORY_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L39 - 说明:
TODO
- 类型:
-
SHOW_GOSSIPS_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L40 - 说明:
TODO
- 类型:
-
SHOW_HEALTH_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L41 - 说明:
TODO
- 类型:
-
SHOW_WANTS_GOLEM_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L42 - 说明:
TODO
- 类型:
-
SHOW_ANGER_LEVEL_FOR_SELECTED- 类型:
boolean - 修饰符:
private static final - 源码定位:
L43 - 说明:
TODO
- 类型:
-
MAX_RENDER_DIST_FOR_BRAIN_INFO- 类型:
int - 修饰符:
private static final - 源码定位:
L44 - 说明:
TODO
- 类型:
-
MAX_TARGETING_DIST- 类型:
int - 修饰符:
private static final - 源码定位:
L45 - 说明:
TODO
- 类型:
-
TEXT_SCALE- 类型:
float - 修饰符:
private static final - 源码定位:
L46 - 说明:
TODO
- 类型:
-
CYAN- 类型:
int - 修饰符:
private static final - 源码定位:
L47 - 说明:
TODO
- 类型:
-
GRAY- 类型:
int - 修饰符:
private static final - 源码定位:
L48 - 说明:
TODO
- 类型:
-
PINK- 类型:
int - 修饰符:
private static final - 源码定位:
L49 - 说明:
TODO
- 类型:
-
ORANGE- 类型:
int - 修饰符:
private static final - 源码定位:
L50 - 说明:
TODO
- 类型:
-
minecraft- 类型:
Minecraft - 修饰符:
private final - 源码定位:
L51 - 说明:
TODO
- 类型:
-
lastLookedAtUuid- 类型:
UUID - 修饰符:
private - 源码定位:
L52 - 说明:
TODO
- 类型:
内部类/嵌套类型
- 无
构造器
public BrainDebugRenderer(Minecraft minecraft) @ L54
- 构造器名:BrainDebugRenderer
- 源码定位:L54
- 修饰符:public
参数:
- minecraft: Minecraft
说明:
TODO
方法
下面的方法块按源码顺序生成。
public void emitGizmos(double camX, double camY, double camZ, DebugValueAccess debugValues, Frustum frustum, float partialTicks) @ L58
- 方法名:emitGizmos
- 源码定位:L58
- 返回类型:void
- 修饰符:public
参数:
- camX: double
- camY: double
- camZ: double
- debugValues: DebugValueAccess
- frustum: Frustum
- partialTicks: float
说明:
TODO
private void doRender(DebugValueAccess debugValues) @ L66
- 方法名:doRender
- 源码定位:L66
- 返回类型:void
- 修饰符:private
参数:
- debugValues: DebugValueAccess
说明:
TODO
private void renderBrainInfo(Entity entity, DebugBrainDump brainDump) @ L74
- 方法名:renderBrainInfo
- 源码定位:L74
- 返回类型:void
- 修饰符:private
参数:
- entity: Entity
- brainDump: DebugBrainDump
说明:
TODO
private boolean isMobSelected(Entity entity) @ L145
- 方法名:isMobSelected
- 源码定位:L145
- 返回类型:boolean
- 修饰符:private
参数:
- entity: Entity
说明:
TODO
public Map<BlockPos,List<String>> getGhostPois(DebugValueAccess debugValues) @ L149
- 方法名:getGhostPois
- 源码定位:L149
- 返回类型:Map<BlockPos,List
> - 修饰符:public
参数:
- debugValues: DebugValueAccess
说明:
TODO
private void updateLastLookedAtUuid() @ L159
- 方法名:updateLastLookedAtUuid
- 源码定位:L159
- 返回类型:void
- 修饰符:private
参数:
- 无
说明:
TODO
代码
@OnlyIn(Dist.CLIENT)
public class BrainDebugRenderer implements DebugRenderer.SimpleDebugRenderer {
private static final boolean SHOW_NAME_FOR_ALL = true;
private static final boolean SHOW_PROFESSION_FOR_ALL = false;
private static final boolean SHOW_BEHAVIORS_FOR_ALL = false;
private static final boolean SHOW_ACTIVITIES_FOR_ALL = false;
private static final boolean SHOW_INVENTORY_FOR_ALL = false;
private static final boolean SHOW_GOSSIPS_FOR_ALL = false;
private static final boolean SHOW_HEALTH_FOR_ALL = false;
private static final boolean SHOW_WANTS_GOLEM_FOR_ALL = true;
private static final boolean SHOW_ANGER_LEVEL_FOR_ALL = false;
private static final boolean SHOW_NAME_FOR_SELECTED = true;
private static final boolean SHOW_PROFESSION_FOR_SELECTED = true;
private static final boolean SHOW_BEHAVIORS_FOR_SELECTED = true;
private static final boolean SHOW_ACTIVITIES_FOR_SELECTED = true;
private static final boolean SHOW_MEMORIES_FOR_SELECTED = true;
private static final boolean SHOW_INVENTORY_FOR_SELECTED = true;
private static final boolean SHOW_GOSSIPS_FOR_SELECTED = true;
private static final boolean SHOW_HEALTH_FOR_SELECTED = true;
private static final boolean SHOW_WANTS_GOLEM_FOR_SELECTED = true;
private static final boolean SHOW_ANGER_LEVEL_FOR_SELECTED = true;
private static final int MAX_RENDER_DIST_FOR_BRAIN_INFO = 30;
private static final int MAX_TARGETING_DIST = 8;
private static final float TEXT_SCALE = 0.32F;
private static final int CYAN = -16711681;
private static final int GRAY = -3355444;
private static final int PINK = -98404;
private static final int ORANGE = -23296;
private final Minecraft minecraft;
private @Nullable UUID lastLookedAtUuid;
public BrainDebugRenderer(Minecraft minecraft) {
this.minecraft = minecraft;
}
@Override
public void emitGizmos(double camX, double camY, double camZ, DebugValueAccess debugValues, Frustum frustum, float partialTicks) {
this.doRender(debugValues);
if (!this.minecraft.player.isSpectator()) {
this.updateLastLookedAtUuid();
}
}
private void doRender(DebugValueAccess debugValues) {
debugValues.forEachEntity(DebugSubscriptions.BRAINS, (entity, brainDump) -> {
if (this.minecraft.player.closerThan(entity, 30.0)) {
this.renderBrainInfo(entity, brainDump);
}
});
}
private void renderBrainInfo(Entity entity, DebugBrainDump brainDump) {
boolean selected = this.isMobSelected(entity);
int row = 0;
Gizmos.billboardTextOverMob(entity, row, brainDump.name(), -1, 0.48F);
row++;
if (selected) {
Gizmos.billboardTextOverMob(entity, row, brainDump.profession() + " " + brainDump.xp() + " xp", -1, 0.32F);
row++;
}
if (selected) {
int color = brainDump.health() < brainDump.maxHealth() ? -23296 : -1;
Gizmos.billboardTextOverMob(
entity,
row,
"health: " + String.format(Locale.ROOT, "%.1f", brainDump.health()) + " / " + String.format(Locale.ROOT, "%.1f", brainDump.maxHealth()),
color,
0.32F
);
row++;
}
if (selected && !brainDump.inventory().equals("")) {
Gizmos.billboardTextOverMob(entity, row, brainDump.inventory(), -98404, 0.32F);
row++;
}
if (selected) {
for (String goal : brainDump.behaviors()) {
Gizmos.billboardTextOverMob(entity, row, goal, -16711681, 0.32F);
row++;
}
}
if (selected) {
for (String activity : brainDump.activities()) {
Gizmos.billboardTextOverMob(entity, row, activity, -16711936, 0.32F);
row++;
}
}
if (brainDump.wantsGolem()) {
Gizmos.billboardTextOverMob(entity, row, "Wants Golem", -23296, 0.32F);
row++;
}
if (selected && brainDump.angerLevel() != -1) {
Gizmos.billboardTextOverMob(entity, row, "Anger Level: " + brainDump.angerLevel(), -98404, 0.32F);
row++;
}
if (selected) {
for (String gossip : brainDump.gossips()) {
if (gossip.startsWith(brainDump.name())) {
Gizmos.billboardTextOverMob(entity, row, gossip, -1, 0.32F);
} else {
Gizmos.billboardTextOverMob(entity, row, gossip, -23296, 0.32F);
}
row++;
}
}
if (selected) {
for (String memory : Lists.reverse(brainDump.memories())) {
Gizmos.billboardTextOverMob(entity, row, memory, -3355444, 0.32F);
row++;
}
}
}
private boolean isMobSelected(Entity entity) {
return Objects.equals(this.lastLookedAtUuid, entity.getUUID());
}
public Map<BlockPos, List<String>> getGhostPois(DebugValueAccess debugValues) {
Map<BlockPos, List<String>> ghostPois = Maps.newHashMap();
debugValues.forEachEntity(DebugSubscriptions.BRAINS, (entity, brainDump) -> {
for (BlockPos poiPos : Iterables.concat(brainDump.pois(), brainDump.potentialPois())) {
ghostPois.computeIfAbsent(poiPos, k -> Lists.newArrayList()).add(brainDump.name());
}
});
return ghostPois;
}
private void updateLastLookedAtUuid() {
DebugRenderer.getTargetedEntity(this.minecraft.getCameraEntity(), 8).ifPresent(entity -> this.lastLookedAtUuid = entity.getUUID());
}
}引用的其他类
-
- 引用位置:
参数/字段
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
实现/方法调用 - 关联成员:
DebugRenderer.getTargetedEntity()
- 引用位置:
-
- 引用位置:
返回值
- 引用位置:
-
- 引用位置:
方法调用 - 关联成员:
Gizmos.billboardTextOverMob()
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置:
-
- 引用位置:
参数
- 引用位置: