diff --git a/mods/3d_armor/3d_armor/api.lua b/mods/3d_armor/3d_armor/api.lua index d6c906f..808c623 100644 --- a/mods/3d_armor/3d_armor/api.lua +++ b/mods/3d_armor/3d_armor/api.lua @@ -501,7 +501,7 @@ armor.get_player_skin = function(self, name) elseif self.skin_mod == "wardrobe" and wardrobe.playerSkins and wardrobe.playerSkins[name] then return wardrobe.playerSkins[name] end -local gender = player:get_meta():get_string("gender") + local gender = player:get_meta():get_string("gender") return player_api.registered_models[player_api.get_gender_model(gender)].textures[1] end diff --git a/mods/3d_armor/3d_armor/init.lua b/mods/3d_armor/3d_armor/init.lua index c3e83ae..b6c3458 100644 --- a/mods/3d_armor/3d_armor/init.lua +++ b/mods/3d_armor/3d_armor/init.lua @@ -65,7 +65,7 @@ end if minetest.get_modpath("technic") then armor.formspec = armor.formspec.. - "label[5,2.5;"..F(S("Radiation"))..": armor_group_radiation]" + "label[5,2.5;"..F(S("Radiation"))..": armor_group_radiation]" armor:register_armor_group("radiation") end local skin_mods = {"skins", "u_skins", "simple_skins", "wardrobe"} @@ -94,9 +94,9 @@ dofile(modpath.."/armor.lua") armor.formspec = armor.formspec.. "label[5,1;"..F(S("Level"))..": armor_level]".. - "label[5,1.5;"..F(S("Heal"))..": armor_attr_heal]" + "label[5,1.5;"..F(S("Heal"))..": armor_attr_heal]" if armor.config.fire_protect then - armor.formspec = armor.formspec.."label[5,2;"..F(S("Fire"))..": armor_attr_fire]" + armor.formspec = armor.formspec.."label[5,2;"..F(S("Fire"))..": armor_attr_fire]" end armor:register_on_damage(function(player, index, stack) local name = player:get_player_name() @@ -192,6 +192,9 @@ local function init_player_armor(initplayer) armor:set_player_armor(player) end, allow_put = function(inv, listname, index, put_stack, player) + if player:get_player_name() ~= name then + return 0 + end local element = armor:get_element(put_stack:get_name()) if not element then return 0 @@ -207,9 +210,15 @@ local function init_player_armor(initplayer) return 1 end, allow_take = function(inv, listname, index, stack, player) + if player:get_player_name() ~= name then + return 0 + end return stack:get_count() end, allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + if player:get_player_name() ~= name then + return 0 + end return count end, }, name) @@ -308,7 +317,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if not name then return end - local player_name = player:get_player_name() + local player_name = player:get_player_name() for field, _ in pairs(fields) do if string.find(field, "skins_set") then armor:update_skin(player_name) diff --git a/mods/beauty_pack b/mods/beauty_pack new file mode 160000 index 0000000..a6777dc --- /dev/null +++ b/mods/beauty_pack @@ -0,0 +1 @@ +Subproject commit a6777dc539625ff863c73cecfb9addffb12825db diff --git a/mods/minetest_game/beds/api.lua b/mods/minetest_game/beds/api.lua index cab2def..d049440 100644 --- a/mods/minetest_game/beds/api.lua +++ b/mods/minetest_game/beds/api.lua @@ -155,7 +155,8 @@ function beds.register_bed(name, def) paramtype2 = "facedir", is_ground_content = false, pointable = false, - groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 2}, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 2, + not_in_creative_inventory = 1}, sounds = def.sounds or default.node_sound_wood_defaults(), drop = name .. "_bottom", node_box = { diff --git a/mods/minetest_game/beds/functions.lua b/mods/minetest_game/beds/functions.lua index 1e12a7d..933a6e8 100644 --- a/mods/minetest_game/beds/functions.lua +++ b/mods/minetest_game/beds/functions.lua @@ -75,7 +75,7 @@ local function lay_down(player, pos, bed_pos, state, skip) player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) player:set_look_horizontal(math.random(1, 180) / 100) player_api.player_attached[name] = false - player:set_physics_override(1, 1, 1) + player:set_physics_override({speed = 1, jump = 1, gravity = 1}) hud_flags.wielditem = true player_api.set_animation(player, "stand" , 30) @@ -91,7 +91,7 @@ local function lay_down(player, pos, bed_pos, state, skip) end -- Check if player is moving - if vector.length(player:get_player_velocity()) > 0.001 then + if vector.length(player:get_velocity()) > 0.001 then minetest.chat_send_player(name, S("You have to stop moving before going to bed!")) return false end @@ -112,7 +112,7 @@ local function lay_down(player, pos, bed_pos, state, skip) y = bed_pos.y + 0.07, z = bed_pos.z + dir.z / 2 } - player:set_physics_override(0, 0, 0) + player:set_physics_override({speed = 0, jump = 0, gravity = 0}) player:set_pos(p) player_api.player_attached[name] = true hud_flags.wielditem = false @@ -284,4 +284,3 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end end end) - diff --git a/mods/minetest_game/beds/locale/beds.sk.tr b/mods/minetest_game/beds/locale/beds.sk.tr new file mode 100644 index 0000000..353ae26 --- /dev/null +++ b/mods/minetest_game/beds/locale/beds.sk.tr @@ -0,0 +1,8 @@ +# textdomain: beds +Leave Bed=Opusti posteľ +Good morning.=Dobré ráno. +@1 of @2 players are in bed=@1 z @2 hráčov sú v posteli +Force night skip=Nútene preskočiť noc +You can only sleep at night.=Môžeš spať len v noci. +Fancy Bed=Pekná posteľ +Simple Bed=Jednoduchá posteľ diff --git a/mods/minetest_game/binoculars/locale/binoculars.sk.tr b/mods/minetest_game/binoculars/locale/binoculars.sk.tr new file mode 100644 index 0000000..5008311 --- /dev/null +++ b/mods/minetest_game/binoculars/locale/binoculars.sk.tr @@ -0,0 +1,3 @@ +# textdomain: binoculars +Binoculars=Ďalekohľad +Use with 'Zoom' key=Použi s klávesou "Priblíž" diff --git a/mods/minetest_game/boats/locale/boats.sk.tr b/mods/minetest_game/boats/locale/boats.sk.tr new file mode 100644 index 0000000..b6ed722 --- /dev/null +++ b/mods/minetest_game/boats/locale/boats.sk.tr @@ -0,0 +1,4 @@ +# textdomain: boats +Boat cruise mode on=Cestovný režim loďky zapnutý +Boat cruise mode off=Cestovný režim loďky vypnutý +Boat=Loďka diff --git a/mods/minetest_game/bones/locale/bones.sk.tr b/mods/minetest_game/bones/locale/bones.sk.tr new file mode 100644 index 0000000..a32c17d --- /dev/null +++ b/mods/minetest_game/bones/locale/bones.sk.tr @@ -0,0 +1,8 @@ +# textdomain: bones +Bones=Kosti +@1's old bones=Staré kosti hráča @1 +@1 died at @2.=@1 zomrel na pozícií @2. +@1 died at @2, and dropped their inventory.=@1 zomrel na pozícií @2 a vysypal svoj inventár. +@1 died at @2, and bones were placed.=@1 zomrel na pozícií @2 a ostali po ňom kosti. +@1's fresh bones=Čerstvé kosti hráča @1 +@1's bones=Kosti hráča @1 diff --git a/mods/minetest_game/bucket/locale/bucket.sk.tr b/mods/minetest_game/bucket/locale/bucket.sk.tr new file mode 100644 index 0000000..0327b20 --- /dev/null +++ b/mods/minetest_game/bucket/locale/bucket.sk.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Prázdne vedro +Water Bucket=Vedro s vodou +River Water Bucket=Vedro s vodou z rieky +Lava Bucket=Vedro s lávou diff --git a/mods/minetest_game/butterflies/locale/butterflies.sk.tr b/mods/minetest_game/butterflies/locale/butterflies.sk.tr new file mode 100644 index 0000000..c3086e7 --- /dev/null +++ b/mods/minetest_game/butterflies/locale/butterflies.sk.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Biely motýlik +Red Butterfly=Červený motýlik +Violet Butterfly=Fialový motýlik diff --git a/mods/minetest_game/carts/locale/carts.sk.tr b/mods/minetest_game/carts/locale/carts.sk.tr new file mode 100644 index 0000000..6303a49 --- /dev/null +++ b/mods/minetest_game/carts/locale/carts.sk.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Vozík +(Sneak+Click to pick up)=(Zakrádanie sa + Klik pre zdvihnutie) +Rail=Koľajnica +Powered Rail=Koľajnica s pohonom +Brake Rail=Brzdná koľajnica diff --git a/mods/minetest_game/creative/locale/creative.sk.tr b/mods/minetest_game/creative/locale/creative.sk.tr new file mode 100644 index 0000000..935c780 --- /dev/null +++ b/mods/minetest_game/creative/locale/creative.sk.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Povolí hráčovi použivať kreatívny inventár +Search=Hľadaj +Reset=Vrátiť späť +Previous page=Predchádzajúca stránka +Next page=Nasledujúca stránka +All=Všetko +Nodes=Kocky +Tools=Nástroje +Items=Veci diff --git a/mods/minetest_game/default/locale/default.ru.tr b/mods/minetest_game/default/locale/default.ru.tr index 214f669..71a032f 100644 --- a/mods/minetest_game/default/locale/default.ru.tr +++ b/mods/minetest_game/default/locale/default.ru.tr @@ -19,17 +19,17 @@ Mese Crystal=Кристалл Месе Gold Lump=Кусок Золота Diamond=Алмаз Clay Lump=Ком Глины -Steel Ingot=Железный Брусок -Copper Ingot=Медный Брусок -Tin Ingot=Оловянный Брусок -Bronze Ingot=Бронзовый Брусок -Gold Ingot=Золотой Брусок +Steel Ingot=Железный Слиток +Copper Ingot=Медный Слиток +Tin Ingot=Оловянный Слиток +Bronze Ingot=Бронзовый Слиток +Gold Ingot=Золотой Слиток Mese Crystal Fragment=Осколок Кристалла Месе Clay Brick=Глиняный Кирпич Obsidian Shard=Обсидиановый Осколок -Flint=Огниво +Flint=Кремень Blueberries=Черника -Furnace is empty=Печь пустая +Furnace is empty=Печь пуста 100% (output full)=100% (полное приготовление) @1%=@1% Empty=Пустое @@ -80,29 +80,29 @@ Snow=Снег Snow Block=Снежный Блок Ice=Лёд Cave Ice=Пещерный Лёд -Apple Tree=Яблоневый Ствол -Apple Wood Planks=Яблоневые Деревянные Доски -Apple Tree Sapling=Яблоневый Саженец +Apple Tree=Ствол Яблони +Apple Wood Planks=Яблоневые Доски +Apple Tree Sapling=Саженец Яблони Apple Tree Leaves=Яблоневая Листва Apple=Яблоко Apple Marker=Яблочная Метка Jungle Tree=Ствол Тропического Дерева -Jungle Wood Planks=Деревянные Доски Тропического Дерева +Jungle Wood Planks=Доски из Тропического Дерева Jungle Tree Leaves=Листва Тропического Дерева Jungle Tree Sapling=Саженец Тропического Дерева Emergent Jungle Tree Sapling=Выросший Саженец Тропического Дерева Pine Tree=Сосновый Ствол -Pine Wood Planks=Сосновые Деревянные Доски +Pine Wood Planks=Сосновые Доски Pine Needles=Сосновая Хвоя -Pine Tree Sapling=Сосновый Саженец +Pine Tree Sapling=Саженец Сосны Acacia Tree=Ствол Акации -Acacia Wood Planks=Деревянные Доски Акации +Acacia Wood Planks=Доски Акации Acacia Tree Leaves=Листва Акации Acacia Tree Sapling=Саженец Акации -Aspen Tree=Осиновый Ствол -Aspen Wood Planks=Осиновые Деревянные Доски +Aspen Tree=Ствол Осины +Aspen Wood Planks=Осиновые Доски Aspen Tree Leaves=Осиновая Листва -Aspen Tree Sapling=Осиновый Саженец +Aspen Tree Sapling=Саженец Осины Coal Ore=Уголь Coal Block=Угольный Блок Iron Ore=Железная Руда @@ -119,7 +119,7 @@ Gold Block=Золотой Блок Diamond Ore=Алмаз Diamond Block=Алмазный Блок Cactus=Кактус -Large Cactus Seedling=Кактусовый Саженец +Large Cactus Seedling=Саженец Кактуса Papyrus=Папирус Dry Shrub=Сухой Куст Jungle Grass=Тропическая Трава @@ -127,23 +127,23 @@ Grass=Трава Dry Grass=Сухая Трава Fern=Папоротник Marram Grass=Песколюб -Bush Stem=Ствол Яблочного Деревца -Bush Leaves=Листья Яблочного Деревца -Bush Sapling=Саженца яблочного деревца +Bush Stem=Стебли Куста +Bush Leaves=Листья Куста +Bush Sapling=Саженец Куста Blueberry Bush Leaves with Berries=Куст Черники с Ягодами Blueberry Bush Leaves=Куст Черники -Blueberry Bush Sapling=Саженца Куста Черники -Acacia Bush Stem=Ствол Деревца Акации -Acacia Bush Leaves=Листья Деревца Акации -Acacia Bush Sapling=Саженца Деревца Акации -Pine Bush Stem=Сосновое Деревце -Pine Bush Needles=Хвоя Соснового Деревца -Pine Bush Sapling=Саженца Соснового Деревца +Blueberry Bush Sapling=Саженец Куста Черники +Acacia Bush Stem=Стебли Куста Акации +Acacia Bush Leaves=Листья Куста Акации +Acacia Bush Sapling=Саженец Куста Акации +Pine Bush Stem=Стебли Хвойного Куста +Pine Bush Needles=Хвоя Куста +Pine Bush Sapling=Саженец Хвойного Куста Kelp=Ламинария Green Coral=Зеленый Коралл Pink Coral=Розовый Коралл Cyan Coral=Голубой Коралл -Brown Coral=Бурый Коралл +Brown Coral=Коричневый Коралл Orange Coral=Оранжевый Коралл Coral Skeleton=Коралловый Остов Water Source=Водный Источник diff --git a/mods/minetest_game/default/locale/default.sk.tr b/mods/minetest_game/default/locale/default.sk.tr new file mode 100644 index 0000000..8e8cfcc --- /dev/null +++ b/mods/minetest_game/default/locale/default.sk.tr @@ -0,0 +1,211 @@ +# textdomain: default +Locked Chest=Uzamknutá truhlica +Locked Chest (owned by @1)=Uzamknutá truhlica (Vlastník - @1) +You do not own this chest.=Túto truhlicu nevlastníš. +a locked chest=zamknutá truhlica +Chest=Truhlica +Stick=Palica +Paper=Papier +"@1" by @2=„@1“ z @2 +Book=Kniha +Book with Text=Kniha s textom +Skeleton Key=Základný kľuč +Key to @1's @2=Kľuč pre @2 hráča @1 +Coal Lump=Hruda uhlia +Iron Lump=Hruda železa +Copper Lump=Hruda medi +Tin Lump=Hruda cínu +Mese Crystal=Mese Krištáľ +Gold Lump=Hruda zlata +Diamond=Diamant +Clay Lump=Hruda ílu +Steel Ingot=Oceľový ingot +Copper Ingot=Medený ingot +Tin Ingot=Cínový ingot +Bronze Ingot=Bronzový ingot +Gold Ingot=Zlatý ingot +Mese Crystal Fragment=Fragment Mese krištáľu +Clay Brick=Nepálená tehla +Obsidian Shard=Úlomok obsidiánu +Flint=Kresací kamienok +Blueberries=Čučoriedky +Furnace is empty=Pec je prázdna +100% (output full)=100% (Výstup je plný) +@1%=@1% +Empty=Prázdne +Not cookable=Nie je variteľné +Furnace active=Pec je aktívna +Furnace inactive=Pec je neaktívna +(Item: @1; Fuel: @2)=(Vec: @1; Palivo: @2) +Furnace=Pec +Stone=Kameň +Cobblestone=Dlažbový kameň +Stone Brick=Tehla z kameňa +Stone Block=Blok kameňa +Mossy Cobblestone=Dlažbový kameň obrastený machom +Desert Stone=Púštny kameň +Desert Cobblestone=Púštny dlažbový kameň +Desert Stone Brick=Tehla z púštneho kameňa +Desert Stone Block=Blok púštneho kameňa +Sandstone=Pieskovec +Sandstone Brick=Tehla z pieskovca +Sandstone Block=Blok pieskovca +Desert Sandstone=Púštny pieskovec +Desert Sandstone Brick=Tehla z púštneho pieskovca +Desert Sandstone Block=Blok púštneho pieskovca +Silver Sandstone=Strieborný pieskovec +Silver Sandstone Brick=Tehla zo strieborného pieskovca +Silver Sandstone Block=Blok strieborného pieskovca +Obsidian=Obsidián +Obsidian Brick=Tehla z obsidiánu +Obsidian Block=Blok obsidiánu +Dirt=Hlina +Dirt with Grass=Hlina s trávou +Dirt with Grass and Footsteps=Hlina s trávou a stopami +Dirt with Savanna Grass=Hlina s trávou zo savany +Dirt with Snow=Hlina so snehom +Dirt with Rainforest Litter=Hlina s povrchom dažďového pralesa +Dirt with Coniferous Litter=Hlina s ihličnatým povrchom +Savanna Dirt=Hlina zo savany +Savanna Dirt with Savanna Grass=Hlina zo savany s trávou +Permafrost=Permafrost +Permafrost with Stones=Permafrost s kameňmi +Permafrost with Moss=Permafrost s machom +Sand=Piesok +Desert Sand=Púštny piesok +Silver Sand=Strieborný piesok +Gravel=Štrk +Clay=Íl +Snow=Sneh +Snow Block=Blok snehu +Ice=Ľad +Cave Ice=Jaskynný ľad +Apple Tree=Jabloň +Apple Wood Planks=Drevené dosky z jablone +Apple Tree Sapling=Stromček jablone +Apple Tree Leaves=Listy z jablone +Apple=Jablko +Apple Marker=Jablková značka +Jungle Tree=Ďungľový strom +Jungle Wood Planks=Drevené dosky z džungľového stromu +Jungle Tree Leaves=Listy z džungľového stromu +Jungle Tree Sapling=Džungľový stromček +Emergent Jungle Tree Sapling=Vznikajúci džungľový stromček +Pine Tree=Borovica +Pine Wood Planks=Drevené dosky z borovice +Pine Needles=Ihličie z borovice +Pine Tree Sapling=Borovicový stromček +Acacia Tree=Akácia +Acacia Wood Planks=Drevené dosky z akácie +Acacia Tree Leaves=Listy z akácie +Acacia Tree Sapling=Stromček akácie +Aspen Tree=Osika +Aspen Wood Planks=Drevené dosky z osiky +Aspen Tree Leaves=Listy z osiky +Aspen Tree Sapling=Stromček osiky +Coal Ore=Uhoľná ruda +Coal Block=Blok uhlia +Iron Ore=Železná ruda +Steel Block=Blok ocele +Copper Ore=Medená ruda +Copper Block=Blok medi +Tin Ore=Cínová ruda +Tin Block=Blok cínu +Bronze Block=Blok bronzu +Mese Ore=Mese Ruda +Mese Block=Blok Mese +Gold Ore=Zlatá ruda +Gold Block=Blok zlata +Diamond Ore=Diamantová ruda +Diamond Block=Blok diamantu +Cactus=Kaktus +Large Cactus Seedling=Vaľká sadenica kaktusu +Papyrus=Papyrus +Dry Shrub=Suchý ker +Jungle Grass=Džungľová tráva +Grass=Tráva +Savanna Grass=Tráva zo savany +Fern=Papraď +Marram Grass=Pobrežná tráva +Bush Stem=Stonka z kríka +Bush Leaves=Listy z kríka +Bush Sapling=Sadenica kríka +Blueberry Bush Leaves with Berries=Čučoriedkové listy s čučoriedkami +Blueberry Bush Leaves=Čučoriedkové listy +Blueberry Bush Sapling=Sadenica čučoriedky +Acacia Bush Stem=Stonka z kríka akácie +Acacia Bush Leaves=Listy z kríka akácie +Acacia Bush Sapling=Sadenica kríka akácie +Pine Bush Stem=Stonka kríka borovice +Pine Bush Needles=Ihličie kríka borovice +Pine Bush Sapling=Sadenica kríka borovice +Kelp=Riasa +Green Coral=Zelený koral +Pink Coral=Ružový koral +Cyan Coral=Tyrkysový koral +Brown Coral=Hnedý koral +Orange Coral=Oranžový koral +Coral Skeleton=Koralová kostra +Water Source=Zdroj vody +Flowing Water=Tečúca voda +River Water Source=Zdroj riečnej voda +Flowing River Water=Tečúca riečna voda +Lava Source=Zdroj lávy +Flowing Lava=Tečúca láva +Empty Bookshelf=Prázdna knižnica +Bookshelf (@1 written, @2 empty books)=Knižnica (@1 popísané, @2 prázdne knihy) +Bookshelf=Knižnica +Text too long=Text je príliš dlhý +Wooden Sign=Drevená tabuľka +Steel Sign=Oceľová tabuľka +Wooden Ladder=Drevený rebrík +Steel Ladder=Oceľový rebrík +Apple Wood Fence=Drevený plot z jablone +Acacia Wood Fence=Drevený plot z akácie +Jungle Wood Fence=Drevený plot z džungľového dreva +Pine Wood Fence=Drevený plot z borovice +Aspen Wood Fence=Drevený plot z osiky +Apple Wood Fence Rail=Drevené zábradlie z jablone +Acacia Wood Fence Rail=Drevené zábradlie z akácie +Jungle Wood Fence Rail=Drevené zábradlie z džungľového dreva +Pine Wood Fence Rail=Drevené zábradlie z borovice +Aspen Wood Fence Rail=Drevené zábradlie z osiky +Glass=Sklo +Obsidian Glass=Obsidiánové sklo +Brick Block=Blok z tehál +Mese Lamp=Mese lampa +Mese Post Light=Mese stĺpová lampa +Cloud=Oblak +Wooden Pickaxe=Drevený krompáč +Stone Pickaxe=Kamenný krompáč +Bronze Pickaxe=Bronzový krompáč +Steel Pickaxe=Oceľový krompáč +Mese Pickaxe=Mese krompáč +Diamond Pickaxe=Diamantový krompáč +Wooden Shovel=Drevená lopata +Stone Shovel=Kamenná lopata +Bronze Shovel=Bronzová lopata +Steel Shovel=Oceľová lopata +Mese Shovel=Mese lopata +Diamond Shovel=Diamantová lopata +Wooden Axe=Drevená sekera +Stone Axe=Kamenná sekera +Bronze Axe=Bronzová sekera +Steel Axe=Oceľová sekera +Mese Axe=Mese sekera +Diamond Axe=Diamantová sekera +Wooden Sword=Drevený meč +Stone Sword=Kamenný meč +Bronze Sword=Bronzový meč +Steel Sword=Oceľový meč +Mese Sword=Mese meč +Diamond Sword=Diamantový meč +Key=Kľúč +Torch=Fakľa +@1 will intersect protection on growth.=@1 prekročí pri raste chránenú zónu. +Title:=Názov: +Contents:=Obsah: +Save=Uložiť +by @1=od @1 +Page @1 of @2=Strana @1 z @2 +"@1"=„@1“ diff --git a/mods/minetest_game/default/tools.lua b/mods/minetest_game/default/tools.lua index e3c974c..44468c5 100644 --- a/mods/minetest_game/default/tools.lua +++ b/mods/minetest_game/default/tools.lua @@ -4,9 +4,8 @@ local S = default.get_translator -- The hand -minetest.register_item(":", { - type = "none", - wield_image = "wieldhand.png", +-- Override the hand item registered in the engine in builtin/game/register.lua +minetest.override_item("", { wield_scale = {x=1,y=1,z=2.5}, tool_capabilities = { full_punch_interval = 0.9, diff --git a/mods/minetest_game/doors/locale/doors.sk.tr b/mods/minetest_game/doors/locale/doors.sk.tr new file mode 100644 index 0000000..e6943ac --- /dev/null +++ b/mods/minetest_game/doors/locale/doors.sk.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Skrytá časť dverí +Owned by @1=Vlastník - @1 +You do not own this locked door.=Nevlastníš tieto uzamknuté dvere. +a locked door=uzamknuté dvere +Wooden Door=Drevené dvere +Steel Door=Oceľové dvere +Glass Door=Sklenené dvere +Obsidian Glass Door=Obsidiánové sklenené dvere +You do not own this trapdoor.=Nevlastníš tieto padacie dvere. +a locked trapdoor=uzamknuté padacie dvere +Wooden Trapdoor=Drevené padacie dvere +Steel Trapdoor=Oceľové padacie dvere +Apple Wood Fence Gate=Drevený plot z jablone +Acacia Wood Fence Gate=Drevený plot z akácie +Jungle Wood Fence Gate=Drevený plot z džungľového dreva +Pine Wood Fence Gate=Drevený plot z borovice +Aspen Wood Fence Gate=Drevený plot z osiky diff --git a/mods/minetest_game/dye/locale/dye.sk.tr b/mods/minetest_game/dye/locale/dye.sk.tr new file mode 100644 index 0000000..625804c --- /dev/null +++ b/mods/minetest_game/dye/locale/dye.sk.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Biele farbivo +Grey Dye=Šedé farbivo +Dark Grey Dye=Tmavo šedé farbivo +Black Dye=Čierne farbivo +Violet Dye=Fialové farbivo +Blue Dye=Modré farbivo +Cyan Dye=Tyrkysové farbivo +Dark Green Dye=Tmavozelené farbivo +Green Dye=Zelené farbivo +Yellow Dye=Žlté farbivo +Brown Dye=Hnedé farbivo +Orange Dye=Oranžové farbivo +Red Dye=Červené farbivo +Magenta Dye=Purpurové farbivo +Pink Dye=Ružové farbivo diff --git a/mods/minetest_game/farming/locale/farming.sk.tr b/mods/minetest_game/farming/locale/farming.sk.tr new file mode 100644 index 0000000..e956601 --- /dev/null +++ b/mods/minetest_game/farming/locale/farming.sk.tr @@ -0,0 +1,28 @@ +# textdomain: farming +Wooden Hoe=Drevená motyka +Stone Hoe=Kamenná motyka +Steel Hoe=Oceľová motyka +Bronze Hoe=Bronzová motyka +Mese Hoe=Mese motyka +Diamond Hoe=Diamantová motyka +Wheat Seed=Pšeničné semienko +Flour=Múka +Bread=Chlieb +Cotton Seed=Bavlnené semienko +String=Šňúra +Soil=Zemina +Wet Soil=Mokrá zemina +Savanna Soil=Zemina zo savany +Wet Savanna Soil=Morká zemina zo savany +Desert Sand Soil=Zemina s púšte +Wet Desert Sand Soil=Mokrá zemina s púšte +Straw=Slama +Straw Stair=Slamenné schody +Straw Slab=Slamenná doska +Inner Straw Stair=Vnútorné slamenné schodisko +Outer Straw Stair=Vonkajšie slamenné schodisko +Wheat=Pšenica +Cotton=Bavlna +Hoe=Motyka +Seed=Semienko +Wild Cotton=Divoká bavlna diff --git a/mods/minetest_game/fire/locale/fire.ru.tr b/mods/minetest_game/fire/locale/fire.ru.tr index e10813b..3f4f3b3 100644 --- a/mods/minetest_game/fire/locale/fire.ru.tr +++ b/mods/minetest_game/fire/locale/fire.ru.tr @@ -1,3 +1,3 @@ # textdomain: fire Permanent Flame=Вечный Огонь -Flint and Steel=Огниво и Сталь +Flint and Steel=Огниво diff --git a/mods/minetest_game/fire/locale/fire.sk.tr b/mods/minetest_game/fire/locale/fire.sk.tr new file mode 100644 index 0000000..125c860 --- /dev/null +++ b/mods/minetest_game/fire/locale/fire.sk.tr @@ -0,0 +1,4 @@ +# textdomain: fire +Fire=Oheň +Permanent Fire=Stály oheň +Flint and Steel=Pazúrik a ocieľka diff --git a/mods/minetest_game/fireflies/locale/fireflies.sk.tr b/mods/minetest_game/fireflies/locale/fireflies.sk.tr new file mode 100644 index 0000000..b68674d --- /dev/null +++ b/mods/minetest_game/fireflies/locale/fireflies.sk.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Svetluška +Hidden Firefly=Skrytá svetluška +Bug Net=Sieťka na hmyz +Firefly in a Bottle=Svetluška vo fľaši diff --git a/mods/minetest_game/flowers/locale/flowers.sk.tr b/mods/minetest_game/flowers/locale/flowers.sk.tr new file mode 100644 index 0000000..75d4ae1 --- /dev/null +++ b/mods/minetest_game/flowers/locale/flowers.sk.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Červená ruža +Orange Tulip=Oranžový tulipán +Yellow Dandelion=Žltá púpava +Green Chrysanthemum=Zelená chryzantéma +Blue Geranium=Modrý muškát +Viola=Fialka +White Dandelion=Biela púpava +Black Tulip=Čierny tulipán +Red Mushroom=Červená huba +Brown Mushroom=Hnedá huba +Waterlily=Lekno diff --git a/mods/minetest_game/game_commands/locale/game_commands.sk.tr b/mods/minetest_game/game_commands/locale/game_commands.sk.tr new file mode 100644 index 0000000..f7d153a --- /dev/null +++ b/mods/minetest_game/game_commands/locale/game_commands.sk.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Samovražda pre znovuzrodenie +No static_spawnpoint defined=Nie je definované stále miesto znovuzrodenia +You need to be online to be killed!=Musíš byť online, aby si mohol byť zabitý! diff --git a/mods/minetest_game/map/locale/map.sk.tr b/mods/minetest_game/map/locale/map.sk.tr new file mode 100644 index 0000000..2016c85 --- /dev/null +++ b/mods/minetest_game/map/locale/map.sk.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kartografická súprava +Use with 'Minimap' key=Použi klávesou 'Prepni minimpu' diff --git a/mods/minetest_game/player_api/api.lua b/mods/minetest_game/player_api/api.lua index 39fbf03..c9de740 100644 --- a/mods/minetest_game/player_api/api.lua +++ b/mods/minetest_game/player_api/api.lua @@ -71,6 +71,31 @@ function player_api.get_gender_model(gender) return model end +minetest.register_chatcommand("toggle_gender", { + description = S("Change the gender, from male to female or viceversa"), + func = function(name, param) + local player = minetest.get_player_by_name(name) + local meta = player:get_meta() + local old_gender = player_api.get_gender(player) + if old_gender then + local new_gender + if old_gender == "male" then + new_gender = "female" + else + new_gender = "male" + end + meta:set_string("gender", new_gender) + player_api.set_model(player, player_api.get_gender_model(new_gender)) + local gender_model = player_api.get_gender_model(new_gender) + local cloth = player_api.compose_cloth(player) + player_api.registered_models[gender_model].textures[1] = cloth + player_api.set_textures(player, models[gender_model].textures) + local new_gender_cap = new_gender:gsub("^%l", string.upper) + minetest.chat_send_player(name, S("Your gender is changed to").." "..S(new_gender_cap)..".") + end + end, +}) + -- Called when a player's appearance needs to be updated function player_api.set_model(player, model_name) local name = player:get_player_name() @@ -218,8 +243,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) else gender = player_api.set_gender(player, "random") end - player_api.set_cloths(player, gender) - local cloth = player_api.compose_cloth(player, gender) + player_api.set_cloths(player) + local cloth = player_api.compose_cloth(player) local gender_model = player_api.get_gender_model(gender) player_api.registered_models[gender_model].textures[1] = cloth player_api.set_model(player, gender_model) diff --git a/mods/minetest_game/player_api/cloths.lua b/mods/minetest_game/player_api/cloths.lua index bbfe6d0..e99cafd 100644 --- a/mods/minetest_game/player_api/cloths.lua +++ b/mods/minetest_game/player_api/cloths.lua @@ -16,13 +16,35 @@ function player_api.register_cloth(name, def) if not(def.wield_image) then def.wield_image = def.inventory_image end + local tooltip + if def.groups["cloth"] == 1 then + tooltip = S("Head") + elseif def.groups["cloth"] == 2 then + tooltip = S("Upper") + else + tooltip = S("Lower") + end + tooltip = "(" .. tooltip .. ")" + local gender, gender_color + if def.gender == "male" then + gender = S("Male") + gender_color = "#00baff" + elseif def.gender == "female" then + gender = S("Female") + gender_color = "#ff69b4" + else + gender = S("Unisex") + gender_color = "#9400d3" + end + tooltip = tooltip.."\n".. minetest.colorize(gender_color, gender) minetest.register_craftitem(name, { - description = def.description, + description = def.description .. "\n" .. tooltip, inventory_image = def.inventory_image, wield_image = def.wield_image, stack_max = def.stack_max or 16, _cloth_texture = def.texture, - _cloth_genre = def.genre, + _cloth_preview = def.preview, + _cloth_gender = def.gender, groups = def.groups, }) end @@ -32,7 +54,8 @@ player_api.register_cloth("player_api:cloth_female_upper_default", { inventory_image = "cloth_female_upper_default_inv.png", wield_image = "cloth_female_upper_default.png", texture = "cloth_female_upper_default.png", - genre = "female", + preview = "cloth_female_upper_preview.png", + gender = "female", groups = {cloth = 2}, }) @@ -41,7 +64,8 @@ player_api.register_cloth("player_api:cloth_female_lower_default", { inventory_image = "cloth_female_lower_default_inv.png", wield_image = "cloth_female_lower_default_inv.png", texture = "cloth_female_lower_default.png", - genre = "female", + preview = "cloth_female_lower_preview.png", + gender = "female", groups = {cloth = 3}, }) @@ -50,7 +74,8 @@ player_api.register_cloth("player_api:cloth_female_head_default", { inventory_image = "cloth_female_head_default_inv.png", wield_image = "cloth_female_head_default_inv.png", texture = "cloth_female_head_default.png", - genre = "female", + preview = "cloth_female_head_preview.png", + gender = "female", groups = {cloth = 1}, }) @@ -59,7 +84,8 @@ player_api.register_cloth("player_api:cloth_male_upper_default", { inventory_image = "cloth_male_upper_default_inv.png", wield_image = "cloth_male_upper_default_inv.png", texture = "cloth_male_upper_default.png", - genre = "male", + preview = "cloth_male_upper_preview.png", + gender = "male", groups = {cloth = 2}, }) @@ -68,16 +94,16 @@ player_api.register_cloth("player_api:cloth_male_lower_default", { inventory_image = "cloth_male_lower_default_inv.png", wield_image = "cloth_male_lower_default_inv.png", texture = "cloth_male_lower_default.png", - genre = "male", + preview = "cloth_male_lower_preview.png", + gender = "male", groups = {cloth = 3}, }) -function player_api.set_cloths(player, gender) - +function player_api.set_cloths(player) + local gender = player:get_meta():get_string("gender") --Create the "cloths" inventory - local inv = player:get_inventory() - inv:set_size("cloths", 3) + inv:set_size("cloths", 8) if gender == "male" then inv:add_item("cloths", 'player_api:cloth_male_upper_default') @@ -90,15 +116,14 @@ function player_api.set_cloths(player, gender) end function player_api.compose_cloth(player) - if not(player_api.has_cloths(player)) then - return nil - end - local gender = player:get_meta():get_string("gender") + local meta = player:get_meta() + local gender = meta:get_string("gender") local inv = player:get_inventory() local inv_list = inv:get_list("cloths") local upper_ItemStack local lower_ItemStack local head_ItemStack + local underwear = false for i = 1, #inv_list do local item_name = inv_list[i]:get_name() --minetest.chat_send_all(item_name) @@ -110,8 +135,12 @@ function player_api.compose_cloth(player) upper_ItemStack = minetest.registered_items[item_name]._cloth_texture elseif cloth_type == 3 then lower_ItemStack = minetest.registered_items[item_name]._cloth_texture + underwear = true end end + if not(underwear) then + lower_ItemStack = "cloth_lower_underwear_default.png" + end local base_texture if gender == "male" then base_texture = "player_male_base.png" diff --git a/mods/minetest_game/player_api/locale/player_api.es.tr b/mods/minetest_game/player_api/locale/player_api.es.tr index d71cce1..f982faf 100644 --- a/mods/minetest_game/player_api/locale/player_api.es.tr +++ b/mods/minetest_game/player_api/locale/player_api.es.tr @@ -2,6 +2,12 @@ Select your gender=Selecciona tu género Male=Hombre Female=Mujer +Unisex=Unisex +Change the gender, from male to female or viceversa=Cambiar el género, de hombre a mujer o viceversa +Your gender is changed to=Tu género se ha cambiado a +Head=Cabeza +Upper=Parte superior +Lower=Parte inferior Purple Stripe Summer T-shirt=Camiseta veraniega púrpura a rayas Fresh Summer Denim Shorts=Pantalones vaqueros cortos y frescos Pink Bow=Lazo rosa diff --git a/mods/minetest_game/player_api/models/character.b3d b/mods/minetest_game/player_api/models/character.b3d index 8edbaf6..764197d 100644 Binary files a/mods/minetest_game/player_api/models/character.b3d and b/mods/minetest_game/player_api/models/character.b3d differ diff --git a/mods/minetest_game/player_api/models/character.blend b/mods/minetest_game/player_api/models/character.blend index f0ce411..a32c343 100644 Binary files a/mods/minetest_game/player_api/models/character.blend and b/mods/minetest_game/player_api/models/character.blend differ diff --git a/mods/minetest_game/player_api/models/character.png b/mods/minetest_game/player_api/models/character.png index 5a27788..89959d2 100644 Binary files a/mods/minetest_game/player_api/models/character.png and b/mods/minetest_game/player_api/models/character.png differ diff --git a/mods/minetest_game/player_api/models/female.b3d b/mods/minetest_game/player_api/models/female.b3d index 109ea73..d2f8d0a 100644 Binary files a/mods/minetest_game/player_api/models/female.b3d and b/mods/minetest_game/player_api/models/female.b3d differ diff --git a/mods/minetest_game/player_api/models/female.blend b/mods/minetest_game/player_api/models/female.blend index ed8fb19..9735241 100644 Binary files a/mods/minetest_game/player_api/models/female.blend and b/mods/minetest_game/player_api/models/female.blend differ diff --git a/mods/minetest_game/player_api/models/female.blend1 b/mods/minetest_game/player_api/models/female.blend1 index 3698023..11ef9e0 100644 Binary files a/mods/minetest_game/player_api/models/female.blend1 and b/mods/minetest_game/player_api/models/female.blend1 differ diff --git a/mods/minetest_game/player_api/textures/cloth_female_head_preview.png b/mods/minetest_game/player_api/textures/cloth_female_head_preview.png new file mode 100644 index 0000000..e2c60f6 Binary files /dev/null and b/mods/minetest_game/player_api/textures/cloth_female_head_preview.png differ diff --git a/mods/minetest_game/player_api/textures/cloth_female_lower_preview.png b/mods/minetest_game/player_api/textures/cloth_female_lower_preview.png new file mode 100644 index 0000000..9d63aca Binary files /dev/null and b/mods/minetest_game/player_api/textures/cloth_female_lower_preview.png differ diff --git a/mods/minetest_game/player_api/textures/cloth_female_upper_preview.png b/mods/minetest_game/player_api/textures/cloth_female_upper_preview.png new file mode 100644 index 0000000..641cd32 Binary files /dev/null and b/mods/minetest_game/player_api/textures/cloth_female_upper_preview.png differ diff --git a/mods/minetest_game/player_api/textures/cloth_lower_underwear_default.png b/mods/minetest_game/player_api/textures/cloth_lower_underwear_default.png new file mode 100644 index 0000000..29912ee Binary files /dev/null and b/mods/minetest_game/player_api/textures/cloth_lower_underwear_default.png differ diff --git a/mods/minetest_game/player_api/textures/cloth_lower_underwear_preview.png b/mods/minetest_game/player_api/textures/cloth_lower_underwear_preview.png new file mode 100644 index 0000000..9aa9734 Binary files /dev/null and b/mods/minetest_game/player_api/textures/cloth_lower_underwear_preview.png differ diff --git a/mods/minetest_game/player_api/textures/cloth_male_lower_default_inv.png b/mods/minetest_game/player_api/textures/cloth_male_lower_default_inv.png index 418b40b..aa8f4fc 100644 Binary files a/mods/minetest_game/player_api/textures/cloth_male_lower_default_inv.png and b/mods/minetest_game/player_api/textures/cloth_male_lower_default_inv.png differ diff --git a/mods/minetest_game/player_api/textures/cloth_male_lower_preview.png b/mods/minetest_game/player_api/textures/cloth_male_lower_preview.png new file mode 100644 index 0000000..6b74213 Binary files /dev/null and b/mods/minetest_game/player_api/textures/cloth_male_lower_preview.png differ diff --git a/mods/minetest_game/player_api/textures/cloth_male_upper_preview.png b/mods/minetest_game/player_api/textures/cloth_male_upper_preview.png new file mode 100644 index 0000000..7402ddb Binary files /dev/null and b/mods/minetest_game/player_api/textures/cloth_male_upper_preview.png differ diff --git a/mods/minetest_game/screwdriver/locale/screwdriver.sk.tr b/mods/minetest_game/screwdriver/locale/screwdriver.sk.tr new file mode 100644 index 0000000..74cb417 --- /dev/null +++ b/mods/minetest_game/screwdriver/locale/screwdriver.sk.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Skrutkovač +(left-click rotates face, right-click rotates axis)=(Ľavý klik otáča stranu, pravý klik otáča os) diff --git a/mods/minetest_game/sethome/locale/sethome.sk.tr b/mods/minetest_game/sethome/locale/sethome.sk.tr new file mode 100644 index 0000000..be5233e --- /dev/null +++ b/mods/minetest_game/sethome/locale/sethome.sk.tr @@ -0,0 +1,8 @@ +# textdomain: sethome +Can use /sethome and /home=Môžeš použivať /sethome a /home +Teleport you to your home point=Teleportuj sa domov +Teleported to home!=Teleportovaný domov! +Set a home using /sethome=Nastav si domov použitím /sethome +Set your home point=Nastaviť si domov +Home set!=Domov nastavený! +Player not found!=Hráč nenájdený! diff --git a/mods/minetest_game/sfinv/locale/sfinv.sk.tr b/mods/minetest_game/sfinv/locale/sfinv.sk.tr new file mode 100644 index 0000000..b42c9aa --- /dev/null +++ b/mods/minetest_game/sfinv/locale/sfinv.sk.tr @@ -0,0 +1,2 @@ +# textdomain:sfinv +Crafting=Vytváranie diff --git a/mods/minetest_game/stairs/locale/stairs.sk.tr b/mods/minetest_game/stairs/locale/stairs.sk.tr new file mode 100644 index 0000000..b006fdb --- /dev/null +++ b/mods/minetest_game/stairs/locale/stairs.sk.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Sklenené schod +Glass Slab=Sklenený stupienok +Inner Glass Stair=Vnútorný sklenené schod +Outer Glass Stair=Vonkajší sklenené schod +Obsidian Glass Stair=Obsidiánové sklenené schod +Obsidian Glass Slab=Obsidiánový sklenený stupienok +Inner Obsidian Glass Stair=Vnútorný obsidiánové sklenené schod +Outer Obsidian Glass Stair=Vonkajší obsidiánové sklenené schod +Wooden Stair=Drevené schod +Inner Wooden Stair=Vnútorný drevené schod +Outer Wooden Stair=Vonkajší drevené schod +Wooden Slab=Drevený stupienok +Jungle Wood Stair=Drevené schod z džungľového dreva +Inner Jungle Wood Stair=Vnútorný drevené schod z džungľového dreva +Outer Jungle Wood Stair=Vonkajší drevené schod z džungľového dreva +Jungle Wood Slab=Stupienok z džungľového dreva +Pine Wood Stair=Drevené schod z borovicového dreva +Inner Pine Wood Stair=Vnútorný drevené schod z borovicového dreva +Outer Pine Wood Stair=Vonkajší drevené schod z borovicového dreva +Pine Wood Slab=Stupienok z borovicového dreva +Acacia Wood Stair=Drevené schod z akáciového dreva +Inner Acacia Wood Stair=Vnútorný drevené schod z akáciového dreva +Outer Acacia Wood Stair=Vonkajší drevené schod z akáciového dreva +Acacia Wood Slab=Stupienok z akáciového dreva +Aspen Wood Stair=Drevené schod z osiky +Inner Aspen Wood Stair=Vnútorný drevené schod z osiky +Outer Aspen Wood Stair=Vonkajší drevené schod z osiky +Aspen Wood Slab=Stupienok z osiky +Stone Stair=Kamenné schod +Inner Stone Stair=Vnútorný kamenné schod +Outer Stone Stair=Vonkajší kamenné schod +Stone Slab=Kamenný stupienok +Cobblestone Stair=Schod z dlažbového kameňa +Inner Cobblestone Stair=Vnútorný schod z dlažbového kameňa +Outer Cobblestone Stair=Vonkajší schod z dlažbového kameňa +Cobblestone Slab=Stupienok z dlažbového kameňa +Mossy Cobblestone Stair=Schod dlažbového kameňa obrastené machom +Inner Mossy Cobblestone Stair=Vnútorný schod dlažbového kameňa obrastené machom +Outer Mossy Cobblestone Stair=Vonkajší schod dlažbového kameňa obrastené machom +Mossy Cobblestone Slab=Stupienok z dlažbového kameňa obrastený machom +Stone Brick Stair=Schod z kamenných tehál +Inner Stone Brick Stair=Vnútorný schod z kamenných tehál +Outer Stone Brick Stair=Vonkajší schod z kamenných tehál +Stone Brick Slab=Stupienok z kamenných tehál +Stone Block Stair=Schod z kameňa +Inner Stone Block Stair=Vnútorný schod z kameňa +Outer Stone Block Stair=Vonkajší schod z kameňa +Stone Block Slab=Stupienok z kameňa +Desert Stone Stair=Schod z púštneho kameňa +Inner Desert Stone Stair=Vnútorný schod z púštneho kameňa +Outer Desert Stone Stair=Vonkajší schod z púštneho kameňa +Desert Stone Slab=Stupienok z púštneho kameňa +Desert Cobblestone Stair=Schod z púštneho dlažbového kameňa +Inner Desert Cobblestone Stair=Vnútorný schod z púštneho dlažbového kameňa +Outer Desert Cobblestone Stair=Vonkajší schod z púštneho dlažbového kameňa +Desert Cobblestone Slab=Stupienok z púštneho dlažbového kameňa +Desert Stone Brick Stair=Schod z tehiel z púštneho kameňa +Inner Desert Stone Brick Stair=Vnútorný schod z tehiel z púštneho kameňa +Outer Desert Stone Brick Stair=Vonkajší schod z tehiel z púštneho kameňa +Desert Stone Brick Slab=Stupienok z tehiel z púštneho kameňa +Desert Stone Block Stair=Schod z blokov púštneho kameňa +Inner Desert Stone Block Stair=Vnútorný schod z blokov púštneho kameňa +Outer Desert Stone Block Stair=Vonkajší schod z blokov púštneho kameňa +Desert Stone Block Slab=Stupienok z blokov púštneho kameňa +Sandstone Stair=Schod z pieskovca +Inner Sandstone Stair=Vnútorný schod z pieskovca +Outer Sandstone Stair=Vonkajší schod z pieskovca +Sandstone Slab=Stupienok z pieskovca +Sandstone Brick Stair=Schod z tehál pieskovca +Inner Sandstone Brick Stair=Vnútorný schod z tehál pieskovca +Outer Sandstone Brick Stair=Vonkajší schod z tehál pieskovca +Sandstone Brick Slab=Stupienok z tehál pieskovca +Sandstone Block Stair=Schod z blokov pieskovca +Inner Sandstone Block Stair=Vnútorný schod z blokov pieskovca +Outer Sandstone Block Stair=Vonkajší schod z blokov pieskovca +Sandstone Block Slab=Stupienok z blokov pieskovca +Desert Sandstone Stair=Schod z púštneho pieskovca +Inner Desert Sandstone Stair=Vnútorný schod z púštneho pieskovca +Outer Desert Sandstone Stair=Vonkajší schod z púštneho pieskovca +Desert Sandstone Slab=Stupienok z púštneho pieskovca +Desert Sandstone Brick Stair=Schod z tehál z púštneho pieskovca +Inner Desert Sandstone Brick Stair=Vnútorný schod z tehál z púštneho pieskovca +Outer Desert Sandstone Brick Stair=Vonkajší schod z tehál z púštneho pieskovca +Desert Sandstone Brick Slab=Stupienok z tehál z púštneho pieskovca +Desert Sandstone Block Stair=Schod z blokov púštneho pieskovca +Inner Desert Sandstone Block Stair=Vnútorný schod z blokov púštneho pieskovca +Outer Desert Sandstone Block Stair=Vonkajší schod z blokov púštneho pieskovca +Desert Sandstone Block Slab=Stupienok z blokov púštneho pieskovca +Silver Sandstone Stair=Schod zo strieborného pieskovca +Inner Silver Sandstone Stair=Vnútorný schod zo strieborného pieskovca +Outer Silver Sandstone Stair=Vonkajší schod zo strieborného pieskovca +Silver Sandstone Slab=Stupienok zo strieborného pieskovca +Silver Sandstone Brick Stair=Schod z tehál zo strieborného pieskovca +Inner Silver Sandstone Brick Stair=Vnútorný schod z tehál zo strieborného pieskovca +Outer Silver Sandstone Brick Stair=Vonkajší schod z tehál zo strieborného pieskovca +Silver Sandstone Brick Slab=Stupienok z tehál zo strieborného pieskovca +Silver Sandstone Block Stair=Schod z blokov strieborného pieskovca +Inner Silver Sandstone Block Stair=Vnútorný schod z blokov strieborného pieskovca +Outer Silver Sandstone Block Stair=Vonkajší schod z blokov strieborného pieskovca +Silver Sandstone Block Slab=Stupienok z blokov strieborného pieskovca +Obsidian Stair=Schod z obsidiánu +Inner Obsidian Stair=Vnútorný schod z obsidiánu +Outer Obsidian Stair=Vonkajší schod z obsidiánu +Obsidian Slab=Stupienok z obsidiánu +Obsidian Brick Stair=Schod z tehál obsidiánu +Inner Obsidian Brick Stair=Vnútorný schod z tehál obsidiánu +Outer Obsidian Brick Stair=Vonkajší schod z tehál obsidiánu +Obsidian Brick Slab=Stupienok z tehál obsidiánu +Obsidian Block Stair=Schod z bloku obsidiánu +Inner Obsidian Block Stair=Vnútorný schod z bloku obsidiánu +Outer Obsidian Block Stair=Vonkajší schod z bloku obsidiánu +Obsidian Block Slab=Stupienok z bloku obsidiánu +Brick Stair=Schod z tehál +Inner Brick Stair=Vnútorný schod z tehál +Outer Brick Stair=Vonkajší schod z tehál +Brick Slab=Stupienok z tehál +Steel Block Stair=Oceľový schod +Inner Steel Block Stair=Vnútorný oceľový schod +Outer Steel Block Stair=Vonkajší oceľový schod +Steel Block Slab=Oceľový stupienok +Tin Block Stair=Cínový schod +Inner Tin Block Stair=Vnútorný cínový schod +Outer Tin Block Stair=Vonkajší cínový schod +Tin Block Slab=Cínový stupienok +Copper Block Stair=Medený schod +Inner Copper Block Stair=Vnútorný medený schod +Outer Copper Block Stair=Vonkajší medený schod +Copper Block Slab=Medený stupienok +Bronze Block Stair=Bronzový schod +Inner Bronze Block Stair=Vnútorný bronzový schod +Outer Bronze Block Stair=Vonkajší bronzový schod +Bronze Block Slab=Bronzový stupienok +Gold Block Stair=Zlatý schod +Inner Gold Block Stair=Vnútorný zlatý schod +Outer Gold Block Stair=Vonkajší zlatý schod +Gold Block Slab=Zlatý stupienok +Ice Stair=Ľadový schod +Inner Ice Stair=Vnútorný ľadový schod +Outer Ice Stair=Vonkajší ľadový schod +Ice Slab=Ľadový stupienok +Snow Block Stair=Snehový schod +Inner Snow Block Stair=Vnútorný snehový schod +Outer Snow Block Stair=Vonkajší snehový schod +Snow Block Slab=Snehový stupienok diff --git a/mods/minetest_game/tnt/init.lua b/mods/minetest_game/tnt/init.lua index cc71b9f..fd1f9e4 100644 --- a/mods/minetest_game/tnt/init.lua +++ b/mods/minetest_game/tnt/init.lua @@ -165,7 +165,7 @@ local function entity_physics(pos, radius, drops) if obj:is_player() then local dir = vector.normalize(vector.subtract(obj_pos, pos)) local moveoff = vector.multiply(dir, 2 / dist * radius) - obj:add_player_velocity(moveoff) + obj:add_velocity(moveoff) obj:set_hp(obj:get_hp() - damage) else @@ -434,7 +434,7 @@ minetest.register_node("tnt:boom", { light_source = default.LIGHT_MAX, walkable = false, drop = "", - groups = {dig_immediate = 3}, + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, -- unaffected by explosions on_blast = function() end, }) @@ -531,7 +531,8 @@ minetest.register_node("tnt:gunpowder_burning", { groups = { dig_immediate = 2, attached_node = 1, - connect_to_raillike = minetest.raillike_group("gunpowder") + connect_to_raillike = minetest.raillike_group("gunpowder"), + not_in_creative_inventory = 1 }, sounds = default.node_sound_leaves_defaults(), on_timer = function(pos, elapsed) @@ -678,7 +679,7 @@ function tnt.register_tnt(def) light_source = 5, drop = "", sounds = default.node_sound_wood_defaults(), - groups = {falling_node = 1}, + groups = {falling_node = 1, not_in_creative_inventory = 1}, on_timer = function(pos, elapsed) tnt.boom(pos, def) end, diff --git a/mods/minetest_game/tnt/locale/tnt.sk.tr b/mods/minetest_game/tnt/locale/tnt.sk.tr new file mode 100644 index 0000000..639b8c8 --- /dev/null +++ b/mods/minetest_game/tnt/locale/tnt.sk.tr @@ -0,0 +1,4 @@ +# textdomain: tnt +Gun Powder=Pušný prach +TNT Stick=Časť TNT +TNT=TNT diff --git a/mods/minetest_game/vessels/locale/vessels.sk.tr b/mods/minetest_game/vessels/locale/vessels.sk.tr new file mode 100644 index 0000000..acae90a --- /dev/null +++ b/mods/minetest_game/vessels/locale/vessels.sk.tr @@ -0,0 +1,8 @@ +# textdomain: vessels +Vessels Shelf=Polica na fľašky +Empty Glass Bottle=Prázdna sklenená fľaša +Empty Drinking Glass=Prázdny pohár na pitie +Empty Heavy Steel Bottle=Prázdna oceľová fľaša +Glass Fragments=Časti skla +Empty Vessels Shelf=Prázdna polica na fľašky +Vessels Shelf (@1 items)=Polica na fľašky (@1 položka/y) diff --git a/mods/minetest_game/walls/locale/walls.sk.tr b/mods/minetest_game/walls/locale/walls.sk.tr new file mode 100644 index 0000000..69cf3a9 --- /dev/null +++ b/mods/minetest_game/walls/locale/walls.sk.tr @@ -0,0 +1,4 @@ +# textdomain: walls +Cobblestone Wall=Múr z dlažbových kociek +Mossy Cobblestone Wall=Múr z dlažbových kociek obrastených machom +Desert Cobblestone Wall=Múr z púštnych dlažbových kociek diff --git a/mods/minetest_game/wool/locale/wool.ru.tr b/mods/minetest_game/wool/locale/wool.ru.tr index cd8c60b..f5a98aa 100644 --- a/mods/minetest_game/wool/locale/wool.ru.tr +++ b/mods/minetest_game/wool/locale/wool.ru.tr @@ -9,7 +9,7 @@ Cyan Wool=Голубая Шерсть Dark Green Wool=Тёмно-Зелёная Шерсть Green Wool=Зелёная Шерсть Yellow Wool=Жёлтая Шерсть -Brown Wool=Бурая Шерсть +Brown Wool=Коричневая Шерсть Orange Wool=Оранжевая Шерсть Red Wool=Красная Шерсть Magenta Wool=Пурпурная Шерсть diff --git a/mods/minetest_game/wool/locale/wool.sk.tr b/mods/minetest_game/wool/locale/wool.sk.tr new file mode 100644 index 0000000..755370e --- /dev/null +++ b/mods/minetest_game/wool/locale/wool.sk.tr @@ -0,0 +1,16 @@ +# textdomain: wool +White Wool=Biela vlna +Grey Wool=Šedá vlna +Dark Grey Wool=Tmavošedá vlna +Black Wool=Čierna vlna +Violet Wool=Fialová vlna +Blue Wool=Modrá vlna +Cyan Wool=Tyrkysová vlna +Dark Green Wool=Tmavozelená vlna +Green Wool=Zelená vlna +Yellow Wool=Žltá vlna +Brown Wool=Hnedá vlna +Orange Wool=Oranžová vlna +Red Wool=Červená vlna +Magenta Wool=Purpurová vlna +Pink Wool=Ružová vlna diff --git a/mods/minetest_game/xpanes/locale/xpanes.sk.tr b/mods/minetest_game/xpanes/locale/xpanes.sk.tr new file mode 100644 index 0000000..0d07e08 --- /dev/null +++ b/mods/minetest_game/xpanes/locale/xpanes.sk.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Tabuľa skla +Obsidian Glass Pane=Tabuľa obsidiánového skla +Steel Bars=Oceľové mreže +Steel Bar Door=Dvere z oceľových mreží +Steel Bar Trapdoor=Padajúce dvere z oceľových mreží diff --git a/mods/mobkit/init.lua b/mods/mobkit/init.lua index b7ca752..50aca67 100644 --- a/mods/mobkit/init.lua +++ b/mods/mobkit/init.lua @@ -27,7 +27,7 @@ end mobkit.terminal_velocity = sqrt(2*-mobkit.gravity*20) -- 20 meter fall = dead mobkit.safe_velocity = sqrt(2*-mobkit.gravity*5) -- 5 m safe fall -local abr = minetest.get_mapgen_setting('active_block_range') +local abr = tonumber(minetest.get_mapgen_setting('active_block_range')) or 3 local neighbors ={ {x=1,z=0}, @@ -40,7 +40,7 @@ local neighbors ={ {x=1,z=-1} } - + -- UTILITY FUNCTIONS function mobkit.dot(v1,v2) @@ -80,7 +80,7 @@ end function mobkit.is_pos_in_box(pos,bpos,box) return pos.x > bpos.x+box[1] and pos.x < bpos.x+box[4] and - pos.y > bpos.y+box[2]+0.5 and pos.y < bpos.y+box[5]+0.5 and + pos.y > bpos.y+box[2] and pos.y < bpos.y+box[5] and pos.z > bpos.z+box[3] and pos.z < bpos.z+box[6] end @@ -104,7 +104,7 @@ function mobkit.get_stand_pos(thing) -- thing can be luaentity or objectref. elseif type(thing) == 'userdata' then pos = thing:get_pos() colbox = thing:get_properties().collisionbox - else + else return false end return mobkit.pos_shift(pos,{y=colbox[2]+0.01}), pos @@ -116,7 +116,7 @@ function mobkit.set_acceleration(thing,vec,limit) vec.x=mobkit.minmax(vec.x,limit) vec.y=mobkit.minmax(vec.y,limit) vec.z=mobkit.minmax(vec.z,limit) - + thing:set_acceleration(vec) end @@ -142,15 +142,15 @@ function mobkit.get_nodes_in_area(pos1,pos2,full) local npos2=mobkit.get_node_pos(pos2) local result = {} local cnt = 0 -- safety - + local sx = (pos2.x 125 then + if cnt > 125 then minetest.chat_send_all('get_nodes_in_area: area too big ') return result end - + until y==npos2.y until z==npos2.z until x==npos2.x - + return result end @@ -193,12 +193,12 @@ function mobkit.get_hitbox_bottom(self) {x=pos.x+self.collisionbox[4],y=pos.y+y,z=pos.z+self.collisionbox[6]}, } end - + function mobkit.get_node_height(pos) local npos = mobkit.get_node_pos(pos) local node = mobkit.nodeatpos(npos) if node == nil then return nil end - + if node.walkable then if node.drawtype == 'nodebox' then if node.node_box and node.node_box.type == 'fixed' then @@ -208,7 +208,7 @@ function mobkit.get_node_height(pos) return npos.y + node.node_box.fixed[1][5] ,0, false else return npos.y + 0.5,1, false -- todo handle table of boxes - end + end elseif node.node_box and node.node_box.type == 'leveled' then return minetest.get_node_level(pos)/64-0.5+mobkit.get_node_pos(pos).y, 0, false else @@ -220,7 +220,7 @@ function mobkit.get_node_height(pos) else local liquidflag = false if node.drawtype == 'liquid' then liquidflag = true end - return npos.y-0.5,-1,liquidflag + return npos.y-0.5,-1,liquidflag end end @@ -228,18 +228,18 @@ end -- steps(optional) number of recursion steps; default=3 -- dir(optional) is 1=up, -1=down, 0=both; default=0 -- liquidflag(forbidden) never provide this parameter. -function mobkit.get_terrain_height(pos,steps,dir,liquidflag) --dir is 1=up, -1=down, 0=both +function mobkit.get_terrain_height(pos,steps,dir,liquidflag) --dir is 1=up, -1=down, 0=both steps = steps or 3 dir = dir or 0 local h,f,l = mobkit.get_node_height(pos) if h == nil then return nil end if l then liquidflag = true end - - if f==0 then + + if f==0 then return h, liquidflag end - + if dir==0 or dir==f then steps = steps - 1 if steps <=0 then return nil end @@ -258,7 +258,7 @@ function mobkit.get_spawn_pos_abr(dtime,intrvl,radius,chance,reduction) local vel = plyr:get_player_velocity() local spd = vector.length(vel) chance = (1-chance) * 1/(spd*0.75+1) - + local yaw if spd > 1 then -- spawn in the front arc @@ -300,15 +300,15 @@ function mobkit.turn2yaw(self,tyaw,rate) local yaw = self.object:get_yaw() yaw = yaw+pi tyaw=(tyaw+pi)%(pi*2) - + local step=min(self.dtime*rate,abs(tyaw-yaw)%(pi*2)) - + local dir = abs(tyaw-yaw)>pi and -1 or 1 dir = tyaw>yaw and dir*1 or dir * -1 - + local nyaw = (yaw+step*dir)%(pi*2) self.object:set_yaw(nyaw-pi) - + if nyaw==tyaw then return true, nyaw-pi else return false, nyaw-pi end end @@ -337,9 +337,9 @@ end -- object has reached the destination if dest is in the rear half plane. function mobkit.is_there_yet2d(pos,dir,dest) -- obj positon; facing vector; destination position - local c = -dir.x*pos.x-dir.z*pos.z -- the constant - - if dir.z > 0 then + local c = -dir.x*pos.x-dir.z*pos.z -- the constant + + if dir.z > 0 then return dest.z <= (-dir.x*dest.x - c)/dir.z -- line equation elseif dir.z < 0 then return dest.z >= (-dir.x*dest.x - c)/dir.z @@ -350,7 +350,7 @@ function mobkit.is_there_yet2d(pos,dir,dest) -- obj positon; facing vector; dest else return false end - + end function mobkit.isnear3d(p1,p2,thresh) @@ -365,9 +365,9 @@ function mobkit.get_box_height(thing) if type(thing) == 'table' then thing = thing.object end local colbox = thing:get_properties().collisionbox local height - if colbox then height = colbox[5]-colbox[2] + if colbox then height = colbox[5]-colbox[2] else height = 0.1 end - + return height > 0 and height or 0.1 end @@ -376,7 +376,7 @@ function mobkit.is_alive(thing) -- thing can be luaentity or objectref. if not mobkit.exists(thing) then return false end if type(thing) == 'table' then return thing.hp > 0 end if thing:is_player() then return thing:get_hp() > 0 - else + else local lua = thing:get_luaentity() local hp = lua and lua.hp or nil return hp and hp > 0 @@ -386,9 +386,9 @@ end function mobkit.exists(thing) if not thing then return false end if type(thing) == 'table' then thing=thing.object end - if type(thing) == 'userdata' then + if type(thing) == 'userdata' then if thing:is_player() then - if thing:get_look_horizontal() then return true end + if thing:get_look_horizontal() then return true end else if thing:get_yaw() then return true end end @@ -413,15 +413,17 @@ function mobkit.animate(self,anim) if self.animation and self.animation[anim] then if self._anim == anim then return end self._anim=anim - + local aparms = {} if #self.animation[anim] > 0 then aparms = self.animation[anim][random(#self.animation[anim])] else aparms = self.animation[anim] end - - self.object:set_animation(aparms.range,aparms.speed,0,aparms.loop) + + aparms.frame_blend = aparms.frame_blend or 0 + + self.object:set_animation(aparms.range,aparms.speed,aparms.frame_blend,aparms.loop) else self._anim = nil end @@ -430,20 +432,21 @@ end function mobkit.make_sound(self, sound) local spec = self.sounds and self.sounds[sound] local param_table = {object=self.object} - + if type(spec) == 'table' then --pick random sound if it's a spec for random sounds if #spec > 0 then spec = spec[random(#spec)] end - + --returns value or a random value within the range [value[1], value[2]) local function in_range(value) return type(value) == 'table' and value[1]+random()*(value[2]-value[1]) or value end - + --pick random values within a range if they're a table param_table.gain = in_range(spec.gain) param_table.fade = in_range(spec.fade) param_table.pitch = in_range(spec.pitch) + return minetest.sound_play(spec.name, param_table) end return minetest.sound_play(spec, param_table) end @@ -458,7 +461,7 @@ function mobkit.is_neighbor_node_reachable(self,neighbor) -- todo: take either n if height and abs(height-pos.y) <= self.jump_height then tpos.y = height height = height - pos.y - + -- don't cut corners if neighbor % 2 == 0 then -- diagonal neighbors are even local n2 = neighbor-1 -- left neighbor never < 0 @@ -472,7 +475,7 @@ function mobkit.is_neighbor_node_reachable(self,neighbor) -- todo: take either n h2 = mobkit.get_terrain_height(t2,recursteps) if h2 and h2 - pos.y > 0.02 then return end end - + -- check headroom if tpos.y+self.height-pos.y > 1 then -- if head in next node above, else no point checking headroom local snpos = mobkit.get_node_pos(pos) @@ -480,17 +483,17 @@ function mobkit.is_neighbor_node_reachable(self,neighbor) -- todo: take either n local pos2 = {x=tpos.x,y=tpos.y+self.height,z=tpos.z} -- target head pos local nodes = mobkit.get_nodes_in_area(pos1,pos2,true) - + for p,node in pairs(nodes) do - if snpos.x==p.x and snpos.z==p.z then + if snpos.x==p.x and snpos.z==p.z then if node.name=='ignore' or node.walkable then return end else - if node.name=='ignore' or + if node.name=='ignore' or (node.walkable and mobkit.get_node_height(p)>tpos.y+0.001) then return end end end end - + return height, tpos, liquidflag else return @@ -506,11 +509,11 @@ function mobkit.get_next_waypoint(self,tpos) if #self.pos_history > 2 then table.remove(self.pos_history,#self.pos_history) end end local nogopos = self.pos_history[2] - + local height, pos2, liquidflag = mobkit.is_neighbor_node_reachable(self,neighbor) --minetest.chat_send_all('pos2 ' .. minetest.serialize(pos2)) ---minetest.chat_send_all('nogopos ' .. minetest.serialize(nogopos)) - if height and not liquidflag +--minetest.chat_send_all('nogopos ' .. minetest.serialize(nogopos)) + if height and not liquidflag and not (nogopos and mobkit.isnear2d(pos2,nogopos,0.1)) then local heightl = mobkit.is_neighbor_node_reachable(self,mobkit.neighbor_shift(neighbor,-1)) @@ -531,25 +534,25 @@ function mobkit.get_next_waypoint(self,tpos) for i=1,3 do -- scan left local height, pos2, liq = mobkit.is_neighbor_node_reachable(self,mobkit.neighbor_shift(neighbor,-i*self.path_dir)) - if height and not liq + if height and not liq and not (nogopos and mobkit.isnear2d(pos2,nogopos,0.1)) then update_pos_history(self,pos2) - return height,pos2 - end + return height,pos2 + end -- scan right height, pos2, liq = mobkit.is_neighbor_node_reachable(self,mobkit.neighbor_shift(neighbor,i*self.path_dir)) - if height and not liq + if height and not liq and not (nogopos and mobkit.isnear2d(pos2,nogopos,0.1)) then update_pos_history(self,pos2) - return height,pos2 + return height,pos2 end end --scan rear height, pos2, liquidflag = mobkit.is_neighbor_node_reachable(self,mobkit.neighbor_shift(neighbor,4)) - if height and not liquidflag + if height and not liquidflag and not (nogopos and mobkit.isnear2d(pos2,nogopos,0.1)) then update_pos_history(self,pos2) - return height,pos2 + return height,pos2 end end -- stuck condition here @@ -562,7 +565,7 @@ function mobkit.get_next_waypoint_fast(self,tpos,nogopos) local dir=vector.direction(pos,tpos) local neighbor = mobkit.dir2neighbor(dir) local height, pos2, liquidflag = mobkit.is_neighbor_node_reachable(self,neighbor) - + if height and not liquidflag then local fast = false heightl = mobkit.is_neighbor_node_reachable(self,mobkit.neighbor_shift(neighbor,-1)) @@ -593,19 +596,19 @@ end function mobkit.goto_next_waypoint(self,tpos) local height, pos2 = mobkit.get_next_waypoint(self,tpos) - + if not height then return false end - + if height <= 0.01 then local yaw = self.object:get_yaw() local tyaw = minetest.dir_to_yaw(vector.direction(self.object:get_pos(),pos2)) if abs(tyaw-yaw) > 1 then - mobkit.lq_turn2pos(self,pos2) + mobkit.lq_turn2pos(self,pos2) end mobkit.lq_dumbwalk(self,pos2) else - mobkit.lq_turn2pos(self,pos2) - mobkit.lq_dumbjump(self,height) + mobkit.lq_turn2pos(self,pos2) + mobkit.lq_dumbjump(self,height) end return true end @@ -618,7 +621,7 @@ function mobkit.go_forward_horizontal(self,speed) -- sets velocity in yaw direct self.object:set_velocity(vel) end -function mobkit.drive_to_pos(self,tpos,speed,turn_rate,dist) +function mobkit.drive_to_pos(self,tpos,speed,turn_rate,dist) local pos=self.object:get_pos() dist = dist or 0.2 if mobkit.isnear2d(pos,tpos,dist) then return true end @@ -634,7 +637,7 @@ function mobkit.timer(self,s) -- returns true approx every s seconds if t2>t1 and t2%s==0 then return true end end --- Memory functions. +-- Memory functions. -- Stuff in memory is serialized, never try to remember objectrefs. function mobkit.remember(self,key,val) self.memory[key]=val @@ -749,20 +752,20 @@ local function sensors() return function(self) timer=timer-self.dtime if timer < 0 then - + pulse = pulse + 1 -- do full range every third scan local range = self.view_range - if pulse > 2 then + if pulse > 2 then pulse = 1 else range = self.view_range*0.5 end - + local pos = self.object:get_pos() --local tim = minetest.get_us_time() self.nearby_objects = minetest.get_objects_inside_radius(pos, range) --minetest.chat_send_all(minetest.get_us_time()-tim) - for i,obj in ipairs(self.nearby_objects) do + for i,obj in ipairs(self.nearby_objects) do if obj == self.object then table.remove(self.nearby_objects,i) break @@ -789,19 +792,19 @@ function mobkit.physics(self) y=vel.y, z=vel.z > 0.2 and vel.z*mobkit.friction or 0}) end - + -- bounciness if self.springiness and self.springiness > 0 then local vnew = vector.new(vel) - + if not self.collided then -- ugly workaround for inconsistent collisions - for _,k in ipairs({'y','z','x'}) do - if vel[k]==0 and abs(self.lastvelocity[k])> 0.1 then - vnew[k]=-self.lastvelocity[k]*self.springiness + for _,k in ipairs({'y','z','x'}) do + if vel[k]==0 and abs(self.lastvelocity[k])> 0.1 then + vnew[k]=-self.lastvelocity[k]*self.springiness end end end - + if not vector.equals(vel,vnew) then self.collided = true else @@ -810,10 +813,10 @@ function mobkit.physics(self) end self.collided = false end - + self.object:set_velocity(vnew) end - + -- buoyancy local surface = nil local surfnodename = nil @@ -841,7 +844,7 @@ function mobkit.physics(self) -- self.isinliquid = false self.object:set_acceleration({x=0,y=mobkit.gravity,z=0}) end - + end function mobkit.vitals(self) @@ -851,17 +854,17 @@ function mobkit.vitals(self) if velocity_delta > mobkit.safe_velocity then self.hp = self.hp - floor(self.max_hp * min(1, velocity_delta/mobkit.terminal_velocity)) end - + -- vitals: oxygen if self.lung_capacity then local colbox = self.object:get_properties().collisionbox local headnode = mobkit.nodeatpos(mobkit.pos_shift(self.object:get_pos(),{y=colbox[5]})) -- node at hitbox top - if headnode and headnode.drawtype == 'liquid' then + if headnode and headnode.drawtype == 'liquid' then self.oxygen = self.oxygen - self.dtime else self.oxygen = self.lung_capacity end - + if self.oxygen <= 0 then self.hp=0 end -- drown end end @@ -878,7 +881,7 @@ function mobkit.actfunc(self, staticdata, dtime_s) self.logic = self.logic or self.brainfunc self.physics = self.physics or mobkit.physics - + self.lqueue = {} self.hqueue = {} self.nearby_objects = {} @@ -889,28 +892,28 @@ function mobkit.actfunc(self, staticdata, dtime_s) self.water_drag = self.water_drag or 1 local sdata = minetest.deserialize(staticdata) - if sdata then + if sdata then for k,v in pairs(sdata) do self[k] = v end end - + if self.textures==nil then local prop_tex = self.object:get_properties().textures if prop_tex then self.textures=prop_tex end end - + if not self.memory then -- this is the initial activation - self.memory = {} - + self.memory = {} + -- texture variation if #self.textures > 1 then self.texture_no = random(#self.textures) end end - + if self.timeout and self.timeout>0 and dtime_s > self.timeout and next(self.memory)==nil then self.object:remove() end - + -- apply texture if self.textures and self.texture_no then local props = {} @@ -927,7 +930,7 @@ function mobkit.actfunc(self, staticdata, dtime_s) end self.armor_groups.immortal = 1 self.object:set_armor_groups(self.armor_groups) - + self.buoyancy = self.buoyancy or 0 self.oxygen = self.oxygen or self.lung_capacity self.lastvelocity = {x=0,y=0,z=0} @@ -937,11 +940,11 @@ end function mobkit.stepfunc(self,dtime) -- not intended to be modified self.dtime = min(dtime,0.2) self.height = mobkit.get_box_height(self) - + -- physics comes first -- self.object:set_acceleration({x=0,y=mobkit.gravity,z=0}) local vel = self.object:get_velocity() - + -- if self.lastvelocity.y == vel.y then -- if abs(self.lastvelocity.y-vel.y)<0.001 then if self.lastvelocity.y==0 and vel.y==0 then @@ -949,7 +952,7 @@ function mobkit.stepfunc(self,dtime) -- not intended to be modified else self.isonground = false end - + self:physics() if self.logic then @@ -957,7 +960,7 @@ function mobkit.stepfunc(self,dtime) -- not intended to be modified self:logic() execute_queues(self) end - + self.lastvelocity = self.object:get_velocity() self.time_total=self.time_total+self.dtime end @@ -981,8 +984,8 @@ function mobkit.lq_idle(self,duration,anim) anim = anim or 'stand' local init = true local func=function(self) - if init then - mobkit.animate(self,anim) + if init then + mobkit.animate(self,anim) init=false end duration = duration-self.dtime @@ -998,7 +1001,7 @@ function mobkit.lq_dumbwalk(self,dest,speed_factor) mobkit.animate(self,'walk') timer = timer - self.dtime if timer < 0 then return true end - + local pos = mobkit.get_stand_pos(self) local y = self.object:get_velocity().y @@ -1008,7 +1011,7 @@ function mobkit.lq_dumbwalk(self,dest,speed_factor) -- if abs(dest.y-pos.y) > 0.1 then -- isonground too slow for speeds > 4 self.object:set_velocity({x=0,y=y,z=0}) end - return true + return true end if self.isonground then @@ -1040,7 +1043,7 @@ function mobkit.lq_dumbjump(self,height,anim) else -- the eagle has landed return true end - else + else local dir = minetest.yaw_to_dir(yaw) local vel = self.object:get_velocity() if self.lastvelocity.y < 0.9 then @@ -1090,7 +1093,7 @@ function mobkit.lq_freejump(self) end function mobkit.lq_jumpattack(self,height,target) - local phase=1 + local phase=1 local timer=0.5 local tgtbox = target:get_properties().collisionbox local func=function(self) @@ -1121,11 +1124,11 @@ function mobkit.lq_jumpattack(self,height,target) local dir = minetest.yaw_to_dir(yaw) local apos = mobkit.pos_translate2d(pos,yaw,self.attack.range) - if mobkit.is_pos_in_box(apos,tgtpos,tgtbox, self.offset) then --bite + if mobkit.is_pos_in_box(apos,tgtpos,tgtbox) then --bite target:punch(self.object,1,self.attack) -- bounce off local vy = self.object:get_velocity().y - self.object:set_velocity({x=dir.x*-3,y=vy,z=dir.z*-3}) + self.object:set_velocity({x=dir.x*-3,y=vy,z=dir.z*-3}) -- play attack sound if defined mobkit.make_sound(self,'attack') phase=4 @@ -1158,11 +1161,11 @@ end function mobkit.dumbstep(self,height,tpos,speed_factor,idle_duration) if height <= 0.001 then - mobkit.lq_turn2pos(self,tpos) + mobkit.lq_turn2pos(self,tpos) mobkit.lq_dumbwalk(self,tpos,speed_factor) else - mobkit.lq_turn2pos(self,tpos) - mobkit.lq_dumbjump(self,height) + mobkit.lq_turn2pos(self,tpos) + mobkit.lq_dumbjump(self,height) end idle_duration = idle_duration or 6 mobkit.lq_idle(self,random(ceil(idle_duration*0.5),idle_duration)) @@ -1192,7 +1195,7 @@ function mobkit.hq_follow0(self,tgtobj) -- probably delete this one if not neighbor then return true end --temp debug local height, tpos = mobkit.is_neighbor_node_reachable(self,neighbor) if height then mobkit.dumbstep(self,height,tpos) - else + else for i=1,4 do --scan left height, tpos = mobkit.is_neighbor_node_reachable(self,(8+neighbor-i-1)%8+1) if height then mobkit.dumbstep(self,height,tpos) @@ -1246,7 +1249,7 @@ function mobkit.hq_runfrom(self,prty,tgtobj) local init=true local timer=6 local func = function(self) - + if not mobkit.is_alive(tgtobj) then return true end if init then timer = timer-self.dtime @@ -1256,7 +1259,7 @@ function mobkit.hq_runfrom(self,prty,tgtobj) end return end - + if mobkit.is_queue_empty_low(self) and self.isonground then local pos = mobkit.get_stand_pos(self) local opos = tgtobj:get_pos() @@ -1286,7 +1289,7 @@ function mobkit.hq_hunt(self,prty,tgtobj) elseif dist > 3 then mobkit.goto_next_waypoint(self,opos) else - mobkit.hq_attack(self,prty+1,tgtobj) + mobkit.hq_attack(self,prty+1,tgtobj) end end end @@ -1306,7 +1309,7 @@ function mobkit.hq_warn(self,prty,tgtobj) local pos = mobkit.get_stand_pos(self) local opos = tgtobj:get_pos() local dist = vector.distance(pos,opos) - + if dist > 11 then return true elseif dist < 4 or timer > 12 then -- too close man @@ -1315,7 +1318,7 @@ function mobkit.hq_warn(self,prty,tgtobj) mobkit.hq_hunt(self,prty+1,tgtobj) -- priority else timer = timer+self.dtime - if mobkit.is_queue_empty_low(self) then + if mobkit.is_queue_empty_low(self) then mobkit.lq_turn2pos(self,opos) end -- make noise in random intervals @@ -1335,8 +1338,8 @@ function mobkit.hq_die(self) local timer = 5 local start = true local func = function(self) - if start then - mobkit.lq_fallover(self) + if start then + mobkit.lq_fallover(self) self.logic = function(self) end -- brain dead as well start=false end @@ -1354,13 +1357,13 @@ function mobkit.hq_attack(self,prty,tgtobj) -- local tpos = tgtobj:get_pos() local tpos = mobkit.get_stand_pos(tgtobj) local dist = vector.distance(pos,tpos) - if dist > 3 then + if dist > 3 then return true else mobkit.lq_turn2pos(self,tpos) local height = tgtobj:is_player() and 0.35 or tgtobj:get_luaentity().height*0.6 - if tpos.y+height>pos.y then - mobkit.lq_jumpattack(self,tpos.y+height-pos.y,tgtobj) + if tpos.y+height>pos.y then + mobkit.lq_jumpattack(self,tpos.y+height-pos.y,tgtobj) else mobkit.lq_dumbwalk(self,mobkit.pos_shift(tpos,{x=random()-0.5,z=random()-0.5})) end @@ -1387,10 +1390,10 @@ function mobkit.hq_liquid_recovery(self,prty) -- scan for nearest land if yaw>2*pi then yaw = 0 radius=radius+1 - if radius > self.view_range then + if radius > self.view_range then self.hp = 0 return true - end + end end end mobkit.queue_high(self,func,prty) @@ -1407,14 +1410,14 @@ function mobkit.hq_swimto(self,prty,tpos) local pos2d = {x=pos.x,y=0,z=pos.z} local dir=vector.normalize(vector.direction(pos2d,tpos)) local yaw = minetest.dir_to_yaw(dir) - + if mobkit.timer(self,1) then --perpendicular vectors: {-z,x};{z,-x} local pos1 = mobkit.pos_shift(mobkit.pos_shift(pos,{x=-dir.z*offset,z=dir.x*offset}),dir) local h,l = mobkit.get_terrain_height(pos1) if h and h>pos.y then mobkit.lq_freejump(self) - else + else local pos2 = mobkit.pos_shift(mobkit.pos_shift(pos,{x=dir.z*offset,z=-dir.x*offset}),dir) local h,l = mobkit.get_terrain_height(pos2) if h and h>pos.y then @@ -1436,11 +1439,11 @@ end -- MACROS local function aqua_radar_dumb(pos,yaw,range,reverse) range = range or 4 - + local function okpos(p) local node = mobkit.nodeatpos(p) - if node then - if node.drawtype == 'liquid' then + if node then + if node.drawtype == 'liquid' then local nodeu = mobkit.nodeatpos(mobkit.pos_shift(p,{y=1})) local noded = mobkit.nodeatpos(mobkit.pos_shift(p,{y=-1})) if (nodeu and nodeu.drawtype == 'liquid') or (noded and noded.drawtype == 'liquid') then @@ -1450,7 +1453,7 @@ local function aqua_radar_dumb(pos,yaw,range,reverse) end else local h,l = mobkit.get_terrain_height(p) - if h then + if h then local node2 = mobkit.nodeatpos({x=p.x,y=h+1.99,z=p.z}) if node2 and node2.drawtype == 'liquid' then return true, h end else @@ -1461,12 +1464,12 @@ local function aqua_radar_dumb(pos,yaw,range,reverse) return false end end - + local fpos = mobkit.pos_translate2d(pos,yaw,range) local ok,h = okpos(fpos) if not ok then local ffrom, fto, fstep - if reverse then + if reverse then ffrom, fto, fstep = 3,1,-1 else ffrom, fto, fstep = 1,3,1 @@ -1478,9 +1481,9 @@ local function aqua_radar_dumb(pos,yaw,range,reverse) if ok then return yaw-i,h end end return yaw+pi,h - else + else return yaw, h - end + end end function mobkit.is_in_deep(target) @@ -1518,7 +1521,7 @@ function mobkit.hq_aqua_roam(self,prty,speed) local vel = self.object:get_velocity() vel.y = vel.y+1 self.object:set_velocity(vel) - end + end if yaw ~= nyaw then tyaw=nyaw mobkit.hq_aqua_turn(self,prty+1,tyaw,speed) @@ -1532,7 +1535,7 @@ function mobkit.hq_aqua_roam(self,prty,speed) if random(10)>=9 then tyaw=tyaw+random()*pi - pi*0.5 end end end - + mobkit.turn2yaw(self,tyaw,3) -- local yaw = self.object:get_yaw() mobkit.go_forward_horizontal(self,speed) @@ -1572,7 +1575,7 @@ function mobkit.hq_aqua_attack(self,prty,tgtobj,speed) local vel = self.object:get_velocity() vel.y = vel.y+1 self.object:set_velocity(vel) - end + end if yaw ~= nyaw then tyaw=nyaw mobkit.hq_aqua_turn(self,prty+1,tyaw,speed) @@ -1581,7 +1584,7 @@ function mobkit.hq_aqua_attack(self,prty,tgtobj,speed) end local tpos = tgtobj:get_pos() - local tyaw=minetest.dir_to_yaw(vector.direction(pos,tpos)) + local tyaw=minetest.dir_to_yaw(vector.direction(pos,tpos)) mobkit.turn2yaw(self,tyaw,3) local yaw = self.object:get_yaw() if mobkit.timer(self,1) then diff --git a/mods/petz/petz/api/api_breed.lua b/mods/petz/petz/api/api_breed.lua index f1244ae..29db307 100644 --- a/mods/petz/petz/api/api_breed.lua +++ b/mods/petz/petz/api/api_breed.lua @@ -145,15 +145,22 @@ petz.growth_timer = function(self, dtime) local pos = self.object:get_pos() pos.y = pos.y + 1.01 -- grows a litte up self.object:set_pos(pos) - local vel = self.object:get_velocity() + local obj + if self.parents then -- for chicken only + mokapi.remove_mob(self) + obj = minetest.add_entity(pos, self.parents[math.random(1, #self.parents)]) + else + obj = self.object + petz.set_properties(self, { + jump = false, + is_baby = false, + visual_size = self.visual_size, + collisionbox = self.collisionbox + }) + end + local vel = obj:get_velocity() vel.y=vel.y + 4.0 - self.object:set_velocity(vel) - petz.set_properties(self, { - jump = false, - is_baby = false, - visual_size = self.visual_size, - collisionbox = self.collisionbox - }) - mokapi.make_sound("object", self.object, "petz_pop_sound", petz.settings.max_hear_distance) + obj:set_velocity(vel) + mokapi.make_sound("object", obj, "petz_pop_sound", petz.settings.max_hear_distance) end end diff --git a/mods/petz/petz/api/api_eggs.lua b/mods/petz/petz/api/api_eggs.lua index a87e999..2653736 100644 --- a/mods/petz/petz/api/api_eggs.lua +++ b/mods/petz/petz/api/api_eggs.lua @@ -14,7 +14,8 @@ petz.lay_egg = function(self) end local pos = self.object:get_pos() if self.type_of_egg == "item" then - if math.random(1, petz.settings.lay_egg_chance) == 1 then + local lay_egg_timing = petz.settings.lay_egg_timing + if mobkit.timer(self, math.random(lay_egg_timing - (lay_egg_timing*0.2), lay_egg_timing+ (lay_egg_timing*0.2))) then minetest.add_item(pos, "petz:"..self.type.."_egg") --chicken/duck/penguin egg! petz.increase_egg_count(self) end @@ -26,8 +27,14 @@ petz.lay_egg = function(self) {x = pos.x + lay_range, y = pos.y + 1, z = pos.z + lay_range}, "petz:ducky_nest") if #nearby_nodes > 1 then + local nest_type + if self.type == "hen" then + nest_type = "chicken" + else + nest_type = "ducky" + end local nest_to_lay = nearby_nodes[math.random(1, #nearby_nodes)] - minetest.set_node(nest_to_lay, {name= "petz:"..self.type.."_nest_egg"}) + minetest.set_node(nest_to_lay, {name= "petz:"..nest_type.."_nest_egg"}) petz.increase_egg_count(self) end end diff --git a/mods/petz/petz/api/api_init_prop.lua b/mods/petz/petz/api/api_init_prop.lua index 2b03585..64b9add 100644 --- a/mods/petz/petz/api/api_init_prop.lua +++ b/mods/petz/petz/api/api_init_prop.lua @@ -170,7 +170,10 @@ function petz.set_initial_properties(self, staticdata, dtime_s) self.gallop_exhausted = mobkit.remember(self, "gallop_exhausted", false) self.gallop_recover_time = mobkit.remember(self, "gallop_recover_time", petz.settings.gallop_recover_time) end - if self.type == "pony" then + if self.parents then + self.is_baby = mobkit.remember(self, "is_baby", true) + end + if self.type == "pony" then --not in the previopus loop, cos also is mountable self.horseshoes = mobkit.remember(self, "horseshoes", 0) end if self.herd then @@ -351,6 +354,13 @@ function petz.set_initial_properties(self, staticdata, dtime_s) petz.colorize(self, self.colorized) end end + --DELETE THIS BLOCK IN THE NEXT UPDATE -- FOR COMPATIBIITY PURPOSES FOR OLD CHICKENS ONLY>>> + if self.type == "chicken" and self.texture_no > 1 then + self.is_baby = mobkit.remember(self, "is_baby", true) + self.texture_no = mobkit.remember(self, "texture_no", 1) + petz.set_properties(self, {textures = {self.textures[1]}}) + end + --<<< if self.horseshoes and captured_mob == false then petz.horseshoes_speedup(self) end diff --git a/mods/petz/petz/api/api_on_rightclick.lua b/mods/petz/petz/api/api_on_rightclick.lua index d1ff5b2..db9627b 100644 --- a/mods/petz/petz/api/api_on_rightclick.lua +++ b/mods/petz/petz/api/api_on_rightclick.lua @@ -62,6 +62,7 @@ petz.on_rightclick = function(self, clicker) petz.capture(self, clicker, true) minetest.chat_send_player("singleplayer", S("Your").." "..S(pet_name).." "..S("has been captured")..".") elseif self.breed and wielded_item_name == petz.settings[self.type.."_breed"] and not(self.is_baby) then + minetest.chat_send_all("test="..petz.settings[self.type.."_breed"]) petz.breed(self, clicker, wielded_item, wielded_item_name) elseif (wielded_item_name == "petz:dreamcatcher") and (self.tamed == true) and (self.is_pet == true) and is_owner then petz.put_dreamcatcher(self, clicker, wielded_item, wielded_item_name) diff --git a/mods/petz/petz/api/api_on_step.lua b/mods/petz/petz/api/api_on_step.lua index 61fd87a..2a169ae 100644 --- a/mods/petz/petz/api/api_on_step.lua +++ b/mods/petz/petz/api/api_on_step.lua @@ -23,7 +23,7 @@ petz.on_step = function(self, dtime) end --Tamagochi --Check the hungry - if petz.settings.tamagochi_mode == true and self.owner and self.is_pet and petz.settings.tamagochi_hungry_warning > 0 and not(self.status=="sleep") then + if petz.settings.tamagochi_mode == true and self.owner and self.is_pet and petz.settings.tamagochi_hungry_warning > 0 and not(self.status=="sleep") and petz.settings[self.type.."_follow"] then if not(self.tmp_follow_texture) then local items = string.split(petz.settings[self.type.."_follow"], ',') local item = petz.str_remove_spaces(items[1]) --the first one diff --git a/mods/petz/petz/locale/petz.br.tr b/mods/petz/petz/locale/petz.br.tr index 820823f..55d146e 100644 --- a/mods/petz/petz/locale/petz.br.tr +++ b/mods/petz/petz/locale/petz.br.tr @@ -98,6 +98,7 @@ has been captured=foi capturado. has been tamed.=foi domado. has starved to death!!!=morreu de fome!!! Saúde=Abraço +Hen=Galinha Herding=Pastoreio Honey=Mel Honeycomb=Favo de mel @@ -178,6 +179,7 @@ Roasted Goat Meat=Carne assada de caprino Roasted Lamb Chop=Costeleta de cordeiro assada Roasted Parrot=Papagaio Assado Roasted Porkchop=Costeleta de porco assada +Rooster=Galo Saddle=Sela Saddlebag=Sacos de Sela Santa Killer=Papai Noel Assassino diff --git a/mods/petz/petz/locale/petz.de.tr b/mods/petz/petz/locale/petz.de.tr index 89b16d2..735fcbb 100644 --- a/mods/petz/petz/locale/petz.de.tr +++ b/mods/petz/petz/locale/petz.de.tr @@ -98,6 +98,7 @@ has been captured=wurde gefangen has been tamed.=wurde gezähmt. has starved to death!!!=ist verhungert!!! Health=Gesundheit +Hen=Henne Herding=Hüten Honey=Honig Honeycomb=Honigwabe @@ -178,6 +179,7 @@ Roasted Goat Meat=Gebratenes Ziegenfleisch Roasted Lamb Chop=Gebratene Lammkeule Roasted Parrot=Gebratener Papagei Roasted Porkchop=Gebratenes Schweinekotelett +Rooster=Hahn Saddle=Sattel Saddlebag=Satteltasche Santa Killer=Santa der Killer diff --git a/mods/petz/petz/locale/petz.es.tr b/mods/petz/petz/locale/petz.es.tr index 895675b..835f2cf 100644 --- a/mods/petz/petz/locale/petz.es.tr +++ b/mods/petz/petz/locale/petz.es.tr @@ -98,6 +98,7 @@ has been captured=ha sido capturado has been tamed.=ha sido domesticado. has starved to death!!!=ha muerto de hambre!!! Health=Salud +Hen=Gallina Herding=Pastoreo Honey=Miel Honeycomb=Panal @@ -178,6 +179,7 @@ Roasted Goat Meat=Carne de cabrito asada Roasted Lamb Chop=Chuletilla de cordero asada Roasted Parrot=Loro tostado Roasted Porkchop=Chuleta de cerdo asada +Rooster=Gallo Saddle=Silla de montar Saddlebag=Alforjas Santa Killer=Papá Noel asesino diff --git a/mods/petz/petz/locale/petz.fr.tr b/mods/petz/petz/locale/petz.fr.tr index 55c61ac..0f3b8de 100644 --- a/mods/petz/petz/locale/petz.fr.tr +++ b/mods/petz/petz/locale/petz.fr.tr @@ -98,6 +98,7 @@ has been captured=a été capturé has been tamed.=a été apprivoisé. has starved to death!!!=est mort de faim!!! Health=Santé +Hen=Poule Herding=Troupeau Honey=Miel Honeycomb=Ruche @@ -178,6 +179,7 @@ Roasted Goat Meat=Viande de chèvre rôtie Roasted Lamb Chop=Mouton rôti Roasted Parrot=Perroquet rôti Roasted Porkchop=Rôti de porc +Rooster=Coq Saddle=Selle Saddlebag=Sac pour selle Santa Killer=Papa Noël tueur diff --git a/mods/petz/petz/locale/petz.ru.tr b/mods/petz/petz/locale/petz.ru.tr index 44ffaab..9ecb594 100644 --- a/mods/petz/petz/locale/petz.ru.tr +++ b/mods/petz/petz/locale/petz.ru.tr @@ -98,6 +98,7 @@ has been captured=был пойман has been tamed.=был приручен. has starved to death!!!=Умер от голода!!! Health=Здоровье +Hen=Курица Herding=выпас Honey=Мёд Honeycomb=Соты @@ -178,6 +179,7 @@ Roasted Lamb Chop=Жареные отбивные из ягненка Roasted Goat Meat=Жареное козье мясо Roasted Parrot=Жареный попугай Roasted Porkchop=Жареная свиная отбивная +Rooster=Рустер Saddle=Седло Saddlebag=Мешок Santa Killer=Злой Санта diff --git a/mods/petz/petz/misc/nodes.lua b/mods/petz/petz/misc/nodes.lua index d6b2757..f4d7566 100644 --- a/mods/petz/petz/misc/nodes.lua +++ b/mods/petz/petz/misc/nodes.lua @@ -66,7 +66,17 @@ minetest.register_craftitem("petz:kennel", { return end local pt_above = pointed_thing.above - if not(minetest.is_protected(pt_above, user:get_player_name())) then + local pos2 = { + x = pt_above.x + 3, + y = pt_above.y + 5, + z = pt_above.z + 4, + } + local player_name = user:get_player_name() + if petz.settings["disable_kennel"] then + minetest.chat_send_player(player_name, S("The placement of kennel was disabled.")) + return + end + if not(minetest.is_area_protected(pt_above, pos2, player_name, 4)) then minetest.place_schematic(pt_above, modpath..'/schematics/kennel.mts', 0, nil, true) itemstack:take_item() return itemstack @@ -194,7 +204,8 @@ minetest.register_node("petz:chicken_nest_egg", { }, on_construct = function(pos) local timer = minetest.get_node_timer(pos) - timer:start(math.random(400, 600)) + local hatch_egg_timing = petz.settings.hatch_egg_timing + timer:start(math.random(hatch_egg_timing - (hatch_egg_timing*0.2), hatch_egg_timing+ (hatch_egg_timing*0.2))) end, on_timer = function(pos) local pos_above = {x = pos.x, y = pos.y +1, z= pos.z} @@ -202,7 +213,9 @@ minetest.register_node("petz:chicken_nest_egg", { if not minetest.registered_entities["petz:chicken"] then return end - minetest.add_entity(pos_above, "petz:chicken") + local entity = minetest.add_entity(pos_above, "petz:chicken"):get_luaentity() + entity.is_baby = mobkit.remember(entity, "is_baby", true) --it is a baby + entity.growth_time = mobkit.remember(entity, "growth_time", 0.0) --the chicken to grow minetest.set_node(pos, {name= "petz:ducky_nest"}) return true end diff --git a/mods/petz/petz/mobkit/bh_ant.lua b/mods/petz/petz/mobkit/bh_ant.lua index abc5739..e084019 100644 --- a/mods/petz/petz/mobkit/bh_ant.lua +++ b/mods/petz/petz/mobkit/bh_ant.lua @@ -9,7 +9,10 @@ function petz.bh_create_anthill(self, pos) if not self.create_anthill or pos.y > 8 then return false end - local node_name = mobkit.node_name_in(self, "below") + local node_name, pos_below = mobkit.node_name_in(self, "below") + if minetest.is_protected(pos_below, "") then --check for a non-protected node + return false + end --Only construct on 'soil' or 'sand' nodes if minetest.get_item_group(node_name, "soil") > 0 or minetest.get_item_group(node_name, "sand") > 0 then local minp = { diff --git a/mods/petz/petz/mobkit/bh_aquatic.lua b/mods/petz/petz/mobkit/bh_aquatic.lua index 8f168ea..3ddba89 100644 --- a/mods/petz/petz/mobkit/bh_aquatic.lua +++ b/mods/petz/petz/mobkit/bh_aquatic.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - --- --- Aquatic Behaviours --- diff --git a/mods/petz/petz/mobkit/bh_arboreal.lua b/mods/petz/petz/mobkit/bh_arboreal.lua index 1bf3a73..fc650c3 100644 --- a/mods/petz/petz/mobkit/bh_arboreal.lua +++ b/mods/petz/petz/mobkit/bh_arboreal.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- ARBOREAL BRAIN -- diff --git a/mods/petz/petz/mobkit/bh_attack.lua b/mods/petz/petz/mobkit/bh_attack.lua index 32bd751..0baa9f9 100644 --- a/mods/petz/petz/mobkit/bh_attack.lua +++ b/mods/petz/petz/mobkit/bh_attack.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- Attack Player Behaviour -- @@ -102,8 +100,6 @@ end function petz.lq_jumpattack(self,height,target) local phase=1 - local timer=0.5 - local tgtbox = target:get_properties().collisionbox local func=function(self) if not mobkit.is_alive(target) then return true end if self.isonground then @@ -130,7 +126,6 @@ function petz.lq_jumpattack(self,height,target) -- calculate attack spot local yaw = self.object:get_yaw() local dir = minetest.yaw_to_dir(yaw) - local apos = mobkit.pos_translate2d(pos,yaw,self.attack.range) local distance = vector.distance(pos, tgtpos) --minetest.chat_send_all(tostring(distance)) if distance < 2.0 then @@ -218,8 +213,3 @@ function mobkit.lq_flyattack(self, target) end mobkit.queue_low(self,func) end - -function petz.rpg_damage(self) - local attack = self.attack or nil - local max_speed = max_speed or 0 -end diff --git a/mods/petz/petz/mobkit/bh_bee.lua b/mods/petz/petz/mobkit/bh_bee.lua index 56bfabc..ca569c1 100644 --- a/mods/petz/petz/mobkit/bh_bee.lua +++ b/mods/petz/petz/mobkit/bh_bee.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - --- --- Bee Behaviours --- @@ -126,7 +124,6 @@ function mobkit.lq_approach_behive(self) else return true end - local pos = self.object:get_pos() --local y_distance = tpos.y - pos.y if mobkit.drive_to_pos(self, tpos, 1.5, 6.28, (self.view_range / 4) ) then mobkit.clear_queue_high(self) diff --git a/mods/petz/petz/mobkit/bh_breed.lua b/mods/petz/petz/mobkit/bh_breed.lua index 6308b60..fa5cabe 100644 --- a/mods/petz/petz/mobkit/bh_breed.lua +++ b/mods/petz/petz/mobkit/bh_breed.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- Breed Behaviour -- diff --git a/mods/petz/petz/mobkit/bh_fly.lua b/mods/petz/petz/mobkit/bh_fly.lua index 3c65aa0..2934f5f 100644 --- a/mods/petz/petz/mobkit/bh_fly.lua +++ b/mods/petz/petz/mobkit/bh_fly.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- WANDER FLY BEHAVIOUR (2 functions: HQ & LQ) -- diff --git a/mods/petz/petz/mobkit/bh_follow.lua b/mods/petz/petz/mobkit/bh_follow.lua index c4aec04..32c96ae 100644 --- a/mods/petz/petz/mobkit/bh_follow.lua +++ b/mods/petz/petz/mobkit/bh_follow.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- FOLLOW BEHAVIOURS -- 2 types: for terrestrial and for flying/aquatic mobs. @@ -103,3 +101,28 @@ function mobkit.flyto(self, target) self.object:set_yaw(new_yaw) self.object:set_velocity(velocity) end + +function petz.follow_parents(self, pos) + local tpos + local ent_obj = mobkit.get_closest_entity(self, self.parents[1]) -- look for the mom to join with + if not ent_obj then + ent_obj = mobkit.get_closest_entity(self, self.parents[2]) -- look for the dad to join with + end + if ent_obj then + local ent = ent_obj:get_luaentity() + if ent then + tpos = ent_obj:get_pos() + local distance = vector.distance(pos, tpos) + if distance > 5 then + mobkit.hq_goto(self, 10, tpos) + return true + else + return false + end + else + return false + end + else + return false + end +end diff --git a/mods/petz/petz/mobkit/bh_head.lua b/mods/petz/petz/mobkit/bh_head.lua index d309edb..9abe4f9 100644 --- a/mods/petz/petz/mobkit/bh_head.lua +++ b/mods/petz/petz/mobkit/bh_head.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - function petz.bh_look_at(self, player_pos, prty) if not(petz.settings.look_at) or not(self.head) or not(petz.is_standing(self)) or self.looking or not(math.random(1, petz.settings.look_at_random) == 1) @@ -15,7 +13,7 @@ function petz.hq_look_at(self, player_pos, prty) local func = function(self) if not(self.looking) then local random_time = math.random(1, 2) - local body_yaw = petz.move_head(self, player_pos) + petz.move_head(self, player_pos) --if random_time == 1 then --move the body to fit the head --self.object:set_yaw(body_yaw) --end @@ -57,7 +55,7 @@ function petz.move_head(self, tpos) self.head_rotation = vector.add(head_rotation, self.head.rotation_origin) --the offset for the rotation, depends on the blender model self.object:set_bone_position("head", self.head.position, self.head_rotation) --set the head movement --minetest.chat_send_all(tostring(mokapi.degrees_to_radians(yaw))) - return mokapi.degrees_to_radians(body_yaw-yaw) + return mokapi.degrees_to_radians(body_yaw-yaw) --returns body_yaw end --this sets the mob to move it's head back to pointing forwards diff --git a/mods/petz/petz/mobkit/bh_herding.lua b/mods/petz/petz/mobkit/bh_herding.lua index e31ca80..59c21ef 100644 --- a/mods/petz/petz/mobkit/bh_herding.lua +++ b/mods/petz/petz/mobkit/bh_herding.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- Herding Behaviour -- diff --git a/mods/petz/petz/mobkit/bh_hunt.lua b/mods/petz/petz/mobkit/bh_hunt.lua index 946fd6a..d9cf448 100644 --- a/mods/petz/petz/mobkit/bh_hunt.lua +++ b/mods/petz/petz/mobkit/bh_hunt.lua @@ -1,5 +1,5 @@ -function petz.bh_hunt(self, prty) - if self.tamed == true then +function petz.bh_hunt(self, prty, force) + if self.tamed == true and not(force) then return end local preys_list = petz.settings[self.type.."_preys"] diff --git a/mods/petz/petz/mobkit/bh_mount.lua b/mods/petz/petz/mobkit/bh_mount.lua index 48ba1a0..728178f 100644 --- a/mods/petz/petz/mobkit/bh_mount.lua +++ b/mods/petz/petz/mobkit/bh_mount.lua @@ -70,9 +70,9 @@ function mobkit.lq_mountdriver(self) local auto_drive = false local func = function(self) if not(self.driver) then return true end - local rot_steer, rot_view = math.pi/2, 0 + local rot_view = 0 if self.player_rotation.y == 90 then - rot_steer, rot_view = 0, math.pi/2 + rot_view = math.pi/2 end local acce_y = 0 local velo= { diff --git a/mods/petz/petz/mobkit/bh_replace.lua b/mods/petz/petz/mobkit/bh_replace.lua index c55c83a..e522dbb 100644 --- a/mods/petz/petz/mobkit/bh_replace.lua +++ b/mods/petz/petz/mobkit/bh_replace.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- Replace Behaviour -- diff --git a/mods/petz/petz/mobkit/bh_runaway.lua b/mods/petz/petz/mobkit/bh_runaway.lua index f81a762..a96a502 100644 --- a/mods/petz/petz/mobkit/bh_runaway.lua +++ b/mods/petz/petz/mobkit/bh_runaway.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- Runaway from predator behaviour -- diff --git a/mods/petz/petz/mobkit/bh_teleport.lua b/mods/petz/petz/mobkit/bh_teleport.lua index 125e5da..2fb8b36 100644 --- a/mods/petz/petz/mobkit/bh_teleport.lua +++ b/mods/petz/petz/mobkit/bh_teleport.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- Teleport Behaviour -- diff --git a/mods/petz/petz/mobkit/bh_torch.lua b/mods/petz/petz/mobkit/bh_torch.lua index ffa9bbe..3fe81bc 100644 --- a/mods/petz/petz/mobkit/bh_torch.lua +++ b/mods/petz/petz/mobkit/bh_torch.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- Approach Torch Behaviour -- for moths (not finished!!!) diff --git a/mods/petz/petz/mobkit/br_ant.lua b/mods/petz/petz/mobkit/br_ant.lua index 2899b21..d84516c 100644 --- a/mods/petz/petz/mobkit/br_ant.lua +++ b/mods/petz/petz/mobkit/br_ant.lua @@ -38,7 +38,7 @@ function petz.ant_brain(self) -- hunt a prey (another queen in the case of a queen) if prty < 20 and self.ant_type == "queen" then - petz.bh_hunt(self, 20) + petz.bh_hunt(self, 20, true) end if prty < 13 and self.ant_type == "queen" and not(self.anthill_founded) then --if queen, try to create a colony (anthill) diff --git a/mods/petz/petz/mobkit/br_aquatic.lua b/mods/petz/petz/mobkit/br_aquatic.lua index 611cf62..ab2e8d5 100644 --- a/mods/petz/petz/mobkit/br_aquatic.lua +++ b/mods/petz/petz/mobkit/br_aquatic.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- AQUATIC BRAIN -- diff --git a/mods/petz/petz/mobkit/br_bee.lua b/mods/petz/petz/mobkit/br_bee.lua index b7f80f7..8c54ad2 100644 --- a/mods/petz/petz/mobkit/br_bee.lua +++ b/mods/petz/petz/mobkit/br_bee.lua @@ -1,6 +1,3 @@ -local modpath, S = ... - --- -- BEE BRAIN -- diff --git a/mods/petz/petz/mobkit/br_herbivore.lua b/mods/petz/petz/mobkit/br_herbivore.lua index f5d30c1..a536732 100644 --- a/mods/petz/petz/mobkit/br_herbivore.lua +++ b/mods/petz/petz/mobkit/br_herbivore.lua @@ -1,6 +1,3 @@ -local modpath, S = ... - --- -- 1. HERBIBORE/FLYING MOBS BRAIN -- @@ -100,6 +97,20 @@ function petz.herbivore_brain(self) end end + -- hunt a prey (another congener) + if prty < 12 and self.aggressive then + petz.bh_hunt(self, 12, true) + end + + --Baby petz follow their parents + if prty < 10 then + if petz.settings.parent_search and self.parents then + if mobkit.timer(self, 5) then --each 5 seconds search for parents + petz.follow_parents(self, pos) + end + end + end + --if prty < 7 and self.type == "moth" and mobkit.is_queue_empty_high(self) then --search for a squareball --local pos_torch_near = minetest.find_node_near(pos, self.view_range, "default:torch") --if pos_torch_near then @@ -108,7 +119,7 @@ function petz.herbivore_brain(self) --end --end - --Replace nodes by others + --Poop if prty < 7 then petz.poop(self, pos) end diff --git a/mods/petz/petz/mobkit/br_monster.lua b/mods/petz/petz/mobkit/br_monster.lua index cbacc5b..0e3344a 100644 --- a/mods/petz/petz/mobkit/br_monster.lua +++ b/mods/petz/petz/mobkit/br_monster.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- MONSTER BRAIN -- diff --git a/mods/petz/petz/mobkit/br_predator.lua b/mods/petz/petz/mobkit/br_predator.lua index 7d99e82..1f4bae4 100644 --- a/mods/petz/petz/mobkit/br_predator.lua +++ b/mods/petz/petz/mobkit/br_predator.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- PREDATOR BRAIN -- @@ -49,7 +47,7 @@ function petz.predator_brain(self) -- hunt a prey if prty < 12 then -- if not busy with anything important - petz.bh_hunt(self, 12) + petz.bh_hunt(self, 12, false) end if prty < 10 then diff --git a/mods/petz/petz/mobkit/br_semiaquatic.lua b/mods/petz/petz/mobkit/br_semiaquatic.lua index a05d3c0..feda364 100644 --- a/mods/petz/petz/mobkit/br_semiaquatic.lua +++ b/mods/petz/petz/mobkit/br_semiaquatic.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- SEMIAQUATIC BRAIN -- diff --git a/mods/petz/petz/mobkit/helper_functions.lua b/mods/petz/petz/mobkit/helper_functions.lua index ab10bd6..f658b9e 100644 --- a/mods/petz/petz/mobkit/helper_functions.lua +++ b/mods/petz/petz/mobkit/helper_functions.lua @@ -1,5 +1,3 @@ -local modpath, S = ... - -- -- Helpers Functions -- diff --git a/mods/petz/petz/mobkit/mobkit.lua b/mods/petz/petz/mobkit/mobkit.lua index 24e186e..21fc056 100644 --- a/mods/petz/petz/mobkit/mobkit.lua +++ b/mods/petz/petz/mobkit/mobkit.lua @@ -1,26 +1,26 @@ local modpath, S = ... assert(loadfile(modpath .. "/mobkit/bh_ant.lua"))(modpath) -assert(loadfile(modpath .. "/mobkit/bh_aquatic.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_arboreal.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_attack.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_bee.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_breed.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_fly.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_follow.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_herding.lua"))(modpath, S) +assert(loadfile(modpath .. "/mobkit/bh_aquatic.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_arboreal.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_attack.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_bee.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_breed.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_fly.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_follow.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_herding.lua"))() assert(loadfile(modpath .. "/mobkit/bh_hunt.lua"))() assert(loadfile(modpath .. "/mobkit/bh_mount.lua"))() -assert(loadfile(modpath .. "/mobkit/bh_replace.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_runaway.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_teleport.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_torch.lua"))(modpath, S) +assert(loadfile(modpath .. "/mobkit/bh_replace.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_runaway.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_teleport.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_torch.lua"))() assert(loadfile(modpath .. "/mobkit/br_ant.lua"))() -assert(loadfile(modpath .. "/mobkit/br_aquatic.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/br_bee.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/br_herbivore.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/br_monster.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/br_predator.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/br_semiaquatic.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/helper_functions.lua"))(modpath, S) -assert(loadfile(modpath .. "/mobkit/bh_head.lua"))(modpath, S) +assert(loadfile(modpath .. "/mobkit/br_aquatic.lua"))() +assert(loadfile(modpath .. "/mobkit/br_bee.lua"))() +assert(loadfile(modpath .. "/mobkit/br_herbivore.lua"))() +assert(loadfile(modpath .. "/mobkit/br_monster.lua"))() +assert(loadfile(modpath .. "/mobkit/br_predator.lua"))() +assert(loadfile(modpath .. "/mobkit/br_semiaquatic.lua"))() +assert(loadfile(modpath .. "/mobkit/helper_functions.lua"))() +assert(loadfile(modpath .. "/mobkit/bh_head.lua"))() diff --git a/mods/petz/petz/models/petz_bomberman_texture0.png b/mods/petz/petz/models/petz_bomberman_texture0.png deleted file mode 100644 index 318a40d..0000000 Binary files a/mods/petz/petz/models/petz_bomberman_texture0.png and /dev/null differ diff --git a/mods/petz/petz/models/petz_chick.dae b/mods/petz/petz/models/petz_chick.dae new file mode 100644 index 0000000..971eb10 --- /dev/null +++ b/mods/petz/petz/models/petz_chick.dae @@ -0,0 +1,394 @@ + + + +VoxelShop User +VoxelShop V1.8.26 + + +2020-11-29T13:30:01 +2020-11-29T13:30:01 + +Z_UP + + + +file://petz_chick_texture0.png + + + + + + + +petz_chick_texture0-image + + + + +petz_chick_texture0-surface +WRAP +WRAP +NEAREST +NEAREST + + + + + +0 0 0 1 + + +0 0 0 1 + + + + + + + + + + + + + + + + + + +-6 -4 -8 -6 0 -10 -6 -4 -10 -6 0 -8 -4 -4 -8 -4 0 -10 -4 -4 -10 -4 0 -8 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +2 -4 -8 2 0 -10 2 -4 -10 2 0 -8 4 -4 -8 4 0 -10 4 -4 -10 4 0 -8 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-2 -8 -6 -2 -6 -8 -2 -8 -8 -2 -6 -6 0 -8 -6 0 -6 -8 0 -8 -8 0 -6 -6 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-2 2 -2 -2 4 -4 -2 2 -4 -2 4 -2 -4 -4 0 -4 2 -6 -4 -4 -6 -4 2 0 2 -4 0 2 2 -6 2 -4 -6 2 2 0 0 2 -2 0 4 -4 0 2 -4 0 4 -2 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 4 0 5 1 6 2 4 0 7 1 5 2 9 1 8 0 10 2 11 1 8 0 9 2 13 1 12 0 14 2 15 1 12 0 13 2 5 1 10 0 6 2 9 1 10 0 5 2 1 1 14 0 2 2 13 1 14 0 1 2 12 0 3 1 0 2 12 0 15 1 3 2 8 0 7 1 4 2 8 0 11 1 7 2 10 0 4 1 6 2 10 0 8 1 4 2 14 1 9 0 5 2 2 1 14 0 5 2 11 1 9 0 14 2 7 1 2 0 5 2 12 1 11 0 14 2 0 1 2 0 7 2 11 1 12 0 7 2 12 1 0 0 7 2 3 1 13 0 1 2 15 1 13 0 3 2

