Skip to content

Commit 96e678e

Browse files
authored
Support MI's SlotPositions in the MachineSlotConfiguration builder (#169)
1 parent 76c2a36 commit 96e678e

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

src/main/java/net/swedz/tesseract/neoforge/compat/mi/machine/builder/slots/MachineSlotConfiguration.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,58 @@ public Builder append(Builder other)
202202
return this;
203203
}
204204

205+
public Builder append(SlotPositions itemInputs, SlotPositions itemOutputs,
206+
SlotPositions fluidInputs, SlotPositions fluidOutputs)
207+
{
208+
for(int index = 0; index < itemInputs.size(); index++)
209+
{
210+
this.itemInput(itemInputs.getX(index), itemInputs.getY(index));
211+
}
212+
for(int index = 0; index < itemOutputs.size(); index++)
213+
{
214+
this.itemOutput(itemOutputs.getX(index), itemOutputs.getY(index));
215+
}
216+
for(int index = 0; index < fluidInputs.size(); index++)
217+
{
218+
this.fluidInput(fluidInputs.getX(index), fluidInputs.getY(index));
219+
}
220+
for(int index = 0; index < fluidOutputs.size(); index++)
221+
{
222+
this.fluidOutput(fluidOutputs.getX(index), fluidOutputs.getY(index));
223+
}
224+
return this;
225+
}
226+
227+
public Builder append(SlotPositions.Builder itemInputs, SlotPositions.Builder itemOutputs,
228+
SlotPositions.Builder fluidInputs, SlotPositions.Builder fluidOutputs)
229+
{
230+
return this.append(
231+
itemInputs.build(), itemOutputs.build(),
232+
fluidInputs.build(), fluidOutputs.build()
233+
);
234+
}
235+
236+
public Builder append(Consumer<SlotPositions.Builder> itemInputs, Consumer<SlotPositions.Builder> itemOutputs,
237+
Consumer<SlotPositions.Builder> fluidInputs, Consumer<SlotPositions.Builder> fluidOutputs)
238+
{
239+
var itemInputsBuilder = new SlotPositions.Builder();
240+
itemInputs.accept(itemInputsBuilder);
241+
242+
var itemOutputsBuilder = new SlotPositions.Builder();
243+
itemOutputs.accept(itemOutputsBuilder);
244+
245+
var fluidInputsBuilder = new SlotPositions.Builder();
246+
fluidInputs.accept(fluidInputsBuilder);
247+
248+
var fluidOutputsBuilder = new SlotPositions.Builder();
249+
fluidOutputs.accept(fluidOutputsBuilder);
250+
251+
return this.append(
252+
itemInputsBuilder, itemOutputsBuilder,
253+
fluidInputsBuilder, fluidOutputsBuilder
254+
);
255+
}
256+
205257
private Builder add(MachineSlotDefinition slot)
206258
{
207259
slots.add(slot);

0 commit comments

Comments
 (0)