From 475e0f5624eed3d013ebd374382d79affff56a3a Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sat, 20 Jun 2020 10:08:15 +0100 Subject: [PATCH 1/4] use global particle effect function for sand/lava monster --- lava_flan.lua | 32 ++------------------------------ sand_monster.lua | 4 ++-- 2 files changed, 4 insertions(+), 32 deletions(-) diff --git a/lava_flan.lua b/lava_flan.lua index 5bf23fa..74fadb5 100644 --- a/lava_flan.lua +++ b/lava_flan.lua @@ -62,21 +62,7 @@ mobs:register_mob("mobs_monster:lava_flan", { pos.y = pos.y + 1 - minetest.add_particlespawner({ - amount = 40, - time = 0.25, - minpos = pos, - maxpos = pos, - minvel = {x = -2, y = 0, z = -2}, - maxvel = {x = 2, y = 2, z = 2}, - minacc = {x = 0, y = 0, z = 0}, - maxacc = {x = 0, y = 10, z = 0}, - minexptime = 0.1, - maxexptime = 1, - minsize = 3.0, - maxsize = 5.0, - texture = "tnt_smoke.png", - }) + 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) @@ -91,21 +77,7 @@ mobs:register_mob("mobs_monster:lava_flan", { minetest.set_node(pos, {name = "fire:basic_flame"}) end - 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", - }) + mobs:effect(pos, 40, "fire_basic_flame.png", 2, 3, 2, 5, 10, nil) self.object:remove() end diff --git a/sand_monster.lua b/sand_monster.lua index d341db8..f1c67d5 100644 --- a/sand_monster.lua +++ b/sand_monster.lua @@ -95,9 +95,9 @@ mobs:register_mob("mobs_monster:sand_monster", { ]] on_die = function(self, pos) pos.y = pos.y + 0.5 - effect(pos, 30, "mobs_sand_particles.png", 0.1, 2, 3, 5) + mobs:effect(pos, 30, "mobs_sand_particles.png", .1, 2, 3, 5) pos.y = pos.y + 0.25 - effect(pos, 30, "mobs_sand_particles.png", 0.1, 2, 3, 5) + mobs:effect(pos, 30, "mobs_sand_particles.png", .1, 2, 3, 5) end, --[[ on_rightclick = function(self, clicker) From a6b6795eb4bb732d14cc6fd451de64164ab463d8 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Sun, 21 Jun 2020 20:52:52 +0100 Subject: [PATCH 2/4] tweak obsidian flan node breakage --- lava_flan.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lava_flan.lua b/lava_flan.lua index 74fadb5..e160e43 100644 --- a/lava_flan.lua +++ b/lava_flan.lua @@ -293,7 +293,9 @@ mobs:register_arrow("mobs_monster:obsidian_arrow", { texture = def.tiles[1] end - if def.groups and def.groups.level == 2 then + -- 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 From a39eec8822243b5ec03df2a61e26826576c922bb Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Mon, 22 Jun 2020 21:24:57 +0100 Subject: [PATCH 3/4] use mobs:add_mob() to add obsidian flan, also lava damages ob flan --- lava_flan.lua | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lava_flan.lua b/lava_flan.lua index e160e43..12d403f 100644 --- a/lava_flan.lua +++ b/lava_flan.lua @@ -70,7 +70,9 @@ mobs:register_mob("mobs_monster:lava_flan", { self.object:remove() if math.random(4) == 1 then - minetest.add_entity(pos, "mobs_monster:obsidian_flan") + mobs:add_mob(pos, { + name = "mobs_monster:obsidian_flan", + }) end else if minetest.get_node(pos).name == "air" then @@ -229,9 +231,10 @@ mobs:register_mob("mobs_monster:obsidian_flan", { 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 = 0, + lava_damage = 8, light_damage = 0, animation = { speed_normal = 15, From 3c3d65796a453da2094d827d86a23d0a05bceffe Mon Sep 17 00:00:00 2001 From: TenPlus1 Date: Sun, 28 Jun 2020 14:52:17 +0100 Subject: [PATCH 4/4] since lava flan live in lava, set self.fly_in so they dont slow down when moving around --- lava_flan.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/lava_flan.lua b/lava_flan.lua index 12d403f..55de98f 100644 --- a/lava_flan.lua +++ b/lava_flan.lua @@ -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,