+
+
+
+ + + +0 -2 -12 0 0 -14 0 -2 -16 0 2 -16 0 0 -12 0 2 -14 2 -2 -12 2 0 -14 2 -2 -16 2 2 -16 2 0 -12 2 2 -14 + + + + + + + + + +0.6667845 0.66643095 0.83309764 0.66643095 0.6667845 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 1 0 3 1 2 2 0 0 4 1 1 2 1 0 5 1 3 2 7 1 6 0 8 2 9 1 7 0 8 2 10 1 6 0 7 2 11 1 7 0 9 2 3 1 8 0 2 2 9 1 8 0 3 2 6 0 4 1 0 2 6 0 10 1 4 2 7 0 5 1 1 2 7 0 11 1 5 2 8 0 0 1 2 2 8 0 6 1 0 2 4 1 7 0 1 2 10 1 7 0 4 2 5 1 9 0 3 2 11 1 9 0 5 2

+
+
+
+ + + +-4 -6 -6 -4 2 -12 -4 -6 -12 -4 2 -6 2 -6 -6 2 2 -12 2 -6 -12 2 2 -6 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-4 -2 -12 -4 0 -14 -4 -2 -16 -4 2 -16 -4 0 -12 -4 2 -14 -2 -2 -12 -2 0 -14 -2 -2 -16 -2 2 -16 -2 0 -12 -2 2 -14 + + + + + + + + + +0.6667845 0.66643095 0.83309764 0.66643095 0.6667845 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 1 0 3 1 2 2 0 0 4 1 1 2 1 0 5 1 3 2 7 1 6 0 8 2 9 1 7 0 8 2 10 1 6 0 7 2 11 1 7 0 9 2 3 1 8 0 2 2 9 1 8 0 3 2 6 0 4 1 0 2 6 0 10 1 4 2 7 0 5 1 1 2 7 0 11 1 5 2 8 0 0 1 2 2 8 0 6 1 0 2 4 1 7 0 1 2 10 1 7 0 4 2 5 1 9 0 3 2 11 1 9 0 5 2

