From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com> Date: Sat, 26 Oct 2024 00:06:04 +0800 Subject: [PATCH] Remove stream in Brain diff --git a/net/minecraft/world/entity/ai/Brain.java b/net/minecraft/world/entity/ai/Brain.java index 98652c2c549bd7657a606d25ba4fe3cffa0548da..29fdf94db0308031edfe7915fc587a2aa5a1a18a 100644 --- a/net/minecraft/world/entity/ai/Brain.java +++ b/net/minecraft/world/entity/ai/Brain.java @@ -70,13 +70,22 @@ public class Brain { (new MapCodec>() { @Override public Stream keys(DynamicOps ops) { - return memoryTypes.stream() - .flatMap( - memoryModuleType -> memoryModuleType.getCodec() - .map(codec -> BuiltInRegistries.MEMORY_MODULE_TYPE.getKey((MemoryModuleType)memoryModuleType)) - .stream() - ) - .map(resourceLocation -> ops.createString(resourceLocation.toString())); + // Leaf start - Remove stream in Brain + List results = new java.util.ArrayList<>(); + + for (MemoryModuleType memoryModuleType : memoryTypes) { + final Optional codec = memoryModuleType.getCodec(); + + if (codec.isPresent()) { + final net.minecraft.resources.ResourceLocation resourceLocation = BuiltInRegistries.MEMORY_MODULE_TYPE.getKey(memoryModuleType); + final T opsResult = ops.createString(resourceLocation.toString()); + + results.add(opsResult); + } + } + + return results.stream(); + // Leaf end - Remove stream in Brain } @Override @@ -111,7 +120,14 @@ public class Brain { @Override public RecordBuilder encode(Brain input, DynamicOps ops, RecordBuilder prefix) { - input.memories().forEach(memoryValue -> memoryValue.serialize(ops, prefix)); + // Leaf start - Remove stream in Brain + for (Entry, Optional>> memory : input.memories.entrySet()) { + final Brain.MemoryValue result = Brain.MemoryValue.createUnchecked(memory.getKey(), memory.getValue()); + + result.serialize(ops, prefix); + } + // Leaf end - Remove stream in Brain + return prefix; } }) @@ -153,7 +169,7 @@ public class Brain { } Stream> memories() { - return this.memories.entrySet().stream().map(memory -> Brain.MemoryValue.createUnchecked(memory.getKey(), memory.getValue())); + return this.memories.entrySet().stream().map(memory -> Brain.MemoryValue.createUnchecked(memory.getKey(), memory.getValue())); // Leaf - Remove stream in Brain - diff on change } public boolean hasMemoryValue(MemoryModuleType type) {