Compare commits
2 Commits
Author | SHA1 | Date |
---|---|---|
Wuzzy | 78fda0e7a6 | |
Wuzzy | 39a4532678 |
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit cc0f5a09dc6fccf80447edf6820dddaf64c1c6f1
|
|
@ -1,64 +0,0 @@
|
||||||
MC MOBS
|
|
||||||
WIP
|
|
||||||
assembled by maikerumine
|
|
||||||
compatable with Mobs Redo API
|
|
||||||
|
|
||||||
## LICENSING
|
|
||||||
Note: In the following file name lists, the asterisk (“`*`”) is a placeholder which stands for any sequence of characters.
|
|
||||||
Everything not explicitly mentioned or with no license mentioned falls under the license of the MineClone 2 project (see README.md in the top directory of MineClone 2).
|
|
||||||
|
|
||||||
### Code
|
|
||||||
MIT License
|
|
||||||
|
|
||||||
by PilzAdam and others
|
|
||||||
|
|
||||||
### Sound files
|
|
||||||
|
|
||||||
- `mobs_mc_squid_hurt.ogg`
|
|
||||||
- Author: daufinsyd
|
|
||||||
- `mobs_mc_chicken_lay_egg.ogg`
|
|
||||||
- WTFPL, by PilzAdam and Wuzzy
|
|
||||||
- `mobs_mc_cow.ogg`
|
|
||||||
- CC0, by Freesound.org user Zozzy
|
|
||||||
- Source: <https://www.freesound.org/people/Zozzy/sounds/59245/>
|
|
||||||
- `mobs_*.ogg` (except the files above)
|
|
||||||
- MIT License, from `mobs_animal` and `mobs_monster` by TenPlus1
|
|
||||||
- `blaze_breath.ogg`
|
|
||||||
- `blaze_died1.ogg`
|
|
||||||
- Author: daufinsyd
|
|
||||||
- `blaze_hurt1.ogg`
|
|
||||||
- CC0, by freesound.org user thefilmbakery
|
|
||||||
- Source: <https://freesound.org/people/thefilmbakery/sounds/137836/>
|
|
||||||
- `green_slime_death.ogg`
|
|
||||||
- CC BY 3.0 <http://creativecommons.org/licenses/by/3.0/>
|
|
||||||
- By freesound.org user DrMinky
|
|
||||||
- Source: <https://freesound.org/people/DrMinky/sounds/167074/>
|
|
||||||
- `green_slime_*.ogg`
|
|
||||||
- MIT License
|
|
||||||
- `mobs_sheep.ogg`
|
|
||||||
- [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/), created by the Blender Foundation
|
|
||||||
|
|
||||||
### Textures
|
|
||||||
|
|
||||||
- `mobs_squid.png`
|
|
||||||
- `mobs_blaze.png`
|
|
||||||
- GPLv3 by 22i
|
|
||||||
- `mobs_bunny_*.png`
|
|
||||||
- MIT License, by ExeterDad
|
|
||||||
- `spawn_egg_squid.png`
|
|
||||||
- `spawn_egg_blaze.png`
|
|
||||||
- Author: daufinsyd
|
|
||||||
- `spawn_egg_rabbit.png`
|
|
||||||
- MIT License, by Wuzzy
|
|
||||||
- `mobs_skeleton2.png`
|
|
||||||
- MIT License, originally from Faithful texture pack
|
|
||||||
(see MineClone 2 main readme file), edited by kingoscargames
|
|
||||||
|
|
||||||
### Models
|
|
||||||
- `mobs_bunny.b3d`
|
|
||||||
- MIT License, by ExeterDad
|
|
||||||
|
|
||||||
Everything else:
|
|
||||||
|
|
||||||
Faithful 1.11
|
|
||||||
- MIT License, by Vattic, xMrVizzy and contributors
|
|
|
@ -1,110 +0,0 @@
|
||||||
-- daufinsyd
|
|
||||||
-- My work is under the LGPL terms
|
|
||||||
-- Model and mobs_blaze.png see https://github.com/22i/minecraft-voxel-blender-models
|
|
||||||
-- blaze.lua partial copy of mobs_mc/ghast.lua
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:blaze", {
|
|
||||||
type = "monster",
|
|
||||||
hp_min = 20,
|
|
||||||
hp_max = 20,
|
|
||||||
collisionbox = {-0.4, 0.4, -0.4, 0.4, 1.9, 0.4},
|
|
||||||
textures = {
|
|
||||||
{"mobs_blaze.png"}
|
|
||||||
},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_blaze.b3d",
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
random = "blaze_breath",
|
|
||||||
death = "blaze_died",
|
|
||||||
damage = "blaze_hurt1",
|
|
||||||
attack = "default_punch3",
|
|
||||||
},
|
|
||||||
walk_velocity = .8,
|
|
||||||
run_velocity = 1.6,
|
|
||||||
damage = 2.5,
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
armor = 80,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:blaze_rod",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 1,},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
stand_start = 1,
|
|
||||||
stand_end = 40,
|
|
||||||
walk_start = 1,
|
|
||||||
walk_end = 40,
|
|
||||||
run_start = 1,
|
|
||||||
run_end = 40,
|
|
||||||
shoot_start = 1,
|
|
||||||
shoot_end = 40,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
-- MC Wiki: 1 damage every half second
|
|
||||||
water_damage = 2,
|
|
||||||
lava_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
light_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "shoot",
|
|
||||||
arrow = "mobs_mc:blaze_fireball",
|
|
||||||
shoot_interval = 3.5,
|
|
||||||
passive = false,
|
|
||||||
jump = true,
|
|
||||||
jump_height = 4,
|
|
||||||
floats = 1,
|
|
||||||
fly = true,
|
|
||||||
jump_chance = 98,
|
|
||||||
fear_height = 120,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("mobs_mc:blaze", {"mcl_core:lava_flowing", "mcl_nether:netherrack","air"}, 30, -1, 5000, 1, -1000)
|
|
||||||
|
|
||||||
-- Blaze fireball
|
|
||||||
mobs:register_arrow("mobs_mc:blaze_fireball", {
|
|
||||||
visual = "sprite",
|
|
||||||
visual_size = {x = 0.3, y = 0.3},
|
|
||||||
textures = {"mcl_fire_fire_charge.png"},
|
|
||||||
velocity = 12,
|
|
||||||
|
|
||||||
-- Direct hit, no fire... just plenty of pain
|
|
||||||
hit_player = function(self, player)
|
|
||||||
player:punch(self.object, 1.0, {
|
|
||||||
full_punch_interval = 1.0,
|
|
||||||
damage_groups = {fleshy = 5},
|
|
||||||
}, nil)
|
|
||||||
mcl_hunger.exhaust(player:get_player_name(), mcl_hunger.EXHAUST_DAMAGE)
|
|
||||||
end,
|
|
||||||
|
|
||||||
hit_mob = function(self, player)
|
|
||||||
player:punch(self.object, 1.0, {
|
|
||||||
full_punch_interval = 1.0,
|
|
||||||
damage_groups = {fleshy = 5},
|
|
||||||
}, nil)
|
|
||||||
end,
|
|
||||||
|
|
||||||
-- Node hit, make fire
|
|
||||||
hit_node = function(self, pos, node)
|
|
||||||
local pos_above = {x=pos.x, y=pos.y+1, z=pos.z}
|
|
||||||
if minetest.registered_nodes[minetest.get_node(pos_above).name].buildable_to then
|
|
||||||
minetest.set_node(pos_above, {name="mcl_fire:fire"})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:blaze", "Spawn Blaze", "spawn_egg_blaze.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Blaze loaded")
|
|
||||||
end
|
|
|
@ -1,107 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:chicken", {
|
|
||||||
type = "animal",
|
|
||||||
hp_min = 4,
|
|
||||||
hp_max = 4,
|
|
||||||
-- The x/z size is slightly bigger than in Minecraft (MC: 0.4×0.4; MCL2: 0.5×0.5)
|
|
||||||
collisionbox = {-0.25, -0.01, -0.25, 0.25, 0.69, 0.25},
|
|
||||||
|
|
||||||
visual = "mesh",
|
|
||||||
visual_size = {x=0.7, y=0.7},
|
|
||||||
mesh = "mobs_mc_chicken.x",
|
|
||||||
textures = {
|
|
||||||
{"mobs_mc_chicken.png"}
|
|
||||||
},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
walk_velocity = 1,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:chicken",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
{name = "mcl_mobitems:feather",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 2,},
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = false,
|
|
||||||
fear_height = 4,
|
|
||||||
jump_height = 4.5,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_chicken",
|
|
||||||
death = "Chickenhurt1",
|
|
||||||
hurt = "Chickenhurt1",
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 49,
|
|
||||||
hurt_start = 118,
|
|
||||||
hurt_end = 154,
|
|
||||||
death_start = 154,
|
|
||||||
death_end = 179,
|
|
||||||
eat_start = 49,
|
|
||||||
eat_end = 78,
|
|
||||||
look_start = 78,
|
|
||||||
look_end = 108,
|
|
||||||
fly_start = 181,
|
|
||||||
fly_end = 187,
|
|
||||||
},
|
|
||||||
--from mobs_animals
|
|
||||||
follow = {"mcl_farming:wheat_seeds", "mcl_farming:beetroot_seeds", "mcl_farming:pumpkin_seeds", "mcl_farming:melon_seeds"},
|
|
||||||
view_range = 5,
|
|
||||||
|
|
||||||
on_rightclick = function(self, clicker)
|
|
||||||
|
|
||||||
if mobs:feed_tame(self, clicker, 1, true, true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
|
|
||||||
do_custom = function(self)
|
|
||||||
|
|
||||||
if self.child
|
|
||||||
or math.random(1, 5000) > 1 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local pos = self.object:getpos()
|
|
||||||
|
|
||||||
minetest.add_item(pos, "mcl_throwing:egg")
|
|
||||||
|
|
||||||
minetest.sound_play("mobs_mc_chicken_lay_egg", {
|
|
||||||
pos = pos,
|
|
||||||
gain = 1.0,
|
|
||||||
max_hear_distance = 5,
|
|
||||||
})
|
|
||||||
end,
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("mobs_mc:chicken", {"mcl_core:dirt_with_grass"}, 20, 9, 7000, 1, 31000)
|
|
||||||
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:chicken", "mobs_mc:chicken")
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:chicken", "Spawn Chicken", "spawn_egg_chicken.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC chicken loaded")
|
|
||||||
end
|
|
|
@ -1,104 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:cow", {
|
|
||||||
type = "animal",
|
|
||||||
hp_min = 10,
|
|
||||||
hp_max = 10,
|
|
||||||
collisionbox = {-0.8, -0.01, -0.8, 0.8, 1.8, 0.8},
|
|
||||||
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_mc_cow.x",
|
|
||||||
textures = {
|
|
||||||
{"mobs_mc_cow.png"}
|
|
||||||
},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
walk_velocity = 1,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:beef",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 3,},
|
|
||||||
{name = "mcl_mobitems:leather",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 2,},
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fear_height = 3,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_mc_cow",
|
|
||||||
death = "Cowhurt1",
|
|
||||||
damage = "Cowhurt1",
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 49,
|
|
||||||
hurt_start = 118,
|
|
||||||
hurt_end = 154,
|
|
||||||
death_start = 154,
|
|
||||||
death_end = 179,
|
|
||||||
eat_start = 49,
|
|
||||||
eat_end = 78,
|
|
||||||
look_start = 78,
|
|
||||||
look_end = 108,
|
|
||||||
},
|
|
||||||
--from mobs_animals
|
|
||||||
follow = "mcl_farming:wheat_item",
|
|
||||||
view_range = 10,
|
|
||||||
fear_height = 2,
|
|
||||||
jump_height = 1.25,
|
|
||||||
on_rightclick = function(self, clicker)
|
|
||||||
|
|
||||||
-- feed or tame
|
|
||||||
if mobs:feed_tame(self, clicker, 1, true, true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local tool = clicker:get_wielded_item()
|
|
||||||
|
|
||||||
-- milk cow with empty bucket
|
|
||||||
if tool:get_name() == "bucket:bucket_empty" then
|
|
||||||
|
|
||||||
if self.child == true then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local inv = clicker:get_inventory()
|
|
||||||
|
|
||||||
inv:remove_item("main", "bucket:bucket_empty")
|
|
||||||
|
|
||||||
if inv:room_for_item("main", {name = "mcl_mobitems:milk_bucket"}) then
|
|
||||||
clicker:get_inventory():add_item("main", "mcl_mobitems:milk_bucket")
|
|
||||||
else
|
|
||||||
local pos = self.object:getpos()
|
|
||||||
pos.y = pos.y + 0.5
|
|
||||||
minetest.add_item(pos, {name = "mcl_mobitems:milk_bucket"})
|
|
||||||
end
|
|
||||||
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("mobs_mc:cow", {"mcl_core:dirt_with_grass"}, 20, 9, 7000, 1, 31000)
|
|
||||||
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:cow", "mobs_mc:cow")
|
|
||||||
|
|
||||||
-- spawn egg
|
|
||||||
mobs:register_egg("mobs_mc:cow", "Spawn Cow", "spawn_egg_cow.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Cow loaded")
|
|
||||||
end
|
|
|
@ -1,88 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:creeper", {
|
|
||||||
type = "monster",
|
|
||||||
hp_min = 20,
|
|
||||||
hp_max = 20,
|
|
||||||
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.6, 0.4},
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
visual = "mesh",
|
|
||||||
visual_size = {x=.75, y=.75, z=.75},
|
|
||||||
mesh = "mobs_creeper.x",
|
|
||||||
textures = {
|
|
||||||
{"mobs_creeper.png"}
|
|
||||||
},
|
|
||||||
makes_footstep_sound = false,
|
|
||||||
sounds = {
|
|
||||||
attack = "tnt_ignite",
|
|
||||||
death = "Creeperdeath",
|
|
||||||
damage = "Creeper4",
|
|
||||||
war_cry = "tnt_ignite",
|
|
||||||
explode = "tnt_explode",
|
|
||||||
},
|
|
||||||
walk_velocity = 1.5,
|
|
||||||
run_velocity = 3,
|
|
||||||
damage = 1,
|
|
||||||
explosion_radius = 3,
|
|
||||||
armor = 100,
|
|
||||||
maxdrops = 3,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:gunpowder",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 2,},
|
|
||||||
-- TODO: In Minecraft, record discs only drop when a creeper got killed by a skeleton's arrow
|
|
||||||
{name = "mcl_jukebox:record_6",
|
|
||||||
chance = 100,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
{name = "mcl_jukebox:record_7",
|
|
||||||
chance = 125,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
speed_run = 48,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 49,
|
|
||||||
run_start = 24,
|
|
||||||
run_end = 49,
|
|
||||||
hurt_start = 110,
|
|
||||||
hurt_end = 139,
|
|
||||||
death_start = 140,
|
|
||||||
death_end = 189,
|
|
||||||
look_start = 50,
|
|
||||||
look_end = 108,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "explode",
|
|
||||||
})
|
|
||||||
mobs:register_spawn("mobs_mc:creeper", {"group:solid"}, 7, -1, 5000, 4, 31000)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:creeper", "mobs_mc:creeper")
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:creeper", "Spawn Creeper", "spawn_egg_creeper.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Creeper loaded")
|
|
||||||
end
|
|
|
@ -1,8 +0,0 @@
|
||||||
mcl_core
|
|
||||||
mcl_tools
|
|
||||||
mcl_hunger
|
|
||||||
mcl_fire
|
|
||||||
mobs
|
|
||||||
mcl_tnt
|
|
||||||
mcl_mobitems
|
|
||||||
3d_armor?
|
|
|
@ -1 +0,0 @@
|
||||||
Adds Minecraft-like monsters and animals.
|
|
|
@ -1,73 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:enderman", {
|
|
||||||
type = "monster",
|
|
||||||
hp_min = 40,
|
|
||||||
hp_max = 40,
|
|
||||||
collisionbox = {-0.4, -1.5, -0.4, 0.4, 1.5, 0.4},
|
|
||||||
pathfinding = 1,
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_sand_monster.b3d",
|
|
||||||
textures = {
|
|
||||||
{"mobs_endermen.png"}
|
|
||||||
},
|
|
||||||
visual_size = {x=1.5, y=1.6},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_sandmonster",
|
|
||||||
death = "green_slime_death",
|
|
||||||
damage = "Creeperdeath",
|
|
||||||
},
|
|
||||||
walk_velocity = 3.2,
|
|
||||||
run_velocity = 5.4,
|
|
||||||
damage = 1,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_throwing:ender_pearl",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 1,},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 45,
|
|
||||||
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,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
water_damage = 1,
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
replace_rate = 1,
|
|
||||||
replace_what = {"mcl_flowers:allium", "mcl_flowers:azure_bluet", "mcl_flowers:blue_orchid", "mcl_flowers:dandelion", "mcl_flowers:tulip_orange", "mcl_flowers:tulip_red", "mcl_flowers:tulip_pink", "mcl_flowers:tulip_white", "mcl_flowers:oxeye_daisy", "mcl_flowers:poppy", "mcl_core:cactus", "mcl_core:clay", "mcl_core:coarse_dirt", "mcl_core:dirt", "mcl_core:dirt_with_grass", "mcl_core:gravel", "mcl_farming:melon", "mcl_farming:pumpkin_face", "mcl_core:mycelium", "mcl_core:podzol", "mcl_mushrooms:mushroom_red", "mcl_mushrooms:mushroom_brown", "mcl_core:redsand", "mcl_core:sand", "mcl_tnt:tnt", "mcl_nether:netherrack"},
|
|
||||||
replace_with = "air",
|
|
||||||
replace_offset = -1,
|
|
||||||
|
|
||||||
})
|
|
||||||
mobs:register_spawn("mobs_mc:enderman", { "group:solid"}, 7, -1, 6000, 4, 31000)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:enderman", "Spawn Enderman", "spawn_egg_enderman.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Enderman loaded")
|
|
||||||
end
|
|
|
@ -1,122 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:ghast", {
|
|
||||||
type = "monster",
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
hp_min = 10,
|
|
||||||
hp_max = 10,
|
|
||||||
collisionbox = {-1.45, -1.45, -1.45 ,1.45, 1.45, 1.45},
|
|
||||||
visual_size = {x=3.0, y=3.0},
|
|
||||||
textures = {
|
|
||||||
{"ghast_white.png", "ghast_white.png", "ghast_front.png", "ghast_white.png", "ghast_white.png", "ghast_white.png"}
|
|
||||||
},
|
|
||||||
visual = "cube",
|
|
||||||
blood_texture ="mobs_blood.png",
|
|
||||||
rotate = 270,
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
shoot = "mobs_fireball",
|
|
||||||
death = "zombiedeath",
|
|
||||||
damage = "ghast_damage",
|
|
||||||
attack = "mobs_fireball",
|
|
||||||
random = "mobs_eerie",
|
|
||||||
},
|
|
||||||
walk_velocity = .8,
|
|
||||||
run_velocity = 2.6,
|
|
||||||
damage = 1,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:ghast_tear",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 1,},
|
|
||||||
{name = "mcl_mobitems:gunpowder",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 2,},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
speed_run = 48,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 47,
|
|
||||||
run_start = 48,
|
|
||||||
run_end = 62,
|
|
||||||
hurt_start = 64,
|
|
||||||
hurt_end = 86,
|
|
||||||
death_start = 88,
|
|
||||||
death_end = 118,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
lava_damage = 0,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
view_range = 100,
|
|
||||||
--attack_type = "dogshoot",
|
|
||||||
attack_type = "dogshoot",
|
|
||||||
arrow = "mobs_mc:ghast_fireball",
|
|
||||||
shoot_interval = 3.5,
|
|
||||||
shoot_offset = 1,
|
|
||||||
--'dogshoot_switch' allows switching between shoot and dogfight modes inside dogshoot using timer (1 = shoot, 2 = dogfight)
|
|
||||||
--'dogshoot_count_max' number of seconds before switching above modes.
|
|
||||||
dogshoot_switch = 1,
|
|
||||||
dogshoot_count_max =1,
|
|
||||||
passive = false,
|
|
||||||
jump = true,
|
|
||||||
jump_height = 4,
|
|
||||||
floats=1,
|
|
||||||
fly = true,
|
|
||||||
jump_chance = 98,
|
|
||||||
fear_height = 120,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_spawn("mobs_mc:ghast", {"mcl_core:lava_flowing", "mcl_nether:netherrack", "air"}, 17, -1, 5000, 1, -2000)
|
|
||||||
|
|
||||||
-- Ghast fireball
|
|
||||||
mobs:register_arrow("mobs_mc:ghast_fireball", {
|
|
||||||
visual = "sprite",
|
|
||||||
visual_size = {x = 0.8, y = 0.8},
|
|
||||||
textures = {"mcl_fire_fire_charge.png"},
|
|
||||||
velocity = 6,
|
|
||||||
|
|
||||||
-- direct hit, no fire... just plenty of pain
|
|
||||||
hit_player = function(self, player)
|
|
||||||
player:punch(self.object, 1.0, {
|
|
||||||
full_punch_interval = 1.0,
|
|
||||||
damage_groups = {fleshy = 6},
|
|
||||||
}, nil)
|
|
||||||
mcl_hunger.exhaust(player:get_player_name(), mcl_hunger.EXHAUST_DAMAGE)
|
|
||||||
end,
|
|
||||||
|
|
||||||
hit_mob = function(self, player)
|
|
||||||
player:punch(self.object, 1.0, {
|
|
||||||
full_punch_interval = 1.0,
|
|
||||||
damage_groups = {fleshy = 6},
|
|
||||||
}, nil)
|
|
||||||
end,
|
|
||||||
|
|
||||||
-- node hit, bursts into flame
|
|
||||||
hit_node = function(self, pos, node)
|
|
||||||
mobs:explosion(pos, 1, 1, 0)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:ghast", "Spawn Ghast", "spawn_egg_ghast.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Ghast loaded")
|
|
||||||
end
|
|
|
@ -1,33 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
local path = minetest.get_modpath("mobs_mc")
|
|
||||||
|
|
||||||
-- Animals
|
|
||||||
dofile(path .. "/rabbit.lua") -- ExeterDad
|
|
||||||
dofile(path .. "/chicken.lua") -- Mesh and animation by Pavel_S
|
|
||||||
dofile(path .. "/cow.lua") -- Mesh by Morn76 Animation by Pavel_S
|
|
||||||
dofile(path .. "/sheep.lua") -- Mesh and animation by Pavel_S
|
|
||||||
dofile(path .. "/pig.lua") -- Mesh and animation by Pavel_S
|
|
||||||
dofile(path .. "/squid.lua") -- Animation, sound and egg texture by daufinsyd
|
|
||||||
|
|
||||||
-- NPC
|
|
||||||
dofile(path .. "/villager.lua") -- KrupnoPavel
|
|
||||||
|
|
||||||
--Monsters
|
|
||||||
dofile(path .. "/creeper.lua") -- Mesh by Morn76 Animation by Pavel_S
|
|
||||||
dofile(path .. "/skeleton.lua") -- Mesh by Morn76 Animation by Pavel_S
|
|
||||||
dofile(path .. "/zombie.lua") -- Mesh by Morn76 Animation by Pavel_S
|
|
||||||
dofile(path .. "/zombiepig.lua") -- Mesh by Morn76 Animation by Pavel_S
|
|
||||||
dofile(path .. "/slimes.lua") -- Tomas J. Luis
|
|
||||||
dofile(path .. "/spider.lua") -- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
|
||||||
dofile(path .. "/enderman.lua") -- maikerumine
|
|
||||||
dofile(path .. "/ghast.lua") -- maikerumine
|
|
||||||
|
|
||||||
dofile(path .. "/blaze.lua") -- Animation by daufinsyd
|
|
||||||
|
|
||||||
dofile(path .. "/old_mobs.lua") -- Compability with old removed mobs. To be removed later
|
|
||||||
|
|
||||||
print ("[MOD] Mobs Redo 'MC' loaded")
|
|
|
@ -1 +0,0 @@
|
||||||
name = mobs_mc
|
|
|
@ -1,18 +0,0 @@
|
||||||
|
|
||||||
-- Compatibility with deleted mobs
|
|
||||||
|
|
||||||
-- Magically turn horses into rabbits and cows. :D
|
|
||||||
mobs:alias_mob("mobs_mc:horse", "mobs_mc:rabbit")
|
|
||||||
mobs:alias_mob("mobs_mc:horse2", "mobs_mc:cow")
|
|
||||||
mobs:alias_mob("mobs_mc:horse3", "mobs_mc:cow")
|
|
||||||
|
|
||||||
minetest.register_alias("mobs_mc:horse", "mobs_mc:rabbit")
|
|
||||||
minetest.register_alias("mobs_mc:horse2", "mobs_mc:cow")
|
|
||||||
minetest.register_alias("mobs_mc:horse3", "mobs_mc:cow")
|
|
||||||
|
|
||||||
-- Magically turn wolves into sheep. (How ironic!)
|
|
||||||
mobs:alias_mob("mobs_mc:wolf", "mobs_mc:sheep")
|
|
||||||
mobs:alias_mob("mobs_mc:dog", "mobs_mc:sheep")
|
|
||||||
|
|
||||||
minetest.register_alias("mobs_mc:wolf", "mobs_mc:sheep")
|
|
||||||
|
|
|
@ -1,182 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:pig", {
|
|
||||||
type = "animal",
|
|
||||||
hp_min = 10,
|
|
||||||
hp_max = 10,
|
|
||||||
collisionbox = {-0.5, -0.01, -0.5, 0.5, 0.874, 0.5},
|
|
||||||
|
|
||||||
visual = "mesh",
|
|
||||||
visual_size = {x=0.875, y=0.875},
|
|
||||||
mesh = "mobs_pig.x",
|
|
||||||
textures = {
|
|
||||||
{"mobs_pig.png"}
|
|
||||||
},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
walk_velocity = 1,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:porkchop",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 3,},
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fear_height = 4,
|
|
||||||
jump_height = 4.5,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_pig",
|
|
||||||
death = "mobs_pig_angry",
|
|
||||||
damage = "mobs_pig",
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 49,
|
|
||||||
hurt_start = 118,
|
|
||||||
hurt_end = 154,
|
|
||||||
death_start = 154,
|
|
||||||
death_end = 179,
|
|
||||||
eat_start = 49,
|
|
||||||
eat_end = 78,
|
|
||||||
look_start = 78,
|
|
||||||
look_end = 108,
|
|
||||||
},
|
|
||||||
follow = {"mcl_farming:beetroot_item", "mcl_farming:carrot_item", "mcl_mobitems:carrot_on_a_stick", "mcl_farming:potato_item"},
|
|
||||||
view_range = 5,
|
|
||||||
on_rightclick = function(self, clicker)
|
|
||||||
if not clicker or not clicker:is_player() then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local wielditem = clicker:get_wielded_item()
|
|
||||||
-- Feed pig
|
|
||||||
if wielditem:get_name() ~= "mcl_mobitems:carrot_on_a_stick" then
|
|
||||||
if mobs:feed_tame(self, clicker, 1, true, true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Put saddle on pig
|
|
||||||
local item = clicker:get_wielded_item()
|
|
||||||
if item:get_name() == "mcl_mobitems:saddle" and self.saddle ~= "yes" then
|
|
||||||
self.object:set_properties({
|
|
||||||
textures = {"mobs_pig_with_saddle.png"},
|
|
||||||
})
|
|
||||||
self.saddle = "yes"
|
|
||||||
self.tamed = true
|
|
||||||
self.drops = {
|
|
||||||
{name = "mcl_mobitems:porkchop",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 3,},
|
|
||||||
{name = "mcl_mobitems:saddle",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
}
|
|
||||||
if not minetest.setting_getbool("creative_mode") then
|
|
||||||
local inv = clicker:get_inventory()
|
|
||||||
local stack = inv:get_stack("main", clicker:get_wield_index())
|
|
||||||
stack:take_item()
|
|
||||||
inv:set_stack("main", clicker:get_wield_index(), stack)
|
|
||||||
end
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- from boats mod
|
|
||||||
-- Ride pig if it has a saddle and player uses a carrot on a stick
|
|
||||||
local name = clicker:get_player_name()
|
|
||||||
if self.driver and clicker == self.driver then
|
|
||||||
self.driver = nil
|
|
||||||
clicker:set_detach()
|
|
||||||
mcl_player.player_attached[name] = false
|
|
||||||
mcl_player.player_set_animation(clicker, "stand" , 30)
|
|
||||||
elseif not self.driver and self.saddle == "yes" then
|
|
||||||
self.driver = clicker
|
|
||||||
clicker:set_attach(self.object, "", {x = 0, y = 19, z = 0}, {x = 0, y = 0, z = 0})
|
|
||||||
mcl_player.player_attached[name] = true
|
|
||||||
minetest.after(0.2, function()
|
|
||||||
mcl_player.player_set_animation(clicker, "sit" , 30)
|
|
||||||
end)
|
|
||||||
if self.name == "mobs_mc:pig" and self.saddle == "yes" and self.driver then
|
|
||||||
if wielditem:get_name() == "mcl_mobitems:carrot_on_a_stick" then
|
|
||||||
local yaw = self.driver:get_look_yaw() - math.pi / 2
|
|
||||||
local velo = self.object:getvelocity()
|
|
||||||
local v = 1.5
|
|
||||||
if math.abs(velo.x) + math.abs(velo.z) < .6 then velo.y = 5 end
|
|
||||||
self.state = "walk"
|
|
||||||
self.object:setyaw(yaw)
|
|
||||||
self.object:setvelocity({x = -math.sin(yaw) * v, y = velo.y, z = math.cos(yaw) * v})
|
|
||||||
|
|
||||||
local inv = self.driver:get_inventory()
|
|
||||||
-- 26 uses
|
|
||||||
if wielditem:get_wear() > 63000 then
|
|
||||||
wielditem = {name = "mcl_fishing:fishing_rod", count = 1}
|
|
||||||
else
|
|
||||||
wielditem:add_wear(2521)
|
|
||||||
end
|
|
||||||
inv:set_stack("main", self.driver:get_wield_index(), wielditem)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("mobs_mc:pig", {"mcl_core:dirt_with_grass"}, 20, 9, 5000, 1, 31000)
|
|
||||||
|
|
||||||
|
|
||||||
--[[
|
|
||||||
|
|
||||||
on_step = function(self, dtime)
|
|
||||||
-- ridable pigs
|
|
||||||
if self.name == "mobs:pig" and self.saddle == "yes" and self.driver then
|
|
||||||
local item = self.driver:get_wielded_item()
|
|
||||||
if item:get_name() == "mobs:carrotstick" then
|
|
||||||
local yaw = self.driver:get_look_yaw() - math.pi / 2
|
|
||||||
local velo = self.object:getvelocity()
|
|
||||||
local v = 1.5
|
|
||||||
if math.abs(velo.x) + math.abs(velo.z) < .6 then velo.y = 5 end
|
|
||||||
self.state = "walk"
|
|
||||||
self.object:setyaw(yaw)
|
|
||||||
self.object:setvelocity({x = -math.sin(yaw) * v, y = velo.y, z = math.cos(yaw) * v})
|
|
||||||
|
|
||||||
local inv = self.driver:get_inventory()
|
|
||||||
local stack = inv:get_stack("main", self.driver:get_wield_index())
|
|
||||||
stack:add_wear(100)
|
|
||||||
if stack:get_wear() > 65400 then
|
|
||||||
stack = {name = "fishing:pole", count = 1}
|
|
||||||
end
|
|
||||||
inv:set_stack("main", self.driver:get_wield_index(), stack)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
]]
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:pig", "mobs_mc:pig")
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:pig", "Spawn Pig", "spawn_egg_pig.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Pig loaded")
|
|
||||||
end
|
|
|
@ -1,82 +0,0 @@
|
||||||
|
|
||||||
local S = mobs.intllib
|
|
||||||
|
|
||||||
|
|
||||||
-- Rabbit by ExeterDad
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:rabbit", {
|
|
||||||
type = "animal",
|
|
||||||
passive = true,
|
|
||||||
reach = 1,
|
|
||||||
hp_min = 3,
|
|
||||||
hp_max = 3,
|
|
||||||
armor = 100,
|
|
||||||
collisionbox = {-0.268, -0.5, -0.268, 0.268, 0.167, 0.268},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_bunny.b3d",
|
|
||||||
drawtype = "front",
|
|
||||||
textures = {
|
|
||||||
{"mobs_bunny_black.png"},
|
|
||||||
{"mobs_bunny_brown.png"},
|
|
||||||
{"mobs_bunny_salt.png"},
|
|
||||||
{"mobs_bunny_white.png"},
|
|
||||||
{"mobs_bunny_gold.png"},
|
|
||||||
},
|
|
||||||
sounds = {},
|
|
||||||
makes_footstep_sound = false,
|
|
||||||
walk_velocity = 1,
|
|
||||||
run_velocity = 2,
|
|
||||||
runaway = true,
|
|
||||||
jump = true,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:rabbit", chance = 1, min = 0, max = 1},
|
|
||||||
{name = "mcl_mobitems:rabbit_hide", chance = 1, min = 0, max = 1},
|
|
||||||
{name = "mcl_mobitems:rabbit_foot", chance = 10, min = 1, max = 1},
|
|
||||||
},
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fear_height = 3,
|
|
||||||
animation = {
|
|
||||||
speed_normal = 15,
|
|
||||||
stand_start = 1,
|
|
||||||
stand_end = 15,
|
|
||||||
walk_start = 16,
|
|
||||||
walk_end = 24,
|
|
||||||
punch_start = 16,
|
|
||||||
punch_end = 24,
|
|
||||||
},
|
|
||||||
follow = {"mcl_farming:carrot_item", "mcl_farming:carrot_item_gold", "mcl_flowers:dandelion"},
|
|
||||||
view_range = 8,
|
|
||||||
replace_rate = 10,
|
|
||||||
replace_what = {"mcl_farming:carrot_3", "mcl_farming:carrot_2", "mcl_farming:carrot_1"},
|
|
||||||
replace_with = "air",
|
|
||||||
on_rightclick = function(self, clicker)
|
|
||||||
|
|
||||||
-- feed or tame
|
|
||||||
if mobs:feed_tame(self, clicker, 1, true, true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
local spawn_on = {
|
|
||||||
"mcl_core::dirt_with_grass", "mcl_core:sand", "mcl_core:snow", "mcl_core:snowblock", "mcl_core:podzol", "mcl_core:ice"
|
|
||||||
}
|
|
||||||
|
|
||||||
mobs:spawn({
|
|
||||||
name = "mobs_mc:rabbit",
|
|
||||||
nodes = spawn_on,
|
|
||||||
min_light = 10,
|
|
||||||
chance = 15000,
|
|
||||||
min_height = 0,
|
|
||||||
day_toggle = true,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_egg("mobs_mc:rabbit", "Spawn Rabbit", "spawn_egg_rabbit.png", 0)
|
|
||||||
|
|
||||||
|
|
||||||
mobs:alias_mob("mobs:bunny", "mobs_mc:bunny") -- compatibility
|
|
||||||
|
|
|
@ -1,197 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
local colors = {
|
|
||||||
-- dyecolor = { woolcolor, textures }
|
|
||||||
white = { "white", { "mobs_sheep.png" } },
|
|
||||||
brown = { "brown", { "mobs_sheep_brown.png" } },
|
|
||||||
grey = { "silver", { "mobs_sheep_grey.png" } },
|
|
||||||
dark_grey = { "grey", { "mobs_sheep_dark_grey.png" } },
|
|
||||||
blue = { "blue", { "mobs_sheep_blue.png" } },
|
|
||||||
lightblue = { "light_blue", { "mobs_sheep_lightblue.png" } },
|
|
||||||
dark_green = { "green", { "mobs_sheep_dark_green.png" } },
|
|
||||||
green = { "lime", { "mobs_sheep_green.png" } },
|
|
||||||
violet = { "purple", { "mobs_sheep_violet.png" } },
|
|
||||||
pink = { "pink", { "mobs_sheep_pink.png" } },
|
|
||||||
yellow = { "yellow", { "mobs_sheep_yellow.png" } },
|
|
||||||
orange = { "orange", { "mobs_sheep_orange.png" } },
|
|
||||||
red = { "red", { "mobs_sheep_red.png" } },
|
|
||||||
cyan = { "cyan", { "mobs_sheep_cyan.png" } },
|
|
||||||
magenta = { "magenta", { "mobs_sheep_magenta.png" } },
|
|
||||||
black = { "black", { "mobs_sheep_black.png" } },
|
|
||||||
}
|
|
||||||
|
|
||||||
-- Sheep
|
|
||||||
mobs:register_mob("mobs_mc:sheep", {
|
|
||||||
type = "animal",
|
|
||||||
hp_min = 8,
|
|
||||||
hp_max = 8,
|
|
||||||
-- FIXME: Should be 1.3 blocks high
|
|
||||||
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.09, 0.45},
|
|
||||||
|
|
||||||
visual = "mesh",
|
|
||||||
visual_size = {x=0.6, y=0.6},
|
|
||||||
mesh = "mobs_sheep.x",
|
|
||||||
textures = {{"mobs_sheep.png"}},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
walk_velocity = 1,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:mutton",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 2,},
|
|
||||||
{name = "mcl_wool:white",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fear_height = 4,
|
|
||||||
jump_height = 4.5,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_sheep",
|
|
||||||
death = "mobs_sheep",
|
|
||||||
damage = "mobs_sheep",
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 49,
|
|
||||||
hurt_start = 118,
|
|
||||||
hurt_end = 154,
|
|
||||||
death_start = 154,
|
|
||||||
death_end = 179,
|
|
||||||
eat_start = 49,
|
|
||||||
eat_end = 78,
|
|
||||||
look_start = 78,
|
|
||||||
look_end = 108,
|
|
||||||
},
|
|
||||||
follow = {"mcl_farming:wheat_item"},
|
|
||||||
view_range = 5,
|
|
||||||
|
|
||||||
replace_rate = 10,
|
|
||||||
replace_what = {"mcl_core:dirt_with_grass", "mcl_flowers:tallgrass"},
|
|
||||||
replace_with = "air",
|
|
||||||
do_custom = function(self)
|
|
||||||
if not self.initial_color_set then
|
|
||||||
local r = math.random(0,100000)
|
|
||||||
local textures
|
|
||||||
if r <= 81836 then
|
|
||||||
-- 81.836%
|
|
||||||
self.color = colors["white"][1]
|
|
||||||
textures = colors["white"][2]
|
|
||||||
self.base_texture = colors["white"][2]
|
|
||||||
elseif r <= 81836 + 5000 then
|
|
||||||
-- 5%
|
|
||||||
self.color = colors["grey"][1]
|
|
||||||
textures = colors["grey"][2]
|
|
||||||
self.base_texture = colors["grey"][2]
|
|
||||||
elseif r <= 81836 + 5000 + 5000 then
|
|
||||||
-- 5%
|
|
||||||
self.color = colors["dark_grey"][1]
|
|
||||||
textures = colors["dark_grey"][2]
|
|
||||||
self.base_texture = colors["dark_grey"][2]
|
|
||||||
elseif r <= 81836 + 5000 + 5000 + 5000 then
|
|
||||||
-- 5%
|
|
||||||
self.color = colors["black"][1]
|
|
||||||
textures = colors["black"][2]
|
|
||||||
self.base_texture = colors["black"][2]
|
|
||||||
elseif r <= 81836 + 5000 + 5000 + 5000 + 3000 then
|
|
||||||
-- 3%
|
|
||||||
self.color = colors["brown"][1]
|
|
||||||
textures = colors["brown"][2]
|
|
||||||
self.base_texture = colors["brown"][2]
|
|
||||||
else
|
|
||||||
-- 0.164%
|
|
||||||
self.color = colors["pink"][1]
|
|
||||||
textures = colors["pink"][2]
|
|
||||||
self.base_texture = colors["pink"][2]
|
|
||||||
end
|
|
||||||
self.textures = { textures },
|
|
||||||
self.object:set_properties({ textures = textures })
|
|
||||||
self.drops = {
|
|
||||||
{name = "mcl_mobitems:mutton",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 2,},
|
|
||||||
{name = "mcl_wool:"..self.color,
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
}
|
|
||||||
self.initial_color_set = true
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
on_rightclick = function(self, clicker)
|
|
||||||
|
|
||||||
if mobs:feed_tame(self, clicker, 1, true, true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local item = clicker:get_wielded_item()
|
|
||||||
if item:get_name() == "mcl_tools:shears" and not self.gotten and not self.child then
|
|
||||||
self.gotten = true
|
|
||||||
local pos = self.object:getpos()
|
|
||||||
minetest.sound_play("shears", {pos = pos})
|
|
||||||
pos.y = pos.y + 0.5
|
|
||||||
if not self.color then
|
|
||||||
minetest.add_item(pos, ItemStack("mcl_wool:white "..math.random(1,3)))
|
|
||||||
else
|
|
||||||
minetest.add_item(pos, ItemStack("mcl_wool:"..self.color.." "..math.random(1,3)))
|
|
||||||
end
|
|
||||||
self.object:set_properties({
|
|
||||||
textures = {"mobs_sheep_sheared.png"},
|
|
||||||
})
|
|
||||||
if not minetest.setting_getbool("creative_mode") then
|
|
||||||
item:add_wear(65535/238)
|
|
||||||
clicker:get_inventory():set_stack("main", clicker:get_wield_index(), item)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if minetest.get_item_group(item:get_name(), "dye") == 1 and not self.gotten then
|
|
||||||
print(item:get_name(), minetest.get_item_group(item:get_name(), "dye"))
|
|
||||||
local name = item:get_name()
|
|
||||||
local pname = name:split(":")[2]
|
|
||||||
|
|
||||||
self.object:set_properties({
|
|
||||||
textures = colors[pname][2],
|
|
||||||
})
|
|
||||||
self.base_texture = colors[pname][2]
|
|
||||||
self.color = colors[pname][1]
|
|
||||||
self.drops = {
|
|
||||||
{name = "mcl_mobitems:mutton",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 2,},
|
|
||||||
{name = "mcl_wool:"..self.color,
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
}
|
|
||||||
|
|
||||||
if not minetest.setting_getbool("creative_mode") then
|
|
||||||
item:take_item()
|
|
||||||
clicker:get_inventory():set_stack("main", clicker:get_wield_index(), item)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
mobs:register_spawn("mobs_mc:sheep", {"mcl_core:dirt_with_grass"}, 20, 9, 5000, 2, 31000)
|
|
||||||
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:sheep", "mobs_mc:sheep")
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:sheep", "Spawn Sheep", "spawn_egg_sheep.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Sheep loaded")
|
|
||||||
end
|
|
|
@ -1,144 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:skeleton", {
|
|
||||||
type = "monster",
|
|
||||||
hp_min = 20,
|
|
||||||
hp_max = 20,
|
|
||||||
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4},
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_skeleton.x",
|
|
||||||
textures = {
|
|
||||||
{"mobs_skeleton.png"}
|
|
||||||
},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
random = "skeleton1",
|
|
||||||
death = "skeletondeath",
|
|
||||||
damage = "skeletonhurt1",
|
|
||||||
},
|
|
||||||
walk_velocity = 1.2,
|
|
||||||
run_velocity = 2.4,
|
|
||||||
damage = 1,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_throwing:arrow",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 2,},
|
|
||||||
{name = "mcl_mobitems:bone",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 2,},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 30,
|
|
||||||
speed_run = 60,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 49,
|
|
||||||
run_start = 24,
|
|
||||||
run_end = 49,
|
|
||||||
hurt_start = 85,
|
|
||||||
hurt_end = 115,
|
|
||||||
death_start = 117,
|
|
||||||
death_end = 145,
|
|
||||||
shoot_start = 50,
|
|
||||||
shoot_end = 82,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
-- TODO: Mob should burn only in direct sunlight
|
|
||||||
light_damage = 1,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogshoot",
|
|
||||||
arrow = "mcl_throwing:arrow_entity",
|
|
||||||
shoot_interval = 2.5,
|
|
||||||
shoot_offset = 1,
|
|
||||||
--'dogshoot_switch' allows switching between shoot and dogfight modes inside dogshoot using timer (1 = shoot, 2 = dogfight)
|
|
||||||
--'dogshoot_count_max' number of seconds before switching above modes.
|
|
||||||
dogshoot_switch = 1,
|
|
||||||
dogshoot_count_max =3,
|
|
||||||
})
|
|
||||||
mobs:register_spawn("mobs_mc:skeleton", {"group:solid"}, 7, -1, 5000, 4, 31000)
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:skeleton2", {
|
|
||||||
type = "monster",
|
|
||||||
hp_min = 20,
|
|
||||||
hp_max = 20,
|
|
||||||
collisionbox = {-0.3, -1.0, -0.3, 0.3, 0.8, 0.3},
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = false,
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "3d_armor_character.b3d",
|
|
||||||
textures = {
|
|
||||||
{"mobs_skeleton2.png",
|
|
||||||
"3d_armor_trans.png",
|
|
||||||
minetest.registered_items["mcl_tools:sword_stone"].inventory_image,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
random = "skeleton1",
|
|
||||||
death = "skeletondeath",
|
|
||||||
damage = "skeletonhurt1",
|
|
||||||
},
|
|
||||||
walk_velocity = 1.2,
|
|
||||||
run_velocity = 2.4,
|
|
||||||
damage = 7,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_core:coal_lump",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 1,},
|
|
||||||
{name = "mcl_mobitems:bone",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 2,},
|
|
||||||
{name = "mcl_heads:wither_skeleton",
|
|
||||||
chance = 40,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
},
|
|
||||||
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,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
water_damage = 1,
|
|
||||||
lava_damage = 0,
|
|
||||||
light_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
})
|
|
||||||
mobs:register_spawn("mobs_mc:skeleton2", {"group:solid"}, 7, -1, 5000, 4, -3000)
|
|
||||||
|
|
||||||
|
|
||||||
local arrows = {
|
|
||||||
{"mcl_throwing:arrow", "mcl_throwing:arrow_entity" },
|
|
||||||
}
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:skeleton", "mobs_mc:skeleton")
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:skeleton", "Spawn Skeleton", "spawn_egg_skeleton.png")
|
|
||||||
mobs:register_egg("mobs_mc:skeleton2", "Spawn Wither Skeleton", "spawn_egg_wither_skeleton.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Skeleton loaded")
|
|
||||||
end
|
|
|
@ -1,446 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:greensmall", {
|
|
||||||
type = "monster",
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
hp_min = 1,
|
|
||||||
hp_max = 1,
|
|
||||||
collisionbox = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3},
|
|
||||||
visual_size = {x=0.6, y=0.6},
|
|
||||||
textures = {
|
|
||||||
{"green_slime_top.png", "green_slime_bottom.png", "green_slime_front.png", "green_slime_sides.png", "green_slime_sides.png", "green_slime_sides.png"}
|
|
||||||
},
|
|
||||||
visual = "cube",
|
|
||||||
blood_texture ="green_slime_blood.png",
|
|
||||||
rotate = 270,
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
jump = "green_slime_jump",
|
|
||||||
death = "green_slime_death",
|
|
||||||
damage = "green_slime_damage",
|
|
||||||
attack = "green_slime_attack",
|
|
||||||
},
|
|
||||||
-- FIXME: The tiny slimes deal damage although this number is set to 0. Strange.
|
|
||||||
damage = 0,
|
|
||||||
reach = 2.5,
|
|
||||||
armor = 100,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:slimeball",
|
|
||||||
chance = 1,
|
|
||||||
min = 0,
|
|
||||||
max = 2,},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
speed_run = 48,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 47,
|
|
||||||
run_start = 48,
|
|
||||||
run_end = 62,
|
|
||||||
hurt_start = 64,
|
|
||||||
hurt_end = 86,
|
|
||||||
death_start = 88,
|
|
||||||
death_end = 118,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
passive = false,
|
|
||||||
jump = true,
|
|
||||||
walk_velocity = 0.7,
|
|
||||||
run_velocity = 0.7,
|
|
||||||
walk_chance = 0,
|
|
||||||
jump_height = 3,
|
|
||||||
jump_chance = 98,
|
|
||||||
fear_height = 12,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:greenmedium", {
|
|
||||||
type = "monster",
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
hp_min = 4,
|
|
||||||
hp_max = 4,
|
|
||||||
collisionbox = {-0.6, -0.6, -0.6, 0.6, 0.6, 0.6},
|
|
||||||
visual_size = {x=1.2, y=1.2},
|
|
||||||
textures = {
|
|
||||||
{"green_slime_top.png", "green_slime_bottom.png", "green_slime_front.png", "green_slime_sides.png", "green_slime_sides.png", "green_slime_sides.png"}
|
|
||||||
},
|
|
||||||
visual = "cube",
|
|
||||||
blood_texture ="green_slime_blood.png",
|
|
||||||
rotate = 270,
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
jump = "green_slime_jump",
|
|
||||||
death = "green_slime_death",
|
|
||||||
damage = "green_slime_damage",
|
|
||||||
attack = "green_slime_attack",
|
|
||||||
},
|
|
||||||
damage = 2,
|
|
||||||
reach = 2.75,
|
|
||||||
armor = 100,
|
|
||||||
drops = {},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
speed_run = 48,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 47,
|
|
||||||
run_start = 48,
|
|
||||||
run_end = 62,
|
|
||||||
hurt_start = 64,
|
|
||||||
hurt_end = 86,
|
|
||||||
death_start = 88,
|
|
||||||
death_end = 118,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
passive = false,
|
|
||||||
jump = true,
|
|
||||||
walk_chance = 0,
|
|
||||||
walk_velocity = 1.3,
|
|
||||||
run_velocity = 1.3,
|
|
||||||
jump_height = 4.3,
|
|
||||||
jump_chance = 100,
|
|
||||||
fear_height = 60,
|
|
||||||
on_die = function(self, pos)
|
|
||||||
local angle, posadd, dir
|
|
||||||
angle = math.random(0, math.pi*2)
|
|
||||||
for i=1,4 do
|
|
||||||
dir = {x=math.cos(angle),y=0,z=math.sin(angle)}
|
|
||||||
posadd = vector.multiply(vector.normalize(dir), 0.6)
|
|
||||||
local slime = minetest.add_entity(vector.add(pos, posadd), "mobs_mc:greensmall")
|
|
||||||
slime:setvelocity(dir)
|
|
||||||
slime:setyaw(angle)
|
|
||||||
angle = angle + math.pi/2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:greenbig", {
|
|
||||||
type = "monster",
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
hp_min = 16,
|
|
||||||
hp_max = 16,
|
|
||||||
collisionbox = {-1.2, -1.2, -1.2, 1.2, 1.2, 1.2},
|
|
||||||
visual_size = {x=2.4, y=2.4},
|
|
||||||
textures = {
|
|
||||||
{"green_slime_top.png", "green_slime_bottom.png", "green_slime_front.png", "green_slime_sides.png", "green_slime_sides.png", "green_slime_sides.png"}
|
|
||||||
},
|
|
||||||
visual = "cube",
|
|
||||||
blood_texture ="green_slime_blood.png",
|
|
||||||
rotate = 270,
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
jump = "green_slime_jump",
|
|
||||||
death = "green_slime_death",
|
|
||||||
damage = "green_slime_damage",
|
|
||||||
attack = "green_slime_attack",
|
|
||||||
},
|
|
||||||
damage = 4,
|
|
||||||
reach = 3,
|
|
||||||
armor = 100,
|
|
||||||
drops = {},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
speed_run = 48,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 47,
|
|
||||||
run_start = 48,
|
|
||||||
run_end = 62,
|
|
||||||
hurt_start = 64,
|
|
||||||
hurt_end = 86,
|
|
||||||
death_start = 88,
|
|
||||||
death_end = 118,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
passive = false,
|
|
||||||
jump = true,
|
|
||||||
walk_velocity = 2.5,
|
|
||||||
run_velocity = 2.5,
|
|
||||||
walk_chance = 0,
|
|
||||||
jump_height = 5.2,
|
|
||||||
jump_chance = 100,
|
|
||||||
fear_height = 60,
|
|
||||||
on_die = function(self, pos)
|
|
||||||
local angle, posadd
|
|
||||||
angle = math.random(0, math.pi*2)
|
|
||||||
for i=1,4 do
|
|
||||||
posadd = {x=math.cos(angle),y=0,z=math.sin(angle)}
|
|
||||||
posadd = vector.normalize(posadd)
|
|
||||||
local slime = minetest.add_entity(vector.add(pos, posadd), "mobs_mc:greenmedium")
|
|
||||||
slime:setvelocity(vector.multiply(posadd, 1.5))
|
|
||||||
slime:setyaw(angle)
|
|
||||||
angle = angle + math.pi/2
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
})
|
|
||||||
mobs:register_spawn("mobs_mc:greensmall", {"mcl_core:water_flowing", "group:solid"}, 15, 0, 5000, 4, -12)
|
|
||||||
mobs:register_spawn("mobs_mc:greenmedium", {"mcl_core:water_flowing", "group:solid"}, 15, 0, 5000, 4, -12)
|
|
||||||
mobs:register_spawn("mobs_mc:greenbig", {"mcl_core:water_flowing", "group:solid"}, 15, 0, 5000, 4, -12)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:lavasmall", {
|
|
||||||
type = "monster",
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
hp_min = 1,
|
|
||||||
hp_max = 1,
|
|
||||||
collisionbox = {-0.2505, -0.2505, -0.2505, 0.2505, 0.2505, 0.2505},
|
|
||||||
visual_size = {x=0.51, y=0.51},
|
|
||||||
textures = {
|
|
||||||
{"lava_slime_top.png", "lava_slime_bottom.png", "lava_slime_front.png", "lava_slime_sides.png", "lava_slime_sides.png", "lava_slime_sides.png"}
|
|
||||||
},
|
|
||||||
visual = "cube",
|
|
||||||
blood_texture ="lava_slime_blood.png",
|
|
||||||
rotate = 270,
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
jump = "green_slime_jump",
|
|
||||||
death = "green_slime_death",
|
|
||||||
damage = "green_slime_damage",
|
|
||||||
attack = "green_slime_attack",
|
|
||||||
},
|
|
||||||
walk_velocity = 1.02,
|
|
||||||
run_velocity = 1.02,
|
|
||||||
damage = 3,
|
|
||||||
reach = 2.5,
|
|
||||||
armor = 85,
|
|
||||||
drops = {},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
speed_run = 48,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 47,
|
|
||||||
run_start = 48,
|
|
||||||
run_end = 62,
|
|
||||||
hurt_start = 64,
|
|
||||||
hurt_end = 86,
|
|
||||||
death_start = 88,
|
|
||||||
death_end = 118,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = 0,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
passive = false,
|
|
||||||
jump = true,
|
|
||||||
jump_height = 4,
|
|
||||||
walk_chance = 0,
|
|
||||||
jump_chance = 80,
|
|
||||||
fear_height = 100000,
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:lavamedium", {
|
|
||||||
type = "monster",
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
hp_min = 4,
|
|
||||||
hp_max = 4,
|
|
||||||
collisionbox = {-0.51, -0.51, -0.51, 0.51, 0.51, 0.51},
|
|
||||||
visual_size = {x=1.01, y=1.01},
|
|
||||||
textures = {
|
|
||||||
{"lava_slime_top.png", "lava_slime_bottom.png", "lava_slime_front.png", "lava_slime_sides.png", "lava_slime_sides.png", "lava_slime_sides.png"}
|
|
||||||
},
|
|
||||||
visual = "cube",
|
|
||||||
blood_texture ="lava_slime_blood.png",
|
|
||||||
rotate = 270,
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
jump = "green_slime_jump",
|
|
||||||
death = "green_slime_death",
|
|
||||||
damage = "green_slime_damage",
|
|
||||||
attack = "green_slime_attack",
|
|
||||||
},
|
|
||||||
walk_velocity = .8,
|
|
||||||
run_velocity = 2.6,
|
|
||||||
damage = 4,
|
|
||||||
reach = 2.75,
|
|
||||||
armor = 70,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:magma_cream",
|
|
||||||
chance = 4,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
speed_run = 48,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 47,
|
|
||||||
run_start = 48,
|
|
||||||
run_end = 62,
|
|
||||||
hurt_start = 64,
|
|
||||||
hurt_end = 86,
|
|
||||||
death_start = 88,
|
|
||||||
death_end = 118,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = 0,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
passive = false,
|
|
||||||
jump = true,
|
|
||||||
jump_height = 4,
|
|
||||||
walk_chance = 0,
|
|
||||||
jump_chance = 98,
|
|
||||||
fear_height = 100000,
|
|
||||||
on_die = function(self, pos)
|
|
||||||
local angle, posadd, dir
|
|
||||||
angle = math.random(0, math.pi*2)
|
|
||||||
for i=1,4 do
|
|
||||||
dir = vector.normalize({x=math.cos(angle),y=0,z=math.sin(angle)})
|
|
||||||
posadd = vector.multiply(dir, 0.6)
|
|
||||||
local mob = minetest.add_entity(vector.add(pos, posadd), "mobs_mc:lavasmall")
|
|
||||||
mob:setvelocity(dir)
|
|
||||||
mob:setyaw(angle)
|
|
||||||
angle = angle + math.pi/2
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:lavabig", {
|
|
||||||
type = "monster",
|
|
||||||
pathfinding = 1,
|
|
||||||
group_attack = true,
|
|
||||||
hp_min = 16,
|
|
||||||
hp_max = 16,
|
|
||||||
collisionbox = {-1.02, -1.02, -1.02, 1.02, 1.02, 1.02},
|
|
||||||
visual_size = {x=2.04, y=2.04},
|
|
||||||
textures = {
|
|
||||||
{"lava_slime_top.png", "lava_slime_bottom.png", "lava_slime_front.png", "lava_slime_sides.png", "lava_slime_sides.png", "lava_slime_sides.png"}
|
|
||||||
},
|
|
||||||
visual = "cube",
|
|
||||||
blood_texture ="lava_slime_blood.png",
|
|
||||||
rotate = 270,
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
sounds = {
|
|
||||||
jump = "green_slime_jump",
|
|
||||||
death = "green_slime_death",
|
|
||||||
damage = "green_slime_damage",
|
|
||||||
attack = "green_slime_attack",
|
|
||||||
},
|
|
||||||
walk_velocity = 4,
|
|
||||||
run_velocity = 4,
|
|
||||||
damage = 6,
|
|
||||||
reach = 3,
|
|
||||||
armor = 40,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:magma_cream",
|
|
||||||
chance = 4,
|
|
||||||
min = 1,
|
|
||||||
max = 1,},
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 24,
|
|
||||||
speed_run = 48,
|
|
||||||
stand_start = 0,
|
|
||||||
stand_end = 23,
|
|
||||||
walk_start = 24,
|
|
||||||
walk_end = 47,
|
|
||||||
run_start = 48,
|
|
||||||
run_end = 62,
|
|
||||||
hurt_start = 64,
|
|
||||||
hurt_end = 86,
|
|
||||||
death_start = 88,
|
|
||||||
death_end = 118,
|
|
||||||
},
|
|
||||||
drawtype = "front",
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = 0,
|
|
||||||
light_damage = 0,
|
|
||||||
fall_damage = 0,
|
|
||||||
view_range = 16,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
passive = false,
|
|
||||||
jump = true,
|
|
||||||
jump_height = 8,
|
|
||||||
walk_chance = 0,
|
|
||||||
jump_chance = 100,
|
|
||||||
fear_height = 100000,
|
|
||||||
on_die = function(self, pos)
|
|
||||||
local angle, posadd
|
|
||||||
angle = math.random(0, math.pi*2)
|
|
||||||
for i=1,3 do
|
|
||||||
posadd = {x=math.cos(angle),y=0,z=math.sin(angle)}
|
|
||||||
posadd = vector.normalize(posadd)
|
|
||||||
local mob = minetest.add_entity(vector.add(pos, posadd), "mobs_mc:lavamedium")
|
|
||||||
mob:setvelocity(vector.multiply(posadd, 1.5))
|
|
||||||
mob:setyaw(angle)
|
|
||||||
angle = angle + (math.pi*2) / 3
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
mobs:register_spawn("mobs_mc:lavasmall", {"group:solid"}, 15, 0, 5000, 4, -1000)
|
|
||||||
mobs:register_spawn("mobs_mc:lavamedium", {"group:solid"}, 15, 0, 5500, 4, -1000)
|
|
||||||
mobs:register_spawn("mobs_mc:lavabig", {"group:solid"}, 15, 0, 6000, 4, -1000)
|
|
||||||
|
|
||||||
mobs:register_spawn("mobs_mc:lavasmall", {"mcl_nether:nether_brick"}, 15, 0, 1000, 4, -1000)
|
|
||||||
mobs:register_spawn("mobs_mc:lavamedium", {"mcl_nether:nether_brick"}, 15, 0, 1100, 4, -1000)
|
|
||||||
mobs:register_spawn("mobs_mc:lavabig", {"mcl_nether:nether_brick"}, 15, 0, 1200, 4, -1000)
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:lavasmall", "mobs_mc:lavasmall")
|
|
||||||
mobs:alias_mob("mobs:lavabig", "mobs_mc:lavabig")
|
|
||||||
mobs:alias_mob("mobs:greensmall", "mobs_mc:greensmall")
|
|
||||||
mobs:alias_mob("mobs:greenmediuml", "mobs_mc:greenmedium")
|
|
||||||
mobs:alias_mob("mobs:greenbig", "mobs_mc:greenbig")
|
|
||||||
|
|
||||||
mobs:alias_mob("slimes:lavasmall", "mobs_mc:lavasmall")
|
|
||||||
mobs:alias_mob("slimes:lavabig", "mobs_mc:lavabig")
|
|
||||||
mobs:alias_mob("slimes:greensmall", "mobs_mc:greensmall")
|
|
||||||
mobs:alias_mob("slimes:greenmediuml", "mobs_mc:greenmedium")
|
|
||||||
mobs:alias_mob("slimes:greenbig", "mobs_mc:greenbig")
|
|
||||||
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:lavabig", "Spawn Magma Cube", "spawn_egg_magma_cube.png")
|
|
||||||
mobs:register_egg("mobs_mc:greenbig", "Spawn Slime", "spawn_egg_slime.png")
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Slimes loaded")
|
|
||||||
end
|
|
|
@ -1,74 +0,0 @@
|
||||||
--MCmobs v0.2
|
|
||||||
--maikerumine
|
|
||||||
--made for MC like Survival game
|
|
||||||
--License for code WTFPL and otherwise stated in readmes
|
|
||||||
|
|
||||||
|
|
||||||
--dofile(minetest.get_modpath("mobs").."/api.lua")
|
|
||||||
|
|
||||||
-- Spider by AspireMint (fishyWET (CC-BY-SA 3.0 license for texture)
|
|
||||||
mobs:register_mob("mobs_mc:spider", {
|
|
||||||
type = "monster",
|
|
||||||
passive = false,
|
|
||||||
attack_type = "dogfight",
|
|
||||||
pathfinding = 1,
|
|
||||||
damage = 2,
|
|
||||||
docile_by_day = true,
|
|
||||||
hp_min = 16,
|
|
||||||
hp_max = 16,
|
|
||||||
armor = 100,
|
|
||||||
--[[ MC: 1.5×1×1.5, MCL2: 1.5×0.5×1.5
|
|
||||||
The MC model is surprisingly high because the MC body is
|
|
||||||
high above the ground while in MCL2 the body touches the
|
|
||||||
ground. ]]
|
|
||||||
collisionbox = {-0.75, -0.01, -0.75, 0.75, 0.49, 0.75},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_spider.x",
|
|
||||||
textures = {
|
|
||||||
{"mobs_spider.png"}
|
|
||||||
},
|
|
||||||
visual_size = {x=5,y=5},
|
|
||||||
makes_footstep_sound = false,
|
|
||||||
sounds = {
|
|
||||||
random = "mobs_spider",
|
|
||||||
attack = "mobs_spider",
|
|
||||||
},
|
|
||||||
walk_velocity = 1.7,
|
|
||||||
run_velocity = 3.3,
|
|
||||||
jump = true,
|
|
||||||
jump_height = 5,
|
|
||||||
view_range = 15,
|
|
||||||
floats = 1,
|
|
||||||
group_attack = true,
|
|
||||||
peaceful = false,
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_mobitems:string",
|
|
||||||
chance = 1, min = 0, max = 2,},
|
|
||||||
{name = "mcl_mobitems:spider_eye",
|
|
||||||
chance = 3, min = 1, max = 1,},
|
|
||||||
},
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
fear_height = 14,
|
|
||||||
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,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
mobs:register_spawn("mobs_mc:spider", {"group:solid"}, 4, -1, 17000, 2, 3000)
|
|
||||||
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:spider", "mobs_mc:spider")
|
|
||||||
mobs:alias_mob("esmobs:spider", "mobs_mc:spider")
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:spider", "Spawn Spider", "spawn_egg_spider.png", 0)
|
|
||||||
|
|
||||||
|
|
||||||
if minetest.setting_get("log_mods") then
|
|
||||||
minetest.log("action", "MC Spiders loaded")
|
|
||||||
end
|
|
|
@ -1,63 +0,0 @@
|
||||||
-- v1.1
|
|
||||||
|
|
||||||
local l_spawn_in = {"mcl_core:water_flowing","mcl_core:water_source"}
|
|
||||||
local l_spawn_near = {"mcl_core:water_flowing","mcl_core:water_source"}
|
|
||||||
local l_spawn_chance = 500
|
|
||||||
local l_min_light = -1
|
|
||||||
local l_max_light = 30
|
|
||||||
local l_max_height = -1 -- water_level - 1
|
|
||||||
|
|
||||||
mobs:register_mob("mobs_mc:squid", {
|
|
||||||
type = "animal",
|
|
||||||
passive = true,
|
|
||||||
hp_min = 10,
|
|
||||||
hp_max = 10,
|
|
||||||
armor = 100,
|
|
||||||
-- Note: This collision box is pretty generous because they can't be rotated yet, but at least it not confusing for the player.
|
|
||||||
-- TODO: Make the hitbox smaller when Minetest supports rotation of collision boxes
|
|
||||||
collisionbox = {-1.5, 1.3, -1.5, 1.5, 2.3, 1.5},
|
|
||||||
visual = "mesh",
|
|
||||||
mesh = "mobs_squid.b3d",
|
|
||||||
textures = {
|
|
||||||
{"mobs_squid.png"}
|
|
||||||
},
|
|
||||||
sounds = {
|
|
||||||
damage = "mobs_mc_squid_hurt",
|
|
||||||
},
|
|
||||||
animation = {
|
|
||||||
stand_start = 1,
|
|
||||||
stand_end = 60,
|
|
||||||
walk_start = 1,
|
|
||||||
walk_end = 60,
|
|
||||||
run_start = 1,
|
|
||||||
run_end = 60,
|
|
||||||
},
|
|
||||||
drops = {
|
|
||||||
{name = "mcl_dye:black",
|
|
||||||
chance = 1,
|
|
||||||
min = 1,
|
|
||||||
max = 3,},
|
|
||||||
},
|
|
||||||
rotate = 180,
|
|
||||||
visual_size = {x=4.5, y=4.5},
|
|
||||||
makes_footstep_sound = false,
|
|
||||||
stepheight = 0.1,
|
|
||||||
fly = true,
|
|
||||||
fly_in = "mcl_core:water_source",
|
|
||||||
fall_speed = -3,
|
|
||||||
view_range = 8,
|
|
||||||
fall_damage = 1,
|
|
||||||
water_damage = 0,
|
|
||||||
lava_damage = minetest.registered_nodes["mcl_core:lava_source"].damage_per_second,
|
|
||||||
light_damage = 0,
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
--name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height
|
|
||||||
mobs:spawn_specific("mobs_mc:squid", l_spawn_in, l_spawn_near, l_min_light, l_max_light, 30, 5000, 2, -31000, l_max_height )
|
|
||||||
|
|
||||||
-- compatibility
|
|
||||||
mobs:alias_mob("mobs:squid", "mobs_mc:squid")
|
|
||||||
|
|
||||||
-- spawn eggs
|
|
||||||
mobs:register_egg("mobs_mc:squid", "Spawn Squid", "spawn_egg_squid.png")
|
|
Before Width: | Height: | Size: 610 B |
Before Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 203 B |
Before Width: | Height: | Size: 422 B |
Before Width: | Height: | Size: 466 B |
Before Width: | Height: | Size: 476 B |
Before Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 217 B |
Before Width: | Height: | Size: 461 B |
Before Width: | Height: | Size: 528 B |
Before Width: | Height: | Size: 485 B |
Before Width: | Height: | Size: 485 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 267 B |
Before Width: | Height: | Size: 965 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 999 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 961 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 999 B |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 6.7 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 5.0 KiB |
Before Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 7.0 KiB |
Before Width: | Height: | Size: 6.2 KiB |