Implemented multi-move possibility in a moves list => better support for multi-moves...
[vchess.git] / client / src / utils / playUndo.js
diff --git a/client/src/utils/playUndo.js b/client/src/utils/playUndo.js
new file mode 100644 (file)
index 0000000..ab11bff
--- /dev/null
@@ -0,0 +1,23 @@
+export function playMove(move, vr) {
+  if (!Array.isArray(move)) move = [move];
+  move.forEach(m => vr.play(m));
+}
+
+export function undoMove(move, vr) {
+  if (!Array.isArray(move)) move = [move];
+  for (let i = move.length - 1; i >= 0; i--)
+    vr.undo(move[i]);
+}
+
+export function getFilteredMove(move) {
+  if (!Array.isArray(move)) move = [move];
+  const filtered_move = move.map(m => {
+    return {
+      appear: m.appear,
+      vanish: m.vanish,
+      start: m.start,
+      end: m.end
+    };
+  });
+  return filtered_move.length == 1 ? filtered_move[0] : filtered_move;
+}