first commit
|
@ -0,0 +1,63 @@
|
|||
|
||||
name = name,
|
||||
type = def.type,
|
||||
|
||||
visual = def.visual,
|
||||
mesh = def.mesh,
|
||||
textures = {
|
||||
{"mobs_medved.png"},
|
||||
},
|
||||
visual_size = def.visual_size or {x = 1, y = 1},
|
||||
collisionbox = def.collisionbox,
|
||||
rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2
|
||||
animation = def.animation,
|
||||
|
||||
makes_footstep_sound = def.makes_footstep_sound or false,
|
||||
sounds = def.sounds or {},
|
||||
|
||||
hp_min = def.hp_min or 5,
|
||||
hp_max = def.hp_max or 10,
|
||||
armor = def.armor,
|
||||
recovery_time = def.recovery_time or 0.5,
|
||||
knock_back = def.knock_back or 3,
|
||||
blood_amount = def.blood_amount or 5,
|
||||
blood_texture = def.blood_texture or "mobs_blood.png",
|
||||
light_damage = def.light_damage or 0,
|
||||
water_damage = def.water_damage or 0,
|
||||
lava_damage = def.lava_damage or 0,
|
||||
fall_damage = def.fall_damage or 1,
|
||||
|
||||
passive = def.passive or false,
|
||||
damage = def.damage,
|
||||
attack_type = def.attack_type,
|
||||
arrow = def.arrow,
|
||||
shoot_interval = def.shoot_interval,
|
||||
shoot_offset = def.shoot_offset or 0,
|
||||
attacks_monsters = def.attacks_monsters or false,
|
||||
group_attack = def.group_attack or false,
|
||||
view_range = def.view_range or 5,
|
||||
|
||||
walk_chance = def.walk_chance or 50,
|
||||
walk_velocity = def.walk_velocity or 1,
|
||||
run_velocity = def.run_velocity or 2,
|
||||
stepheight = def.stepheight or 0.6,
|
||||
jump = def.jump or true,
|
||||
jump_height = def.jump_height or 6,
|
||||
jump_chance = def.jump_chance or 0,
|
||||
fly = def.fly,
|
||||
fly_in = def.fly_in or "air",
|
||||
fall_speed = def.fall_speed or -10, -- must be lower than -2 (default: -10)
|
||||
floats = def.floats or 1, -- floats in water by default
|
||||
|
||||
lifetimer = def.lifetimer or 180, -- 3 minutes
|
||||
drops = def.drops or {},
|
||||
|
||||
follow = def.follow or "",
|
||||
replace_rate = def.replace_rate,
|
||||
replace_what = def.replace_what,
|
||||
replace_with = def.replace_with,
|
||||
replace_offset = def.replace_offset or 0,
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
**CODE**
|
||||
--------
|
||||
See Mobs.Redo license
|
||||
|
||||
|
||||
**MODELS/TEXTURES**
|
||||
-------------------
|
||||
Unknown
|
||||
Artist/origin: Davedevils (from his subgame MineClone)
|
||||
|
||||
|
||||
**SOUNDS**
|
||||
----------
|
||||
Unknown
|
||||
Artist/origin: Looks to be from the TNT mod
|
|
@ -0,0 +1,2 @@
|
|||
default
|
||||
mobs
|
|
@ -0,0 +1,75 @@
|
|||
|
||||
if mobs.mod and mobs.mod == "redo" then
|
||||
|
||||
local ENABLE_SPAWN_NODE = true
|
||||
|
||||
-- creeper
|
||||
mobs:register_mob("mobs_creeper:creeper", {
|
||||
type = "monster",
|
||||
visual = "mesh",
|
||||
mesh = "mobs_tree_monster.x",
|
||||
textures = {
|
||||
{"mobs_creeper.png"},
|
||||
},
|
||||
visual_size = {x=4.5,y=4.5},
|
||||
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4},
|
||||
animation = {
|
||||
stand_start = 0, stand_end = 24,
|
||||
walk_start = 25, walk_end = 47,
|
||||
run_start = 48, run_end = 62,
|
||||
punch_start = 48, punch_end = 62,
|
||||
speed_normal = 15, speed_run = 15
|
||||
},
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = "mobs_treemonster",
|
||||
explode = "tnt_explode"
|
||||
},
|
||||
hp_min = 30,
|
||||
hp_max = 40,
|
||||
armor = 90,
|
||||
blood_texture = "mobs_creeper_inv.png",
|
||||
water_damage = 2,
|
||||
lava_damage = 15,
|
||||
damage = 21,
|
||||
attack_type = "explode",
|
||||
view_range = 16,
|
||||
run_velocity = 3,
|
||||
stepheight = 1.1,
|
||||
drops = {
|
||||
{name = "default:torch", chance = 10, min = 3, max = 5,},
|
||||
{name = "default:iron_lump", chance = 5, min = 1, max = 2,},
|
||||
{name = "default:coal_lump", chance = 3, min = 1, max = 3,}
|
||||
}
|
||||
})
|
||||
|
||||
--name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height
|
||||
mobs:spawn_specific("mobs_creeper:creeper",
|
||||
{"default:stone", "default:dirt_with_grass"},
|
||||
{"air"},
|
||||
-1, 20, 30, 20000, 1, -31000, 31000
|
||||
)
|
||||
mobs:register_egg("mobs_creeper:creeper", "Creeper", "mobs_creeper_inv.png", 1)
|
||||
|
||||
-- spawner block
|
||||
if ENABLE_SPAWN_NODE then
|
||||
minetest.register_node("mobs_creeper:creeper_spawner", {
|
||||
description = "Creeper Spawner",
|
||||
tiles = {"mobs_creeper_face.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3, stone=1, mob_spawner=1},
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dug = {name="tnt_explode", gain=0.25}
|
||||
})
|
||||
})
|
||||
minetest.register_abm({
|
||||
nodenames = {"mobs_creeper:creeper_spawner"},
|
||||
interval = 60.0,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
minetest.add_entity(pos, "mobs_creeper:creeper")
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
end
|
After Width: | Height: | Size: 16 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 883 B |
After Width: | Height: | Size: 202 B |
|
@ -0,0 +1,14 @@
|
|||
**CODE**
|
||||
--------
|
||||
See Mobs.Redo license
|
||||
|
||||
|
||||
**MODELS/TEXTURES**
|
||||
-------------------
|
||||
WTFPL
|
||||
Artist/origin: Devyn Collier Johnson (DevynCJohnson@Gmail.com)
|
||||
|
||||
|
||||
**SOUNDS**
|
||||
----------
|
||||
Not applicable.
|
|
@ -0,0 +1,2 @@
|
|||
default
|
||||
mobs
|
|
@ -0,0 +1,69 @@
|
|||
|
||||
if mobs.mod and mobs.mod == "redo" then
|
||||
|
||||
local ENABLE_SPAWN_NODE = true
|
||||
|
||||
mobs:register_mob("mobs_senderman:senderman", {
|
||||
type = "monster",
|
||||
visual = "mesh",
|
||||
mesh = "sender_man.x",
|
||||
textures = {
|
||||
{"sender_man.png"}
|
||||
},
|
||||
visual_size = {x=6,y=6},
|
||||
collisionbox = {-0.5, -0.01, -0.5, 0.5, 5.4, 0.5},
|
||||
animation = {
|
||||
speed_normal = 15, speed_run = 15,
|
||||
stand_start = 0, stand_end = 14,
|
||||
walk_start = 15, walk_end = 38,
|
||||
run_start = 40, run_end = 63,
|
||||
punch_start = 40, punch_end = 63
|
||||
},
|
||||
hp_min = 15,
|
||||
hp_max = 30,
|
||||
armor = 80,
|
||||
light_damage = 2,
|
||||
damage = 4,
|
||||
attack_type = "dogfight",
|
||||
view_range = 30,
|
||||
walk_velocity = 3,
|
||||
run_velocity = 6,
|
||||
stepheight = 1.1,
|
||||
drops = {
|
||||
{name = "default:nyancat", chance = 1, min = 1, max = 2,}
|
||||
}
|
||||
})
|
||||
|
||||
local l_spawn_elevation_min = minetest.setting_get("water_level")
|
||||
if l_spawn_elevation_min then
|
||||
l_spawn_elevation_min = l_spawn_elevation_min + 3
|
||||
else
|
||||
l_spawn_elevation_min = 3
|
||||
end
|
||||
--name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height
|
||||
mobs:spawn_specific("mobs_senderman:senderman",
|
||||
{"default:dirt_with_grass", "default:dirt", "default:desert_sand", "ethereal:green_dirt_top"},
|
||||
{"air"},
|
||||
-1, 3, 30, 20000, 1, l_spawn_elevation_min, 31000
|
||||
)
|
||||
mobs:register_egg("mobs_senderman:senderman", "Spawn Senderman", "senderman_egg.png", 0)
|
||||
|
||||
-- spawner block
|
||||
if ENABLE_SPAWN_NODE then
|
||||
minetest.register_node("mobs_senderman:senderman_spawner", {
|
||||
description = "Senderman Spawner",
|
||||
tiles = {"senderman_face.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3, stone=1, mob_spawner=1}
|
||||
})
|
||||
minetest.register_abm({
|
||||
nodenames = {"mobs_senderman:senderman_spawner"},
|
||||
interval = 60.0,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
minetest.add_entity(pos, "mobs_senderman:senderman")
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
end
|
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 454 B |
After Width: | Height: | Size: 517 B |
|
@ -0,0 +1,19 @@
|
|||
**CODE**
|
||||
--------
|
||||
See Mobs.Redo license
|
||||
|
||||
|
||||
**MODELS/TEXTURES**
|
||||
-------------------
|
||||
WTFPL
|
||||
Author/origin: Tomas J. Luis
|
||||
|
||||
Jeija_glue texture by: Jeija
|
||||
|
||||
**SOUNDS**
|
||||
----------
|
||||
Original sound for slime damage by RandomationPictures under licence CC0 1.0.
|
||||
http://www.freesound.org/people/RandomationPictures/sounds/138481/
|
||||
|
||||
Original sounds for slime jump, land and death by Dr. Minky under licence CC BY 3.0.
|
||||
http://www.freesound.org/people/DrMinky/sounds/
|
|
@ -0,0 +1,2 @@
|
|||
default
|
||||
mobs
|
|
@ -0,0 +1,163 @@
|
|||
|
||||
local ENABLE_SPAWN_NODE = true
|
||||
|
||||
-- sounds
|
||||
local green_sounds = {
|
||||
damage = "slimes_damage",
|
||||
death = "slimes_death",
|
||||
jump = "slimes_jump",
|
||||
attack = "slimes_attack"
|
||||
}
|
||||
|
||||
-- textures
|
||||
local green_textures = {"green_slime_sides.png", "green_slime_sides.png", "green_slime_sides.png",
|
||||
"green_slime_sides.png", "green_slime_front.png", "green_slime_sides.png"}
|
||||
|
||||
-- small
|
||||
mobs:register_mob("mobs_slimes:green_small", {
|
||||
type = "monster",
|
||||
visual = "cube",
|
||||
textures = { green_textures },
|
||||
visual_size = {x = 0.5, y = 0.5},
|
||||
collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
|
||||
sounds = green_sounds,
|
||||
hp_min = 2,
|
||||
hp_max = 4,
|
||||
armor = 100,
|
||||
knock_back = 3,
|
||||
blood_amount = 3,
|
||||
blood_texture = "green_slime_blood.png",
|
||||
lava_damage = 3,
|
||||
fall_damage = 0,
|
||||
damage = 1,
|
||||
attack_type = "dogfight",
|
||||
attacks_monsters = true,
|
||||
view_range = 10,
|
||||
walk_chance = 0,
|
||||
walk_velocity = 2,
|
||||
stepheight = 0.6,
|
||||
jump_chance = 60,
|
||||
drops = {
|
||||
{name = "mobs_slimes:green_slimeball", chance = 2, min = 1, max = 2},
|
||||
}
|
||||
})
|
||||
|
||||
-- medium
|
||||
mobs:register_mob("mobs_slimes:green_medium", {
|
||||
type = "monster",
|
||||
visual = "cube",
|
||||
textures = { green_textures },
|
||||
visual_size = {x = 1, y = 1},
|
||||
collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
sounds = green_sounds,
|
||||
hp_min = 4,
|
||||
hp_max = 8,
|
||||
armor = 100,
|
||||
knock_back = 2,
|
||||
blood_amount = 4,
|
||||
blood_texture = "green_slime_blood.png",
|
||||
lava_damage = 7,
|
||||
fall_damage = 0,
|
||||
damage = 2,
|
||||
attack_type = "dogfight",
|
||||
attacks_monsters = true,
|
||||
view_range = 10,
|
||||
walk_chance = 0,
|
||||
walk_velocity = 2,
|
||||
stepheight = 1.1,
|
||||
jump_chance = 60,
|
||||
on_die = function(self, pos)
|
||||
local num = math.random(2, 4)
|
||||
for i=1,num do
|
||||
minetest.add_entity({x=pos.x + math.random(-2, 2), y=pos.y + 1, z=pos.z + (math.random(-2, 2))}, "mobs_slimes:green_small")
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- big
|
||||
mobs:register_mob("mobs_slimes:green_big", {
|
||||
type = "monster",
|
||||
visual = "cube",
|
||||
textures = { green_textures },
|
||||
visual_size = {x = 2, y = 2},
|
||||
collisionbox = {-1, -1, -1, 1, 1, 1},
|
||||
sounds = green_sounds,
|
||||
hp_min = 6,
|
||||
hp_max = 12,
|
||||
armor = 100,
|
||||
knock_back = 1,
|
||||
blood_amount = 5,
|
||||
blood_texture = "green_slime_blood.png",
|
||||
lava_damage = 11,
|
||||
fall_damage = 0,
|
||||
damage = 3,
|
||||
attack_type = "dogfight",
|
||||
attacks_monsters = true,
|
||||
view_range = 10,
|
||||
walk_chance = 0,
|
||||
walk_velocity = 2,
|
||||
stepheight = 1.1,
|
||||
jump_chance = 60,
|
||||
on_die = function(self, pos)
|
||||
local num = math.random(1, 2)
|
||||
for i=1,num do
|
||||
minetest.add_entity({x=pos.x + math.random(-2, 2), y=pos.y + 1, z=pos.z + (math.random(-2, 2))}, "mobs_slimes:green_medium")
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
local l_spawn_elevation_min = minetest.setting_get("water_level")
|
||||
if l_spawn_elevation_min then
|
||||
l_spawn_elevation_min = l_spawn_elevation_min - 1
|
||||
else
|
||||
l_spawn_elevation_min = -1
|
||||
end
|
||||
--name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height
|
||||
mobs:spawn_specific("mobs_slimes:green_big",
|
||||
{"default:dirt_with_grass", "default:junglegrass", "default:mossycobble", "ethereal:green_dirt_top"},
|
||||
{"air"},
|
||||
4, 20, 30, 10000, 1, l_spawn_elevation_min, 31000
|
||||
)
|
||||
mobs:spawn_specific("mobs_slimes:green_medium",
|
||||
{"default:dirt_with_grass", "default:junglegrass", "default:mossycobble", "ethereal:green_dirt_top"},
|
||||
{"air"},
|
||||
4, 20, 30, 20000, 2, l_spawn_elevation_min, 31000
|
||||
)
|
||||
mobs:spawn_specific("mobs_slimes:green_small",
|
||||
{"default:dirt_with_grass", "default:junglegrass", "default:mossycobble", "ethereal:green_dirt_top"},
|
||||
{"air"},
|
||||
4, 20, 30, 30000, 3, l_spawn_elevation_min, 31000
|
||||
)
|
||||
|
||||
mobs:register_egg("mobs_slimes:green_small", "Small Green Slime", "green_slime_front.png", 0)
|
||||
mobs:register_egg("mobs_slimes:green_medium", "Medium Green Slime", "green_slime_front.png", 0)
|
||||
mobs:register_egg("mobs_slimes:green_big", "Big Green Slime", "green_slime_front.png", 0)
|
||||
|
||||
-- crafts
|
||||
minetest.register_craftitem("mobs_slimes:green_slimeball", {
|
||||
image = "jeija_glue.png",
|
||||
description="Green Slime Ball",
|
||||
})
|
||||
|
||||
-- spawner block
|
||||
if ENABLE_SPAWN_NODE then
|
||||
minetest.register_node("mobs_slimes:green_spawner", {
|
||||
description = "Green Slime Spawner",
|
||||
tiles = {"green_slime_front.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3, stone=1, mob_spawner=1},
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dug = {name="slimes_death", gain=0.25}
|
||||
})
|
||||
})
|
||||
minetest.register_abm({
|
||||
nodenames = {"mobs_slimes:green_spawner"},
|
||||
interval = 60.0,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local p = pos
|
||||
p.y = p.y + 1
|
||||
minetest.add_entity(p, "mobs_slimes:green_big")
|
||||
end
|
||||
})
|
||||
end
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
if mobs.mod and mobs.mod == "redo" then
|
||||
|
||||
local path = minetest.get_modpath("mobs_slimes")
|
||||
dofile(path.."/greenslimes.lua")
|
||||
dofile(path.."/lavaslimes.lua")
|
||||
|
||||
end
|
|
@ -0,0 +1,172 @@
|
|||
|
||||
local ENABLE_SPAWN_NODE = true
|
||||
|
||||
-- sounds
|
||||
local lava_sounds = {
|
||||
damage = "slimes_damage",
|
||||
death = "slimes_death",
|
||||
jump = "slimes_jump",
|
||||
attack = "slimes_attack",
|
||||
}
|
||||
|
||||
-- textures
|
||||
local lava_textures = {"lava_slime_sides.png", "lava_slime_sides.png", "lava_slime_sides.png",
|
||||
"lava_slime_sides.png", "lava_slime_front.png", "lava_slime_sides.png"}
|
||||
|
||||
-- small
|
||||
mobs:register_mob("mobs_slimes:lava_small", {
|
||||
type = "monster",
|
||||
visual = "cube",
|
||||
textures = { lava_textures },
|
||||
visual_size = {x = 0.5, y = 0.5},
|
||||
collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25},
|
||||
sounds = lava_sounds,
|
||||
hp_min = 2,
|
||||
hp_max = 4,
|
||||
armor = 100,
|
||||
knock_back = 3,
|
||||
blood_amount = 3,
|
||||
blood_texture = "lava_slime_blood.png",
|
||||
water_damage = 3,
|
||||
fall_damage = 0,
|
||||
damage = 1,
|
||||
attack_type = "dogfight",
|
||||
attacks_monsters = true,
|
||||
view_range = 10,
|
||||
walk_chance = 0,
|
||||
walk_velocity = 2,
|
||||
stepheight = 0.6,
|
||||
jump_chance = 60,
|
||||
drops = {
|
||||
{name = "mobs_slimes:lava_slime", chance = 2, min = 1, max = 2},
|
||||
},
|
||||
replace_rate = 20,
|
||||
replace_what = {"air"},
|
||||
replace_with = "fire:basic_flame"
|
||||
})
|
||||
|
||||
-- medium
|
||||
mobs:register_mob("mobs_slimes:lava_medium", {
|
||||
type = "monster",
|
||||
visual = "cube",
|
||||
textures = { lava_textures },
|
||||
visual_size = {x = 1, y = 1},
|
||||
collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
sounds = lava_sounds,
|
||||
hp_min = 4,
|
||||
hp_max = 8,
|
||||
armor = 100,
|
||||
knock_back = 2,
|
||||
blood_amount = 4,
|
||||
blood_texture = "lava_slime_blood.png",
|
||||
water_damage = 7,
|
||||
fall_damage = 0,
|
||||
damage = 2,
|
||||
attack_type = "dogfight",
|
||||
attacks_monsters = true,
|
||||
view_range = 10,
|
||||
walk_chance = 0,
|
||||
walk_velocity = 2,
|
||||
stepheight = 1.1,
|
||||
jump_chance = 60,
|
||||
replace_rate = 20,
|
||||
replace_what = {"air"},
|
||||
replace_with = "fire:basic_flame",
|
||||
on_die = function(self, pos)
|
||||
local num = math.random(2, 4)
|
||||
for i=1,num do
|
||||
minetest.add_entity({x=pos.x + math.random(-2, 2), y=pos.y + 1, z=pos.z + (math.random(-2, 2))}, "mobs_slimes:lava_small")
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- register big lava slime
|
||||
mobs:register_mob("mobs_slimes:lava_big", {
|
||||
type = "monster",
|
||||
visual = "cube",
|
||||
textures = { lava_textures },
|
||||
visual_size = {x = 2, y = 2},
|
||||
collisionbox = {-1, -1, -1, 1, 1, 1},
|
||||
sounds = lava_sounds,
|
||||
hp_min = 6,
|
||||
hp_max = 12,
|
||||
armor = 100,
|
||||
knock_back = 1,
|
||||
blood_amount = 5,
|
||||
blood_texture = "lava_slime_blood.png",
|
||||
water_damage = 11,
|
||||
fall_damage = 0,
|
||||
damage = 3,
|
||||
attack_type = "dogfight",
|
||||
attacks_monsters = true,
|
||||
view_range = 10,
|
||||
walk_chance = 0,
|
||||
walk_velocity = 2,
|
||||
stepheight = 1.1,
|
||||
jump_chance = 60,
|
||||
replace_rate = 20,
|
||||
replace_what = {"air"},
|
||||
replace_with = "fire:basic_flame",
|
||||
on_die = function(self, pos)
|
||||
local num = math.random(1, 2)
|
||||
for i=1,num do
|
||||
minetest.add_entity({x=pos.x + math.random(-2, 2), y=pos.y + 1, z=pos.z + (math.random(-2, 2))}, "mobs_slimes:lava_medium")
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
local l_spawn_elevation_max = minetest.setting_get("water_level")
|
||||
if l_spawn_elevation_max then
|
||||
l_spawn_elevation_max = l_spawn_elevation_max - 64
|
||||
else
|
||||
l_spawn_elevation_max = -64
|
||||
end
|
||||
--name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height
|
||||
mobs:spawn_specific("mobs_slimes:lava_big",
|
||||
{"default:lava_source"},
|
||||
{"default:lava_flowing"},
|
||||
4, 20, 30, 10000, 1, -31000, l_spawn_elevation_max
|
||||
)
|
||||
mobs:spawn_specific("mobs_slimes:lava_medium",
|
||||
{"default:lava_source"},
|
||||
{"default:lava_flowing"},
|
||||
4, 20, 30, 10000, 2, -31000, l_spawn_elevation_max
|
||||
)
|
||||
mobs:spawn_specific("mobs_slimes:lava_small",
|
||||
{"default:lava_source"},
|
||||
{"default:lava_flowing"},
|
||||
4, 20, 30, 10000, 3, -31000, l_spawn_elevation_max
|
||||
)
|
||||
|
||||
mobs:register_egg("mobs_slimes:lava_small", "Small Lava Slime", "lava_slime_front.png", 0)
|
||||
mobs:register_egg("mobs_slimes:lava_medium", "Medium Lava Slime", "lava_slime_front.png", 0)
|
||||
mobs:register_egg("mobs_slimes:lava_big", "Big Lava Slime", "lava_slime_front.png", 0)
|
||||
|
||||
-- crafts
|
||||
minetest.register_craftitem("mobs_slimes:lava_slime", {
|
||||
image = "zmobs_lava_orb.png",
|
||||
description="Lava Slime Ball",
|
||||
})
|
||||
|
||||
-- spawner block
|
||||
if ENABLE_SPAWN_NODE then
|
||||
minetest.register_node("mobs_slimes:lava_spawner", {
|
||||
description = "Lava Slime Spawner",
|
||||
tiles = {"lava_slime_front.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3, stone=1, mob_spawner=1},
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dug = {name="slimes_death", gain=0.25}
|
||||
})
|
||||
})
|
||||
minetest.register_abm({
|
||||
nodenames = {"mobs_slimes:lava_spawner"},
|
||||
interval = 60.0,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local p = pos
|
||||
p.y = p.y + 1
|
||||
minetest.add_entity(p, "mobs_slimes:lava_big")
|
||||
end
|
||||
})
|
||||
end
|
After Width: | Height: | Size: 203 B |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 487 B |
After Width: | Height: | Size: 217 B |
After Width: | Height: | Size: 8.3 KiB |
After Width: | Height: | Size: 7.5 KiB |
|
@ -0,0 +1,33 @@
|
|||
**CODE**
|
||||
--------
|
||||
See Mobs.Redo license
|
||||
|
||||
|
||||
**MODELS/TEXTURES**
|
||||
-------------------
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 Krupnov Pavel
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
**SOUNDS**
|
||||
----------
|
||||
Not applicable.
|
|
@ -0,0 +1,2 @@
|
|||
default
|
||||
mobs
|
|
@ -0,0 +1,121 @@
|
|||
|
||||
-- Yeti by TenPlus1
|
||||
|
||||
if mobs.mod and mobs.mod == "redo" then
|
||||
|
||||
local ENABLE_SPAWN_NODE = true
|
||||
|
||||
-- yeti
|
||||
mobs:register_mob("mobs_yeti:yeti", {
|
||||
type = "monster",
|
||||
visual = "mesh",
|
||||
mesh = "character.b3d",
|
||||
textures = {
|
||||
{"mobs_yeti.png"},
|
||||
},
|
||||
collisionbox = {-0.35,-1.0,-0.35, 0.35,0.8,0.35},
|
||||
animation = {
|
||||
speed_normal = 30, speed_run = 30,
|
||||
stand_start = 0, stand_end = 79,
|
||||
walk_start = 168, walk_end = 187,
|
||||
run_start = 168, run_end = 187,
|
||||
punch_start = 200, punch_end = 219
|
||||
},
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = "mobs_stonemonster",
|
||||
},
|
||||
hp_min = 10,
|
||||
hp_max = 35,
|
||||
armor = 100,
|
||||
knock_back = 1,
|
||||
light_damage = 1,
|
||||
water_damage = 1,
|
||||
lava_damage = 15,
|
||||
fall_damage = 15,
|
||||
damage = 2,
|
||||
attack_type = "shoot",
|
||||
arrow = "mobs_yeti:snowball",
|
||||
shoot_interval = .7,
|
||||
shoot_offset = 2,
|
||||
view_range = 15,
|
||||
run_velocity = 3,
|
||||
stepheight = 1.1,
|
||||
floats = 0,
|
||||
drops = {
|
||||
{name = "default:ice", chance = 1, min = 1, max = 3,}
|
||||
},
|
||||
replace_rate = 50,
|
||||
replace_what = {"air"},
|
||||
replace_with = "default:snow",
|
||||
replace_offset = -1
|
||||
})
|
||||
|
||||
local l_spawn_elevation_min = minetest.setting_get("water_level")+1 or 1
|
||||
--name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height
|
||||
mobs:spawn_specific("mobs_yeti:yeti",
|
||||
{"default:dirt_with_snow", "default:snow", "default:snowblock", "default:ice"},
|
||||
{"air"},
|
||||
-1, 10, 30, 20000, 1, l_spawn_elevation_min, 31000
|
||||
)
|
||||
mobs:register_egg("mobs_yeti:yeti", "Yeti", "default_snow.png", 1)
|
||||
|
||||
mobs:register_arrow("mobs_yeti:snowball", {
|
||||
visual = "sprite",
|
||||
visual_size = {x=.5, y=.5},
|
||||
textures = {"default_snowball.png"},
|
||||
velocity = 6,
|
||||
hit_player = function(self, player)
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval=1.0,
|
||||
damage_groups = {fleshy=1},
|
||||
}, 0)
|
||||
end,
|
||||
hit_mob = function(self, player)
|
||||
player:punch(self.object, 1.0, {
|
||||
full_punch_interval=1.0,
|
||||
damage_groups = {fleshy=1},
|
||||
}, 0)
|
||||
end,
|
||||
hit_node = function(self, pos, node)
|
||||
end
|
||||
})
|
||||
|
||||
-- snowball throwing item
|
||||
local snowball_GRAVITY=9
|
||||
local snowball_VELOCITY=19
|
||||
|
||||
-- shoot snowball
|
||||
local mobs_shoot_snowball=function (item, player, pointed_thing)
|
||||
local playerpos=player:getpos()
|
||||
local obj=minetest.add_entity({x=playerpos.x,y=playerpos.y+1.5,z=playerpos.z}, "mobs_yeti:snowball")
|
||||
local dir=player:get_look_dir()
|
||||
obj:get_luaentity().velocity = snowball_VELOCITY -- needed for api internal timing
|
||||
obj:setvelocity({x=dir.x*snowball_VELOCITY, y=dir.y*snowball_VELOCITY, z=dir.z*snowball_VELOCITY})
|
||||
obj:setacceleration({x=dir.x*-3, y=-snowball_GRAVITY, z=dir.z*-3})
|
||||
item:take_item()
|
||||
return item
|
||||
end
|
||||
|
||||
-- spawner block
|
||||
if ENABLE_SPAWN_NODE then
|
||||
minetest.register_node("mobs_yeti:yeti_spawner", {
|
||||
description = "Yeti Spawner",
|
||||
tiles = {"mobs_yeti_face.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3, stone=1, mob_spawner=1},
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dug = {name="mobs_stonemonster", gain=0.25}
|
||||
})
|
||||
})
|
||||
minetest.register_abm({
|
||||
nodenames = {"mobs_yeti:yeti_spawner"},
|
||||
interval = 60.0,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
minetest.add_entity(pos, "mobs_yeti:yeti")
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
end
|
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 790 B |
|
@ -0,0 +1,15 @@
|
|||
**CODE**
|
||||
--------
|
||||
See Mobs.Redo license
|
||||
|
||||
|
||||
**MODELS/TEXTURES**
|
||||
-------------------
|
||||
Unknown
|
||||
Artist/origin: Blockmen
|
||||
|
||||
|
||||
**SOUNDS**
|
||||
----------
|
||||
Unknown
|
||||
Artist/origin: assuming Blockmen
|
|
@ -0,0 +1,2 @@
|
|||
default
|
||||
mobs
|
|
@ -0,0 +1,135 @@
|
|||
|
||||
if mobs.mod and mobs.mod == "redo" then
|
||||
|
||||
local ENABLE_SPAWN_NODE = true
|
||||
|
||||
-- zombie
|
||||
mobs:register_mob("mobs_zombie:zombie", {
|
||||
type = "monster",
|
||||
visual = "mesh",
|
||||
mesh = "creatures_mob.x",
|
||||
textures = {
|
||||
{"mobs_zombie.png"},
|
||||
},
|
||||
collisionbox = {-0.25, -1, -0.3, 0.25, 0.75, 0.3},
|
||||
animation = {
|
||||
speed_normal = 10, speed_run = 15,
|
||||
stand_start = 0, stand_end = 79,
|
||||
walk_start = 168, walk_end = 188,
|
||||
run_start = 168, run_end = 188
|
||||
},
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = "mobs_zombie.1",
|
||||
war_cry = "mobs_zombie.3",
|
||||
attack = "mobs_zombie.2",
|
||||
damage = "mobs_zombie_hit",
|
||||
death = "mobs_zombie_death",
|
||||
},
|
||||
hp_min = 12,
|
||||
hp_max = 35,
|
||||
armor = 200,
|
||||
knock_back = 1,
|
||||
lava_damage = 10,
|
||||
damage = 4,
|
||||
attack_type = "dogfight",
|
||||
group_attack = true,
|
||||
view_range = 10,
|
||||
walk_chance = 75,
|
||||
walk_velocity = 0.5,
|
||||
run_velocity = 0.5,
|
||||
jump = false,
|
||||
drops = {
|
||||
{name = "mobs_zombie:rotten_flesh", chance = 1, min = 1, max = 3,}
|
||||
},
|
||||
lifetimer = 180, -- 3 minutes
|
||||
shoot_interval = 135, -- (lifetimer - (lifetimer / 4))
|
||||
do_custom = function(self)
|
||||
if self.lifetimer <= self.shoot_interval then
|
||||
if math.random(100) <= 50 then
|
||||
minetest.add_entity(self.object:getpos(), "mobs_zombie:zombie_mini")
|
||||
end
|
||||
self.shoot_interval = self.shoot_interval - 45
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
--name, nodes, neighbors, min_light, max_light, interval, chance, active_object_count, min_height, max_height
|
||||
mobs:spawn_specific("mobs_zombie:zombie",
|
||||
{"default:stone", "default:dirt_with_grass"},
|
||||
{"air"},
|
||||
-1, 20, 30, 20000, 2, -31000, 31000
|
||||
)
|
||||
mobs:register_egg("mobs_zombie:zombie", "Zombie", "zombie_head.png", 0)
|
||||
|
||||
-- mini zombie
|
||||
mobs:register_mob("mobs_zombie:zombie_mini", {
|
||||
type = "monster",
|
||||
visual = "mesh",
|
||||
mesh = "creatures_mob.x",
|
||||
textures = {
|
||||
{"mobs_zombie.png"},
|
||||
},
|
||||
visual_size = {x = 0.5, y = 0.5},
|
||||
collisionbox = {-0.125, -0.5, -0.15, 0.125, 0.375, 0.15},
|
||||
animation = {
|
||||
speed_normal = 10, speed_run = 15,
|
||||
stand_start = 0, stand_end = 79,
|
||||
walk_start = 168, walk_end = 188,
|
||||
run_start = 168, run_end = 188
|
||||
},
|
||||
makes_footstep_sound = true,
|
||||
sounds = {
|
||||
random = "mobs_zombie.1",
|
||||
war_cry = "mobs_zombie.3",
|
||||
attack = "mobs_zombie.2",
|
||||
damage = "mobs_zombie_hit",
|
||||
death = "mobs_zombie_death"
|
||||
},
|
||||
hp_min = 20,
|
||||
hp_max = 45,
|
||||
armor = 150,
|
||||
knock_back = 1,
|
||||
lava_damage = 10,
|
||||
damage = 6,
|
||||
attack_type = "dogfight",
|
||||
group_attack = true,
|
||||
view_range = 10,
|
||||
walk_chance = 75,
|
||||
walk_velocity = 0.8,
|
||||
run_velocity = 0.8,
|
||||
jump = false,
|
||||
drops = {
|
||||
{name = "mobs_zombie:rotten_flesh", chance = 1, min = 1, max = 1,}
|
||||
}
|
||||
})
|
||||
|
||||
-- rotten flesh
|
||||
minetest.register_craftitem("mobs_zombie:rotten_flesh", {
|
||||
description = "Rotten Flesh",
|
||||
inventory_image = "mobs_rotten_flesh.png",
|
||||
on_use = minetest.item_eat(1),
|
||||
})
|
||||
|
||||
-- spawner block
|
||||
if ENABLE_SPAWN_NODE then
|
||||
minetest.register_node("mobs_zombie:zombie_spawner", {
|
||||
description = "Zombie Spawner",
|
||||
tiles = {"zombie_head.png"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3, stone=1, mob_spawner=1},
|
||||
sounds = default.node_sound_stone_defaults({
|
||||
dug = {name="mobs_zombie_death", gain=0.25}
|
||||
})
|
||||
})
|
||||
minetest.register_abm({
|
||||
nodenames = {"mobs_zombie:zombie_spawner"},
|
||||
interval = 60.0,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
minetest.add_entity(pos, "mobs_zombie:zombie")
|
||||
end
|
||||
})
|
||||
end
|
||||
|
||||
end
|
After Width: | Height: | Size: 433 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 168 B |