Explorar o código

Fix FluidStackHooksImpl

shedaniel %!s(int64=4) %!d(string=hai) anos
pai
achega
427f365850

+ 12 - 10
common/src/main/java/me/shedaniel/architectury/event/EventFactory.java

@@ -25,12 +25,12 @@ import me.shedaniel.architectury.ForgeEvent;
 import net.jodah.typetools.TypeResolver;
 import net.minecraft.world.InteractionResult;
 import net.minecraft.world.InteractionResultHolder;
-import org.apache.commons.lang3.ArrayUtils;
 import org.jetbrains.annotations.NotNull;
 
 import java.lang.reflect.Array;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
+import java.util.ArrayList;
 import java.util.Objects;
 import java.util.function.Consumer;
 import java.util.function.Function;
@@ -133,13 +133,13 @@ public final class EventFactory {
     private static class EventImpl<T> implements Event<T> {
         private final Function<T[], T> function;
         private T invoker = null;
-        private T[] listeners;
+        private ArrayList<T> listeners;
         private Class<?> clazz;
         
         public EventImpl(Class<?> clazz, Function<T[], T> function) {
             this.clazz = Objects.requireNonNull(clazz);
             this.function = function;
-            this.listeners = emptyArray();
+            this.listeners = new ArrayList<>();
         }
         
         private T[] emptyArray() {
@@ -160,32 +160,34 @@ public final class EventFactory {
         
         @Override
         public void register(T listener) {
-            listeners = ArrayUtils.add(listeners, listener);
+            listeners.add(listener);
             invoker = null;
         }
         
         @Override
         public void unregister(T listener) {
-            listeners = ArrayUtils.removeElement(listeners, listener);
+            listeners.remove(listener);
+            listeners.trimToSize();
             invoker = null;
         }
         
         @Override
         public boolean isRegistered(T listener) {
-            return ArrayUtils.contains(listeners, listener);
+            return listeners.contains(listener);
         }
         
         @Override
         public void clearListeners() {
-            listeners = emptyArray();
+            listeners.clear();
+            listeners.trimToSize();
             invoker = null;
         }
         
         public void update() {
-            if (listeners.length == 1) {
-                invoker = listeners[0];
+            if (listeners.size() == 1) {
+                invoker = listeners.get(0);
             } else {
-                invoker = function.apply(listeners);
+                invoker = function.apply(listeners.toArray(emptyArray()));
             }
         }
     }

+ 1 - 6
forge/src/main/java/me/shedaniel/architectury/forge/ArchitecturyForge.java

@@ -20,21 +20,16 @@
 package me.shedaniel.architectury.forge;
 
 import me.shedaniel.architectury.event.EventHandler;
-import me.shedaniel.architectury.platform.Platform;
+import me.shedaniel.architectury.event.events.GuiEvent;
 import me.shedaniel.architectury.platform.forge.EventBuses;
 import net.minecraftforge.fml.common.Mod;
 import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
 
-import java.util.stream.Collectors;
-
 @Mod(ArchitecturyForge.MOD_ID)
 public class ArchitecturyForge {
     public static final String MOD_ID = "architectury";
     
     public ArchitecturyForge() {
-        System.out.println(Platform.getMods().stream()
-                .map(me.shedaniel.architectury.platform.Mod::getModId)
-                .collect(Collectors.joining(", ")));
         EventBuses.registerModEventBus(ArchitecturyForge.MOD_ID, FMLJavaModLoadingContext.get().getModEventBus());
         EventHandler.init();
     }

+ 39 - 0
forge/src/main/java/me/shedaniel/architectury/hooks/forge/FluidStackHooksImpl.java

@@ -0,0 +1,39 @@
+package me.shedaniel.architectury.hooks.forge;
+
+import me.shedaniel.architectury.fluid.FluidStack;
+import me.shedaniel.architectury.utils.Fraction;
+import net.minecraft.nbt.CompoundNBT;
+import net.minecraft.network.PacketBuffer;
+import net.minecraft.util.text.ITextComponent;
+
+public class FluidStackHooksImpl {
+    public static ITextComponent getName(FluidStack stack) {
+        return stack.getName();
+    }
+    
+    public static String getTranslationKey(FluidStack stack) {
+        return stack.getTranslationKey();
+    }
+    
+    public static FluidStack read(PacketBuffer buf) {
+        net.minecraftforge.fluids.FluidStack stack = net.minecraftforge.fluids.FluidStack.readFromPacket(buf);
+        return FluidStack.create(stack.getFluid().delegate, Fraction.ofWhole(stack.getAmount()), stack.getTag());
+    }
+    
+    public static void write(FluidStack stack, PacketBuffer buf) {
+        stack.write(buf);
+    }
+    
+    public static FluidStack read(CompoundNBT tag) {
+        net.minecraftforge.fluids.FluidStack stack = net.minecraftforge.fluids.FluidStack.loadFluidStackFromNBT(tag);
+        return FluidStack.create(stack.getFluid().delegate, Fraction.ofWhole(stack.getAmount()), stack.getTag());
+    }
+    
+    public static CompoundNBT write(FluidStack stack, CompoundNBT tag) {
+        return stack.write(tag);
+    }
+    
+    public static Fraction bucketAmount() {
+        return Fraction.ofWhole(1000);
+    }
+}