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;