first commit

master
blert2112 2015-08-13 23:32:08 -04:00
commit 576b32434c
52 changed files with 13198 additions and 0 deletions

63
defaults.txt Normal file
View File

@ -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,

15
mobs_creeper/License.txt Normal file
View File

@ -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

2
mobs_creeper/depends.txt Normal file
View File

@ -0,0 +1,2 @@
default
mobs

75
mobs_creeper/init.lua Normal file
View File

@ -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

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 B

View File

@ -0,0 +1,14 @@
**CODE**
--------
See Mobs.Redo license
**MODELS/TEXTURES**
-------------------
WTFPL
Artist/origin: Devyn Collier Johnson (DevynCJohnson@Gmail.com)
**SOUNDS**
----------
Not applicable.

View File

@ -0,0 +1,2 @@
default
mobs

69
mobs_senderman/init.lua Normal file
View File

@ -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

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 B

19
mobs_slimes/License.txt Normal file
View File

@ -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/

2
mobs_slimes/depends.txt Normal file
View File

@ -0,0 +1,2 @@
default
mobs

163
mobs_slimes/greenslimes.lua Normal file
View File

@ -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

8
mobs_slimes/init.lua Normal file
View File

@ -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

172
mobs_slimes/lavaslimes.lua Normal file
View File

@ -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

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 203 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

33
mobs_yeti/License.txt Normal file
View File

@ -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.

2
mobs_yeti/depends.txt Normal file
View File

@ -0,0 +1,2 @@
default
mobs

121
mobs_yeti/init.lua Normal file
View File

@ -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

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

15
mobs_zombie/License.txt Normal file
View File

@ -0,0 +1,15 @@
**CODE**
--------
See Mobs.Redo license
**MODELS/TEXTURES**
-------------------
Unknown
Artist/origin: Blockmen
**SOUNDS**
----------
Unknown
Artist/origin: assuming Blockmen

2
mobs_zombie/depends.txt Normal file
View File

@ -0,0 +1,2 @@
default
mobs

135
mobs_zombie/init.lua Normal file
View File

@ -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

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

0
modpack.txt Normal file
View File