/** Copyright (c) 2011-2015, SpaceToad and the BuildCraft Team http://www.mod-buildcraft.com * * The BuildCraft API is distributed under the terms of the MIT License. Please check the contents of the license, which * should be located as "LICENSE.API" in the BuildCraft source code distribution. */ package buildcraft.api.transport; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import net.minecraft.util.BlockPos; import net.minecraft.world.World; import buildcraft.api.transport.pluggable.PipePluggable; public abstract class PipeManager { public static List<IStripesHandler> stripesHandlers = new ArrayList<IStripesHandler>(); public static ArrayList<Class<? extends PipePluggable>> pipePluggables = new ArrayList<Class<? extends PipePluggable>>(); private static Map<String, Class<? extends PipePluggable>> pipePluggableNames = new HashMap<String, Class<? extends PipePluggable>>(); private static Map<Class<? extends PipePluggable>, String> pipePluggableByNames = new HashMap<Class<? extends PipePluggable>, String>(); private static Map<IStripesHandler, Integer> stripesHandlerPriorities = new HashMap<IStripesHandler, Integer>(); @Deprecated public static boolean canExtractItems(Object extractor, World world, BlockPos pos) { return true; } @Deprecated public static boolean canExtractFluids(Object extractor, World world, BlockPos pos) { return true; } @Deprecated public static void registerStripesHandler(IStripesHandler handler) { registerStripesHandler(handler, 0); } /** Register a Stripes Pipe handler. * * @param handler The handler. * @param priority The priority - 0 is normal, higher numbers have higher priority. */ public static void registerStripesHandler(IStripesHandler handler, int priority) { stripesHandlers.add(handler); stripesHandlerPriorities.put(handler, priority); Collections.sort(stripesHandlers, new Comparator<IStripesHandler>() { @Override public int compare(IStripesHandler o1, IStripesHandler o2) { return stripesHandlerPriorities.get(o2) - stripesHandlerPriorities.get(o1); } }); } public static void registerPipePluggable(Class<? extends PipePluggable> pluggable, String name) { pipePluggables.add(pluggable); pipePluggableNames.put(name, pluggable); pipePluggableByNames.put(pluggable, name); } public static Class<?> getPluggableByName(String pluggableName) { return pipePluggableNames.get(pluggableName); } public static String getPluggableName(Class<? extends PipePluggable> aClass) { return pipePluggableByNames.get(aClass); } }