Compare commits
5 Commits
decb1c384c
...
8996ad27d8
Author | SHA1 | Date |
---|---|---|
|
8996ad27d8 | |
|
9e0021a0f8 | |
|
7650e9ba5c | |
|
aa399a6ef9 | |
|
23ab8bddbd |
89
init.lua
89
init.lua
|
@ -1,8 +1,30 @@
|
|||
|
||||
-- Load support for intllib.
|
||||
local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S = minetest.get_translator and minetest.get_translator("mob_horse") or
|
||||
dofile(MP .. "/intllib.lua")
|
||||
local MP = minetest.get_modpath(minetest.get_current_modname()) .. "/"
|
||||
|
||||
-- Check for translation method
|
||||
local S
|
||||
if minetest.get_translator ~= nil then
|
||||
S = minetest.get_translator("mob_horse") -- 5.x translation function
|
||||
else
|
||||
if minetest.get_modpath("intllib") then
|
||||
dofile(minetest.get_modpath("intllib") .. "/init.lua")
|
||||
if intllib.make_gettext_pair then
|
||||
gettext, ngettext = intllib.make_gettext_pair() -- new gettext method
|
||||
else
|
||||
gettext = intllib.Getter() -- old text file method
|
||||
end
|
||||
S = gettext
|
||||
else -- boilerplate function
|
||||
S = function(str, ...)
|
||||
local args = {...}
|
||||
return str:gsub("@%d+", function(match)
|
||||
return args[tonumber(match:sub(2))]
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- 0.4.17 or 5.0 check
|
||||
local y_off = 20
|
||||
|
@ -10,6 +32,7 @@ if minetest.features.object_independent_selectionbox then
|
|||
y_off = 10
|
||||
end
|
||||
|
||||
|
||||
-- horse shoes (speed, jump, break, overlay texture)
|
||||
local shoes = {
|
||||
["mobs:horseshoe_steel"] = {7, 4, 2, "mobs_horseshoe_steelo.png"},
|
||||
|
@ -19,6 +42,7 @@ local shoes = {
|
|||
["mobs:horseshoe_crystal"] = {11, 6, 9, "mobs_horseshoe_crystalo.png"}
|
||||
}
|
||||
|
||||
|
||||
-- rideable horse
|
||||
mobs:register_mob("mob_horse:horse", {
|
||||
type = "animal",
|
||||
|
@ -39,7 +63,7 @@ mobs:register_mob("mob_horse:horse", {
|
|||
walk_start = 75,
|
||||
walk_end = 100,
|
||||
run_start = 75,
|
||||
run_end = 100,
|
||||
run_end = 100
|
||||
},
|
||||
textures = {
|
||||
{"mobs_horse.png"}, -- textures by Mjollna
|
||||
|
@ -77,6 +101,7 @@ mobs:register_mob("mob_horse:horse", {
|
|||
self.terrain_type = 3
|
||||
self.driver_attach_at = {x = 0, y = y_off, z = -2}
|
||||
self.driver_eye_offset = {x = 0, y = 3, z = 0}
|
||||
self.driver_scale = {x = 0.8, y = 0.8} -- shrink driver to fit model
|
||||
end
|
||||
|
||||
-- if driver present allow control of horse
|
||||
|
@ -217,7 +242,7 @@ mobs:register_mob("mob_horse:horse", {
|
|||
end
|
||||
|
||||
-- used to capture horse with magic lasso
|
||||
if mobs:capture_mob(self, clicker, nil, nil, 80, false, nil) then return end
|
||||
if mobs:capture_mob(self, clicker, nil, nil, 100, false, nil) then return end
|
||||
|
||||
-- ride horse if saddled
|
||||
if self.saddle and self.owner == player_name then
|
||||
|
@ -226,16 +251,28 @@ mobs:register_mob("mob_horse:horse", {
|
|||
end
|
||||
})
|
||||
|
||||
mobs:spawn({
|
||||
name = "mob_horse:horse",
|
||||
nodes = {"default:dirt_with_grass", "ethereal:dry_dirt"},
|
||||
min_light = 14,
|
||||
interval = 60,
|
||||
chance = 16000,
|
||||
min_height = 10,
|
||||
max_height = 31000,
|
||||
day_toggle = true,
|
||||
})
|
||||
|
||||
-- check for custom spawn.lua
|
||||
local input = io.open(MP .. "spawn.lua", "r")
|
||||
|
||||
if input then
|
||||
input:close()
|
||||
input = nil
|
||||
dofile(MP .. "spawn.lua")
|
||||
else
|
||||
|
||||
mobs:spawn({
|
||||
name = "mob_horse:horse",
|
||||
nodes = {"default:dirt_with_grass", "ethereal:dry_dirt"},
|
||||
min_light = 14,
|
||||
interval = 60,
|
||||
chance = 16000,
|
||||
min_height = 10,
|
||||
max_height = 31000,
|
||||
day_toggle = true
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
mobs:register_egg("mob_horse:horse", S("Horse"), "wool_brown.png", 1)
|
||||
|
||||
|
@ -251,14 +288,14 @@ minetest.register_craft({
|
|||
recipe = {
|
||||
{"", "default:steelblock", ""},
|
||||
{"default:steel_ingot", "", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "", "default:steel_ingot"},
|
||||
{"default:steel_ingot", "", "default:steel_ingot"}
|
||||
}
|
||||
})
|
||||
|
||||
-- bronze horseshoes
|
||||
minetest.register_craftitem(":mobs:horseshoe_bronze", {
|
||||
description = S("Bronze HorseShoes (use on horse to apply)"),
|
||||
inventory_image = "mobs_horseshoe_bronze.png",
|
||||
inventory_image = "mobs_horseshoe_bronze.png"
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -266,14 +303,14 @@ minetest.register_craft({
|
|||
recipe = {
|
||||
{"", "default:bronzeblock", ""},
|
||||
{"default:bronze_ingot", "", "default:bronze_ingot"},
|
||||
{"default:bronze_ingot", "", "default:bronze_ingot"},
|
||||
{"default:bronze_ingot", "", "default:bronze_ingot"}
|
||||
}
|
||||
})
|
||||
|
||||
-- mese horseshoes
|
||||
minetest.register_craftitem(":mobs:horseshoe_mese", {
|
||||
description = S("Mese HorseShoes (use on horse to apply)"),
|
||||
inventory_image = "mobs_horseshoe_mese.png",
|
||||
inventory_image = "mobs_horseshoe_mese.png"
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -281,14 +318,14 @@ minetest.register_craft({
|
|||
recipe = {
|
||||
{"", "default:mese", ""},
|
||||
{"default:mese_crystal_fragment", "", "default:mese_crystal_fragment"},
|
||||
{"default:mese_crystal_fragment", "", "default:mese_crystal_fragment"},
|
||||
{"default:mese_crystal_fragment", "", "default:mese_crystal_fragment"}
|
||||
}
|
||||
})
|
||||
|
||||
-- diamond horseshoes
|
||||
minetest.register_craftitem(":mobs:horseshoe_diamond", {
|
||||
description = S("Diamond HorseShoes (use on horse to apply)"),
|
||||
inventory_image = "mobs_horseshoe_diamond.png",
|
||||
inventory_image = "mobs_horseshoe_diamond.png"
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -296,7 +333,7 @@ minetest.register_craft({
|
|||
recipe = {
|
||||
{"", "default:diamondblock", ""},
|
||||
{"default:diamond", "", "default:diamond"},
|
||||
{"default:diamond", "", "default:diamond"},
|
||||
{"default:diamond", "", "default:diamond"}
|
||||
}
|
||||
})
|
||||
|
||||
|
@ -305,7 +342,7 @@ if minetest.get_modpath("ethereal") then
|
|||
|
||||
minetest.register_craftitem(":mobs:horseshoe_crystal", {
|
||||
description = S("Crystal HorseShoes (use on horse to apply)"),
|
||||
inventory_image = "mobs_horseshoe_crystal.png",
|
||||
inventory_image = "mobs_horseshoe_crystal.png"
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
|
@ -313,12 +350,13 @@ minetest.register_craft({
|
|||
recipe = {
|
||||
{"", "ethereal:crystal_block", ""},
|
||||
{"ethereal:crystal_ingot", "", "ethereal:crystal_ingot"},
|
||||
{"ethereal:crystal_ingot", "", "ethereal:crystal_ingot"},
|
||||
{"ethereal:crystal_ingot", "", "ethereal:crystal_ingot"}
|
||||
}
|
||||
})
|
||||
|
||||
end
|
||||
|
||||
|
||||
-- lucky blocks
|
||||
if minetest.get_modpath("lucky_block") then
|
||||
|
||||
|
@ -331,3 +369,6 @@ lucky_block:add_blocks({
|
|||
})
|
||||
|
||||
end
|
||||
|
||||
|
||||
print("[MOD] Mob Horse loaded")
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
-- Support for the old multi-load method
|
||||
dofile(minetest.get_modpath("intllib").."/init.lua")
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
|
||||
--[[ Spawn Template, defaults to values shown if line not provided
|
||||
|
||||
mobs:spawn({
|
||||
|
||||
name = "",
|
||||
|
||||
- Name of mob, must be provided e.g. "mymod:my_mob"
|
||||
|
||||
nodes = {"group:soil, "group:stone"},
|
||||
|
||||
- Nodes to spawn on top of.
|
||||
|
||||
neighbors = {"air"},
|
||||
|
||||
- Nodes to spawn beside.
|
||||
|
||||
min_light = 0,
|
||||
|
||||
- Minimum light level.
|
||||
|
||||
max_light = 15,
|
||||
|
||||
- Maximum light level, 15 is sunlight only.
|
||||
|
||||
interval = 30,
|
||||
|
||||
- Spawn interval in seconds.
|
||||
|
||||
chance = 5000,
|
||||
|
||||
- Spawn chance, 1 in every 5000 nodes.
|
||||
|
||||
active_object_count = 1,
|
||||
|
||||
- Active mobs of this type in area.
|
||||
|
||||
min_height = -31000,
|
||||
|
||||
- Minimum height level.
|
||||
|
||||
max_height = 31000,
|
||||
|
||||
- Maximum height level.
|
||||
|
||||
day_toggle = nil,
|
||||
|
||||
- Daytime toggle, true to spawn during day, false for night, nil for both
|
||||
|
||||
on_spawn = nil,
|
||||
|
||||
- On spawn function to run when mob spawns in world
|
||||
|
||||
on_map_load = nil,
|
||||
|
||||
- On map load, when true mob only spawns in newly generated map areas
|
||||
})
|
||||
]]--
|
||||
|
||||
|
||||
-- Horse
|
||||
|
||||
mobs:spawn({
|
||||
name = "mob_horse:horse",
|
||||
nodes = {"default:dirt_with_grass", "ethereal:dry_dirt"},
|
||||
min_light = 14,
|
||||
interval = 60,
|
||||
chance = 16000,
|
||||
min_height = 10,
|
||||
max_height = 31000,
|
||||
day_toggle = true
|
||||
})
|
Loading…
Reference in New Issue