Implement EndGateway#getExitLocation and EndGateway#setExitLocation(Location)
By: Matthew <stteg@hotmail.com>
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package org.bukkit.craftbukkit.block;
|
||||
|
||||
import net.minecraft.server.BlockPosition;
|
||||
import net.minecraft.server.TileEntityEndGateway;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.block.EndGateway;
|
||||
@@ -8,19 +10,38 @@ import org.bukkit.craftbukkit.CraftWorld;
|
||||
|
||||
public class CraftEndGateway extends CraftBlockState implements EndGateway {
|
||||
|
||||
private TileEntityEndGateway gateway;
|
||||
private final CraftWorld world;
|
||||
private final TileEntityEndGateway gateway;
|
||||
|
||||
public CraftEndGateway(Block block) {
|
||||
super(block);
|
||||
|
||||
CraftWorld world = (CraftWorld) block.getWorld();
|
||||
world = (CraftWorld) block.getWorld();
|
||||
gateway = (TileEntityEndGateway) world.getTileEntityAt(getX(), getY(), getZ());
|
||||
}
|
||||
|
||||
public CraftEndGateway(final Material material, TileEntityEndGateway te) {
|
||||
super(material);
|
||||
world = null;
|
||||
this.gateway = te;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getExitLocation() {
|
||||
BlockPosition pos = gateway.h; // PAIL: Rename exitLocation
|
||||
return pos == null ? null : new Location(world, pos.getX(), pos.getY(), pos.getZ());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExitLocation(Location location) {
|
||||
if (location == null) {
|
||||
gateway.h = null;
|
||||
} else if (location.getWorld() != world) {
|
||||
throw new IllegalArgumentException("Cannot set exit location to different world");
|
||||
} else {
|
||||
gateway.h = new BlockPosition(location.getBlockX(), location.getBlockY(), location.getBlockZ());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean update(boolean force, boolean applyPhysics) {
|
||||
|
||||
Reference in New Issue
Block a user