diff --git a/mods/3d_armor/.ldoc/config.ld b/mods/3d_armor/.ldoc/config.ld index f814f98d..d24e58cd 100644 --- a/mods/3d_armor/.ldoc/config.ld +++ b/mods/3d_armor/.ldoc/config.ld @@ -21,6 +21,7 @@ not_luadoc = true boilerplate = false wrap = false style = true +favicon = "https://www.minetest.net/media/icon.svg" file = { "3d_armor/api.lua", diff --git a/mods/mobs_redo/api.lua b/mods/mobs_redo/api.lua index 5a2f0bbc..7ecc0e49 100644 --- a/mods/mobs_redo/api.lua +++ b/mods/mobs_redo/api.lua @@ -8,7 +8,7 @@ local use_cmi = minetest.global_exists("cmi") mobs = { mod = "redo", - version = "20210731", + version = "20210801", intllib = S, invis = minetest.global_exists("invisibility") and invisibility or {} } @@ -2703,6 +2703,12 @@ function mob_class:do_states(dtime) local obj = minetest.add_entity(p, self.arrow) local ent = obj:get_luaentity() local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5 + + -- check for custom override for arrow + if self.arrow_override then + self.arrow_override(ent) + end + local v = ent.velocity or 1 -- or set to default ent.switch = 1 @@ -3573,6 +3579,7 @@ minetest.register_entity(name, setmetatable({ armor = def.armor, on_rightclick = def.on_rightclick, arrow = def.arrow, + arrow_override = def.arrow_override, shoot_interval = def.shoot_interval, sounds = def.sounds, animation = def.animation, diff --git a/mods/mobs_redo/api.txt b/mods/mobs_redo/api.txt index 5a4f7cb5..772f76a6 100644 --- a/mods/mobs_redo/api.txt +++ b/mods/mobs_redo/api.txt @@ -123,6 +123,8 @@ functions needed for the mob to work properly which contains the following: continue chasing. 'arrow' holds the pre-defined arrow object to shoot when attacking. + 'arrow_override' function that allows tweaking of arrow entity from + inside mob definition (self) passed to function. 'dogshoot_switch' allows switching between attack types by using timers (1 for shoot, 2 for dogfight) 'dogshoot_count_max' contains how many seconds before switching from diff --git a/mods/mobs_redo/readme.MD b/mods/mobs_redo/readme.MD index a2bfba7e..d0f062f5 100644 --- a/mods/mobs_redo/readme.MD +++ b/mods/mobs_redo/readme.MD @@ -23,6 +23,7 @@ Lucky Blocks: 9 Changelog: +- 1.56 - Added arrow_override function to mob definition to tweak arrow entity settings, tamed monsters no longer despawn when outside loaded map area. - 1.55 - Add 'peaceful_player' privelage and setting so mobs don't attack specific players (thanks sfence), add support for MarkBu's pathfinder mod, remove need for default mod - 1.54 - Simplified animal breeding function, added editable settings (thanks Wuzzy), Child mobs now take 20 mins to grow up, reverted to simple mob spawning with setting to use area checks, on_flop added, air_damage added. - 1.53 - Added 'on_map_load' settings to mobs:spawn so that mobs will only spawn when new areas of map are loaded. diff --git a/mods/techpack/tubelib_addons3/chest.lua b/mods/techpack/tubelib_addons3/chest.lua index 8d075fc2..ed6910c0 100644 --- a/mods/techpack/tubelib_addons3/chest.lua +++ b/mods/techpack/tubelib_addons3/chest.lua @@ -151,7 +151,14 @@ tubelib.register_node("tubelib_addons3:chest", {}, { end, on_push_item = function(pos, side, item) local meta = minetest.get_meta(pos) - return tubelib.put_item(meta, "main", item) + local res = tubelib.put_item(meta, "main", item) + if res == false then + local inv = meta:get_inventory() + local leftover = inv:add_item("main", item) + item:set_count(leftover:get_count()) + return false + end + return true end, on_unpull_item = function(pos, side, item) local meta = minetest.get_meta(pos) diff --git a/mods/techpack/tubelib_addons3/distributor.lua b/mods/techpack/tubelib_addons3/distributor.lua index c5af2a43..eb5ee713 100644 --- a/mods/techpack/tubelib_addons3/distributor.lua +++ b/mods/techpack/tubelib_addons3/distributor.lua @@ -244,6 +244,12 @@ local function distributing(pos, meta) rearrange_table(kvFilterItemNames[name]) busy = true break + elseif num ~= stack:get_count() then + local color = Side2Color[side] + counter[color] = counter[color] + stack:get_count() + rearrange_table(kvFilterItemNames[name]) + busy = true + break end end @@ -257,6 +263,10 @@ local function distributing(pos, meta) counter[color] = counter[color] + num busy = true end + elseif num ~= stack:get_count() then + local color = Side2Color[side] + counter[color] = counter[color] + stack:get_count() + busy = true end end end diff --git a/mods/techpack/tubelib_addons3/pusher.lua b/mods/techpack/tubelib_addons3/pusher.lua index bb6e9b10..cc4979a5 100644 --- a/mods/techpack/tubelib_addons3/pusher.lua +++ b/mods/techpack/tubelib_addons3/pusher.lua @@ -42,11 +42,15 @@ local function pushing(pos, meta) local player_name = meta:get_string("player_name") local items = tubelib.pull_stack(pos, "L", player_name) if items ~= nil then + local count = items:get_count() if tubelib.push_items(pos, "R", items, player_name) == false then -- place item back tubelib.unpull_items(pos, "L", items, player_name) - State:blocked(pos, meta) - return + -- Complete stack rejected + if count == items:get_count() then + State:blocked(pos, meta) + return + end end if State.get_state(pos, meta) ~= tubelib.STOPPED then State:keep_running(pos, meta, COUNTDOWN_TICKS, 1)