Fixed Portal ritual.
This commit is contained in:
parent
7979dc4e5f
commit
34a9b5a7ec
8 changed files with 151 additions and 45 deletions
|
@ -1,15 +1,7 @@
|
|||
package WayofTime.bloodmagic.ritual;
|
||||
|
||||
import WayofTime.bloodmagic.api.Constants;
|
||||
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
|
||||
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
|
||||
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||
import WayofTime.bloodmagic.api.ritual.RitualComponent;
|
||||
import WayofTime.bloodmagic.api.teleport.PortalLocation;
|
||||
import WayofTime.bloodmagic.api.util.helper.PlayerHelper;
|
||||
import WayofTime.bloodmagic.registry.ModBlocks;
|
||||
import WayofTime.bloodmagic.ritual.portal.LocationsHandler;
|
||||
import WayofTime.bloodmagic.tile.TileDimensionalPortal;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
@ -17,8 +9,15 @@ import net.minecraft.nbt.NBTTagCompound;
|
|||
import net.minecraft.util.BlockPos;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import WayofTime.bloodmagic.api.Constants;
|
||||
import WayofTime.bloodmagic.api.ritual.EnumRuneType;
|
||||
import WayofTime.bloodmagic.api.ritual.IMasterRitualStone;
|
||||
import WayofTime.bloodmagic.api.ritual.Ritual;
|
||||
import WayofTime.bloodmagic.api.ritual.RitualComponent;
|
||||
import WayofTime.bloodmagic.api.teleport.PortalLocation;
|
||||
import WayofTime.bloodmagic.registry.ModBlocks;
|
||||
import WayofTime.bloodmagic.ritual.portal.LocationsHandler;
|
||||
import WayofTime.bloodmagic.tile.TileDimensionalPortal;
|
||||
|
||||
public class RitualPortal extends Ritual
|
||||
{
|
||||
|
@ -35,9 +34,8 @@ public class RitualPortal extends Ritual
|
|||
}
|
||||
|
||||
@Override
|
||||
public boolean activateRitual(IMasterRitualStone masterRitualStone, EntityPlayer player)
|
||||
public boolean activateRitual(IMasterRitualStone masterRitualStone, EntityPlayer player, String owner)
|
||||
{
|
||||
String owner = PlayerHelper.getUUIDFromPlayer(player).toString();
|
||||
World world = masterRitualStone.getWorldObj();
|
||||
int x = masterRitualStone.getBlockPos().getX();
|
||||
int y = masterRitualStone.getBlockPos().getY();
|
||||
|
@ -127,6 +125,11 @@ public class RitualPortal extends Ritual
|
|||
public void performRitual(IMasterRitualStone masterRitualStone)
|
||||
{
|
||||
World world = masterRitualStone.getWorldObj();
|
||||
if (world.isRemote)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int x = masterRitualStone.getBlockPos().getX();
|
||||
int y = masterRitualStone.getBlockPos().getY();
|
||||
int z = masterRitualStone.getBlockPos().getZ();
|
||||
|
@ -236,7 +239,7 @@ public class RitualPortal extends Ritual
|
|||
addRune(components, 1, 0, 0, EnumRuneType.AIR);
|
||||
addRune(components, 2, 0, 0, EnumRuneType.WATER);
|
||||
addRune(components, -1, 0, 0, EnumRuneType.FIRE);
|
||||
addRune(components, -2, 0, 0 , EnumRuneType.EARTH);
|
||||
addRune(components, -2, 0, 0, EnumRuneType.EARTH);
|
||||
addRune(components, 2, 1, 0, EnumRuneType.DUSK);
|
||||
|
||||
addRune(components, 2, 2, 0, EnumRuneType.AIR);
|
||||
|
|
|
@ -41,13 +41,6 @@ public class Teleports
|
|||
{
|
||||
if (entity instanceof EntityPlayer)
|
||||
{
|
||||
EntityPlayerMP player = (EntityPlayerMP) entity;
|
||||
|
||||
player.setPositionAndUpdate(x + 0.5, y + 0.5, z + 0.5);
|
||||
player.worldObj.updateEntityWithOptionalForce(player, false);
|
||||
player.playerNetServerHandler.sendPacket(new S06PacketUpdateHealth(player.getHealth(), player.getFoodStats().getFoodLevel(), player.getFoodStats().getSaturationLevel()));
|
||||
player.timeUntilPortal = 150;
|
||||
|
||||
SoulNetwork network = NetworkHelper.getSoulNetwork(networkToDrain);
|
||||
if (network.getCurrentEssence() < getTeleportCost())
|
||||
{
|
||||
|
@ -55,15 +48,16 @@ public class Teleports
|
|||
}
|
||||
network.syphon(getTeleportCost());
|
||||
|
||||
EntityPlayerMP player = (EntityPlayerMP) entity;
|
||||
|
||||
player.setPositionAndUpdate(x + 0.5, y + 0.5, z + 0.5);
|
||||
player.worldObj.updateEntityWithOptionalForce(player, false);
|
||||
player.playerNetServerHandler.sendPacket(new S06PacketUpdateHealth(player.getHealth(), player.getFoodStats().getFoodLevel(), player.getFoodStats().getSaturationLevel()));
|
||||
player.timeUntilPortal = 150;
|
||||
|
||||
player.worldObj.playSoundEffect(x, y, z, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
} else
|
||||
{
|
||||
WorldServer world = (WorldServer) entity.worldObj;
|
||||
|
||||
entity.setPosition(x + 0.5, y + 0.5, z + 0.5);
|
||||
entity.timeUntilPortal = 150;
|
||||
world.resetUpdateEntityTick();
|
||||
|
||||
SoulNetwork network = NetworkHelper.getSoulNetwork(networkToDrain);
|
||||
if (network.getCurrentEssence() < (getTeleportCost() / 10))
|
||||
{
|
||||
|
@ -71,6 +65,12 @@ public class Teleports
|
|||
}
|
||||
network.syphon(getTeleportCost() / 10);
|
||||
|
||||
WorldServer world = (WorldServer) entity.worldObj;
|
||||
|
||||
entity.setPosition(x + 0.5, y + 0.5, z + 0.5);
|
||||
entity.timeUntilPortal = 150;
|
||||
world.resetUpdateEntityTick();
|
||||
|
||||
entity.worldObj.playSoundEffect(x, y, z, "mob.endermen.portal", 1.0F, 1.0F);
|
||||
}
|
||||
}
|
||||
|
@ -122,20 +122,28 @@ public class Teleports
|
|||
|
||||
if (!player.worldObj.isRemote)
|
||||
{
|
||||
SoulNetwork network = NetworkHelper.getSoulNetwork(networkToDrain);
|
||||
if (network.getCurrentEssence() < getTeleportCost())
|
||||
{
|
||||
return;
|
||||
}
|
||||
network.syphon(getTeleportCost());
|
||||
|
||||
server.getConfigurationManager().transferPlayerToDimension(player, newWorldID, new TeleporterBloodMagic(newWorldServer));
|
||||
player.setPositionAndUpdate(x + 0.5, y + 0.5, z + 0.5);
|
||||
player.worldObj.updateEntityWithOptionalForce(player, false);
|
||||
player.playerNetServerHandler.sendPacket(new S06PacketUpdateHealth(player.getHealth(), player.getFoodStats().getFoodLevel(), player.getFoodStats().getSaturationLevel()));
|
||||
}
|
||||
|
||||
} else if (!entity.worldObj.isRemote)
|
||||
{
|
||||
SoulNetwork network = NetworkHelper.getSoulNetwork(networkToDrain);
|
||||
if (network.getCurrentEssence() < getTeleportCost())
|
||||
if (network.getCurrentEssence() < (getTeleportCost() / 10))
|
||||
{
|
||||
return;
|
||||
}
|
||||
network.syphon(getTeleportCost());
|
||||
} else if (!entity.worldObj.isRemote)
|
||||
{
|
||||
network.syphon(getTeleportCost() / 10);
|
||||
|
||||
NBTTagCompound tag = new NBTTagCompound();
|
||||
|
||||
entity.writeToNBTOptional(tag);
|
||||
|
@ -154,13 +162,6 @@ public class Teleports
|
|||
|
||||
oldWorldServer.resetUpdateEntityTick();
|
||||
newWorldServer.resetUpdateEntityTick();
|
||||
|
||||
SoulNetwork network = NetworkHelper.getSoulNetwork(networkToDrain);
|
||||
if (network.getCurrentEssence() < (getTeleportCost() / 10))
|
||||
{
|
||||
return;
|
||||
}
|
||||
network.syphon(getTeleportCost() / 10);
|
||||
}
|
||||
entity.timeUntilPortal = 150;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue