Commit Graph

73 Commits

Author SHA1 Message Date
Luke aka SwissalpS 96dca7e540
Fix autocrafter crafting bug (#108) 2024-02-08 21:01:54 +11:00
Luke aka SwissalpS 360ed9bdde
Autocrafter groups support (#74)
* Add support for recipes with groups to autocrafter

* fix autocrafter replacements

* remove unnecessary check and move some code

* reorder and change back var name

* only whitespace changes

* reuse hash that is asigned to variable anyway

* add get_matching_craft

function that looks for the best matching recipe according to what user
put in recipe inventory

some crafts use groups in multiple recipes

* return right away if there is a chached craft

gives us more horizontal space to work with

* indentation adjusting

* use get_matching_craft to get best craft

this line was buggy anyhow

* new craft format: decremented_input

craft.decremented_input now only holds the items. Extra parameters are
dropped

* bugfix: when item has no groups

"" and unknown items have no def and thus no groups

* add function has_room_for_output

moving the output space calculation into its own function
helps keep autocraft() short and overseeable

* use has_room_for_output

* remove double-check of available materials

* add warning to ensure double-check was not needed

* rebuild cache whenever recipe inv changes

no need to check if still current, this only happens when user is
interacting and can only be better to do so.
Otherwise we would have to check groups etc. again just to check, so
might as well reset cache.

* remove unused line

* use minetest.get_item_group()

* whitespace cleanup

make code easier to read and give it a more
"thoughtthrough" look than the "smash it in to make it work" look it has
had.

(I'm holding back, there would be more to do overall through this mod)

* add .editorconfig

this should also help keep consistency throughout this mod

* changelog updated

at least the most recent more important ones

* whitespace changelog (trailing spaces)

---------

Co-authored-by: rubenwardy <rw@rubenwardy.com>
Co-authored-by: OgelGames <olliverdc28@gmail.com>
Co-authored-by: wsor4035 <24964441+wsor4035@users.noreply.github.com>
2024-01-13 20:41:28 -05:00
Github is a non-free platform owned by Microsoft. Reasonable alternatives exist, such as Gitea, Sourcehut. We need a federated, mastodon-like forge based on ForgeFed. See: https://forgefed.org cb3e7757fc
Mineclone dig times balanced (#84)
* mineclone dig times balanced

* fix pickaxey dupe
2023-09-01 15:00:50 +02:00
Github is a non-free platform owned by Microsoft. Reasonable alternatives exist, such as Gitea, Sourcehut. We need a federated, mastodon-like forge based on ForgeFed. See: https://forgefed.org 7f93e8aa0a
MineClone formspec compat (#82)
* MineClone list backgrounds compat

* mineclone get inv func
2023-08-24 20:50:49 -04:00
OgelGames 2f97a367f3
Fix autocrafter destroying replacement items (#72) 2023-06-21 14:49:34 +10:00
unknown 855937aec3 make all nodes diggable in mcl* survival mode 2022-12-02 15:54:21 -05:00
wsor4035 e3d94cb3a8
fix digiline formspec spacing (#27) 2022-05-07 17:04:06 -04:00
wsor4035 37eef73695
add I3 support + update to formspecs v2 (#22)
* add fs helper inv function

* add fs helper prepends function

* add trash can, vacuum tube, teleport tube. wielders, autocrafter, mesetube, injectors

* fixed missed texture to make game agnostic

* fix luacheck
2022-04-16 14:51:59 -04:00
wsor4035 5aa0501872
make pipeworks Game agnostic (#16)
* make it boot in non mtg

* make water flow

* fix water texture warnings

* fix missing steel texture issues

* remove depreciated/unnessary default function calls

* make sounds work

* fix default formspec crashes

* fix wierd tab spacing

* additionally game dig group support

* move crafts to crafts.lua

* make crafts support various games
2022-03-14 21:39:58 -04:00
zichen 7d3a61e595
Fix toggling of autocrafter when `digilines` is not installed (#5)
Co-authored-by: SX <50966843+S-S-X@users.noreply.github.com>
2021-12-26 17:12:15 +11:00
OgelGames 7ba685344c fix autocrafter 2021-05-29 17:37:10 +10:00
hlqkj 29bac67d3a Skip protection check on formspec close
Prevents protector flip/player being hurt/protection violation if the
player closes the formspec without attempting any changes (sorting tube
and autocrafter).
2021-05-06 18:02:19 +02:00
Vanessa Dannenberg fc6efb450c add support for Unified Inventory categories 2021-04-02 15:48:28 -04:00
HybridDog 17a602a5a1 Remove unused loop variables, trailing whitespace and fix mixed-whitespace indentations 2021-02-05 17:17:50 +01:00
HybridDog b2d2ccbcba Remove or comment unused code and declare some variables local 2021-02-03 18:08:50 +01:00
Fedja Beader 505fc7cc49 Add "get_recipe" digiline command for querying the current autocrafter recipe.
Useful for having the player teach the luacontroller how to craft various items.
2020-07-23 01:49:37 +02:00
Louis Royer 62bc13078f Add translation support
- Created `locale/template.txt`
- Fixed some typos
- Replace some `print("[pipeworks]"..` with `pipeworks.logger()`
- Removed "You hacker, you" from descriptions
2020-02-18 17:34:52 +00:00
h-v-smacker f37b21e632 fix autocrafter recipe 2018-11-15 03:51:56 +03:00
Vanessa Dannenberg d7dfd11364 use basic_materials mod where possible 2018-10-30 20:45:48 -04:00
Vanessa Ezekowitz acc2b6802e fix scale on autocrafter's on/off switch 2017-04-12 07:09:35 -04:00
Carter Kolwey c15023a5d1 Tweak listring behavior of autocrafter
Now goes player->source->player and destination->player
2017-03-28 18:02:10 -05:00
Carter Kolwey 1a15a8b453 Add digilines support to autocrafter
"on" and "off" messages turn it on or off, "single" crafts one item, and sending nested tables in the shape of the crafting grid sets the craft. Example message:
{
{"default:wood","default:wood","default:wood"},
{"default:wood","","default:wood"},
{"default:wood","default:wood","default:wood"}
}
2017-02-26 15:35:51 -06:00
Tim 4fdf73fbcd add list rings to pipework inventories 2016-08-29 18:28:43 +02:00
Auke Kok b1b9a7e994 Don't use item_drop(, nil,) 2016-04-01 22:20:07 -07:00
HybridDog 6de437b83d fix 2 other minetest.item_drops 2015-11-18 10:07:00 +01:00
Tim d167aacf4d add ownership/protection handling for device configuration
take any available ownership into account before deciding on area protection
2015-03-11 19:36:41 +01:00
Tim 13e878398c revert accidental revert (810ae99 -- autocrafter.lua) of f79956c 2015-02-02 03:16:15 +01:00
Tim 810ae99008 reduce texturename repetition via __index 2015-01-31 14:47:06 +01:00
Tim f79956c0b6 improve handling of shapeless recipes in the autocrafter recipe filling function 2015-01-30 21:09:43 +01:00
Tim fcba05fd78 move autocrafter, tp-tube and filter-injector crafts to their respective code files 2015-01-29 20:31:08 +01:00
Tim 373c7951d2 add sanity check for upgrade cases of autocrafters with broken metadata (especially for can_dig) 2015-01-29 17:06:09 +01:00
Tim 73b3466a7b improve autocrafter infotext handling
use the item description and provide more information in paused states
2015-01-29 17:06:09 +01:00
Tim 3bcf3b5f2f use on_destruct instead of after_dig_node to clean up the cache entry to avoid any leaking during worldediting 2015-01-28 21:47:50 +01:00
Tim b009e46590 call after_recipe_change also when moving the output item to src or dst to stop the crafter as expected 2015-01-28 21:45:43 +01:00
Tim 197e433f49 don't add unknown or groupnamed items to the crafting grid when setting it via the output slot 2015-01-28 20:56:26 +01:00
Tim 0cb1eb49dc make sure the autocrafter runs after an upgrade 2015-01-28 19:41:38 +01:00
Tim 7dca3393be improve upgrade of autocrafter from both former versions 2015-01-28 18:55:59 +01:00
Tim d75e1a214a allow virtual item moving from output to the recipe grid 2015-01-28 16:51:07 +01:00
Tim a74c2212ab simplify autocrafter code a bit 2015-01-28 16:30:22 +01:00
Tim 320a483f4f add an output field, that is being filled with the crafting result and can be used for quickly emptying or filling the crafting grid with the last registered recipe
some of the recipes are still treated wrongly due to minetest/minetest#2222 but are failling gracefully
2015-01-28 06:51:59 +01:00
Tim 5fa3e1f626 use the default background colors and hotbar image for the autocrafter formspec 2015-01-28 01:36:13 +01:00
Tim 3a46c1266a allow moving virtual items within the crafting grid 2015-01-28 00:42:22 +01:00
Tim e92ac0f7b3 abstract adding of virtual items 2015-01-28 00:33:07 +01:00
Tim 78e081cf25 on_ -> after_ to be consistent with minetest api usage of these prefixes 2015-01-28 00:27:17 +01:00
Tim 6d1bc7b3fc add an enable/disable button to the autocrafter
the reaction time of the button might be a bit confusing though until minetest/minetest#2220 is being resolved
2015-01-28 00:22:35 +01:00
Tim 5ac0053f8c let the infotext show what we are crafting, or if we craft at all 2015-01-27 23:41:46 +01:00
Tim f3b636d63e let the autocrafter catch up on missed crafts 2015-01-27 23:41:46 +01:00
Tim 44bafb844a use nodetimers instead of abm's to run the autocrafters; only run autocrafters when needed
autocrafters will stop() when theres no valid recipe, no dst space or enough src material
it will resume again on inventory or recipe changes
2015-01-27 23:41:46 +01:00
Tim 2ccce52976 split autocraft into a run function and a function autocrafting a singe step
this gives us flexibility for future changes
2015-01-27 23:41:46 +01:00
Tim f427bae557 also cache the recipe consumption to get rid of an additional loop per craft 2015-01-27 23:41:46 +01:00