Soften dependencies in mcl_throwing

This commit is contained in:
Wuzzy 2017-07-26 19:35:56 +02:00
parent 11bd39774a
commit a06670b02f
3 changed files with 38 additions and 29 deletions

View File

@ -1,3 +1,6 @@
local mod_mcl_hunger = minetest.get_modpath("mcl_hunger")
local mod_awards = minetest.get_modpath("awards") and minetest.get_modpath("mcl_achievements")
minetest.register_craftitem("mcl_throwing:arrow", { minetest.register_craftitem("mcl_throwing:arrow", {
description = "Arrow", description = "Arrow",
_doc_items_longdesc = "Arrows are ammunition for bows and dispensers.", _doc_items_longdesc = "Arrows are ammunition for bows and dispensers.",
@ -90,7 +93,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
full_punch_interval=1.0, full_punch_interval=1.0,
damage_groups={fleshy=self._damage}, damage_groups={fleshy=self._damage},
}, nil) }, nil)
if is_player then if mod_mcl_hunger and is_player then
mcl_hunger.exhaust(obj:get_player_name(), mcl_hunger.EXHAUST_DAMAGE) mcl_hunger.exhaust(obj:get_player_name(), mcl_hunger.EXHAUST_DAMAGE)
end end
@ -100,7 +103,7 @@ THROWING_ARROW_ENTITY.on_step = function(self, dtime)
-- NOTE: Range has been reduced because mobs unload much earlier than that ... >_> -- NOTE: Range has been reduced because mobs unload much earlier than that ... >_>
-- TODO: This achievement should be given for the kill, not just a hit -- TODO: This achievement should be given for the kill, not just a hit
if self._shooter and self._shooter:is_player() and vector.distance(pos, self._startpos) >= 20 then if self._shooter and self._shooter:is_player() and vector.distance(pos, self._startpos) >= 20 then
if (entity_name == "mobs_mc:skeleton" or entity_name == "mobs_mc:stray" or entity_name == "mobs_mc:witherskeleton") then if mod_awards and (entity_name == "mobs_mc:skeleton" or entity_name == "mobs_mc:stray" or entity_name == "mobs_mc:witherskeleton") then
awards.unlock(self._shooter:get_player_name(), "mcl:snipeSkeleton") awards.unlock(self._shooter:get_player_name(), "mcl:snipeSkeleton")
end end
end end
@ -127,11 +130,13 @@ end
minetest.register_entity("mcl_throwing:arrow_entity", THROWING_ARROW_ENTITY) minetest.register_entity("mcl_throwing:arrow_entity", THROWING_ARROW_ENTITY)
minetest.register_craft({ if minetest.get_modpath("mcl_core") and minetest.get_modpath("mcl_mobitems") then
minetest.register_craft({
output = 'mcl_throwing:arrow 4', output = 'mcl_throwing:arrow 4',
recipe = { recipe = {
{'mcl_core:flint'}, {'mcl_core:flint'},
{'mcl_core:stick'}, {'mcl_core:stick'},
{'mcl_mobitems:feather'} {'mcl_mobitems:feather'}
} }
}) })
end

View File

@ -1,4 +1,6 @@
mcl_core awards?
mcl_hunger mcl_achievements?
mcl_achievements mcl_hunger?
mcl_core?
mcl_mobitems?
doc? doc?

View File

@ -191,22 +191,24 @@ minetest.register_tool("mcl_throwing:bow_2", {
end, end,
}) })
minetest.register_craft({ if minetest.get_modpath("mcl_core") and minetest.get_modpath("mcl_mobitems") then
minetest.register_craft({
output = 'mcl_throwing:bow', output = 'mcl_throwing:bow',
recipe = { recipe = {
{'', 'mcl_core:stick', 'mcl_mobitems:string'}, {'', 'mcl_core:stick', 'mcl_mobitems:string'},
{'mcl_core:stick', '', 'mcl_mobitems:string'}, {'mcl_core:stick', '', 'mcl_mobitems:string'},
{'', 'mcl_core:stick', 'mcl_mobitems:string'}, {'', 'mcl_core:stick', 'mcl_mobitems:string'},
} }
}) })
minetest.register_craft({ minetest.register_craft({
output = 'mcl_throwing:bow', output = 'mcl_throwing:bow',
recipe = { recipe = {
{'mcl_mobitems:string', 'mcl_core:stick', ''}, {'mcl_mobitems:string', 'mcl_core:stick', ''},
{'mcl_mobitems:string', '', 'mcl_core:stick'}, {'mcl_mobitems:string', '', 'mcl_core:stick'},
{'mcl_mobitems:string', 'mcl_core:stick', ''}, {'mcl_mobitems:string', 'mcl_core:stick', ''},
} }
}) })
end
minetest.register_craft({ minetest.register_craft({
type = "fuel", type = "fuel",