想生成一种范围是25x100x25的树,结果在生成世界时出现这种错误:
mod loaded a new chunk [6, -15] in dimension 4711 (relger) while populating chunk [7, -16], causing cascading worldgen lag.
Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
查了一些资料之后,好像这个错误是由于树过大,超出了一个区块导致的
请问一下有什么解决的办法吗?
暮色mod里面也有很多超出一个区块的树,但是在运行暮色mod的时候就没有出现这个错误
mod loaded a new chunk [6, -15] in dimension 4711 (relger) while populating chunk [7, -16], causing cascading worldgen lag.
Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
查了一些资料之后,好像这个错误是由于树过大,超出了一个区块导致的
请问一下有什么解决的办法吗?
暮色mod里面也有很多超出一个区块的树,但是在运行暮色mod的时候就没有出现这个错误
本帖最后由 3TUSK 于 2020-6-20 15:13 编辑
准确地说,你的树的范围覆盖到了还没生成的区块里。
解决方案是让你的生成点往已经生成的区块靠近。原版矿物生成我记得是对 x 和 z 各加 8。你这个…… 直接加个 24 吧。
超出了一个区块导致的
准确地说,你的树的范围覆盖到了还没生成的区块里。
解决方案是让你的生成点往已经生成的区块靠近。原版矿物生成我记得是对 x 和 z 各加 8。你这个…… 直接加个 24 吧。
3TUSK 发表于 2020-6-19 15:01
准确地说,你的树地范围覆盖到了还没生成的区块里。
解决方案是让你的生成点往已经生成的区块靠近。原版 ...
xz增加24之后世界生成确实快了不少,非常感谢!可是报错信息依然有,有没有什么办法让它不报错呢?
我去查看了暮色的源码,暮色的苍穹树似乎也是偏移xz增加8,但没有报这个错误,请问这是为什么呢?
叶洛莉兰 发表于 2020-6-20 11:59
xz增加24之后世界生成确实快了不少,非常感谢!可是报错信息依然有,有没有什么办法让它不报错呢?
我去 ...
报错可以屏蔽,如果你仔细看这个报错的话,它的确提到了「可以在 Forge 的配置文件里关闭提示」。
但屏蔽报错只是治标不治本的方法。这个问题具体可以有多严重,以及之前我提到的解决方案的原理可以参考 https://www.mcbbs.net/thread-798107-1-1.html(原帖 https://old.reddit.com/r/feedthebeast/comments/5x0twz)。
我去翻了一下暮色是怎么写的。很抱歉我也没搞明白它是怎么做到的。
简直是太有用了,谢谢作者。
我没有研究过地形生成
所有想问下 比如说 生成树木部分给他仍在异步里面
有没有实现的可能?
所有想问下 比如说 生成树木部分给他仍在异步里面
有没有实现的可能?
3TUSK 发表于 2020-6-20 15:21
报错可以屏蔽,如果你仔细看这个报错的话,它的确提到了「可以在 Forge 的配置文件里关闭提示」。
但屏蔽 ...
非常感谢。那个帖子我也去看了。我再好好看一看暮色以及其他的mod的源码吧
南柯郡守 发表于 2020-6-20 19:21
我没有研究过地形生成
所有想问下 比如说 生成树木部分给他仍在异步里面
emmmm我有考虑过这种方式 我的这边这种树木的生成量较少 可以弄一个额外的数组储存溢出的部分 等相应区块加载的时候再去生成 或者也可以用类似原版里跨区块结构的生成方法(这个我还没有仔细看过)
这两种方法我都还没有尝试过
叶洛莉兰 发表于 2020-6-20 19:48
emmmm我有考虑过这种方式 我的这边这种树木的生成量较少 可以弄一个额外的数组储存溢出的部分 等相应区块 ...
我觉得直接点就是把现在生成树木这一句代码直接放进一个匿名内部类
比如原本
生成树木
改成
异步{
生成树木
}
可以可以可以
我也试试去
本帖最后由 叶洛莉兰 于 2020-6-21 00:13 编辑
大概是可行的,只是我Java异步这一块没有掌握好不太会,惭愧orz
我又进行了一些偏移值的调整,解决了这个问题。若需要请见我本贴的另一个回复。
南柯郡守 发表于 2020-6-20 20:07
我觉得直接点就是把现在生成树木这一句代码直接放进一个匿名内部类
比如原本
大概是可行的,只是我Java异步这一块没有掌握好不太会,惭愧orz
我又进行了一些偏移值的调整,解决了这个问题。若需要请见我本贴的另一个回复。
本帖最后由 叶洛莉兰 于 2020-6-21 01:00 编辑
我又翻看了一遍暮色的代码,发现他在生成树的函数里用了这个方法:world.isAreaLoaded()来检测那个区块是否加载,若没有加载则跳过那一部分的生成。
以下这一段是我之前编辑的,在我重新测试后发现并不准确orz{
并且我又调整了xz的偏移值进行多次测试,发现一件神奇的事情:在这个树生成于区块(x,z)的时候,若它延伸到了(x+1,z)、(x,z+1)、(x-1,z)、(x,z-1)、(x-1,z-1)这几个区块,都不会报错;然而(x+1,z+1)这个区块就会报错了,偏移值过大过小都不行。
现在我的树是29,y,29的大小,我给它偏移值rand.nextInt(14)-2之后就没有报错的情况出现了。
}
3TUSK 发表于 2020-6-20 15:21
报错可以屏蔽,如果你仔细看这个报错的话,它的确提到了「可以在 Forge 的配置文件里关闭提示」。
但屏蔽 ...
我又翻看了一遍暮色的代码,发现他在生成树的函数里用了这个方法:world.isAreaLoaded()来检测那个区块是否加载,若没有加载则跳过那一部分的生成。
以下这一段是我之前编辑的,在我重新测试后发现并不准确orz{
并且我又调整了xz的偏移值进行多次测试,发现一件神奇的事情:在这个树生成于区块(x,z)的时候,若它延伸到了(x+1,z)、(x,z+1)、(x-1,z)、(x,z-1)、(x-1,z-1)这几个区块,都不会报错;然而(x+1,z+1)这个区块就会报错了,偏移值过大过小都不行。
现在我的树是29,y,29的大小,我给它偏移值rand.nextInt(14)-2之后就没有报错的情况出现了。
}
叶洛莉兰 发表于 2020-6-21 00:12
我又翻看了一遍暮色的代码,发现他在生成树的函数里用了这个方法:world.isAreaLoaded()来检测那个区块是 ...
所以是把树缩小了是吧
南柯郡守 发表于 2020-6-21 00:18
所以是把树缩小了是吧
暮色mod中的方法是把一棵树分成多个部分来生成 也算是一种把树缩小了吧
并且非常迷惑的是,加了rand(14)-2的偏移之后,进入世界后最初生成的区块都没有报错的问题,反而是一些比较偏远的区块在报错,而那些区块中有时甚至没有这种树的生成。
mc特性??
mc特性??
本帖最后由 3TUSK 于 2020-6-21 03:46 编辑
你有安装其他的 Mod 吗?我不是很确定会不会有奇妙的 Mod 交互问题。
至于
非常奇妙的现象,按理说应该是 (x-1,z-1) 这个区块还未生成不能碰。敢问楼主是怎么写的树的生成?
叶洛莉兰 发表于 2020-6-21 01:21
并且非常迷惑的是,加了rand(14)-2的偏移之后,进入世界后最初生成的区块都没有报错的问题,反而是一些比 ...
你有安装其他的 Mod 吗?我不是很确定会不会有奇妙的 Mod 交互问题。
至于
在这个树生成于区块(x,z)的时候,若它延伸到了(x+1,z)、(x,z+1)、(x-1,z)、(x,z-1)、(x-1,z-1)这几个区块,都不会报错;然而(x+1,z+1)这个区块就会报错了,偏移值过大过小都不行。
非常奇妙的现象,按理说应该是 (x-1,z-1) 这个区块还未生成不能碰。敢问楼主是怎么写的树的生成?
3TUSK 发表于 2020-6-21 03:40
你有安装其他的 Mod 吗?我不是很确定会不会有奇妙的 Mod 交互问题。
至于
安装的mod是customskinloader,nbtedit,jei这三个
树的生成的话,generate和populate仿照极光密林mod的写法。
树的逻辑是:先从地面上垂直向上放一根树干,然后每隔一定高度往X或者Z方向的+-分别生成一个14x3x7的子部分(如果是z轴就是7x3x14)。
3TUSK 发表于 2020-6-21 03:40
你有安装其他的 Mod 吗?我不是很确定会不会有奇妙的 Mod 交互问题。
至于
感觉有点像XY问题了,可能这是我对区块生成还不够了解而造成的,抱歉orz
这是在我新写的一个维度里面发生的问题,这种树没有放在主世界里生成。
今天早些时候测试的时候,极光密林mod也产生了同样的报错,但似乎并不是树木生成造成的,而是其他的某些结构,而当我去查看那个区块的时候也发现了同样诡异的事情:明明没有延伸到的区块,报错却说被强制加载了。而暮色没有这个问题。
我现在尝试在按照暮色的区块生成重新写一次。