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

CyclopsMC / IntegratedDynamics / 14560624137

20 Apr 2025 02:54PM UTC coverage: 45.387% (+6.3%) from 39.062%
14560624137

push

github

rubensworks
Fix failing CI build

2549 of 8393 branches covered (30.37%)

Branch coverage included in aggregate %.

11778 of 23173 relevant lines covered (50.83%)

2.42 hits per line

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

67.57
/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.core.Direction;
5
import net.minecraft.server.level.ServerLevel;
6
import net.minecraft.world.InteractionHand;
7
import net.minecraft.world.InteractionResult;
8
import net.minecraft.world.entity.LivingEntity;
9
import net.minecraft.world.entity.player.Player;
10
import net.minecraft.world.item.ItemStack;
11
import net.minecraft.world.level.Explosion;
12
import net.minecraft.world.level.Level;
13
import net.minecraft.world.level.LevelAccessor;
14
import net.minecraft.world.level.LevelReader;
15
import net.minecraft.world.level.block.Block;
16
import net.minecraft.world.level.block.state.BlockState;
17
import net.minecraft.world.level.redstone.Orientation;
18
import net.minecraft.world.phys.BlockHitResult;
19
import org.cyclops.cyclopscore.block.BlockWithEntityGui;
20
import org.cyclops.cyclopscore.blockentity.CyclopsBlockEntity;
21
import org.cyclops.cyclopscore.helper.IModHelpers;
22
import org.cyclops.integrateddynamics.core.blockentity.BlockEntityCableConnectableInventory;
23
import org.cyclops.integrateddynamics.core.helper.CableHelpers;
24
import org.cyclops.integrateddynamics.core.helper.NetworkHelpers;
25
import org.cyclops.integrateddynamics.core.helper.WrenchHelpers;
26
import org.jetbrains.annotations.Nullable;
27

28
import java.util.Collection;
29
import java.util.function.BiFunction;
30

31
/**
32
 * A base block with a gui and part entity that can connect to cables.
33
 * @author rubensworks
34
 */
35
public abstract class BlockWithEntityGuiCabled extends BlockWithEntityGui {
36

37
    public BlockWithEntityGuiCabled(Properties properties, BiFunction<BlockPos, BlockState, CyclopsBlockEntity> blockEntitySupplier) {
38
        super(properties, blockEntitySupplier);
4✔
39
    }
1✔
40

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

55
    @Override
56
    public void onPlace(BlockState blockState, Level world, BlockPos blockPos, BlockState oldState, boolean isMoving) {
57
        super.onPlace(blockState, world, blockPos, oldState, isMoving);
7✔
58
        if (!world.isClientSide()) {
3!
59
            CableHelpers.onCableAdded(world, blockPos);
3✔
60
        }
61
    }
1✔
62

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

71
    @Override
72
    public void destroy(LevelAccessor world, BlockPos blockPos, BlockState blockState) {
73
        CableHelpers.onCableRemoving((Level) world, blockPos, true, false, blockState);
×
74
        Collection<Direction> connectedCables = CableHelpers.getExternallyConnectedCables((Level) world, blockPos);
×
75
        super.destroy(world, blockPos, blockState);
×
76
        CableHelpers.onCableRemoved((Level) world, blockPos, connectedCables);
×
77
    }
×
78

79
    @Override
80
    public void onBlockExploded(BlockState state, ServerLevel world, BlockPos blockPos, Explosion explosion) {
81
        CableHelpers.setRemovingCable(true);
2✔
82
        CableHelpers.onCableRemoving(world, blockPos, true, false, state);
7✔
83
        Collection<Direction> connectedCables = CableHelpers.getExternallyConnectedCables(world, blockPos);
4✔
84
        super.onBlockExploded(state, world, blockPos, explosion);
6✔
85
        CableHelpers.onCableRemoved(world, blockPos, connectedCables);
5✔
86
        CableHelpers.setRemovingCable(false);
2✔
87
    }
1✔
88

89
    @Override
90
    protected void neighborChanged(BlockState state, Level level, BlockPos pos, Block neighborBlock, @Nullable Orientation orientation, boolean movedByPiston) {
91
        super.neighborChanged(state, level, pos, neighborBlock, orientation, movedByPiston);
8✔
92
        NetworkHelpers.onElementProviderBlockNeighborChange(level, pos, null);
4✔
93
    }
1✔
94

95
    @Override
96
    public void onNeighborChange(BlockState state, LevelReader world, BlockPos pos, BlockPos neighbor) {
97
        super.onNeighborChange(state, world, pos, neighbor);
6✔
98
        if (world instanceof Level) {
3!
99
            NetworkHelpers.onElementProviderBlockNeighborChange((Level) world, pos, null);
5✔
100
        }
101
    }
1✔
102

103
    @Override
104
    public void onRemove(BlockState oldState, Level world, BlockPos blockPos, BlockState newState, boolean isMoving) {
105
        if (oldState.getBlock() != newState.getBlock()) {
5✔
106
            IModHelpers.get().getBlockEntityHelpers().get(world, blockPos, BlockEntityCableConnectableInventory.class)
9✔
107
                    .ifPresent(tile -> IModHelpers.get().getInventoryHelpers().dropItems(world, tile.getInventory(), blockPos));
9✔
108
            Collection<Direction> connectedCables = null;
2✔
109
            if (!CableHelpers.isRemovingCable()) {
2✔
110
                CableHelpers.onCableRemoving(world, blockPos, true, false, oldState);
7✔
111
                connectedCables = CableHelpers.getExternallyConnectedCables(world, blockPos);
4✔
112
            }
113
            super.onRemove(oldState, world, blockPos, newState, isMoving);
7✔
114
            if (!CableHelpers.isRemovingCable()) {
2✔
115
                CableHelpers.onCableRemoved(world, blockPos, connectedCables);
5✔
116
            }
117
        }
118
    }
1✔
119

120
    protected boolean isPickBlockPersistData() {
121
        return false;
×
122
    }
123

124
    @Override
125
    public ItemStack getCloneItemStack(LevelReader level, BlockPos pos, BlockState state, boolean includeData, Player player) {
126
        if (isPickBlockPersistData()) {
×
127
            return super.getCloneItemStack(level, pos, state, includeData, player);
×
128
        } else {
129
            return getCloneItemStack(level, pos, state, false);
×
130
        }
131
    }
132
}
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