3 --made for MC like Survival game
4 --License for code WTFPL and otherwise stated in readmes
7 local MP
= minetest
.get_modpath(minetest
.get_current_modname())
8 local S
, NS
= dofile(MP
.."/intllib.lua")
10 --dofile(minetest.get_modpath("mobs").."/api.lua")
13 --################### SHULKER
16 -- animation 45-80 is transition between passive and attack stance
18 mobs
:register_mob("mobs_mc:shulker", {
20 attack_type
= "shoot",
22 arrow
= "mobs_mc:shulkerbullet",
28 collisionbox
= {-0.5, -0.01, -0.5, 0.5, 0.99, 0.5},
30 mesh
= "mobs_mc_shulker.b3d",
31 textures
= { "mobs_mc_endergolem.png", },
32 -- TODO: Make shulker dye-able
33 visual_size
= {x
=3, y
=3},
37 {name
= mobs_mc
.items
.shulker_shell
,
43 stand_speed
= 25, walk_speed
= 25, run_speed
= 50, punch_speed
= 25,
44 speed_normal
= 25, speed_run
= 50,
45 stand_start
= 0, stand_end
= 45,
46 walk_start
= 0, walk_end
= 45,
47 run_start
= 0, run_end
= 45,
48 punch_start
= 80, punch_end
= 100,
58 -- bullet arrow (weapon)
59 mobs
:register_arrow("mobs_mc:shulkerbullet", {
61 visual_size
= {x
= 0.25, y
= 0.25},
62 textures
= {"mobs_mc_shulkerbullet.png"},
65 hit_player
= function(self
, player
)
66 player
:punch(self
.object
, 1.0, {
67 full_punch_interval
= 1.0,
68 damage_groups
= {fleshy
= 4},
72 hit_mob
= function(self
, player
)
73 player
:punch(self
.object
, 1.0, {
74 full_punch_interval
= 1.0,
75 damage_groups
= {fleshy
= 4},
79 hit_node
= function(self
, pos
, node
)
84 mobs
:register_egg("mobs_mc:shulker", S("Shulker"), "mobs_mc_spawn_icon_shulker.png", 0)
86 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
)
88 if minetest
.settings
:get_bool("log_mods") then
89 minetest
.log("action", "MC Shulkers loaded")