From 56751529201cc6350c3ed88e0a4235f0e1a4cf6f Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Fri, 11 Dec 2020 17:39:18 +0100 Subject: [PATCH] Initial Commit --- README | 2 ++ init.lua | 34 ++++++++++++++++++++++++++++++++++ mod.conf | 3 +++ settingtypes.txt | 2 ++ 4 files changed, 41 insertions(+) create mode 100644 README create mode 100644 init.lua create mode 100644 mod.conf create mode 100644 settingtypes.txt diff --git a/README b/README new file mode 100644 index 0000000..df7a64d --- /dev/null +++ b/README @@ -0,0 +1,2 @@ +# invutil +Inventory utilities for dragonfire (Includes AutoRefill and AutoEject) diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..c8b7e64 --- /dev/null +++ b/init.lua @@ -0,0 +1,34 @@ +minetest.register_globalstep(function(dtime) + local player = minetest.localplayer + if not player then return end + local item = player:get_wielded_item() + local itemdef = minetest.get_item_def(item:get_name()) + local wieldindex = player:get_wield_index() + if minetest.settings:get_bool("autorefill") and itemdef then + local space = item:get_free_space() + local i = minetest.find_item(item:get_name(), wieldindex + 1) + if i and space > 0 then + local invact = InventoryAction("move") + invact:to("current_player", "main", wieldindex) + invact:from("current_player", "main", i) + invact:set_count(space) + invact:apply() + end + end + if minetest.settings:get_bool("autoeject") then + local invact = InventoryAction("drop") + local list = (minetest.settings:get("eject_items") or ""):split(",") + local inventory = minetest.get_inventory("current_player") + for index, stack in pairs(inventory.main) do + if table.indexof(list, stack:get_name()) ~= -1 then + invact:from("current_player", "main", index) + invact:apply() + end + end + end +end) + +minetest.register_list_command("eject", "Configure AutoEject", "eject_items") + +minetest.register_cheat("AutoRefill", "Inventory", "autorefill") +minetest.register_cheat("AutoEject", "Inventory", "autoeject") diff --git a/mod.conf b/mod.conf new file mode 100644 index 0000000..61f6e06 --- /dev/null +++ b/mod.conf @@ -0,0 +1,3 @@ +name = invutil +author = Fleckenstein +description = Inventory utilities for dragonfire (Includes AutoRefill and AutoEject) diff --git a/settingtypes.txt b/settingtypes.txt new file mode 100644 index 0000000..6dad0b1 --- /dev/null +++ b/settingtypes.txt @@ -0,0 +1,2 @@ +autorefill (AutoRefill) bool false +autoeject (AutoEject) bool false -- 2.44.0