Update mobs_mc
|
@ -11,9 +11,10 @@ local cow_def = {
|
||||||
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.39, 0.45},
|
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.39, 0.45},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_mc_cow.b3d",
|
mesh = "mobs_mc_cow.b3d",
|
||||||
textures = {
|
textures = { {
|
||||||
{"mobs_mc_cow.png"},
|
"mobs_mc_cow.png",
|
||||||
},
|
"blank.png",
|
||||||
|
}, },
|
||||||
visual_size = {x=2.8, y=2.8},
|
visual_size = {x=2.8, y=2.8},
|
||||||
makes_footstep_sound = true,
|
makes_footstep_sound = true,
|
||||||
walk_velocity = 1,
|
walk_velocity = 1,
|
||||||
|
@ -79,7 +80,7 @@ mobs:register_mob("mobs_mc:cow", cow_def)
|
||||||
local mooshroom_def = table.copy(cow_def)
|
local mooshroom_def = table.copy(cow_def)
|
||||||
|
|
||||||
mooshroom_def.mesh = "mobs_mc_cow.b3d"
|
mooshroom_def.mesh = "mobs_mc_cow.b3d"
|
||||||
mooshroom_def.textures = { {"mobs_mc_mooshroom.png^mobs_mc_mooshroom_mooshroom.png"}, }
|
mooshroom_def.textures = { {"mobs_mc_mooshroom.png", "mobs_mc_mushroom_red.png"}, }
|
||||||
mooshroom_def.on_rightclick = function(self, clicker)
|
mooshroom_def.on_rightclick = function(self, clicker)
|
||||||
if mobs:feed_tame(self, clicker, 1, true, true) then return end
|
if mobs:feed_tame(self, clicker, 1, true, true) then return end
|
||||||
if mobs:protect(self, clicker) then return end
|
if mobs:protect(self, clicker) then return end
|
||||||
|
|
|
@ -15,8 +15,12 @@ local S, NS = dofile(MP.."/intllib.lua")
|
||||||
--###################
|
--###################
|
||||||
|
|
||||||
local pr = PseudoRandom(os.time()*(-334))
|
local pr = PseudoRandom(os.time()*(-334))
|
||||||
local take_frequency = 10
|
|
||||||
local place_frequency = 10
|
-- How freqeuntly to take and place blocks, in seconds
|
||||||
|
local take_frequency_min = 25
|
||||||
|
local take_frequency_max = 90
|
||||||
|
local place_frequency_min = 10
|
||||||
|
local place_frequency_max = 30
|
||||||
|
|
||||||
-- Create the textures table for the enderman, depending on which kind of block
|
-- Create the textures table for the enderman, depending on which kind of block
|
||||||
-- the enderman holds (if any).
|
-- the enderman holds (if any).
|
||||||
|
@ -191,14 +195,16 @@ mobs:register_mob("mobs_mc:enderman", {
|
||||||
_taken_node = "",
|
_taken_node = "",
|
||||||
do_custom = function(self, dtime)
|
do_custom = function(self, dtime)
|
||||||
-- Take and put nodes
|
-- Take and put nodes
|
||||||
if not self._take_place_timer then
|
if not self._take_place_timer or not self._next_take_place_time then
|
||||||
self._take_place_timer = 0
|
self._take_place_timer = 0
|
||||||
|
self._next_take_place_time = math.random(take_frequency_min, take_frequency_max)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
self._take_place_timer = self._take_place_timer + dtime
|
self._take_place_timer = self._take_place_timer + dtime
|
||||||
if (self._taken_node == nil or self._taken_node == "") and self._take_place_timer >= take_frequency then
|
if (self._taken_node == nil or self._taken_node == "") and self._take_place_timer >= self._next_take_place_time then
|
||||||
-- Take random node
|
-- Take random node
|
||||||
self._take_place_timer = 0
|
self._take_place_timer = 0
|
||||||
|
self._next_take_place_time = math.random(place_frequency_min, place_frequency_max)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:getpos()
|
||||||
local takable_nodes = minetest.find_nodes_in_area({x=pos.x-2, y=pos.y-1, z=pos.z-2}, {x=pos.x+2, y=pos.y+1, z=pos.z+2}, mobs_mc.enderman_takable)
|
local takable_nodes = minetest.find_nodes_in_area({x=pos.x-2, y=pos.y-1, z=pos.z-2}, {x=pos.x+2, y=pos.y+1, z=pos.z+2}, mobs_mc.enderman_takable)
|
||||||
if #takable_nodes >= 1 then
|
if #takable_nodes >= 1 then
|
||||||
|
@ -242,9 +248,10 @@ mobs:register_mob("mobs_mc:enderman", {
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif self._taken_node ~= nil and self._taken_node ~= "" and self._take_place_timer >= place_frequency then
|
elseif self._taken_node ~= nil and self._taken_node ~= "" and self._take_place_timer >= self._next_take_place_time then
|
||||||
-- Place taken node
|
-- Place taken node
|
||||||
self._take_place_timer = 0
|
self._take_place_timer = 0
|
||||||
|
self._next_take_place_time = math.random(take_frequency_min, take_frequency_max)
|
||||||
local pos = self.object:getpos()
|
local pos = self.object:getpos()
|
||||||
local yaw = self.object:get_yaw()
|
local yaw = self.object:get_yaw()
|
||||||
-- Place node at looking direction
|
-- Place node at looking direction
|
||||||
|
|
|
@ -23,7 +23,16 @@ mobs:register_mob("mobs_mc:llama", {
|
||||||
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.86, 0.45},
|
collisionbox = {-0.45, -0.01, -0.45, 0.45, 1.86, 0.45},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_mc_llama.b3d",
|
mesh = "mobs_mc_llama.b3d",
|
||||||
textures = {{"mobs_mc_llama.png"},{"mobs_mc_llama_brown.png"},{"mobs_mc_llama_creamy.png"},{"mobs_mc_llama_white.png"},{"mobs_mc_llama_gray.png"}},
|
textures = { -- 1: chest -- 2: decor -- 3: llama base texture
|
||||||
|
{"blank.png", "blank.png", "mobs_mc_llama_brown.png"},
|
||||||
|
{"blank.png", "blank.png", "mobs_mc_llama_creamy.png"},
|
||||||
|
{"blank.png", "blank.png", "mobs_mc_llama_gray.png"},
|
||||||
|
{"blank.png", "blank.png", "mobs_mc_llama_white.png"},
|
||||||
|
{"blank.png", "blank.png", "mobs_mc_llama.png"},
|
||||||
|
--{"mobs_mc_llama.png", "blank.png", "mobs_mc_llama.png"}, --lama with chest
|
||||||
|
--{"blank.png", "mobs_mc_decor_green.png", "mobs_mc_llama.png"}, --lama with decor
|
||||||
|
--{"mobs_mc_llama.png", "mobs_mc_decor_green.png", "mobs_mc_llama.png"}, --lama with everything
|
||||||
|
},
|
||||||
visual_size = {x=3, y=3},
|
visual_size = {x=3, y=3},
|
||||||
makes_footstep_sound = true,
|
makes_footstep_sound = true,
|
||||||
runaway = true,
|
runaway = true,
|
||||||
|
|
|
@ -83,7 +83,7 @@ mobs:register_arrow("mobs_mc:shulkerbullet", {
|
||||||
|
|
||||||
mobs:register_egg("mobs_mc:shulker", S("Shulker"), "mobs_mc_spawn_icon_shulker.png", 0)
|
mobs:register_egg("mobs_mc:shulker", S("Shulker"), "mobs_mc_spawn_icon_shulker.png", 0)
|
||||||
|
|
||||||
mobs:spawn_specific("mobs_mc:shulker", mobs_mc.spawn.end_city, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 15000, 2, mobs_mc.spawn_height.end_min, mobs_mc.spawn_height.end_max)
|
mobs:spawn_specific("mobs_mc:shulker", mobs_mc.spawn.end_city, {"air"}, 0, minetest.LIGHT_MAX+1, 30, 5000, 2, mobs_mc.spawn_height.end_min, mobs_mc.spawn_height.end_max)
|
||||||
|
|
||||||
if minetest.settings:get_bool("log_mods") then
|
if minetest.settings:get_bool("log_mods") then
|
||||||
minetest.log("action", "MC Shulkers loaded")
|
minetest.log("action", "MC Shulkers loaded")
|
||||||
|
|
|
@ -54,10 +54,15 @@ local spider = {
|
||||||
light_damage = 0,
|
light_damage = 0,
|
||||||
fear_height = 4,
|
fear_height = 4,
|
||||||
animation = {
|
animation = {
|
||||||
speed_normal = 25, speed_run = 50,
|
stand_speed = 10,
|
||||||
stand_start = 40, stand_end = 80,
|
walk_speed = 25,
|
||||||
walk_start = 0, walk_end = 40,
|
run_speed = 50,
|
||||||
run_start = 0, run_end = 40,
|
stand_start = 20,
|
||||||
|
stand_end = 40,
|
||||||
|
walk_start = 0,
|
||||||
|
walk_end = 20,
|
||||||
|
run_start = 0,
|
||||||
|
run_end = 20,
|
||||||
},
|
},
|
||||||
blood_amount = 0,
|
blood_amount = 0,
|
||||||
}
|
}
|
||||||
|
|
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 476 B |
Before Width: | Height: | Size: 865 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 396 B |
After Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 263 B |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 9.1 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 775 B |
After Width: | Height: | Size: 433 B |
Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 648 B |
Before Width: | Height: | Size: 306 B After Width: | Height: | Size: 439 B |
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 529 B |
Before Width: | Height: | Size: 321 B After Width: | Height: | Size: 759 B |
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 750 B |
Before Width: | Height: | Size: 638 B After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 490 B After Width: | Height: | Size: 866 B |
Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 706 B |
Before Width: | Height: | Size: 489 B After Width: | Height: | Size: 444 B |
Before Width: | Height: | Size: 312 B After Width: | Height: | Size: 855 B |
Before Width: | Height: | Size: 716 B After Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 692 B |
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 775 B |
Before Width: | Height: | Size: 409 B After Width: | Height: | Size: 629 B |
Before Width: | Height: | Size: 430 B After Width: | Height: | Size: 676 B |
Before Width: | Height: | Size: 433 B After Width: | Height: | Size: 751 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 950 B After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 954 B After Width: | Height: | Size: 2.2 KiB |
|
@ -22,12 +22,30 @@ mobs:register_mob("mobs_mc:villager", {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_mc_villager.b3d",
|
mesh = "mobs_mc_villager.b3d",
|
||||||
textures = {
|
textures = {
|
||||||
{"mobs_mc_villager.png"},
|
{
|
||||||
{"mobs_mc_villager_farmer.png"},
|
"mobs_mc_villager.png",
|
||||||
{"mobs_mc_villager_priest.png"},
|
"mobs_mc_villager.png", --hat
|
||||||
{"mobs_mc_villager_librarian.png"},
|
},
|
||||||
{"mobs_mc_villager_butcher.png"},
|
{
|
||||||
{"mobs_mc_villager_smith.png"},
|
"mobs_mc_villager_farmer.png",
|
||||||
|
"mobs_mc_villager_farmer.png", --hat
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mobs_mc_villager_priest.png",
|
||||||
|
"mobs_mc_villager_priest.png", --hat
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mobs_mc_villager_librarian.png",
|
||||||
|
"mobs_mc_villager_librarian.png", --hat
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mobs_mc_villager_butcher.png",
|
||||||
|
"mobs_mc_villager_butcher.png", --hat
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"mobs_mc_villager_smith.png",
|
||||||
|
"mobs_mc_villager_smith.png", --hat
|
||||||
|
},
|
||||||
},
|
},
|
||||||
visual_size = {x=3, y=3},
|
visual_size = {x=3, y=3},
|
||||||
makes_footstep_sound = true,
|
makes_footstep_sound = true,
|
||||||
|
@ -42,7 +60,7 @@ mobs:register_mob("mobs_mc:villager", {
|
||||||
},
|
},
|
||||||
animation = {
|
animation = {
|
||||||
stand_speed = 25, walk_speed = 25, run_speed = 50,
|
stand_speed = 25, walk_speed = 25, run_speed = 50,
|
||||||
stand_start = 0, stand_end = 0,
|
stand_start = 40, stand_end = 59,
|
||||||
walk_start = 0, walk_end = 40,
|
walk_start = 0, walk_end = 40,
|
||||||
run_start = 0, run_end = 40,
|
run_start = 0, run_end = 40,
|
||||||
},
|
},
|
||||||
|
|
|
@ -22,11 +22,12 @@ mobs:register_mob("mobs_mc:evoker", {
|
||||||
hp_max = 24,
|
hp_max = 24,
|
||||||
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.95, 0.4},
|
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.95, 0.4},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_mc_evoker.b3d",
|
mesh = "mobs_mc_villager.b3d",
|
||||||
textures = {
|
textures = { {
|
||||||
{"mobs_mc_evoker_base.png"},
|
"mobs_mc_evoker_base.png",
|
||||||
|
"blank.png", --no hat
|
||||||
-- TODO: Attack glow
|
-- TODO: Attack glow
|
||||||
},
|
} },
|
||||||
visual_size = {x=3, y=3},
|
visual_size = {x=3, y=3},
|
||||||
makes_footstep_sound = true,
|
makes_footstep_sound = true,
|
||||||
damage = 6,
|
damage = 6,
|
||||||
|
@ -75,11 +76,12 @@ mobs:register_mob("mobs_mc:evoker", {
|
||||||
stand_speed = 5,
|
stand_speed = 5,
|
||||||
walk_start = 0,
|
walk_start = 0,
|
||||||
walk_end = 40,
|
walk_end = 40,
|
||||||
shoot_start = 60,
|
shoot_start = 120,
|
||||||
shoot_end = 80,
|
shoot_end = 140,
|
||||||
-- TODO: Implement and fix death animation
|
-- TODO: Implement and fix death animation
|
||||||
--die_start = 80,
|
--die_start = 190,
|
||||||
--die_end = 130,
|
--die_end = 200,
|
||||||
|
--die_speed = 15,
|
||||||
--die_loop = false,
|
--die_loop = false,
|
||||||
},
|
},
|
||||||
water_damage = 0,
|
water_damage = 0,
|
||||||
|
|
|
@ -18,9 +18,11 @@ mobs:register_mob("mobs_mc:illusioner", {
|
||||||
collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.94, 0.3},
|
collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.94, 0.3},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_mc_illusioner.b3d",
|
mesh = "mobs_mc_illusioner.b3d",
|
||||||
textures = {
|
textures = { {
|
||||||
{"mobs_mc_illusionist.png^mobs_mc_illusionist_bow.png"},
|
"mobs_mc_illusionist.png",
|
||||||
},
|
"mobs_mc_illusionist.png", --hat
|
||||||
|
"mcl_throwing_bow.png",
|
||||||
|
}, },
|
||||||
visual_size = {x=3, y=3},
|
visual_size = {x=3, y=3},
|
||||||
walk_velocity = 0.6,
|
walk_velocity = 0.6,
|
||||||
run_velocity = 2,
|
run_velocity = 2,
|
||||||
|
@ -32,13 +34,14 @@ mobs:register_mob("mobs_mc:illusioner", {
|
||||||
stand_end = 59,
|
stand_end = 59,
|
||||||
walk_start = 0,
|
walk_start = 0,
|
||||||
walk_end = 40,
|
walk_end = 40,
|
||||||
shoot_start = 90,
|
shoot_start = 150,
|
||||||
shoot_end = 110,
|
shoot_end = 170,
|
||||||
-- TODO: Implement and fix death animation
|
-- TODO: Implement and fix death animation
|
||||||
--die_start = 110,
|
--die_start = 170,
|
||||||
--die_end = 130,
|
--die_end = 180,
|
||||||
|
--die_speed = 15,
|
||||||
--die_loop = false,
|
--die_loop = false,
|
||||||
-- 60-80 magic arm swinging, 80-90 transition between magic to bow shooting
|
-- 120-140 magic arm swinging, 140-150 transition between magic to bow shooting
|
||||||
},
|
},
|
||||||
view_range = 16,
|
view_range = 16,
|
||||||
fear_height = 4,
|
fear_height = 4,
|
||||||
|
|
|
@ -23,9 +23,13 @@ mobs:register_mob("mobs_mc:vindicator", {
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_mc_vindicator.b3d",
|
mesh = "mobs_mc_vindicator.b3d",
|
||||||
textures = {
|
textures = {
|
||||||
{"mobs_mc_vindicator_axe.png"},
|
{
|
||||||
|
"mobs_mc_vindicator_base.png",
|
||||||
|
"blank.png", --no hat
|
||||||
|
"mobs_mc_iron_axe.png",
|
||||||
-- TODO: Glow when attacking (mobs_mc_vindicator.png)
|
-- TODO: Glow when attacking (mobs_mc_vindicator.png)
|
||||||
},
|
},
|
||||||
|
},
|
||||||
visual_size = {x=3, y=3},
|
visual_size = {x=3, y=3},
|
||||||
makes_footstep_sound = true,
|
makes_footstep_sound = true,
|
||||||
damage = 13,
|
damage = 13,
|
||||||
|
@ -49,18 +53,19 @@ mobs:register_mob("mobs_mc:vindicator", {
|
||||||
damage = "Villagerhurt1",
|
damage = "Villagerhurt1",
|
||||||
},
|
},
|
||||||
animation = {
|
animation = {
|
||||||
|
stand_speed = 25,
|
||||||
walk_speed = 25,
|
walk_speed = 25,
|
||||||
run_speed = 25,
|
run_speed = 25,
|
||||||
|
punch_speed = 25,
|
||||||
stand_start = 40,
|
stand_start = 40,
|
||||||
stand_end = 59,
|
stand_end = 59,
|
||||||
stand_speed = 5,
|
|
||||||
walk_start = 0,
|
walk_start = 0,
|
||||||
walk_end = 40,
|
walk_end = 40,
|
||||||
punch_start = 90,
|
punch_start = 90,
|
||||||
punch_end = 110,
|
punch_end = 110,
|
||||||
-- TODO: Implement and fix death animation
|
-- TODO: Implement and fix death animation
|
||||||
--die_start = 110,
|
--die_start = 170,
|
||||||
--die_end = 130,
|
--die_end = 180,
|
||||||
--die_loop = false,
|
--die_loop = false,
|
||||||
},
|
},
|
||||||
water_damage = 1,
|
water_damage = 1,
|
||||||
|
|
|
@ -21,7 +21,7 @@ mobs:register_mob("mobs_mc:villager_zombie", {
|
||||||
armor = 90,
|
armor = 90,
|
||||||
collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.94, 0.3},
|
collisionbox = {-0.3, -0.01, -0.3, 0.3, 1.94, 0.3},
|
||||||
visual = "mesh",
|
visual = "mesh",
|
||||||
mesh = "mobs_mc_zvillager.b3d",
|
mesh = "mobs_mc_villager_zombie.b3d",
|
||||||
textures = {
|
textures = {
|
||||||
{"mobs_mc_zombie_butcher.png"},
|
{"mobs_mc_zombie_butcher.png"},
|
||||||
{"mobs_mc_zombie_farmer.png"},
|
{"mobs_mc_zombie_farmer.png"},
|
||||||
|
|