Loading depends.txt +1 −1 Original line number Diff line number Diff line default mobs intllib? lucky_block? toolranks? intllib? init.lua +6 −17 Original line number Diff line number Diff line local path = minetest.get_modpath("mobs_monster") -- Intllib local S if minetest.global_exists("intllib") then if intllib.make_gettext_pair then -- New method using gettext. S = intllib.make_gettext_pair() else -- Old method using text files. S = intllib.Getter() end else S = function(s) return s end end -- Load support for intllib. local path = minetest.get_modpath(minetest.get_current_modname()) local S = minetest.get_translator and minetest.get_translator("mobs_monster") or dofile(path .. "/intllib.lua") mobs.intllib = S -- Monsters dofile(path .. "/dirt_monster.lua") -- PilzAdam dofile(path .. "/dungeon_master.lua") dofile(path .. "/oerkki.lua") Loading @@ -28,6 +16,7 @@ dofile(path .. "/lava_flan.lua") -- Zeg9 dofile(path .. "/mese_monster.lua") dofile(path .. "/spider.lua") -- AspireMint -- Lucky Blocks dofile(path .. "/lucky_block.lua") print ("[MOD] Mobs Redo Monsters loaded") print (S("[MOD] Mobs Redo Monsters loaded")) intllib.lua 0 → 100644 +3 −0 Original line number Diff line number Diff line -- Support for the old multi-load method dofile(minetest.get_modpath("intllib").."/init.lua") lava_flan.lua +163 −19 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ mobs:register_mob("mobs_monster:lava_flan", { immune_to = { {"mobs:pick_lava", -2}, -- lava pick heals 2 health }, fly_in = {"default:lava_source", "default:lava_flowing"}, animation = { speed_normal = 15, speed_run = 15, Loading @@ -55,27 +56,34 @@ mobs:register_mob("mobs_monster:lava_flan", { }, on_die = function(self, pos) local cod = self.cause_of_death or {} local def = cod.node and minetest.registered_nodes[cod.node] if def and def.groups and def.groups.water then pos.y = pos.y + 1 mobs:effect(pos, 40, "tnt_smoke.png", 3, 5, 2, 0.5, nil, false) minetest.sound_play("fire_extinguish_flame", {pos = pos, max_hear_distance = 12, gain = 1.5}, true) self.object:remove() if math.random(4) == 1 then mobs:add_mob(pos, { name = "mobs_monster:obsidian_flan", }) end else if minetest.get_node(pos).name == "air" then minetest.set_node(pos, {name = "fire:basic_flame"}) end self.object:remove() mobs:effect(pos, 40, "fire_basic_flame.png", 2, 3, 2, 5, 10, nil) minetest.add_particlespawner({ amount = 20, time = 0.25, minpos = pos, maxpos = pos, minvel = {x = -2, y = -2, z = -2}, maxvel = {x = 2, y = 2, z = 2}, minacc = {x = 0, y = -10, z = 0}, maxacc = {x = 0, y = -10, z = 0}, minexptime = 0.1, maxexptime = 1, minsize = 1.0, maxsize = 2.0, texture = "fire_basic_flame.png", }) self.object:remove() end end, glow = 10, }) Loading Loading @@ -116,6 +124,9 @@ local old_handle_node_drops = minetest.handle_node_drops function minetest.handle_node_drops(pos, drops, digger) -- does player exist? if not digger then return end -- are we holding Lava Pick? if digger:get_wielded_item():get_name() ~= ("mobs:pick_lava") then return old_handle_node_drops(pos, drops, digger) Loading Loading @@ -312,3 +323,136 @@ minetest.override_item("mobs:pick_lava", { description = toolranks.create_description("Lava Pickaxe", 0, 1), after_use = toolranks.new_afteruse}) end -- obsidian flan mobs:register_mob("mobs_monster:obsidian_flan", { type = "monster", passive = false, attack_type = "shoot", shoot_interval = 0.5, shoot_offset = 1.0, arrow = "mobs_monster:obsidian_arrow", reach = 2, damage = 3, hp_min = 10, hp_max = 35, armor = 30, visual_size = {x = 0.6, y = 0.6}, collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "zmobs_lava_flan.x", textures = { {"mobs_obsidian_flan.png"}, }, blood_texture = "default_obsidian.png", makes_footstep_sound = true, sounds = { random = "mobs_lavaflan", -- war_cry = "mobs_lavaflan", }, walk_velocity = 0.1, run_velocity = 0.5, jump = false, view_range = 10, floats = 0, drops = { {name = "default:obsidian_shard", chance = 1, min = 1, max = 5}, {name = "default:obsidian", chance = 3, min = 0, max = 2}, }, water_damage = 0, lava_damage = 8, light_damage = 0, animation = { speed_normal = 15, speed_run = 15, stand_start = 0, stand_end = 8, walk_start = 10, walk_end = 18, run_start = 20, run_end = 28, punch_start = 20, punch_end = 28, } }) mobs:register_egg("mobs_monster:obsidian_flan", S("Obsidian Flan"), "default_obsidian.png", 1) local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false -- mese arrow (weapon) mobs:register_arrow("mobs_monster:obsidian_arrow", { visual = "sprite", -- visual = "wielditem", visual_size = {x = 0.5, y = 0.5}, textures = {"default_obsidian_shard.png"}, velocity = 6, -- rotate = 180, hit_player = function(self, player) player:punch(self.object, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = 8}, }, nil) end, hit_mob = function(self, player) player:punch(self.object, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = 8}, }, nil) end, hit_node = function(self, pos, node) if mobs_griefing == false or minetest.is_protected(pos, "") then return end local texture = "default_dirt.png" --fallback texture local radius = 1 local def = minetest.registered_nodes[node] if def then node = { name = node } end if def and def.tiles and def.tiles[1] then texture = def.tiles[1] end -- do not break obsidian or diamond blocks or unbreakable nodes if (def.groups and def.groups.level and def.groups.level > 1) or def.groups.unbreakable then return end minetest.add_particlespawner({ amount = 32, time = 0.1, minpos = vector.subtract(pos, radius / 2), maxpos = vector.add(pos, radius / 2), minvel = {x = -3, y = 0, z = -3}, maxvel = {x = 3, y = 5, z = 3}, minacc = {x = 0, y = -10, z = 0}, maxacc = {x = 0, y = -10, z = 0}, minexptime = 0.8, maxexptime = 2.0, minsize = radius * 0.33, maxsize = radius, texture = texture, -- ^ only as fallback for clients without support for `node` parameter node = node, collisiondetection = true, }) minetest.set_node(pos, {name = "air"}) local snd = def.sounds and def.sounds.dug or "default_dig_crumbly" minetest.sound_play(snd, {pos = pos, max_hear_distance = 12, gain = 1.0}, true) end }) locale/mobs_monster.de.tr 0 → 100644 +14 −0 Original line number Diff line number Diff line # textdomain:mobs_monster Cobweb=Spinnennetz Dirt Monster=Erdmonster Dungeon Master=Kerkermeister Lava Flan=Lavaflan Lava Pickaxe=Lavaspitzhacke Lava orb=Lavakugel Mese Monster=Mesemonster #Obsidian Flan= Oerkki=Oerkki Sand Monster=Sandmonster Spider=Spinne Stone Monster=Steinmonster Tree Monster=Baummonster Loading
depends.txt +1 −1 Original line number Diff line number Diff line default mobs intllib? lucky_block? toolranks? intllib?
init.lua +6 −17 Original line number Diff line number Diff line local path = minetest.get_modpath("mobs_monster") -- Intllib local S if minetest.global_exists("intllib") then if intllib.make_gettext_pair then -- New method using gettext. S = intllib.make_gettext_pair() else -- Old method using text files. S = intllib.Getter() end else S = function(s) return s end end -- Load support for intllib. local path = minetest.get_modpath(minetest.get_current_modname()) local S = minetest.get_translator and minetest.get_translator("mobs_monster") or dofile(path .. "/intllib.lua") mobs.intllib = S -- Monsters dofile(path .. "/dirt_monster.lua") -- PilzAdam dofile(path .. "/dungeon_master.lua") dofile(path .. "/oerkki.lua") Loading @@ -28,6 +16,7 @@ dofile(path .. "/lava_flan.lua") -- Zeg9 dofile(path .. "/mese_monster.lua") dofile(path .. "/spider.lua") -- AspireMint -- Lucky Blocks dofile(path .. "/lucky_block.lua") print ("[MOD] Mobs Redo Monsters loaded") print (S("[MOD] Mobs Redo Monsters loaded"))
intllib.lua 0 → 100644 +3 −0 Original line number Diff line number Diff line -- Support for the old multi-load method dofile(minetest.get_modpath("intllib").."/init.lua")
lava_flan.lua +163 −19 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ mobs:register_mob("mobs_monster:lava_flan", { immune_to = { {"mobs:pick_lava", -2}, -- lava pick heals 2 health }, fly_in = {"default:lava_source", "default:lava_flowing"}, animation = { speed_normal = 15, speed_run = 15, Loading @@ -55,27 +56,34 @@ mobs:register_mob("mobs_monster:lava_flan", { }, on_die = function(self, pos) local cod = self.cause_of_death or {} local def = cod.node and minetest.registered_nodes[cod.node] if def and def.groups and def.groups.water then pos.y = pos.y + 1 mobs:effect(pos, 40, "tnt_smoke.png", 3, 5, 2, 0.5, nil, false) minetest.sound_play("fire_extinguish_flame", {pos = pos, max_hear_distance = 12, gain = 1.5}, true) self.object:remove() if math.random(4) == 1 then mobs:add_mob(pos, { name = "mobs_monster:obsidian_flan", }) end else if minetest.get_node(pos).name == "air" then minetest.set_node(pos, {name = "fire:basic_flame"}) end self.object:remove() mobs:effect(pos, 40, "fire_basic_flame.png", 2, 3, 2, 5, 10, nil) minetest.add_particlespawner({ amount = 20, time = 0.25, minpos = pos, maxpos = pos, minvel = {x = -2, y = -2, z = -2}, maxvel = {x = 2, y = 2, z = 2}, minacc = {x = 0, y = -10, z = 0}, maxacc = {x = 0, y = -10, z = 0}, minexptime = 0.1, maxexptime = 1, minsize = 1.0, maxsize = 2.0, texture = "fire_basic_flame.png", }) self.object:remove() end end, glow = 10, }) Loading Loading @@ -116,6 +124,9 @@ local old_handle_node_drops = minetest.handle_node_drops function minetest.handle_node_drops(pos, drops, digger) -- does player exist? if not digger then return end -- are we holding Lava Pick? if digger:get_wielded_item():get_name() ~= ("mobs:pick_lava") then return old_handle_node_drops(pos, drops, digger) Loading Loading @@ -312,3 +323,136 @@ minetest.override_item("mobs:pick_lava", { description = toolranks.create_description("Lava Pickaxe", 0, 1), after_use = toolranks.new_afteruse}) end -- obsidian flan mobs:register_mob("mobs_monster:obsidian_flan", { type = "monster", passive = false, attack_type = "shoot", shoot_interval = 0.5, shoot_offset = 1.0, arrow = "mobs_monster:obsidian_arrow", reach = 2, damage = 3, hp_min = 10, hp_max = 35, armor = 30, visual_size = {x = 0.6, y = 0.6}, collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.8, 0.3}, visual = "mesh", mesh = "zmobs_lava_flan.x", textures = { {"mobs_obsidian_flan.png"}, }, blood_texture = "default_obsidian.png", makes_footstep_sound = true, sounds = { random = "mobs_lavaflan", -- war_cry = "mobs_lavaflan", }, walk_velocity = 0.1, run_velocity = 0.5, jump = false, view_range = 10, floats = 0, drops = { {name = "default:obsidian_shard", chance = 1, min = 1, max = 5}, {name = "default:obsidian", chance = 3, min = 0, max = 2}, }, water_damage = 0, lava_damage = 8, light_damage = 0, animation = { speed_normal = 15, speed_run = 15, stand_start = 0, stand_end = 8, walk_start = 10, walk_end = 18, run_start = 20, run_end = 28, punch_start = 20, punch_end = 28, } }) mobs:register_egg("mobs_monster:obsidian_flan", S("Obsidian Flan"), "default_obsidian.png", 1) local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false -- mese arrow (weapon) mobs:register_arrow("mobs_monster:obsidian_arrow", { visual = "sprite", -- visual = "wielditem", visual_size = {x = 0.5, y = 0.5}, textures = {"default_obsidian_shard.png"}, velocity = 6, -- rotate = 180, hit_player = function(self, player) player:punch(self.object, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = 8}, }, nil) end, hit_mob = function(self, player) player:punch(self.object, 1.0, { full_punch_interval = 1.0, damage_groups = {fleshy = 8}, }, nil) end, hit_node = function(self, pos, node) if mobs_griefing == false or minetest.is_protected(pos, "") then return end local texture = "default_dirt.png" --fallback texture local radius = 1 local def = minetest.registered_nodes[node] if def then node = { name = node } end if def and def.tiles and def.tiles[1] then texture = def.tiles[1] end -- do not break obsidian or diamond blocks or unbreakable nodes if (def.groups and def.groups.level and def.groups.level > 1) or def.groups.unbreakable then return end minetest.add_particlespawner({ amount = 32, time = 0.1, minpos = vector.subtract(pos, radius / 2), maxpos = vector.add(pos, radius / 2), minvel = {x = -3, y = 0, z = -3}, maxvel = {x = 3, y = 5, z = 3}, minacc = {x = 0, y = -10, z = 0}, maxacc = {x = 0, y = -10, z = 0}, minexptime = 0.8, maxexptime = 2.0, minsize = radius * 0.33, maxsize = radius, texture = texture, -- ^ only as fallback for clients without support for `node` parameter node = node, collisiondetection = true, }) minetest.set_node(pos, {name = "air"}) local snd = def.sounds and def.sounds.dug or "default_dig_crumbly" minetest.sound_play(snd, {pos = pos, max_hear_distance = 12, gain = 1.0}, true) end })
locale/mobs_monster.de.tr 0 → 100644 +14 −0 Original line number Diff line number Diff line # textdomain:mobs_monster Cobweb=Spinnennetz Dirt Monster=Erdmonster Dungeon Master=Kerkermeister Lava Flan=Lavaflan Lava Pickaxe=Lavaspitzhacke Lava orb=Lavakugel Mese Monster=Mesemonster #Obsidian Flan= Oerkki=Oerkki Sand Monster=Sandmonster Spider=Spinne Stone Monster=Steinmonster Tree Monster=Baummonster