mirror of
https://github.com/barsdeveloper/ueblueprint.git
synced 2026-02-21 06:05:45 +08:00
Serialization work in progress
This commit is contained in:
37
js/serialization/ReferenceTypeName.js
Normal file
37
js/serialization/ReferenceTypeName.js
Normal file
@@ -0,0 +1,37 @@
|
||||
export default class ReferenceTypeName {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {String} reference
|
||||
* @returns
|
||||
*/
|
||||
static splitReference(reference) {
|
||||
const pathBegin = reference.search(/['"]/)
|
||||
const referenceType = reference.substr(0, pathBegin > 0 ? pathBegin : undefined) // reference example Class'"/Script/Engine.PlayerCameraManager"'
|
||||
const referencePath = pathBegin > 0 ? reference.substr(pathBegin) : ""
|
||||
switch (referenceType) {
|
||||
case "None":
|
||||
if (referencePath.length > 0) {
|
||||
return false // None cannot have a path
|
||||
}
|
||||
default:
|
||||
return [referenceType, referencePath]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {String} reference
|
||||
*/
|
||||
constructor(reference) {
|
||||
reference = ReferenceTypeName.splitReference(reference)
|
||||
if (!reference) {
|
||||
throw new Error('Invalid reference: ' + reference)
|
||||
}
|
||||
this.reference = reference
|
||||
}
|
||||
|
||||
toString() {
|
||||
return this.value
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user