squidy5 / cargo_ships

factorio mod that adds cargo ships and other content to the game
25 stars 39 forks source link

Final script tweaks for 0.1.0 #68

Closed robot256 closed 2 years ago

robot256 commented 2 years ago

TODO:

Fix that failed train building attempts by robots delete the items. See what happens when robots deconstruct ships on tracks. Add compatibility with Water Ores. Write changelog update Improve global variable initialization in long_reach.lua and pumps and gui. Clean up local variables not declared as local Maybe make some functions local too Move Oil Rig GUI to be docked to the entity GUI Maybe make it okay to blueprint ships (would be great for LTN depots).

FUTURE (not this release): Make bridges blueprintable Add ability to board from one ship to another

robot256 commented 2 years ago

Draft changelog text (including updates from next PR):

Features:
  - New offshore oil spawning algorithm uses the vanilla settings for crude oil.  Will be consistent between maps with the same mods and worldgen settings.
  - Added option to remove oil generated on land, so that only offshore oil is available.
  - Added console command "/regenerate-oil" to delete all the oil on the map and respawn using the new algorithm.  This will delete any existing offshore deposits, and reset the productivity of all oil including on land.
  - Added setting to make buoys indestructible.

Changes:
  - Prevent linking waterways to land rails.
  - Added built-in SeaBlock & Omnimatter compatibility checks to disable offshore oil.
  - Added conflict with the cargo-ships-seraph fork to reduce confusion.
  - Moved all in-game messages and GUI text to the locale file.
  - Improved performance using event filters.
  - Improved performance when offshore oil is disabled.
  - Moved oil rig storage capacity GUI to dock with the center GUI.

Bugfixes:
  - Fixed some potential unminable waterways created using blueprints, copy-paste, editor and cheat mode.
  - Fixed pipette tool behavior on ships and bridges.
  - Fixed that settings copy-paste between ships was disabled.
  - Fixed that boats and ships on waterways could not be blueprinted.  (Only works on straight waterways.)
  - Fixed a crash when using the "enter ship" command in editor/god/SE Nav mode.
  - Fixed that Space Exploration caused improper Long Reach bonus when player died holding waterway.
  - Fixed that robots building trains on waterways by accident would have the items destroyed.
  - Fixed that robots deconstructing ships and bridges would sometimes have the items destroyed.
squidy5 commented 2 years ago

Hey! I am impressed with your fixes and additions. It really cleans up a lot of the hacky/ugly and unfinished parts of the code!

One thing I noticed is that by changing the oil generation you remove the possibility to have different frequencies/richnesses of normal and "deep sea" oil.

I am not sure if or how big of an issue that is for people. Maybe it's ok to just release the update as is, and if people are upset about the change it could be fixed later on.

robot256 commented 2 years ago

Hey, glad to have your input. Hope I haven't taken too many liberties with it, since it worked well enough all these years. I tried a few different things, and this seemed like the most reliable.

The other thing I tried was making Offshore oil a separate resource with its own settings. I didn't figure out how to make it generate smaller numbers of deposits per patch. When paired with Space Exploration, the first moon I found was high-concentration Offshore Oil but the moon had no water! And then I thought that in reality, a planet's geology doesn't differentiate between surface land and water when deciding where the oil will be, and this seemed good enough for now. On default oil settings it's honestly pretty rare anyways.

If you think it's worth pursuing the separate-resource generator some more, I can look into it. Other ways of reducing offshore oil might be discarding deposits that are too small or chunks with too few vanilla oil patches generated in them.

Edit: And if you simply don't run /regenerate-oil, the oil patches placed by the old algorithm will remain where they are and only newly generated chunks will be affected.

squidy5 commented 2 years ago

Yeah I think it's ok to release as is, and then to see if there is any feedback regarding those changes. And maybe I will look into changing the oil generation to a 2-resource system myself at some point.