diff --git a/oerkki.lua b/oerkki.lua index 6e42c42..f706b43 100644 --- a/oerkki.lua +++ b/oerkki.lua @@ -20,6 +20,7 @@ mobs:register_mob("mobs_monster:oerkki", { textures = { {"mobs_oerkki.png"}, {"mobs_oerkki2.png"}, + {"mobs_oerkki3.png"}, }, makes_footstep_sound = false, sounds = { diff --git a/textures/mobs_oerkki3.png b/textures/mobs_oerkki3.png new file mode 100644 index 0000000..8c24d5c Binary files /dev/null and b/textures/mobs_oerkki3.png differ diff --git a/textures/mobs_tree_monster3.png b/textures/mobs_tree_monster3.png new file mode 100644 index 0000000..9e18fb2 Binary files /dev/null and b/textures/mobs_tree_monster3.png differ diff --git a/textures/mobs_tree_monster4.png b/textures/mobs_tree_monster4.png new file mode 100644 index 0000000..6299e32 Binary files /dev/null and b/textures/mobs_tree_monster4.png differ diff --git a/textures/mobs_tree_monster5.png b/textures/mobs_tree_monster5.png new file mode 100644 index 0000000..67cd508 Binary files /dev/null and b/textures/mobs_tree_monster5.png differ diff --git a/tree_monster.lua b/tree_monster.lua index c1abbea..1708e46 100644 --- a/tree_monster.lua +++ b/tree_monster.lua @@ -1,6 +1,39 @@ local S = mobs.intllib +local tree_types = { + + { nodes = {"ethereal:sakura_leaves", "ethereal:sakura_leaves2"}, + skins = {"mobs_tree_monster5.png"}, + drops = { + {name = "default:stick", chance = 1, min = 1, max = 3}, + {name = "ethereal:sakura_leaves", chance = 1, min = 1, max = 2}, + {name = "ethereal:sakura_trunk", chance = 2, min = 1, max = 2}, + {name = "ethereal:sakura_tree_sapling", chance = 2, min = 0, max = 2}, + } + }, + + { nodes = {"ethereal:frost_leaves"}, + skins = {"mobs_tree_monster3.png"}, + drops = { + {name = "default:stick", chance = 1, min = 1, max = 3}, + {name = "ethereal:frost_leaves", chance = 1, min = 1, max = 2}, + {name = "ethereal:frost_tree", chance = 2, min = 1, max = 2}, + {name = "ethereal:crystal_spike", chance = 4, min = 0, max = 2}, + } + }, + + { nodes = {"ethereal:yellowleaves"}, + skins = {"mobs_tree_monster4.png"}, + drops = { + {name = "default:stick", chance = 1, min = 1, max = 3}, + {name = "ethereal:yellowleaves", chance = 1, min = 1, max = 2}, + {name = "ethereal:yellow_tree_sapling", chance = 2, min = 0, max = 2}, + {name = "ethereal:golden_apple", chance = 3, min = 0, max = 2}, + } + } +} + -- Tree Monster (or Tree Gollum) by PilzAdam @@ -64,13 +97,39 @@ mobs:register_mob("mobs_monster:tree_monster", { punch_start = 48, punch_end = 62, }, + + -- check surrounding nodes and spawn a specific spider + on_spawn = function(self) + + local pos = self.object:get_pos() ; pos.y = pos.y - 1 + local tmp + + for n = 1, #tree_types do + + tmp = tree_types[n] + + if minetest.find_node_near(pos, 1, tmp.nodes) then + + self.base_texture = tmp.skins + self.object:set_properties({textures = tmp.skins}) + + if tmp.drops then + self.drops = tmp.drops + end + + return true + end + end + + return true -- run only once, false/nil runs every activation + end }) if not mobs.custom_spawn_monster then mobs:spawn({ name = "mobs_monster:tree_monster", - nodes = {"default:leaves", "default:jungleleaves"}, + nodes = {"group:leaves"}, --{"default:leaves", "default:jungleleaves"}, max_light = 7, chance = 7000, min_height = 0,