• 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

0.0
/src/main/java/org/cyclops/integrateddynamics/gametest/GameTestsAspectsWriteRedstone.java
1
package org.cyclops.integrateddynamics.gametest;
2

3
import net.minecraft.core.BlockPos;
4
import net.minecraft.core.Direction;
5
import net.minecraft.gametest.framework.GameTestHelper;
6
import net.minecraft.world.item.ItemStack;
7
import net.minecraft.world.level.block.Blocks;
8
import net.minecraft.world.level.block.RedStoneWireBlock;
9
import org.cyclops.cyclopscore.gametest.GameTest;
10
import org.cyclops.integrateddynamics.RegistryEntries;
11
import org.cyclops.integrateddynamics.api.part.PartPos;
12
import org.cyclops.integrateddynamics.blockentity.BlockEntityVariablestore;
13
import org.cyclops.integrateddynamics.core.evaluate.operator.Operators;
14
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueTypeBoolean;
15
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueTypeInteger;
16
import org.cyclops.integrateddynamics.core.evaluate.variable.ValueTypes;
17
import org.cyclops.integrateddynamics.core.helper.PartHelpers;
18
import org.cyclops.integrateddynamics.core.part.PartTypes;
19
import org.cyclops.integrateddynamics.part.aspect.Aspects;
20

21
import static org.cyclops.integrateddynamics.gametest.GameTestHelpersIntegratedDynamics.*;
22

23
public class GameTestsAspectsWriteRedstone {
×
24

25
    public static final String TEMPLATE_EMPTY = "integrateddynamics:empty10";
26
    public static final BlockPos POS = BlockPos.ZERO.offset(2, 0, 2);
×
27

28
    @GameTest(template = TEMPLATE_EMPTY)
29
    public void testAspectsWriteRedstoneBooleanTrue(GameTestHelper helper) {
30
        helper.setBlock(POS.west().below(), Blocks.STONE);
×
31
        helper.setBlock(POS.west(), Blocks.REDSTONE_WIRE);
×
32
        testWriteAspectSetup(POS, helper, PartTypes.REDSTONE_WRITER, Aspects.Write.Redstone.BOOLEAN, ValueTypeBoolean.ValueBoolean.of(true));
×
33
        helper.succeedWhen(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 15));
×
34
    }
×
35

36
    @GameTest(template = TEMPLATE_EMPTY)
37
    public void testAspectsWriteRedstoneBooleanFalse(GameTestHelper helper) {
38
        helper.setBlock(POS.west().below(), Blocks.STONE);
×
39
        helper.setBlock(POS.west(), Blocks.REDSTONE_WIRE);
×
40
        testWriteAspectSetup(POS, helper, PartTypes.REDSTONE_WRITER, Aspects.Write.Redstone.BOOLEAN, ValueTypeBoolean.ValueBoolean.of(false));
×
41
        helper.succeedWhen(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 0));
×
42
    }
×
43

44
    @GameTest(template = TEMPLATE_EMPTY)
45
    public void testAspectsWriteRedstoneInteger(GameTestHelper helper) {
46
        helper.setBlock(POS.west().below(), Blocks.STONE);
×
47
        helper.setBlock(POS.west(), Blocks.REDSTONE_WIRE);
×
48
        testWriteAspectSetup(POS, helper, PartTypes.REDSTONE_WRITER, Aspects.Write.Redstone.INTEGER, ValueTypeInteger.ValueInteger.of(10));
×
49
        helper.succeedWhen(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 10));
×
50
    }
×
51

52
    @GameTest(template = TEMPLATE_EMPTY)
53
    public void testAspectsWriteRedstoneBooleanPulse(GameTestHelper helper) {
54
        helper.setBlock(POS.west().below(), Blocks.STONE);
×
55
        helper.setBlock(POS.west(), Blocks.REDSTONE_WIRE);
×
56
        helper.setBlock(POS, RegistryEntries.BLOCK_CABLE.value());
×
57
        PartHelpers.addPart(helper.getLevel(), helper.absolutePos(POS), Direction.EAST, PartTypes.REDSTONE_READER, new ItemStack(PartTypes.REDSTONE_READER.getItem()));
×
58
        testWriteAspectSetup(POS, helper, PartTypes.REDSTONE_WRITER, Aspects.Write.Redstone.BOOLEAN_PULSE, createVariableFromReader(helper.getLevel(), PartPos.of(helper.getLevel(), helper.absolutePos(POS), Direction.EAST), Aspects.Read.Redstone.BOOLEAN_CLOCK));
×
59
        helper.startSequence()
×
60
                .thenWaitUntil(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 0))
×
61
                .thenWaitUntil(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 15))
×
62
                .thenWaitUntil(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 0))
×
63
                .thenSucceed();
×
64
    }
×
65

66
    @GameTest(template = TEMPLATE_EMPTY)
67
    public void testAspectsWriteRedstoneIntegerPulse(GameTestHelper helper) {
68
        helper.setBlock(POS.west().below(), Blocks.STONE);
×
69
        helper.setBlock(POS.west(), Blocks.REDSTONE_WIRE);
×
70
        helper.setBlock(POS, RegistryEntries.BLOCK_CABLE.value());
×
71
        PartHelpers.addPart(helper.getLevel(), helper.absolutePos(POS), Direction.EAST, PartTypes.REDSTONE_READER, new ItemStack(PartTypes.REDSTONE_READER.getItem()));
×
72

73
        // Place variable store
74
        helper.setBlock(POS.north(), RegistryEntries.BLOCK_VARIABLE_STORE.get());
×
75
        BlockEntityVariablestore variableStore = helper.getBlockEntity(POS.north(), BlockEntityVariablestore.class);
×
76

77
        // Writer redstone signal from redstone reader to variable card
78
        ItemStack variableClock = createVariableFromReader(helper.getLevel(), PartPos.of(helper.getLevel(), helper.absolutePos(POS), Direction.EAST), Aspects.Read.Redstone.BOOLEAN_CLOCK);
×
79
        variableStore.getInventory().setItem(0, variableClock);
×
80

81
        // Create 1 and 0 constants
82
        ItemStack variable1 = createVariableForValue(helper.getLevel(), ValueTypes.INTEGER, ValueTypeInteger.ValueInteger.of(0));
×
83
        ItemStack variable2 = createVariableForValue(helper.getLevel(), ValueTypes.INTEGER, ValueTypeInteger.ValueInteger.of(3));
×
84
        variableStore.getInventory().setItem(1, variable1);
×
85
        variableStore.getInventory().setItem(2, variable2);
×
86

87
        // Create variable card for choice operator that switches between 0 and 1
88
        ItemStack variableChoice = createVariableForOperator(helper.getLevel(), Operators.GENERAL_CHOICE, new int[]{
×
89
                getVariableFacade(helper.getLevel(), variableClock).getId(),
×
90
                getVariableFacade(helper.getLevel(), variable1).getId(),
×
91
                getVariableFacade(helper.getLevel(), variable2).getId()
×
92
        });
93

94
        testWriteAspectSetup(POS, helper, PartTypes.REDSTONE_WRITER, Aspects.Write.Redstone.INTEGER_PULSE, variableChoice);
×
95

96
        helper.startSequence()
×
97
                .thenWaitUntil(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 0))
×
98
                .thenWaitUntil(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 15))
×
99
                .thenWaitUntil(() -> helper.assertBlockProperty(POS.west(), RedStoneWireBlock.POWER, 0))
×
100
                .thenSucceed();
×
101
    }
×
102

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