• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

CyclopsMC / IntegratedDynamics / 20210191346

14 Dec 2025 03:32PM UTC coverage: 19.514% (-33.5%) from 53.061%
20210191346

push

github

rubensworks
Remove deprecations

663 of 8728 branches covered (7.6%)

Branch coverage included in aggregate %.

6786 of 29445 relevant lines covered (23.05%)

1.09 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

3.28
/src/main/java/org/cyclops/integrateddynamics/core/block/BlockWithEntityGuiCabled.java
1
package org.cyclops.integrateddynamics.core.block;
2

3
import net.minecraft.core.BlockPos;
4
import net.minecraft.server.level.ServerLevel;
5
import net.minecraft.world.InteractionHand;
6
import net.minecraft.world.InteractionResult;
7
import net.minecraft.world.entity.LivingEntity;
8
import net.minecraft.world.entity.player.Player;
9
import net.minecraft.world.item.ItemStack;
10
import net.minecraft.world.level.Explosion;
11
import net.minecraft.world.level.Level;
12
import net.minecraft.world.level.LevelAccessor;
13
import net.minecraft.world.level.LevelReader;
14
import net.minecraft.world.level.block.Block;
15
import net.minecraft.world.level.block.state.BlockState;
16
import net.minecraft.world.level.redstone.Orientation;
17
import net.minecraft.world.phys.BlockHitResult;
18
import org.cyclops.cyclopscore.block.BlockWithEntityGui;
19
import org.cyclops.cyclopscore.blockentity.CyclopsBlockEntity;
20
import org.cyclops.integrateddynamics.core.helper.CableHelpers;
21
import org.cyclops.integrateddynamics.core.helper.NetworkHelpers;
22
import org.cyclops.integrateddynamics.core.helper.WrenchHelpers;
23
import org.jetbrains.annotations.Nullable;
24

25
import java.util.function.BiFunction;
26

27
/**
28
 * A base block with a gui and part entity that can connect to cables.
29
 * @author rubensworks
30
 */
31
public abstract class BlockWithEntityGuiCabled extends BlockWithEntityGui {
32

33
    public BlockWithEntityGuiCabled(Properties properties, BiFunction<BlockPos, BlockState, CyclopsBlockEntity> blockEntitySupplier) {
34
        super(properties, blockEntitySupplier);
4✔
35
    }
1✔
36

37
    @Override
38
    public InteractionResult useItemOn(ItemStack pStack, BlockState blockState, Level world, BlockPos blockPos, Player player, InteractionHand pHand, BlockHitResult rayTraceResult) {
39
        ItemStack heldItem = player.getItemInHand(player.getUsedItemHand());
×
40
        if (WrenchHelpers.isWrench(player, heldItem, world, blockPos, rayTraceResult.getDirection())
×
41
                && player.isSecondaryUseActive()) {
×
42
            if (!world.isClientSide()) {
×
43
                Block.dropResources(blockState, world, blockPos, blockState.hasBlockEntity() ? world.getBlockEntity(blockPos) : null, player, heldItem);
×
44
                world.destroyBlock(blockPos, false);
×
45
            }
46
            return InteractionResult.SUCCESS;
×
47
        }
48
        return super.useItemOn(pStack, blockState, world, blockPos, player, pHand, rayTraceResult);
×
49
    }
50

51
    @Override
52
    public void onPlace(BlockState blockState, Level world, BlockPos blockPos, BlockState oldState, boolean isMoving) {
53
        super.onPlace(blockState, world, blockPos, oldState, isMoving);
×
54
        if (!world.isClientSide()) {
×
55
            CableHelpers.onCableAdded(world, blockPos);
×
56
        }
57
    }
×
58

59
    @Override
60
    public void setPlacedBy(Level world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) {
61
        super.setPlacedBy(world, pos, state, placer, itemStack);
×
62
        if (!world.isClientSide()) {
×
63
            CableHelpers.onCableAddedByPlayer(world, pos, placer);
×
64
        }
65
    }
×
66

67
    @Override
68
    public void destroy(LevelAccessor world, BlockPos blockPos, BlockState blockState) {
69
        CableHelpers.onCableRemoving((Level) world, blockPos, true, false, blockState, world.getBlockEntity(blockPos));
×
70
        super.destroy(world, blockPos, blockState);
×
71
        CableHelpers.onCableRemoved((Level) world, blockPos);
×
72
    }
×
73

74
    @Override
75
    public void onBlockExploded(BlockState state, ServerLevel world, BlockPos blockPos, Explosion explosion) {
76
        CableHelpers.setRemovingCable(true);
×
77
        CableHelpers.onCableRemoving(world, blockPos, true, false, state, world.getBlockEntity(blockPos));
×
78
        super.onBlockExploded(state, world, blockPos, explosion);
×
79
        CableHelpers.onCableRemoved(world, blockPos);
×
80
        CableHelpers.setRemovingCable(false);
×
81
    }
×
82

83
    @Override
84
    protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block neighborBlock, @Nullable Orientation orientation, boolean movedByPiston) {
85
        super.neighborChanged(state, level, pos, neighborBlock, orientation, movedByPiston);
×
86
        NetworkHelpers.onElementProviderBlockNeighborChange(level, pos, null);
×
87
    }
×
88

89
    @Override
90
    public void onNeighborChange(BlockState state, LevelReader world, BlockPos pos, BlockPos neighbor) {
91
        super.onNeighborChange(state, world, pos, neighbor);
×
92
        if (world instanceof Level) {
×
93
            NetworkHelpers.onElementProviderBlockNeighborChange((Level) world, pos, null);
×
94
        }
95
    }
×
96

97
    @Override
98
    protected void affectNeighborsAfterRemoval(BlockState state, ServerLevel level, BlockPos pos, boolean movedByPiston) {
99
        super.affectNeighborsAfterRemoval(state, level, pos, movedByPiston);
×
100

101
        if (!CableHelpers.isRemovingCable()) {
×
102
            CableHelpers.onCableRemoved(level, pos);
×
103
        }
104
    }
×
105

106
    protected boolean isPickBlockPersistData() {
107
        return false;
×
108
    }
109

110
    @Override
111
    public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData, Player player) {
112
        if (isPickBlockPersistData()) {
×
113
            return super.getCloneItemStack(level, pos, state, includeData, player);
×
114
        } else {
115
            return getCloneItemStack(level, pos, state, false);
×
116
        }
117
    }
118
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc