Serialization fixed

This commit is contained in:
barsdeveloper
2021-11-08 22:28:26 +01:00
parent ad8c34cdab
commit 39e26bc0c2
12 changed files with 195 additions and 48 deletions

26
js/input/Copy.js Normal file
View File

@@ -0,0 +1,26 @@
import Context from "./Context"
import ObjectSerializer from "../serialization/ObjectSerializer"
export default class Copy extends Context {
constructor(target, blueprint, options = {}) {
options.wantsFocusCallback = true
super(target, blueprint, options)
this.serializer = new ObjectSerializer()
let self = this
this.copyHandle = _ => self.copied()
}
blueprintFocused() {
document.body.addEventListener("copy", this.copyHandle)
}
blueprintUnfocused() {
document.body.removeEventListener("copy", this.copyHandle)
}
copied() {
const value = this.blueprint.getNodes(true).map(node => this.serializer.write(node.entity)).join("\n")
navigator.clipboard.writeText(value)
}
}

View File

@@ -7,9 +7,7 @@ export default class Paste extends Context {
constructor(target, blueprint, options = {}) {
options.wantsFocusCallback = true
super(target, blueprint, options)
this.serializer = new ObjectSerializer()
let self = this
this.pasteHandle = e => self.pasted(e.clipboardData.getData("Text"))
}
@@ -33,8 +31,11 @@ export default class Paste extends Context {
})
let mousePosition = this.blueprint.entity.mousePosition
nodes.forEach(node => {
node.location[0] += mousePosition[0] - left
node.location[1] += mousePosition[1] - top
const locationOffset = [
mousePosition[0] - left,
mousePosition[1] - top
]
node.addLocation(locationOffset)
})
this.blueprint.addNode(...nodes)
}