+
+
+
+
+ + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + + + + + +
diff --git a/mods/petz/petz/models/petz_chicken.b3d b/mods/petz/petz/models/petz_chicken.b3d index a95eba0..cbf7e33 100644 Binary files a/mods/petz/petz/models/petz_chicken.b3d and b/mods/petz/petz/models/petz_chicken.b3d differ diff --git a/mods/petz/petz/models/petz_chicken.blend b/mods/petz/petz/models/petz_chicken.blend index 8dd18a0..f0b53b9 100644 Binary files a/mods/petz/petz/models/petz_chicken.blend and b/mods/petz/petz/models/petz_chicken.blend differ diff --git a/mods/petz/petz/models/petz_chicken.dae b/mods/petz/petz/models/petz_chicken.dae new file mode 100644 index 0000000..fcc84cf --- /dev/null +++ b/mods/petz/petz/models/petz_chicken.dae @@ -0,0 +1,488 @@ + + + +VoxelShop User +VoxelShop V1.8.26 + + +2020-11-29T13:34:13 +2020-11-29T13:34:13 + +Z_UP + + + +file://petz_chicken_texture0.png + + + + + + + +petz_chicken_texture0-image + + + + +petz_chicken_texture0-surface +WRAP +WRAP +NEAREST +NEAREST + + + + + +0 0 0 1 + + +0 0 0 1 + + + + + + + + + + + + + + + + + + +-2 2 -2 -2 4 -4 -2 2 -4 -2 4 -2 0 2 -2 0 4 -4 0 2 -4 0 4 -2 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +0 0 -14 0 2 -16 0 0 -16 0 2 -14 -4 0 -14 -4 2 -16 -4 0 -16 -4 2 -14 2 0 -14 2 2 -16 2 0 -16 2 2 -14 -2 0 -14 -2 2 -16 -2 0 -16 -2 2 -14 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 4 0 5 1 6 2 4 0 7 1 5 2 9 1 8 0 10 2 11 1 8 0 9 2 13 1 12 0 14 2 15 1 12 0 13 2 1 1 10 0 2 2 9 1 10 0 1 2 5 1 14 0 6 2 13 1 14 0 5 2 8 0 3 1 0 2 8 0 11 1 3 2 12 0 7 1 4 2 12 0 15 1 7 2 10 0 0 1 2 2 10 0 8 1 0 2 14 0 4 1 6 2 14 0 12 1 4 2 3 1 9 0 1 2 11 1 9 0 3 2 7 1 13 0 5 2 15 1 13 0 7 2

