Compare commits

20 Commits

Author SHA1 Message Date
c8003524d6 Merge remote-tracking branch 'upstream/master' 2021-01-29 17:44:57 +01:00
dbc501da64 lava orb and axe items glow 2021-01-28 14:38:57 +00:00
4a3bf56409 Merge remote-tracking branch 'upstream/master' 2021-01-23 12:56:11 +01:00
2c88a98ca3 update mod.conf info 2021-01-21 10:15:19 +00:00
5297dfbbdf Merge remote-tracking branch 'upstream/master' 2020-09-21 18:06:40 +02:00
4018a5c8e8 Added spawn.lua check for custom mob spawns, example file included 2020-09-21 10:03:08 +01:00
1e72bfd920 Merge remote-tracking branch 'upstream/master' 2020-09-04 21:40:14 +02:00
144c851207 convert mobs_fireball.ogg to mono 2020-09-04 09:14:27 +01:00
057177203a Merge remote-tracking branch 'upstream/master' 2020-08-29 20:31:49 +02:00
84f1ff383a mt5.x translations added/updated (thanks dacmot) 2020-08-29 09:35:58 +01:00
6b69a3e23d Merge remote-tracking branch 'upstream/master' 2020-08-25 20:06:32 +02:00
a42877ef78 added 5.x translations 2020-08-25 10:53:02 +01:00
deea6597da update translation detection 2020-08-25 09:56:43 +01:00
7be2f3bd63 Merge remote-tracking branch 'upstream/master' 2020-08-19 21:24:25 +02:00
fd1807e746 updated locale (thanks IFRFSX) 2020-08-19 13:03:32 +01:00
ca10e7e1f6 Merge remote-tracking branch 'upstream/master' 2020-07-17 22:40:01 +02:00
3c3d65796a since lava flan live in lava, set self.fly_in so they dont slow down when moving around 2020-06-28 14:52:17 +01:00
a39eec8822 use mobs:add_mob() to add obsidian flan, also lava damages ob flan 2020-06-22 21:24:57 +01:00
a6b6795eb4 tweak obsidian flan node breakage 2020-06-21 20:52:52 +01:00
475e0f5624 use global particle effect function for sand/lava monster 2020-06-20 10:08:15 +01:00
26 changed files with 378 additions and 77 deletions

View File

@ -1,5 +1,5 @@
default
mobs
intllib?
lucky_block?
toolranks?
intllib?

View File

@ -58,6 +58,7 @@ if minetest.get_modpath("ethereal") then
spawn_on = "ethereal:gray_dirt"
end
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "mobs_monster:dirt_monster",
nodes = {spawn_on},
@ -68,6 +69,7 @@ mobs:spawn({
min_height = 0,
day_toggle = false,
})
end
mobs:register_egg("mobs_monster:dirt_monster", S("Dirt Monster"), "default_dirt.png", 1)

View File

@ -65,6 +65,7 @@ mobs:register_mob("mobs_monster:dungeon_master", {
})
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "mobs_monster:dungeon_master",
nodes = {"default:stone", "default:sandstone", "nether:netherrack"},
@ -73,6 +74,7 @@ mobs:spawn({
active_object_count = 1,
max_height = -70,
})
end
mobs:register_egg("mobs_monster:dungeon_master", S("Dungeon Master"), "fire_basic_flame.png", 1, true)

View File

@ -1,34 +1,44 @@
local path = minetest.get_modpath("mobs_monster")
-- 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")
-- 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
mobs.intllib = S
-- Check for custom mob spawn file
local input = io.open(path .. "spawn.lua", "r")
if input then
mobs.custom_spawn_monster = true
input:close()
input = nil
end
-- Monsters
dofile(path .. "dirt_monster.lua") -- PilzAdam
dofile(path .. "dungeon_master.lua")
dofile(path .. "oerkki.lua")
dofile(path .. "sand_monster.lua")
dofile(path .. "stone_monster.lua")
dofile(path .. "tree_monster.lua")
dofile(path .. "lava_flan.lua") -- Zeg9
dofile(path .. "mese_monster.lua")
dofile(path .. "spider.lua") -- AspireMint
dofile(path .. "minotaur.lua") -- NALC(sys4 fork MFF) Kalabasa
dofile(path .. "/dirt_monster.lua") -- PilzAdam
dofile(path .. "/dungeon_master.lua")
dofile(path .. "/oerkki.lua")
dofile(path .. "/sand_monster.lua")
dofile(path .. "/stone_monster.lua")
dofile(path .. "/tree_monster.lua")
dofile(path .. "/lava_flan.lua") -- Zeg9
dofile(path .. "/mese_monster.lua")
dofile(path .. "/spider.lua") -- AspireMint
dofile(path .. "/minotaur.lua") -- NALC(sys4 fork MFF) Kalabasa
dofile(path .. "/lucky_block.lua")
-- Load custom spawning
if mobs.custom_spawn_monster then
dofile(path .. "spawn.lua")
end
print ("[MOD] Mobs Redo Monsters loaded")
-- Lucky Blocks
dofile(path .. "lucky_block.lua")
print (S("[MOD] Mobs Redo Monsters loaded"))

