From de817bd632053e37f3c96ccdaffe0dfa97328e83 Mon Sep 17 00:00:00 2001 From: Michael Pollind Date: Thu, 4 Oct 2018 09:42:47 -0700 Subject: [PATCH] hotfix that fixes the rotation issue with structured templates --- .../world/block/family/FreeformFamily.java | 21 ++++++++++++++++++- .../block/family/MultiConnectFamily.java | 2 +- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/engine/src/main/java/org/terasology/world/block/family/FreeformFamily.java b/engine/src/main/java/org/terasology/world/block/family/FreeformFamily.java index 3d6cf1c4f4d..8af76e7124d 100644 --- a/engine/src/main/java/org/terasology/world/block/family/FreeformFamily.java +++ b/engine/src/main/java/org/terasology/world/block/family/FreeformFamily.java @@ -37,7 +37,7 @@ */ @RegisterBlockFamily("freeform") @FreeFormSupported(true) -public class FreeformFamily extends AbstractBlockFamily { +public class FreeformFamily extends AbstractBlockFamily implements SideDefinedBlockFamily{ private static final Logger logger = LoggerFactory.getLogger(FreeformFamily.class); private Map blocks = Maps.newEnumMap(Side.class); @@ -124,4 +124,23 @@ public Iterable getBlocks() { return Arrays.asList(archetypeBlock); } + @Override + public Block getBlockForSide(Side side) { + if(archetypeBlock == null) { + return blocks.get(side); + } + return archetypeBlock; + } + + @Override + public Side getSide(Block block) { + if(archetypeBlock == null) { + for (Map.Entry sideBlockEntry : blocks.entrySet()) { + if (block == sideBlockEntry.getValue()) { + return sideBlockEntry.getKey(); + } + } + } + return archetypeBlock.getDirection(); + } } diff --git a/engine/src/main/java/org/terasology/world/block/family/MultiConnectFamily.java b/engine/src/main/java/org/terasology/world/block/family/MultiConnectFamily.java index 05f5729ac48..9b856659fa0 100644 --- a/engine/src/main/java/org/terasology/world/block/family/MultiConnectFamily.java +++ b/engine/src/main/java/org/terasology/world/block/family/MultiConnectFamily.java @@ -46,7 +46,7 @@ * - Fence */ public abstract class MultiConnectFamily extends AbstractBlockFamily implements UpdatesWithNeighboursFamily { - private static final Logger logger = LoggerFactory.getLogger(FreeformFamily.class); + private static final Logger logger = LoggerFactory.getLogger(MultiConnectFamily.class); @In protected WorldProvider worldProvider;