From 30a6868f631782c4754d1eeee05bc6c16a81948e Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 3 Nov 2023 13:28:43 +0000 Subject: [PATCH] Implement rotating and mirroring for compacted clouds --- .../block/cloud/CompactedCloudBlock.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/com/minelittlepony/unicopia/block/cloud/CompactedCloudBlock.java b/src/main/java/com/minelittlepony/unicopia/block/cloud/CompactedCloudBlock.java index ef938bb0..c7bc4507 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/cloud/CompactedCloudBlock.java +++ b/src/main/java/com/minelittlepony/unicopia/block/cloud/CompactedCloudBlock.java @@ -19,6 +19,8 @@ import net.minecraft.state.StateManager; import net.minecraft.state.property.BooleanProperty; import net.minecraft.state.property.Property; import net.minecraft.util.ActionResult; +import net.minecraft.util.BlockMirror; +import net.minecraft.util.BlockRotation; import net.minecraft.util.Hand; import net.minecraft.util.Util; import net.minecraft.util.hit.BlockHitResult; @@ -84,4 +86,27 @@ public class CompactedCloudBlock extends CloudBlock { return ActionResult.PASS; } + + @Override + public BlockState rotate(BlockState state, BlockRotation rotation) { + BlockState result = state; + for (var property : FACING_PROPERTIES.entrySet()) { + if (property.getKey().getAxis() != Direction.Axis.Y) { + result = result.with(FACING_PROPERTIES.get(rotation.rotate(property.getKey())), state.get(property.getValue())); + } + } + return result; + } + + @Override + public BlockState mirror(BlockState state, BlockMirror mirror) { + BlockState result = state; + for (var property : FACING_PROPERTIES.entrySet()) { + if (property.getKey().getAxis() != Direction.Axis.Y) { + result = result.with(FACING_PROPERTIES.get(mirror.apply(property.getKey())), state.get(property.getValue())); + } + } + return result; + } + }