37
37
import org .jetbrains .annotations .NotNull ;
38
38
import org .jetbrains .annotations .Nullable ;
39
39
40
+ /**
41
+ * A resource slot that stores items.
42
+ */
40
43
public interface ItemResourceSlot extends ResourceSlot <Item >, ContainerItemContext , FakeRecipeHolder {
41
44
@ Contract ("_ -> new" )
42
45
static @ NotNull Builder builder (InputType inputType ) {
@@ -69,7 +72,9 @@ public interface ItemResourceSlot extends ResourceSlot<Item>, ContainerItemConte
69
72
* @param resource the item type to consume
70
73
* @return {@code true} if the item was consumed, {@code false} otherwise
71
74
*/
72
- boolean consumeOne (@ NotNull Item resource );
75
+ default boolean consumeOne (@ NotNull Item resource ) {
76
+ return this .consumeOne (resource , null );
77
+ }
73
78
74
79
/**
75
80
* Consumes one item of the specified type and components from the slot.
@@ -98,7 +103,9 @@ public interface ItemResourceSlot extends ResourceSlot<Item>, ContainerItemConte
98
103
* @param amount the number of items to consume
99
104
* @return the number of items that were actually consumed
100
105
*/
101
- long consume (@ NotNull Item resource , long amount );
106
+ default long consume (@ NotNull Item resource , long amount ) {
107
+ return this .consume (resource , null , amount );
108
+ }
102
109
103
110
/**
104
111
* Consumes the specified number of items of the specified type and components from the slot.
@@ -109,7 +116,7 @@ public interface ItemResourceSlot extends ResourceSlot<Item>, ContainerItemConte
109
116
* @param amount the number of items to consume
110
117
* @return the number of items that were actually consumed
111
118
*/
112
- long consume (@ NotNull Item resource , @ NotNull DataComponentPatch components , long amount );
119
+ long consume (@ NotNull Item resource , @ Nullable DataComponentPatch components , long amount );
113
120
114
121
/**
115
122
* {@return the display properties of this slot, or {@code null} if hidden}
0 commit comments