1
1
package de .srendi .advancedperipherals .common .addons .computercraft .peripheral ;
2
2
3
+ import com .refinedmods .refinedstorage .api .autocrafting .ICraftingManager ;
3
4
import com .refinedmods .refinedstorage .api .autocrafting .ICraftingPattern ;
4
5
import com .refinedmods .refinedstorage .api .autocrafting .task .CalculationResultType ;
5
6
import com .refinedmods .refinedstorage .api .autocrafting .task .ICalculationResult ;
@@ -148,76 +149,120 @@ public final MethodResult getTotalFluidStorage() {
148
149
}
149
150
150
151
@ Override
152
+ @ LuaFunction (mainThread = true )
151
153
public MethodResult getTotalChemicalStorage () {
152
- return null ;
154
+ if (!isAvailable ())
155
+ return notConnected ();
156
+
157
+ return MethodResult .of (-1 );
153
158
}
154
159
155
160
@ Override
156
161
@ LuaFunction (mainThread = true )
157
162
public final MethodResult getUsedExternItemStorage () {
158
- return null ;
163
+ if (!isAvailable ())
164
+ return notConnected ();
165
+
166
+ return MethodResult .of (RefinedStorage .getUsedItemExternalStorage (getNetwork ()));
159
167
}
160
168
161
169
@ Override
162
170
@ LuaFunction (mainThread = true )
163
171
public final MethodResult getUsedExternFluidStorage () {
164
- return null ;
172
+ if (!isAvailable ())
173
+ return notConnected ();
174
+
175
+ return MethodResult .of (RefinedStorage .getUsedFluidExternalStorage (getNetwork ()));
165
176
}
166
177
167
178
@ Override
179
+ @ LuaFunction (mainThread = true )
168
180
public MethodResult getUsedExternChemicalStorage () {
169
- return null ;
181
+ if (!isAvailable ())
182
+ return notConnected ();
183
+
184
+ return MethodResult .of (-1 );
170
185
}
171
186
172
187
@ Override
173
188
@ LuaFunction (mainThread = true )
174
189
public final MethodResult getUsedItemStorage () {
175
- return null ;
190
+ if (!isAvailable ())
191
+ return notConnected ();
192
+
193
+ return MethodResult .of (RefinedStorage .getUsedItemDiskStorage (getNetwork ()));
176
194
}
177
195
178
196
@ Override
179
197
@ LuaFunction (mainThread = true )
180
198
public final MethodResult getUsedFluidStorage () {
181
- return null ;
199
+ if (!isAvailable ())
200
+ return notConnected ();
201
+
202
+ return MethodResult .of (RefinedStorage .getUsedFluidDiskStorage (getNetwork ()));
182
203
}
183
204
184
205
@ Override
206
+ @ LuaFunction (mainThread = true )
185
207
public MethodResult getUsedChemicalStorage () {
186
- return null ;
208
+ if (!isAvailable ())
209
+ return notConnected ();
210
+
211
+ return MethodResult .of (-1 );
187
212
}
188
213
189
214
@ Override
190
215
@ LuaFunction (mainThread = true )
191
216
public final MethodResult getAvailableExternItemStorage () {
192
- return null ;
217
+ if (!isAvailable ())
218
+ return notConnected ();
219
+
220
+ return MethodResult .of (RefinedStorage .getMaxItemExternalStorage (getNetwork ()) - RefinedStorage .getUsedItemExternalStorage (getNetwork ()));
193
221
}
194
222
195
223
@ Override
196
224
@ LuaFunction (mainThread = true )
197
225
public final MethodResult getAvailableExternFluidStorage () {
198
- return null ;
226
+ if (!isAvailable ())
227
+ return notConnected ();
228
+
229
+ return MethodResult .of (RefinedStorage .getMaxFluidExternalStorage (getNetwork ()) - RefinedStorage .getUsedFluidExternalStorage (getNetwork ()));
199
230
}
200
231
201
232
@ Override
233
+ @ LuaFunction (mainThread = true )
202
234
public MethodResult getAvailableExternChemicalStorage () {
203
- return null ;
235
+ if (!isAvailable ())
236
+ return notConnected ();
237
+
238
+ return MethodResult .of (-1 );
204
239
}
205
240
206
241
@ Override
207
242
@ LuaFunction (mainThread = true )
208
243
public final MethodResult getAvailableItemStorage () {
209
- return null ;
244
+ if (!isAvailable ())
245
+ return notConnected ();
246
+
247
+ return MethodResult .of (RefinedStorage .getMaxItemDiskStorage (getNetwork ()) - RefinedStorage .getUsedItemDiskStorage (getNetwork ()));
210
248
}
211
249
212
250
@ Override
213
251
@ LuaFunction (mainThread = true )
214
252
public final MethodResult getAvailableFluidStorage () {
215
- return null ;
253
+ if (!isAvailable ())
254
+ return notConnected ();
255
+
256
+ return MethodResult .of (RefinedStorage .getMaxFluidDiskStorage (getNetwork ()) - RefinedStorage .getUsedFluidDiskStorage (getNetwork ()));
216
257
}
217
258
218
259
@ Override
260
+ @ LuaFunction (mainThread = true )
219
261
public MethodResult getAvailableChemicalStorage () {
220
- return null ;
262
+ if (!isAvailable ())
263
+ return notConnected ();
264
+
265
+ return MethodResult .of (-1 );
221
266
}
222
267
223
268
@ Override
@@ -239,8 +284,12 @@ public final MethodResult getTotalExternFluidStorage() {
239
284
}
240
285
241
286
@ Override
287
+ @ LuaFunction (mainThread = true )
242
288
public MethodResult getTotalExternChemicalStorage () {
243
- return null ;
289
+ if (!isAvailable ())
290
+ return notConnected ();
291
+
292
+ return MethodResult .of (-1 );
244
293
}
245
294
246
295
@ Override
@@ -539,20 +588,52 @@ public final MethodResult craftFluid(IComputerAccess computerAccess, IArguments
539
588
}
540
589
541
590
@ Override
591
+ @ LuaFunction (mainThread = true )
542
592
public MethodResult getCraftingTasks () {
543
- return null ;
593
+ if (!isAvailable ())
594
+ return notConnected ();
595
+
596
+ return MethodResult .of (RefinedStorage .getCraftingTasks (getNetwork ()));
544
597
}
545
598
546
599
@ Override
600
+ @ LuaFunction (mainThread = true )
547
601
public MethodResult cancelCraftingTasks (IArguments arguments ) throws LuaException {
548
- return null ;
602
+ if (!isAvailable ())
603
+ return notConnected ();
604
+
605
+ Pair <? extends GenericFilter <?>, String > filter = GenericFilter .parseGeneric (arguments .getTable (0 ));
606
+ if (filter .getRight () != null )
607
+ return MethodResult .of (null , filter .getRight ());
608
+
609
+ ICraftingManager craftingManager = getNetwork ().getCraftingManager ();
610
+ int canceled = 0 ;
611
+
612
+ for (ICraftingTask task : craftingManager .getTasks ()) {
613
+ if (filter .getLeft () instanceof ItemFilter itemFilter ) {
614
+ if (itemFilter .test (task .getRequested ().getItem ())) {
615
+ craftingManager .cancel (task .getId ());
616
+ canceled ++;
617
+ }
618
+ }
619
+
620
+ if (filter .getLeft () instanceof FluidFilter fluidFilter ) {
621
+ if (fluidFilter .test (task .getRequested ().getFluid ())) {
622
+ craftingManager .cancel (task .getId ());
623
+ canceled ++;
624
+ }
625
+ }
626
+ }
627
+
628
+ return MethodResult .of (canceled );
549
629
}
550
630
551
631
@ Override
552
632
@ LuaFunction (mainThread = true )
553
633
public final MethodResult isItemCrafting (IArguments arguments ) throws LuaException {
554
634
if (!isAvailable ())
555
635
return notConnected ();
636
+
556
637
Pair <ItemFilter , String > filter = ItemFilter .parse (arguments .getTable (0 ));
557
638
if (filter .rightPresent ())
558
639
return MethodResult .of (null , filter .getRight ());
@@ -572,13 +653,40 @@ public final MethodResult isItemCrafting(IArguments arguments) throws LuaExcepti
572
653
@ Override
573
654
@ LuaFunction (mainThread = true )
574
655
public final MethodResult isFluidCraftable (IArguments arguments ) throws LuaException {
575
- return null ;
656
+ if (!isAvailable ())
657
+ return notConnected ();
658
+
659
+ Pair <FluidFilter , String > filter = FluidFilter .parse (arguments .getTable (0 ));
660
+ if (filter .rightPresent ())
661
+ return MethodResult .of (false , filter .getRight ());
662
+
663
+ FluidFilter parsedFilter = filter .getLeft ();
664
+ if (parsedFilter .isEmpty ())
665
+ return MethodResult .of (false , "EMPTY_FILTER" );
666
+
667
+ return MethodResult .of (RefinedStorage .isFluidCraftable (getNetwork (), parsedFilter .toFluidStack ()));
576
668
}
577
669
578
670
@ Override
579
671
@ LuaFunction (mainThread = true )
580
672
public final MethodResult isFluidCrafting (IArguments arguments ) throws LuaException {
581
- return null ;
673
+ if (!isAvailable ())
674
+ return notConnected ();
675
+
676
+ Pair <FluidFilter , String > filter = FluidFilter .parse (arguments .getTable (0 ));
677
+ if (filter .rightPresent ())
678
+ return MethodResult .of (null , filter .getRight ());
679
+
680
+ FluidStack stack = RefinedStorage .findFluidFromFilter (getNetwork (), getNetwork ().getCraftingManager (), filter .getLeft ());
681
+ if (stack .isEmpty ())
682
+ return MethodResult .of (null , "NOT_CRAFTABLE" );
683
+
684
+ for (ICraftingTask task : getNetwork ().getCraftingManager ().getTasks ()) {
685
+ FluidStack taskStack = task .getRequested ().getFluid ();
686
+ if (taskStack != null && taskStack .isFluidEqual (stack ))
687
+ return MethodResult .of (true );
688
+ }
689
+ return MethodResult .of (false );
582
690
}
583
691
584
692
@ Override
@@ -594,6 +702,7 @@ public final MethodResult isItemCraftable(IArguments arguments) throws LuaExcept
594
702
ItemFilter parsedFilter = filter .getLeft ();
595
703
if (parsedFilter .isEmpty ())
596
704
return MethodResult .of (false , "EMPTY_FILTER" );
705
+
597
706
return MethodResult .of (RefinedStorage .isItemCraftable (getNetwork (), parsedFilter .toItemStack ()));
598
707
}
599
708
}
0 commit comments