/* * This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion * Copyright (C) 2016-2023 ViaVersion and contributors * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ package com.viaversion.viaversion.api.minecraft; public class Position { protected final int x; protected final int y; protected final int z; public Position(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } @Deprecated/*(forRemoval=true)*/ public Position(int x, short y, int z) { this(x, (int) y, z); } @Deprecated/*(forRemoval=true)*/ public Position(Position toCopy) { this(toCopy.x(), toCopy.y(), toCopy.z()); } public Position getRelative(BlockFace face) { return new Position(x + face.modX(), (short) (y + face.modY()), z + face.modZ()); } public int x() { return x; } public int y() { return y; } public int z() { return z; } public GlobalPosition withDimension(String dimension) { return new GlobalPosition(dimension, x, y, z); } @Deprecated/*(forRemoval=true)*/ public int getX() { return x; } @Deprecated/*(forRemoval=true)*/ public int getY() { return y; } @Deprecated/*(forRemoval=true)*/ public int getZ() { return z; } @Override public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Position position = (Position) o; if (x != position.x) return false; if (y != position.y) return false; return z == position.z; } @Override public int hashCode() { int result = x; result = 31 * result + y; result = 31 * result + z; return result; } @Override public String toString() { return "Position{" + "x=" + x + ", y=" + y + ", z=" + z + '}'; } }