Code/net/minecraft/network/protocol/common/custom/BrainDebugPayload.java

105 lines
3.9 KiB
Java
Raw Normal View History

2025-07-01 06:20:03 +00:00
package net.minecraft.network.protocol.common.custom;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.UUID;
import javax.annotation.Nullable;
import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.world.level.pathfinder.Path;
import net.minecraft.world.phys.Vec3;
public record BrainDebugPayload(BrainDebugPayload.BrainDump brainDump) implements CustomPacketPayload {
public static final StreamCodec<FriendlyByteBuf, BrainDebugPayload> STREAM_CODEC = CustomPacketPayload.codec(
BrainDebugPayload::write, BrainDebugPayload::new
);
public static final CustomPacketPayload.Type<BrainDebugPayload> TYPE = CustomPacketPayload.createType("debug/brain");
private BrainDebugPayload(FriendlyByteBuf p_299558_) {
this(new BrainDebugPayload.BrainDump(p_299558_));
}
private void write(FriendlyByteBuf p_300305_) {
this.brainDump.write(p_300305_);
}
@Override
public CustomPacketPayload.Type<BrainDebugPayload> type() {
return TYPE;
}
public record BrainDump(
UUID uuid,
int id,
String name,
String profession,
int xp,
float health,
float maxHealth,
Vec3 pos,
String inventory,
@Nullable Path path,
boolean wantsGolem,
int angerLevel,
List<String> activities,
List<String> behaviors,
List<String> memories,
List<String> gossips,
Set<BlockPos> pois,
Set<BlockPos> potentialPois
) {
public BrainDump(FriendlyByteBuf p_298042_) {
this(
p_298042_.readUUID(),
p_298042_.readInt(),
p_298042_.readUtf(),
p_298042_.readUtf(),
p_298042_.readInt(),
p_298042_.readFloat(),
p_298042_.readFloat(),
p_298042_.readVec3(),
p_298042_.readUtf(),
p_298042_.readNullable(Path::createFromStream),
p_298042_.readBoolean(),
p_298042_.readInt(),
p_298042_.readList(FriendlyByteBuf::readUtf),
p_298042_.readList(FriendlyByteBuf::readUtf),
p_298042_.readList(FriendlyByteBuf::readUtf),
p_298042_.readList(FriendlyByteBuf::readUtf),
p_298042_.readCollection(HashSet::new, BlockPos.STREAM_CODEC),
p_298042_.readCollection(HashSet::new, BlockPos.STREAM_CODEC)
);
}
public void write(FriendlyByteBuf p_299431_) {
p_299431_.writeUUID(this.uuid);
p_299431_.writeInt(this.id);
p_299431_.writeUtf(this.name);
p_299431_.writeUtf(this.profession);
p_299431_.writeInt(this.xp);
p_299431_.writeFloat(this.health);
p_299431_.writeFloat(this.maxHealth);
p_299431_.writeVec3(this.pos);
p_299431_.writeUtf(this.inventory);
p_299431_.writeNullable(this.path, (p_297936_, p_301045_) -> p_301045_.writeToStream(p_297936_));
p_299431_.writeBoolean(this.wantsGolem);
p_299431_.writeInt(this.angerLevel);
p_299431_.writeCollection(this.activities, FriendlyByteBuf::writeUtf);
p_299431_.writeCollection(this.behaviors, FriendlyByteBuf::writeUtf);
p_299431_.writeCollection(this.memories, FriendlyByteBuf::writeUtf);
p_299431_.writeCollection(this.gossips, FriendlyByteBuf::writeUtf);
p_299431_.writeCollection(this.pois, BlockPos.STREAM_CODEC);
p_299431_.writeCollection(this.potentialPois, BlockPos.STREAM_CODEC);
}
public boolean hasPoi(BlockPos p_301193_) {
return this.pois.contains(p_301193_);
}
public boolean hasPotentialPoi(BlockPos p_300342_) {
return this.potentialPois.contains(p_300342_);
}
}
}