• IPhysicsFluidController Interface
    0 replies, posted
I stumbled across this some time ago in the func_movelinear.cpp: All the water in the source engine is basically a IPhysicsFluidController tied to an IPhysicsObject (the same as props use) with the collision type set to FSOLID_VOLUME_CONTENTS. These controllers are controlled used with two functions: CreateFluidController and DestroyFluidController (in vphysics_interface.h). A good usage example is beginning at line 134 of func_movelinear.cpp. Request: - An interface for CreateFluidController and DestroyFluidController so they can be used in lua. - The fluidparams_t should be a table on lua side. - The values should default to those used in func_movelinear.cpp. - Make the default surface plane {0, 0, 1, 0}. - pGameData should take an entity and be required (I guess source uses this to check if the water entity is still in the game). Why this would be useful: - Source simulates all water physics using IPhysicsFluidController. This includes players swimming and props slowing down when crashing into water. - The fluid properties should allow anything from tar-like rivers over streams with strong currents to bubbles with air like (physics) behavior under water using negative density and damping values. - Physics objects can go into sleep mode while floating on this kind of water. - Think about a swep that creates a bubble of water around you, making you swim in the air and drown headcrabs! :smile: - Flood Mod on every map!
Sorry, you need to Log In to post a reply to this thread.