This commit is contained in:
somechris 2024-11-09 07:41:49 +01:00 committed by GitHub
commit cda3dbbb88
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 342 additions and 41 deletions

View file

@ -7,6 +7,9 @@ local abs = math.abs
local vec_add, vec_dir, vec_dist, vec_len = vector.add, vector.direction, vector.distance, vector.length
local dir2rot = vector.dir_to_rotation
-- Load support for MT game translation.
local S = minetest.get_translator("animalia")
-- Entities --
local using_lasso = {}
@ -202,7 +205,7 @@ end
-- Item
minetest.register_craftitem("animalia:lasso", {
description = "Lasso",
description = S("Lasso"),
inventory_image = "animalia_lasso.png",
on_secondary_use = function(_, placer, pointed)
local ent = pointed.ref and pointed.ref:get_luaentity()

View file

@ -2,6 +2,9 @@
-- Libri --
-----------
-- Load support for MT game translation.
local S = minetest.get_translator("animalia")
local libri = {}
local path = minetest.get_modpath(minetest.get_current_modname())
@ -281,7 +284,7 @@ function libri.generate_list(meta, offset, start_iter)
if i > start_iter then
local mob_name = mob:split(":")[2]
local offset_txt = offset_x .. "," .. offset_y
local element = "button[" .. offset_txt .. ";4,1;btn_" .. mob_name .. ";" .. correct_string(mob_name) .. "]"
local element = "button[" .. offset_txt .. ";4,1;btn_" .. mob_name .. ";" .. S(correct_string(mob_name)) .. "]"
elements = elements .. element
offset_y = offset_y + 2
if offset_y > 7.5 then
@ -310,9 +313,22 @@ function libri.render_element(def, meta, playername)
local font_size_x = (animalia.libri_font_size[playername] or 1)
local font_size = (def.font_size or 16) * font_size_x
if def.file then
local filename = path .. "/libri/" .. def.file
local file = io.open(filename)
local filename
local file
-- We try to find localized content first and fall back to default content.
local player_information = core.get_player_information(playername)
if player_information and player_information.lang_code then
local lang_code = player_information.lang_code
filename = path .. "/locale/libri/" .. lang_code .. "/" .. def.file
file = io.open(filename)
end
if not file then
-- No localized content available. So we try the default content
filename = path .. "/libri/" .. def.file
file = io.open(filename)
end
if file then
-- Some content was found, so we load and display it.
local text = ""
for line in file:lines() do
text = text .. line .. "\n"
@ -427,7 +443,7 @@ local function iterate_libri_images()
if info.element_type == "image" then
info.text = biome_cubes[spawn_biome]
else
info.text = correct_string(spawn_biome)
info.text = S(correct_string(spawn_biome))
end
end
end

View file

@ -8,6 +8,9 @@ local vec_add, vec_sub = vector.add, vector.subtract
local color = minetest.colorize
-- Load support for MT game translation.
local S = minetest.get_translator("animalia")
local function correct_name(str)
if str then
if str:match(":") then str = str:split(":")[2] end
@ -99,7 +102,7 @@ local function register_egg(name, def)
})
minetest.register_craftitem(name .. "_fried", {
description = "Fried " .. def.description,
description = S("Fried @1", def.description),
inventory_image = def.inventory_image .. "_fried.png",
on_use = minetest.item_eat(4),
groups = {food_egg = 1, flammable = 2},
@ -136,10 +139,11 @@ local function mob_storage_use(itemstack, player, pointed)
meta:set_string("staticdata", ent:get_staticdata())
local ent_name = correct_name(ent.name)
local ent_gender = correct_name(ent.gender)
desc = desc .. " \n" .. color("#a9a9a9", ent_name) .. "\n" .. color("#a9a9a9", ent_gender)
-- desc is already translated
desc = desc .. " \n" .. color("#a9a9a9", S(ent_name)) .. "\n" .. color("#a9a9a9", S(ent_gender))
if ent.trust
and ent.trust[plyr_name] then
desc = desc .. "\n Trust: " .. color("#a9a9a9", ent.trust[plyr_name])
desc = desc .. "\n " .. S("Trust") .. ": " .. color("#a9a9a9", ent.trust[plyr_name])
end
meta:set_string("description", desc)
player:set_wielded_item(itemstack)
@ -147,7 +151,8 @@ local function mob_storage_use(itemstack, player, pointed)
return itemstack
else
minetest.chat_send_player(plyr_name,
"This " .. desc .. " already contains a " .. correct_name(mob))
-- desc is already translated
S("This @1 already contains a @2", desc, S(correct_name(mob))))
end
end
end
@ -157,19 +162,19 @@ end
-----------
minetest.register_craftitem("animalia:leather", {
description = "Leather",
description = S("Leather"),
inventory_image = "animalia_leather.png",
groups = {flammable = 2, leather = 1},
})
minetest.register_craftitem("animalia:feather", {
description = "Feather",
description = S("Feather"),
inventory_image = "animalia_feather.png",
groups = {flammable = 2, feather = 1},
})
minetest.register_craftitem("animalia:pelt_bear", {
description = "Bear Pelt",
description = S("Bear Pelt"),
inventory_image = "animalia_pelt_bear.png",
groups = {flammable = 2, pelt = 1},
})
@ -177,14 +182,14 @@ minetest.register_craftitem("animalia:pelt_bear", {
-- Meat --
minetest.register_craftitem("animalia:beef_raw", {
description = "Raw Beef",
description = S("Raw Beef"),
inventory_image = "animalia_beef_raw.png",
on_use = minetest.item_eat(1),
groups = {flammable = 2, meat = 1, food_meat = 1},
})
minetest.register_craftitem("animalia:beef_cooked", {
description = "Steak",
description = S("Steak"),
inventory_image = "animalia_beef_cooked.png",
on_use = minetest.item_eat(8),
groups = {flammable = 2, meat = 1, food_meat = 1},
@ -197,14 +202,14 @@ minetest.register_craft({
})
minetest.register_craftitem("animalia:mutton_raw", {
description = "Raw Mutton",
description = S("Raw Mutton"),
inventory_image = "animalia_mutton_raw.png",
on_use = minetest.item_eat(1),
groups = {flammable = 2, meat = 1, food_meat = 1},
})
minetest.register_craftitem("animalia:mutton_cooked", {
description = "Cooked Mutton",
description = S("Cooked Mutton"),
inventory_image = "animalia_mutton_cooked.png",
on_use = minetest.item_eat(6),
groups = {flammable = 2, meat = 1, food_meat = 1},
@ -217,14 +222,14 @@ minetest.register_craft({
})
minetest.register_craftitem("animalia:rat_raw", {
description = "Raw Rat",
description = S("Raw Rat"),
inventory_image = "animalia_rat_raw.png",
on_use = minetest.item_eat(1),
groups = {flammable = 2, meat = 1, food_meat = 1},
})
minetest.register_craftitem("animalia:rat_cooked", {
description = "Cooked Rat",
description = S("Cooked Rat"),
inventory_image = "animalia_rat_cooked.png",
on_use = minetest.item_eat(2),
groups = {flammable = 2, meat = 1, food_meat = 1},
@ -237,14 +242,14 @@ minetest.register_craft({
})
minetest.register_craftitem("animalia:porkchop_raw", {
description = "Raw Porkchop",
description = S("Raw Porkchop"),
inventory_image = "animalia_porkchop_raw.png",
on_use = minetest.item_eat(1),
groups = {flammable = 2, meat = 1, food_meat = 1},
})
minetest.register_craftitem("animalia:porkchop_cooked", {
description = "Cooked Porkchop",
description = S("Cooked Porkchop"),
inventory_image = "animalia_porkchop_cooked.png",
on_use = minetest.item_eat(7),
groups = {flammable = 2, meat = 1, food_meat = 1},
@ -257,14 +262,14 @@ minetest.register_craft({
})
minetest.register_craftitem("animalia:poultry_raw", {
description = "Raw Poultry",
description = S("Raw Poultry"),
inventory_image = "animalia_poultry_raw.png",
on_use = minetest.item_eat(1),
groups = {flammable = 2, meat = 1, food_meat = 1},
})
minetest.register_craftitem("animalia:poultry_cooked", {
description = "Cooked Poultry",
description = S("Cooked Poultry"),
inventory_image = "animalia_poultry_cooked.png",
on_use = minetest.item_eat(6),
groups = {flammable = 2, meat = 1, food_meat = 1},
@ -277,14 +282,14 @@ minetest.register_craft({
})
minetest.register_craftitem("animalia:venison_raw", {
description = "Raw Venison",
description = S("Raw Venison"),
inventory_image = "animalia_venison_raw.png",
on_use = minetest.item_eat(1),
groups = {flammable = 2, meat = 1, food_meat = 1},
})
minetest.register_craftitem("animalia:venison_cooked", {
description = "Venison Steak",
description = S("Venison Steak"),
inventory_image = "animalia_venison_cooked.png",
on_use = minetest.item_eat(10),
groups = {flammable = 2, meat = 1, food_meat = 1},
@ -297,19 +302,19 @@ minetest.register_craft({
})
register_egg("animalia:chicken_egg", {
description = "Chicken Egg",
description = S("Chicken Egg"),
inventory_image = "animalia_egg",
mob = "animalia:chicken"
})
register_egg("animalia:turkey_egg", {
description = "Turkey Egg",
description = S("Turkey Egg"),
inventory_image = "animalia_egg",
mob = "animalia:turkey"
})
register_egg("animalia:song_bird_egg", {
description = "Song Bird Egg",
description = S("Song Bird Egg"),
inventory_image = "animalia_song_bird_egg",
mob = "animalia:bird"
})
@ -319,7 +324,7 @@ register_egg("animalia:song_bird_egg", {
----------
minetest.register_craftitem("animalia:bucket_milk", {
description = "Bucket of Milk",
description = S("Bucket of Milk"),
inventory_image = "animalia_milk_bucket.png",
stack_max = 1,
on_use = minetest.item_eat(8, "bucket:bucket_empty"),
@ -327,7 +332,7 @@ minetest.register_craftitem("animalia:bucket_milk", {
})
minetest.register_craftitem("animalia:bucket_guano", {
description = "Bucket of Guano",
description = S("Bucket of Guano"),
inventory_image = "animalia_guano_bucket.png",
stack_max = 1,
groups = {flammable = 3},
@ -368,7 +373,7 @@ minetest.register_craftitem("animalia:bucket_guano", {
})
minetest.register_node("animalia:nest_song_bird", {
description = "Song Bird Nest",
description = S("Song Bird Nest"),
paramtype = "light",
drawtype = "mesh",
mesh = "animalia_nest.obj",
@ -407,7 +412,7 @@ minetest.register_node("animalia:nest_song_bird", {
-----------
minetest.register_craftitem("animalia:cat_toy", {
description = "Cat Toy",
description = S("Cat Toy"),
inventory_image = "animalia_cat_toy.png",
wield_image = "animalia_cat_toy.png^[transformFYR90",
stack_max = 1
@ -457,25 +462,25 @@ local function nametag_rightclick(itemstack, player, pointed_thing)
end
minetest.register_craftitem("animalia:nametag", {
description = "Nametag",
description = S("Nametag"),
inventory_image = "animalia_nametag.png",
on_rightclick = nametag_rightclick,
on_secondary_use = nametag_rightclick
})
minetest.register_craftitem("animalia:saddle", {
description = "Saddle",
description = S("Saddle"),
inventory_image = "animalia_saddle.png",
})
minetest.register_tool("animalia:shears", {
description = "Shears",
description = S("Shears"),
inventory_image = "animalia_shears.png",
groups = {flammable = 2}
})
minetest.register_craftitem("animalia:net", {
description = "Animal Net",
description = S("Animal Net"),
inventory_image = "animalia_net.png",
stack_max = 1,
on_secondary_use = mob_storage_use,
@ -499,7 +504,7 @@ minetest.register_craftitem("animalia:net", {
minetest.add_entity(pos, mob, staticdata)
itemstack:get_meta():set_string("mob", nil)
itemstack:get_meta():set_string("staticdata", nil)
itemstack:get_meta():set_string("description", "Animal Net")
itemstack:get_meta():set_string("description", S("Animal Net"))
end
end
end
@ -540,7 +545,7 @@ if minetest.get_modpath("3d_armor") then
end
armor:register_armor("animalia:coat_bear_pelt", {
description = "Bear Pelt Coat",
description = S("Bear Pelt Coat"),
inventory_image = "animalia_inv_coat_bear_pelt.png",
groups = {armor_torso = 1, armor_heal = 0, armor_heavy_pelt = 1, armor_use = 1000},
armor_groups = {fleshy = 5}
@ -563,7 +568,7 @@ end
-----------
minetest.register_node("animalia:guano", {
description = "Guano",
description = S("Guano"),
tiles = {"animalia_guano.png"},
paramtype = "light",
buildable_to = true,
@ -594,7 +599,7 @@ minetest.register_node("animalia:guano", {
})
minetest.register_node("animalia:crate", {
description = "Animal Crate",
description = S("Animal Crate"),
tiles = {"animalia_crate.png", "animalia_crate.png", "animalia_crate_side.png"},
groups = {choppy = 2},
stack_max = 1,
@ -615,7 +620,7 @@ minetest.register_node("animalia:crate", {
if mob ~= "" then
local nmeta = minetest.get_meta(pos)
nmeta:set_string("mob", mob)
nmeta:set_string("infotext", "Contains a " .. correct_name((mob)))
nmeta:set_string("infotext", S("Contains a @1", S(correct_name((mob)))))
nmeta:set_string("staticdata", meta:get_string("staticdata"))
nmeta:set_string("description", meta:get_string("description"))
itemstack:take_item()
@ -642,7 +647,7 @@ minetest.register_node("animalia:crate", {
meta:set_string("mob", nil)
meta:set_string("infotext", nil)
meta:set_string("staticdata", nil)
meta:set_string("description", "Animal Crate")
meta:set_string("description", S("Animal Crate"))
end
end
})

67
locale/animalia.de.tr Normal file
View file

@ -0,0 +1,67 @@
# textdomain: animalia
Animal Crate=Tierkiste
Animal Net=Tierfangnetz
Bat=Fledermaus
Bear Pelt=Bärenfell
Bear Pelt Coat=Bärenfellmantel
Bucket of Guano=Eimer mit Vogelmist
Bucket of Milk=Eimer mit Milch
Cat=Katze
Cat Toy=Katzenspielzeug
Chicken Egg=Hühnerei
Chicken=Huhn
Coniferous Forest=Nadelwald
Contains a @1=Enthält @1
Cooked Mutton=Gekochtes Schaffleisch
Cooked Porkchop=Gekochtes Schweinefleisch
Cooked Poultry=Gekochtes Geflügel
Cooked Rat=Gekochtes Rattenfleisch
Cow=Kuh
Deciduous Forest=Laubwald
Deciduous Forest Ocean=Laubwald Ozean
Deciduous Forest Shore=Laubwald Küste
Feather=Feder
Female=Weiblich
Fox=Fuchs
Fried @1=Gebratenes @1
Frog=Frosch
Grassland=Graslandschaft
Grizzly Bear=Grizzlybär
Guano=Vogelmist
Horse=Pferd
Icesheet Ocean=Eis Ozean
Lasso=Lasso
Leather=Leder
Male=Männlich
Nametag=Namensschild
Opossum=Opossum
Owl=Eule
Pig=Schwein
Rainforest Ocean=Regenwald Ozean
Rainforest=Regenwald
Rainforest Swamp=Regenwald Sumpf
Rat=Ratte
Raw Beef=Rohes Rindfleisch
Raw Mutton=Rohes Schaffeisch
Raw Porkchop=Rohes Schweinefleisch
Raw Poultry=Rohes Gflügel
Raw Rat=Rohes Rattenfleisch
Raw Venison=Rohes Wildfleisch
Reindeer=Rentier
Saddle=Sattel
Savanna Ocean=Savannenozean
Savanna=Savanne
Shears=Schere
Sheep=Schaf
Song Bird Egg=Singvogelei
Song Bird Nest=Singvogelnest
Song Bird=Singvogel
Steak=Steak
This @1 already contains a @2=@1 enthält bereits @2
Tropical Fish=Tropischer Fisch
Trust=Vertrauen
Tundra Ocean=Tundraozean
Turkey Egg=Truthuhnei
Turkey=Truthuhn
Venison Steak=Wildsteak
Wolf=Wolf

7
locale/libri/README.txt Normal file
View file

@ -0,0 +1,7 @@
The screen estate for text in the rendered book pages is limited.
To avoid broken lines, use only 44 (or less) characters per line.
To avoid scrollbars (which are unusable due to the once-per-second refresh),
only use 10 (or less) lines per file.
(In the home page, you can up to 14 lines).

View file

@ -0,0 +1,8 @@
Fledermäuse sind einzigartige, fliegende
Säugetiere, die unterirdisch in großen
Kolonien leben. Tagsüber schlafen sie,
kopfüber von der Decke hängend. Nachts
brechen sie auf um Futter zu suchen.
Während sie schlafen, sammelt sich unter
ihnen ihr Mist. Den kann man mit Kübeln
einsammeln und als Dünger verwenden.

View file

@ -0,0 +1,6 @@
Singvögel sind klein und bunt gemustert.
In der Nähe ihrer Nester sieht man sie oft
in Schwärmen herumziehen. Jede Art hat
einen eigenen Gesang anhand dessen man
feststellen kann, welche Arten gerade es
hier gibt.

View file

@ -0,0 +1,9 @@
Katzen findet man oft in Siedlungsnähe.
Sie sind anfangs oft schreckhaft. Aber
durch Füttern oder Spielen, kann man
ihr Vertrauen gewinnen. Erst wenn sie
einem Vertrauen beginnen sie auf
Kommandos zu horchen. Manche Gewohn-
heiten legen sie aber nie ab. Glas-
gefäße werden nicht heil bleiben, wenn
man sie mit Katzen alleine lässt.

View file

@ -0,0 +1,9 @@
Hühner sind flugunfähige Vögel, die man
häufig im Dschungel findet. Sie leben in
dichten Gruppen und suchen den Boden nach
Käfern ab. Durch ihre langen Schwanz-
federn unterscheiden sich die Männchen
(Hahn) von den Weibchen (Henne). Da sie
gute Eierlieferanten und damit verläss-
liche Nahrungsquelle sind, werden sie
gerne von Bauern gehalten.

View file

@ -0,0 +1,7 @@
Kühe sind große Rinder, die in Herden
leben. Sie sind wichtig in der Land-
wirtschaft und werden oft auf großen
Flächen gehalten. Sie produzieren Milch
und können für Rindfleisch, der
sättigendsten Sorte Fleisch, geschlachtet
werden.

View file

@ -0,0 +1,6 @@
Füchse jagen durch den Wald streifend
nach ihrem Lieblingsfutter: Ratten.
Sie sind hilfreich um Ratten-
populationen klein zu halten. Aber sie
sind eine Gefahr für Hühner und Trut-
hähne.

View file

@ -0,0 +1,6 @@
Frösche sind kleine Amphibien, die in
Sümpfen leben. Ihr Quaken hört man oft
weit, so wie das Platschen, wenn sie vor
Menschen fliehen. Wie die meisten Amphi-
bien, vermehren sie sich unter Wasser und
leben dort als Kaulquappen.

View file

@ -0,0 +1,8 @@
Grizzlybären sind große, territoriale
Allesfresser. Man findet sie nach
Beeren suchend in kälteren Wäldern.
Wenn man ihnen zu nahe kommt, wehren sie
durch Hiebe mit ihren Pranken, die
riesige Krallen haben. Aus ihrem Fell
kann man warme Mäntel machen, die gut vor
Kälte schützen.

View file

@ -0,0 +1,13 @@
Lieber Entdecker!
In diesem Buch kannst du alle Tiere, die
du in dieser Welt triffst, eintragen.
Wenn du ein Tier findest, das du
eintragen möchtest, mache einfach einen
Rechtsklick darauf.
Dieses Buch zeigt dir dann nützliche
Informationen zum Tier. Zum Beispiel wo
es vorkommt, ob und wie man es zähmen
kann und beschreibt sein Verhalten.
Viel Erfolg!

View file

@ -0,0 +1,10 @@
Pferde sind große Säugetiere, die in der
offenen Prärie leben. Da sie lange Strecken
schnell laufen können ohne müde zu werden,
sind sie ideale Reittiere. Um sie zu zähmen
muss man aufsitzen und seinen Blick an den
des Pferdes ausrichten. Gezähmte Pferde
kann man satteln und reiten. Nicht alle
Pferde sind gleich. Manche können weit
springen. Andere schneller laufen. Diese
Eigenschaften werden an Kinder vererbt.

View file

@ -0,0 +1,5 @@
Opossums sind einzigartige Beuteltiere
und ein wichtiger Teil ihres Ökosystems.
Opossums helfen Plagen wie Nagetiere oder
Insekten unter Kontrolle zu behalten
damit Pflanzen und Getreide gedeihen

View file

@ -0,0 +1,6 @@
Eulen sind nachtaktive Raubvögel, die man
am häufgsten in Wäldern findet. Eulen
können unglaublichh effizient Nagetier-
populationen klein halten. Ihr lautloses
Fliegen ermöglich ihnen von ihrer Beute
unentdeckt zuschlagen zu können.

View file

@ -0,0 +1,8 @@
Schweine sind mittelgroße, in Wäldern
lebende Säugetiere. Männchen und Weibchen
lassen sich durch ihre Hauer, mit denen
sie den Boden durchwühlen unterscheiden.
Da sie beim Durchwühlen rücksichtslos
sind, ist es am Besten, sie von Getreide
fernzuhalten, wenn man sie züchten
möchte.

View file

@ -0,0 +1,6 @@
Ratten sind eine Plage auf den meisten
Bauernhöfen. Sie nagen alles Getreide
weg und kommen oft in großen Gruppen vor.
Sie suchen sich auch in unversperrte
Lagerräume um sich über Nahrungsmittel
herzumachen.

View file

@ -0,0 +1,5 @@
Rentiere kommen in arktischen Biomen am
häufigsten vor. Sie leben in großen
Herden und weiden Gras. In kalten
Gebieten sind sie eine hervorragende
Zucht-Alternative zu Rindern.

View file

@ -0,0 +1,5 @@
Schafe sind mittelgroße Säugetiere, die
in mittelgroßen Herden in der offenen
Prärie leben. Obwohl man sie wegen
ihres Fleisches züchten kann, werden sie
meistens wegen ihrer Wolle gehalten.

View file

@ -0,0 +1,5 @@
Tropische Fische ziehen in Schwärmen
durch Korallenriffe. Ihre schillernden
Farben sind eine Augenweide in den
Meeren. Aber sie eignen sich nicht als
Nahrung und sind auch sonst nicht nützlich.

View file

@ -0,0 +1,8 @@
Truthühner sind flugunfähige Vögel, die
man in kälteren Kiefernwäldern leben.
Von ihrer Nützlichkeit sind sie mit
Hühnern vergleichbar, liefern beim
Schlachten aber mehr Fleisch. Ähnlich wie
Rentiere sind sie eine gute Alternative
zu anderen Tieren, die nicht in kälteren
Gebieten leben.

View file

@ -0,0 +1,6 @@
Wölfe sind relativ große Hundeähnliche
Tiere, die meist in Kiefernwäldern leben.
Mit Schaffleisch sind sie leicht zu
zähmen und sie sind treue Gefährten. Sie
horchen auf verschiedene Kommandos und
helfen in Kämpfen.

67
locale/template.txt Normal file
View file

@ -0,0 +1,67 @@
# textdomain: animalia
Animal Crate=
Animal Net=
Bat=
Bear Pelt=
Bear Pelt Coat=
Bucket of Guano=
Bucket of Milk=
Cat=
Cat Toy=
Chicken Egg=
Chicken=
Coniferous Forest=
Contains a @1=
Cooked Mutton=
Cooked Porkchop=
Cooked Poultry=
Cooked Rat=
Cow=
Deciduous Forest=
Deciduous Forest Ocean=
Deciduous Forest Shore=
Feather=
Female=
Fox=
Fried @1=
Frog=
Grassland=
Grizzly Bear=
Guano=
Horse=
Icesheet Ocean=
Lasso=
Leather=
Male=
Nametag=
Opossum=
Owl=
Pig=
Rainforest Ocean=
Rainforest=
Rainforest Swamp=
Rat=
Raw Beef=
Raw Mutton=
Raw Porkchop=
Raw Poultry=
Raw Rat=
Raw Venison=
Reindeer=
Saddle=
Savanna Ocean=
Savanna=
Shears=
Sheep=
Song Bird Egg=
Song Bird Nest=
Song Bird=
Steak=
This @1 already contains a @2=
Tropical Fish=
Trust=
Tundra Ocean=
Turkey Egg=
Turkey=
Venison Steak=
Wolf=