3
intllib.lua Normal file
View File

@ -0,0 +1,3 @@
-- Support for the old multi-load method
dofile(minetest.get_modpath("intllib").."/init.lua")

View File

@ -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,
@ -62,21 +63,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)
@ -84,28 +71,16 @@ 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
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
@ -114,6 +89,7 @@ mobs:register_mob("mobs_monster:lava_flan", {
})
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "mobs_monster:lava_flan",
nodes = {"default:lava_source"},
@ -121,6 +97,7 @@ mobs:spawn({
active_object_count = 1,
max_height = 0,
})
end
mobs:register_egg("mobs_monster:lava_flan", S("Lava Flan"), "default_lava.png", 1)
@ -132,6 +109,7 @@ mobs:alias_mob("mobs:lava_flan", "mobs_monster:lava_flan") -- compatibility
minetest.register_craftitem(":mobs:lava_orb", {
description = S("Lava orb"),
inventory_image = "zmobs_lava_orb.png",
light_source = 14,
})
minetest.register_alias("zmobs:lava_orb", "mobs:lava_orb")
@ -201,7 +179,8 @@ minetest.register_tool(":mobs:pick_lava", {
},
damage_groups = {fleshy = 6, fire = 1},
},
groups = {pickaxe = 1}
groups = {pickaxe = 1},
light_source = 14
})
minetest.register_craft({
@ -257,9 +236,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,
@ -321,7 +301,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

14
locale/mobs_monster.de.tr Normal file
View File

@ -0,0 +1,14 @@
# 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

14
locale/mobs_monster.en.tr Normal file
View File

@ -0,0 +1,14 @@
# textdomain:mobs_monster
#Cobweb=
#Dirt Monster=
#Dungeon Master=
#Lava Flan=
#Lava Pickaxe=
#Lava orb=
#Mese Monster=
#Obsidian Flan=
#Oerkki=
#Sand Monster=
#Spider=
#Stone Monster=
#Tree Monster=

14
locale/mobs_monster.fr.tr Normal file
View File

@ -0,0 +1,14 @@
# textdomain:mobs_monster
Cobweb=Toile d'arraignée
Dirt Monster=Monstre de terre
Dungeon Master=Maître des donjons
Lava Flan=Lave en gelée
Lava Pickaxe=Pioche de lave
Lava orb=Orbe de lave
Mese Monster=Monstre de mese
Obsidian Flan=Obsidienne en gelée
Oerkki=Oerkki
Sand Monster=Monstre de sable
Spider=Araignée
Stone Monster=Monstre de pierre
Tree Monster=Monstre de bois

14
locale/mobs_monster.it.tr Normal file
View File

@ -0,0 +1,14 @@
# textdomain:mobs_monster
Cobweb=Ragnatela
Dirt Monster=Mostro di terra
Dungeon Master=Padrone delle segrete
Lava Flan=Sformato di lava
Lava Pickaxe=Piccone di lava
Lava orb=Sfera di lava
Mese Monster=Mostro di mese
#Obsidian Flan=
Oerkki=Oerkki
Sand Monster=Mostro di sabbia
Spider=Ragno
Stone Monster=Mostro di pietra
Tree Monster=Albero mostro

14
locale/mobs_monster.ms.tr Normal file
View File

@ -0,0 +1,14 @@
# textdomain:mobs_monster
Cobweb=Sarang Labah-labah
Dirt Monster=Raksasa Tanah
Dungeon Master=Penjaga Kurungan Bawah Tanah
Lava Flan=Raksasa Lava
Lava Pickaxe=Beliung Lava
Lava orb=Bola Lava
Mese Monster=Raksasa Mese
#Obsidian Flan=
Oerkki=Oerkki
Sand Monster=Raksasa Pasir
Spider=Labah-labah
Stone Monster=Raksasa Batu
Tree Monster=Raksasa Pokok

14
locale/mobs_monster.tr.tr Normal file
View File

@ -0,0 +1,14 @@
# textdomain:mobs_monster
Cobweb=Örümcek ağı
Dirt Monster=Toprak Canavarı
Dungeon Master=Zindan başı
Lava Flan=Lav Flan
Lava Pickaxe=Lav kazması
Lava orb=Lav küre
Mese Monster=Mese Canavarı
#Obsidian Flan=
Oerkki=Oerkki
Sand Monster=Kum Canavarı
Spider=Örümcek
Stone Monster=Taş Canavarı
Tree Monster=Ağaç Canavarı

View File

@ -0,0 +1,14 @@
# textdomain:mobs_monster
Cobweb=蜘蛛网
Dirt Monster=泥土怪
Dungeon Master=地穴之主
Lava Flan=岩浆饼
Lava Pickaxe=岩浆镐
Lava orb=岩浆球
Mese Monster=黄石怪
#Obsidian Flan=
Oerkki=奥尔基
Sand Monster=沙怪
Spider=蜘蛛
Stone Monster=石头怪
Tree Monster=树怪

View File

@ -0,0 +1,14 @@
# textdomain:mobs_monster
Cobweb=蜘蛛網
Dirt Monster=泥土怪
Dungeon Master=地穴之主
Lava Flan=岩漿餅
Lava Pickaxe=岩漿鎬
Lava orb=岩漿球
Mese Monster=黃石怪
#Obsidian Flan=
Oerkki=奧爾基
Sand Monster=沙怪
Spider=蜘蛛
Stone Monster=石頭怪
Tree Monster=樹怪

View File

@ -2,34 +2,35 @@
# last update: 2016/June/10
#dirtmonster.lua
Dirt Monster =
Dirt Monster=
#dungeonmaster.lua
Dungeon Master =
Dungeon Master=
#init.lua
[MOD] Mobs Redo 'Monsters' loaded =
[MOD] Mobs Redo 'Monsters' loaded=
#lava_flan.lua
Lava Flan =
Lava orb =
Lava Pickaxe =
Lava Flan=
Lava orb=
Lava Pickaxe=
Obsidian Flan=
#mese_monster.lua
Mese Monster =
Mese Monster=
#oerkki.lua
Oerkki =
Oerkki=
#sandmonster.lua
Sand Monster =
Sand Monster=
#spider.lua
Spider =
Cobweb =
Spider=
Cobweb=
#stonemonster.lua
Stone Monster =
Stone Monster=
#treemonster.lua
Tree Monster =
Tree Monster=

View File

@ -14,6 +14,7 @@ Dungeon Master = 地穴之主
Lava Flan = 岩浆饼
Lava orb = 岩浆球
Lava Pickaxe = 岩浆镐
Obsidian Flan = 黑耀石饼
#mese_monster.lua
Mese Monster = 黄石怪

View File

@ -14,6 +14,7 @@ Dungeon Master = 地穴之主
Lava Flan = 岩漿餅
Lava orb = 岩漿球
Lava Pickaxe = 岩漿鎬
Obsidian Flan = 黑耀石餅
#mese_monster.lua
Mese Monster = 黃石怪

View File

@ -58,6 +58,7 @@ mobs:register_mob("mobs_monster:mese_monster", {
})
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "mobs_monster:mese_monster",
nodes = {"default:stone", "default:sandstone"},
@ -66,6 +67,7 @@ mobs:spawn({
active_object_count = 1,
max_height = -20,
})
end
mobs:register_egg("mobs_monster:mese_monster", S("Mese Monster"), "default_mese_block.png", 1)

View File

@ -1 +1,4 @@
name = mobs_monster
depends = default, mobs
optional depends = lucky_block, toolranks, intllib
description = Adds many types of monster.

View File

@ -61,6 +61,7 @@ mobs:register_mob("mobs_monster:oerkki", {
})
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "mobs_monster:oerkki",
nodes = {"default:stone"},
@ -68,6 +69,7 @@ mobs:spawn({
chance = 7000,
max_height = -10,
})
end
mobs:register_egg("mobs_monster:oerkki", S("Oerkki"), "default_obsidian.png", 1)

View File

@ -96,9 +96,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)
@ -117,7 +117,7 @@ mobs:register_mob("mobs_monster:sand_monster", {
]]
})
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "mobs_monster:sand_monster",
nodes = {"default:desert_sand"},
@ -125,6 +125,7 @@ mobs:spawn({
active_object_count = 2,
min_height = 0,
})
end
mobs:register_egg("mobs_monster:sand_monster", S("Sand Monster"), "default_desert_sand.png", 1)

Binary file not shown.

173
spawn_example.lua Normal file
View File

@ -0,0 +1,173 @@
--[[ Spawn Template, defaults to values shown if line not provided
mobs:spawn({
name = "",
- Name of mob, must be provided e.g. "mymod:my_mob"
nodes = {"group:soil, "group:stone"},
- Nodes to spawn on top of.
neighbors = {"air"},
- Nodes to spawn beside.
min_light = 0,
- Minimum light level.
max_light = 15,
- Maximum light level, 15 is sunlight only.
interval = 30,
- Spawn interval in seconds.
chance = 5000,
- Spawn chance, 1 in every 5000 nodes.
active_object_count = 1,
- Active mobs of this type in area.
min_height = -31000,
- Minimum height level.
max_height = 31000,
- Maximum height level.
day_toggle = nil,
- Daytime toggle, true to spawn during day, false for night, nil for both
on_spawn = nil,
- On spawn function to run when mob spawns in world
on_map_load = nil,
- On map load, when true mob only spawns in newly generated map areas
})
]]--
-- Dirt Monster
mobs:spawn({
name = "mobs_monster:dirt_monster",
nodes = {"default:dirt_with_grass"},
min_light = 0,
max_light = 7,
chance = 6000,
active_object_count = 2,
min_height = 0,
day_toggle = false,
})
-- Dungeon Master
mobs:spawn({
name = "mobs_monster:dungeon_master",
nodes = {"default:stone"},
max_light = 5,
chance = 9000,
active_object_count = 1,
max_height = -70,
})
-- Lava Flan
mobs:spawn({
name = "mobs_monster:lava_flan",
nodes = {"default:lava_source"},
chance = 1500,
active_object_count = 1,
max_height = 0,
})
-- Mese Monster
mobs:spawn({
name = "mobs_monster:mese_monster",
nodes = {"default:stone"},
max_light = 7,
chance = 5000,
active_object_count = 1,
max_height = -20,
})
-- Oerkki
mobs:spawn({
name = "mobs_monster:oerkki",
nodes = {"default:stone"},
max_light = 7,
chance = 7000,
max_height = -10,
})
-- Sand Monster
mobs:spawn({
name = "mobs_monster:sand_monster",
nodes = {"default:desert_sand"},
chance = 7000,
active_object_count = 2,
min_height = 0,
})
-- Spider (above ground)
mobs:spawn({
name = "mobs_monster:spider",
nodes = {
"default:dirt_with_rainforest_litter", "default:snowblock",
"default:snow", "ethereal:crystal_dirt", "ethereal:cold_dirt"
},
min_light = 0,
max_light = 8,
chance = 7000,
active_object_count = 1,
min_height = 25,
max_height = 31000,
})
-- Spider (below ground)
mobs:spawn({
name = "mobs_monster:spider",
nodes = {"default:stone_with_mese", "default:mese", "default:stone"},
min_light = 0,
max_light = 7,
chance = 7000,
active_object_count = 1,
min_height = -31000,
max_height = -40,
})
-- Stone Monster
mobs:spawn({
name = "mobs_monster:stone_monster",
nodes = {"default:stone", "default:desert_stone", "default:sandstone"},
max_light = 7,
chance = 7000,
max_height = 0,
})
-- Tree Monster
mobs:spawn({
name = "mobs_monster:tree_monster",
nodes = {"default:leaves", "default:jungleleaves"},
max_light = 7,
chance = 7000,
min_height = 0,
day_toggle = false,
})

View File

@ -179,6 +179,7 @@ mobs:register_mob("mobs_monster:spider", {
})
if not mobs.custom_spawn_monster then
-- above ground spawn
mobs:spawn({
name = "mobs_monster:spider",
@ -205,6 +206,7 @@ mobs:spawn({
min_height = -31000,
max_height = -40,
})
end
mobs:register_egg("mobs_monster:spider", S("Spider"), "mobs_cobweb.png", 1)

View File

@ -64,6 +64,7 @@ mobs:register_mob("mobs_monster:stone_monster", {
})
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "mobs_monster:stone_monster",
nodes = {"default:stone", "default:desert_stone", "default:sandstone"},
@ -71,6 +72,7 @@ mobs:spawn({
chance = 7000,
max_height = 0,
})
end
mobs:register_egg("mobs_monster:stone_monster", S("Stone Monster"), "default_stone.png", 1)

View File

@ -69,6 +69,7 @@ mobs:register_mob("mobs_monster:tree_monster", {
})
if not mobs.custom_spawn_monster then
mobs:spawn({
name = "mobs_monster:tree_monster",
nodes = {"default:leaves", "default:jungleleaves", "moretrees:beech_leaves"},
@ -77,6 +78,7 @@ mobs:spawn({
min_height = 0,
day_toggle = false,
})
end
mobs:register_egg("mobs_monster:tree_monster", S("Tree Monster"), "default_tree_top.png", 1)