I wanted to remove FurniturePhysics from the scene tree first, but the static version seemed easier so I'm doing that first.
Instead of creating nodes, we use the Servers API of Godot to re-create what we did with nodes. The idea is that this will improve performance and stability
The FurnitureStaticSrv is still a Node3d but doesn't get added to the scene tree. We need a Node3d for certain functionality
Integrated Container functionality into the StaticFurnitureSrv. This prevents adding the container nodes to the scene tree still.
The StaticFurnitureSrv is spawned and destroyed by a FurnitureStaticSpawner node on the chunk. This node also responds to signals and manages the furniture's visibility when above the player
The FurnitureStatic.gd script can be deleted but I kept it for reference for now.
Adjusted the bullet scene to have an Area3d, otherwise the collision trigger wouldn't fire when hitting a StaticfurnitureSrv
By upgrading to 4.3 and implementing this class, we may introduce new bugs but I will register and fix any that we come across.
I wanted to remove FurniturePhysics from the scene tree first, but the static version seemed easier so I'm doing that first.
By upgrading to 4.3 and implementing this class, we may introduce new bugs but I will register and fix any that we come across.