2015-11-02 17:45:11 -08:00
|
|
|
package WayofTime.bloodmagic.tile;
|
|
|
|
|
2016-02-25 08:54:18 -05:00
|
|
|
import WayofTime.bloodmagic.api.registry.ImperfectRitualRegistry;
|
|
|
|
import WayofTime.bloodmagic.api.ritual.imperfect.IImperfectRitualStone;
|
|
|
|
import WayofTime.bloodmagic.api.ritual.imperfect.ImperfectRitual;
|
|
|
|
import WayofTime.bloodmagic.api.util.helper.NetworkHelper;
|
|
|
|
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
2016-03-17 13:00:44 -07:00
|
|
|
import lombok.NoArgsConstructor;
|
|
|
|
import net.minecraft.entity.effect.EntityLightningBolt;
|
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
|
|
|
import net.minecraft.util.math.BlockPos;
|
|
|
|
import net.minecraft.world.World;
|
2015-11-02 17:45:11 -08:00
|
|
|
|
2015-11-03 10:44:08 -08:00
|
|
|
@NoArgsConstructor
|
2015-12-30 15:34:40 -05:00
|
|
|
public class TileImperfectRitualStone extends TileEntity implements IImperfectRitualStone
|
|
|
|
{
|
2015-11-02 17:45:11 -08:00
|
|
|
// IImperfectRitualStone
|
|
|
|
|
|
|
|
@Override
|
2015-12-30 15:34:40 -05:00
|
|
|
public boolean performRitual(World world, BlockPos pos, ImperfectRitual imperfectRitual, EntityPlayer player)
|
|
|
|
{
|
2016-02-05 14:38:32 -08:00
|
|
|
if (imperfectRitual != null && ImperfectRitualRegistry.ritualEnabled(imperfectRitual))
|
2015-12-30 15:34:40 -05:00
|
|
|
{
|
2016-02-05 14:38:32 -08:00
|
|
|
if (!PlayerHelper.isFakePlayer(player) && !world.isRemote)
|
2016-01-30 19:34:26 -08:00
|
|
|
{
|
2016-02-05 14:38:32 -08:00
|
|
|
NetworkHelper.getSoulNetwork(player).syphonAndDamage(player, imperfectRitual.getActivationCost());
|
|
|
|
if (imperfectRitual.onActivate(this, player))
|
|
|
|
{
|
|
|
|
if (imperfectRitual.isLightshow())
|
2016-03-17 13:00:44 -07:00
|
|
|
getWorld().addWeatherEffect(new EntityLightningBolt(getWorld(), getPos().getX(), getPos().getY() + 2, getPos().getZ(), true));
|
2016-02-05 14:38:32 -08:00
|
|
|
return true;
|
|
|
|
}
|
2016-01-30 19:34:26 -08:00
|
|
|
}
|
2016-02-05 14:38:32 -08:00
|
|
|
|
|
|
|
return true;
|
2015-11-02 17:45:11 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-01-31 15:48:49 -08:00
|
|
|
public World getRitualWorld()
|
2015-12-30 15:34:40 -05:00
|
|
|
{
|
2016-01-31 15:48:49 -08:00
|
|
|
return getWorld();
|
2015-11-02 17:45:11 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2016-01-31 15:48:49 -08:00
|
|
|
public BlockPos getRitualPos()
|
2015-12-30 15:34:40 -05:00
|
|
|
{
|
2016-01-31 15:48:49 -08:00
|
|
|
return getPos();
|
2015-11-02 17:45:11 -08:00
|
|
|
}
|
|
|
|
}
|