equivalent-exchange-3/src/main/java/com/pahimar/ee3/array/AlchemyArrayRegistry.java

72 lines
2 KiB
Java

package com.pahimar.ee3.array;
import com.google.common.collect.ImmutableSortedSet;
import com.pahimar.ee3.api.array.AlchemyArray;
import com.pahimar.ee3.util.LoaderHelper;
import com.pahimar.ee3.util.LogHelper;
import cpw.mods.fml.common.Loader;
import org.apache.logging.log4j.Marker;
import org.apache.logging.log4j.MarkerManager;
import java.util.SortedSet;
import java.util.TreeSet;
public class AlchemyArrayRegistry
{
public static final Marker ALCHEMY_ARRAY_MARKER = MarkerManager.getMarker("EE3_ALCHEMY_ARRAY", LogHelper.MOD_MARKER);
private static AlchemyArrayRegistry alchemyArrayRegistry = null;
private SortedSet<AlchemyArray> registeredAlchemyArrays;
private AlchemyArrayRegistry()
{
}
public static AlchemyArrayRegistry getInstance()
{
if (alchemyArrayRegistry == null)
{
alchemyArrayRegistry = new AlchemyArrayRegistry();
alchemyArrayRegistry.init();
}
return alchemyArrayRegistry;
}
private void init()
{
registeredAlchemyArrays = new TreeSet<AlchemyArray>();
}
public AlchemyArray getAlchemyArray(int index)
{
if (registeredAlchemyArrays != null)
{
AlchemyArray[] alchemyArrays = new AlchemyArray[0];
alchemyArrays = registeredAlchemyArrays.toArray(alchemyArrays);
if (index < alchemyArrays.length)
{
return alchemyArrays[index];
}
}
return null;
}
public SortedSet<AlchemyArray> getRegisteredAlchemyArrays()
{
return ImmutableSortedSet.copyOf(registeredAlchemyArrays);
}
public boolean registerAlchemyArray(AlchemyArray alchemyArray)
{
if (!registeredAlchemyArrays.contains(alchemyArray))
{
LogHelper.trace(ALCHEMY_ARRAY_MARKER, "[{}]: Mod with ID '{}' added alchemy array {}", LoaderHelper.getLoaderState(), Loader.instance().activeModContainer().getModId(), alchemyArray);
return registeredAlchemyArrays.add(alchemyArray);
}
return false;
}
}