From a1042384e35d286371746f40bde41bcc60594bf3 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Thu, 2 Jul 2020 01:09:17 +0200 Subject: [PATCH] Minor simplification of PartPlacement. --- src/main/java/appeng/parts/PartPlacement.java | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/appeng/parts/PartPlacement.java b/src/main/java/appeng/parts/PartPlacement.java index c1491de02..5c0ea7edc 100644 --- a/src/main/java/appeng/parts/PartPlacement.java +++ b/src/main/java/appeng/parts/PartPlacement.java @@ -225,24 +225,22 @@ public class PartPlacement { host = (IPartHost) tile; } - final Optional maybeMultiPartStack = multiPart.maybeStack(1); - final Optional maybeMultiPartBlock = multiPart.maybeBlock(); - final Optional maybeMultiPartBlockItem = multiPart.maybeBlockItem(); + ItemStack multiPartStack = multiPart.stack(1); + Block multiPartBlock = multiPart.block(); + BlockItem multiPartBlockItem = multiPart.blockItem(); - final boolean hostIsNotPresent = host == null; - final boolean multiPartPresent = maybeMultiPartBlock.isPresent() && maybeMultiPartStack.isPresent() - && maybeMultiPartBlockItem.isPresent(); - BlockState multiPartBlockState = maybeMultiPartBlock.get().getDefaultState(); - final boolean canMultiPartBePlaced = multiPartBlockState.isValidPosition(world, te_pos); + boolean hostIsNotPresent = host == null; + BlockState multiPartBlockState = multiPartBlock.getDefaultState(); + boolean canMultiPartBePlaced = multiPartBlockState.isValidPosition(world, te_pos); // We cannot override the item stack of normal use context, so we use this hack BlockItemUseContext mpUseCtx = new BlockItemUseContext( - new DirectionalPlaceContext(world, te_pos, side, maybeMultiPartStack.get(), side)); + new DirectionalPlaceContext(world, te_pos, side, multiPartStack, side)); // FIXME: This is super-fishy and all needs to be re-checked. what does this // even do??? - if (hostIsNotPresent && multiPartPresent && canMultiPartBePlaced - && maybeMultiPartBlockItem.get().tryPlace(mpUseCtx) == ActionResultType.SUCCESS) { + if (hostIsNotPresent && canMultiPartBePlaced + && multiPartBlockItem.tryPlace(mpUseCtx).isSuccessOrConsume()) { if (!world.isRemote) { tile = world.getTileEntity(te_pos);