Imperfect rituals work mostly now

Just need to figure out an issue with the config
This commit is contained in:
Nick 2015-11-02 17:45:11 -08:00
parent 3a0dcae59a
commit 92bf7cc35b
15 changed files with 226 additions and 64 deletions

View file

@ -1,7 +1,10 @@
package WayofTime.bloodmagic.api.util.helper;
import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry;
import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
import com.google.common.collect.BiMap;
import net.minecraftforge.common.config.Configuration;
import sun.misc.Launcher;
@ -28,6 +31,14 @@ public class RitualHelper {
return RitualRegistry.getIds().get(previousIndex);
}
public static void checkImperfectRituals(Configuration config, String packageName, String category) {
checkRituals(config, packageName, category, ImperfectRitual.class, ImperfectRitualRegistry.getEnabledMap());
}
public static void checkRituals(Configuration config, String packageName, String category) {
checkRituals(config, packageName, category, Ritual.class, RitualRegistry.getEnabledMap());
}
/**
* Adds your Ritual to the {@link RitualRegistry#enabledRituals} Map.
* This is used to determine whether your effect is enabled or not.
@ -35,13 +46,16 @@ public class RitualHelper {
* The config option will be created as {@code B:ClassName=true} with a comment of
* {@code Enables the ClassName ritual}.
*
* Use {@link #}
*
* Should be safe to modify at any point.
*
* @param config - Your mod's Forge {@link Configuration} object.
* @param packageName - The package your Rituals are located in.
* @param category - The config category to write to.
*/
public static void checkRituals(Configuration config, String packageName, String category) {
@SuppressWarnings("unchecked")
private static void checkRituals(Configuration config, String packageName, String category, Class ritualClass, BiMap enabledMap) {
String name = packageName;
if (!name.startsWith("/"))
name = "/" + name;
@ -60,8 +74,9 @@ public class RitualHelper {
try {
Object o = Class.forName(packageName + "." + className).newInstance();
if (o instanceof Ritual)
RitualRegistry.enabledRituals.put((Ritual) o, config.get(category, className, true).getBoolean());
if (ritualClass.isInstance(o))
enabledMap.put(ritualClass.cast(o),
config.get(category, className, true).getBoolean());
} catch (ClassNotFoundException e) {
e.printStackTrace();