From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: JellySquid Date: Mon, 11 May 2020 22:07:17 +0200 Subject: [PATCH] lithium MixinGoalSelector Only replaces the set type, might want to also port the logic rewrite in the future Original code by JellySquid, licensed under GNU Lesser General Public License v3.0 you can find the original code on https://github.com/CaffeineMC/lithium-fabric/ (Yarn mappings) diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java index 02e8288473138dcea008d6157318758e8d7ee3be..10611b8c72b0c0c3202e9ae5b956974ec1a37aa3 100644 --- a/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java +++ b/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java @@ -12,6 +12,7 @@ import java.util.stream.Stream; import net.minecraft.util.profiling.GameProfilerFiller; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import it.unimi.dsi.fastutil.objects.ObjectLinkedOpenHashSet; // Yatopia public class PathfinderGoalSelector { @@ -28,7 +29,7 @@ public class PathfinderGoalSelector { } }; private final Map c = new EnumMap(PathfinderGoal.Type.class); - private final Set d = Sets.newLinkedHashSet(); public final Set getTasks() { return d; }// Paper - OBFHELPER // Paper - private -> public + private final Set d = new ObjectLinkedOpenHashSet<>();/* Yatopia better set */ public final Set getTasks() { return d; }// Paper - OBFHELPER // Paper - private -> public private final Supplier e; private final EnumSet f = EnumSet.noneOf(PathfinderGoal.Type.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be. private final OptimizedSmallEnumSet goalTypes = new OptimizedSmallEnumSet<>(PathfinderGoal.Type.class); // Paper - remove streams from pathfindergoalselector