+
+
+
+ + + +-6 -4 -8 -6 0 -10 -6 -4 -10 -6 0 -8 -4 -4 -8 -4 0 -10 -4 -4 -10 -4 0 -8 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +2 -4 -8 2 0 -10 2 -4 -10 2 0 -8 4 -4 -8 4 0 -10 4 -4 -10 4 0 -8 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-2 -8 -6 -2 -6 -8 -2 -8 -8 -2 -6 -6 0 -8 -6 0 -6 -8 0 -8 -8 0 -6 -6 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-4 -4 0 -4 2 -6 -4 -4 -6 -4 2 0 2 -4 0 2 2 -6 2 -4 -6 2 2 0 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +0 -2 -12 0 0 -16 0 -2 -16 0 0 -12 2 -2 -12 2 0 -16 2 -2 -16 2 0 -12 + + + + + + + + + +0.6667845 0.66643095 0.83309764 0.66643095 0.6667845 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-4 -6 -6 -4 2 -12 -4 -6 -12 -4 2 -6 2 -6 -6 2 2 -12 2 -6 -12 2 2 -6 + + + + + + + + + +0.16678452 0.66643095 0.33309764 0.66643095 0.16678452 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-4 -2 -12 -4 0 -16 -4 -2 -16 -4 0 -12 -2 -2 -12 -2 0 -16 -2 -2 -16 -2 0 -12 + + + + + + + + + +0.6667845 0.66643095 0.83309764 0.66643095 0.6667845 0.33380473 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+
+ + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + + + + + +
diff --git a/mods/petz/petz/models/petz_cock.b3d b/mods/petz/petz/models/petz_cock.b3d new file mode 100644 index 0000000..2ad9bcf Binary files /dev/null and b/mods/petz/petz/models/petz_cock.b3d differ diff --git a/mods/petz/petz/models/petz_hen.b3d b/mods/petz/petz/models/petz_hen.b3d new file mode 100644 index 0000000..1859422 Binary files /dev/null and b/mods/petz/petz/models/petz_hen.b3d differ diff --git a/mods/petz/petz/models/petz_hen.blend b/mods/petz/petz/models/petz_hen.blend new file mode 100644 index 0000000..eed56cb Binary files /dev/null and b/mods/petz/petz/models/petz_hen.blend differ diff --git a/mods/petz/petz/models/petz_rooster.b3d b/mods/petz/petz/models/petz_rooster.b3d new file mode 100644 index 0000000..4e8602d Binary files /dev/null and b/mods/petz/petz/models/petz_rooster.b3d differ diff --git a/mods/petz/petz/models/petz_rooster.blend b/mods/petz/petz/models/petz_rooster.blend new file mode 100644 index 0000000..119b68f Binary files /dev/null and b/mods/petz/petz/models/petz_rooster.blend differ diff --git a/mods/petz/petz/nodeboxes/petz_rooster.dae b/mods/petz/petz/nodeboxes/petz_rooster.dae new file mode 100644 index 0000000..977b60d --- /dev/null +++ b/mods/petz/petz/nodeboxes/petz_rooster.dae @@ -0,0 +1,676 @@ + + + +VoxelShop User +VoxelShop V1.8.26 + + +2020-11-25T23:02:01 +2020-11-25T23:02:01 + +Z_UP + + + +file://petz_cock_texture0.png + + + + + + + +petz_cock_texture0-image + + + + +petz_cock_texture0-surface +WRAP +WRAP +NEAREST +NEAREST + + + + + +0 0 0 1 + + +0 0 0 1 + + + + + + + + + + + + + + + + + + +-2 -14 -2 -2 -8 -4 -2 -14 -4 -2 -8 -2 0 -14 -2 0 -8 -4 0 -14 -4 0 -8 -2 + + + + + + + + + +0.11118968 0.8332155 0.22206509 0.8332155 0.11118968 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-2 6 -2 -2 8 -6 -2 6 -6 -2 8 -2 0 6 -2 0 8 -6 0 6 -6 0 8 -2 + + + + + + + + + +0.77785635 0.8332155 0.8887318 0.8332155 0.77785635 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-4 -6 -2 -4 4 -10 -4 -6 -10 -4 4 -2 2 -6 -2 2 4 -10 2 -6 -10 2 4 -2 + + + + + + + + + +0.77785635 0.8332155 0.8887318 0.8332155 0.77785635 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-4 4 6 -4 10 -2 -4 4 -2 -4 10 6 2 4 6 2 10 -2 2 4 -2 2 10 6 + + + + + + + + + +0.77785635 0.8332155 0.8887318 0.8332155 0.77785635 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +2 -4 -4 2 4 -8 2 -4 -8 2 4 -4 4 -4 -4 4 4 -8 4 -4 -8 4 4 -4 + + + + + + + + + +0.11118968 0.33321548 0.22206509 0.33321548 0.11118968 0.16690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +-6 -4 -4 -6 4 -8 -6 -4 -8 -6 4 -4 -4 -4 -4 -4 4 -8 -4 -4 -8 -4 4 -4 + + + + + + + + + +0.11118968 0.33321548 0.22206509 0.33321548 0.11118968 0.16690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 5 1 4 0 6 2 7 1 4 0 5 2 1 1 6 0 2 2 5 1 6 0 1 2 4 0 3 1 0 2 4 0 7 1 3 2 6 0 0 1 2 2 6 0 4 1 0 2 3 1 5 0 1 2 7 1 5 0 3 2

