From 9b59483cbe787922067eb8268d61e7bfeee9e9e2 Mon Sep 17 00:00:00 2001 From: "Blue (Lukas Rieger)" Date: Fri, 15 Nov 2019 20:03:30 +0100 Subject: [PATCH] Fix doors not adapting the correct data from their other half --- .../bluemap/core/mca/extensions/DoorExtension.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/mca/extensions/DoorExtension.java b/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/mca/extensions/DoorExtension.java index 3c55d110..77322e9b 100644 --- a/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/mca/extensions/DoorExtension.java +++ b/BlueMapCore/src/main/java/de/bluecolored/bluemap/core/mca/extensions/DoorExtension.java @@ -50,7 +50,9 @@ public class DoorExtension implements BlockStateExtension { public BlockState extend(MCAWorld world, Vector3i pos, BlockState state) { BlockState otherDoor; - if (state.getProperties().get("half").equals("lower")) { + boolean isLower = state.getProperties().get("half").equals("lower"); + + if (isLower) { otherDoor = world.getBlockState(pos.add(Direction.UP.toVector())); } else { otherDoor = world.getBlockState(pos.add(Direction.DOWN.toVector())); @@ -58,7 +60,13 @@ public class DoorExtension implements BlockStateExtension { //copy all properties from the other door for (Entry prop : otherDoor.getProperties().entrySet()) { - if (!state.getProperties().containsKey(prop.getKey())) { + if ( + !state.getProperties().containsKey(prop.getKey()) || + (isLower && prop.getKey().equals("hinge")) || + (isLower && prop.getKey().equals("powered")) || + (!isLower && prop.getKey().equals("open")) || + (!isLower && prop.getKey().equals("facing")) + ) { state = state.with(prop.getKey(), prop.getValue()); } }