• 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.13
/src/main/java/org/cyclops/integrateddynamics/part/aspect/write/redstone/WriteRedstoneComponent.java
1
package org.cyclops.integrateddynamics.part.aspect.write.redstone;
2

3
import net.minecraft.core.Direction;
4
import org.cyclops.cyclopscore.datastructure.DimPos;
5
import org.cyclops.cyclopscore.helper.IModHelpersNeoForge;
6
import org.cyclops.integrateddynamics.Capabilities;
7
import org.cyclops.integrateddynamics.api.block.IDynamicRedstone;
8
import org.cyclops.integrateddynamics.api.part.PartTarget;
9
import org.cyclops.integrateddynamics.capability.dynamicredstone.DynamicRedstoneHolderGlobal;
10

11
import java.util.Optional;
12

13
/**
14
 * Default component for writing redstone levels.
15
 * @author rubensworks
16
 */
17
public class WriteRedstoneComponent implements IWriteRedstoneComponent {
3✔
18

19
    public IDynamicRedstone getGlobalDynamicRedstone(PartTarget target) {
20
        DimPos dimPos = target.getTarget().getPos();
×
21
        Direction side = target.getTarget().getSide();
×
22
        // We offset one block in the opposite direction of the target side, so that we output the redstone towards the target position
23
        return DynamicRedstoneHolderGlobal.getInstance().getDynamicRedstone(dimPos.withPosition(dimPos.getBlockPos().relative(side)), side);
×
24
    }
25

26
    @Override
27
    public void setRedstoneLevel(PartTarget target, int level, boolean strongPower) {
28
        if (target.isDefaultTarget()) {
×
29
            DimPos dimPos = target.getCenter().getPos();
×
30
            getDynamicRedstoneBlock(dimPos, target.getCenter().getSide())
×
31
                    .ifPresent(block -> block.setRedstoneLevel(level, strongPower));
×
32
        } else {
×
33
            getGlobalDynamicRedstone(target).setRedstoneLevel(level, strongPower);
×
34
        }
35
    }
×
36

37
    @Override
38
    public void setLastPulseValue(PartTarget target, int value) {
39
        DimPos dimPos = target.getCenter().getPos();
×
40
        getDynamicRedstoneBlock(dimPos, target.getCenter().getSide())
×
41
                .ifPresent(block -> block.setLastPulseValue(value));
×
42
    }
×
43

44
    @Override
45
    public int getLastPulseValue(PartTarget target) {
46
        DimPos dimPos = target.getCenter().getPos();
×
47
        return getDynamicRedstoneBlock(dimPos, target.getCenter().getSide())
×
48
                .map(block -> block.getLastPulseValue())
×
49
                .orElse(0);
×
50
    }
51

52
    @Override
53
    public void deactivate(PartTarget target) {
54
        if (target.isDefaultTarget()) {
×
55
            DimPos dimPos = target.getCenter().getPos();
×
56
            getDynamicRedstoneBlock(dimPos, target.getCenter().getSide())
×
57
                    .ifPresent(block -> block.setRedstoneLevel(-1, block.isDirect()));
×
58
        } else {
×
59
            IDynamicRedstone block = getGlobalDynamicRedstone(target);
×
60
            block.setRedstoneLevel(-1, block.isDirect());
×
61
        }
62
    }
×
63

64
    @Override
65
    public Optional<IDynamicRedstone> getDynamicRedstoneBlock(DimPos dimPos, Direction side) {
66
        return IModHelpersNeoForge.get().getCapabilityHelpers().getCapability(dimPos, side, Capabilities.DynamicRedstone.BLOCK);
×
67
    }
68
}
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