+
+
+
+ + + +0 -2 -10 0 0 -16 0 -2 -16 0 0 -10 -4 -2 -10 -4 0 -16 -4 -2 -16 -4 0 -10 2 -2 -10 2 0 -16 2 -2 -16 2 0 -10 -2 -2 -10 -2 0 -16 -2 -2 -16 -2 0 -10 + + + + + + + + + +0.27794388 0.6667774 0.4443614 0.8331119 0.4443614 0.6667774 0.27786082 0.6668881 0.27786082 0.8332226 0.44427836 0.8332226 0.444523 0.8332155 0.5553984 0.8332155 0.444523 0.66690236 0.11118968 0.8332155 0.22206509 0.8332155 0.11118968 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 3 3 4 1 5 4 0 5 1 6 2 4 3 7 4 5 5 9 1 8 0 10 2 11 4 8 3 9 5 13 1 12 0 14 2 15 4 12 3 13 5 1 7 10 6 2 8 9 7 10 6 1 8 5 7 14 6 6 8 13 7 14 6 5 8 8 9 3 10 0 11 8 9 11 10 3 11 12 9 7 10 4 11 12 9 15 10 7 11 10 1 0 0 2 2 10 5 8 4 0 3 14 1 4 0 6 2 14 5 12 4 4 3 3 0 9 1 1 2 11 4 9 5 3 3 7 0 13 1 5 2 15 4 13 5 7 3

