From ab042bbe9f48a2d8d09520ad0fea18a18d8afbee Mon Sep 17 00:00:00 2001 From: root Date: Wed, 2 Dec 2020 17:45:37 +0100 Subject: [PATCH] update --- mods/3d_armor/README.md | 2 + .../building_blocks/recipes.lua | 4 +- .../homedecor_furniture/init.lua | 2 +- .../homedecor_office/init.lua | 14 +++---- .../homedecor_wardrobe/init.lua | 4 +- mods/mobs_redo/api.lua | 34 +++++++++++---- mods/mobs_redo/api.txt | 3 ++ mods/mobs_redo/settingtypes.txt | 3 ++ mods/plantlife_modpack/trunks/nodes.lua | 8 ++++ mods/skinsdb/meta/character_1931.txt | 3 ++ mods/skinsdb/meta/character_1932.txt | 3 ++ mods/skinsdb/textures/character_1931.png | Bin 0 -> 1638 bytes mods/skinsdb/textures/character_1932.png | Bin 0 -> 6960 bytes mods/unifieddyes/init.lua | 39 ++++++++++-------- 14 files changed, 83 insertions(+), 36 deletions(-) create mode 100644 mods/skinsdb/meta/character_1931.txt create mode 100644 mods/skinsdb/meta/character_1932.txt create mode 100644 mods/skinsdb/textures/character_1931.png create mode 100644 mods/skinsdb/textures/character_1932.png diff --git a/mods/3d_armor/README.md b/mods/3d_armor/README.md index 7bfefc00..57bcf62a 100644 --- a/mods/3d_armor/README.md +++ b/mods/3d_armor/README.md @@ -1,5 +1,7 @@ Modpack - 3d Armor [0.4.13] =========================== +![3d_armor screenshot](https://github.com/minetest-mods/3d_armor/blob/master/screenshot.png) + ![](https://github.com/minetest-mods/3d_armor/workflows/luacheck/badge.svg) ![](https://github.com/minetest-mods/3d_armor/workflows/integration-test/badge.svg) diff --git a/mods/homedecor_modpack/building_blocks/recipes.lua b/mods/homedecor_modpack/building_blocks/recipes.lua index b26cf44a..e0d601fc 100644 --- a/mods/homedecor_modpack/building_blocks/recipes.lua +++ b/mods/homedecor_modpack/building_blocks/recipes.lua @@ -41,7 +41,7 @@ minetest.register_craft({ minetest.register_craft({ output = 'building_blocks:fakegrass 2', recipe = { - {'default:leaves'}, + {'group:leaves'}, {"default:dirt"}, } }) @@ -139,7 +139,7 @@ minetest.register_craft({ minetest.register_craft({ output = 'building_blocks:woodglass 1', recipe = { - {"default:wood"}, + {"group:wood"}, {"default:glass"}, } }) diff --git a/mods/homedecor_modpack/homedecor_furniture/init.lua b/mods/homedecor_modpack/homedecor_furniture/init.lua index c1647ef9..5c317ddb 100644 --- a/mods/homedecor_modpack/homedecor_furniture/init.lua +++ b/mods/homedecor_modpack/homedecor_furniture/init.lua @@ -76,7 +76,7 @@ homedecor.register("wall_shelf", { minetest.register_craft({ output = "homedecor:table", recipe = { - { "default:wood","default:wood", "default:wood" }, + { "group:wood","group:wood", "group:wood" }, { "group:stick", "", "group:stick" }, }, }) diff --git a/mods/homedecor_modpack/homedecor_office/init.lua b/mods/homedecor_modpack/homedecor_office/init.lua index 137ed238..e55c4bcb 100644 --- a/mods/homedecor_modpack/homedecor_office/init.lua +++ b/mods/homedecor_modpack/homedecor_office/init.lua @@ -96,8 +96,8 @@ minetest.register_craft({ output = "homedecor:desk", recipe = { { "stairs:slab_wood", "stairs:slab_wood", "stairs:slab_wood" }, - { "homedecor:drawer_small", "default:wood", "default:wood" }, - { "homedecor:drawer_small", "", "default:wood" }, + { "homedecor:drawer_small", "group:wood", "group:wood" }, + { "homedecor:drawer_small", "", "group:wood" }, }, }) @@ -105,17 +105,17 @@ minetest.register_craft({ output = "homedecor:desk", recipe = { { "moreblocks:slab_wood", "moreblocks:slab_wood", "moreblocks:slab_wood" }, - { "homedecor:drawer_small", "default:wood", "default:wood" }, - { "homedecor:drawer_small", "", "default:wood" }, + { "homedecor:drawer_small", "group:wood", "group:wood" }, + { "homedecor:drawer_small", "", "group:wood" }, }, }) minetest.register_craft({ output = "homedecor:filing_cabinet", recipe = { - { "", "default:wood", "" }, - { "default:wood", "homedecor:drawer_small", "default:wood" }, - { "", "default:wood", "" }, + { "", "group:wood", "" }, + { "group:wood", "homedecor:drawer_small", "group:wood" }, + { "", "group:wood", "" }, }, }) diff --git a/mods/homedecor_modpack/homedecor_wardrobe/init.lua b/mods/homedecor_modpack/homedecor_wardrobe/init.lua index ebbfb0e6..c7d279c0 100644 --- a/mods/homedecor_modpack/homedecor_wardrobe/init.lua +++ b/mods/homedecor_modpack/homedecor_wardrobe/init.lua @@ -189,7 +189,7 @@ minetest.register_craft( { output = "homedecor:wardrobe", recipe = { { "homedecor:drawer_small", "homedecor:kitchen_cabinet" }, - { "homedecor:drawer_small", "default:wood" }, - { "homedecor:drawer_small", "default:wood" } + { "homedecor:drawer_small", "group:wood" }, + { "homedecor:drawer_small", "group:wood" } }, }) diff --git a/mods/mobs_redo/api.lua b/mods/mobs_redo/api.lua index 72947ab8..1aaaa7d2 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 = "20201115", + version = "20201130", intllib = S, invis = minetest.global_exists("invisibility") and invisibility or {} } @@ -58,6 +58,7 @@ local mobs_drop_items = settings:get_bool("mobs_drop_items") ~= false local mobs_griefing = settings:get_bool("mobs_griefing") ~= false local spawn_protected = settings:get_bool("mobs_spawn_protected") ~= false local remove_far = settings:get_bool("remove_far_mobs") ~= false +local mob_area_spawn = settings:get_bool("mob_area_spawn") local difficulty = tonumber(settings:get("mob_difficulty")) or 1.0 local show_health = settings:get_bool("mob_show_health") ~= false local max_per_block = tonumber(settings:get("max_objects_per_block") or 99) @@ -276,10 +277,10 @@ function mob_class:set_velocity(v) c_x, c_y = unpack(self:collision()) end - local yaw = (self.object:get_yaw() or 0) + self.rotate + local yaw = (self.object:get_yaw() or 0) + (self.rotate or 0) -- nil check for velocity - v = v or 0 + v = v or 0.01 -- check if standing in liquid with max viscosity of 7 local visc = min(minetest.registered_nodes[self.standing_in].liquid_viscosity, 7) @@ -291,8 +292,8 @@ function mob_class:set_velocity(v) v = v / (visc + 1) end - -- set velocity with hard limit of 10 - local vel = self.object:get_velocity() + -- set velocity + local vel = self.object:get_velocity() or 0 local new_vel = { x = (sin(yaw) * -v) + c_x, @@ -3908,8 +3909,27 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, inter end end - -- returns position if we have enough space to spawn mob - pos = can_spawn(pos, name) + -- should we check mob area for obstructions ? + if mob_area_spawn ~= true then + + -- do we have enough height clearance to spawn mob? + local ent = minetest.registered_entities[name] + local height = max(1, math.ceil( + (ent.collisionbox[5] or 0.25) - (ent.collisionbox[2] or -0.25) - 1)) + + for n = 0, height do + + local pos2 = {x = pos.x, y = pos.y + n, z = pos.z} + + if minetest.registered_nodes[node_ok(pos2).name].walkable == true then +--print ("--- inside block", name, node_ok(pos2).name) + return + end + end + else + -- returns position if we have enough space to spawn mob + pos = can_spawn(pos, name) + end if pos then diff --git a/mods/mobs_redo/api.txt b/mods/mobs_redo/api.txt index e81b7503..d78fd98f 100644 --- a/mods/mobs_redo/api.txt +++ b/mods/mobs_redo/api.txt @@ -697,6 +697,9 @@ External Settings for "minetest.conf" function. 'mob_nospawn_range' Minimum range a mob can spawn near player (def: 12) 'mob_active_limit' Number of active mobs in game, 0 for unlimited + 'mob_area_spawn' When true will check surrounding area the size of the + mob for obstructions before spawning, otherwise it + defaults to checking the height of the mob only. Players can override the spawn chance for each mob registered by adding a line to their minetest.conf file with a new value, the lower the value the more each diff --git a/mods/mobs_redo/settingtypes.txt b/mods/mobs_redo/settingtypes.txt index 75bf111b..49d24435 100644 --- a/mods/mobs_redo/settingtypes.txt +++ b/mods/mobs_redo/settingtypes.txt @@ -33,3 +33,6 @@ mob_nospawn_range (Mob no-spawn range) float 12.0 # Sets maximum number of active mobs in game (0 for unlimited) mob_active_limit (Mob Active Limit) float 0 + +# Enables area check when spawning mobs +mob_area_spawn (Mob Area Spawn) bool false diff --git a/mods/plantlife_modpack/trunks/nodes.lua b/mods/plantlife_modpack/trunks/nodes.lua index c8199b68..f60281bd 100644 --- a/mods/plantlife_modpack/trunks/nodes.lua +++ b/mods/plantlife_modpack/trunks/nodes.lua @@ -42,6 +42,14 @@ for i in pairs(NoDe) do liquids_pointable = true, on_place = function(itemstack, placer, pointed_thing) local pt = pointed_thing + + if not placer then return end + local playername = placer:get_player_name() + if minetest.is_protected(pt.above, playername) then + minetest.record_protection_violation(pt.above, playername) + return + end + local direction = minetest.dir_to_facedir(placer:get_look_dir()) if minetest.get_node(pt.above).name=="air" then minetest.swap_node(pt.above, {name="trunks:twig_"..math.random(1,4), param2=direction}) diff --git a/mods/skinsdb/meta/character_1931.txt b/mods/skinsdb/meta/character_1931.txt new file mode 100644 index 00000000..37f5f33e --- /dev/null +++ b/mods/skinsdb/meta/character_1931.txt @@ -0,0 +1,3 @@ +Majo +TMSB aka Dragoni or Dragon-ManioNM +CC BY-SA 4.0 diff --git a/mods/skinsdb/meta/character_1932.txt b/mods/skinsdb/meta/character_1932.txt new file mode 100644 index 00000000..571e679f --- /dev/null +++ b/mods/skinsdb/meta/character_1932.txt @@ -0,0 +1,3 @@ +player1234's skin(dont use) +player1234 +CC BY-NC-SA 3.0 diff --git a/mods/skinsdb/textures/character_1931.png b/mods/skinsdb/textures/character_1931.png new file mode 100644 index 0000000000000000000000000000000000000000..b02bdb1e11cc64237f38926ccc1349af9332c8fc GIT binary patch literal 1638 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