Merge remote-tracking branch 'upstream/master'
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
-- transpation and drops
|
-- translation and drops
|
||||||
|
|
||||||
local S = minetest.get_translator("mobs_monster")
|
local S = minetest.get_translator("mobs_monster")
|
||||||
|
|
||||||
@ -32,8 +32,8 @@ mobs:register_mob("mobs_monster:fire_spirit", {
|
|||||||
glow = 14,
|
glow = 14,
|
||||||
blood_texture = "fire_basic_flame.png",
|
blood_texture = "fire_basic_flame.png",
|
||||||
immune_to = {
|
immune_to = {
|
||||||
{"bucket:bucket_water", 1},
|
{"bucket:bucket_water", 2},
|
||||||
{"bucket:bucket_river_water", 1},
|
{"bucket:bucket_river_water", 2},
|
||||||
{"all"}
|
{"all"}
|
||||||
},
|
},
|
||||||
makes_footstep_sound = false,
|
makes_footstep_sound = false,
|
||||||
@ -48,7 +48,7 @@ mobs:register_mob("mobs_monster:fire_spirit", {
|
|||||||
jump = true,
|
jump = true,
|
||||||
jump_height = 6,
|
jump_height = 6,
|
||||||
drops = mob_drops,
|
drops = mob_drops,
|
||||||
water_damage = 1,
|
water_damage = 4,
|
||||||
lava_damage = 0,
|
lava_damage = 0,
|
||||||
fire_damage = 0,
|
fire_damage = 0,
|
||||||
light_damage = 0,
|
light_damage = 0,
|
||||||
@ -67,7 +67,7 @@ mobs:register_mob("mobs_monster:fire_spirit", {
|
|||||||
|
|
||||||
self.flame_timer = (self.flame_timer or 0) + dtime
|
self.flame_timer = (self.flame_timer or 0) + dtime
|
||||||
|
|
||||||
if self.flame_timer < 0.25 then return end
|
if self.flame_timer < 0.1 then return end
|
||||||
|
|
||||||
self.flame_timer = 0
|
self.flame_timer = 0
|
||||||
|
|
||||||
|
5
init.lua
@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
-- transpation and get mod path
|
-- translation and mod path
|
||||||
|
|
||||||
local S = minetest.get_translator("mobs_monster")
|
local S = minetest.get_translator("mobs_monster")
|
||||||
local path = minetest.get_modpath(minetest.get_current_modname()) .. "/"
|
local path = minetest.get_modpath(minetest.get_current_modname()) .. "/"
|
||||||
|
|
||||||
@ -52,4 +53,4 @@ if minetest.get_modpath("lucky_block") then
|
|||||||
dofile(path .. "lucky_block.lua")
|
dofile(path .. "lucky_block.lua")
|
||||||
end
|
end
|
||||||
|
|
||||||
print ("[MOD] Mobs Monster loaded")
|
print ("[MOD] Mobs Redo Monsters loaded")
|
||||||
|
@ -7,14 +7,14 @@ mobs:register_mob("mobs_monster:lava_flan", {
|
|||||||
type = "monster",
|
type = "monster",
|
||||||
passive = false,
|
passive = false,
|
||||||
attack_type = "dogfight",
|
attack_type = "dogfight",
|
||||||
reach = 2,
|
reach = 2.5,
|
||||||
damage = 3,
|
damage = 3,
|
||||||
hp_min = 10,
|
hp_min = 20,
|
||||||
hp_max = 35,
|
hp_max = 35,
|
||||||
armor = 80,
|
armor = 80,
|
||||||
collisionbox = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5},
|
collisionbox = {-0.5, -0.5, -0.5, 0.5, 1.5, 0.5},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "zmobs_lava_flan.x",
|
mesh = "zmobs_lava_flan.b3d",
|
||||||
textures = {
|
textures = {
|
||||||
{"zmobs_lava_flan.png"},
|
{"zmobs_lava_flan.png"},
|
||||||
{"zmobs_lava_flan2.png"},
|
{"zmobs_lava_flan2.png"},
|
||||||
@ -178,7 +178,7 @@ function minetest.handle_node_drops(pos, drops, digger)
|
|||||||
mobs:effect(pos, 1, "tnt_smoke.png", 3, 5, 2, 0.5, nil, false)
|
mobs:effect(pos, 1, "tnt_smoke.png", 3, 5, 2, 0.5, nil, false)
|
||||||
|
|
||||||
minetest.sound_play("fire_extinguish_flame",
|
minetest.sound_play("fire_extinguish_flame",
|
||||||
{pos = pos, max_hear_distance = 8, gain = 0.15}, true)
|
{pos = pos, max_hear_distance = 5, gain = 0.05}, true)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -220,7 +220,7 @@ minetest.register_craft({
|
|||||||
if minetest.get_modpath("toolranks") then
|
if minetest.get_modpath("toolranks") then
|
||||||
|
|
||||||
minetest.override_item("mobs:pick_lava", {
|
minetest.override_item("mobs:pick_lava", {
|
||||||
original_description = "Lava Pickaxe",
|
original_description = S("Lava Pickaxe"),
|
||||||
description = toolranks.create_description("Lava Pickaxe", 0, 1),
|
description = toolranks.create_description("Lava Pickaxe", 0, 1),
|
||||||
after_use = toolranks.new_afteruse})
|
after_use = toolranks.new_afteruse})
|
||||||
end
|
end
|
||||||
@ -236,13 +236,13 @@ mobs:register_mob("mobs_monster:obsidian_flan", {
|
|||||||
arrow = "mobs_monster:obsidian_arrow",
|
arrow = "mobs_monster:obsidian_arrow",
|
||||||
reach = 2,
|
reach = 2,
|
||||||
damage = 3,
|
damage = 3,
|
||||||
hp_min = 10,
|
hp_min = 20,
|
||||||
hp_max = 35,
|
hp_max = 35,
|
||||||
armor = 30,
|
armor = 30,
|
||||||
visual_size = {x = 0.6, y = 0.6},
|
visual_size = {x = 0.6, y = 0.6},
|
||||||
collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.8, 0.3},
|
collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.8, 0.3},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "zmobs_lava_flan.x",
|
mesh = "zmobs_lava_flan.b3d",
|
||||||
textures = {{"mobs_obsidian_flan.png"}},
|
textures = {{"mobs_obsidian_flan.png"}},
|
||||||
blood_texture = "default_obsidian.png",
|
blood_texture = "default_obsidian.png",
|
||||||
makes_footstep_sound = true,
|
makes_footstep_sound = true,
|
||||||
@ -270,6 +270,7 @@ mobs:register_mob("mobs_monster:obsidian_flan", {
|
|||||||
})
|
})
|
||||||
|
|
||||||
-- spawn egg
|
-- spawn egg
|
||||||
|
|
||||||
mobs:register_egg("mobs_monster:obsidian_flan", S("Obsidian Flan"),
|
mobs:register_egg("mobs_monster:obsidian_flan", S("Obsidian Flan"),
|
||||||
"default_obsidian.png", 1)
|
"default_obsidian.png", 1)
|
||||||
|
|
||||||
|
@ -35,6 +35,7 @@ Textures by AMMOnym (WTFPL)
|
|||||||
Textures by TenPlus1 (MIT)
|
Textures by TenPlus1 (MIT)
|
||||||
mobs_stone_monster3.png
|
mobs_stone_monster3.png
|
||||||
mobs_fireball.png
|
mobs_fireball.png
|
||||||
|
mobs_obsidian_flan.png
|
||||||
|
|
||||||
Textures by Sirrobzeroone (CC0 1.0 Universal)
|
Textures by Sirrobzeroone (CC0 1.0 Universal)
|
||||||
mobs_stone_monster4.png
|
mobs_stone_monster4.png
|
||||||
@ -71,10 +72,12 @@ AspireMint (CC BY-SA 3.0)
|
|||||||
mobs_spider_snowy.png
|
mobs_spider_snowy.png
|
||||||
mobs_spider_grey.png
|
mobs_spider_grey.png
|
||||||
mobs_spider_crystal.png
|
mobs_spider_crystal.png
|
||||||
|
zmobs_lava_flan.b3d
|
||||||
|
zmobs_lava_flan.png
|
||||||
|
zmobs_lava_flan2.png
|
||||||
|
zmobs_lava_flan3.png
|
||||||
|
|
||||||
Zeg9 (CC BY-SA 3.0)
|
Zeg9 (CC BY-SA 3.0)
|
||||||
zmobs_lava_flan.x
|
|
||||||
zmobs_lava_flan.png
|
|
||||||
zmobs_lava_orb.png
|
zmobs_lava_orb.png
|
||||||
|
|
||||||
Sounds by Cyberpangolin (WTFPL) https://forum.minetest.net/viewtopic.php?t=10798
|
Sounds by Cyberpangolin (WTFPL) https://forum.minetest.net/viewtopic.php?t=10798
|
||||||
|
14
locale/mobs_monster.pt_BR.tr
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# textdomain:mobs_monster
|
||||||
|
Cobweb=Teia de Aranha
|
||||||
|
Dirt Monster=Monstro de Terra
|
||||||
|
Dungeon Master=Mestre das Dungeons
|
||||||
|
Lava Flan=Pudim de Lava
|
||||||
|
Lava Pickaxe=Picareta de Lava
|
||||||
|
Lava orb=Orb de Lava
|
||||||
|
Mese Monster=Monstro de mese
|
||||||
|
#Obsidian Flan=Pudim de Obsidian
|
||||||
|
Oerkki=Oerkki
|
||||||
|
Sand Monster=Monstro de Areia
|
||||||
|
Spider=Aranha
|
||||||
|
Stone Monster=Monstro de pedra
|
||||||
|
Tree Monster= Arvore Monstro
|
14
locale/mobs_monster.ru.tr
Normal 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=Древесный Монстр
|
19
locale/mobs_monster.uk.tr
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# textdomain:mobs_monster
|
||||||
|
Mobs Monster=Моби Монстри
|
||||||
|
Add many different monsters into your world.=Додає багато різних монстрів у світ.
|
||||||
|
Adds many types of monster.=Додає багато різних типів монстрів.
|
||||||
|
Cobweb=Павутина
|
||||||
|
Dirt Monster=Земляний монстр
|
||||||
|
Dungeon Master=Хазяїн печер
|
||||||
|
Lava Flan=Лавовий слимак
|
||||||
|
Lava Pickaxe=Лавове кайло
|
||||||
|
Lava orb=Лавова сфера
|
||||||
|
Mese Monster=Месе монстр
|
||||||
|
Obsidian Flan=Обсидіановий слимак
|
||||||
|
Oerkki=Оерккі
|
||||||
|
Land Guard=Охоронець землі
|
||||||
|
Fire Spirit=Вогняний дух
|
||||||
|
Sand Monster=Пісочний монстр
|
||||||
|
Spider=Павук
|
||||||
|
Stone Monster=Кам'яний монстр
|
||||||
|
Tree Monster=Дерево-монстр
|
BIN
models/zmobs_lava_flan.b3d
Normal file
@ -3,7 +3,7 @@ local S = minetest.get_translator("mobs_monster")
|
|||||||
|
|
||||||
-- custom particle effects
|
-- custom particle effects
|
||||||
|
|
||||||
local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow)
|
local function effect(pos, amount, texture, min_size, max_size, radius, gravity, glow)
|
||||||
|
|
||||||
radius = radius or 2
|
radius = radius or 2
|
||||||
min_size = min_size or 0.5
|
min_size = min_size or 0.5
|
||||||
|
22
spider.lua
@ -1,9 +1,9 @@
|
|||||||
-- Translation support
|
|
||||||
local S = minetest.get_translator("mobs_monster")
|
local S = minetest.get_translator("mobs_monster")
|
||||||
|
|
||||||
-- helper function
|
-- helper function
|
||||||
|
|
||||||
local get_velocity = function(self)
|
local function get_velocity(self)
|
||||||
|
|
||||||
local v = self.object:get_velocity()
|
local v = self.object:get_velocity()
|
||||||
|
|
||||||
@ -13,6 +13,8 @@ local get_velocity = function(self)
|
|||||||
return (v.x * v.x + v.z * v.z) ^ 0.5
|
return (v.x * v.x + v.z * v.z) ^ 0.5
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local math_cos, math_sin = math.cos, math.sin
|
||||||
|
|
||||||
-- custom spider types
|
-- custom spider types
|
||||||
|
|
||||||
local spider_types = {
|
local spider_types = {
|
||||||
@ -47,7 +49,7 @@ local spider_types = {
|
|||||||
|
|
||||||
{ nodes = {"ethereal:crystal_dirt", "ethereal:crystal_spike"},
|
{ nodes = {"ethereal:crystal_dirt", "ethereal:crystal_spike"},
|
||||||
skins = {"mobs_spider_crystal.png"},
|
skins = {"mobs_spider_crystal.png"},
|
||||||
docile = true,
|
docile = true, immune_to = {{"ethereal:crystal_spike", 0}},
|
||||||
drops = {
|
drops = {
|
||||||
{name = "farming:string", chance = 1, min = 0, max = 2},
|
{name = "farming:string", chance = 1, min = 0, max = 2},
|
||||||
{name = "ethereal:crystal_spike", chance = 15, min = 1, max = 2}}
|
{name = "ethereal:crystal_spike", chance = 15, min = 1, max = 2}}
|
||||||
@ -66,8 +68,8 @@ mobs:register_mob("mobs_monster:spider", {
|
|||||||
damage = 3,
|
damage = 3,
|
||||||
hp_min = 10,
|
hp_min = 10,
|
||||||
hp_max = 30,
|
hp_max = 30,
|
||||||
armor = 200,
|
armor = 100,
|
||||||
collisionbox = {-0.8, -0.5, -0.8, 0.8, 0, 0.8},
|
collisionbox = {-0.7, -0.5, -0.7, 0.7, 0, 0.7},
|
||||||
visual_size = {x = 1, y = 1},
|
visual_size = {x = 1, y = 1},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_spider.b3d",
|
mesh = "mobs_spider.b3d",
|
||||||
@ -95,7 +97,7 @@ mobs:register_mob("mobs_monster:spider", {
|
|||||||
water_damage = 5,
|
water_damage = 5,
|
||||||
lava_damage = 5,
|
lava_damage = 5,
|
||||||
light_damage = 0,
|
light_damage = 0,
|
||||||
node_damage = false, -- disable damage_per_second node damage
|
-- node_damage = false, -- disable damage_per_second node damage
|
||||||
animation = {
|
animation = {
|
||||||
speed_normal = 15, speed_run = 20,
|
speed_normal = 15, speed_run = 20,
|
||||||
stand_start = 0, stand_end = 0,
|
stand_start = 0, stand_end = 0,
|
||||||
@ -122,6 +124,8 @@ mobs:register_mob("mobs_monster:spider", {
|
|||||||
|
|
||||||
if tmp.drops then self.drops = tmp.drops end
|
if tmp.drops then self.drops = tmp.drops end
|
||||||
|
|
||||||
|
if tmp.immune_to then self.immune_to = tmp.immune_to end
|
||||||
|
|
||||||
if tmp.shoot then
|
if tmp.shoot then
|
||||||
self.attack_type = "dogshoot"
|
self.attack_type = "dogshoot"
|
||||||
self.arrow = "mobs_monster:cobweb"
|
self.arrow = "mobs_monster:cobweb"
|
||||||
@ -167,8 +171,8 @@ mobs:register_mob("mobs_monster:spider", {
|
|||||||
|
|
||||||
pos.y = pos.y + prop.collisionbox[2] - 0.2
|
pos.y = pos.y + prop.collisionbox[2] - 0.2
|
||||||
|
|
||||||
local dir_x = -math.sin(yaw) * (prop.collisionbox[4] + 0.5)
|
local dir_x = -math_sin(yaw) * (prop.collisionbox[4] + 0.5)
|
||||||
local dir_z = math.cos(yaw) * (prop.collisionbox[4] + 0.5)
|
local dir_z = math_cos(yaw) * (prop.collisionbox[4] + 0.5)
|
||||||
local nod = minetest.get_node_or_nil({
|
local nod = minetest.get_node_or_nil({
|
||||||
x = pos.x + dir_x,
|
x = pos.x + dir_x,
|
||||||
y = pos.y + 0.5,
|
y = pos.y + 0.5,
|
||||||
@ -233,7 +237,7 @@ if not mobs.custom_spawn_monster then
|
|||||||
max_light = 8,
|
max_light = 8,
|
||||||
chance = 7000,
|
chance = 7000,
|
||||||
active_object_count = 1,
|
active_object_count = 1,
|
||||||
min_height = 25,
|
min_height = 2,
|
||||||
max_height = 31000
|
max_height = 31000
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -108,7 +108,8 @@ if not mobs.custom_spawn_monster then
|
|||||||
|
|
||||||
mobs:spawn({
|
mobs:spawn({
|
||||||
name = "mobs_monster:stone_monster",
|
name = "mobs_monster:stone_monster",
|
||||||
nodes = {"default:stone", "default:desert_stone", "default:sandstone"},
|
nodes = {"default:stone", "default:desert_stone", "default:sandstone",
|
||||||
|
"default:permafrost_with_stones"},
|
||||||
max_light = 7,
|
max_light = 7,
|
||||||
chance = 7000,
|
chance = 7000,
|
||||||
max_height = 0
|
max_height = 0
|
||||||
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 891 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.6 KiB |
@ -22,7 +22,7 @@ local tree_types = {
|
|||||||
{name = "ethereal:frost_leaves", chance = 1, min = 1, max = 2},
|
{name = "ethereal:frost_leaves", chance = 1, min = 1, max = 2},
|
||||||
{name = "ethereal:frost_tree", chance = 2, min = 1, max = 2},
|
{name = "ethereal:frost_tree", chance = 2, min = 1, max = 2},
|
||||||
{name = "ethereal:crystal_spike", chance = 4, min = 0, max = 2}
|
{name = "ethereal:crystal_spike", chance = 4, min = 0, max = 2}
|
||||||
}
|
}, glow = 1
|
||||||
},
|
},
|
||||||
|
|
||||||
{ nodes = {"ethereal:yellowleaves"},
|
{ nodes = {"ethereal:yellowleaves"},
|
||||||
@ -32,7 +32,7 @@ local tree_types = {
|
|||||||
{name = "ethereal:yellowleaves", chance = 1, min = 1, max = 2},
|
{name = "ethereal:yellowleaves", chance = 1, min = 1, max = 2},
|
||||||
{name = "ethereal:yellow_tree_sapling", chance = 2, min = 0, max = 2},
|
{name = "ethereal:yellow_tree_sapling", chance = 2, min = 0, max = 2},
|
||||||
{name = "ethereal:golden_apple", chance = 3, min = 0, max = 2}
|
{name = "ethereal:golden_apple", chance = 3, min = 0, max = 2}
|
||||||
}
|
}, glow = 1
|
||||||
},
|
},
|
||||||
|
|
||||||
{ nodes = {"default:acacia_bush_leaves"},
|
{ nodes = {"default:acacia_bush_leaves"},
|
||||||
@ -121,6 +121,8 @@ mobs:register_mob("mobs_monster:tree_monster", {
|
|||||||
self.base_texture = tmp.skins
|
self.base_texture = tmp.skins
|
||||||
self.object:set_properties({textures = tmp.skins})
|
self.object:set_properties({textures = tmp.skins})
|
||||||
|
|
||||||
|
if tmp.glow then self.object:set_properties({glow = tmp.glow}) end
|
||||||
|
|
||||||
if tmp.drops then self.drops = tmp.drops end
|
if tmp.drops then self.drops = tmp.drops end
|
||||||
|
|
||||||
if tmp.explode then
|
if tmp.explode then
|
||||||
|