From 19f781af31f1338a5d328f0a488185829ed768a0 Mon Sep 17 00:00:00 2001 From: dfsek Date: Sun, 7 Feb 2021 00:52:18 -0700 Subject: [PATCH] fix Directional rotations --- .../dfsek/terra/world/population/items/flora/TerraFlora.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/com/dfsek/terra/world/population/items/flora/TerraFlora.java b/common/src/main/java/com/dfsek/terra/world/population/items/flora/TerraFlora.java index f3875fac8..4bb60eae1 100644 --- a/common/src/main/java/com/dfsek/terra/world/population/items/flora/TerraFlora.java +++ b/common/src/main/java/com/dfsek/terra/world/population/items/flora/TerraFlora.java @@ -102,14 +102,14 @@ public class TerraFlora implements Flora { List faces = doRotation ? getFaces(location.clone().add(0, c, 0).getBlock()) : new GlueList<>(); if(doRotation && faces.size() == 0) return false; // Don't plant if no faces are valid. - BlockFace oneFace = doRotation ? faces.get(new FastRandom(location.getBlockX() ^ location.getBlockZ()).nextInt(faces.size())) : null; // Get random face. for(int i = 0; FastMath.abs(i) < size; i += c) { // Down if ceiling, up if floor int lvl = (FastMath.abs(i)); BlockData data = floraPalette.get((ceiling ? lvl : size - lvl - 1), location.getX(), location.getY(), location.getZ()).clone(); if(doRotation) { + BlockFace oneFace = faces.get(new FastRandom(location.getBlockX() ^ location.getBlockZ()).nextInt(faces.size())); // Get random face. if(data instanceof Directional) { - ((Directional) data).setFacing(oneFace); + ((Directional) data).setFacing(oneFace.getOppositeFace()); } else if(data instanceof MultipleFacing) { MultipleFacing o = (MultipleFacing) data; for(BlockFace face : o.getFaces()) o.setFace(face, false);