Open DBotThePony opened 3 years ago
Version please
RF Tools Builder: 3.0.16 Forge: 36.1.4
-- System Details --
Details:
Minecraft Version: 1.16.5
Minecraft Version ID: 1.16.5
Operating System: Linux (amd64) version 5.9.1-050901-generic
Java Version: 1.8.0_282, GraalVM Community
Java VM Version: OpenJDK 64-Bit Server VM GraalVM CE 21.0.0.2 (mixed mode), GraalVM Community
Memory: 1460467384 bytes (1392 MB) / 2691694592 bytes (2567 MB) up to 5726797824 bytes (5461 MB)
CPUs: 8
JVM Flags: 3 total; -Xmx6G -Xms128m -XX:UseSSE=4
And what were you doing exactly?
Taking out/inserting shape card from/into builder?
Hmm I wonder why that's giving problems for you because that's an extremely common operation done by countless of people
People tend to tolerate problems until they become completely game breaking.
No, I mean that it's not a problem for them at all. I also see no reason why it would be a problem. The code that is mentioned in the stacktrace is simply doing a simple test on a block. There is no reason for it to take that long and also not something that I can control anyway
is simply doing a simple test on a block
But does it check if chunk was generated before doing the test? Or does getBlockState
return "empty" value when chunk is not generated?
It will cause the chunk to be generated (which may be why it's taking so long) but that's ok. It has to be generated since the builder needs to be able to do that test. So yes, if this is happening on a new chunk then this delay is normal and to be expected
So here is the problem: you cause all chunks in 512x512
block area generated in main thread in blocking way (on default config of rftools, which allow shapes of 512x512)
And the bigger is allowed area, the worse problem become, exponentially.
Yes but I need to do that. I have to quarry those areas after all. I don't see how I can avoid that
Why would you need to check empty chunks for a block that won't end up there anyway?
Empty chunks? What do you mean?
Chunks that are not generated. You check for an artificial block (support block? clearSupportBlocksShaped
) in a chunk that was never generated ("empty"), a block that won't end up there under any conditions. So you basically cause server lag by doing a check that would never end up being true. And you could cut this check early by checking whenever is chunk present in first place, eliminating all the lag caused by block check.
Ah yes, that's a good point. I didn't realize this was about the support blocks. I'll see what I can do to avoid that
It works probably fine (I were experiencing mild lag when working with shape cards) in older Minecraft versions, but on newer Minecraft versions it does not.