+
+
+
+ + + +-6 -2 -2 -6 2 -4 -6 -2 -4 -6 2 -2 -6 -6 -8 -6 0 -10 -6 -6 -10 -6 0 -8 -4 -2 -2 -4 2 -4 -4 -2 -4 -4 2 -2 -4 -6 -8 -4 0 -10 -4 -6 -10 -4 0 -8 + + + + + + + + + +0.11118968 0.33321548 0.22206509 0.33321548 0.11118968 0.16690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 4 0 5 1 6 2 4 0 7 1 5 2 9 1 8 0 10 2 11 1 8 0 9 2 13 1 12 0 14 2 15 1 12 0 13 2 5 1 14 0 6 2 13 1 14 0 5 2 1 1 10 0 2 2 9 1 10 0 1 2 12 0 7 1 4 2 12 0 15 1 7 2 8 0 3 1 0 2 8 0 11 1 3 2 10 0 0 1 2 2 10 0 8 1 0 2 14 0 4 1 6 2 14 0 12 1 4 2 3 1 9 0 1 2 11 1 9 0 3 2 7 1 13 0 5 2 15 1 13 0 7 2

+
+
+
+ + + +-2 10 6 -2 12 4 -2 10 4 -2 12 6 -2 10 2 -2 12 0 -2 10 0 -2 12 2 2 -2 -2 2 2 -4 2 -2 -4 2 2 -2 2 -6 -8 2 0 -10 2 -6 -10 2 0 -8 0 10 6 0 12 4 0 10 4 0 12 6 0 10 2 0 12 0 0 10 0 0 12 2 4 -2 -2 4 2 -4 4 -2 -4 4 2 -2 4 -6 -8 4 0 -10 4 -6 -10 4 0 -8 + + + + + + + + + +0.77785635 0.8332155 0.8887318 0.8332155 0.77785635 0.66690236 0.11118968 0.33321548 0.22206509 0.33321548 0.11118968 0.16690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 4 0 5 1 6 2 4 0 7 1 5 2 8 3 9 4 10 5 8 3 11 4 9 5 12 3 13 4 14 5 12 3 15 4 13 5 17 1 16 0 18 2 19 1 16 0 17 2 21 1 20 0 22 2 23 1 20 0 21 2 25 4 24 3 26 5 27 4 24 3 25 5 29 4 28 3 30 5 31 4 28 3 29 5 13 4 30 3 14 5 29 4 30 3 13 5 9 4 26 3 10 5 25 4 26 3 9 5 5 1 22 0 6 2 21 1 22 0 5 2 1 1 18 0 2 2 17 1 18 0 1 2 28 3 15 4 12 5 28 3 31 4 15 5 24 3 11 4 8 5 24 3 27 4 11 5 20 0 7 1 4 2 20 0 23 1 7 2 16 0 3 1 0 2 16 0 19 1 3 2 26 3 8 4 10 5 26 3 24 4 8 5 30 3 12 4 14 5 30 3 28 4 12 5 22 0 4 1 6 2 22 0 20 1 4 2 18 0 0 1 2 2 18 0 16 1 0 2 15 4 29 3 13 5 31 4 29 3 15 5 11 4 25 3 9 5 27 4 25 3 11 5 7 1 21 0 5 2 23 1 21 0 7 2 3 1 17 0 1 2 19 1 17 0 3 2

