Hydro v0.2 is officially released!
They say the last 10% of a project takes 90% of the time, and this is no exception. There are a handful of new features which should make this quite usable now, but they're not the kind of thing that will make a big splash (pun intended). I've split the functionality into several nodes, which should add a lot of versatility and make this quite usable in a variety of situations. Here are the nodes I've added:
This allows you to define a limited area in which the hydrodynamic calculations take place. Without this, you've only got an infinite ocean, and the module is always checking for potential submersion in the water. Now, you can add a WaterArea to a valley in your terrain, and your HydroRigidBody will be a standard RigidBody on land, and only have the extra functionality when it hits the WaterArea.
You've also got the ability to set the density of each WaterArea independently. Freshwater and saltwater have different densities, and you could also use this for pools of lava, maple syrup, etc.
By default, the mass of a HydroRigidBody is centered at the origin of the object. Adding additional weight at various points can improve realism in some cases. The WatercraftBallast node allows you to position a point mass at a specific location. This can be useful for cases such as:
This can be used to add prop or jet drives, bow thrusters, or more to your watercraft. The propulsion system will only provide thrust when its origin is underwater. You can add as many as you need to your watercraft and control them independently.
This will dynamically generate a steerable rudder and attach it to your hull. As with the rest of the hull, only the submerged portion of the rudder will function.
There is also documentation for each of these nodes within Godot itself, along with the wiki.
I'm expecting to release one more version before this is feature-complete. Here's what is coming up:
Finally, here's a video of the new WaterArea nodes in action, each block of water has a different density: