跳到主要内容

compileReturnValueAccessors 编译事件返回值访问器

compileReturnValueAccessors

类型: MethodDeclaration

所属类: CommandFunctionList

定义位置: command.ts

描述

编译事件返回值访问器

参数

参数名类型描述默认值
eventResultGlobalEventResultSetter--
returnTypeGlobalEventReturnType--

返回值

类型: \{ 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