Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change Waterwheel Behavior & Model #5954

Merged

Conversation

voidsong-dragonfly
Copy link
Contributor

@voidsong-dragonfly voidsong-dragonfly commented Jun 17, 2024

Many changes to waterwheel behavior!

Waterwheel Changes

  • Snow will no longer fall upon waterwheels & windmills, and cannot place there
    • This keeps waterwheels that are uncovered from blocking up from the below change
  • Solid faces directly adjacent to waterwheel paddles - not just in the four 'corners' - stop the wheel from rotating
  • Waterwheel power calculations are significantly overhauled to fix edge cases and reward aesthetic setups
    • Water source blocks directly in wheel paddles now have higher 'resistance' and penalize wheels
      • This encourages water sources to not be located in the wheel, and shuts down the 'behind the wheel' placement
    • Torque calculations now use vector cross products to get torque, rather than partial torque math
      • This means waterwheels somewhat count 'head' (water height weight) now, as they count vertical blocks too
    • Fluid blocks of lower height now provide less torque to waterwheels - higher flow is better
      • Minor change, but makes vertical flow the main source of power for overshot wheels like IRL
      • Also makes breastshot wheels more efficient if water is input in the 'breast' and not undershot/free stream
    • Water will no longer spill/flow off the 'side' of waterwheels: See 'Mixin' section for details
    • Breastshot wheels are given a small buff to make millrace setups like large 17th century mills profitable
      • Not all rivers have good head (necessary for overshot wheels) so mills often used breastshot wheels
      • IRL these are high flow rate medium head, but for IE they're just 'water enters on the side of the wheel'
      • Unlocked aesthetic options for those who don't want all overshot wheels: 76IF/t max compared to 88IF/t
    • Maximum power for an optimized overshot wheel is the same at 88IF/t.
      • No actual power balance changes! Only changes to what shapes of setups are profitable
  • Waterwheel model is cleaned up and has sections added to it to support the changes from mixins
    • Paddles are changed to buckets to 'hold' water in the sides
    • Model is cleaned up to put vertexes in better places and make things more pixel-aligned.

Mixin

One mixin is new, based on a similar one used in Create. This mixin has one function, and it is to tell fluids 'no, you cannot flow off the side of a waterwheel'. It's about four lines of actual code

Config TODO

Currently, the dynamo_mult config in IEServerConfig.java is 3.0, compared to other multipliers which are 1.0. I made a todo note that on the next major version bump we should change the default to 1.0, and prepared a little for it: all that will need changing is the config default and a divisor in DynamoBlockEntity.java.

 - Serverconfig kinetic multiplier is now 1.0 by default, other values updated
 - Source blocks are now a large drag on waterwheels
 - Waterwheels gain more speed when water is flowing directly along them
 - Higher levels of water give waterwheels more torque
@voidsong-dragonfly voidsong-dragonfly marked this pull request as ready for review June 17, 2024 13:39
 - Resistance torque is now capped at -0.9x of power torque
 - Resistance torque now does not calculate if there is no torque to start
 - Documented several methods to explain their reasons for naming/being
 - Waterwheels now properly rotate in the water flow direction
@BluSunrize BluSunrize merged commit e300ff2 into BluSunrize:1.20.4 Jun 17, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants