Minor simplification of PartPlacement.

This commit is contained in:
Sebastian Hartte
2020-07-02 01:09:17 +02:00
parent 0f11c1e0a4
commit a1042384e3
+9 -11
View File
@@ -225,24 +225,22 @@ public class PartPlacement {
host = (IPartHost) tile;
}
final Optional<ItemStack> maybeMultiPartStack = multiPart.maybeStack(1);
final Optional<Block> maybeMultiPartBlock = multiPart.maybeBlock();
final Optional<BlockItem> 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);