forked from VoxeLibre/VoxeLibre
Update Mobs Redo
This commit is contained in:
parent
bcc87ded12
commit
7be5914463
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
mobs = {}
|
mobs = {}
|
||||||
mobs.mod = "redo"
|
mobs.mod = "redo"
|
||||||
mobs.version = "20180126"
|
mobs.version = "20180328"
|
||||||
|
|
||||||
local MAX_MOB_NAME_LENGTH = 30
|
local MAX_MOB_NAME_LENGTH = 30
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ local creative = minetest.settings:get_bool("creative_mode")
|
||||||
local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false
|
local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false
|
||||||
local remove_far = minetest.settings:get_bool("remove_far_mobs")
|
local remove_far = minetest.settings:get_bool("remove_far_mobs")
|
||||||
local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0
|
local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0
|
||||||
local show_health = false
|
local show_health = minetest.settings:get_bool("mob_show_health") ~= false
|
||||||
local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99)
|
local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99)
|
||||||
local mob_chance_multiplier = tonumber(minetest.settings:get("mob_chance_multiplier") or 1)
|
local mob_chance_multiplier = tonumber(minetest.settings:get("mob_chance_multiplier") or 1)
|
||||||
|
|
||||||
|
@ -331,11 +331,29 @@ local effect = function(pos, amount, texture, min_size, max_size, radius, gravit
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- update nametag colour
|
|
||||||
local update_tag = function(self)
|
local update_tag = function(self)
|
||||||
|
|
||||||
|
--DISABLED IN MCL2
|
||||||
|
--[[
|
||||||
|
local col = "#00FF00"
|
||||||
|
local qua = self.hp_max / 4
|
||||||
|
|
||||||
|
if self.health <= floor(qua * 3) then
|
||||||
|
col = "#FFFF00"
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.health <= floor(qua * 2) then
|
||||||
|
col = "#FF6600"
|
||||||
|
end
|
||||||
|
|
||||||
|
if self.health <= floor(qua) then
|
||||||
|
col = "#FF0000"
|
||||||
|
end
|
||||||
|
]]
|
||||||
|
|
||||||
self.object:set_properties({
|
self.object:set_properties({
|
||||||
nametag = self.nametag,
|
nametag = self.nametag,
|
||||||
|
-- No nametag coloring
|
||||||
})
|
})
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -1200,7 +1218,7 @@ local smart_mobs = function(self, s, p, dist, dtime)
|
||||||
mob_sound(self, self.sounds.random)
|
mob_sound(self, self.sounds.random)
|
||||||
else
|
else
|
||||||
-- yay i found path
|
-- yay i found path
|
||||||
mob_sound(self, self.sounds.attack)
|
mob_sound(self, self.sounds.war_cry)
|
||||||
|
|
||||||
set_velocity(self, self.walk_velocity)
|
set_velocity(self, self.walk_velocity)
|
||||||
|
|
||||||
|
@ -1381,7 +1399,8 @@ local runaway_from = function(self)
|
||||||
|
|
||||||
if objs[n]:is_player() then
|
if objs[n]:is_player() then
|
||||||
|
|
||||||
if mobs.invis[ objs[n]:get_player_name() ] then
|
if mobs.invis[ objs[n]:get_player_name() ]
|
||||||
|
or self.owner == objs[n]:get_player_name() then
|
||||||
|
|
||||||
type = ""
|
type = ""
|
||||||
else
|
else
|
||||||
|
@ -1426,7 +1445,6 @@ local runaway_from = function(self)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- attack player
|
|
||||||
if min_player then
|
if min_player then
|
||||||
|
|
||||||
local lp = player:get_pos()
|
local lp = player:get_pos()
|
||||||
|
@ -1444,7 +1462,7 @@ local runaway_from = function(self)
|
||||||
|
|
||||||
yaw = set_yaw(self.object, yaw)
|
yaw = set_yaw(self.object, yaw)
|
||||||
self.state = "runaway"
|
self.state = "runaway"
|
||||||
self.runaway_timer = 0
|
self.runaway_timer = 3
|
||||||
self.following = nil
|
self.following = nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1783,7 +1801,7 @@ local do_states = function(self, dtime)
|
||||||
local p = self.attack:get_pos() or s
|
local p = self.attack:get_pos() or s
|
||||||
local dist = get_distance(p, s)
|
local dist = get_distance(p, s)
|
||||||
|
|
||||||
-- stop attacking if player or out of range
|
-- stop attacking if player invisible or out of range
|
||||||
if dist > self.view_range
|
if dist > self.view_range
|
||||||
or not self.attack
|
or not self.attack
|
||||||
or not self.attack:get_pos()
|
or not self.attack:get_pos()
|
||||||
|
@ -1815,16 +1833,35 @@ local do_states = function(self, dtime)
|
||||||
|
|
||||||
yaw = set_yaw(self.object, yaw)
|
yaw = set_yaw(self.object, yaw)
|
||||||
|
|
||||||
-- start timer when inside reach
|
local node_break_radius = self.explosion_radius or 1
|
||||||
if dist < self.reach and not self.v_start then
|
local entity_damage_radius = self.explosion_damage_radius
|
||||||
|
or (node_break_radius * 2)
|
||||||
|
|
||||||
|
-- start timer when in reach and line of sight
|
||||||
|
if not self.v_start
|
||||||
|
and dist <= self.reach
|
||||||
|
and line_of_sight(self, s, p, 2) then
|
||||||
|
|
||||||
self.v_start = true
|
self.v_start = true
|
||||||
self.timer = 0
|
self.timer = 0
|
||||||
self.blinktimer = 0
|
self.blinktimer = 0
|
||||||
|
mob_sound(self, self.sounds.fuse)
|
||||||
-- print ("=== explosion timer started", self.explosion_timer)
|
-- print ("=== explosion timer started", self.explosion_timer)
|
||||||
|
|
||||||
|
-- stop timer if out of blast radius or direct line of sight
|
||||||
|
elseif self.allow_fuse_reset
|
||||||
|
and self.v_start
|
||||||
|
and (dist > max(self.reach, entity_damage_radius) + 0.5
|
||||||
|
or not line_of_sight(self, s, p, 2)) then
|
||||||
|
self.v_start = false
|
||||||
|
self.timer = 0
|
||||||
|
self.blinktimer = 0
|
||||||
|
self.blinkstatus = false
|
||||||
|
self.object:settexturemod("")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- walk right up to player when timer active
|
-- walk right up to player unless the timer is active
|
||||||
if dist < 1.5 and self.v_start then
|
if self.v_start and (self.stop_to_explode or dist < 1.5) then
|
||||||
set_velocity(self, 0)
|
set_velocity(self, 0)
|
||||||
else
|
else
|
||||||
set_velocity(self, self.run_velocity)
|
set_velocity(self, self.run_velocity)
|
||||||
|
@ -1859,14 +1896,12 @@ local do_states = function(self, dtime)
|
||||||
if self.timer > self.explosion_timer then
|
if self.timer > self.explosion_timer then
|
||||||
|
|
||||||
local pos = self.object:get_pos()
|
local pos = self.object:get_pos()
|
||||||
local radius = self.explosion_radius or 1
|
|
||||||
local damage_radius = radius
|
|
||||||
|
|
||||||
-- dont damage anything if area protected or next to water
|
-- dont damage anything if area protected or next to water
|
||||||
if minetest.find_node_near(pos, 1, {"group:water"})
|
if minetest.find_node_near(pos, 1, {"group:water"})
|
||||||
or minetest.is_protected(pos, "") then
|
or minetest.is_protected(pos, "") then
|
||||||
|
|
||||||
damage_radius = 0
|
node_break_radius = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
self.object:remove()
|
self.object:remove()
|
||||||
|
@ -1875,8 +1910,8 @@ local do_states = function(self, dtime)
|
||||||
and not minetest.is_protected(pos, "") then
|
and not minetest.is_protected(pos, "") then
|
||||||
|
|
||||||
tnt.boom(pos, {
|
tnt.boom(pos, {
|
||||||
radius = radius,
|
radius = node_break_radius,
|
||||||
damage_radius = damage_radius,
|
damage_radius = entity_damage_radius,
|
||||||
sound = self.sounds.explode,
|
sound = self.sounds.explode,
|
||||||
})
|
})
|
||||||
else
|
else
|
||||||
|
@ -1887,8 +1922,8 @@ local do_states = function(self, dtime)
|
||||||
max_hear_distance = self.sounds.distance or 32
|
max_hear_distance = self.sounds.distance or 32
|
||||||
})
|
})
|
||||||
|
|
||||||
entity_physics(pos, damage_radius)
|
entity_physics(pos, entity_damage_radius)
|
||||||
effect(pos, 32, "tnt_smoke.png", radius * 3, radius * 5, radius, 1, 0)
|
effect(pos, 32, "tnt_smoke.png", nil, nil, node_break_radius, 1, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
return
|
return
|
||||||
|
@ -2874,7 +2909,10 @@ minetest.register_entity(name, {
|
||||||
pathfinding = def.pathfinding,
|
pathfinding = def.pathfinding,
|
||||||
immune_to = def.immune_to or {},
|
immune_to = def.immune_to or {},
|
||||||
explosion_radius = def.explosion_radius,
|
explosion_radius = def.explosion_radius,
|
||||||
|
explosion_damage_radius = def.explosion_damage_radius,
|
||||||
explosion_timer = def.explosion_timer or 3,
|
explosion_timer = def.explosion_timer or 3,
|
||||||
|
allow_fuse_reset = def.allow_fuse_reset ~= false,
|
||||||
|
stop_to_explode = def.stop_to_explode ~= false,
|
||||||
custom_attack = def.custom_attack,
|
custom_attack = def.custom_attack,
|
||||||
double_melee_attack = def.double_melee_attack,
|
double_melee_attack = def.double_melee_attack,
|
||||||
dogshoot_switch = def.dogshoot_switch,
|
dogshoot_switch = def.dogshoot_switch,
|
||||||
|
@ -2948,6 +2986,12 @@ end
|
||||||
|
|
||||||
-- global functions
|
-- global functions
|
||||||
|
|
||||||
|
function mobs:spawn_abm_check(pos, node, name)
|
||||||
|
-- global function to add additional spawn checks
|
||||||
|
-- return true to stop spawning mob
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
|
function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
|
||||||
interval, chance, aoc, min_height, max_height, day_toggle, on_spawn)
|
interval, chance, aoc, min_height, max_height, day_toggle, on_spawn)
|
||||||
|
|
||||||
|
@ -2992,6 +3036,11 @@ function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light,
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- additional custom checks for spawning mob
|
||||||
|
if mobs:spawn_abm_check(pos, node, name) == true then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
-- do not spawn if too many of same mob in area
|
-- do not spawn if too many of same mob in area
|
||||||
if active_object_count_wider >= max_per_block
|
if active_object_count_wider >= max_per_block
|
||||||
or count_mobs(pos, name) >= aoc then
|
or count_mobs(pos, name) >= aoc then
|
||||||
|
@ -3297,12 +3346,63 @@ function mobs:register_egg(mob, desc, background, addegg, no_creative)
|
||||||
"^[mask:mobs_chicken_egg_overlay.png)"
|
"^[mask:mobs_chicken_egg_overlay.png)"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- register new spawn egg containing mob information
|
||||||
|
--[=[ DISABLED IN MCL2
|
||||||
|
minetest.register_craftitem(mob .. "_set", {
|
||||||
|
|
||||||
|
description = S("@1 (Tamed)", desc),
|
||||||
|
inventory_image = invimg,
|
||||||
|
groups = {spawn_egg = 2, not_in_creative_inventory = 1},
|
||||||
|
stack_max = 1,
|
||||||
|
|
||||||
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
|
|
||||||
|
local pos = pointed_thing.above
|
||||||
|
|
||||||
|
-- am I clicking on something with existing on_rightclick function?
|
||||||
|
local under = minetest.get_node(pointed_thing.under)
|
||||||
|
local def = minetest.registered_nodes[under.name]
|
||||||
|
if def and def.on_rightclick then
|
||||||
|
return def.on_rightclick(pointed_thing.under, under, placer, itemstack)
|
||||||
|
end
|
||||||
|
|
||||||
|
if pos
|
||||||
|
and within_limits(pos, 0)
|
||||||
|
and not minetest.is_protected(pos, placer:get_player_name()) then
|
||||||
|
|
||||||
|
if not minetest.registered_entities[mob] then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
pos.y = pos.y + 1
|
||||||
|
|
||||||
|
local data = itemstack:get_metadata()
|
||||||
|
local mob = minetest.add_entity(pos, mob, data)
|
||||||
|
local ent = mob:get_luaentity()
|
||||||
|
|
||||||
|
-- set owner if not a monster
|
||||||
|
if ent.type ~= "monster" then
|
||||||
|
ent.owner = placer:get_player_name()
|
||||||
|
ent.tamed = true
|
||||||
|
end
|
||||||
|
|
||||||
|
-- since mob is unique we remove egg once spawned
|
||||||
|
itemstack:take_item()
|
||||||
|
end
|
||||||
|
|
||||||
|
return itemstack
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
]=]
|
||||||
|
|
||||||
-- register old stackable mob egg
|
-- register old stackable mob egg
|
||||||
minetest.register_craftitem(mob, {
|
minetest.register_craftitem(mob, {
|
||||||
|
|
||||||
description = desc,
|
description = desc,
|
||||||
|
|
||||||
inventory_image = invimg,
|
inventory_image = invimg,
|
||||||
groups = grp,
|
groups = grp,
|
||||||
|
|
||||||
_doc_items_longdesc = "This allows you to place a single mob.",
|
_doc_items_longdesc = "This allows you to place a single mob.",
|
||||||
_doc_items_usagehelp = "Just place it where you want the mob to appear. Animals will spawn tamed, unless you hold down the sneak key while placing. If you place this on a mob spawner, you change the mob it spawns.",
|
_doc_items_usagehelp = "Just place it where you want the mob to appear. Animals will spawn tamed, unless you hold down the sneak key while placing. If you place this on a mob spawner, you change the mob it spawns.",
|
||||||
|
|
||||||
|
@ -3376,6 +3476,126 @@ end
|
||||||
-- capture critter (thanks to blert2112 for idea)
|
-- capture critter (thanks to blert2112 for idea)
|
||||||
function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, force_take, replacewith)
|
function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, force_take, replacewith)
|
||||||
return false
|
return false
|
||||||
|
-- DISABLED IN MCL2
|
||||||
|
--[=[
|
||||||
|
if self.child
|
||||||
|
or not clicker:is_player()
|
||||||
|
or not clicker:get_inventory() then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- get name of clicked mob
|
||||||
|
local mobname = self.name
|
||||||
|
|
||||||
|
-- if not nil change what will be added to inventory
|
||||||
|
if replacewith then
|
||||||
|
mobname = replacewith
|
||||||
|
end
|
||||||
|
|
||||||
|
local name = clicker:get_player_name()
|
||||||
|
local tool = clicker:get_wielded_item()
|
||||||
|
|
||||||
|
-- are we using hand, net or lasso to pick up mob?
|
||||||
|
if tool:get_name() ~= ""
|
||||||
|
and tool:get_name() ~= "mobs:net"
|
||||||
|
and tool:get_name() ~= "mobs:lasso" then
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- is mob tamed?
|
||||||
|
if self.tamed == false
|
||||||
|
and force_take == false then
|
||||||
|
|
||||||
|
minetest.chat_send_player(name, S("Not tamed!"))
|
||||||
|
|
||||||
|
return true -- false
|
||||||
|
end
|
||||||
|
|
||||||
|
-- cannot pick up if not owner
|
||||||
|
if self.owner ~= name
|
||||||
|
and force_take == false then
|
||||||
|
|
||||||
|
minetest.chat_send_player(name, S("@1 is owner!", self.owner))
|
||||||
|
|
||||||
|
return true -- false
|
||||||
|
end
|
||||||
|
|
||||||
|
if clicker:get_inventory():room_for_item("main", mobname) then
|
||||||
|
|
||||||
|
-- was mob clicked with hand, net, or lasso?
|
||||||
|
local chance = 0
|
||||||
|
|
||||||
|
if tool:get_name() == "" then
|
||||||
|
chance = chance_hand
|
||||||
|
|
||||||
|
elseif tool:get_name() == "mobs:net" then
|
||||||
|
|
||||||
|
chance = chance_net
|
||||||
|
|
||||||
|
tool:add_wear(4000) -- 17 uses
|
||||||
|
|
||||||
|
clicker:set_wielded_item(tool)
|
||||||
|
|
||||||
|
elseif tool:get_name() == "mobs:lasso" then
|
||||||
|
|
||||||
|
chance = chance_lasso
|
||||||
|
|
||||||
|
tool:add_wear(650) -- 100 uses
|
||||||
|
|
||||||
|
clicker:set_wielded_item(tool)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
-- calculate chance.. add to inventory if successful?
|
||||||
|
if chance > 0 and random(1, 100) <= chance then
|
||||||
|
|
||||||
|
-- default mob egg
|
||||||
|
local new_stack = ItemStack(mobname)
|
||||||
|
|
||||||
|
-- add special mob egg with all mob information
|
||||||
|
-- unless 'replacewith' contains new item to use
|
||||||
|
if not replacewith then
|
||||||
|
|
||||||
|
new_stack = ItemStack(mobname .. "_set")
|
||||||
|
|
||||||
|
local tmp = {}
|
||||||
|
|
||||||
|
for _,stat in pairs(self) do
|
||||||
|
local t = type(stat)
|
||||||
|
if t ~= "function"
|
||||||
|
and t ~= "nil"
|
||||||
|
and t ~= "userdata" then
|
||||||
|
tmp[_] = self[_]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local data_str = minetest.serialize(tmp)
|
||||||
|
|
||||||
|
new_stack:set_metadata(data_str)
|
||||||
|
end
|
||||||
|
|
||||||
|
local inv = clicker:get_inventory()
|
||||||
|
|
||||||
|
if inv:room_for_item("main", new_stack) then
|
||||||
|
inv:add_item("main", new_stack)
|
||||||
|
else
|
||||||
|
minetest.add_item(clicker:get_pos(), new_stack)
|
||||||
|
end
|
||||||
|
|
||||||
|
self.object:remove()
|
||||||
|
|
||||||
|
mob_sound(self, "default_place_node_hard")
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
minetest.chat_send_player(name, S("Missed!"))
|
||||||
|
|
||||||
|
mob_sound(self, "mobs_swing")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return true
|
||||||
|
]=]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -3416,6 +3636,10 @@ function mobs:protect(self, clicker)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local mob_obj = {}
|
||||||
|
local mob_sta = {}
|
||||||
|
|
||||||
-- feeding, taming and breeding (thanks blert2112)
|
-- feeding, taming and breeding (thanks blert2112)
|
||||||
function mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
function mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
||||||
|
|
||||||
|
@ -3445,6 +3669,13 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
||||||
|
|
||||||
if self.htimer < 1 then
|
if self.htimer < 1 then
|
||||||
|
|
||||||
|
-- DISABLED IN MCL2
|
||||||
|
--[=[
|
||||||
|
minetest.chat_send_player(clicker:get_player_name(),
|
||||||
|
S("@1 at full health (@2)",
|
||||||
|
self.name:split(":")[2], tostring(self.health)))
|
||||||
|
]=]
|
||||||
|
|
||||||
self.htimer = 5
|
self.htimer = 5
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -3514,12 +3745,63 @@ function mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
||||||
player:set_wielded_item(item)
|
player:set_wielded_item(item)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return false
|
return false
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- DISABLED IN MCL2
|
||||||
|
--[=[
|
||||||
|
-- inspired by blockmen's nametag mod
|
||||||
|
minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||||
|
|
||||||
|
-- right-clicked with nametag and name entered?
|
||||||
|
if formname == "mobs_nametag"
|
||||||
|
and fields.name
|
||||||
|
and fields.name ~= "" then
|
||||||
|
|
||||||
|
local name = player:get_player_name()
|
||||||
|
|
||||||
|
if not mob_obj[name]
|
||||||
|
or not mob_obj[name].object then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- make sure nametag is being used to name mob
|
||||||
|
local item = player:get_wielded_item()
|
||||||
|
|
||||||
|
if item:get_name() ~= "mobs:nametag" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- limit name entered to 64 characters long
|
||||||
|
if string.len(fields.name) > 64 then
|
||||||
|
fields.name = string.sub(fields.name, 1, 64)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- update nametag
|
||||||
|
mob_obj[name].nametag = fields.name
|
||||||
|
|
||||||
|
update_tag(mob_obj[name])
|
||||||
|
|
||||||
|
-- if not in creative then take item
|
||||||
|
if not mobs.is_creative(name) then
|
||||||
|
|
||||||
|
mob_sta[name]:take_item()
|
||||||
|
|
||||||
|
player:set_wielded_item(mob_sta[name])
|
||||||
|
end
|
||||||
|
|
||||||
|
-- reset external variables
|
||||||
|
mob_obj[name] = nil
|
||||||
|
mob_sta[name] = nil
|
||||||
|
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
]=]
|
||||||
|
|
||||||
-- compatibility function for old entities to new modpack entities
|
-- compatibility function for old entities to new modpack entities
|
||||||
function mobs:alias_mob(old_name, new_name)
|
function mobs:alias_mob(old_name, new_name)
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,8 @@ functions needed for the mob to work properly which contains the following:
|
||||||
set to 0 for jumping mobs only.
|
set to 0 for jumping mobs only.
|
||||||
'jump' when true allows your mob to jump updwards.
|
'jump' when true allows your mob to jump updwards.
|
||||||
'jump_height' holds the height your mob can jump, 0 to disable jumping.
|
'jump_height' holds the height your mob can jump, 0 to disable jumping.
|
||||||
'step_height' height of a block that your mob can easily walk up onto.
|
'stepheight' height of a block that your mob can easily walk up onto,
|
||||||
|
defaults to 1.1.
|
||||||
'fly' when true allows your mob to fly around instead of walking.
|
'fly' when true allows your mob to fly around instead of walking.
|
||||||
'fly_in' holds the node name that the mob flies (or swims) around
|
'fly_in' holds the node name that the mob flies (or swims) around
|
||||||
in e.g. "air" or "default:water_source".
|
in e.g. "air" or "default:water_source".
|
||||||
|
@ -49,7 +50,7 @@ functions needed for the mob to work properly which contains the following:
|
||||||
standing.
|
standing.
|
||||||
'damage' how many health points the mob does to a player or another
|
'damage' how many health points the mob does to a player or another
|
||||||
mob when melee attacking.
|
mob when melee attacking.
|
||||||
'knockback' when true has mobs falling backwards when hit, the greater
|
'knock_back' when true has mobs falling backwards when hit, the greater
|
||||||
the damage the more they move back.
|
the damage the more they move back.
|
||||||
'fear_height' is how high a cliff or edge has to be before the mob stops
|
'fear_height' is how high a cliff or edge has to be before the mob stops
|
||||||
walking, 0 to turn off height fear.
|
walking, 0 to turn off height fear.
|
||||||
|
@ -73,7 +74,7 @@ functions needed for the mob to work properly which contains the following:
|
||||||
hours and only attacking player at night or when
|
hours and only attacking player at night or when
|
||||||
provoked.
|
provoked.
|
||||||
'attacks_monsters' when true has npc's attacking monsters or not.
|
'attacks_monsters' when true has npc's attacking monsters or not.
|
||||||
'attack_animal' when true will have monsters attacking animals.
|
'attack_animals' when true will have monsters attacking animals.
|
||||||
'owner_loyal' when true will have tamed mobs attack anything player
|
'owner_loyal' when true will have tamed mobs attack anything player
|
||||||
punches when nearby.
|
punches when nearby.
|
||||||
'group_attack' when true has same mob type grouping together to attack
|
'group_attack' when true has same mob type grouping together to attack
|
||||||
|
@ -85,17 +86,27 @@ functions needed for the mob to work properly which contains the following:
|
||||||
view_range.
|
view_range.
|
||||||
'dogshoot' has melee attack when inside reach and shoot attack
|
'dogshoot' has melee attack when inside reach and shoot attack
|
||||||
when inside view_range.
|
when inside view_range.
|
||||||
'explode' causes mob to explode when inside reach.
|
'explode' causes mob to stop and explode when inside reach.
|
||||||
'explosion_radius' has the radius of the explosion which defaults to 1.
|
'explosion_radius' the radius of explosion node destruction,
|
||||||
'explosion_timer' number of seconds before mob explodes while still
|
defaults to 1
|
||||||
inside view range.
|
'explosion_damage_radius' the radius of explosion entity & player damage,
|
||||||
|
defaults to explosion_radius * 2
|
||||||
|
'explosion_timer' number of seconds before mob explodes while its target
|
||||||
|
is still inside reach or explosion_damage_radius,
|
||||||
|
defaults to 3.
|
||||||
|
'allow_fuse_reset' Allow 'explode' attack_type to reset fuse and resume
|
||||||
|
chasing if target leaves the blast radius or line of
|
||||||
|
sight. Defaults to true.
|
||||||
|
'stop_to_explode' When set to true (default), mob must stop and wait for
|
||||||
|
explosion_timer in order to explode. If false, mob will
|
||||||
|
continue chasing.
|
||||||
'arrow' holds the pre-defined arrow object to shoot when
|
'arrow' holds the pre-defined arrow object to shoot when
|
||||||
attacking.
|
attacking.
|
||||||
'dogshoot_switch' allows switching between attack types by using timers
|
'dogshoot_switch' allows switching between attack types by using timers
|
||||||
(1 for shoot, 2 for dogfight)
|
(1 for shoot, 2 for dogfight)
|
||||||
'dogshoot_count_max' contains how many seconds before switching from
|
'dogshoot_count_max' contains how many seconds before switching from
|
||||||
dogfight to shoot.
|
dogfight to shoot.
|
||||||
'dogshoot_count_max2' contains how many seconds before switching from shoot
|
'dogshoot_count2_max' contains how many seconds before switching from shoot
|
||||||
to dogfight.
|
to dogfight.
|
||||||
'shoot_interval' has the number of seconds between shots.
|
'shoot_interval' has the number of seconds between shots.
|
||||||
'shoot_offset' holds the y position added as to where the
|
'shoot_offset' holds the y position added as to where the
|
||||||
|
@ -128,6 +139,7 @@ functions needed for the mob to work properly which contains the following:
|
||||||
'damage' sound heard when mob is hurt.
|
'damage' sound heard when mob is hurt.
|
||||||
'death' played when mob is killed.
|
'death' played when mob is killed.
|
||||||
'jump' played when mob jumps.
|
'jump' played when mob jumps.
|
||||||
|
'fuse' sound played when mob explode timer starts.
|
||||||
'explode' sound played when mob explodes.
|
'explode' sound played when mob explodes.
|
||||||
|
|
||||||
'drops' table of items that are dropped when mob is killed, fields are:
|
'drops' table of items that are dropped when mob is killed, fields are:
|
||||||
|
@ -143,9 +155,9 @@ functions needed for the mob to work properly which contains the following:
|
||||||
'wielditem' how it looks when player holds it in hand.
|
'wielditem' how it looks when player holds it in hand.
|
||||||
'mesh' uses separate object file to define mob.
|
'mesh' uses separate object file to define mob.
|
||||||
'visual_size' has the size of the mob, defaults to {x = 1, y = 1}
|
'visual_size' has the size of the mob, defaults to {x = 1, y = 1}
|
||||||
'collision_box' has the box in which mob can be interacted with the
|
'collisionbox' has the box in which mob can be interacted with the
|
||||||
world e.g. {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}
|
world e.g. {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}
|
||||||
'selection_box' has the box in which player can interact with mob
|
'selectionbox' has the box in which player can interact with mob
|
||||||
'textures' holds a table list of textures to be used for mob, or you
|
'textures' holds a table list of textures to be used for mob, or you
|
||||||
could use multiple lists inside another table for random
|
could use multiple lists inside another table for random
|
||||||
selection e.g. { {"texture1.png"}, {"texture2.png"} }
|
selection e.g. { {"texture1.png"}, {"texture2.png"} }
|
||||||
|
@ -334,6 +346,17 @@ only use the API of this mod by disabling the spawning of the default mobs in
|
||||||
this mod.
|
this mod.
|
||||||
|
|
||||||
|
|
||||||
|
mobs:spawn_abm_check(pos, node, name)
|
||||||
|
|
||||||
|
This global function can be changed to contain additional checks for mobs to
|
||||||
|
spawn e.g. mobs that spawn only in specific areas and the like. By returning
|
||||||
|
true the mob will not spawn.
|
||||||
|
|
||||||
|
'pos' holds the position of the spawning mob
|
||||||
|
'node' contains the node the mob is spawning on top of
|
||||||
|
'name' is the name of the animal/monster
|
||||||
|
|
||||||
|
|
||||||
Making Arrows
|
Making Arrows
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
|
@ -1,689 +0,0 @@
|
||||||
|
|
||||||
Mobs Redo API
|
|
||||||
=============
|
|
||||||
|
|
||||||
Welcome to the world of mobs in minetest and hopefully an easy guide to defining
|
|
||||||
your own mobs and having them appear in your worlds.
|
|
||||||
|
|
||||||
|
|
||||||
Registering Mobs
|
|
||||||
----------------
|
|
||||||
|
|
||||||
To register a mob and have it ready for use requires the following function:
|
|
||||||
|
|
||||||
mobs:register_mob(name, definition)
|
|
||||||
|
|
||||||
The 'name' of a mob usually starts with the mod name it's running from followed
|
|
||||||
by it's own name e.g.
|
|
||||||
|
|
||||||
"mobs_monster:sand_monster" or "mymod:totally_awesome_beast"
|
|
||||||
|
|
||||||
... and the 'definition' is a table which holds all of the settings and
|
|
||||||
functions needed for the mob to work properly which contains the following:
|
|
||||||
|
|
||||||
'nametag' contains the name which is shown above mob.
|
|
||||||
'type' holds the type of mob that inhabits your world e.g.
|
|
||||||
"animal" usually docile and walking around.
|
|
||||||
"monster" attacks player or npc on sight.
|
|
||||||
"npc" walk around and will defend themselves if hit first, they
|
|
||||||
kill monsters.
|
|
||||||
'hp_min' has the minimum health value the mob can spawn with.
|
|
||||||
'hp_max' has the maximum health value the mob can spawn with.
|
|
||||||
'armor' holds strength of mob, 100 is normal, lower is more powerful
|
|
||||||
and needs more hits and better weapons to kill.
|
|
||||||
'passive' when true allows animals to defend themselves when hit,
|
|
||||||
otherwise they amble onwards.
|
|
||||||
'walk_velocity' is the speed that your mob can walk around.
|
|
||||||
'run_velocity' is the speed your mob can run with, usually when attacking.
|
|
||||||
'walk_chance' has a 0-100 chance value your mob will walk from standing,
|
|
||||||
set to 0 for jumping mobs only.
|
|
||||||
'jump' when true allows your mob to jump updwards.
|
|
||||||
'jump_height' holds the height your mob can jump, 0 to disable jumping.
|
|
||||||
'step_height' height of a block that your mob can easily walk up onto.
|
|
||||||
'fly' when true allows your mob to fly around instead of walking.
|
|
||||||
'fly_in' holds the node name that the mob flies (or swims) around
|
|
||||||
in e.g. "air" or "default:water_source".
|
|
||||||
'runaway' if true causes animals to turn and run away when hit.
|
|
||||||
'view_range' how many nodes in distance the mob can see a player.
|
|
||||||
'reach' how many nodes in distance a mob can attack a player while
|
|
||||||
standing.
|
|
||||||
'damage' how many health points the mob does to a player or another
|
|
||||||
mob when melee attacking.
|
|
||||||
'knockback' when true has mobs falling backwards when hit, the greater
|
|
||||||
the damage the more they move back.
|
|
||||||
'fear_height' is how high a cliff or edge has to be before the mob stops
|
|
||||||
walking, 0 to turn off height fear.
|
|
||||||
'fall_speed' has the maximum speed the mob can fall at, default is -10.
|
|
||||||
'fall_damage' when true causes falling to inflict damage.
|
|
||||||
'water_damage' holds the damage per second infliced to mobs when standing in
|
|
||||||
water.
|
|
||||||
'lava_damage' holds the damage per second inflicted to mobs when standing
|
|
||||||
in lava or fire.
|
|
||||||
'light_damage' holds the damage per second inflicted to mobs when it's too
|
|
||||||
bright (above 13 light).
|
|
||||||
'suffocation' when true causes mobs to suffocate inside solid blocks.
|
|
||||||
'floats' when set to 1 mob will float in water, 0 has them sink.
|
|
||||||
'follow' mobs follow player when holding any of the items which appear
|
|
||||||
on this table, the same items can be fed to a mob to tame or
|
|
||||||
breed e.g. {"farming:wheat", "default:apple"}
|
|
||||||
|
|
||||||
'reach' is how far the mob can attack player when standing
|
|
||||||
nearby, default is 3 nodes.
|
|
||||||
'docile_by_day' when true has mobs wandering around during daylight
|
|
||||||
hours and only attacking player at night or when
|
|
||||||
provoked.
|
|
||||||
'attacks_monsters' when true has npc's attacking monsters or not.
|
|
||||||
'attack_animal' when true will have monsters attacking animals.
|
|
||||||
'owner_loyal' when true will have tamed mobs attack anything player
|
|
||||||
punches when nearby.
|
|
||||||
'group_attack' when true has same mob type grouping together to attack
|
|
||||||
offender.
|
|
||||||
'attack_type' tells the api what a mob does when attacking the player
|
|
||||||
or another mob:
|
|
||||||
'dogfight' is a melee attack when player is within mob reach.
|
|
||||||
'shoot' has mob shoot pre-defined arrows at player when inside
|
|
||||||
view_range.
|
|
||||||
'dogshoot' has melee attack when inside reach and shoot attack
|
|
||||||
when inside view_range.
|
|
||||||
'explode' causes mob to explode when inside reach.
|
|
||||||
'explosion_radius' has the radius of the explosion which defaults to 1.
|
|
||||||
'explosion_timer' number of seconds before mob explodes while still
|
|
||||||
inside view range.
|
|
||||||
'arrow' holds the pre-defined arrow object to shoot when
|
|
||||||
attacking.
|
|
||||||
'dogshoot_switch' allows switching between attack types by using timers
|
|
||||||
(1 for shoot, 2 for dogfight)
|
|
||||||
'dogshoot_count_max' contains how many seconds before switching from
|
|
||||||
dogfight to shoot.
|
|
||||||
'dogshoot_count_max2' contains how many seconds before switching from shoot
|
|
||||||
to dogfight.
|
|
||||||
'shoot_interval' has the number of seconds between shots.
|
|
||||||
'shoot_offset' holds the y position added as to where the
|
|
||||||
arrow/fireball appears on mob.
|
|
||||||
'specific_attack' has a table of entity names that mob can also attack
|
|
||||||
e.g. {"player", "mobs_animal:chicken"}.
|
|
||||||
'blood_amount' contains the number of blood droplets to appear when
|
|
||||||
mob is hit.
|
|
||||||
'blood_texture' has the texture name to use for droplets e.g.
|
|
||||||
"mobs_blood.png".
|
|
||||||
'pathfinding' set to 1 for mobs to use pathfinder feature to locate
|
|
||||||
player, set to 2 so they can build/break also (only
|
|
||||||
works with dogfight attack).
|
|
||||||
'immune_to' is a table that holds specific damage when being hit by
|
|
||||||
certain items e.g.
|
|
||||||
{"default:sword_wood", 0} -- causes no damage.
|
|
||||||
{"default:gold_lump", -10} -- heals by 10 health points.
|
|
||||||
{"default:coal_block", 20} -- 20 damage when hit on head with coal blocks.
|
|
||||||
|
|
||||||
'makes_footstep_sound' when true you can hear mobs walking.
|
|
||||||
'sounds' this is a table with sounds of the mob
|
|
||||||
'distance' maximum distance sounds can be heard, default is 10.
|
|
||||||
'random' random sound that plays during gameplay.
|
|
||||||
'war_cry' what you hear when mob starts to attack player.
|
|
||||||
'attack' what you hear when being attacked.
|
|
||||||
'shoot_attack' sound played when mob shoots.
|
|
||||||
'damage' sound heard when mob is hurt.
|
|
||||||
'death' played when mob is killed.
|
|
||||||
'jump' played when mob jumps.
|
|
||||||
'explode' sound played when mob explodes.
|
|
||||||
|
|
||||||
'drops' table of items that are dropped when mob is killed, fields are:
|
|
||||||
'name' name of item to drop.
|
|
||||||
'chance' chance of drop, 1 for always, 2 for 1-in-2 chance etc.
|
|
||||||
'min' minimum number of items dropped.
|
|
||||||
'max' maximum number of items dropped.
|
|
||||||
|
|
||||||
'visual' holds the look of the mob you wish to create:
|
|
||||||
'cube' looks like a normal node
|
|
||||||
'sprite' sprite which looks same from all angles.
|
|
||||||
'upright_sprite' flat model standing upright.
|
|
||||||
'wielditem' how it looks when player holds it in hand.
|
|
||||||
'mesh' uses separate object file to define mob.
|
|
||||||
'visual_size' has the size of the mob, defaults to {x = 1, y = 1}
|
|
||||||
'collision_box' has the box in which mob can be interacted with the
|
|
||||||
world e.g. {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}
|
|
||||||
'selection_box' has the box in which player can interact with mob
|
|
||||||
'textures' holds a table list of textures to be used for mob, or you
|
|
||||||
could use multiple lists inside another table for random
|
|
||||||
selection e.g. { {"texture1.png"}, {"texture2.png"} }
|
|
||||||
'child_texture' holds the texture table for when baby mobs are used.
|
|
||||||
'gotten_texture' holds the texture table for when self.gotten value is
|
|
||||||
true, used for milking cows or shearing sheep.
|
|
||||||
'mesh' holds the name of the external object used for mob model
|
|
||||||
e.g. "mobs_cow.b3d"
|
|
||||||
'gotten_mesh" holds the name of the external object used for when
|
|
||||||
self.gotten is true for mobs.
|
|
||||||
'rotate' custom model rotation, 0 = front, 90 = side, 180 = back,
|
|
||||||
270 = other side.
|
|
||||||
'double_melee_attack' when true has the api choose between 'punch' and
|
|
||||||
'punch2' animations.
|
|
||||||
|
|
||||||
'animation' holds a table containing animation names and settings for use with mesh models:
|
|
||||||
'stand_start' start frame for when mob stands still.
|
|
||||||
'stand_end' end frame of stand animation.
|
|
||||||
'stand_speed' speed of animation in frames per second.
|
|
||||||
'walk_start' when mob is walking around.
|
|
||||||
'walk_end'
|
|
||||||
'walk_speed'
|
|
||||||
'run_start' when a mob runs or attacks.
|
|
||||||
'run_end'
|
|
||||||
'run_speed'
|
|
||||||
'fly_start' when a mob is flying.
|
|
||||||
'fly_end'
|
|
||||||
'fly_speed'
|
|
||||||
'punch_start' when a mob melee attacks.
|
|
||||||
'punch_end'
|
|
||||||
'punch_speed'
|
|
||||||
'punch2_start' alternative melee attack animation.
|
|
||||||
'punch2_end'
|
|
||||||
'punch2_speed'
|
|
||||||
'shoot_start' shooting animation.
|
|
||||||
'shoot_end'
|
|
||||||
'shoot_speed'
|
|
||||||
'die_start' death animation
|
|
||||||
'die_end'
|
|
||||||
'die_speed'
|
|
||||||
'die_loop' when set to false stops the animation looping.
|
|
||||||
|
|
||||||
Using '_loop = false' setting will stop any of the above animations from
|
|
||||||
looping.
|
|
||||||
|
|
||||||
'speed_normal' is used for animation speed for compatibility with some
|
|
||||||
older mobs.
|
|
||||||
|
|
||||||
|
|
||||||
Node Replacement
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Mobs can look around for specific nodes as they walk and replace them to mimic
|
|
||||||
eating.
|
|
||||||
|
|
||||||
'replace_what' group of items to replace e.g.
|
|
||||||
{"farming:wheat_8", "farming:carrot_8"}
|
|
||||||
or you can use the specific options of what, with and
|
|
||||||
y offset by using this instead:
|
|
||||||
{
|
|
||||||
{"group:grass", "air", 0},
|
|
||||||
{"default:dirt_with_grass", "default:dirt", -1}
|
|
||||||
}
|
|
||||||
'replace_with' replace with what e.g. "air" or in chickens case "mobs:egg"
|
|
||||||
'replace_rate' how random should the replace rate be (typically 10)
|
|
||||||
'replace_offset' +/- value to check specific node to replace
|
|
||||||
|
|
||||||
'on_replace(self, pos, oldnode, newnode)' is called when mob is about to
|
|
||||||
replace a node.
|
|
||||||
'self' ObjectRef of mob
|
|
||||||
'pos' Position of node to replace
|
|
||||||
'oldnode' Current node
|
|
||||||
'newnode' What the node will become after replacing
|
|
||||||
|
|
||||||
If false is returned, the mob will not replace the node.
|
|
||||||
|
|
||||||
By default, replacing sets self.gotten to true and resets the object
|
|
||||||
properties.
|
|
||||||
|
|
||||||
|
|
||||||
Custom Definition Functions
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
Along with the above mob registry settings we can also use custom functions to
|
|
||||||
enhance mob functionality and have them do many interesting things:
|
|
||||||
|
|
||||||
'on_die' a function that is called when the mob is killed the
|
|
||||||
parameters are (self, pos)
|
|
||||||
'on_rightclick' its same as in minetest.register_entity()
|
|
||||||
'on_blast' is called when an explosion happens near mob when using TNT
|
|
||||||
functions, parameters are (object, damage) and returns
|
|
||||||
(do_damage, do_knockback, drops)
|
|
||||||
'on_spawn' is a custom function that runs on mob spawn with 'self' as
|
|
||||||
variable, return true at end of function to run only once.
|
|
||||||
'after_activate' is a custom function that runs once mob has been activated
|
|
||||||
with these paramaters (self, staticdata, def, dtime)
|
|
||||||
'on_breed' called when two similar mobs breed, paramaters are
|
|
||||||
(parent1, parent2) objects, return false to stop child from
|
|
||||||
being resized and owner/tamed flags and child textures being
|
|
||||||
applied. Function itself must spawn new child mob.
|
|
||||||
'on_grown' is called when a child mob has grown up, only paramater is
|
|
||||||
(self).
|
|
||||||
'do_punch' called when mob is punched with paramaters (self, hitter,
|
|
||||||
time_from_last_punch, tool_capabilities, direction), return
|
|
||||||
false to stop punch damage and knockback from taking place.
|
|
||||||
'custom_attack' when set this function is called instead of the normal mob
|
|
||||||
melee attack, parameters are (self, to_attack).
|
|
||||||
'on_die' a function that is called when mob is killed
|
|
||||||
'do_custom' a custom function that is called every tick while mob is
|
|
||||||
active and which has access to all of the self.* variables
|
|
||||||
e.g. (self.health for health or self.standing_in for node
|
|
||||||
status), return with 'false' to skip remainder of mob API.
|
|
||||||
|
|
||||||
|
|
||||||
Internal Variables
|
|
||||||
------------------
|
|
||||||
|
|
||||||
The mob api also has some preset variables and functions that it will remember
|
|
||||||
for each mob.
|
|
||||||
|
|
||||||
'self.health' contains current health of mob (cannot exceed
|
|
||||||
self.hp_max)
|
|
||||||
'self.texture_list' contains list of all mob textures
|
|
||||||
'self.child_texture' contains mob child texture when growing up
|
|
||||||
'self.base_texture' contains current skin texture which was randomly
|
|
||||||
selected from textures list
|
|
||||||
'self.gotten' this is used for obtaining milk from cow and wool from
|
|
||||||
sheep
|
|
||||||
'self.horny' when animal fed enough it is set to true and animal can
|
|
||||||
breed with same animal
|
|
||||||
'self.hornytimer' background timer that controls breeding functions and
|
|
||||||
mob childhood timings
|
|
||||||
'self.child' used for when breeding animals have child, will use
|
|
||||||
child_texture and be half size
|
|
||||||
'self.owner' string used to set owner of npc mobs, typically used for
|
|
||||||
dogs
|
|
||||||
'self.order' set to "follow" or "stand" so that npc will follow owner
|
|
||||||
or stand it's ground
|
|
||||||
'self.nametag' contains the name of the mob which it can show above
|
|
||||||
|
|
||||||
|
|
||||||
Spawning Mobs in World
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
mobs:register_spawn(name, nodes, max_light, min_light, chance,
|
|
||||||
active_object_count, max_height, day_toggle)
|
|
||||||
|
|
||||||
mobs:spawn_specfic(name, nodes, neighbors, min_light, max_light, interval,
|
|
||||||
chance, active_object_count, min_height, max_height, day_toggle, on_spawn)
|
|
||||||
|
|
||||||
These functions register a spawn algorithm for the mob. Without this function
|
|
||||||
the call the mobs won't spawn.
|
|
||||||
|
|
||||||
'name' is the name of the animal/monster
|
|
||||||
'nodes' is a list of nodenames on that the animal/monster can
|
|
||||||
spawn on top of
|
|
||||||
'neighbors' is a list of nodenames on that the animal/monster will
|
|
||||||
spawn beside (default is {"air"} for
|
|
||||||
mobs:register_spawn)
|
|
||||||
'max_light' is the maximum of light
|
|
||||||
'min_light' is the minimum of light
|
|
||||||
'interval' is same as in register_abm() (default is 30 for
|
|
||||||
mobs:register_spawn)
|
|
||||||
'chance' is same as in register_abm()
|
|
||||||
'active_object_count' number of this type of mob to spawn at one time inside
|
|
||||||
map area
|
|
||||||
'min_height' is the minimum height the mob can spawn
|
|
||||||
'max_height' is the maximum height the mob can spawn
|
|
||||||
'day_toggle' true for day spawning, false for night or nil for
|
|
||||||
anytime
|
|
||||||
'on_spawn' is a custom function which runs after mob has spawned
|
|
||||||
and gives self and pos values.
|
|
||||||
|
|
||||||
A simpler way to handle mob spawns has been added with the mobs:spawn(def)
|
|
||||||
command which uses above names to make settings clearer:
|
|
||||||
|
|
||||||
mobs:spawn({name = "mobs_monster:tree_monster",
|
|
||||||
nodes = {"group:leaves"},
|
|
||||||
max_light = 7,
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
For each mob that spawns with this function is a field in mobs.spawning_mobs.
|
|
||||||
It tells if the mob should spawn or not. Default is true. So other mods can
|
|
||||||
only use the API of this mod by disabling the spawning of the default mobs in
|
|
||||||
this mod.
|
|
||||||
|
|
||||||
|
|
||||||
Making Arrows
|
|
||||||
-------------
|
|
||||||
|
|
||||||
mobs:register_arrow(name, definition)
|
|
||||||
|
|
||||||
This function registers a arrow for mobs with the attack type shoot.
|
|
||||||
|
|
||||||
'name' is the name of the arrow
|
|
||||||
'definition' is a table with the following values:
|
|
||||||
'visual' same is in minetest.register_entity()
|
|
||||||
'visual_size' same is in minetest.register_entity()
|
|
||||||
'textures' same is in minetest.register_entity()
|
|
||||||
'velocity' the velocity of the arrow
|
|
||||||
'drop' if set to true any arrows hitting a node will drop as item
|
|
||||||
'hit_player' a function that is called when the arrow hits a player;
|
|
||||||
this function should hurt the player, the parameters are
|
|
||||||
(self, player)
|
|
||||||
'hit_mob' a function that is called when the arrow hits a mob;
|
|
||||||
this function should hurt the mob, the parameters are
|
|
||||||
(self, player)
|
|
||||||
'hit_node' a function that is called when the arrow hits a node, the
|
|
||||||
parameters are (self, pos, node)
|
|
||||||
'tail' when set to 1 adds a trail or tail to mob arrows
|
|
||||||
'tail_texture' texture string used for above effect
|
|
||||||
'tail_size' has size for above texture (defaults to between 5 and 10)
|
|
||||||
'expire' contains float value for how long tail appears for
|
|
||||||
(defaults to 0.25)
|
|
||||||
'glow' has value for how brightly tail glows 1 to 10 (default is
|
|
||||||
0 for no glow)
|
|
||||||
'rotate' integer value in degrees to rotate arrow
|
|
||||||
'on_step' is a custom function when arrow is active, nil for
|
|
||||||
default.
|
|
||||||
|
|
||||||
|
|
||||||
Spawn Eggs
|
|
||||||
----------
|
|
||||||
|
|
||||||
mobs:register_egg(name, description, background, addegg, no_creative)
|
|
||||||
|
|
||||||
This function registers a spawn egg which can be used by admin to properly spawn in a mob.
|
|
||||||
|
|
||||||
'name' this is the name of your new mob to spawn e.g. "mob:sheep"
|
|
||||||
'description' the name of the new egg you are creating e.g. "Spawn Sheep"
|
|
||||||
'background' the texture displayed for the egg in inventory
|
|
||||||
'addegg' would you like an egg image in front of your texture (1 = yes,
|
|
||||||
0 = no)
|
|
||||||
'no_creative' when set to true this stops spawn egg appearing in creative
|
|
||||||
mode for destructive mobs like Dungeon Masters.
|
|
||||||
|
|
||||||
|
|
||||||
Explosion Function
|
|
||||||
------------------
|
|
||||||
|
|
||||||
mobs:explosion(pos, radius) -- DEPRECATED!!! use mobs:boom() instead
|
|
||||||
|
|
||||||
mobs:boom(self, pos, radius)
|
|
||||||
'self' mob entity
|
|
||||||
'pos' centre position of explosion
|
|
||||||
'radius' radius of explosion (typically set to 3)
|
|
||||||
|
|
||||||
This function generates an explosion which removes nodes in a specific radius
|
|
||||||
and damages any entity caught inside the blast radius. Protection will limit
|
|
||||||
node destruction but not entity damage.
|
|
||||||
|
|
||||||
|
|
||||||
Capturing Mobs
|
|
||||||
--------------
|
|
||||||
|
|
||||||
mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso,
|
|
||||||
force_take, replacewith)
|
|
||||||
|
|
||||||
This function is generally called inside the on_rightclick section of the mob
|
|
||||||
api code, it provides a chance of capturing the mob by hand, using the net or
|
|
||||||
lasso items, and can also have the player take the mob by force if tamed and
|
|
||||||
replace with another item entirely.
|
|
||||||
|
|
||||||
'self' mob information
|
|
||||||
'clicker' player information
|
|
||||||
'chance_hand' chance of capturing mob by hand (1 to 100) 0 to disable
|
|
||||||
'chance_net' chance of capturing mob using net (1 to 100) 0 to disable
|
|
||||||
'chance_lasso' chance of capturing mob using magic lasso (1 to 100) 0 to
|
|
||||||
disable
|
|
||||||
'force_take' take mob by force, even if tamed (true or false)
|
|
||||||
'replacewith' once captured replace mob with this item instead (overrides
|
|
||||||
new mob eggs with saved information)
|
|
||||||
|
|
||||||
|
|
||||||
Feeding and Taming/Breeding
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
mobs:feed_tame(self, clicker, feed_count, breed, tame)
|
|
||||||
|
|
||||||
This function allows the mob to be fed the item inside self.follow be it apple,
|
|
||||||
wheat or whatever a set number of times and be tamed or bred as a result.
|
|
||||||
Will return true when mob is fed with item it likes.
|
|
||||||
|
|
||||||
'self' mob information
|
|
||||||
'clicker' player information
|
|
||||||
'feed_count' number of times mob must be fed to tame or breed
|
|
||||||
'breed' true or false stating if mob can be bred and a child created
|
|
||||||
afterwards
|
|
||||||
'tame' true or false stating if mob can be tamed so player can pick
|
|
||||||
them up
|
|
||||||
|
|
||||||
|
|
||||||
Protecting Mobs
|
|
||||||
---------------
|
|
||||||
|
|
||||||
mobs:protect(self, clicker)
|
|
||||||
|
|
||||||
This function can be used to right-click any tamed mob with mobs:protector item,
|
|
||||||
this will protect the mob from harm inside of a protected area from other
|
|
||||||
players. Will return true when mob right-clicked with mobs:protector item.
|
|
||||||
|
|
||||||
'self' mob information
|
|
||||||
'clicker' player information
|
|
||||||
|
|
||||||
|
|
||||||
Riding Mobs
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Mobs can now be ridden by players and the following shows its functions and
|
|
||||||
usage:
|
|
||||||
|
|
||||||
|
|
||||||
mobs:attach(self, player)
|
|
||||||
|
|
||||||
This function attaches a player to the mob so it can be ridden.
|
|
||||||
|
|
||||||
'self' mob information
|
|
||||||
'player' player information
|
|
||||||
|
|
||||||
|
|
||||||
mobs:detach(player, offset)
|
|
||||||
|
|
||||||
This function will detach the player currently riding a mob to an offset
|
|
||||||
position.
|
|
||||||
|
|
||||||
'player' player information
|
|
||||||
'offset' position table containing offset values
|
|
||||||
|
|
||||||
|
|
||||||
mobs:drive(self, move_animation, stand_animation, can_fly, dtime)
|
|
||||||
|
|
||||||
This function allows an attached player to move the mob around and animate it at
|
|
||||||
same time.
|
|
||||||
|
|
||||||
'self' mob information
|
|
||||||
'move_animation' string containing movement animation e.g. "walk"
|
|
||||||
'stand_animation' string containing standing animation e.g. "stand"
|
|
||||||
'can_fly' if true then jump and sneak controls will allow mob to fly
|
|
||||||
up and down
|
|
||||||
'dtime' tick time used inside drive function
|
|
||||||
|
|
||||||
|
|
||||||
mobs:fly(self, dtime, speed, can_shoot, arrow_entity, move_animation, stand_animation)
|
|
||||||
|
|
||||||
This function allows an attached player to fly the mob around using directional
|
|
||||||
controls.
|
|
||||||
|
|
||||||
'self' mob information
|
|
||||||
'dtime' tick time used inside fly function
|
|
||||||
'speed' speed of flight
|
|
||||||
'can_shoot' true if mob can fire arrow (sneak and left mouse button
|
|
||||||
fires)
|
|
||||||
'arrow_entity' name of arrow entity used for firing
|
|
||||||
'move_animation' string containing name of pre-defined animation e.g. "walk"
|
|
||||||
or "fly" etc.
|
|
||||||
'stand_animation' string containing name of pre-defined animation e.g.
|
|
||||||
"stand" or "blink" etc.
|
|
||||||
|
|
||||||
Note: animation names above are from the pre-defined animation lists inside mob
|
|
||||||
registry without extensions.
|
|
||||||
|
|
||||||
|
|
||||||
mobs:set_animation(self, name)
|
|
||||||
|
|
||||||
This function sets the current animation for mob, defaulting to "stand" if not
|
|
||||||
found.
|
|
||||||
|
|
||||||
'self' mob information
|
|
||||||
'name' name of animation
|
|
||||||
|
|
||||||
|
|
||||||
Certain variables need to be set before using the above functions:
|
|
||||||
|
|
||||||
'self.v2' toggle switch used to define below values for the
|
|
||||||
first time
|
|
||||||
'self.max_speed_forward' max speed mob can move forward
|
|
||||||
'self.max_speed_reverse' max speed mob can move backwards
|
|
||||||
'self.accel' acceleration speed
|
|
||||||
'self.terrain_type' integer containing terrain mob can walk on
|
|
||||||
(1 = water, 2 or 3 = land)
|
|
||||||
'self.driver_attach_at' position offset for attaching player to mob
|
|
||||||
'self.driver_eye_offset' position offset for attached player view
|
|
||||||
'self.driver_scale' sets driver scale for mobs larger than {x=1, y=1}
|
|
||||||
|
|
||||||
|
|
||||||
External Settings for "minetest.conf"
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
'enable_damage' if true monsters will attack players (default is true)
|
|
||||||
'only_peaceful_mobs' if true only animals will spawn in game (default is
|
|
||||||
false)
|
|
||||||
'mobs_disable_blood' if false blood effects appear when mob is hit (default
|
|
||||||
is false)
|
|
||||||
'mobs_spawn_protected' if set to false then mobs will not spawn in protected
|
|
||||||
areas (default is true)
|
|
||||||
'remove_far_mobs' if true then mobs that are outside players visual
|
|
||||||
range will be removed (default is false)
|
|
||||||
'mobname' can change specific mob chance rate (0 to disable) and
|
|
||||||
spawn number e.g. mobs_animal:cow = 1000,5
|
|
||||||
'mob_difficulty' sets difficulty level (health and hit damage
|
|
||||||
multiplied by this number), defaults to 1.0.
|
|
||||||
'mob_show_health' if false then punching mob will not show health status
|
|
||||||
(true by default)
|
|
||||||
'mob_chance_multiplier' multiplies chance of all mobs spawning and can be set
|
|
||||||
to 0.5 to have mobs spawn more or 2.0 to spawn less.
|
|
||||||
e.g. 1 in 7000 * 0.5 = 1 in 3500 so better odds of
|
|
||||||
spawning.
|
|
||||||
|
|
||||||
Players can override the spawn chance for each mob registered by adding a line
|
|
||||||
to their minetest.conf file with a new value, the lower the value the more each
|
|
||||||
mob will spawn e.g.
|
|
||||||
|
|
||||||
mobs_animal:sheep_chance 11000
|
|
||||||
mobs_monster:sand_monster_chance 100
|
|
||||||
|
|
||||||
|
|
||||||
Rideable Horse Example Mob
|
|
||||||
--------------------------
|
|
||||||
|
|
||||||
mobs:register_mob("mob_horse:horse", {
|
|
||||||
type = "animal",
|
|
||||||
visual = "mesh",
|
|
||||||
visual_size = {x = 1.20, y = 1.20},
|
|
||||||
mesh = "mobs_horse.x",
|
|
||||||
collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.25, 0.4},
|
|
||||||
animation = {
|
|
||||||
speed_normal = 15,
|
|
||||||
speed_run = 30,
|
|
||||||
stand_start = 25,
|
|
||||||
stand_end = 75,
|
|
||||||
walk_start = 75,
|
|
||||||
walk_end = 100,
|
|
||||||
run_start = 75,
|
|
||||||
run_end = 100,
|
|
||||||
},
|
|
||||||
textures = {
|
|
||||||
{"mobs_horse.png"},
|
|
||||||
{"mobs_horsepeg.png"},
|
|
||||||
{"mobs_horseara.png"}
|
|
||||||
},
|
|
||||||
fear_height = 3,
|
|
||||||
runaway = true,
|
|
||||||
fly = false,
|
|
||||||
walk_chance = 60,
|
|
||||||
view_range = 5,
|
|
||||||
follow = {"farming:wheat"},
|
|
||||||
passive = true,
|
|
||||||
hp_min = 12,
|
|
||||||
hp_max = 16,
|
|
||||||
armor = 200,
|
|
||||||
lava_damage = 5,
|
|
||||||
fall_damage = 5,
|
|
||||||
water_damage = 1,
|
|
||||||
makes_footstep_sound = true,
|
|
||||||
drops = {
|
|
||||||
{name = "mobs:meat_raw", chance = 1, min = 2, max = 3}
|
|
||||||
},
|
|
||||||
sounds = {
|
|
||||||
random = "horse_neigh.ogg",
|
|
||||||
damage = "horse_whinney.ogg",
|
|
||||||
},
|
|
||||||
|
|
||||||
do_custom = function(self, dtime)
|
|
||||||
|
|
||||||
-- set needed values if not already present
|
|
||||||
if not self.v2 then
|
|
||||||
self.v2 = 0
|
|
||||||
self.max_speed_forward = 6
|
|
||||||
self.max_speed_reverse = 2
|
|
||||||
self.accel = 6
|
|
||||||
self.terrain_type = 3
|
|
||||||
self.driver_attach_at = {x = 0, y = 20, z = -2}
|
|
||||||
self.driver_eye_offset = {x = 0, y = 3, z = 0}
|
|
||||||
self.driver_scale = {x = 1, y = 1}
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if driver present allow control of horse
|
|
||||||
if self.driver then
|
|
||||||
|
|
||||||
mobs.drive(self, "walk", "stand", false, dtime)
|
|
||||||
|
|
||||||
return false -- skip rest of mob functions
|
|
||||||
end
|
|
||||||
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
|
|
||||||
on_die = function(self, pos)
|
|
||||||
|
|
||||||
-- drop saddle when horse is killed while riding
|
|
||||||
-- also detach from horse properly
|
|
||||||
if self.driver then
|
|
||||||
minetest.add_item(pos, "mobs:saddle")
|
|
||||||
mobs.detach(self.driver, {x = 1, y = 0, z = 1})
|
|
||||||
end
|
|
||||||
|
|
||||||
end,
|
|
||||||
|
|
||||||
on_rightclick = function(self, clicker)
|
|
||||||
|
|
||||||
-- make sure player is clicking
|
|
||||||
if not clicker or not clicker:is_player() then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- feed, tame or heal horse
|
|
||||||
if mobs:feed_tame(self, clicker, 10, true, true) then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
-- make sure tamed horse is being clicked by owner only
|
|
||||||
if self.tamed and self.owner == clicker:get_player_name() then
|
|
||||||
|
|
||||||
local inv = clicker:get_inventory()
|
|
||||||
|
|
||||||
-- detatch player already riding horse
|
|
||||||
if self.driver and clicker == self.driver then
|
|
||||||
|
|
||||||
mobs.detach(clicker, {x = 1, y = 0, z = 1})
|
|
||||||
|
|
||||||
-- add saddle back to inventory
|
|
||||||
if inv:room_for_item("main", "mobs:saddle") then
|
|
||||||
inv:add_item("main", "mobs:saddle")
|
|
||||||
else
|
|
||||||
minetest.add_item(clicker.getpos(), "mobs:saddle")
|
|
||||||
end
|
|
||||||
|
|
||||||
-- attach player to horse
|
|
||||||
elseif not self.driver
|
|
||||||
and clicker:get_wielded_item():get_name() == "mobs:saddle" then
|
|
||||||
|
|
||||||
self.object:set_properties({stepheight = 1.1})
|
|
||||||
mobs.attach(self, clicker)
|
|
||||||
|
|
||||||
-- take saddle from inventory
|
|
||||||
inv:remove_item("main", "mobs:saddle")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- used to capture horse with magic lasso
|
|
||||||
mobs:capture_mob(self, clicker, 0, 0, 80, false, nil)
|
|
||||||
end
|
|
||||||
})
|
|
|
@ -7,13 +7,4 @@ dofile(path .. "/api.lua")
|
||||||
-- Rideable Mobs
|
-- Rideable Mobs
|
||||||
dofile(path .. "/mount.lua")
|
dofile(path .. "/mount.lua")
|
||||||
|
|
||||||
-- Mob Items
|
|
||||||
dofile(path .. "/crafts.lua")
|
|
||||||
|
|
||||||
-- Mob Spawner
|
|
||||||
-- MCL2 has its own spawners in mcl_mobspawners
|
|
||||||
|
|
||||||
-- Lucky Blocks
|
|
||||||
dofile(path .. "/lucky_block.lua")
|
|
||||||
|
|
||||||
minetest.log("action", "[MOD] Mobs Redo loaded")
|
minetest.log("action", "[MOD] Mobs Redo loaded")
|
||||||
|
|
|
@ -18,6 +18,10 @@ msgstr ""
|
||||||
"X-Generator: Poedit 2.0.2\n"
|
"X-Generator: Poedit 2.0.2\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: api.lua
|
#: api.lua
|
||||||
msgid "Mob has been protected!"
|
msgid "Mob has been protected!"
|
||||||
msgstr "Kreatur wurde geschützt!"
|
msgstr "Kreatur wurde geschützt!"
|
||||||
|
@ -42,10 +46,6 @@ msgstr "Daneben!"
|
||||||
msgid "Already protected!"
|
msgid "Already protected!"
|
||||||
msgstr "Bereits geschützt!"
|
msgstr "Bereits geschützt!"
|
||||||
|
|
||||||
#: api.lua
|
|
||||||
msgid "Protected!"
|
|
||||||
msgstr "Geschützt!"
|
|
||||||
|
|
||||||
#: api.lua
|
#: api.lua
|
||||||
msgid "@1 at full health (@2)"
|
msgid "@1 at full health (@2)"
|
||||||
msgstr "@1 bei voller Gesundheit (@2)"
|
msgstr "@1 bei voller Gesundheit (@2)"
|
||||||
|
@ -98,6 +98,10 @@ msgstr "Kreaturschutzrune"
|
||||||
msgid "Saddle"
|
msgid "Saddle"
|
||||||
msgstr "Sattel"
|
msgstr "Sattel"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr "Kreaturen Zaun"
|
||||||
|
|
||||||
#: spawner.lua
|
#: spawner.lua
|
||||||
msgid "Mob Spawner"
|
msgid "Mob Spawner"
|
||||||
msgstr "Kreaturenspawner"
|
msgstr "Kreaturenspawner"
|
||||||
|
|
|
@ -0,0 +1,128 @@
|
||||||
|
# Mobs Redo translation.
|
||||||
|
# Copyright (C) 2017 TenPlus1
|
||||||
|
# This file is distributed under the same license as the mobs package.
|
||||||
|
# Wuzzy <Wuzzy@mail.ru>, 2017
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2017-07-16 16:48+0200\n"
|
||||||
|
"PO-Revision-Date: 2017-07-16 16:48+0200\n"
|
||||||
|
"Last-Translator: Aleks <alexsinteck@icqmail.com>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: es\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Mob has been protected!"
|
||||||
|
msgstr "El mob ha sido protegido!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 (Tamed)"
|
||||||
|
msgstr "@1 (Domesticado)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Not tamed!"
|
||||||
|
msgstr "No domesticado!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 is owner!"
|
||||||
|
msgstr "@1 es el dueño!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Missed!"
|
||||||
|
msgstr "Perdido!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Already protected!"
|
||||||
|
msgstr "Ya está protegido!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 at full health (@2)"
|
||||||
|
msgstr "@1 con salud llena (@2)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 has been tamed!"
|
||||||
|
msgstr "@1 ha sido domesticado!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Enter name:"
|
||||||
|
msgstr "Ingrese nombre:"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Rename"
|
||||||
|
msgstr "Renombrar"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Name Tag"
|
||||||
|
msgstr "Nombrar etiqueta"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Leather"
|
||||||
|
msgstr "Cuero"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Raw Meat"
|
||||||
|
msgstr "Carne cruda"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Meat"
|
||||||
|
msgstr "Carne"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Lasso (right-click animal to put in inventory)"
|
||||||
|
msgstr "Lazo (click derecho en animal para colocar en inventario)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Net (right-click animal to put in inventory)"
|
||||||
|
msgstr "Red (click derecho en animal para colocar en inventario)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Steel Shears (right-click to shear)"
|
||||||
|
msgstr "Tijera de acero (click derecho para esquilar)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Protection Rune"
|
||||||
|
msgstr "Runa de protección de Mob"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Saddle"
|
||||||
|
msgstr "Montura"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner"
|
||||||
|
msgstr "Generador de Mob"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob MinLight MaxLight Amount PlayerDist"
|
||||||
|
msgstr "Mob LuzMin LuzMax Cantidad DistJugador"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Not Active (enter settings)"
|
||||||
|
msgstr "Generador no activo (ingrese config)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Active (@1)"
|
||||||
|
msgstr "Generador activo (@1)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner settings failed!"
|
||||||
|
msgstr "Configuracion de generador de Mob falló!"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid ""
|
||||||
|
"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] "
|
||||||
|
"distance[1-20] y_offset[-10 to 10]”"
|
||||||
|
msgstr "Sintaxis: “nombre luz_min[0-14] luz_max[0-14] max_mobs_en_area[0 para deshabilitar] "
|
||||||
|
"distancia[1-20] compensacion[-10 a 10]”"
|
|
@ -0,0 +1,129 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2017-07-29 09:13+0200\n"
|
||||||
|
"PO-Revision-Date: 2017-07-29 09:20+0200\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 1.8.12\n"
|
||||||
|
"Last-Translator: fat115 <fat115@framasoft.org>\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr "** Mode pacifique activé - Aucun monstre ne sera généré"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Mob has been protected!"
|
||||||
|
msgstr "L'animal a été protégé !"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 (Tamed)"
|
||||||
|
msgstr "@1 (apprivoisé)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Not tamed!"
|
||||||
|
msgstr "Non-apprivoisé !"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 is owner!"
|
||||||
|
msgstr "Appartient à @1 !"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Missed!"
|
||||||
|
msgstr "Raté !"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Already protected!"
|
||||||
|
msgstr "Déjà protégé !"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 at full health (@2)"
|
||||||
|
msgstr "@1 est en pleine forme (@2) "
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 has been tamed!"
|
||||||
|
msgstr "@1 a été apprivoisé ! "
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Enter name:"
|
||||||
|
msgstr "Saisissez un nom :"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Rename"
|
||||||
|
msgstr "Renommer"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Name Tag"
|
||||||
|
msgstr "Étiquette pour collier"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Leather"
|
||||||
|
msgstr "Cuir"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Raw Meat"
|
||||||
|
msgstr "Viande crue"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Meat"
|
||||||
|
msgstr "Viande"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Lasso (right-click animal to put in inventory)"
|
||||||
|
msgstr "Lasso (clic droit sur l'animal pour le mettre dans l'inventaire)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Net (right-click animal to put in inventory)"
|
||||||
|
msgstr "Filet (clic droit sur l'animal pour le mettre dans l'inventaire)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Steel Shears (right-click to shear)"
|
||||||
|
msgstr "Ciseaux à laine (clic droit pour tondre)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Protection Rune"
|
||||||
|
msgstr "Rune de protection des animaux"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Saddle"
|
||||||
|
msgstr "Selle"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr "Clôture à animaux"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner"
|
||||||
|
msgstr "Générateur de mob"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob MinLight MaxLight Amount PlayerDist"
|
||||||
|
msgstr "Mob MinLumière MaxLumière Quantité DistanceJoueur"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Not Active (enter settings)"
|
||||||
|
msgstr "Générateur non actif (entrez les paramètres)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Active (@1)"
|
||||||
|
msgstr "Générateur actif (@1)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner settings failed!"
|
||||||
|
msgstr "Echec des paramètres du générateur"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid ""
|
||||||
|
"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] "
|
||||||
|
"distance[1-20] y_offset[-10 to 10]”"
|
||||||
|
msgstr "Syntaxe : “nom min_lumière[0-14] max_lumière[0-14] max_mobs_dans_zone[0 pour désactiver] distance[1-20] décalage_y[-10 à 10]“"
|
|
@ -0,0 +1,131 @@
|
||||||
|
# ITALIAN LOCALE FILE FOR THE MOBS REDO MODULE
|
||||||
|
# Copyright (c) 2014 Krupnov Pavel and 2016 TenPlus1
|
||||||
|
# This file is distributed under the same license as the MOBS REDO package.
|
||||||
|
# Hamlet <h4mlet@riseup.net>, 2017.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Italian locale file for the Mobs Redo module\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2017-07-02 16:48+0200\n"
|
||||||
|
"PO-Revision-Date: 2017-08-18 12:18+0100\n"
|
||||||
|
"Last-Translator: H4mlet <h4mlet@riseup.net>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: it\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
"X-Generator: Poedit 1.6.10\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Mob has been protected!"
|
||||||
|
msgstr "Il mob è stato protetto!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 (Tamed)"
|
||||||
|
msgstr "@1 (Addomesticat*)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Not tamed!"
|
||||||
|
msgstr "Non addomesticat*!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 is owner!"
|
||||||
|
msgstr "Proprietari* @1!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Missed!"
|
||||||
|
msgstr "Mancat*!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Already protected!"
|
||||||
|
msgstr "Già protett*!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 at full health (@2)"
|
||||||
|
msgstr "@1 in piena salute (@2)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 has been tamed!"
|
||||||
|
msgstr "@1 è stat* addomesticat*!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Enter name:"
|
||||||
|
msgstr "Inserire il nome:"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Rename"
|
||||||
|
msgstr "Rinominare"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Name Tag"
|
||||||
|
msgstr "Targhetta"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Leather"
|
||||||
|
msgstr "Pelle"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Raw Meat"
|
||||||
|
msgstr "Carne cruda"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Meat"
|
||||||
|
msgstr "Carne"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Lasso (right-click animal to put in inventory)"
|
||||||
|
msgstr "Lazo (click di destro per mettere l'animale nell'inventario)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Net (right-click animal to put in inventory)"
|
||||||
|
msgstr "Rete (click destro per mettere l'animale nell'inventario)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Steel Shears (right-click to shear)"
|
||||||
|
msgstr "Cesoie d'acciaio (click destro per tosare)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Protection Rune"
|
||||||
|
msgstr "Runa di protezione per mob"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Saddle"
|
||||||
|
msgstr "Sella"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner"
|
||||||
|
msgstr "Generatore di mob"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob MinLight MaxLight Amount PlayerDist"
|
||||||
|
msgstr "Mob LuceMin LuceMax Ammontare DistGiocat."
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Not Active (enter settings)"
|
||||||
|
msgstr "Generatore inattivo (inserire le impostazioni)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Active (@1)"
|
||||||
|
msgstr "Generatore attivo (@1)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner settings failed!"
|
||||||
|
msgstr "Impostazioni del generatore di mob fallite!"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid ""
|
||||||
|
"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] "
|
||||||
|
"distance[1-20] y_offset[-10 to 10]”"
|
||||||
|
msgstr ""
|
||||||
|
"Sintassi: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 per "
|
||||||
|
"disabilitare] distance[1-20] y_offset[-10 to 10]”"
|
|
@ -0,0 +1,131 @@
|
||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2018-02-05 23:40+0800\n"
|
||||||
|
"PO-Revision-Date: 2018-02-05 23:51+0800\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Poedit 2.0.6\n"
|
||||||
|
"Last-Translator: MuhdNurHidayat (MNH48) <mnh48mail@gmail.com>\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
"Language: ms\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr "** Mod Aman Diaktifkan - Tiada Raksasa Akan Muncul"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Mob has been protected!"
|
||||||
|
msgstr "Mob telah pun dilindungi!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 (Tamed)"
|
||||||
|
msgstr "@1 (Jinak)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Not tamed!"
|
||||||
|
msgstr "Belum dijinakkan!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 is owner!"
|
||||||
|
msgstr "Ini hak milik @1!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Missed!"
|
||||||
|
msgstr "Terlepas!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Already protected!"
|
||||||
|
msgstr "Telah dilindungi!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 at full health (@2)"
|
||||||
|
msgstr "Mata kesihatan @1 telah penuh (@2)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 has been tamed!"
|
||||||
|
msgstr "@1 telah dijinakkan!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Enter name:"
|
||||||
|
msgstr "Masukkan nama:"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Rename"
|
||||||
|
msgstr "Namakan semula"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Name Tag"
|
||||||
|
msgstr "Tanda Nama"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Leather"
|
||||||
|
msgstr "Kulit"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Raw Meat"
|
||||||
|
msgstr "Daging Mentah"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Meat"
|
||||||
|
msgstr "Daging Bakar"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Lasso (right-click animal to put in inventory)"
|
||||||
|
msgstr "Tanjul (klik-kanan haiwan untuk masukkan ke inventori)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Net (right-click animal to put in inventory)"
|
||||||
|
msgstr "Jaring (klik-kanan haiwan untuk masukkan ke inventori)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Steel Shears (right-click to shear)"
|
||||||
|
msgstr "Ketam Keluli (klik-kanan untuk mengetam bulu biri-biri)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Protection Rune"
|
||||||
|
msgstr "Rune Perlindungan Mob"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Saddle"
|
||||||
|
msgstr "Pelana"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr "Pagar Mob"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner"
|
||||||
|
msgstr "Pewujud Mob"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob MinLight MaxLight Amount PlayerDist"
|
||||||
|
msgstr "Mob CahayaMin CahayaMax Amaun JarakPemain"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Not Active (enter settings)"
|
||||||
|
msgstr "Pewujud Mob Tidak Aktif (masukkan tetapan)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Active (@1)"
|
||||||
|
msgstr "Pewujud Mob Aktif (@1)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner settings failed!"
|
||||||
|
msgstr "Penetapan Pewujud Mob gagal!"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid ""
|
||||||
|
"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] "
|
||||||
|
"distance[1-20] y_offset[-10 to 10]”"
|
||||||
|
msgstr ""
|
||||||
|
"Sintaks: \"nama cahaya_minimum[0-14] cahaya_maksimum[0-14] "
|
||||||
|
"amaun_mob_maksimum[0 untuk lumpuhkan] jarak[1-20] ketinggian[-10 hingga 10]\""
|
|
@ -18,6 +18,10 @@ msgstr ""
|
||||||
"X-Generator: Poedit 2.0.2\n"
|
"X-Generator: Poedit 2.0.2\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: api.lua
|
#: api.lua
|
||||||
msgid "Mob has been protected!"
|
msgid "Mob has been protected!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -42,10 +46,6 @@ msgstr "Faltou!"
|
||||||
msgid "Already protected!"
|
msgid "Already protected!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api.lua
|
|
||||||
msgid "Protected!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: api.lua
|
#: api.lua
|
||||||
msgid "@1 at full health (@2)"
|
msgid "@1 at full health (@2)"
|
||||||
msgstr "@1 em plena saude (@2)"
|
msgstr "@1 em plena saude (@2)"
|
||||||
|
@ -99,6 +99,10 @@ msgstr ""
|
||||||
msgid "Saddle"
|
msgid "Saddle"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: spawner.lua
|
#: spawner.lua
|
||||||
msgid "Mob Spawner"
|
msgid "Mob Spawner"
|
||||||
msgstr "Spawnador de Mob"
|
msgstr "Spawnador de Mob"
|
||||||
|
|
|
@ -0,0 +1,129 @@
|
||||||
|
# Russian translation for the mobs_redo mod.
|
||||||
|
# Copyright (C) 2018 TenPlus1
|
||||||
|
# This file is distributed under the same license as the mobs_redo package.
|
||||||
|
# Oleg720 <olegsiriak@yandex.ru>, 2017.
|
||||||
|
# CodeXP <codexp@gmx.net>, 2018.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2017-08-13 15:47+0200\n"
|
||||||
|
"PO-Revision-Date: 2018-03-23 22:22+0100\n"
|
||||||
|
"Last-Translator: CodeXP <codexp@gmx.net>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"Language: ru\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr "** Мирный модус активирован - монстры не спаунятся"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Mob has been protected!"
|
||||||
|
msgstr "Моб защищен!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 (Tamed)"
|
||||||
|
msgstr "@1 (Прирученный)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Not tamed!"
|
||||||
|
msgstr "Не прирученный"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 is owner!"
|
||||||
|
msgstr "@1 владелец"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Missed!"
|
||||||
|
msgstr "Промазал!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Already protected!"
|
||||||
|
msgstr "Уже защищен!"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 at full health (@2)"
|
||||||
|
msgstr "@1 при полном здоровье (@2)"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "@1 has been tamed!"
|
||||||
|
msgstr "@1 приручен"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Enter name:"
|
||||||
|
msgstr "Введите имя:"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "Rename"
|
||||||
|
msgstr "Переименовать"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Name Tag"
|
||||||
|
msgstr "Новый тэг"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Leather"
|
||||||
|
msgstr "Кожа"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Raw Meat"
|
||||||
|
msgstr "Сырое мясо"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Meat"
|
||||||
|
msgstr "Мясо"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Lasso (right-click animal to put in inventory)"
|
||||||
|
msgstr "Лассо (Правый клик - положить животное в инвентарь)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Net (right-click animal to put in inventory)"
|
||||||
|
msgstr "Сеть (Правый клик - положить животное в инвентарь)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Steel Shears (right-click to shear)"
|
||||||
|
msgstr "Ножницы (Правый клик - подстричь)"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Protection Rune"
|
||||||
|
msgstr "Защитная руна мобов"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Saddle"
|
||||||
|
msgstr "Седло"
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr "Забор от мобов"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner"
|
||||||
|
msgstr "Спаунер моба"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob MinLight MaxLight Amount PlayerDist"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Not Active (enter settings)"
|
||||||
|
msgstr "Спаунер не активен (введите настройки)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Spawner Active (@1)"
|
||||||
|
msgstr "Активные спаунер (@1)"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid "Mob Spawner settings failed!"
|
||||||
|
msgstr "Настройки спаунера моба провалились"
|
||||||
|
|
||||||
|
#: spawner.lua
|
||||||
|
msgid ""
|
||||||
|
"Syntax: “name min_light[0-14] max_light[0-14] max_mobs_in_area[0 to disable] "
|
||||||
|
"distance[1-20] y_offset[-10 to 10]”"
|
||||||
|
msgstr ""
|
|
@ -17,6 +17,10 @@ msgstr ""
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: api.lua
|
#: api.lua
|
||||||
msgid "Mob has been protected!"
|
msgid "Mob has been protected!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -41,10 +45,6 @@ msgstr ""
|
||||||
msgid "Already protected!"
|
msgid "Already protected!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api.lua
|
|
||||||
msgid "Protected!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: api.lua
|
#: api.lua
|
||||||
msgid "@1 at full health (@2)"
|
msgid "@1 at full health (@2)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -97,6 +97,10 @@ msgstr ""
|
||||||
msgid "Saddle"
|
msgid "Saddle"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: spawner.lua
|
#: spawner.lua
|
||||||
msgid "Mob Spawner"
|
msgid "Mob Spawner"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -18,6 +18,10 @@ msgstr ""
|
||||||
"X-Generator: Poedit 2.0.2\n"
|
"X-Generator: Poedit 2.0.2\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#: api.lua
|
||||||
|
msgid "** Peaceful Mode Active - No Monsters Will Spawn"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: api.lua
|
#: api.lua
|
||||||
msgid "Mob has been protected!"
|
msgid "Mob has been protected!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -42,10 +46,6 @@ msgstr "Kaçırdın!"
|
||||||
msgid "Already protected!"
|
msgid "Already protected!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: api.lua
|
|
||||||
msgid "Protected!"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: api.lua
|
#: api.lua
|
||||||
msgid "@1 at full health (@2)"
|
msgid "@1 at full health (@2)"
|
||||||
msgstr "@1 tam canında (@2)"
|
msgstr "@1 tam canında (@2)"
|
||||||
|
@ -99,6 +99,10 @@ msgstr ""
|
||||||
msgid "Saddle"
|
msgid "Saddle"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: crafts.lua
|
||||||
|
msgid "Mob Fence"
|
||||||
|
msgstr "Canavar Yaratıcı"
|
||||||
|
|
||||||
#: spawner.lua
|
#: spawner.lua
|
||||||
msgid "Mob Spawner"
|
msgid "Mob Spawner"
|
||||||
msgstr "Canavar Yaratıcı"
|
msgstr "Canavar Yaratıcı"
|
||||||
|
|
Loading…
Reference in New Issue