BloodMagic/src/main/java/WayofTime/bloodmagic/ritual/IMasterRitualStone.java

74 lines
2 KiB
Java
Raw Normal View History

package WayofTime.bloodmagic.ritual;
2015-10-31 20:47:43 +00:00
import WayofTime.bloodmagic.core.data.SoulNetwork;
import WayofTime.bloodmagic.core.data.SoulTicket;
import WayofTime.bloodmagic.soul.EnumDemonWillType;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
2015-10-31 20:47:43 +00:00
import net.minecraft.util.EnumFacing;
import net.minecraft.util.math.BlockPos;
2015-10-31 20:47:43 +00:00
import net.minecraft.world.World;
2017-08-16 04:30:48 +00:00
import java.util.List;
import java.util.Map;
import java.util.UUID;
2015-10-31 20:47:43 +00:00
2015-12-29 21:00:26 +00:00
/**
* This interface is for internal implementation only.
2017-08-16 04:30:48 +00:00
* <p>
2015-12-29 21:00:26 +00:00
* It is provided via the API for easy obtaining of basic data.
*/
2017-08-16 04:30:48 +00:00
public interface IMasterRitualStone {
UUID getOwner();
SoulNetwork getOwnerNetwork();
boolean activateRitual(ItemStack activationCrystal, EntityPlayer activator, Ritual ritual);
2015-10-31 20:47:43 +00:00
void performRitual(World world, BlockPos pos);
2015-10-31 20:47:43 +00:00
void stopRitual(Ritual.BreakType breakType);
2015-10-31 20:47:43 +00:00
int getCooldown();
void setCooldown(int cooldown);
2015-10-31 20:47:43 +00:00
void setActive(boolean active);
EnumFacing getDirection();
boolean areTanksEmpty();
int getRunningTime();
2016-01-03 13:30:59 +00:00
World getWorldObj();
2015-10-31 20:47:43 +00:00
2016-01-03 13:30:59 +00:00
BlockPos getBlockPos();
String getNextBlockRange(String range);
void provideInformationOfRitualToPlayer(EntityPlayer player);
void provideInformationOfRangeToPlayer(EntityPlayer player, String range);
void provideInformationOfWillConfigToPlayer(EntityPlayer player, List<EnumDemonWillType> typeList);
void setActiveWillConfig(EntityPlayer player, List<EnumDemonWillType> typeList);
EnumReaderBoundaries setBlockRangeByBounds(EntityPlayer player, String range, BlockPos offset1, BlockPos offset2);
List<EnumDemonWillType> getActiveWillConfig();
default SoulTicket ticket(int amount) {
return SoulTicket.block(getWorldObj(), getBlockPos(), amount);
}
AreaDescriptor getBlockRange(String range);
void addBlockRanges(Map<String, AreaDescriptor> blockRanges);
void addBlockRange(String range, AreaDescriptor defaultRange);
Ritual getCurrentRitual();
2015-10-31 20:47:43 +00:00
}