RBSerialization 2D Vector

This commit is contained in:
barsdeveloper
2023-09-26 22:12:39 +02:00
parent 71e7c12675
commit 42b6aefeed
9 changed files with 174 additions and 53 deletions

View File

@@ -0,0 +1,22 @@
import Grammar from "../serialization/Grammar.js"
import Parsimmon from "parsimmon"
import Vector2DEntity from "./Vector2DEntity.js"
export default class RBSerializationVector2DEntity extends Vector2DEntity {
static grammar = this.createGrammar()
static createGrammar() {
return Parsimmon.alt(
Parsimmon.seq(
Parsimmon.string("X").then(Grammar.equalSeparation).then(Grammar.number),
Parsimmon.regex(Grammar.Regex.InlineWhitespace),
Parsimmon.string("Y").then(Grammar.equalSeparation).then(Grammar.number),
).map(([x, _1, y]) => new this({
X: x,
Y: y,
})),
Vector2DEntity.createGrammar()
)
}
}