2018-03-04 17:17:23 +00:00
|
|
|
package WayofTime.bloodmagic.ritual;
|
2015-10-31 20:47:43 +00:00
|
|
|
|
2018-02-16 02:49:01 +00:00
|
|
|
import WayofTime.bloodmagic.core.data.SoulNetwork;
|
2018-08-07 22:27:12 +00:00
|
|
|
import WayofTime.bloodmagic.core.data.SoulTicket;
|
2018-02-16 02:49:01 +00:00
|
|
|
import WayofTime.bloodmagic.soul.EnumDemonWillType;
|
2015-11-03 01:45:11 +00:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.item.ItemStack;
|
2015-10-31 20:47:43 +00:00
|
|
|
import net.minecraft.util.EnumFacing;
|
2016-03-17 20:00:44 +00:00
|
|
|
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;
|
2019-01-21 23:06:38 +00:00
|
|
|
import java.util.Map;
|
2018-02-28 00:59:51 +00:00
|
|
|
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 {
|
2018-02-28 00:59:51 +00:00
|
|
|
UUID getOwner();
|
2015-11-03 01:45:11 +00:00
|
|
|
|
2017-02-13 01:00:18 +00:00
|
|
|
SoulNetwork getOwnerNetwork();
|
|
|
|
|
2015-12-27 00:49:25 +00:00
|
|
|
boolean activateRitual(ItemStack activationCrystal, EntityPlayer activator, Ritual ritual);
|
2015-10-31 20:47:43 +00:00
|
|
|
|
2015-12-27 00:49:25 +00:00
|
|
|
void performRitual(World world, BlockPos pos);
|
2015-10-31 20:47:43 +00:00
|
|
|
|
2015-12-27 00:49:25 +00:00
|
|
|
void stopRitual(Ritual.BreakType breakType);
|
2015-11-03 01:45:11 +00:00
|
|
|
|
2015-10-31 20:47:43 +00:00
|
|
|
int getCooldown();
|
|
|
|
|
2015-11-29 02:25:46 +00:00
|
|
|
void setCooldown(int cooldown);
|
|
|
|
|
2019-05-19 15:35:38 +00:00
|
|
|
boolean isActive();
|
|
|
|
|
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();
|
2016-04-11 01:19:18 +00:00
|
|
|
|
|
|
|
String getNextBlockRange(String range);
|
|
|
|
|
|
|
|
void provideInformationOfRitualToPlayer(EntityPlayer player);
|
|
|
|
|
|
|
|
void provideInformationOfRangeToPlayer(EntityPlayer player, String range);
|
|
|
|
|
2016-07-11 01:51:17 +00:00
|
|
|
void provideInformationOfWillConfigToPlayer(EntityPlayer player, List<EnumDemonWillType> typeList);
|
|
|
|
|
2016-04-11 19:36:27 +00:00
|
|
|
void setActiveWillConfig(EntityPlayer player, List<EnumDemonWillType> typeList);
|
2016-04-11 01:19:18 +00:00
|
|
|
|
2019-02-01 01:11:32 +00:00
|
|
|
EnumReaderBoundaries setBlockRangeByBounds(EntityPlayer player, String range, BlockPos offset1, BlockPos offset2);
|
2016-04-11 19:36:27 +00:00
|
|
|
|
2016-07-11 01:51:17 +00:00
|
|
|
List<EnumDemonWillType> getActiveWillConfig();
|
2018-08-07 22:27:12 +00:00
|
|
|
|
|
|
|
default SoulTicket ticket(int amount) {
|
|
|
|
return SoulTicket.block(getWorldObj(), getBlockPos(), amount);
|
|
|
|
}
|
2019-01-21 23:06:38 +00:00
|
|
|
|
|
|
|
AreaDescriptor getBlockRange(String range);
|
|
|
|
|
|
|
|
void addBlockRanges(Map<String, AreaDescriptor> blockRanges);
|
|
|
|
|
|
|
|
void addBlockRange(String range, AreaDescriptor defaultRange);
|
2019-02-01 01:11:32 +00:00
|
|
|
|
2019-09-05 01:58:45 +00:00
|
|
|
void setBlockRanges(Map<String, AreaDescriptor> blockRanges);
|
|
|
|
|
|
|
|
void setBlockRange(String range, AreaDescriptor defaultRange);
|
|
|
|
|
2019-02-01 01:11:32 +00:00
|
|
|
Ritual getCurrentRitual();
|
2015-10-31 20:47:43 +00:00
|
|
|
}
|