@@ -58,6 +58,7 @@ public class MultiblockUIFactory {
58
58
private int width = 198 , height = 202 ;
59
59
private int screenHeight = 109 ;
60
60
private Supplier <IWidget > customScreen ;
61
+ private Consumer <List <IWidget >> childrenConsumer ;
61
62
62
63
public MultiblockUIFactory (@ NotNull MultiblockWithDisplayBase mte ) {
63
64
this .mte = mte ;
@@ -285,6 +286,11 @@ public MultiblockUIFactory customScreen(Supplier<IWidget> customScreen) {
285
286
return this ;
286
287
}
287
288
289
+ public MultiblockUIFactory addScreenChildren (Consumer <List <IWidget >> consumer ) {
290
+ this .childrenConsumer = consumer ;
291
+ return this ;
292
+ }
293
+
288
294
protected Widget <?> createScreen (PanelSyncManager syncManager ) {
289
295
ParentWidget <?> root = new ParentWidget <>();
290
296
if (customScreen != null && customScreen .get () != null ) {
@@ -294,14 +300,22 @@ protected Widget<?> createScreen(PanelSyncManager syncManager) {
294
300
display .setAction (this .displayText );
295
301
display .sync ("display" , syncManager );
296
302
297
- root . child ( new ScrollWidget <>(new VerticalScrollData ())
303
+ var scrollWidget = new ScrollWidget <>(new VerticalScrollData ())
298
304
.sizeRel (1f )
299
305
.child (new RichTextWidget ()
300
306
.sizeRel (1f )
301
307
.alignment (Alignment .TopLeft )
302
308
.margin (4 , 4 )
303
309
.autoUpdate (true )
304
- .textBuilder (display ::build )));
310
+ .textBuilder (display ::build ));
311
+
312
+ if (this .childrenConsumer != null ) {
313
+ List <IWidget > extra = new ArrayList <>();
314
+ this .childrenConsumer .accept (extra );
315
+ extra .forEach (scrollWidget ::child );
316
+ }
317
+
318
+ root .child (scrollWidget );
305
319
}
306
320
307
321
return root .child (createIndicator (syncManager ))
0 commit comments