72 lines
2 KiB
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;
|
|
}
|
|
}
|