compileReturnValueAccessors 编译事件返回值访问器
compileReturnValueAccessors
类型: MethodDeclaration
所属类: CommandFunctionList
定义位置: command.ts
描述
编译事件返回值访问器
参数
参数名 | 类型 | 描述 | 默认值 |
---|---|---|---|
eventResult | GlobalEventResultSetter | - | - |
returnType | GlobalEventReturnType | - | - |
返回值
类型: \{ getReturnValue\: CallbackFunction, setReturnValue\: CallbackFunction, \}
源代码
位置: 第 3369 行
private compileReturnValueAccessors(
eventResult: GlobalEventResultSetter,
returnType: GlobalEventReturnType,
): {
getReturnValue: CallbackFunction,
setReturnValue: CallbackFunction,
} {
let getReturnValue = Function.empty
let setReturnValue = Function.empty
// 如果返回值类型无效
if (eventResult.type !== returnType) {
return {getReturnValue, setReturnValue}
}
let result: any
// 编译读取返回值方法
switch (eventResult.type) {
case 'none':
break
default: {
const returnKey = this.returnKey
getReturnValue = () => {
result = (CurrentEvent.attributes as any)[returnKey]
}
break
}
}
// 编译写入返回值方法
switch (eventResult.type) {
case 'none':
break
case 'boolean': {
const setter = Command.compileVariable(eventResult.variable, Attribute.BOOLEAN_SET)
setReturnValue = () => {if (typeof result === 'boolean') setter(result)}
break
}
case 'number': {
const setter = Command.compileVariable(eventResult.variable, Attribute.NUMBER_SET)
setReturnValue = () => {if (Number.isFinite(result)) setter(result)}
break
}
case 'string': {
const setter = Command.compileVariable(eventResult.variable, Attribute.STRING_SET)
setReturnValue = () => {if (typeof result === 'string') setter(result)}
break
}
case 'object': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (typeof result === 'object' || result === undefined) setter(result)}
break
}
case 'actor': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (result instanceof Actor || result === undefined) setter(result)}
break
}
case 'skill': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (result instanceof Skill || result === undefined) setter(result)}
break
}
case 'state': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (result instanceof State || result === undefined) setter(result)}
break
}
case 'equipment': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (result instanceof Equipment || result === undefined) setter(result)}
break
}
case 'item': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (result instanceof Item || result === undefined) setter(result)}
break
}
case 'trigger': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (result instanceof Trigger || result === undefined) setter(result)}
break
}
case 'light': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (result instanceof SceneLight || result === undefined) setter(result)}
break
}
case 'element': {
const setter = Command.compileVariable(eventResult.variable, Attribute.OBJECT_SET)
setReturnValue = () => {if (result instanceof UIElement || result === undefined) setter(result)}
break
}
}
return {getReturnValue, setReturnValue}
}
文档生成时间:2025/7/7 12:07:06