Add fire mode
[kaka/cakelight.git] / src / kaka / cakelight / Commands.java
index 9a2be3b..8f61713 100644 (file)
@@ -3,6 +3,7 @@ package kaka.cakelight;
 import kaka.cakelight.mode.*;
 
 import java.util.function.BiFunction;
+import java.util.stream.Stream;
 
 class Commands {
     private static Console.Command command(String[] names, BiFunction<Console, String[], Boolean> activate) {
@@ -154,13 +155,26 @@ class Commands {
        });
     }
 
-    static Console.Command twoColorNoiseMode() {
+    static Console.Command noiseMode() {
         return modeCommand(new String[] {"n", "noise"}, (console, args) -> {
-           if (args.length == 2) {
-               console.out("setting two-color noise mode");
-               return new TwoColorNoiseMode(
-                       console.parseColor(args[0]),
-                       console.parseColor(args[1])
+           if (args.length > 1) {
+               console.out("setting multi-color noise mode");
+               return new NoiseMode(Stream.of(args)
+                                            .map(console::parseColor)
+                                            .toArray(Color[]::new)
+               );
+           }
+           return null;
+       });
+    }
+
+    static Console.Command fireMode() {
+        return modeCommand(new String[] {"f", "fire"}, (console, args) -> {
+           if (args.length > 1) {
+               console.out("setting multi-color fire mode");
+               return new FireMode(Stream.of(args)
+                       .map(console::parseColor)
+                       .toArray(Color[]::new)
                );
            }
            return null;