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

CyclopsMC / IntegratedDynamics / 16552051255

27 Jul 2025 01:58PM UTC coverage: 53.206% (+8.0%) from 45.161%
16552051255

push

github

rubensworks
Resolve minor TODOs

2888 of 8740 branches covered (33.04%)

Branch coverage included in aggregate %.

17341 of 29280 relevant lines covered (59.22%)

3.08 hits per line

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

0.0
/src/main/java/org/cyclops/integrateddynamics/core/logicprogrammer/ValueTypeItemStackLPElement.java
1
package org.cyclops.integrateddynamics.core.logicprogrammer;
2

3
import net.minecraft.network.chat.Component;
4
import net.minecraft.world.entity.player.Player;
5
import net.minecraft.world.item.ItemStack;
6
import org.cyclops.integrateddynamics.api.evaluate.variable.IValue;
7
import org.cyclops.integrateddynamics.api.evaluate.variable.IValueType;
8
import org.cyclops.integrateddynamics.api.logicprogrammer.IConfigRenderPattern;
9
import org.cyclops.integrateddynamics.api.logicprogrammer.ILogicProgrammerElementType;
10
import org.cyclops.integrateddynamics.core.helper.L10NValues;
11
import org.cyclops.integrateddynamics.core.logicprogrammer.client.ValueTypeItemStackLPElementClient;
12
import org.cyclops.integrateddynamics.inventory.container.ContainerLogicProgrammerBase;
13

14
/**
15
 * Element for a value type that can be derived from an {@link ItemStack}.
16
 * @author rubensworks
17
 */
18
public class ValueTypeItemStackLPElement<V extends IValue> extends ValueTypeLPElementBase<ValueTypeItemStackLPElementClient<V>> {
19

20
    private final IItemStackToValue<V> itemStackToValue;
21
    private ItemStack itemStack = ItemStack.EMPTY;
×
22

23
    public ValueTypeItemStackLPElement(IValueType valueType, IItemStackToValue<V> itemStackToValue) {
24
        super(valueType);
×
25
        this.itemStackToValue = itemStackToValue;
×
26
    }
×
27

28
    @Override
29
    public ValueTypeItemStackLPElementClient<V> constructClient() {
30
        return new ValueTypeItemStackLPElementClient<>(this);
×
31
    }
32

33
    @Override
34
    public ILogicProgrammerElementType getType() {
35
        return LogicProgrammerElementTypes.VALUETYPE;
×
36
    }
37

38
    @Override
39
    public IConfigRenderPattern getRenderPattern() {
40
        return IConfigRenderPattern.SINGLE_SLOT;
×
41
    }
42

43
    @Override
44
    public int getItemStackSizeLimit() {
45
        return ItemStack.EMPTY.getMaxStackSize();
×
46
    }
47

48
    @Override
49
    public void onInputSlotUpdated(Player player, int slotId, ItemStack itemStack) {
50
        this.itemStack = itemStack;
×
51
    }
×
52

53
    @Override
54
    public boolean canWriteElementPre() {
55
        return this.itemStackToValue.isNullable() || !this.itemStack.isEmpty();
×
56
    }
57

58
    @Override
59
    public void activate() {
60
        this.itemStack = ItemStack.EMPTY;
×
61
    }
×
62

63
    @Override
64
    public void deactivate() {
65

66
    }
×
67

68
    @Override
69
    public Component validate() {
70
        if(!this.itemStackToValue.isNullable() && this.itemStack.isEmpty()) {
×
71
            return Component.translatable(L10NValues.VALUETYPE_ERROR_INVALIDINPUTITEM);
×
72
        }
73
        return itemStackToValue.validate(itemStack);
×
74
    }
75

76
    @Override
77
    public boolean isItemValidForSlot(int slotId, ItemStack itemStack) {
78
        return true;
×
79
    }
80

81
    @Override
82
    public IValue getValue() {
83
        return this.itemStackToValue.getValue(this.itemStack);
×
84
    }
85

86
    @Override
87
    public void setValue(IValue value) {
88
        this.itemStack = this.itemStackToValue.getValueAsItemStack((V) value);
×
89
    }
×
90

91
    @Override
92
    public void setValueInContainer(ContainerLogicProgrammerBase container) {
93
        container.getTemporaryInputSlots().setItem(0, this.itemStack);
×
94
    }
×
95

96
    public static interface IItemStackToValue<V extends IValue> {
97

98
        public boolean isNullable();
99
        public Component validate(ItemStack itemStack);
100
        public V getValue(ItemStack itemStack);
101
        public ItemStack getValueAsItemStack(V value);
102

103
    }
104

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