Modify mobs from original mods.
... rather than copying them.
This commit is contained in:
parent
0c788eb537
commit
0f09bd5cc8
26 changed files with 195 additions and 6606 deletions
13
LICENSE
13
LICENSE
|
@ -1,10 +1,3 @@
|
||||||
Much of the code and art from this mod were taken nearly unchanged from
|
|
||||||
Mobs Redo, made by TenPlus1 and many others, and distributed under the
|
|
||||||
WTFPL license.
|
|
||||||
|
|
||||||
https://forum.minetest.net/viewtopic.php?f=11&t=9917
|
|
||||||
|
|
||||||
|
|
||||||
All of the goblin code and art are taken from FreeLikeGNU's Goblins mod,
|
All of the goblin code and art are taken from FreeLikeGNU's Goblins mod,
|
||||||
distributed under the CC-by-SA license.
|
distributed under the CC-by-SA license.
|
||||||
|
|
||||||
|
@ -18,12 +11,6 @@ mod, distributed under the WTFPL license.
|
||||||
https://forum.minetest.net/viewtopic.php?f=9&t=9522
|
https://forum.minetest.net/viewtopic.php?f=9&t=9522
|
||||||
|
|
||||||
|
|
||||||
The changes I've made to these mods are minor, but crucial to dealing
|
|
||||||
with an all-underground environment. The mobs don't have vertical
|
|
||||||
range limits, are less affected by light, and they behave a bit
|
|
||||||
differently from the originals.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
The rest of this mod is distributed under the LGPL 2.1 license for
|
The rest of this mod is distributed under the LGPL 2.1 license for
|
||||||
historic reasons.
|
historic reasons.
|
||||||
|
|
128
danglers.lua
128
danglers.lua
|
@ -1,128 +0,0 @@
|
||||||
|
|
||||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
|
||||||
|
|
||||||
function fun_caves.climb(self)
|
|
||||||
if self.state == "stand" and math.random() < 0.2 then
|
|
||||||
if self.fall_speed == 2 then
|
|
||||||
self.fall_speed = -2
|
|
||||||
else
|
|
||||||
self.fall_speed = 2
|
|
||||||
end
|
|
||||||
elseif self.state == "attack" and self.fall_speed ~= -2 then
|
|
||||||
self.fall_speed = -2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
mobs:register_mob("fun_caves:dangler", {
|
|
||||||
description = "Dangling Spider",
|
|
||||||
type = "monster",
|
|
||||||
passive = false,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
attacks_monsters = true,
|
|
||||||
reach = 2,
|
|
||||||
damage = 1,
|
|
||||||
hp_min = 10,
|
|
||||||
hp_max = 20,
|
|
||||||
armor = 200,
|
|
||||||
collisionbox = {-0.32, -0.0, -0.25, 0.25, 0.25, 0.25},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "fun_caves_spider.x",
|
|
||||||
drawtype = "front",
|
|
||||||
textures = {
|
|
||||||
{"mobs_spider.png"},
|
|
||||||
},
|
|
||||||
visual_size = {x = 1.5, y = 1.5},
|
|
||||||
makes_footstep_sound = false,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_spider",
|
|
||||||
attack = "mobs_spider",
|
|
||||||
},
|
|
||||||
walk_velocity = 1,
|
|
||||||
run_velocity = 3,
|
|
||||||
jump = true,
|
|
||||||
view_range = 15,
|
|
||||||
floats = 0,
|
|
||||||
drops = {
|
|
||||||
{name = "mobs:meat_raw", chance = 2, min = 1, max = 1},
|
|
||||||
{name = "farming:cotton", chance = 2, min = 1, max = 2},
|
|
||||||
},
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = 5,
|
|
||||||
cold_damage = 1,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
lifetimer = 360,
|
|
||||||
follow = nil,
|
|
||||||
animation = {
|
|
||||||
speed_normal = 15,
|
|
||||||
speed_run = 15,
|
|
||||||
stand_start = 1,
|
|
||||||
stand_end = 1,
|
|
||||||
walk_start = 20,
|
|
||||||
walk_end = 40,
|
|
||||||
run_start = 20,
|
|
||||||
run_end = 40,
|
|
||||||
punch_start = 50,
|
|
||||||
punch_end = 90,
|
|
||||||
},
|
|
||||||
replace_rate = 50,
|
|
||||||
--replace_what = {"mobs:cobweb", "fun_caves:glowing_fungal_wood", "fun_caves:sap",},
|
|
||||||
--replace_with = "air",
|
|
||||||
--replace_offset = -1,
|
|
||||||
do_custom = function(self)
|
|
||||||
if not fun_caves.custom_ready(self) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
fun_caves.climb(self)
|
|
||||||
fun_caves.search_replace(self.object:getpos(), 100, {"air"}, "mobs:cobweb")
|
|
||||||
|
|
||||||
fun_caves.surface_damage(self)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("fun_caves:dangler", {"fun_caves:stone_with_moss", "fun_caves:stone_with_lichen", "fun_caves:stone_with_algae"}, 14, 0, 2500, 3, -51)
|
|
||||||
|
|
||||||
mobs:register_egg("fun_caves:dangler", "Dangling Spider", "mobs_cobweb.png", 1)
|
|
||||||
|
|
||||||
|
|
||||||
-- cobweb
|
|
||||||
if not minetest.registered_nodes['mobs:cobweb'] then
|
|
||||||
minetest.register_node(":mobs:cobweb", {
|
|
||||||
description = "Cobweb",
|
|
||||||
drawtype = "plantlike",
|
|
||||||
visual_scale = 1.1,
|
|
||||||
tiles = {"mobs_cobweb.png"},
|
|
||||||
inventory_image = "mobs_cobweb.png",
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
liquid_viscosity = 11,
|
|
||||||
liquidtype = "source",
|
|
||||||
liquid_alternative_flowing = "mobs:cobweb",
|
|
||||||
liquid_alternative_source = "mobs:cobweb",
|
|
||||||
liquid_renewable = false,
|
|
||||||
liquid_range = 0,
|
|
||||||
walkable = false,
|
|
||||||
groups = {snappy = 1, liquid = 3},
|
|
||||||
drop = "farming:cotton",
|
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_craft({
|
|
||||||
output = "mobs:cobweb",
|
|
||||||
recipe = {
|
|
||||||
{"farming:string", "", "farming:string"},
|
|
||||||
{"", "farming:string", ""},
|
|
||||||
{"farming:string", "", "farming:string"},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = {"mobs:cobweb"},
|
|
||||||
interval = 500,
|
|
||||||
chance = 50,
|
|
||||||
action = function(pos, node)
|
|
||||||
minetest.set_node(pos, {name = "air"})
|
|
||||||
end
|
|
||||||
})
|
|
|
@ -7,3 +7,4 @@ mobs?
|
||||||
mobs_monster?
|
mobs_monster?
|
||||||
mobs_slimes?
|
mobs_slimes?
|
||||||
mobs_creeper?
|
mobs_creeper?
|
||||||
|
dmobs?
|
||||||
|
|
59
elephant.lua
59
elephant.lua
|
@ -1,59 +0,0 @@
|
||||||
|
|
||||||
-- elephant from dmobs by D00Med (LGPL v2.1, textures CC-BY-SA v3.0)
|
|
||||||
|
|
||||||
mobs:register_mob("fun_caves:elephant", {
|
|
||||||
type = "monster",
|
|
||||||
passive = false,
|
|
||||||
reach = 3,
|
|
||||||
damage = 4,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
hp_min = 12,
|
|
||||||
hp_max = 22,
|
|
||||||
armor = 130,
|
|
||||||
collisionbox = {-0.9, -1.2, -0.9, 0.9, 0.9, 0.9},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "fun_caves_elephant.b3d",
|
|
||||||
textures = {
|
|
||||||
{"fun_caves_elephant.png"},
|
|
||||||
},
|
|
||||||
blood_texture = "mobs_blood.png",
|
|
||||||
visual_size = {x=2.5, y=2.5},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
walk_velocity = 1.1,
|
|
||||||
run_velocity = 1.2,
|
|
||||||
jump = false,
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = 2,
|
|
||||||
light_damage = 0,
|
|
||||||
replace_rate = 10,
|
|
||||||
replace_what = {"default:dry_grass_3", "default:dry_grass_4", "default:dry_grass_5", "farming:straw", "fun_caves:dry_fiber"},
|
|
||||||
replace_with = "air",
|
|
||||||
follow = {"farming:wheat"},
|
|
||||||
view_range = 9,
|
|
||||||
drops = {
|
|
||||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 5,
|
|
||||||
speed_run = 10,
|
|
||||||
walk_start = 3,
|
|
||||||
walk_end = 19,
|
|
||||||
stand_start = 20,
|
|
||||||
stand_end = 30,
|
|
||||||
run_start = 3,
|
|
||||||
run_end = 19,
|
|
||||||
|
|
||||||
},
|
|
||||||
on_rightclick = function(self, clicker)
|
|
||||||
|
|
||||||
if mobs:feed_tame(self, clicker, 8, true, true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
mobs:capture_mob(self, clicker, 0, 5, 50, false, nil)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("fun_caves:elephant", {"default:dirt_with_dry_grass","default:desert_sand"}, 20, 10, 17000, 2, 31000)
|
|
||||||
|
|
||||||
mobs:register_egg("fun_caves:elephant", "Elephant", "default_dry_grass.png", 1)
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_coal", {
|
||||||
hp_min = 5,
|
hp_min = 5,
|
||||||
hp_max = 10,
|
hp_max = 10,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_cobble", {
|
||||||
hp_min = 5,
|
hp_min = 5,
|
||||||
hp_max = 10,
|
hp_max = 10,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_copper", {
|
||||||
hp_min = 10,
|
hp_min = 10,
|
||||||
hp_max = 20,
|
hp_max = 20,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_diamond", {
|
||||||
hp_min = 20,
|
hp_min = 20,
|
||||||
hp_max = 30,
|
hp_max = 30,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -106,6 +106,7 @@ mobs:register_mob("fun_caves:goblin_digger", {
|
||||||
hp_min = 5,
|
hp_min = 5,
|
||||||
hp_max = 10,
|
hp_max = 10,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_gold", {
|
||||||
hp_min = 10,
|
hp_min = 10,
|
||||||
hp_max = 30,
|
hp_max = 30,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_ice", {
|
||||||
hp_min = 5,
|
hp_min = 5,
|
||||||
hp_max = 10,
|
hp_max = 10,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_iron", {
|
||||||
hp_min = 10,
|
hp_min = 10,
|
||||||
hp_max = 20,
|
hp_max = 20,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -10,6 +10,7 @@ mobs:register_mob("fun_caves:goblin_king", {
|
||||||
hp_min = 20,
|
hp_min = 20,
|
||||||
hp_max = 40,
|
hp_max = 40,
|
||||||
armor = 100,
|
armor = 100,
|
||||||
|
fear_height = 4,
|
||||||
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
collisionbox = {-0.35,-1,-0.35, 0.35,-.1,0.35},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "goblins_goblin.b3d",
|
mesh = "goblins_goblin.b3d",
|
||||||
|
|
|
@ -366,7 +366,7 @@ local function generate(p_minp, p_maxp, seed)
|
||||||
biome_val = biome_val / max(1, log(y - fluid_compression))
|
biome_val = biome_val / max(1, log(y - fluid_compression))
|
||||||
end
|
end
|
||||||
-------------------
|
-------------------
|
||||||
--biome_val = 0.45
|
--biome_val = -0.75
|
||||||
-------------------
|
-------------------
|
||||||
if biome_val < -0.65 then
|
if biome_val < -0.65 then
|
||||||
stone_type = node["default:ice"]
|
stone_type = node["default:ice"]
|
||||||
|
@ -683,8 +683,10 @@ local function generate(p_minp, p_maxp, seed)
|
||||||
vm:set_data(data)
|
vm:set_data(data)
|
||||||
--vm:set_param2_data(p2data)
|
--vm:set_param2_data(p2data)
|
||||||
if fun_caves.DEBUG then
|
if fun_caves.DEBUG then
|
||||||
vm:set_lighting({day = 15, night = 15})
|
vm:set_lighting({day = 8, night = 8})
|
||||||
else
|
else
|
||||||
|
-- set_lighting causes shadows
|
||||||
|
--vm:set_lighting({day = 0, night = 0})
|
||||||
vm:calc_lighting({x=minp.x,y=emin.y,z=minp.z},maxp)
|
vm:calc_lighting({x=minp.x,y=emin.y,z=minp.z},maxp)
|
||||||
end
|
end
|
||||||
vm:update_liquids()
|
vm:update_liquids()
|
||||||
|
|
187
mobs.lua
187
mobs.lua
|
@ -17,6 +17,18 @@ fun_caves.search_replace = function(pos, search_rate, replace_what, replace_with
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function fun_caves.climb(self)
|
||||||
|
if self.state == "stand" and math.random() < 0.2 then
|
||||||
|
if self.fall_speed == 2 then
|
||||||
|
self.fall_speed = -2
|
||||||
|
else
|
||||||
|
self.fall_speed = 2
|
||||||
|
end
|
||||||
|
elseif self.state == "attack" and self.fall_speed ~= -2 then
|
||||||
|
self.fall_speed = -2
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- causes mobs to take damage from hot/cold surfaces
|
-- causes mobs to take damage from hot/cold surfaces
|
||||||
fun_caves.surface_damage = function(self, cold_natured)
|
fun_caves.surface_damage = function(self, cold_natured)
|
||||||
--if not self.fun_caves_damage_timer then
|
--if not self.fun_caves_damage_timer then
|
||||||
|
@ -63,13 +75,171 @@ fun_caves.custom_ready = function(self)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
dofile(fun_caves.path .. "/danglers.lua")
|
if minetest.registered_entities["mobs_monster:spider"] then
|
||||||
dofile(fun_caves.path .. "/spider.lua")
|
-- Deep spider
|
||||||
dofile(fun_caves.path .. "/tarantula.lua")
|
local m = table.copy(minetest.registered_entities["mobs_monster:spider"])
|
||||||
dofile(fun_caves.path .. "/spider_ice.lua")
|
m.docile_by_day = false
|
||||||
dofile(fun_caves.path .. "/sand_monster.lua")
|
m.drops = {
|
||||||
dofile(fun_caves.path .. "/tar_monster.lua")
|
{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
|
||||||
dofile(fun_caves.path .. "/elephant.lua")
|
{name = "wool:black", chance = 1, min = 1, max = 3},
|
||||||
|
}
|
||||||
|
m.water_damage = 0
|
||||||
|
m.do_custom = function(self)
|
||||||
|
if not fun_caves.custom_ready(self) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
fun_caves.surface_damage(self)
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.registered_entities["fun_caves:spider"] = m
|
||||||
|
mobs.spawning_mobs["fun_caves:spider"] = true
|
||||||
|
|
||||||
|
mobs:register_spawn("fun_caves:spider", {"fun_caves:stone_with_moss", "fun_caves:stone_with_lichen", "fun_caves:stone_with_algae"}, 14, 0, 2000, 2, -51)
|
||||||
|
|
||||||
|
mobs:register_egg("fun_caves:spider", "Deep Spider", "mobs_cobweb.png", 1)
|
||||||
|
|
||||||
|
|
||||||
|
-- ice spider
|
||||||
|
m = table.copy(minetest.registered_entities["mobs_monster:spider"])
|
||||||
|
m.docile_by_day = false
|
||||||
|
m.textures = { {"fun_caves_spider_ice.png"}, }
|
||||||
|
m.base_texture = m.textures[1]
|
||||||
|
m.drops = {
|
||||||
|
{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
|
||||||
|
{name = "wool:white", chance = 1, min = 1, max = 3},
|
||||||
|
}
|
||||||
|
m.water_damage = 0
|
||||||
|
m.do_custom = function(self)
|
||||||
|
if not fun_caves.custom_ready(self) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
fun_caves.surface_damage(self, true)
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.registered_entities["fun_caves:spider_ice"] = m
|
||||||
|
mobs.spawning_mobs["fun_caves:spider_ice"] = true
|
||||||
|
|
||||||
|
mobs:register_spawn("fun_caves:spider_ice", {"default:ice"}, 14, 0, 1000, 2, 31000)
|
||||||
|
|
||||||
|
mobs:register_egg("fun_caves:spider_ice", "Ice Spider", "mobs_cobweb.png", 1)
|
||||||
|
|
||||||
|
|
||||||
|
-- dangling spiders
|
||||||
|
m = table.copy(minetest.registered_entities["mobs_monster:spider"])
|
||||||
|
m.docile_by_day = false
|
||||||
|
m.attacks_monsters = true
|
||||||
|
m.damage = 1
|
||||||
|
m.hp_min = 10
|
||||||
|
m.hp_max = 20
|
||||||
|
m.water_damage = 0
|
||||||
|
m.fall_damage = 0
|
||||||
|
m.collisionbox = {-0.32, -0.0, -0.25, 0.25, 0.25, 0.25}
|
||||||
|
m.visual_size = {x = 1.5, y = 1.5}
|
||||||
|
m.drops = {
|
||||||
|
{name = "mobs:meat_raw", chance = 2, min = 1, max = 1},
|
||||||
|
{name = "farming:cotton", chance = 2, min = 1, max = 2},
|
||||||
|
}
|
||||||
|
m.do_custom = function(self)
|
||||||
|
if not fun_caves.custom_ready(self) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
fun_caves.climb(self)
|
||||||
|
fun_caves.search_replace(self.object:getpos(), 100, {"air"}, "mobs:cobweb")
|
||||||
|
|
||||||
|
fun_caves.surface_damage(self)
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.registered_entities["fun_caves:dangler"] = m
|
||||||
|
mobs.spawning_mobs["fun_caves:dangler"] = true
|
||||||
|
|
||||||
|
mobs:register_spawn("fun_caves:dangler", {"fun_caves:stone_with_moss", "fun_caves:stone_with_lichen", "fun_caves:stone_with_algae"}, 14, 0, 1000, 3, -51)
|
||||||
|
|
||||||
|
mobs:register_egg("fun_caves:dangler", "Dangling Spider", "mobs_cobweb.png", 1)
|
||||||
|
|
||||||
|
|
||||||
|
-- tarantula
|
||||||
|
m = table.copy(minetest.registered_entities["mobs_monster:spider"])
|
||||||
|
m.type = "animal"
|
||||||
|
m.reach = 1
|
||||||
|
m.damage = 1
|
||||||
|
m.hp_min = 1
|
||||||
|
m.hp_max = 2
|
||||||
|
m.collisionbox = {-0.15, -0.01, -0.15, 0.15, 0.1, 0.15}
|
||||||
|
m.textures = { {"fun_caves_tarantula.png"}, }
|
||||||
|
m.base_texture = m.textures[1]
|
||||||
|
m.visual_size = {x = 1, y = 1}
|
||||||
|
m.sounds = {}
|
||||||
|
m.run_velocity = 2
|
||||||
|
m.jump = false
|
||||||
|
m.drops = { {name = "mobs:meat_raw", chance = 1, min = 1, max = 1}, }
|
||||||
|
m.do_custom = function(self)
|
||||||
|
if not self.fun_caves_damage_timer then
|
||||||
|
self.fun_caves_damage_timer = 0
|
||||||
|
end
|
||||||
|
|
||||||
|
fun_caves.surface_damage(self)
|
||||||
|
end
|
||||||
|
minetest.registered_entities["fun_caves:tarantula"] = m
|
||||||
|
mobs.spawning_mobs["fun_caves:tarantula"] = true
|
||||||
|
|
||||||
|
mobs:register_spawn("fun_caves:tarantula", {"default:desert_sand", "default:dirt_with_dry_grass"}, 99, 0, 3000, 2, 31000)
|
||||||
|
|
||||||
|
mobs:register_egg("fun_caves:tarantula", "Tarantula", "mobs_cobweb.png", 1)
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"mobs:cobweb"},
|
||||||
|
interval = 500,
|
||||||
|
chance = 50,
|
||||||
|
action = function(pos, node)
|
||||||
|
minetest.set_node(pos, {name = "air"})
|
||||||
|
end
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.registered_entities["mobs_monster:sand_monster"] then
|
||||||
|
local m = table.copy(minetest.registered_entities["mobs_monster:sand_monster"])
|
||||||
|
m.damage = 2
|
||||||
|
m.hp_min = 15
|
||||||
|
m.hp_max = 40
|
||||||
|
m.textures = { {"fun_caves_tar_monster.png"}, }
|
||||||
|
m.base_texture = m.textures[1]
|
||||||
|
m.drops = { {name = "default:coal_lump", chance = 1, min = 3, max = 5}, }
|
||||||
|
m.water_damage = 1
|
||||||
|
m.lava_damage = 2
|
||||||
|
m.light_damage = 1
|
||||||
|
|
||||||
|
minetest.registered_entities["fun_caves:tar_monster"] = m
|
||||||
|
mobs.spawning_mobs["fun_caves:tar_monster"] = true
|
||||||
|
|
||||||
|
mobs:register_spawn("fun_caves:tar_monster", {"fun_caves:black_sand"}, 20, 0, 4000, 1, 31000)
|
||||||
|
|
||||||
|
mobs:register_egg("fun_caves:tar_monster", "Tar Monster", "fun_caves_black_sand.png", 1)
|
||||||
|
|
||||||
|
|
||||||
|
m = table.copy(minetest.registered_entities["mobs_monster:sand_monster"])
|
||||||
|
m.textures = { {"fun_caves_sand_monster.png"}, }
|
||||||
|
m.base_texture = m.textures[1]
|
||||||
|
m.drops = { {name = "default:sand", chance = 1, min = 3, max = 5}, }
|
||||||
|
|
||||||
|
minetest.registered_entities["fun_caves:sand_monster"] = m
|
||||||
|
mobs.spawning_mobs["fun_caves:sand_monster"] = true
|
||||||
|
|
||||||
|
mobs:register_spawn("fun_caves:sand_monster", {"default:sand"}, 20, 0, 4000, 3, -50)
|
||||||
|
|
||||||
|
mobs:register_egg("fun_caves:sand_monster", "Deep Sand Monster", "default_sand.png", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Change the original, rather than making a copy.
|
||||||
|
if minetest.registered_entities["dmobs:elephant"] then
|
||||||
|
local m = minetest.registered_entities["dmobs:elephant"]
|
||||||
|
m.type = "monster"
|
||||||
|
m.reach = 3
|
||||||
|
m.damage = 3
|
||||||
|
end
|
||||||
|
|
||||||
if minetest.registered_entities["mobs_monster:dirt_monster"] then
|
if minetest.registered_entities["mobs_monster:dirt_monster"] then
|
||||||
-- check this
|
-- check this
|
||||||
|
@ -140,6 +310,9 @@ local t_mobs = {
|
||||||
"fun_caves:goblin_gold",
|
"fun_caves:goblin_gold",
|
||||||
"fun_caves:goblin_diamond",
|
"fun_caves:goblin_diamond",
|
||||||
"fun_caves:goblin_king",
|
"fun_caves:goblin_king",
|
||||||
|
"dmobs:orc",
|
||||||
|
"dmobs:ogre",
|
||||||
|
"dmobs:dragon",
|
||||||
}
|
}
|
||||||
for _, mob in pairs(t_mobs) do
|
for _, mob in pairs(t_mobs) do
|
||||||
if minetest.registered_entities[mob] then
|
if minetest.registered_entities[mob] then
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load diff
Binary file not shown.
|
@ -1,52 +0,0 @@
|
||||||
|
|
||||||
-- Sand Monster by PilzAdam
|
|
||||||
|
|
||||||
mobs:register_mob("fun_caves:sand_monster", {
|
|
||||||
type = "monster",
|
|
||||||
passive = false,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
pathfinding = true,
|
|
||||||
reach = 2,
|
|
||||||
damage = 1,
|
|
||||||
hp_min = 4,
|
|
||||||
hp_max = 20,
|
|
||||||
armor = 100,
|
|
||||||
collisionbox = {-0.4, -1, -0.4, 0.4, 0.8, 0.4},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_sand_monster.b3d",
|
|
||||||
textures = {
|
|
||||||
{"fun_caves_sand_monster.png"},
|
|
||||||
},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_sandmonster",
|
|
||||||
},
|
|
||||||
walk_velocity = 1.5,
|
|
||||||
run_velocity = 4,
|
|
||||||
view_range = 15,
|
|
||||||
jump = true,
|
|
||||||
floats = 0,
|
|
||||||
drops = {
|
|
||||||
{name = "default:sand", chance = 1, min = 3, max = 5},
|
|
||||||
},
|
|
||||||
water_damage = 3,
|
|
||||||
lava_damage = 4,
|
|
||||||
light_damage = 0,
|
|
||||||
fear_height = 4,
|
|
||||||
animation = {
|
|
||||||
speed_normal = 15,
|
|
||||||
speed_run = 15,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 39,
|
|
||||||
walk_start = 41,
|
|
||||||
walk_end = 72,
|
|
||||||
run_start = 74,
|
|
||||||
run_end = 105,
|
|
||||||
punch_start = 74,
|
|
||||||
punch_end = 105,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("fun_caves:sand_monster", {"default:sand"}, 20, 0, 4000, 3, -50)
|
|
||||||
|
|
||||||
mobs:register_egg("fun_caves:sand_monster", "Deep Sand Monster", "default_sand.png", 1)
|
|
61
spider.lua
61
spider.lua
|
@ -1,61 +0,0 @@
|
||||||
|
|
||||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
|
||||||
|
|
||||||
mobs:register_mob("fun_caves:spider", {
|
|
||||||
docile_by_day = true,
|
|
||||||
type = "monster",
|
|
||||||
passive = false,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
reach = 2,
|
|
||||||
damage = 3,
|
|
||||||
hp_min = 20,
|
|
||||||
hp_max = 40,
|
|
||||||
armor = 200,
|
|
||||||
collisionbox = {-0.9, -0.01, -0.7, 0.7, 0.6, 0.7},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "fun_caves_spider.x",
|
|
||||||
textures = {
|
|
||||||
{"mobs_spider.png"},
|
|
||||||
},
|
|
||||||
visual_size = {x = 7, y = 7},
|
|
||||||
makes_footstep_sound = false,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_spider",
|
|
||||||
attack = "mobs_spider",
|
|
||||||
},
|
|
||||||
walk_velocity = 1,
|
|
||||||
run_velocity = 3,
|
|
||||||
jump = true,
|
|
||||||
view_range = 15,
|
|
||||||
floats = 0,
|
|
||||||
drops = {
|
|
||||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
|
|
||||||
{name = "wool:black", chance = 1, min = 1, max = 3},
|
|
||||||
},
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = 5,
|
|
||||||
light_damage = 0,
|
|
||||||
animation = {
|
|
||||||
speed_normal = 15,
|
|
||||||
speed_run = 15,
|
|
||||||
stand_start = 1,
|
|
||||||
stand_end = 1,
|
|
||||||
walk_start = 20,
|
|
||||||
walk_end = 40,
|
|
||||||
run_start = 20,
|
|
||||||
run_end = 40,
|
|
||||||
punch_start = 50,
|
|
||||||
punch_end = 90,
|
|
||||||
},
|
|
||||||
do_custom = function(self)
|
|
||||||
if not fun_caves.custom_ready(self) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
fun_caves.surface_damage(self)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("fun_caves:spider", {"fun_caves:stone_with_moss", "fun_caves:stone_with_lichen", "fun_caves:stone_with_algae"}, 14, 0, 5000, 2, -51)
|
|
||||||
|
|
||||||
mobs:register_egg("fun_caves:spider", "Deep Spider", "mobs_cobweb.png", 1)
|
|
|
@ -1,62 +0,0 @@
|
||||||
|
|
||||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
|
||||||
|
|
||||||
mobs:register_mob("fun_caves:spider_ice", {
|
|
||||||
docile_by_day = true,
|
|
||||||
type = "monster",
|
|
||||||
passive = false,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
reach = 2,
|
|
||||||
damage = 3,
|
|
||||||
hp_min = 20,
|
|
||||||
hp_max = 40,
|
|
||||||
armor = 200,
|
|
||||||
collisionbox = {-0.9, -0.01, -0.7, 0.7, 0.6, 0.7},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "fun_caves_spider.x",
|
|
||||||
textures = {
|
|
||||||
{"fun_caves_spider_ice.png"},
|
|
||||||
},
|
|
||||||
visual_size = {x = 7, y = 7},
|
|
||||||
makes_footstep_sound = false,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_spider",
|
|
||||||
attack = "mobs_spider",
|
|
||||||
},
|
|
||||||
walk_velocity = 1,
|
|
||||||
run_velocity = 3,
|
|
||||||
jump = true,
|
|
||||||
view_range = 15,
|
|
||||||
floats = 0,
|
|
||||||
drops = {
|
|
||||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 3},
|
|
||||||
{name = "wool:white", chance = 1, min = 1, max = 3},
|
|
||||||
},
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = 5,
|
|
||||||
cold_damage = 0,
|
|
||||||
light_damage = 0,
|
|
||||||
animation = {
|
|
||||||
speed_normal = 15,
|
|
||||||
speed_run = 15,
|
|
||||||
stand_start = 1,
|
|
||||||
stand_end = 1,
|
|
||||||
walk_start = 20,
|
|
||||||
walk_end = 40,
|
|
||||||
run_start = 20,
|
|
||||||
run_end = 40,
|
|
||||||
punch_start = 50,
|
|
||||||
punch_end = 90,
|
|
||||||
},
|
|
||||||
do_custom = function(self)
|
|
||||||
if not fun_caves.custom_ready(self) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
fun_caves.surface_damage(self, true)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("fun_caves:spider_ice", {"default:ice"}, 14, 0, 1000, 2, 31000)
|
|
||||||
|
|
||||||
mobs:register_egg("fun_caves:spider_ice", "Ice Spider", "mobs_cobweb.png", 1)
|
|
|
@ -1,58 +0,0 @@
|
||||||
|
|
||||||
-- Sand Monster by PilzAdam
|
|
||||||
|
|
||||||
mobs:register_mob("fun_caves:tar_monster", {
|
|
||||||
type = "monster",
|
|
||||||
passive = false,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
pathfinding = true,
|
|
||||||
reach = 2,
|
|
||||||
damage = 2,
|
|
||||||
hp_min = 15,
|
|
||||||
hp_max = 40,
|
|
||||||
armor = 100,
|
|
||||||
collisionbox = {-0.4, -1, -0.4, 0.4, 0.8, 0.4},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_sand_monster.b3d",
|
|
||||||
textures = {
|
|
||||||
{"fun_caves_tar_monster.png"},
|
|
||||||
},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_sandmonster",
|
|
||||||
},
|
|
||||||
walk_velocity = 1.5,
|
|
||||||
run_velocity = 4,
|
|
||||||
view_range = 15,
|
|
||||||
jump = true,
|
|
||||||
floats = 0,
|
|
||||||
drops = {
|
|
||||||
{name = "default:coal_lump", chance = 1, min = 3, max = 5},
|
|
||||||
},
|
|
||||||
water_damage = 1,
|
|
||||||
lava_damage = 2,
|
|
||||||
light_damage = 1,
|
|
||||||
fear_height = 4,
|
|
||||||
animation = {
|
|
||||||
speed_normal = 15,
|
|
||||||
speed_run = 15,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 39,
|
|
||||||
walk_start = 41,
|
|
||||||
walk_end = 72,
|
|
||||||
run_start = 74,
|
|
||||||
run_end = 105,
|
|
||||||
punch_start = 74,
|
|
||||||
punch_end = 105,
|
|
||||||
},
|
|
||||||
--[[
|
|
||||||
custom_attack = function(self, p)
|
|
||||||
local pos = self.object:getpos()
|
|
||||||
minetest.add_item(pos, "default:sand")
|
|
||||||
end,
|
|
||||||
]]
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("fun_caves:tar_monster", {"fun_caves:black_sand"}, 20, 0, 4000, 1, 31000)
|
|
||||||
|
|
||||||
mobs:register_egg("fun_caves:tar_monster", "Tar Monster", "fun_caves_black_sand.png", 1)
|
|
|
@ -1,60 +0,0 @@
|
||||||
|
|
||||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
|
||||||
|
|
||||||
mobs:register_mob("fun_caves:tarantula", {
|
|
||||||
docile_by_day = true,
|
|
||||||
type = "monster",
|
|
||||||
passive = false,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
reach = 1,
|
|
||||||
damage = 1,
|
|
||||||
hp_min = 1,
|
|
||||||
hp_max = 2,
|
|
||||||
armor = 200,
|
|
||||||
collisionbox = {-0.15, -0.01, -0.15, 0.15, 0.1, 0.15},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "fun_caves_spider.x",
|
|
||||||
textures = {
|
|
||||||
{"fun_caves_tarantula.png"},
|
|
||||||
},
|
|
||||||
visual_size = {x = 1, y = 1},
|
|
||||||
makes_footstep_sound = false,
|
|
||||||
--sounds = {
|
|
||||||
-- random = "mobs_spider",
|
|
||||||
-- attack = "mobs_spider",
|
|
||||||
--},
|
|
||||||
walk_velocity = 1,
|
|
||||||
run_velocity = 2,
|
|
||||||
jump = false,
|
|
||||||
view_range = 15,
|
|
||||||
floats = 0,
|
|
||||||
drops = {
|
|
||||||
{name = "mobs:meat_raw", chance = 1, min = 1, max = 1},
|
|
||||||
},
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = 5,
|
|
||||||
light_damage = 0,
|
|
||||||
animation = {
|
|
||||||
speed_normal = 15,
|
|
||||||
speed_run = 15,
|
|
||||||
stand_start = 1,
|
|
||||||
stand_end = 1,
|
|
||||||
walk_start = 20,
|
|
||||||
walk_end = 40,
|
|
||||||
run_start = 20,
|
|
||||||
run_end = 40,
|
|
||||||
punch_start = 50,
|
|
||||||
punch_end = 90,
|
|
||||||
},
|
|
||||||
do_custom = function(self)
|
|
||||||
if not self.fun_caves_damage_timer then
|
|
||||||
self.fun_caves_damage_timer = 0
|
|
||||||
end
|
|
||||||
|
|
||||||
fun_caves.surface_damage(self)
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("fun_caves:tarantula", {"default:desert_sand", "default:dirt_with_dry_grass"}, 99, 0, 3000, 2, 31000)
|
|
||||||
|
|
||||||
--mobs:register_egg("fun_caves:spider", "Deep Spider", "mobs_cobweb.png", 1)
|
|
Binary file not shown.
Before Width: | Height: | Size: 59 KiB |
|
@ -1,3 +1,2 @@
|
||||||
Elephant textures and model: DOOMED <heiselong@gmx.com>
|
Original spider textures: AspireMint
|
||||||
Original spider textures and model: AspireMint and fishyWET
|
|
||||||
Original goblins textures and models: Francisco "FreeLikeGNU" Athens
|
Original goblins textures and models: Francisco "FreeLikeGNU" Athens
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 2 KiB |
Loading…
Add table
Add a link
Reference in a new issue