package coffee.liz.dyl.config; import com.badlogic.gdx.Input; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.RequiredArgsConstructor; import java.util.HashSet; import java.util.Map; import java.util.Set; import java.util.function.Predicate; @AllArgsConstructor @RequiredArgsConstructor @Getter public class KeyBinds { private Set moveLeftKeys = Set.of(Input.Keys.H, Input.Keys.LEFT, Input.Keys.A); private Set moveRightKeys = Set.of(Input.Keys.L, Input.Keys.RIGHT, Input.Keys.D); private Set jumpKeys = Set.of(Input.Keys.K, Input.Keys.W, Input.Keys.UP, Input.Keys.SPACE); public Set filterActiveActions(final Predicate isDown) { final Set actions = new HashSet<>(); Map.of(moveLeftKeys, Action.MOVE_LEFT, moveRightKeys, Action.MOVE_RIGHT, jumpKeys, Action.JUMP) .forEach((keys, action) -> { if (keys.stream().anyMatch(isDown)) { actions.add(action); } }); return actions; } public enum Action { MOVE_LEFT, MOVE_RIGHT, JUMP; } }