diff --git a/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalDoor.java b/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalDoor.java index 211ef52a..1c4136d6 100644 --- a/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalDoor.java +++ b/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalDoor.java @@ -121,7 +121,7 @@ public abstract class BlockDimensionalDoor extends BlockDoor implements IRiftPro @Override public TileEntityEntranceRift createNewTileEntity(World world, int meta) { TileEntityEntranceRift rift = new TileEntityEntranceRift(); - rift.orientation = getStateFromMeta(meta).getValue(BlockDoor.FACING).getOpposite(); + rift.setOrientation(getStateFromMeta(meta).getValue(BlockDoor.FACING).getOpposite()); rift.extendUp += 1; return rift; } diff --git a/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalPortal.java b/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalPortal.java index be9c22f4..14e39167 100644 --- a/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalPortal.java +++ b/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalPortal.java @@ -69,7 +69,7 @@ public class BlockDimensionalPortal extends BlockDimensionalDoor { // TODO: conv @Override public TileEntityEntranceRift createNewTileEntity(World world, int meta) { TileEntityEntranceRift rift = new TileEntityEntranceRift(); - rift.orientation = getStateFromMeta(meta).getValue(BlockDoor.FACING).getOpposite(); + rift.setOrientation(getStateFromMeta(meta).getValue(BlockDoor.FACING).getOpposite()); rift.extendUp += 1; rift.pushIn = 0.5; return rift; diff --git a/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalTrapdoor.java b/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalTrapdoor.java index 6411cf24..0035e886 100644 --- a/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalTrapdoor.java +++ b/src/main/java/org/dimdev/dimdoors/shared/blocks/BlockDimensionalTrapdoor.java @@ -59,7 +59,7 @@ public abstract class BlockDimensionalTrapdoor extends BlockTrapDoor implements @Override public TileEntityEntranceRift createNewTileEntity(World world, int meta) { TileEntityEntranceRift rift = new TileEntityEntranceRift(); - rift.orientation = EnumFacing.UP; + rift.setOrientation(EnumFacing.UP); return rift; } diff --git a/src/main/java/org/dimdev/dimdoors/shared/rifts/TileEntityRift.java b/src/main/java/org/dimdev/dimdoors/shared/rifts/TileEntityRift.java index a9109819..5532985a 100644 --- a/src/main/java/org/dimdev/dimdoors/shared/rifts/TileEntityRift.java +++ b/src/main/java/org/dimdev/dimdoors/shared/rifts/TileEntityRift.java @@ -188,7 +188,7 @@ import javax.annotation.Nonnull; // Attempt a teleport try { - if (destination.teleport(new RotatedLocation(new Location(world, pos), yaw, pitch), entity)) { + if (destination.teleport(new RotatedLocation(new Location(world, pos), yaw, pitch), entity)) { // TODO: yaw should be player's yaw % 90 for floating rifts VirtualLocation vloc = VirtualLocation.fromLocation(new Location(entity.world, entity.getPosition())); DimDoors.sendTranslatedMessage(entity, "You are at x = " + vloc.getX() + ", y = ?, z = " + vloc.getZ() + ", w = " + vloc.getDepth()); return true; diff --git a/src/main/java/org/dimdev/dimdoors/shared/tileentities/TileEntityEntranceRift.java b/src/main/java/org/dimdev/dimdoors/shared/tileentities/TileEntityEntranceRift.java index 51037d4f..5e789557 100644 --- a/src/main/java/org/dimdev/dimdoors/shared/tileentities/TileEntityEntranceRift.java +++ b/src/main/java/org/dimdev/dimdoors/shared/tileentities/TileEntityEntranceRift.java @@ -59,6 +59,12 @@ import java.util.Random; public void setLockStatus(byte lockStatus) { this.lockStatus = lockStatus; markDirty(); } public void setCloseAfterPassThrough(boolean closeAfterPassThrough) { this.closeAfterPassThrough = closeAfterPassThrough; markDirty(); } + public void setOrientation(EnumFacing orientation) { + this.orientation = orientation; + yaw = orientation.getHorizontalAngle(); + pitch = orientation.getFrontOffsetY() * 90; + } + @Override public boolean teleport(Entity entity) { boolean status = super.teleport(entity); @@ -72,7 +78,8 @@ import java.util.Random; @Override public void teleportTo(Entity entity, float fromYaw, float fromPitch) { if (relativeRotation) { - TeleportUtils.teleport(entity, new Location(world, pos.offset(orientation, tpOffset)), orientation.getHorizontalAngle() + entity.rotationYaw - fromYaw, entity.rotationPitch - fromPitch); + TeleportUtils.teleport(entity, new Location(world, pos.offset(orientation, tpOffset)), orientation.getHorizontalAngle() + entity.rotationYaw - fromYaw, entity.rotationPitch); + // TODO: velocity } else { teleportTo(entity); }