diff --git a/src/main/java/com/simibubi/create/content/contraptions/base/KineticBlock.java b/src/main/java/com/simibubi/create/content/contraptions/base/KineticBlock.java index 864737fae..01e8db956 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/base/KineticBlock.java +++ b/src/main/java/com/simibubi/create/content/contraptions/base/KineticBlock.java @@ -78,6 +78,8 @@ public abstract class KineticBlock extends Block implements IRotate { } protected boolean areStatesKineticallyEquivalent(BlockState oldState, BlockState newState) { + if (oldState.getBlock() != newState.getBlock()) + return false; return getRotationAxis(newState) == getRotationAxis(oldState); } diff --git a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipe.java index cf78dce9c..9d854412a 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/itemAssembly/SequencedAssemblyRecipe.java @@ -209,6 +209,11 @@ public class SequencedAssemblyRecipe implements IRecipe { return serializer; } + @Override + public boolean isDynamic() { + return true; + } + @Override public IRecipeType getType() { return AllRecipeTypes.SEQUENCED_ASSEMBLY.getType(); diff --git a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java index e3fc4095f..00317d125 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java +++ b/src/main/java/com/simibubi/create/content/contraptions/processing/ProcessingRecipe.java @@ -2,7 +2,6 @@ package com.simibubi.create.content.contraptions.processing; import java.util.ArrayList; import java.util.List; -import java.util.Optional; import java.util.function.Supplier; import java.util.stream.Collectors; diff --git a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java index 1df40f3b8..442431fa5 100644 --- a/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java +++ b/src/main/java/com/simibubi/create/content/contraptions/relays/belt/item/BeltConnectorItem.java @@ -138,9 +138,9 @@ public class BeltConnectorItem extends BlockItem { part = BeltPart.PULLEY; if (pulley && shaftState.get(AbstractShaftBlock.AXIS) == Axis.Y) slope = BeltSlope.SIDEWAYS; - world.setBlockState(pos, beltBlock.with(BeltBlock.SLOPE, slope) + KineticTileEntity.switchToBlockState(world, pos, beltBlock.with(BeltBlock.SLOPE, slope) .with(BeltBlock.PART, part) - .with(BeltBlock.HORIZONTAL_FACING, facing), 3); + .with(BeltBlock.HORIZONTAL_FACING, facing)); } } diff --git a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java index e99dfe741..0cf06c2f8 100644 --- a/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java +++ b/src/main/java/com/simibubi/create/content/logistics/block/depot/EjectorTileEntity.java @@ -19,6 +19,7 @@ import com.simibubi.create.foundation.tileEntity.behaviour.belt.DirectBeltInputB import com.simibubi.create.foundation.tileEntity.behaviour.scrollvalue.ScrollValueBehaviour; import com.simibubi.create.foundation.utility.AngleHelper; import com.simibubi.create.foundation.utility.IntAttached; +import com.simibubi.create.foundation.utility.Iterate; import com.simibubi.create.foundation.utility.Lang; import com.simibubi.create.foundation.utility.MatrixStacker; import com.simibubi.create.foundation.utility.NBTHelper; @@ -28,6 +29,7 @@ import com.simibubi.create.foundation.utility.animation.LerpedFloat; import com.simibubi.create.foundation.utility.animation.LerpedFloat.Chaser; import net.minecraft.block.BlockState; +import net.minecraft.block.ObserverBlock; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.item.ItemEntity; @@ -224,7 +226,14 @@ public class EjectorTileEntity extends KineticTileEntity { } if (!world.isRemote) - world.markAndNotifyBlock(pos, world.getChunkAt(pos), getBlockState(), getBlockState(), 0, 512); + for (Direction d : Iterate.directions) { + BlockState blockState = world.getBlockState(pos.offset(d)); + if (!(blockState.getBlock() instanceof ObserverBlock)) + continue; + if (blockState.get(ObserverBlock.FACING) != d.getOpposite()) + continue; + blockState.updatePostPlacement(d.getOpposite(), blockState, world, pos.offset(d), pos); + } if (depotBehaviour.heldItem != null) { addToLaunchedItems(heldItemStack);