Functional world processors

This commit is contained in:
Anuken
2022-02-08 12:18:48 -05:00
parent e4dd7bf14b
commit 38c0284bbe
21 changed files with 363 additions and 60 deletions

View File

@@ -22,6 +22,7 @@ import static mindustry.logic.LCanvas.*;
public class LogicDialog extends BaseDialog{
public LCanvas canvas;
Cons<String> consumer = s -> {};
boolean privileged;
@Nullable LExecutor executor;
public LogicDialog(){
@@ -156,7 +157,7 @@ public class LogicDialog extends BaseDialog{
int i = 0;
for(Prov<LStatement> prov : LogicIO.allStatements){
LStatement example = prov.get();
if(example instanceof InvalidStatement || example.hidden()) continue;
if(example instanceof InvalidStatement || example.hidden() || (example.privileged() && !privileged) || (example.nonPrivileged() && privileged)) continue;
TextButtonStyle style = new TextButtonStyle(Styles.cleart);
style.fontColor = example.color();
@@ -184,10 +185,12 @@ public class LogicDialog extends BaseDialog{
onResize(() -> canvas.rebuild());
}
public void show(String code, LExecutor executor, Cons<String> modified){
public void show(String code, LExecutor executor, boolean privileged, Cons<String> modified){
this.executor = executor;
this.privileged = privileged;
canvas.statements.clearChildren();
canvas.rebuild();
canvas.privileged = privileged;
try{
canvas.load(code);
}catch(Throwable t){