still having the same issue on 26.44
Update: BlockFilter is completely broken even with inclusion in certain scenarios.
This completely breaks trying to reset critical objective story-based scripting with replayability.
This is one of the many extra affected functions in my use cases currently.
protected async ReplaceBlockPermutationOnLoadAsync(dimension: Dimension, location: Vector3, permutation: BlockPermutation, replace: BlockFilter, token: CancellationToken, loadChunk: boolean = false): Promise<void> {
let tickingAreaId = undefined;
try {
if (!loadChunk) {
await waitForChunkLoadAsync(dimension, location, token);
} else if (!dimension.isChunkLoaded(location)) {
tickingAreaId = await loadChunkAsync(dimension, location, token);
}
if (dimension.containsBlock(new BlockVolume(location, location), replace)) {
dimension.setBlockPermutation(location, permutation);
}
} finally {
unloadChunk(tickingAreaId);
}
}
Also this does affect more than just direction, for example, with the lever, when setting the `open_bit`, it does not update the block that it is on, nor does it also update when you interact with it after setting the block state, but it will update on the second interaction.