• 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/capability/variablecontainer/VariableContainerDefault.java
1
package org.cyclops.integrateddynamics.capability.variablecontainer;
2

3
import com.google.common.collect.Maps;
4
import net.minecraft.world.Container;
5
import net.minecraft.world.item.ItemStack;
6
import org.cyclops.integrateddynamics.RegistryEntries;
7
import org.cyclops.integrateddynamics.api.block.IVariableContainer;
8
import org.cyclops.integrateddynamics.api.evaluate.variable.IVariable;
9
import org.cyclops.integrateddynamics.api.evaluate.variable.ValueDeseralizationContext;
10
import org.cyclops.integrateddynamics.api.item.IVariableFacade;
11
import org.cyclops.integrateddynamics.api.network.INetwork;
12
import org.cyclops.integrateddynamics.core.helper.NetworkHelpers;
13
import org.cyclops.integrateddynamics.core.network.event.VariableContentsUpdatedEvent;
14

15
import java.util.Map;
16

17
/**
18
 * Default implementation of {@link IVariableContainer}.
19
 * @author rubensworks
20
 */
21
public class VariableContainerDefault implements IVariableContainer {
×
22

23
    private final Map<Integer, IVariableFacade> variableCache = Maps.newHashMap();
×
24

25
    @Override
26
    public Map<Integer, IVariableFacade> getVariableCache() {
27
        return this.variableCache;
×
28
    }
29

30
    @Override
31
    public void refreshVariables(INetwork network, Container inventory, boolean sendVariablesUpdateEvent, ValueDeseralizationContext valueDeseralizationContext){
32
        // Invalidate variables
33
        NetworkHelpers.getPartNetwork(network).ifPresent(partNetwork -> {
×
34
            for (IVariableFacade variableFacade : getVariableCache().values()) {
×
35
                IVariable<?> variable = variableFacade.getVariable(network, partNetwork);
×
36
                if (variable != null) {
×
37
                    variable.invalidate();
×
38
                }
39
            }
×
40
        });
×
41

42
        // Reset variable facades in inventory
43
        getVariableCache().clear();
×
44
        IVariableFacade firstInvalidVariableFacade = null;
×
45
        for (int i = 0; i < inventory.getContainerSize(); i++) {
×
46
            ItemStack itemStack = inventory.getItem(i);
×
47
            if (!itemStack.isEmpty()) {
×
48
                IVariableFacade variableFacade = RegistryEntries.ITEM_VARIABLE.get().getVariableFacade(valueDeseralizationContext, itemStack);
×
49
                if (variableFacade != null) {
×
50
                    if (variableFacade.isValid()) {
×
51
                        getVariableCache().put(variableFacade.getId(), variableFacade);
×
52
                    } else if (firstInvalidVariableFacade == null) {
×
53
                        firstInvalidVariableFacade = variableFacade;
×
54
                    }
55
                }
56
            }
57
        }
58

59
        // If no valid variables were present, fallback to the first invalid variable facade.
60
        // This is for example to make sure that empty variables are resolved to true.
61
        if (getVariableCache().isEmpty() && firstInvalidVariableFacade != null) {
×
62
            getVariableCache().put(firstInvalidVariableFacade.getId(), firstInvalidVariableFacade);
×
63
        }
64

65
        // Trigger event in network
66
        if (sendVariablesUpdateEvent) {
×
67
            if (network != null) {
×
68
                network.getEventBus().post(new VariableContentsUpdatedEvent(network));
×
69
            }
70
        }
71
    }
×
72
}
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