+
+
+
+ + + +0 -10 0 0 -8 -2 0 -10 -2 0 -8 0 -2 -12 0 -2 -10 -2 -2 -12 -2 -2 -10 0 -2 -14 -4 -2 -12 -8 -2 -14 -8 -2 -12 -4 -4 -10 0 -4 -8 -2 -4 -10 -2 -4 -8 0 2 -10 0 2 -8 -2 2 -10 -2 2 -8 0 0 -12 0 0 -12 -2 0 -14 -4 0 -12 -8 0 -14 -8 0 -12 -4 -2 -8 -2 -2 -8 0 + + + + + + + + + +0.11118968 0.8332155 0.22206509 0.8332155 0.11118968 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 4 0 5 1 6 2 4 0 7 1 5 2 8 0 9 1 10 2 8 0 11 1 9 2 12 0 13 1 14 2 12 0 15 1 13 2 17 1 16 0 18 2 19 1 16 0 17 2 2 1 20 0 21 2 0 1 20 0 2 2 23 1 22 0 24 2 25 1 22 0 23 2 26 1 7 0 5 2 27 1 7 0 26 2 9 1 24 0 10 2 23 1 24 0 9 2 1 1 18 0 2 2 17 1 18 0 1 2 5 1 21 0 6 2 2 1 21 0 5 2 13 1 5 0 14 2 26 1 5 0 13 2 22 0 11 1 8 2 22 0 25 1 11 2 16 0 3 1 0 2 16 0 19 1 3 2 20 0 7 1 4 2 20 0 0 1 7 2 7 0 15 1 12 2 7 0 27 1 15 2 18 0 0 1 2 2 18 0 16 1 0 2 5 0 12 1 14 2 5 0 7 1 12 2 21 0 4 1 6 2 21 0 20 1 4 2 24 0 8 1 10 2 24 0 22 1 8 2 3 1 17 0 1 2 19 1 17 0 3 2 15 1 26 0 13 2 27 1 26 0 15 2 7 1 2 0 5 2 0 1 2 0 7 2 11 1 23 0 9 2 25 1 23 0 11 2

+
+
+
+ + + +-2 4 8 -2 6 6 -2 4 6 -2 6 8 -2 8 8 -2 10 6 -2 8 6 -2 10 8 -2 2 6 -2 4 4 -2 2 4 0 4 8 0 6 6 0 4 6 0 6 8 0 8 8 0 10 6 0 8 6 0 10 8 0 2 6 0 4 4 0 2 4 + + + + + + + + + +0.77785635 0.8332155 0.8887318 0.8332155 0.77785635 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 4 0 5 1 6 2 4 0 7 1 5 2 8 0 9 1 10 2 8 0 2 1 9 2 12 1 11 0 13 2 14 1 11 0 12 2 16 1 15 0 17 2 18 1 15 0 16 2 20 1 19 0 21 2 13 1 19 0 20 2 9 1 21 0 10 2 20 1 21 0 9 2 1 1 13 0 2 2 12 1 13 0 1 2 5 1 17 0 6 2 16 1 17 0 5 2 19 0 2 1 8 2 19 0 13 1 2 2 11 0 3 1 0 2 11 0 14 1 3 2 15 0 7 1 4 2 15 0 18 1 7 2 21 0 8 1 10 2 21 0 19 1 8 2 13 0 0 1 2 2 13 0 11 1 0 2 17 0 4 1 6 2 17 0 15 1 4 2 2 1 20 0 9 2 13 1 20 0 2 2 3 1 12 0 1 2 14 1 12 0 3 2 7 1 16 0 5 2 18 1 16 0 7 2

+
+
+
+ + + +-2 2 0 -2 4 -2 -2 2 -2 -2 4 0 -4 -8 -2 -4 -6 -6 -4 -8 -6 -4 -6 -2 -4 4 -2 -4 6 -8 -4 4 -8 -4 6 -2 2 -8 -2 2 -6 -6 2 -8 -6 2 -6 -2 2 4 -2 2 6 -8 2 4 -8 2 6 -2 0 2 0 0 4 -2 0 2 -2 0 4 0 + + + + + + + + + +0.77785635 0.8332155 0.8887318 0.8332155 0.77785635 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 4 0 5 1 6 2 4 0 7 1 5 2 8 0 9 1 10 2 8 0 11 1 9 2 13 1 12 0 14 2 15 1 12 0 13 2 17 1 16 0 18 2 19 1 16 0 17 2 21 1 20 0 22 2 23 1 20 0 21 2 9 1 18 0 10 2 17 1 18 0 9 2 5 1 14 0 6 2 13 1 14 0 5 2 1 1 22 0 2 2 21 1 22 0 1 2 12 0 7 1 4 2 12 0 15 1 7 2 21 0 16 1 19 2 11 0 21 1 19 2 1 0 21 1 11 2 1 0 11 1 8 2 20 0 3 1 0 2 20 0 23 1 3 2 22 0 0 1 2 2 22 0 20 1 0 2 18 0 21 1 10 2 21 0 1 1 10 2 18 0 16 1 21 2 1 0 8 1 10 2 14 0 4 1 6 2 14 0 12 1 4 2 3 1 21 0 1 2 23 1 21 0 3 2 11 1 17 0 9 2 19 1 17 0 11 2 7 1 13 0 5 2 15 1 13 0 7 2

+
+
+
+ + + +0 -4 -12 0 -2 -14 0 -4 -14 0 -2 -12 0 0 -14 0 2 -16 0 0 -16 0 2 -14 2 -2 -14 2 0 -16 2 -2 -16 2 0 -14 -4 -4 -12 -4 -2 -14 -4 -4 -14 -4 -2 -12 -4 0 -14 -4 2 -16 -4 0 -16 -4 2 -14 -6 -2 -14 -6 0 -16 -6 -2 -16 -6 0 -14 2 -4 -12 2 -4 -14 2 -2 -12 2 2 -16 2 2 -14 4 -2 -14 4 0 -16 4 -2 -16 4 0 -14 -2 -4 -12 -2 -2 -14 -2 -4 -14 -2 -2 -12 -2 0 -14 -2 2 -16 -2 0 -16 -2 2 -14 -4 -2 -16 + + + + + + + + + +0.11118968 0.8332155 0.22206509 0.8332155 0.11118968 0.66690236 0.444523 0.8332155 0.5553984 0.8332155 0.444523 0.66690236 + + + + + + + + + + + + + +

0 0 1 1 2 2 0 0 3 1 1 2 4 3 5 4 6 5 4 3 7 4 5 5 8 3 9 4 10 5 8 3 11 4 9 5 12 0 13 1 14 2 12 0 15 1 13 2 16 3 17 4 18 5 16 3 19 4 17 5 20 3 21 4 22 5 20 3 23 4 21 5 8 1 24 0 25 2 26 1 24 0 8 2 27 4 11 3 9 5 28 4 11 3 27 5 30 4 29 3 31 5 32 4 29 3 30 5 34 1 33 0 35 2 36 1 33 0 34 2 38 4 37 3 39 5 40 4 37 3 38 5 18 4 13 3 41 5 16 4 13 3 18 5 9 4 31 3 10 5 30 4 31 3 9 5 5 4 9 3 6 5 27 4 9 3 5 5 17 4 39 3 18 5 38 4 39 3 17 5 21 4 41 3 22 5 18 4 41 3 21 5 1 1 25 0 2 2 8 1 25 0 1 2 13 1 35 0 14 2 34 1 35 0 13 2 29 3 11 4 8 5 29 3 32 4 11 5 11 3 7 4 4 5 11 3 28 4 7 5 37 3 19 4 16 5 37 3 40 4 19 5 13 3 23 4 20 5 13 3 16 4 23 5 24 0 3 1 0 2 24 0 26 1 3 2 33 0 15 1 12 2 33 0 36 1 15 2 31 3 8 4 10 5 31 3 29 4 8 5 41 3 20 4 22 5 41 3 13 4 20 5 9 3 4 4 6 5 9 3 11 4 4 5 39 3 16 4 18 5 39 3 37 4 16 5 25 0 0 1 2 2 25 0 24 1 0 2 35 0 12 1 14 2 35 0 33 1 12 2 11 4 30 3 9 5 32 4 30 3 11 5 23 4 18 3 21 5 16 4 18 3 23 5 7 4 27 3 5 5 28 4 27 3 7 5 19 4 38 3 17 5 40 4 38 3 19 5 3 1 8 0 1 2 26 1 8 0 3 2 15 1 34 0 13 2 36 1 34 0 15 2

