[bug汇报]train.getThisRoutePlatforms()返回空数组
本帖最后由 Hobbytimeblank 于 2025-2-16 13:13 编辑我的LCD代码中有一部分是这样的。
function render(ctx, state, train) {
let route_p = train.getThisRoutePlatforms();
if (route_p == undefined && state.outputDelay <= 0){
MinecraftClient.displayMessage("发生错误," + train.id() +","+ String(route_p),false);
state.outputDelay = 2000;//这个state.outputDelay是个时间设置,是为了防止信息刷屏
} else if (…) {
//...省略约150行LCD绘制代码
}
}
首先将train.getThisRoutePlatforms()的数据存入route_p中,然后判断。理论上该代码只会在列车回库,没有下一个站台的时候返回空数组。然而在实际测试中,即使在创建好的路线上,列车可能在刚刚加载出来的时候也返回空数组。有时候持续不到一秒,有时候还会持续很久都返回空数组。
根据我的代码,聊天框打出的信息一般是这样的:
发生错误,-8396668132046797000,[]
使用的版本是ANTEbuild#968测试版本,如果有人在其他版本中发现了不一样的现象,欢迎讨论(在前几个测试版本我也遇到过) 其实这种问题无伤大雅,反正也不到一秒,就当是在加载了(可能真的是在加载),就当是“面向结果”编程了,结果对了就行 596wjr 发表于 2025-2-17 23:08
其实这种问题无伤大雅,反正也不到一秒,就当是在加载了(可能真的是在加载),就当是“面向结果”编程了, ...
并不是不到一秒,实测有时候确实是一秒,但也可能会持续一两分钟,甚至有的列车直到开出渲染范围都一直在返回空数组 大佬像这些获取信息的函数在哪找到,我找不到 更新一次列车信息的操作是每次执行完渲染后再更新的,如果渲染卡住了就不会及时更新
我倒觉得是ANTE的问题,用异步不给同步信息上锁倒是蛮容易陷入更新数据死循环的(以我个人的理解,类似于出现类似mysql幻读脏写的问题)
页:
[1]