FallingSand/FallingBlock Structures

This is an idea for a plugin or library that I’ve had. I might work on implementing some version of it in the future, however, anyone who wants to should feel free to work on it themself.

I’ve seen a few different airship/planes plugins for Bukkit, and they all seemed to work on the same idea - some region of blocks is teleported at some interval. By its nature, this design is slow, prevents any kind of real-time flying or combat, and can cause issues with old blocks still being rendered by the client after a ship is teleported.

The premise of my idea is this: Falling sand/block entities are used to replace the actual blocks in a structure. Because client-side gravity is performed for them, they’ll need to be riding some small, gravity-unaffected entity (bats and arrows come to mind). Additionally, armor stands could be used for greater flexibility, by making them wear blocks on their head, or hold them.

Should this idea work out, plugins could take advantage of it to create new dynamic structures. Imagine an ship that flew around in real time, or flexed with a TNT explosion.

While I’ve confirmed that the client won’t perform gravity calculations when falling sand entities are riding another entities, more work will need to be done to determine the amount of stress this would place on the client.

Here’s a quick demonstration - the entity being ridden would obviously be invisible):
Imgur

2 Likes

If you were to use ArmorStands and a block on their head, you could very well use a custom resource pack to make a 3D model for that block.

The other alternative is as you said, spawning falling blocks on invisible bats would work very well as long as you are able to limit the amount of entities being spawned in as usually once the visible entities to a client reaches 300+, most clients start to have FPS issues.

300 Blocks is a fairly low limit for a vehicle structure - a small yacht, balloon or similar. (Typically a ship I sail with Movecraft is ~2800 blocks). Nevertheless, it sounds like a more dynamic vehicle interface.
Could it handle the calculation of Player position as they walk about on top of blocks on entities?

Is there no way of modifying the client-side physics (or disabling them completely)?

I know armour stands have a NoGravity tag, I’m not sure though.

Nice idea! I’m definitely going to try this out. But is it possible to make this very smooth?