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

CyclopsMC / IntegratedDynamics / 13203528759

07 Feb 2025 04:03PM UTC coverage: 38.589% (+0.007%) from 38.582%
13203528759

push

github

rubensworks
Fix cable model updating neighbours from wrong thread

Closs #1465

1948 of 8359 branches covered (23.3%)

Branch coverage included in aggregate %.

10108 of 22883 relevant lines covered (44.17%)

2.07 hits per line

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

89.09
/src/main/java/org/cyclops/integrateddynamics/capability/cable/CableDefault.java
1
package org.cyclops.integrateddynamics.capability.cable;
2

3
import net.minecraft.core.BlockPos;
4
import net.minecraft.core.Direction;
5
import net.minecraft.world.item.ItemStack;
6
import net.minecraft.world.level.Level;
7
import org.cyclops.cyclopscore.datastructure.EnumFacingMap;
8
import org.cyclops.integrateddynamics.RegistryEntries;
9
import org.cyclops.integrateddynamics.api.block.cable.ICable;
10
import org.cyclops.integrateddynamics.core.helper.CableHelpers;
11

12
/**
13
 * Default implementation of {@link ICable}.
14
 * @author rubensworks
15
 */
16
public abstract class CableDefault implements ICable {
3✔
17

18
    protected abstract boolean isForceDisconnectable();
19
    protected abstract EnumFacingMap<Boolean> getForceDisconnected();
20
    protected abstract EnumFacingMap<Boolean> getConnected();
21
    protected abstract void setChanged();
22
    protected abstract void sendUpdate();
23
    protected abstract Level getLevel();
24
    protected abstract BlockPos getPos();
25

26
    protected boolean isForceDisconnected(Direction side) {
27
        if (!isForceDisconnectable()) return false;
5✔
28
        if (!getForceDisconnected().containsKey(side)) return false;
7✔
29
        return getForceDisconnected().get(side);
7✔
30
    }
31

32
    @Override
33
    public boolean canConnect(ICable connector, Direction side) {
34
        return !isForceDisconnected(side);
8✔
35
    }
36

37
    @Override
38
    public void updateConnections(boolean setChanged) {
39
        Level world = getLevel();
3✔
40
        for (Direction side : Direction.values()) {
16✔
41
            boolean cableConnected = CableHelpers.canCableConnectTo(world, getPos(), side, this);
7✔
42
            getConnected().put(side, cableConnected);
7✔
43

44
            // Remove any already existing force-disconnects for this side.
45
            if (!cableConnected && isForceDisconnectable() && this.canConnect(this, side)) {
10✔
46
                getForceDisconnected().put(side, false);
7✔
47
            }
48
        }
49
        if (setChanged) {
2!
50
            setChanged();
2✔
51
            sendUpdate();
2✔
52
        }
53
    }
1✔
54

55
    @Override
56
    public boolean isConnected(Direction side) {
57
        if(getPos() == null) {
3!
58
            return false;
×
59
        }
60
        if(getConnected().isEmpty()) {
4✔
61
            updateConnections();
2✔
62
        }
63
        return getConnected().containsKey(side) && getConnected().get(side);
16!
64
    }
65

66
    @Override
67
    public void disconnect(Direction side) {
68
        if (isForceDisconnectable()) {
3!
69
            getForceDisconnected().put(side, true);
7✔
70
        }
71
    }
1✔
72

73
    @Override
74
    public void reconnect(Direction side) {
75
        if (isForceDisconnectable()) {
3!
76
            getForceDisconnected().remove(side);
5✔
77
        }
78
    }
1✔
79

80
    @Override
81
    public ItemStack getItemStack() {
82
        return new ItemStack(RegistryEntries.BLOCK_CABLE.get());
7✔
83
    }
84

85
}
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