Операция по модулю не даст отрицательных чисел - PullRequest
0 голосов
/ 28 мая 2018

У меня есть маленький метод в Java для вычисления координат.Но если один из coodinates отрицательный, я получаю только 0 вместо отрицательного числа.

private static void highlightIslandBorders(Location loc) {
        World world = loc.getWorld();

        int sx = loc.getBlockX();
        sx -= sx % islandSize;

        int sz = loc.getBlockZ();
        sz -= sz % islandSize;

        if ((sx < 0) || (sz < 0)) {
            return;
        }

        int ex = sx + islandSize - 1;
        int ez = sz + islandSize - 1;

        int y = loc.getBlockY() - 1;

        Material cornerMat = Material.GLOWSTONE;
        world.getBlockAt(sx, y, sz).setType(cornerMat);
        world.getBlockAt(ex, y, sz).setType(cornerMat);
        world.getBlockAt(sx, y, ez).setType(cornerMat);
        world.getBlockAt(ex, y, ez).setType(cornerMat);
    }

1 Ответ

0 голосов
/ 28 мая 2018

Где именно вы получаете 0?

int islandSize = 3;
int sx = -100;

System.out.println("Mod: " + (sx % islandSize));

sx -= sx % islandSize;
System.out.println("sx: " + sx);

Результаты в

Мод: -1
sx: -99

...