I've seen your idea about one-way glass and I was curious about your impl
Now I'm here to give you some advice
- check the surrounding 32x32x32 blockType is absolutely expensive, you can check the slimefun BlockStorage (Slimefun official version use a map from loc to Config to record slimefun data, but I'm developing in CN version and we use chunkdata and block data, it's easier to check surrounding sf blocks)
- you can cache the location of all one-way glass , when update block, compare the cached locations and the player's location instead of searching blocks around player
- you can run this logic in block ticker, updating the surrounding player's blockType every 0.5s instead of listening playerMove, listening to playerMove is a costly behaviour because player move every gt
I've seen your idea about one-way glass and I was curious about your impl
Now I'm here to give you some advice