Committing the Ritual stuff

Incomplete. Ritual detection/rotation needs to be implemented. Currently hardcoded to a test ritual
This commit is contained in:
Nick 2015-12-26 16:49:25 -08:00
parent 9faae07131
commit 03847ad6d9
9 changed files with 209 additions and 40 deletions

View file

@ -3,12 +3,21 @@ package WayofTime.bloodmagic.api.util.helper;
import WayofTime.bloodmagic.BloodMagic;
import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry;
import WayofTime.bloodmagic.api.registry.RitualRegistry;
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
import WayofTime.bloodmagic.api.ritual.Ritual;
import WayofTime.bloodmagic.api.ritual.RitualComponent;
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
import WayofTime.bloodmagic.block.BlockRitualStone;
import net.minecraft.block.Block;
import net.minecraft.block.state.IBlockState;
import net.minecraft.util.BlockPos;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
import net.minecraftforge.common.config.Configuration;
import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.Map;
public class RitualHelper {
@ -31,6 +40,25 @@ public class RitualHelper {
return RitualRegistry.getIds().get(previousIndex);
}
public static boolean checkValidRitual(World world, BlockPos pos, String ritualId, EnumFacing direction) {
ArrayList<RitualComponent> components = RitualRegistry.getRitualForId(ritualId).getComponents();
if (components == null)
return false;
for (RitualComponent component : components) {
IBlockState worldState = world.getBlockState(pos.add(component.getOffset()));
if (worldState.getBlock() instanceof BlockRitualStone) {
EnumRuneType worldType = EnumRuneType.values()[worldState.getBlock().getMetaFromState(worldState)];
if (component.getRuneType() != worldType)
return false;
}
}
return true;
}
public static void checkImperfectRituals(Configuration config, String packageName, String category) {
checkRituals(config, packageName, category, ImperfectRitual.class, ImperfectRitualRegistry.enabledRituals);
}