跳到主要内容

compilePosition 编译场景位置对象

compilePosition

类型: MethodDeclaration

所属类: CommandFunctionList

定义位置: command.ts

描述

编译场景位置对象

参数

参数名类型描述默认值
positionPositionGetter--

返回值

类型: (reference?: any) => Point | undefined

源代码

位置: 第 641 行

public compilePosition(
position: PositionGetter
): (reference?: any) => Point | undefined {
switch (position.type) {
case "absolute": {
const getX = Command.compileNumber(position.x);
const getY = Command.compileNumber(position.y);
return () => {
return {
x: getX(),
y: getY(),
};
};
}
case "relative": {
const getX = Command.compileNumber(position.x);
const getY = Command.compileNumber(position.y);
return reference => {
if (reference) {
return {
x: reference.x + getX(),
y: reference.y + getY(),
};
}
};
}
case "actor":
return Command.compileActor(position.actor);
case "trigger":
return Command.compileTrigger(position.trigger);
case "light":
return Command.compileLight(position.light);
case "region": {
const getRegion = Command.compileRegion(position.region);
switch (position.mode) {
case "center":
return getRegion;
case "random":
return () => getRegion()?.getRandomPosition();
case "random-land":
return () => getRegion()?.getRandomPosition(0);
case "random-water":
return () => getRegion()?.getRandomPosition(1);
case "random-wall":
return () => getRegion()?.getRandomPosition(2);
}
}
case "object": {
const objectId = (position as any).objectId;
return () => Scene.entity.get(objectId) as Point | undefined;
}
case "mouse":
return () => {
return {
x: Mouse.sceneX,
y: Mouse.sceneY,
};
};
}
}

文档生成时间:2026/2/1 16:51:39