theFox6 / working_villages

A mod for minetest that adds villagers performing work
https://content.minetest.net/packages/theFox/working_villages/
MIT License
13 stars 10 forks source link

added a few simple jobs involving various appliances #47

Open lmaddox opened 10 months ago

lmaddox commented 10 months ago

added a few bots similar to the existing ones.

added support for using tools, and added a couple bots based on this.

extended handle_chest() logic to implement a more generic handle_appliance() method.

added a few simple bots based on this method.

lmaddox commented 9 months ago

I really appreciate this load of new features. Great work on implementing a lot of things.

Your API provides a good starting point for what I want to do.

There are a few things that still need doing here though. For example there is a lot of redundant code that could use some more api and modularity. There are inconsistencies within the files and other things that need some cleanup.

Yes. There was a lot of redundant code already in the code base and I only exacerbated that problem. I will be deduplicating as I go (you should have seen what it looked like before handle_appliance()). I plan to make the job functions more modular and reuseable so as to allow hybrid jobs and job-switching. I feel that our power users will enjoy coding bot-logic at such a high level.

I personally would like to see these new changes added to the mod, however this huge pull request is rather difficult to review.

This is... ADHD, no doubt. A lot of these commits touch 1000+ lines throughout the entire code base. If this repo were more active, the resulting merge conflicts would be a nightmare. I'm truly sorry for the Atlassean amount of code, and I'm grateful for the time you've taken to review it. This is my first pull request, and any feedback is useful.

Maybe these changes could be added in smaller portions, to make sure it stays maintainable. One possibility to make things easier would be chopping up the features into smaller pull requests to allow easier integration.

I will learn this. I can see myself refactoring everybody's mods to expose an API. It might also make me less likely to disable a mod as soon as it raises an error....