+
+
+
+
+ + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + +-0.0 -0.0 -0.0 +0 0 1 0 +0 1 0 0 +1 0 0 0 +0.03125 0.03125 0.03125 + + + + + + + + + + + + + + + +
diff --git a/mods/petz/petz/petz.conf b/mods/petz/petz/petz.conf index a00782f..b0519a9 100644 --- a/mods/petz/petz/petz.conf +++ b/mods/petz/petz/petz.conf @@ -1,7 +1,7 @@ # WARNING: Do NOT change the Petz Mod preferences here # Do create a 'user.conf' with your favourite preferences instead of. -petz_list = kitty,puppy,ducky,lamb,lion,calf,panda,grizzly,pony,parrot,chicken,piggy,wolf,elephant,elephant_female,pigeon,moth,camel,clownfish,bat,silkworm,chimp,hamster,dolphin,tropicalfish,beaver,turtle,frog,toucan,bee,queen_bee,mr_pumpkin,foxy,penguin,polar_bear,santa_killer,werewolf,tarantula,butterfly,rat,goat,squirrel,leopard,snow_leopard,ant,warrior_ant,queen_ant +petz_list = kitty,puppy,ducky,lamb,lion,calf,panda,grizzly,pony,parrot,chicken,piggy,wolf,elephant,elephant_female,pigeon,moth,camel,clownfish,bat,silkworm,chimp,hamster,dolphin,tropicalfish,beaver,turtle,frog,toucan,bee,queen_bee,mr_pumpkin,foxy,penguin,polar_bear,santa_killer,werewolf,tarantula,butterfly,rat,goat,squirrel,leopard,snow_leopard,ant,warrior_ant,queen_ant,rooster,hen ##Tamagochi Mode (Take care of your pet: fed it...) tamagochi_mode = true @@ -50,6 +50,8 @@ spawn_peaceful_monsters_ratio = 0.7 bee_disable_spawn = true ant_disable_spawn = true warrior_ant_disable_spawn = true +rooster_disable_spawn = true +chicken_disable_spawn = true ## The interval is avg spawn attempt interval (seconds) for every player spawn_interval = 30 @@ -119,11 +121,17 @@ lay_antegg_timing = 1200 max_laid_anteggs = 500 ant_population = 5 +##Children search for their parents +#Only for chicks +parent_search = true + ##Lay Eggs -#Default = 90000 -lay_egg_chance = 90000 +#Default = 1200= 1 egg by day +lay_egg_timing = 1200 #Max eggs to hatch by animal max_laid_eggs = 10 +#Time an egg to hatch +hatch_egg_timing = 500 ##Misc Random Sound for Petz #Default = 50 @@ -152,7 +160,7 @@ max_honey_behive = 10 max_bees_behive = 3 #bees_outing_rate=1 means that a bee inmediatelly go out the behive for pollen bee_outing_ratio = 20 -#The time between a Beehive is created by a player and a worker bee is automatically created +#The time between a Beehive is created by a pger and a worker bee is automatically created worker_bee_delay = 300 #behive_spawn_chance = 0.6 #max_behives_in_area = 3 @@ -170,6 +178,9 @@ igniter_damage = 1 ##Weapons pumpkin_grenade_damage = 8 +##Disable Kennel +disable_kennel = false + ##Server Cron Tasks ##Clear non-tamed Mobs in the server from time to time ##Put '0' for disabled it. @@ -288,6 +299,21 @@ chicken_spawn_nodes = default:dirt_with_grass chicken_spawn_biome = default chicken_predators = petz:foxy +##Hen Specific +hen_follow = farming:seed_wheat +hen_spawn_chance = 0.6 +hen_spawn_nodes = default:dirt_with_grass +hen_spawn_biome = default +hen_predators = petz:foxy + +##Rooster Specific +rooster_follow = farming:seed_wheat +rooster_spawn_chance = 0.6 +rooster_spawn_nodes = default:dirt_with_grass +rooster_spawn_biome = default +rooster_predators = petz:foxy +rooster_preys = petz:rooster + #Piggy Specific piggy_follow = farming:wheat piggy_spawn_chance = 0.6 diff --git a/mods/petz/petz/petz/chicken_mobkit.lua b/mods/petz/petz/petz/chicken_mobkit.lua index 10e860c..84e5140 100644 --- a/mods/petz/petz/petz/chicken_mobkit.lua +++ b/mods/petz/petz/petz/chicken_mobkit.lua @@ -3,87 +3,143 @@ -- local S = ... -local pet_name = "chicken" -local scale_model = 2.1 -local mesh = 'petz_chicken.b3d' -local textures= {"petz_chicken.png", "petz_chicken2.png", "petz_chicken3.png"} -local p1 = {x= -0.0625, y = -0.5, z = -0.125} -local p2 = {x= 0.125, y = -0.125, z = 0.1875} -local collisionbox, collisionbox_baby = petz.get_collisionbox(p1, p2, scale_model, nil) +for i=1, 3 do + local pet_name + local mesh + local scale_model + local description + local textures + local p1 + local p2 + local lay_eggs + local parents + local aggressive + if i == 1 then + pet_name = "hen" + description = "Hen" + lay_eggs = true + mesh = 'petz_hen.b3d' + backface_culling = false + scale_model = 2.1 + textures= {"petz_hen.png", "petz_hen2.png", "petz_hen3.png"} + p1 = {x= -0.0625, y = -0.5, z = -0.125} + p2 = {x= 0.125, y = -0.125, z = 0.1875} + sounds = { + misc = {"petz_hen_cluck", "petz_hen_cluck_2", "petz_hen_cluck_3"}, + } + parents = nil + aggressive = false + elseif i == 2 then + pet_name = "rooster" + description = "Rooster" + lay_eggs = false + mesh = 'petz_rooster.b3d' + backface_culling = true + scale_model = 1.4 + textures= {"petz_rooster.png"} + p1 = {x= -0.1875, y = -0.5, z = -0.25} + p2 = {x= 0.125, y = 0.125, z = 0.25} + sounds = { + misc = {"petz_rooster_crow", "petz_rooster_chirp"}, + } + parents = nil + aggressive = true + else + pet_name = "chicken" + description = "Chicken" + lay_eggs = false + mesh = 'petz_chicken.b3d' + backface_culling = false + scale_model = 1.0 + textures= {"petz_chicken.png"} + p1 = {x= -0.125, y = -0.5, z = -0.1875} + p2 = {x= 0.0625, y = 0, z = 0.0625} + sounds = { + misc = {"petz_chicken_chirp", "petz_chicken_chirp_2", "petz_chicken_chirp_3"}, + } + parents = {"petz:hen", "petz:rooster"} + aggressive = false + end + local collisionbox, collisionbox_baby = petz.get_collisionbox(p1, p2, scale_model, nil) -minetest.register_entity("petz:"..pet_name,{ - --Petz specifics - type = "chicken", - init_tamagochi_timer = false, - is_pet = true, - has_affinity = false, - is_wild = false, - give_orders = false, - feathered = true, - can_be_brushed = false, - capture_item = "net", - lay_eggs = true, - lay_eggs_in_nest = true, - type_of_egg = "item", - follow = petz.settings.chicken_follow, - drops = { - {name = "petz:raw_chicken", chance = 3, min = 1, max = 1,}, - {name = "petz:bone", chance = 6, min = 1, max = 1,}, - }, - rotate = petz.settings.rotate, - physical = true, - stepheight = 0.1, --EVIL! - collide_with_objects = true, - collisionbox = collisionbox, - visual = petz.settings.visual, - mesh = mesh, - textures = textures, - visual_size = {x=petz.settings.visual_size.x*scale_model, y=petz.settings.visual_size.y*scale_model}, - static_save = true, - get_staticdata = mobkit.statfunc, - -- api props - springiness= 0, - buoyancy = 0.5, -- portion of hitbox submerged - max_speed = 2, - jump_height = 1.5, - view_range = 10, - lung_capacity = 10, -- seconds - max_hp = 8, - - attack={range=0.5, damage_groups={fleshy=3}}, - animation = { - walk={range={x=1, y=12}, speed=25, loop=true}, - run={range={x=13, y=25}, speed=25, loop=true}, - stand={ - {range={x=26, y=46}, speed=5, loop=true}, - {range={x=47, y=59}, speed=5, loop=true}, - {range={x=60, y=70}, speed=5, loop=true}, - {range={x=71, y=91}, speed=5, loop=true}, + minetest.register_entity("petz:"..pet_name,{ + --Petz specifics + type = pet_name, + init_tamagochi_timer = false, + is_pet = true, + has_affinity = false, + is_wild = false, + is_baby = is_baby, + parents = parents, + aggressive = aggressive, + backface_culling = backface_culling, + give_orders = false, + feathered = true, + can_be_brushed = false, + capture_item = "net", + lay_eggs = lay_eggs, + lay_eggs_in_nest = true, + type_of_egg = "item", + follow = petz.settings.hen_follow, + drops = { + {name = "petz:raw_chicken", chance = 3, min = 1, max = 1,}, + {name = "petz:bone", chance = 6, min = 1, max = 1,}, }, - }, - sounds = { - misc = {"petz_chicken_cluck", "petz_chicken_cluck_2", "petz_chicken_cluck_3"}, - }, + rotate = petz.settings.rotate, + physical = true, + stepheight = 0.1, --EVIL! + collide_with_objects = true, + collisionbox = collisionbox, + visual = petz.settings.visual, + mesh = mesh, + textures = textures, + visual_size = {x=petz.settings.visual_size.x*scale_model, y=petz.settings.visual_size.y*scale_model}, + static_save = true, + get_staticdata = mobkit.statfunc, + -- api props + springiness= 0, + buoyancy = 0.5, -- portion of hitbox submerged + max_speed = 2, + jump_height = 1.5, + view_range = 10, + lung_capacity = 10, -- seconds + max_hp = 8, - logic = petz.herbivore_brain, + attack={range=0.5, damage_groups={fleshy=3}}, + animation = { + walk={range={x=1, y=12}, speed=25, loop=true}, + run={range={x=13, y=25}, speed=25, loop=true}, + stand={ + {range={x=26, y=46}, speed=5, loop=true}, + {range={x=47, y=59}, speed=5, loop=true}, + {range={x=60, y=70}, speed=5, loop=true}, + {range={x=71, y=91}, speed=5, loop=true}, + }, + }, + sounds = sounds, - on_activate = function(self, staticdata, dtime_s) --on_activate, required - mobkit.actfunc(self, staticdata, dtime_s) - petz.set_initial_properties(self, staticdata, dtime_s) - end, + logic = petz.herbivore_brain, - on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir) - petz.on_punch(self, puncher, time_from_last_punch, tool_capabilities, dir) - end, + on_activate = function(self, staticdata, dtime_s) --on_activate, required + mobkit.actfunc(self, staticdata, dtime_s) + petz.set_initial_properties(self, staticdata, dtime_s) + end, - on_rightclick = function(self, clicker) - petz.on_rightclick(self, clicker) - end, + on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir) + petz.on_punch(self, puncher, time_from_last_punch, tool_capabilities, dir) + end, - on_step = function(self, dtime) - mobkit.stepfunc(self, dtime) -- required - petz.on_step(self, dtime) - end, -}) + on_rightclick = function(self, clicker) + petz.on_rightclick(self, clicker) + end, + + on_step = function(self, dtime) + mobkit.stepfunc(self, dtime) -- required + petz.on_step(self, dtime) + end, + }) + + petz:register_egg("petz:"..pet_name, S(description), "petz_spawnegg_"..pet_name..".png", false) + +end -petz:register_egg("petz:chicken", S("Chicken"), "petz_spawnegg_chicken.png", true) diff --git a/mods/petz/petz/settings.lua b/mods/petz/petz/settings.lua index f9c2537..01b6157 100644 --- a/mods/petz/petz/settings.lua +++ b/mods/petz/petz/settings.lua @@ -115,6 +115,12 @@ local settings_def = { type = "boolean", default = true, }, + --Disable Kennel + { + name = "disable_kennel", + type = "boolean", + default = false, + }, --Spawn { name = "spawn_interval", @@ -146,6 +152,12 @@ local settings_def = { type = "boolean", default = false, }, + --Parent Search + { + name = "parent_search", + type = "boolean", + default = true, + }, --Lifetime { name = "lifetime", @@ -169,15 +181,20 @@ local settings_def = { }, --Lay Eggs { - name = "lay_egg_chance", + name = "lay_egg_timing", type = "number", - default = 90000, + default = 1200, }, { name = "max_laid_eggs", type = "number", default = 10, }, + { + name = "hatch_egg_timing", + type = "number", + default = 500, + }, --Misc Random Sound Chance { name = "misc_sound_chance", @@ -457,8 +474,8 @@ for i = 1, #petz.settings["petz_list"] do --load the settings petz.settings[petz_type.."_spawn_biome"] = user:get(petz_type.."_spawn_biome") or settings:get(petz_type.."_spawn_biome") or "default" petz.settings[petz_type.."_spawn_herd"] = tonumber(user:get(petz_type.."_spawn_herd") or settings:get(petz_type.."_spawn_herd")) or 1 petz.settings[petz_type.."_seasonal"] = user:get(petz_type.."_seasonal") or settings:get(petz_type.."_seasonal") or "" - petz.settings[petz_type.."_follow"] = user:get(petz_type.."_follow") or settings:get(petz_type.."_follow") or "" - petz.settings[petz_type.."_breed"] = user:get(petz_type.."_breed") or settings:get(petz_type.."_breed") or "" + petz.settings[petz_type.."_follow"] = user:get(petz_type.."_follow") or settings:get(petz_type.."_follow") or nil + petz.settings[petz_type.."_breed"] = user:get(petz_type.."_breed") or settings:get(petz_type.."_breed") or nil petz.settings[petz_type.."_predators"] = user:get(petz_type.."_predators") or settings:get(petz_type.."_predators") or "" petz.settings[petz_type.."_preys"] = user:get(petz_type.."_preys") or settings:get(petz_type.."_preys") or "" petz.settings[petz_type.."_colorized"] = user:get_bool(petz_type.."_colorized") diff --git a/mods/petz/petz/sounds/LICENSE.MD b/mods/petz/petz/sounds/LICENSE.MD index 251ac04..7021a8f 100644 --- a/mods/petz/petz/sounds/LICENSE.MD +++ b/mods/petz/petz/sounds/LICENSE.MD @@ -110,17 +110,17 @@ Author: dobroide https://freesound.org/people/dobroide/sounds/18229/ License: This work is licensed under the Attribution License. -------------------------------------------- -filename: petz_chicken_cluck.ogg +filename: petz_hen_cluck.ogg Author: JarredGibb https://freesound.org/people/JarredGibb/sounds/233093/ License: This work is licensed under the Creative Commons 0 License. -------------------------------------------- -filename: petz_chicken_cluck_2.ogg & petz_chicken_cluck_3.ogg +filename: petz_hen_cluck_2.ogg & petz_chicken_cluck_3.ogg Author: www.bonson.ca https://freesound.org/people/www.bonson.ca/sounds/24967/ License: This work is licensed under the Attribution License. -------------------------------------------- -filename: petz_chicken_moaning.ogg +filename: petz_hen_moaning.ogg Author: Rudmer_Rotteveel https://freesound.org/people/Rudmer_Rotteveel/sounds/316920/ License: This work is licensed under the Creative Commons 0 License. @@ -384,3 +384,25 @@ filename: petz_leopard_attack.ogg Author: Darsycho https://freesound.org/people/Darsycho/sounds/442114/ License: This work is licensed under the Creative Commons 0 License. +-------------------------------------------- +filename: petz_rooster_crow.ogg +Author: InspectorJ +https://freesound.org/people/InspectorJ/sounds/439472/ +License: This work is licensed under the Attribution License. +-------------------------------------------- +filename: petz_rooster_chirp.ogg +Author: Setuniman +https://freesound.org/people/Setuniman/sounds/134049/ +License: This work is licensed under the Attribution License. +-------------------------------------------- +filename: petz_rooster_moaning.ogg +Author: ra_gun +https://freesound.org/people/ra_gun/sounds/81270/ +License: This work is licensed under the Creative Commons 0 License. +-------------------------------------------- +filename: petz_chicken_chirp.ogg & filename: petz_chicken_moaning.ogg +& petz_chicken_chirp_2.ogg & petz_chicken_moaning.ogg +Author: AGFX +https://freesound.org/people/AGFX/sounds/43380/ +License: This work is licensed under the Creative Commons 0 License. +-------------------------------------------- diff --git a/mods/petz/petz/sounds/petz_chicken_chirp.ogg b/mods/petz/petz/sounds/petz_chicken_chirp.ogg new file mode 100644 index 0000000..2444b6b Binary files /dev/null and b/mods/petz/petz/sounds/petz_chicken_chirp.ogg differ diff --git a/mods/petz/petz/sounds/petz_chicken_chirp_2.ogg b/mods/petz/petz/sounds/petz_chicken_chirp_2.ogg new file mode 100644 index 0000000..85bf948 Binary files /dev/null and b/mods/petz/petz/sounds/petz_chicken_chirp_2.ogg differ diff --git a/mods/petz/petz/sounds/petz_chicken_chirp_3.ogg b/mods/petz/petz/sounds/petz_chicken_chirp_3.ogg new file mode 100644 index 0000000..9b9bb49 Binary files /dev/null and b/mods/petz/petz/sounds/petz_chicken_chirp_3.ogg differ diff --git a/mods/petz/petz/sounds/petz_chicken_moaning.ogg b/mods/petz/petz/sounds/petz_chicken_moaning.ogg index b2041be..1923a57 100644 Binary files a/mods/petz/petz/sounds/petz_chicken_moaning.ogg and b/mods/petz/petz/sounds/petz_chicken_moaning.ogg differ diff --git a/mods/petz/petz/sounds/petz_chicken_cluck.ogg b/mods/petz/petz/sounds/petz_hen.ogg similarity index 100% rename from mods/petz/petz/sounds/petz_chicken_cluck.ogg rename to mods/petz/petz/sounds/petz_hen.ogg diff --git a/mods/petz/petz/sounds/petz_chicken_cluck_2.ogg b/mods/petz/petz/sounds/petz_hen_cluck_2.ogg similarity index 100% rename from mods/petz/petz/sounds/petz_chicken_cluck_2.ogg rename to mods/petz/petz/sounds/petz_hen_cluck_2.ogg diff --git a/mods/petz/petz/sounds/petz_chicken_cluck_3.ogg b/mods/petz/petz/sounds/petz_hen_cluck_3.ogg similarity index 100% rename from mods/petz/petz/sounds/petz_chicken_cluck_3.ogg rename to mods/petz/petz/sounds/petz_hen_cluck_3.ogg diff --git a/mods/petz/petz/sounds/petz_hen_moaning.ogg b/mods/petz/petz/sounds/petz_hen_moaning.ogg new file mode 100644 index 0000000..b2041be Binary files /dev/null and b/mods/petz/petz/sounds/petz_hen_moaning.ogg differ diff --git a/mods/petz/petz/sounds/petz_rooster_chirp.ogg b/mods/petz/petz/sounds/petz_rooster_chirp.ogg new file mode 100644 index 0000000..5e53990 Binary files /dev/null and b/mods/petz/petz/sounds/petz_rooster_chirp.ogg differ diff --git a/mods/petz/petz/sounds/petz_rooster_crow.ogg b/mods/petz/petz/sounds/petz_rooster_crow.ogg new file mode 100644 index 0000000..4e33476 Binary files /dev/null and b/mods/petz/petz/sounds/petz_rooster_crow.ogg differ diff --git a/mods/petz/petz/sounds/petz_rooster_moaning.ogg b/mods/petz/petz/sounds/petz_rooster_moaning.ogg new file mode 100644 index 0000000..b01177b Binary files /dev/null and b/mods/petz/petz/sounds/petz_rooster_moaning.ogg differ diff --git a/mods/petz/petz/textures/petz_chicken.png b/mods/petz/petz/textures/petz_chicken.png index 5f83ded..5fd6ece 100644 Binary files a/mods/petz/petz/textures/petz_chicken.png and b/mods/petz/petz/textures/petz_chicken.png differ diff --git a/mods/petz/petz/textures/petz_chicken2.png b/mods/petz/petz/textures/petz_chicken2.png deleted file mode 100644 index 76ad4a1..0000000 Binary files a/mods/petz/petz/textures/petz_chicken2.png and /dev/null differ diff --git a/mods/petz/petz/textures/petz_chicken3.png b/mods/petz/petz/textures/petz_chicken3.png deleted file mode 100644 index 2632341..0000000 Binary files a/mods/petz/petz/textures/petz_chicken3.png and /dev/null differ diff --git a/mods/petz/petz/textures/petz_hen.png b/mods/petz/petz/textures/petz_hen.png new file mode 100644 index 0000000..ad3b818 Binary files /dev/null and b/mods/petz/petz/textures/petz_hen.png differ diff --git a/mods/petz/petz/textures/petz_hen2.png b/mods/petz/petz/textures/petz_hen2.png new file mode 100644 index 0000000..4359143 Binary files /dev/null and b/mods/petz/petz/textures/petz_hen2.png differ diff --git a/mods/petz/petz/textures/petz_hen3.png b/mods/petz/petz/textures/petz_hen3.png new file mode 100644 index 0000000..04612b3 Binary files /dev/null and b/mods/petz/petz/textures/petz_hen3.png differ diff --git a/mods/petz/petz/textures/petz_rat.png~ b/mods/petz/petz/textures/petz_rat.png~ deleted file mode 100644 index db58f4d..0000000 Binary files a/mods/petz/petz/textures/petz_rat.png~ and /dev/null differ diff --git a/mods/petz/petz/textures/petz_rooster.png b/mods/petz/petz/textures/petz_rooster.png new file mode 100644 index 0000000..6d26d77 Binary files /dev/null and b/mods/petz/petz/textures/petz_rooster.png differ diff --git a/mods/petz/petz/textures/petz_spawnegg_chicken.png b/mods/petz/petz/textures/petz_spawnegg_chicken.png index 474ef4b..88a981b 100644 Binary files a/mods/petz/petz/textures/petz_spawnegg_chicken.png and b/mods/petz/petz/textures/petz_spawnegg_chicken.png differ diff --git a/mods/petz/petz/textures/petz_spawnegg_hen.png b/mods/petz/petz/textures/petz_spawnegg_hen.png new file mode 100644 index 0000000..474ef4b Binary files /dev/null and b/mods/petz/petz/textures/petz_spawnegg_hen.png differ diff --git a/mods/petz/petz/textures/petz_spawnegg_rooster.png b/mods/petz/petz/textures/petz_spawnegg_rooster.png new file mode 100644 index 0000000..7a780e8 Binary files /dev/null and b/mods/petz/petz/textures/petz_spawnegg_rooster.png differ diff --git a/mods/swaz/init.lua b/mods/swaz/init.lua index 65d7cb0..7b6d529 100644 --- a/mods/swaz/init.lua +++ b/mods/swaz/init.lua @@ -88,6 +88,13 @@ minetest.register_node("swaz:silt", { sounds = default.node_sound_dirt_defaults(), }) +minetest.register_craft({ + output = "swaz:silt", + type = "shapeless", + recipe = {"group:soil", "bucket:bucket_water"}, + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}} +}) + minetest.register_node("swaz:water_source", { description = S("Muddy Water Source"), drawtype = "liquid", @@ -260,6 +267,110 @@ minetest.register_node("swaz:lavender", { }, }) +--Barberry Bush Stuff + +-- Required wrapper to allow customization of default.after_place_leaves +local function after_place_leaves(...) + return default.after_place_leaves(...) +end + +minetest.register_craftitem("swaz:barberries", { + description = S("Barberries"), + inventory_image = "swaz_barberries.png", + groups = {food_barberries = 1, food_berry = 1}, + on_use = minetest.item_eat(2), +}) + +minetest.register_node("swaz:barberry_bush_leaves_with_berries", { + description = S("Barberry Bush Leaves with Berries"), + drawtype = "plantlike", + tiles = {"swaz_barberry_bush_leaves.png^swaz_barberry_overlay.png"}, + inventory_image = "swaz_barberry_bush_leaves.png^swaz_barberry_overlay.png", + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1, dig_immediate = 3}, + drop = "swaz:barberries", + sounds = default.node_sound_leaves_defaults(), + node_dig_prediction = "swaz:barberry_bush_leaves", + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} + }, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + minetest.set_node(pos, {name = "swaz:barberry_bush_leaves"}) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, +}) + +minetest.register_node("swaz:barberry_bush_leaves", { + description = S("Barberry Bush Leaves"), + drawtype = "plantlike", + tiles = {"swaz_barberry_bush_leaves.png"}, + inventory_image = "swaz_barberry_bush_leaves.png", + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"swaz:barberry_bush_sapling"}, rarity = 5}, + {items = {"swaz:barberry_bush_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} + }, + + on_timer = function(pos, elapsed) + if minetest.get_node_light(pos) < 11 then + minetest.get_node_timer(pos):start(200) + else + minetest.set_node(pos, {name = "swaz:barberry_bush_leaves_with_berries"}) + end + end, + + after_place_node = after_place_leaves, +}) + +minetest.register_node("swaz:barberry_bush_sapling", { + description = S("Barberry Bush Sapling"), + drawtype = "plantlike", + tiles = {"swaz_barberry_bush_sapling.png"}, + inventory_image = "swaz_barberry_bush_sapling.png", + wield_image = "swaz_barberry_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = function(pos, elapsed) + minetest.set_node(pos, {name = "swaz:barberry_bush_leaves"}) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + selection_box = { + type = "fixed", + fixed = {-2 / 16, -0.5, -1 / 16, 2 / 16, -2 / 16, 2 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "swaz:barberry_bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + -- Register Decoration -- IMPORTANT! -- THE ORDER OF THE DECORATION MATTERS! @@ -285,13 +396,17 @@ if mg_name ~= "v6" and mg_name ~= "singlenode" then height = 2, y_min = 0, y_max = 1000, - place_offset_y = 0, + place_offset_y = -1, schematic = { - size = {x = 4, y = 1, z = 4}, + size = {x = 4, y = 2, z = 4}, data = { + {name = "swaz:silt"}, {name = "swaz:silt"}, {name = "swaz:silt"},{name = "swaz:silt"}, {name = "swaz:silt_with_grass"}, {name = "swaz:silt_with_grass"}, {name = "swaz:silt_with_grass"},{name = "swaz:silt_with_grass"}, + {name = "swaz:silt"}, {name = "swaz:silt"}, {name = "swaz:silt"},{name = "swaz:silt"}, {name = "swaz:silt_with_grass"}, {name = "swaz:water_source"}, {name = "swaz:water_source"},{name = "swaz:silt_with_grass"}, + {name = "swaz:silt"}, {name = "swaz:silt"}, {name = "swaz:silt"},{name = "swaz:silt"}, {name = "swaz:silt_with_grass"}, {name = "swaz:water_source"}, {name = "swaz:water_source"},{name = "swaz:silt_with_grass"}, + {name = "swaz:silt"}, {name = "swaz:silt"}, {name = "swaz:silt"},{name = "swaz:silt"}, {name = "swaz:silt_with_grass"}, {name = "swaz:silt_with_grass"}, {name = "swaz:silt_with_grass"},{name = "swaz:silt_with_grass"}, } }, @@ -544,6 +659,27 @@ if mg_name ~= "v6" and mg_name ~= "singlenode" then y_min = 1, y_max = 80, }) + + --Barberry + + minetest.register_decoration({ + decoration = "swaz:barberry_bush_leaves_with_berries", + deco_type = "simple", + place_on = "swaz:silt_with_grass", + sidelen = 16, + biomes = {"swampz"}, + noise_params = { + offset = 0.0008, + scale = 0.008, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + y_min = 1, + y_max = 80, + }) + end -- Construction Materials diff --git a/mods/swaz/locale/swaz.es.tr b/mods/swaz/locale/swaz.es.tr index d7a8b93..bf09b47 100644 --- a/mods/swaz/locale/swaz.es.tr +++ b/mods/swaz/locale/swaz.es.tr @@ -27,3 +27,7 @@ Red Roof Corner=Esquina de tejado rojo Red Flat Roof=Plano de tejado rojo Bricked Stair=Escaleras de ladrillos tejar Bricked Slab=Losa de ladrillos tejar +Barberries=Bayas de agracejo +Barberry Bush Leaves with Berries=Hojas de agracejo con bayas +Barberry Bush Leaves=Hojas de agracejo +Barberry Bush Sapling=Retoño de agracejo diff --git a/mods/swaz/textures/swaz_barberries.png b/mods/swaz/textures/swaz_barberries.png new file mode 100644 index 0000000..b79cb13 Binary files /dev/null and b/mods/swaz/textures/swaz_barberries.png differ diff --git a/mods/swaz/textures/swaz_barberry_bush_leaves.png b/mods/swaz/textures/swaz_barberry_bush_leaves.png new file mode 100644 index 0000000..f5bd54e Binary files /dev/null and b/mods/swaz/textures/swaz_barberry_bush_leaves.png differ diff --git a/mods/swaz/textures/swaz_barberry_bush_sapling.png b/mods/swaz/textures/swaz_barberry_bush_sapling.png new file mode 100644 index 0000000..7c7f0f2 Binary files /dev/null and b/mods/swaz/textures/swaz_barberry_bush_sapling.png differ diff --git a/mods/swaz/textures/swaz_barberry_overlay.png b/mods/swaz/textures/swaz_barberry_overlay.png new file mode 100644 index 0000000..2efdd00 Binary files /dev/null and b/mods/swaz/textures/swaz_barberry_overlay.png differ