Refactoring of functional package

This commit is contained in:
Anuken
2019-10-29 15:57:25 -04:00
parent f0fa643930
commit 0722ad2f4c
86 changed files with 456 additions and 396 deletions
@@ -1,6 +1,7 @@
package io.anuke.mindustry.game;
import io.anuke.arc.*;
import io.anuke.arc.func.*;
import io.anuke.arc.function.*;
import io.anuke.mindustry.maps.*;
@@ -44,25 +45,25 @@ public enum Gamemode{
rules.respawnTime = 0f;
});
private final Consumer<Rules> rules;
private final Predicate<Map> validator;
private final Cons<Rules> rules;
private final Boolf<Map> validator;
public final boolean hidden;
public final static Gamemode[] all = values();
Gamemode(Consumer<Rules> rules){
Gamemode(Cons<Rules> rules){
this(false, rules);
}
Gamemode(boolean hidden, Consumer<Rules> rules){
Gamemode(boolean hidden, Cons<Rules> rules){
this(hidden, rules, m -> true);
}
Gamemode(Consumer<Rules> rules, Predicate<Map> validator){
Gamemode(Cons<Rules> rules, Boolf<Map> validator){
this(false, rules, validator);
}
Gamemode(boolean hidden, Consumer<Rules> rules, Predicate<Map> validator){
Gamemode(boolean hidden, Cons<Rules> rules, Boolf<Map> validator){
this.rules = rules;
this.hidden = hidden;
this.validator = validator;
@@ -84,13 +85,13 @@ public enum Gamemode{
/** Applies this preset to this ruleset. */
public Rules apply(Rules in){
rules.accept(in);
rules.get(in);
return in;
}
/** @return whether this mode can be played on the specified map. */
public boolean valid(Map map){
return validator.test(map);
return validator.get(map);
}
public String description(){
@@ -2,6 +2,7 @@ package io.anuke.mindustry.game;
import io.anuke.arc.*;
import io.anuke.arc.collection.*;
import io.anuke.arc.func.*;
import io.anuke.arc.function.*;
import io.anuke.arc.graphics.g2d.*;
import io.anuke.arc.math.*;
@@ -194,16 +195,16 @@ public class Tutorial{
},;
protected String line = "";
protected final Function<String, String> text;
protected final Func<String, String> text;
protected Array<String> sentences;
protected final BooleanProvider done;
protected final Boolp done;
TutorialStage(Function<String, String> text, BooleanProvider done){
TutorialStage(Func<String, String> text, Boolp done){
this.text = text;
this.done = done;
}
TutorialStage(BooleanProvider done){
TutorialStage(Boolp done){
this(line -> line, done);
}