removed hbsprint
|
@ -53,6 +53,7 @@ Change the following default settings by going to Main Menu>>Settings(Tab)>>All
|
||||||
armor_material_gold = true
|
armor_material_gold = true
|
||||||
armor_material_mithril = true
|
armor_material_mithril = true
|
||||||
armor_material_crystal = true
|
armor_material_crystal = true
|
||||||
|
armor_material_nether = true
|
||||||
|
|
||||||
### Initialization glitches when a player first joins
|
### Initialization glitches when a player first joins
|
||||||
**Increase to prevent glitches**
|
**Increase to prevent glitches**
|
||||||
|
|
|
@ -134,6 +134,7 @@ armor = {
|
||||||
mithril = "moreores:mithril_ingot",
|
mithril = "moreores:mithril_ingot",
|
||||||
crystal = "ethereal:crystal_ingot",
|
crystal = "ethereal:crystal_ingot",
|
||||||
lava = "lavastuff:ingot",
|
lava = "lavastuff:ingot",
|
||||||
|
nether = "nether:nether_ingot",
|
||||||
},
|
},
|
||||||
fire_nodes = {
|
fire_nodes = {
|
||||||
{"nether:lava_source", 5, 8},
|
{"nether:lava_source", 5, 8},
|
||||||
|
@ -179,6 +180,7 @@ armor.config = {
|
||||||
material_mithril = true,
|
material_mithril = true,
|
||||||
material_crystal = true,
|
material_crystal = true,
|
||||||
material_lava = true,
|
material_lava = true,
|
||||||
|
material_nether = true,
|
||||||
set_elements = "head torso legs feet shield",
|
set_elements = "head torso legs feet shield",
|
||||||
set_multiplier = 1.1,
|
set_multiplier = 1.1,
|
||||||
water_protect = true,
|
water_protect = true,
|
||||||
|
|
|
@ -15,6 +15,7 @@ ARMOR_MATERIALS = {
|
||||||
gold = "default:gold_ingot",
|
gold = "default:gold_ingot",
|
||||||
mithril = "moreores:mithril_ingot",
|
mithril = "moreores:mithril_ingot",
|
||||||
crystal = "ethereal:crystal_ingot",
|
crystal = "ethereal:crystal_ingot",
|
||||||
|
nether = "nether:nether_ingot",
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Enable fire protection (defaults true if using ethereal mod)
|
-- Enable fire protection (defaults true if using ethereal mod)
|
||||||
|
|
|
@ -868,6 +868,92 @@ if armor.materials.crystal then
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--- Nether
|
||||||
|
--
|
||||||
|
-- Requires `armor_material_nether`.
|
||||||
|
--
|
||||||
|
-- @section nether
|
||||||
|
|
||||||
|
if armor.materials.nether then
|
||||||
|
--- Nether Helmet
|
||||||
|
--
|
||||||
|
-- @helmet 3d_armor:helmet_nether
|
||||||
|
-- @img 3d_armor_inv_helmet_nether.png
|
||||||
|
-- @grp armor_head 1
|
||||||
|
-- @grp armor_heal 14
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 18
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp level 3
|
||||||
|
armor:register_armor("3d_armor:helmet_nether", {
|
||||||
|
description = S("Nether Helmet"),
|
||||||
|
inventory_image = "3d_armor_inv_helmet_nether.png",
|
||||||
|
groups = {armor_head=1, armor_heal=14, armor_use=100, armor_fire=1},
|
||||||
|
armor_groups = {fleshy=18},
|
||||||
|
damage_groups = {cracky=3, snappy=2, level=3},
|
||||||
|
})
|
||||||
|
--- Nether Chestplate
|
||||||
|
--
|
||||||
|
-- @chestplate 3d_armor:chestplate_nether
|
||||||
|
-- @img 3d_armor_inv_chestplate_nether.png
|
||||||
|
-- @grp armor_torso 1
|
||||||
|
-- @grp armor_heal 14
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 25
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp level 3
|
||||||
|
armor:register_armor("3d_armor:chestplate_nether", {
|
||||||
|
description = S("Nether Chestplate"),
|
||||||
|
inventory_image = "3d_armor_inv_chestplate_nether.png",
|
||||||
|
groups = {armor_torso=1, armor_heal=14, armor_use=200, armor_fire=1},
|
||||||
|
armor_groups = {fleshy=25},
|
||||||
|
damage_groups = {cracky=3, snappy=2, level=3},
|
||||||
|
})
|
||||||
|
--- Nether Leggings
|
||||||
|
--
|
||||||
|
-- @leggings 3d_armor:leggings_nether
|
||||||
|
-- @img 3d_armor_inv_leggings_nether.png
|
||||||
|
-- @grp armor_legs 1
|
||||||
|
-- @grp armor_heal 14
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 25
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp level 3
|
||||||
|
armor:register_armor("3d_armor:leggings_nether", {
|
||||||
|
description = S("Nether Leggings"),
|
||||||
|
inventory_image = "3d_armor_inv_leggings_nether.png",
|
||||||
|
groups = {armor_legs=1, armor_heal=14, armor_use=200, armor_fire=1},
|
||||||
|
armor_groups = {fleshy=25},
|
||||||
|
damage_groups = {cracky=3, snappy=2, level=3},
|
||||||
|
})
|
||||||
|
--- Nether Boots
|
||||||
|
--
|
||||||
|
-- @boots 3d_armor:boots_nether
|
||||||
|
-- @img 3d_armor_inv_boots_nether.png
|
||||||
|
-- @grp armor_feet 1
|
||||||
|
-- @grp armor_heal 14
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 18
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp level 3
|
||||||
|
armor:register_armor("3d_armor:boots_nether", {
|
||||||
|
description = S("Nether Boots"),
|
||||||
|
inventory_image = "3d_armor_inv_boots_nether.png",
|
||||||
|
groups = {armor_feet=1, armor_heal=14, armor_use=200, armor_fire=1},
|
||||||
|
armor_groups = {fleshy=18},
|
||||||
|
damage_groups = {cracky=3, snappy=2, level=3},
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--- Crafting
|
--- Crafting
|
||||||
--
|
--
|
||||||
-- @section craft
|
-- @section craft
|
||||||
|
@ -886,6 +972,7 @@ end
|
||||||
-- - gold: default:gold_ingot
|
-- - gold: default:gold_ingot
|
||||||
-- - mithril: moreores:mithril_ingot
|
-- - mithril: moreores:mithril_ingot
|
||||||
-- - crystal: ethereal:crystal_ingot
|
-- - crystal: ethereal:crystal_ingot
|
||||||
|
-- - nether: nether:nether_ingot
|
||||||
--
|
--
|
||||||
-- helmet: chestplate: leggings:
|
-- helmet: chestplate: leggings:
|
||||||
-- ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐
|
-- ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐
|
||||||
|
|
|
@ -19,6 +19,7 @@ Helmets:
|
||||||
[3d_armor:helmet_gold] X = [default:gold_ingot]
|
[3d_armor:helmet_gold] X = [default:gold_ingot]
|
||||||
[3d_armor:helmet_mithril] X = [moreores:mithril_ingot] *
|
[3d_armor:helmet_mithril] X = [moreores:mithril_ingot] *
|
||||||
[3d_armor:helmet_crystal] X = [ethereal:crystal_ingot] **
|
[3d_armor:helmet_crystal] X = [ethereal:crystal_ingot] **
|
||||||
|
[3d_armor:helmet_nether] X = [ethereal:nether_ingot] **
|
||||||
|
|
||||||
Chestplates:
|
Chestplates:
|
||||||
|
|
||||||
|
@ -38,6 +39,7 @@ Chestplates:
|
||||||
[3d_armor:chestplate_gold] X = [default:gold_ingot]
|
[3d_armor:chestplate_gold] X = [default:gold_ingot]
|
||||||
[3d_armor:chestplate_mithril] X = [moreores:mithril_ingot] *
|
[3d_armor:chestplate_mithril] X = [moreores:mithril_ingot] *
|
||||||
[3d_armor:chestplate_crystal] X = [ethereal:crystal_ingot] **
|
[3d_armor:chestplate_crystal] X = [ethereal:crystal_ingot] **
|
||||||
|
[3d_armor:chestplate_nether] X = [ethereal:nether_ingot] **
|
||||||
|
|
||||||
Leggings:
|
Leggings:
|
||||||
|
|
||||||
|
@ -57,6 +59,7 @@ Leggings:
|
||||||
[3d_armor:leggings_gold] X = [default:gold_ingot]
|
[3d_armor:leggings_gold] X = [default:gold_ingot]
|
||||||
[3d_armor:leggings_mithril] X = [moreores:mithril_ingot] *
|
[3d_armor:leggings_mithril] X = [moreores:mithril_ingot] *
|
||||||
[3d_armor:leggings_crystal] X = [ethereal:crystal_ingot] **
|
[3d_armor:leggings_crystal] X = [ethereal:crystal_ingot] **
|
||||||
|
[3d_armor:leggings_nether] X = [ethereal:nether_ingot] **
|
||||||
|
|
||||||
Boots:
|
Boots:
|
||||||
|
|
||||||
|
@ -74,6 +77,8 @@ Boots:
|
||||||
[3d_armor:boots_gold] X = [default:gold_ingot]
|
[3d_armor:boots_gold] X = [default:gold_ingot]
|
||||||
[3d_armor:boots_mithril] X = [moreores:mithril_ingot] *
|
[3d_armor:boots_mithril] X = [moreores:mithril_ingot] *
|
||||||
[3d_armor:boots_crystal] X = [ethereal:crystal_ingot] **
|
[3d_armor:boots_crystal] X = [ethereal:crystal_ingot] **
|
||||||
|
[3d_armor:boots_nether] X = [ethereal:nether_ingot] **
|
||||||
|
|
||||||
* Requires moreores mod by Calinou - https://forum.minetest.net/viewtopic.php?id=549
|
* Requires moreores mod by Calinou - https://forum.minetest.net/viewtopic.php?id=549
|
||||||
** Requires ethereal mod by Chinchow & TenPlus1 - https://github.com/tenplus1/ethereal
|
** Requires ethereal mod by Chinchow & TenPlus1 - https://github.com/tenplus1/ethereal
|
||||||
|
** Requires nether mod - https://github.com/minetest-mods/nether.git
|
||||||
|
|
|
@ -6,3 +6,4 @@ fire?
|
||||||
ethereal?
|
ethereal?
|
||||||
bakedclay?
|
bakedclay?
|
||||||
moreores?
|
moreores?
|
||||||
|
nether?
|
||||||
|
|
|
@ -104,6 +104,9 @@ end
|
||||||
if not minetest.get_modpath("ethereal") then
|
if not minetest.get_modpath("ethereal") then
|
||||||
armor.materials.crystal = nil
|
armor.materials.crystal = nil
|
||||||
end
|
end
|
||||||
|
if not minetest.get_modpath("nether") then
|
||||||
|
armor.materials.nether = nil
|
||||||
|
end
|
||||||
|
|
||||||
dofile(modpath.."/armor.lua")
|
dofile(modpath.."/armor.lua")
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
# textdomain: 3d_armor
|
||||||
|
|
||||||
|
|
||||||
|
### api.lua ###
|
||||||
|
|
||||||
|
3d_armor: Detached armor inventory is nil @1=3d_armor : Abgetrennter Rüstungsbestand ist nicht gesetzt: @1
|
||||||
|
3d_armor: Player name is nil @1=3d_armor : Spielername ist nicht gesetzt: @1
|
||||||
|
3d_armor: Player reference is nil @1=3d_armor : Spielerreferenz ist nicht gesetzt: @1
|
||||||
|
|
||||||
|
### armor.lua ###
|
||||||
|
|
||||||
|
Admin Boots=Adminstiefel
|
||||||
|
Admin Chestplate=Adminbrustplatte
|
||||||
|
Admin Helmet=Adminhelm
|
||||||
|
Admin Leggings=Adminhose
|
||||||
|
Bronze Boots=Bronzestiefel
|
||||||
|
Bronze Chestplate=Bronzebrustplatte
|
||||||
|
Bronze Helmet=Bronzehelm
|
||||||
|
Bronze Leggings=Bronzehose
|
||||||
|
Cactus Boots=Kaktusstiefel
|
||||||
|
Cactus Chestplate=Kaktusbrustplatte
|
||||||
|
Cactus Helmet=Kaktushelm
|
||||||
|
Cactus Leggings=Kaktushose
|
||||||
|
Crystal Boots=Kristallstiefel
|
||||||
|
Crystal Chestplate=Kristallbrustplatte
|
||||||
|
Crystal Helmet=Kristallhelm
|
||||||
|
Crystal Leggings=Kristallhose
|
||||||
|
Nether Boots=Netherstiefel
|
||||||
|
Nether Chestplate=Netherbrustplatte
|
||||||
|
Nether Helmet=Netherhelm
|
||||||
|
Nether Leggings=Netherhose
|
||||||
|
Diamond Boots=Diamantstiefel
|
||||||
|
Diamond Chestplate=Diamantbrustplatte
|
||||||
|
Diamond Helmet=Diamanthelm
|
||||||
|
Diamond Leggings=Diamanthose
|
||||||
|
Gold Boots=Goldstiefel
|
||||||
|
Gold Chestplate=Goldbrustplatte
|
||||||
|
Gold Helmet=Goldhelm
|
||||||
|
Gold Leggings=Goldhose
|
||||||
|
Mithril Boots=Mithrilstiefel
|
||||||
|
Mithril Chestplate=Mithrilbrustplatte
|
||||||
|
Mithril Helmet=Mithrilhelm
|
||||||
|
Mithril Leggings=Mithrilhose
|
||||||
|
Steel Boots=Stahlstiefel
|
||||||
|
Steel Chestplate=Stahlbrustplatte
|
||||||
|
Steel Helmet=Stahlhelm
|
||||||
|
Steel Leggings=Stahlhose
|
||||||
|
Wood Boots=Holzstiefel
|
||||||
|
Wood Chestplate=Holzbrustplatte
|
||||||
|
Wood Helmet=Holzhelm
|
||||||
|
Wood Leggings=Holzhose
|
||||||
|
|
||||||
|
### init.lua ###
|
||||||
|
|
||||||
|
3d_armor: Failed to initialize player=3d_armor : Initialisierung des Spielers fehlgeschlagen
|
||||||
|
Fire=Feuer
|
||||||
|
Heal=Heilen
|
||||||
|
Level=Stufe
|
||||||
|
Radiation=Strahlen
|
||||||
|
Your @1 got destroyed!=Deine @1 wurde zerstört!
|
||||||
|
Your @1 is almost broken!=Deine @1 ist fast kaputt!
|
||||||
|
[3d_armor] Fire Nodes disabled=[3d_armor] Feuer-Knoten deaktiviert
|
|
@ -25,6 +25,10 @@ Crystal Boots=Botas de cristal
|
||||||
Crystal Chestplate=Peto de cristal
|
Crystal Chestplate=Peto de cristal
|
||||||
Crystal Helmet=Casco de cristal
|
Crystal Helmet=Casco de cristal
|
||||||
Crystal Leggings=Grebas de cristal
|
Crystal Leggings=Grebas de cristal
|
||||||
|
Nether Boots=Botas de nether
|
||||||
|
Nether Chestplate=Peto de nether
|
||||||
|
Nether Helmet=Casco de nether
|
||||||
|
Nether Leggings=Grebas de nether
|
||||||
Diamond Boots=Botas de diamante
|
Diamond Boots=Botas de diamante
|
||||||
Diamond Chestplate=Peto de diamante
|
Diamond Chestplate=Peto de diamante
|
||||||
Diamond Helmet=Casco de diamante
|
Diamond Helmet=Casco de diamante
|
||||||
|
|
|
@ -25,6 +25,10 @@ Crystal Boots=Bottes en cristal
|
||||||
Crystal Chestplate=Cuirasse en cristal
|
Crystal Chestplate=Cuirasse en cristal
|
||||||
Crystal Helmet=Casque en cristal
|
Crystal Helmet=Casque en cristal
|
||||||
Crystal Leggings=Jambières en cristal
|
Crystal Leggings=Jambières en cristal
|
||||||
|
Nether Boots=Bottes en nether
|
||||||
|
Nether Chestplate=Cuirasse en nether
|
||||||
|
Nether Helmet=Casque en nether
|
||||||
|
Nether Leggings=Jambières en nether
|
||||||
Diamond Boots=Bottes en diamant
|
Diamond Boots=Bottes en diamant
|
||||||
Diamond Chestplate=Cuirasse en diamant
|
Diamond Chestplate=Cuirasse en diamant
|
||||||
Diamond Helmet=Casque en diamant
|
Diamond Helmet=Casque en diamant
|
||||||
|
|
|
@ -25,6 +25,10 @@ Crystal Boots=Stivali di cristallo
|
||||||
Crystal Chestplate=Corazza di cristallo
|
Crystal Chestplate=Corazza di cristallo
|
||||||
Crystal Helmet=Elmo di cristallo
|
Crystal Helmet=Elmo di cristallo
|
||||||
Crystal Leggings=Gambali di cristallo
|
Crystal Leggings=Gambali di cristallo
|
||||||
|
Nether Boots=Stivali di nether
|
||||||
|
Nether Chestplate=Corazza di nether
|
||||||
|
Nether Helmet=Elmo di nether
|
||||||
|
Nether Leggings=Gambali di nether
|
||||||
Diamond Boots=Stivali di diamante
|
Diamond Boots=Stivali di diamante
|
||||||
Diamond Chestplate=Corazza di diamante
|
Diamond Chestplate=Corazza di diamante
|
||||||
Diamond Helmet=Elmo di diamante
|
Diamond Helmet=Elmo di diamante
|
||||||
|
@ -83,3 +87,4 @@ Diamond Shield=Scudo di diamante
|
||||||
Gold Shield=Scudo d'oro
|
Gold Shield=Scudo d'oro
|
||||||
Mithril Shield=Scudo di mithril
|
Mithril Shield=Scudo di mithril
|
||||||
Crystal Shield=Scudo di cristallo
|
Crystal Shield=Scudo di cristallo
|
||||||
|
Nether Shield=Scudo di nether
|
||||||
|
|
|
@ -25,6 +25,10 @@ Crystal Boots=But Kristal
|
||||||
Crystal Chestplate=Perisai Dada Kristal
|
Crystal Chestplate=Perisai Dada Kristal
|
||||||
Crystal Helmet=Helmet Kristal
|
Crystal Helmet=Helmet Kristal
|
||||||
Crystal Leggings=Perisai Kaki Kristal
|
Crystal Leggings=Perisai Kaki Kristal
|
||||||
|
Nether Boots=But Nether
|
||||||
|
Nether Chestplate=Perisai Dada Nether
|
||||||
|
Nether Helmet=Helmet Nether
|
||||||
|
Nether Leggings=Perisai Kaki Nether
|
||||||
Diamond Boots=But Intan
|
Diamond Boots=But Intan
|
||||||
Diamond Chestplate=Perisai Dada Intan
|
Diamond Chestplate=Perisai Dada Intan
|
||||||
Diamond Helmet=Helmet Intan
|
Diamond Helmet=Helmet Intan
|
||||||
|
@ -83,3 +87,4 @@ Diamond Shield=Perisai Pegang Intan
|
||||||
Gold Shield=Perisai Pegang Emas
|
Gold Shield=Perisai Pegang Emas
|
||||||
Mithril Shield=Perisai Pegang Mithril
|
Mithril Shield=Perisai Pegang Mithril
|
||||||
Crystal Shield=Perisai Pegang Kristal
|
Crystal Shield=Perisai Pegang Kristal
|
||||||
|
Nether Shield=Perisai Pegang Nether
|
||||||
|
|
|
@ -25,6 +25,10 @@ Crystal Boots=Botas de Cristal
|
||||||
Crystal Chestplate=Peitoral de Cristal
|
Crystal Chestplate=Peitoral de Cristal
|
||||||
Crystal Helmet=Capacete de Cristal
|
Crystal Helmet=Capacete de Cristal
|
||||||
Crystal Leggings=Calças de Cristal
|
Crystal Leggings=Calças de Cristal
|
||||||
|
Nether Boots=Botas de Nether
|
||||||
|
Nether Chestplate=Peitoral de Nether
|
||||||
|
Nether Helmet=Capacete de Nether
|
||||||
|
Nether Leggings=Calças de Nether
|
||||||
Diamond Boots=Botas de Diamante
|
Diamond Boots=Botas de Diamante
|
||||||
Diamond Chestplate=Peitoral de Diamante
|
Diamond Chestplate=Peitoral de Diamante
|
||||||
Diamond Helmet=Capacete de Diamante
|
Diamond Helmet=Capacete de Diamante
|
||||||
|
@ -83,3 +87,4 @@ Diamond Shield=Escudo de Diamante
|
||||||
Gold Shield=Escudo de Ouro
|
Gold Shield=Escudo de Ouro
|
||||||
Mithril Shield=Escudo de Mithril
|
Mithril Shield=Escudo de Mithril
|
||||||
Crystal Shield=Escudo de Cristal
|
Crystal Shield=Escudo de Cristal
|
||||||
|
Nether Shield=Escudo de Nether
|
||||||
|
|
|
@ -25,6 +25,10 @@ Crystal Boots=Botas de Cristal
|
||||||
Crystal Chestplate=Peitoral de Cristal
|
Crystal Chestplate=Peitoral de Cristal
|
||||||
Crystal Helmet=Capacete de Cristal
|
Crystal Helmet=Capacete de Cristal
|
||||||
Crystal Leggings=Calças de Cristal
|
Crystal Leggings=Calças de Cristal
|
||||||
|
Nether Boots=Botas de Nether
|
||||||
|
Nether Chestplate=Peitoral de Nether
|
||||||
|
Nether Helmet=Capacete de Nether
|
||||||
|
Nether Leggings=Calças de Nether
|
||||||
Diamond Boots=Botas de Diamante
|
Diamond Boots=Botas de Diamante
|
||||||
Diamond Chestplate=Peitoral de Diamante
|
Diamond Chestplate=Peitoral de Diamante
|
||||||
Diamond Helmet=Capacete de Diamante
|
Diamond Helmet=Capacete de Diamante
|
||||||
|
@ -83,3 +87,4 @@ Diamond Shield=Escudo de Diamante
|
||||||
Gold Shield=Escudo de Ouro
|
Gold Shield=Escudo de Ouro
|
||||||
Mithril Shield=Escudo de Mithril
|
Mithril Shield=Escudo de Mithril
|
||||||
Crystal Shield=Escudo de Cristal
|
Crystal Shield=Escudo de Cristal
|
||||||
|
Nether Shield=Escudo de Nether
|
||||||
|
|
|
@ -25,6 +25,10 @@ Crystal Boots=
|
||||||
Crystal Chestplate=
|
Crystal Chestplate=
|
||||||
Crystal Helmet=
|
Crystal Helmet=
|
||||||
Crystal Leggings=
|
Crystal Leggings=
|
||||||
|
Nether Boots=
|
||||||
|
Nether Chestplate=
|
||||||
|
Nether Helmet=
|
||||||
|
Nether Leggings=
|
||||||
Diamond Boots=
|
Diamond Boots=
|
||||||
Diamond Chestplate=
|
Diamond Chestplate=
|
||||||
Diamond Helmet=
|
Diamond Helmet=
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
name = 3d_armor
|
name = 3d_armor
|
||||||
depends = default
|
depends = default
|
||||||
optional_depends = player_monoids, armor_monoid, pova, fire, ethereal, bakedclay, moreores
|
optional_depends = player_monoids, armor_monoid, pova, fire, ethereal, bakedclay, moreores, nether
|
||||||
description = Adds craftable armor that is visible to other players.
|
description = Adds craftable armor that is visible to other players.
|
||||||
|
|
After Width: | Height: | Size: 324 B |
After Width: | Height: | Size: 264 B |
After Width: | Height: | Size: 581 B |
After Width: | Height: | Size: 384 B |
After Width: | Height: | Size: 525 B |
After Width: | Height: | Size: 267 B |
After Width: | Height: | Size: 322 B |
After Width: | Height: | Size: 386 B |
After Width: | Height: | Size: 267 B |
After Width: | Height: | Size: 297 B |
After Width: | Height: | Size: 406 B |
After Width: | Height: | Size: 255 B |
|
@ -38,6 +38,11 @@
|
||||||
3d_armor/textures/3d_armor_leggings_crystal.png:legs
|
3d_armor/textures/3d_armor_leggings_crystal.png:legs
|
||||||
3d_armor/textures/3d_armor_boots_crystal.png:feet
|
3d_armor/textures/3d_armor_boots_crystal.png:feet
|
||||||
|
|
||||||
|
3d_armor/textures/3d_armor_helmet_nether.png:head
|
||||||
|
3d_armor/textures/3d_armor_chestplate_nether.png:torso
|
||||||
|
3d_armor/textures/3d_armor_leggings_nether.png:legs
|
||||||
|
3d_armor/textures/3d_armor_boots_nether.png:feet
|
||||||
|
|
||||||
3d_armor/textures/3d_armor_helmet_admin.png:head
|
3d_armor/textures/3d_armor_helmet_admin.png:head
|
||||||
3d_armor/textures/3d_armor_chestplate_admin.png:torso
|
3d_armor/textures/3d_armor_chestplate_admin.png:torso
|
||||||
3d_armor/textures/3d_armor_leggings_admin.png:legs
|
3d_armor/textures/3d_armor_leggings_admin.png:legs
|
||||||
|
|
|
@ -8,6 +8,7 @@ armor_material_diamond (Enable diamond armor) bool true
|
||||||
armor_material_gold (Enable gold armor) bool true
|
armor_material_gold (Enable gold armor) bool true
|
||||||
armor_material_mithril (Enable mithril armor) bool true
|
armor_material_mithril (Enable mithril armor) bool true
|
||||||
armor_material_crystal (Enable crystal armor) bool true
|
armor_material_crystal (Enable crystal armor) bool true
|
||||||
|
armor_material_nether (Enable nether armor) bool true
|
||||||
|
|
||||||
# Increase this if you get initialization glitches when a player first joins.
|
# Increase this if you get initialization glitches when a player first joins.
|
||||||
armor_init_delay (Initialization delay) int 2
|
armor_init_delay (Initialization delay) int 2
|
||||||
|
|
|
@ -17,6 +17,7 @@ Shields -- Crafting Guide
|
||||||
[shields:shield_gold] X = [default:gold_ingot]
|
[shields:shield_gold] X = [default:gold_ingot]
|
||||||
[shields:shield_mithril] X = [moreores:mithril_ingot]
|
[shields:shield_mithril] X = [moreores:mithril_ingot]
|
||||||
[shields:shield_crystal] X = [ethereal:crystal_ingot]
|
[shields:shield_crystal] X = [ethereal:crystal_ingot]
|
||||||
|
[shields:shield_nether] X = [ethereal:nether_ingot]
|
||||||
|
|
||||||
Enhanced Shields
|
Enhanced Shields
|
||||||
----------------
|
----------------
|
||||||
|
|
|
@ -370,6 +370,35 @@ if armor.materials.crystal then
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if armor.materials.nether then
|
||||||
|
--- Nether Shield
|
||||||
|
--
|
||||||
|
-- @shield shields:shield_nether
|
||||||
|
-- @img shields_inv_shield_nether.png
|
||||||
|
-- @grp armor_shield 1
|
||||||
|
-- @grp armor_heal 17
|
||||||
|
-- @grp armor_use 200
|
||||||
|
-- @grp armor_fire 1
|
||||||
|
-- @armorgrp fleshy 20
|
||||||
|
-- @damagegrp cracky 3
|
||||||
|
-- @damagegrp snappy 2
|
||||||
|
-- @damagegrp level 3
|
||||||
|
armor:register_armor("shields:shield_nether", {
|
||||||
|
description = S("Nether Shield"),
|
||||||
|
inventory_image = "shields_inv_shield_nether.png",
|
||||||
|
groups = {armor_shield=1, armor_heal=17, armor_use=200, armor_fire=1},
|
||||||
|
armor_groups = {fleshy=20},
|
||||||
|
damage_groups = {cracky=3, snappy=2, level=3},
|
||||||
|
reciprocate_damage = true,
|
||||||
|
on_damage = function(player, index, stack)
|
||||||
|
play_sound_effect(player, "default_glass_footstep")
|
||||||
|
end,
|
||||||
|
on_destroy = function(player, index, stack)
|
||||||
|
play_sound_effect(player, "default_break_glass")
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
for k, v in pairs(armor.materials) do
|
for k, v in pairs(armor.materials) do
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "shields:shield_"..k,
|
output = "shields:shield_"..k,
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
# textdomain: shields
|
||||||
|
|
||||||
|
|
||||||
|
### init.lua ###
|
||||||
|
|
||||||
|
Admin Shield=Adminschild
|
||||||
|
Bronze Shield=Bronzeschild
|
||||||
|
Cactus Shield=Kaktusschild
|
||||||
|
Crystal Shield=Kristallschild
|
||||||
|
Nether Shield=Netherschild
|
||||||
|
Diamond Shield=Diamantschild
|
||||||
|
Enhanced Cactus Shield=verbessert Kaktusschild
|
||||||
|
Enhanced Wood Shield=verbessert Holzschild
|
||||||
|
Gold Shield=Goldschild
|
||||||
|
Mithril Shield=Mithrilschild
|
||||||
|
Steel Shield=Stahlschild
|
||||||
|
Wooden Shield=Holzschild
|
|
@ -7,6 +7,7 @@ Admin Shield=Bouclier d'admin
|
||||||
Bronze Shield=Bouclier en bronze
|
Bronze Shield=Bouclier en bronze
|
||||||
Cactus Shield=Bouclier en cactus
|
Cactus Shield=Bouclier en cactus
|
||||||
Crystal Shield=Bouclier en cristal
|
Crystal Shield=Bouclier en cristal
|
||||||
|
Nether Shield=Bouclier en nether
|
||||||
Diamond Shield=Bouclier en diamant
|
Diamond Shield=Bouclier en diamant
|
||||||
Enhanced Cactus Shield=Bouclier en cactus amélioré
|
Enhanced Cactus Shield=Bouclier en cactus amélioré
|
||||||
Enhanced Wood Shield=Bouclier en bois amélioré
|
Enhanced Wood Shield=Bouclier en bois amélioré
|
||||||
|
|
|
@ -7,6 +7,7 @@ Admin Shield=
|
||||||
Bronze Shield=
|
Bronze Shield=
|
||||||
Cactus Shield=
|
Cactus Shield=
|
||||||
Crystal Shield=
|
Crystal Shield=
|
||||||
|
Nether Shield=
|
||||||
Diamond Shield=
|
Diamond Shield=
|
||||||
Enhanced Cactus Shield=
|
Enhanced Cactus Shield=
|
||||||
Enhanced Wood Shield=
|
Enhanced Wood Shield=
|
||||||
|
|
|
@ -8,4 +8,5 @@ shields/textures/shields_shield_gold.png:shield
|
||||||
shields/textures/shields_shield_diamond.png:shield
|
shields/textures/shields_shield_diamond.png:shield
|
||||||
shields/textures/shields_shield_mithril.png:shield
|
shields/textures/shields_shield_mithril.png:shield
|
||||||
shields/textures/shields_shield_crystal.png:shield
|
shields/textures/shields_shield_crystal.png:shield
|
||||||
|
shields/textures/shields_shield_nether.png:shield
|
||||||
shields/textures/shields_shield_admin.png:shield
|
shields/textures/shields_shield_admin.png:shield
|
||||||
|
|
After Width: | Height: | Size: 468 B |
After Width: | Height: | Size: 518 B |
After Width: | Height: | Size: 517 B |
|
@ -298,6 +298,26 @@ aquaz.grass= {
|
||||||
special_tiles = "aquaz_stars_anemons_2.png",
|
special_tiles = "aquaz_stars_anemons_2.png",
|
||||||
drop = "aquaz:tall_grass"
|
drop = "aquaz:tall_grass"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name = "aquaz:aquamarine_coral_branch",
|
||||||
|
description= "Aquamarine Coral Branch",
|
||||||
|
special_tiles = "aquaz_aquamarine_coral_branch.png",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "aquaz:pink_birdnest_coral",
|
||||||
|
description= "Pink Birdnest Coral",
|
||||||
|
special_tiles = "aquaz_pink_birdnest_coral.png",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "aquaz:sea_cucumbers",
|
||||||
|
description= "Sea Cucumbers",
|
||||||
|
special_tiles = "aquaz_sea_cucumbers.png",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "aquaz:sword_plant",
|
||||||
|
description= "Aquatic Sword Plant",
|
||||||
|
special_tiles = "aquaz_sword_plant.png",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i = 1, #aquaz.grass do
|
for i = 1, #aquaz.grass do
|
||||||
|
@ -308,7 +328,7 @@ for i = 1, #aquaz.grass do
|
||||||
drop = aquaz.grass[i].name
|
drop = aquaz.grass[i].name
|
||||||
end
|
end
|
||||||
minetest.register_node(aquaz.grass[i].name, {
|
minetest.register_node(aquaz.grass[i].name, {
|
||||||
description = aquaz.grass[i].description,
|
description = S(aquaz.grass[i].description),
|
||||||
drawtype = "plantlike_rooted",
|
drawtype = "plantlike_rooted",
|
||||||
waving = 1,
|
waving = 1,
|
||||||
paramtype = "light",
|
paramtype = "light",
|
||||||
|
@ -410,7 +430,7 @@ if mg_name ~= "v6" and mg_name ~= "singlenode" then
|
||||||
offset = 0.0005,
|
offset = 0.0005,
|
||||||
scale = 0.04,
|
scale = 0.04,
|
||||||
spread = {x = 250, y = 250, z = 250},
|
spread = {x = 250, y = 250, z = 250},
|
||||||
seed = 733,
|
seed = 343,
|
||||||
octaves = 3,
|
octaves = 3,
|
||||||
persist = 0.66
|
persist = 0.66
|
||||||
},
|
},
|
||||||
|
@ -453,6 +473,118 @@ if mg_name ~= "v6" and mg_name ~= "singlenode" then
|
||||||
param2 = 48,
|
param2 = 48,
|
||||||
param2_max = 96,
|
param2_max = 96,
|
||||||
})
|
})
|
||||||
|
minetest.register_decoration({
|
||||||
|
name = "aquaz:aquamarine_coral_branch",
|
||||||
|
decoration = {
|
||||||
|
"aquaz:aquamarine_coral_branch",
|
||||||
|
},
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:sand"},
|
||||||
|
place_offset_y = -1,
|
||||||
|
sidelen = 16,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.0005,
|
||||||
|
scale = 0.04,
|
||||||
|
spread = {x = 250, y = 250, z = 250},
|
||||||
|
seed = 82,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 0.66
|
||||||
|
},
|
||||||
|
biomes = {
|
||||||
|
"grassland_ocean",
|
||||||
|
"coniferous_forest_ocean",
|
||||||
|
"deciduous_forest_ocean"
|
||||||
|
},
|
||||||
|
y_max = -5,
|
||||||
|
y_min = -10,
|
||||||
|
flags = "force_placement",
|
||||||
|
param2 = 48,
|
||||||
|
param2_max = 96,
|
||||||
|
})
|
||||||
|
minetest.register_decoration({
|
||||||
|
name = "aquaz:pink_birdnest_coral",
|
||||||
|
decoration = {
|
||||||
|
"aquaz:pink_birdnest_coral",
|
||||||
|
},
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:sand"},
|
||||||
|
place_offset_y = -1,
|
||||||
|
sidelen = 16,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.0005,
|
||||||
|
scale = 0.04,
|
||||||
|
spread = {x = 250, y = 250, z = 250},
|
||||||
|
seed = 1729,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 0.66
|
||||||
|
},
|
||||||
|
biomes = {
|
||||||
|
"grassland_ocean",
|
||||||
|
"coniferous_forest_ocean",
|
||||||
|
"deciduous_forest_ocean"
|
||||||
|
},
|
||||||
|
y_max = -5,
|
||||||
|
y_min = -10,
|
||||||
|
flags = "force_placement",
|
||||||
|
param2 = 48,
|
||||||
|
param2_max = 96,
|
||||||
|
})
|
||||||
|
minetest.register_decoration({
|
||||||
|
name = "aquaz:sea_cucumbers",
|
||||||
|
decoration = {
|
||||||
|
"aquaz:sea_cucumbers",
|
||||||
|
},
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:sand"},
|
||||||
|
place_offset_y = -1,
|
||||||
|
sidelen = 16,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.0005,
|
||||||
|
scale = 0.04,
|
||||||
|
spread = {x = 250, y = 250, z = 250},
|
||||||
|
seed = 568,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 0.66
|
||||||
|
},
|
||||||
|
biomes = {
|
||||||
|
"grassland_ocean",
|
||||||
|
"coniferous_forest_ocean",
|
||||||
|
"deciduous_forest_ocean"
|
||||||
|
},
|
||||||
|
y_max = -5,
|
||||||
|
y_min = -10,
|
||||||
|
flags = "force_placement",
|
||||||
|
param2 = 48,
|
||||||
|
param2_max = 96,
|
||||||
|
})
|
||||||
|
minetest.register_decoration({
|
||||||
|
name = "aquaz:sword_plant",
|
||||||
|
decoration = {
|
||||||
|
"aquaz:sword_plant",
|
||||||
|
},
|
||||||
|
deco_type = "simple",
|
||||||
|
place_on = {"default:sand"},
|
||||||
|
place_offset_y = -1,
|
||||||
|
sidelen = 16,
|
||||||
|
noise_params = {
|
||||||
|
offset = 0.0005,
|
||||||
|
scale = 0.04,
|
||||||
|
spread = {x = 250, y = 250, z = 250},
|
||||||
|
seed = 568,
|
||||||
|
octaves = 3,
|
||||||
|
persist = 0.66
|
||||||
|
},
|
||||||
|
biomes = {
|
||||||
|
"grassland_ocean",
|
||||||
|
"coniferous_forest_ocean",
|
||||||
|
"deciduous_forest_ocean"
|
||||||
|
},
|
||||||
|
y_max = -5,
|
||||||
|
y_min = -10,
|
||||||
|
flags = "force_placement",
|
||||||
|
param2 = 48,
|
||||||
|
param2_max = 96,
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
--Wrecked Pillar
|
--Wrecked Pillar
|
||||||
|
|
|
@ -14,3 +14,13 @@ Wrecked Pillar Capital=Capitel de pilar ruinoso
|
||||||
Purple Alga Remains=Restos de alga púrpura
|
Purple Alga Remains=Restos de alga púrpura
|
||||||
Orange Alga Remains=Restos de alga naranja
|
Orange Alga Remains=Restos de alga naranja
|
||||||
Red Alga Remains=Restos de alga roja
|
Red Alga Remains=Restos de alga roja
|
||||||
|
Red Alga Remains=Restos de alga roja
|
||||||
|
Aquatic Grass=Hierba acuática
|
||||||
|
Aquatic Tall Grass=Hierba acuática alta
|
||||||
|
Grass with Stars and Anemons=Hierba con estrellas y anémonas
|
||||||
|
Aquamarine Coral Branch=Rama de coral aguamarina
|
||||||
|
Pink Birdnest Coral=Coral nido de pájaro rosa
|
||||||
|
Sea Cucumbers=Pepinos de mar
|
||||||
|
Aquatic Sword Plant=Planta espada acuática
|
||||||
|
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 9.0 KiB |
After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 9.0 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 9.2 KiB |
Before Width: | Height: | Size: 8.7 KiB |
|
@ -1,195 +1,3 @@
|
||||||
schematic = {
|
|
||||||
size = {x=5, y=7, z=5},
|
|
||||||
yslice_prob = {
|
|
||||||
{ypos=0, prob=254},
|
|
||||||
{ypos=1, prob=254},
|
|
||||||
{ypos=2, prob=254},
|
|
||||||
{ypos=3, prob=254},
|
|
||||||
{ypos=4, prob=254},
|
|
||||||
{ypos=5, prob=254},
|
|
||||||
{ypos=6, prob=254},
|
|
||||||
},
|
|
||||||
data = {
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:liana", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:flower_creeper", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:flower_creeper", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:flower_creeper", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:liana", prob=254, param2=0},
|
|
||||||
{name="cacaotree:liana", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:pod", prob=254, param2=4},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:trunk", prob=254, param2=3},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:trunk", prob=254, param2=3},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:pod", prob=254, param2=2},
|
|
||||||
{name="cacaotree:trunk", prob=254, param2=2},
|
|
||||||
{name="cacaotree:pod", prob=254, param2=3},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:liana", prob=254, param2=1},
|
|
||||||
{name="cacaotree:trunk", prob=254, param2=1},
|
|
||||||
{name="cacaotree:liana", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:pod", prob=254, param2=5},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:flower_creeper", prob=254, param2=2},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:flower_creeper", prob=254, param2=2},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:liana", prob=254, param2=2},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:liana", prob=254, param2=2},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="cacaotree:leaves", prob=254, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
{name="air", prob=0, param2=0},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Cacao Tree
|
-- Cacao Tree
|
||||||
--
|
--
|
||||||
|
@ -402,7 +210,7 @@ minetest.register_node("cacaotree:leaves", {
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 1,
|
max_items = 1,
|
||||||
items = {
|
items = {
|
||||||
{items = {"cacaotree:sapling"}, rarity = 20},
|
{items = {"cacaotree:sapling"}, rarity = 12},
|
||||||
{items = {"cacaotree:leaves"}}
|
{items = {"cacaotree:leaves"}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -168,7 +168,7 @@ minetest.register_node("cherrytree:blossom_leaves", {
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 1,
|
max_items = 1,
|
||||||
items = {
|
items = {
|
||||||
{items = {"cherrytree:sapling"}, rarity = 20},
|
{items = {"cherrytree:sapling"}, rarity = 12},
|
||||||
{items = {"cherrytree:blossom_leaves"}}
|
{items = {"cherrytree:blossom_leaves"}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -145,7 +145,7 @@ minetest.register_node("clementinetree:leaves", {
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 1,
|
max_items = 1,
|
||||||
items = {
|
items = {
|
||||||
{items = {"clementinetree:sapling"}, rarity = 20},
|
{items = {"clementinetree:sapling"}, rarity = 13},
|
||||||
{items = {"clementinetree:leaves"}}
|
{items = {"clementinetree:leaves"}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -166,7 +166,7 @@ minetest.register_node("lemontree:leaves", {
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 1,
|
max_items = 1,
|
||||||
items = {
|
items = {
|
||||||
{items = {"lemontree:sapling"}, rarity = 20},
|
{items = {"lemontree:sapling"}, rarity = 15},
|
||||||
{items = {"lemontree:leaves"}}
|
{items = {"lemontree:leaves"}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -145,7 +145,7 @@ minetest.register_node("pomegranate:leaves", {
|
||||||
drop = {
|
drop = {
|
||||||
max_items = 1,
|
max_items = 1,
|
||||||
items = {
|
items = {
|
||||||
{items = {"pomegranate:sapling"}, rarity = 20},
|
{items = {"pomegranate:sapling"}, rarity = 10},
|
||||||
{items = {"pomegranate:leaves"}}
|
{items = {"pomegranate:leaves"}}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Hunger with HUD bar [`hbhunger`]
|
# Hunger with HUD bar [`hbhunger`]
|
||||||
|
|
||||||
* Version: 1.0.1
|
* Version: 1.1.2
|
||||||
|
|
||||||
## Using the mod
|
## Using the mod
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ All mods which add food through standard measures (`minetest.item_eat`) are alre
|
||||||
supported automatically. Poisoned food needs special support.
|
supported automatically. Poisoned food needs special support.
|
||||||
|
|
||||||
### Known supported food mods
|
### Known supported food mods
|
||||||
* Apple from Minetest Game [`default`]
|
* Apple and Blueberries from Minetest Game [`default`]
|
||||||
* Red and brown mushroom from Minetest Game [`flowers`]
|
* Red and brown mushroom from Minetest Game [`flowers`]
|
||||||
* Bread from Minetest Game [`farming`]
|
* Bread from Minetest Game [`farming`]
|
||||||
* [`animalmaterials`] (Mob Framework (`mobf` modpack))
|
* [`animalmaterials`] (Mob Framework (`mobf` modpack))
|
||||||
|
@ -72,10 +72,9 @@ supported automatically. Poisoned food needs special support.
|
||||||
* Food ([`food`], [`food_basic`])
|
* Food ([`food`], [`food_basic`])
|
||||||
* Sweet Foods [`food_sweet`]
|
* Sweet Foods [`food_sweet`]
|
||||||
|
|
||||||
### Examples
|
### Example
|
||||||
|
|
||||||
* Eating an apple (from Minetest Game) increases your satiation by 2;
|
* Eating an apple (from Minetest Game) increases your satiation by 2;
|
||||||
* eating a bread (from Minetest Game) increases your satiation by 4.
|
|
||||||
|
|
||||||
## Licensing
|
## Licensing
|
||||||
This mod is free software.
|
This mod is free software.
|
||||||
|
@ -91,7 +90,7 @@ This mod is free software.
|
||||||
|
|
||||||
* `hbhunger_icon.png`—PilzAdam ([MIT License](https://opensource.org/licenses/MIT)), modified by BlockMen
|
* `hbhunger_icon.png`—PilzAdam ([MIT License](https://opensource.org/licenses/MIT)), modified by BlockMen
|
||||||
* `hbhunger_bgicon.png`—PilzAdam (MIT License), modified by BlockMen
|
* `hbhunger_bgicon.png`—PilzAdam (MIT License), modified by BlockMen
|
||||||
* `hbhunger_bar.png—Wuzzy` (MIT License)
|
* `hbhunger_bar.png`—Wuzzy (MIT License)
|
||||||
* `hbhunger_icon_health_poison.png`—celeron55 ([CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)), modified by BlockMen, modified again by Wuzzy
|
* `hbhunger_icon_health_poison.png`—celeron55 ([CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)), modified by BlockMen, modified again by Wuzzy
|
||||||
* Everything else: MIT License, by BlockMen and Wuzzy
|
* Everything else: MIT License, by BlockMen and Wuzzy
|
||||||
|
|
||||||
|
|
|
@ -7,11 +7,11 @@ function hbhunger.load_hunger(player)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- wrapper for minetest.item_eat (this way we make sure other mods can't break this one)
|
-- wrapper for minetest.item_eat (this way we make sure other mods can't break this one)
|
||||||
local org_eat = core.do_item_eat
|
local org_eat = minetest.do_item_eat
|
||||||
core.do_item_eat = function(hp_change, replace_with_item, itemstack, user, pointed_thing)
|
minetest.do_item_eat = function(hp_change, replace_with_item, itemstack, user, pointed_thing)
|
||||||
local old_itemstack = itemstack
|
local old_itemstack = itemstack
|
||||||
itemstack = hbhunger.eat(hp_change, replace_with_item, itemstack, user, pointed_thing)
|
itemstack = hbhunger.eat(hp_change, replace_with_item, itemstack, user, pointed_thing)
|
||||||
for _, callback in pairs(core.registered_on_item_eats) do
|
for _, callback in pairs(minetest.registered_on_item_eats) do
|
||||||
local result = callback(hp_change, replace_with_item, itemstack, user, pointed_thing, old_itemstack)
|
local result = callback(hp_change, replace_with_item, itemstack, user, pointed_thing, old_itemstack)
|
||||||
if result then
|
if result then
|
||||||
return result
|
return result
|
||||||
|
@ -39,7 +39,7 @@ function hbhunger.eat(hp_change, replace_with_item, itemstack, user, pointed_thi
|
||||||
def = {}
|
def = {}
|
||||||
if type(hp_change) ~= "number" then
|
if type(hp_change) ~= "number" then
|
||||||
hp_change = 1
|
hp_change = 1
|
||||||
core.log("error", "Wrong on_use() definition for item '" .. item .. "'")
|
minetest.log("error", "Wrong on_use() definition for item '" .. item .. "'")
|
||||||
end
|
end
|
||||||
def.saturation = hp_change * 1.3
|
def.saturation = hp_change * 1.3
|
||||||
def.replace = replace_with_item
|
def.replace = replace_with_item
|
||||||
|
@ -79,18 +79,29 @@ function hbhunger.item_eat(hunger_change, replace_with_item, poisen, heal, sound
|
||||||
if h == nil or hp == nil then
|
if h == nil or hp == nil then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
if user:is_player() then
|
||||||
|
local object, object_pos
|
||||||
|
-- Check if user is a "fake player" (unofficial imitation of a the player data structure)
|
||||||
|
if type(user) == "userdata" then
|
||||||
|
object = user
|
||||||
|
else
|
||||||
|
object_pos = user:get_pos()
|
||||||
|
end
|
||||||
minetest.sound_play(
|
minetest.sound_play(
|
||||||
{name = sound or "hbhunger_eat_generic",
|
{name = sound or "hbhunger_eat_generic",
|
||||||
gain = 1},
|
gain = 1},
|
||||||
{object=user,
|
{object=object,
|
||||||
|
pos=object_pos,
|
||||||
max_hear_distance = 16,
|
max_hear_distance = 16,
|
||||||
pitch = 1 + math.random(-10, 10)*0.005,}
|
pitch = 1 + math.random(-10, 10)*0.005,},
|
||||||
|
true
|
||||||
)
|
)
|
||||||
|
end
|
||||||
|
|
||||||
-- Saturation
|
-- Saturation
|
||||||
if h < 30 and hunger_change then
|
if h < hbhunger.SAT_MAX and hunger_change then
|
||||||
h = h + hunger_change
|
h = h + hunger_change
|
||||||
if h > 30 then h = 30 end
|
if h > hbhunger.SAT_MAX then h = hbhunger.SAT_MAX end
|
||||||
hbhunger.hunger[name] = h
|
hbhunger.hunger[name] = h
|
||||||
hbhunger.set_hunger_raw(user)
|
hbhunger.set_hunger_raw(user)
|
||||||
end
|
end
|
||||||
|
@ -115,7 +126,7 @@ function hbhunger.item_eat(hunger_change, replace_with_item, poisen, heal, sound
|
||||||
if inv:room_for_item("main", replace_with_item) then
|
if inv:room_for_item("main", replace_with_item) then
|
||||||
inv:add_item("main", replace_with_item)
|
inv:add_item("main", replace_with_item)
|
||||||
else
|
else
|
||||||
minetest.add_item(user:getpos(), replace_with_item)
|
minetest.add_item(user:get_pos(), replace_with_item)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -123,336 +134,6 @@ function hbhunger.item_eat(hunger_change, replace_with_item, poisen, heal, sound
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if minetest.get_modpath("default") ~= nil then
|
|
||||||
hbhunger.register_food("default:apple", 2)
|
|
||||||
end
|
|
||||||
if minetest.get_modpath("flowers") ~= nil then
|
|
||||||
hbhunger.register_food("flowers:mushroom_brown", 1)
|
|
||||||
hbhunger.register_food("flowers:mushroom_red", 1, "", 3)
|
|
||||||
end
|
|
||||||
if minetest.get_modpath("farming") ~= nil then
|
|
||||||
hbhunger.register_food("farming:bread", 4)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("mobs") ~= nil then
|
|
||||||
if mobs.mod ~= nil and mobs.mod == "redo" then
|
|
||||||
hbhunger.register_food("mobs:cheese", 4)
|
|
||||||
hbhunger.register_food("mobs:meat", 8)
|
|
||||||
hbhunger.register_food("mobs:meat_raw", 4)
|
|
||||||
hbhunger.register_food("mobs:rat_cooked", 4)
|
|
||||||
hbhunger.register_food("mobs:honey", 2)
|
|
||||||
hbhunger.register_food("mobs:pork_raw", 3, "", 3)
|
|
||||||
hbhunger.register_food("mobs:pork_cooked", 8)
|
|
||||||
hbhunger.register_food("mobs:chicken_cooked", 6)
|
|
||||||
hbhunger.register_food("mobs:chicken_raw", 2, "", 3)
|
|
||||||
hbhunger.register_food("mobs:chicken_egg_fried", 2)
|
|
||||||
if minetest.get_modpath("bucket") then
|
|
||||||
hbhunger.register_food("mobs:bucket_milk", 3, "bucket:bucket_empty")
|
|
||||||
end
|
|
||||||
else
|
|
||||||
hbhunger.register_food("mobs:meat", 6)
|
|
||||||
hbhunger.register_food("mobs:meat_raw", 3)
|
|
||||||
hbhunger.register_food("mobs:rat_cooked", 5)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("moretrees") ~= nil then
|
|
||||||
hbhunger.register_food("moretrees:coconut_milk", 1)
|
|
||||||
hbhunger.register_food("moretrees:raw_coconut", 2)
|
|
||||||
hbhunger.register_food("moretrees:acorn_muffin", 3)
|
|
||||||
hbhunger.register_food("moretrees:spruce_nuts", 1)
|
|
||||||
hbhunger.register_food("moretrees:pine_nuts", 1)
|
|
||||||
hbhunger.register_food("moretrees:fir_nuts", 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("dwarves") ~= nil then
|
|
||||||
hbhunger.register_food("dwarves:beer", 2)
|
|
||||||
hbhunger.register_food("dwarves:apple_cider", 1)
|
|
||||||
hbhunger.register_food("dwarves:midus", 2)
|
|
||||||
hbhunger.register_food("dwarves:tequila", 2)
|
|
||||||
hbhunger.register_food("dwarves:tequila_with_lime", 2)
|
|
||||||
hbhunger.register_food("dwarves:sake", 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("animalmaterials") ~= nil then
|
|
||||||
hbhunger.register_food("animalmaterials:milk", 2)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_raw", 3)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_pork", 3)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_beef", 3)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_chicken", 3)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_lamb", 3)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_venison", 3)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_undead", 3, "", 3)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_toxic", 3, "", 5)
|
|
||||||
hbhunger.register_food("animalmaterials:meat_ostrich", 3)
|
|
||||||
hbhunger.register_food("animalmaterials:fish_bluewhite", 2)
|
|
||||||
hbhunger.register_food("animalmaterials:fish_clownfish", 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("fishing") ~= nil then
|
|
||||||
hbhunger.register_food("fishing:fish_raw", 2)
|
|
||||||
hbhunger.register_food("fishing:fish_cooked", 5)
|
|
||||||
hbhunger.register_food("fishing:sushi", 6)
|
|
||||||
hbhunger.register_food("fishing:shark", 4)
|
|
||||||
hbhunger.register_food("fishing:shark_cooked", 8)
|
|
||||||
hbhunger.register_food("fishing:pike", 4)
|
|
||||||
hbhunger.register_food("fishing:pike_cooked", 8)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("glooptest") ~= nil then
|
|
||||||
hbhunger.register_food("glooptest:kalite_lump", 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("bushes") ~= nil then
|
|
||||||
hbhunger.register_food("bushes:sugar", 1)
|
|
||||||
hbhunger.register_food("bushes:strawberry", 2)
|
|
||||||
hbhunger.register_food("bushes:berry_pie_raw", 3)
|
|
||||||
hbhunger.register_food("bushes:berry_pie_cooked", 4)
|
|
||||||
hbhunger.register_food("bushes:basket_pies", 15)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("bushes_classic") then
|
|
||||||
-- bushes_classic mod, as found in the plantlife modpack
|
|
||||||
local berries = {
|
|
||||||
"strawberry",
|
|
||||||
"blackberry",
|
|
||||||
"blueberry",
|
|
||||||
"raspberry",
|
|
||||||
"gooseberry",
|
|
||||||
"mixed_berry"}
|
|
||||||
for _, berry in ipairs(berries) do
|
|
||||||
if berry ~= "mixed_berry" then
|
|
||||||
hbhunger.register_food("bushes:"..berry, 1)
|
|
||||||
end
|
|
||||||
hbhunger.register_food("bushes:"..berry.."_pie_raw", 2)
|
|
||||||
hbhunger.register_food("bushes:"..berry.."_pie_cooked", 5)
|
|
||||||
hbhunger.register_food("bushes:basket_"..berry, 15)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("mushroom") ~= nil then
|
|
||||||
hbhunger.register_food("mushroom:brown", 1)
|
|
||||||
hbhunger.register_food("mushroom:red", 1, "", 3)
|
|
||||||
-- mushroom potions: red = strong poison, brown = light restorative
|
|
||||||
if minetest.get_modpath("vessels") then
|
|
||||||
hbhunger.register_food("mushroom:brown_essence", 1, "vessels:glass_bottle", nil, 4)
|
|
||||||
hbhunger.register_food("mushroom:poison", 1, "vessels:glass_bottle", 10)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("docfarming") ~= nil then
|
|
||||||
hbhunger.register_food("docfarming:carrot", 3)
|
|
||||||
hbhunger.register_food("docfarming:cucumber", 2)
|
|
||||||
hbhunger.register_food("docfarming:corn", 3)
|
|
||||||
hbhunger.register_food("docfarming:potato", 4)
|
|
||||||
hbhunger.register_food("docfarming:bakedpotato", 5)
|
|
||||||
hbhunger.register_food("docfarming:raspberry", 3)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("farming_plus") ~= nil then
|
|
||||||
hbhunger.register_food("farming_plus:carrot_item", 3)
|
|
||||||
hbhunger.register_food("farming_plus:banana", 2)
|
|
||||||
hbhunger.register_food("farming_plus:orange_item", 2)
|
|
||||||
hbhunger.register_food("farming:pumpkin_bread", 4)
|
|
||||||
hbhunger.register_food("farming_plus:strawberry_item", 2)
|
|
||||||
hbhunger.register_food("farming_plus:tomato_item", 2)
|
|
||||||
hbhunger.register_food("farming_plus:potato_item", 4)
|
|
||||||
hbhunger.register_food("farming_plus:rhubarb_item", 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("mtfoods") ~= nil then
|
|
||||||
hbhunger.register_food("mtfoods:dandelion_milk", 1)
|
|
||||||
hbhunger.register_food("mtfoods:sugar", 1)
|
|
||||||
hbhunger.register_food("mtfoods:short_bread", 4)
|
|
||||||
hbhunger.register_food("mtfoods:cream", 1)
|
|
||||||
hbhunger.register_food("mtfoods:chocolate", 2)
|
|
||||||
hbhunger.register_food("mtfoods:cupcake", 2)
|
|
||||||
hbhunger.register_food("mtfoods:strawberry_shortcake", 2)
|
|
||||||
hbhunger.register_food("mtfoods:cake", 3)
|
|
||||||
hbhunger.register_food("mtfoods:chocolate_cake", 3)
|
|
||||||
hbhunger.register_food("mtfoods:carrot_cake", 3)
|
|
||||||
hbhunger.register_food("mtfoods:pie_crust", 3)
|
|
||||||
hbhunger.register_food("mtfoods:apple_pie", 3)
|
|
||||||
hbhunger.register_food("mtfoods:rhubarb_pie", 2)
|
|
||||||
hbhunger.register_food("mtfoods:banana_pie", 3)
|
|
||||||
hbhunger.register_food("mtfoods:pumpkin_pie", 3)
|
|
||||||
hbhunger.register_food("mtfoods:cookies", 2)
|
|
||||||
hbhunger.register_food("mtfoods:mlt_burger", 5)
|
|
||||||
hbhunger.register_food("mtfoods:potato_slices", 2)
|
|
||||||
hbhunger.register_food("mtfoods:potato_chips", 3)
|
|
||||||
--mtfoods:medicine
|
|
||||||
hbhunger.register_food("mtfoods:casserole", 3)
|
|
||||||
hbhunger.register_food("mtfoods:glass_flute", 2)
|
|
||||||
hbhunger.register_food("mtfoods:orange_juice", 2)
|
|
||||||
hbhunger.register_food("mtfoods:apple_juice", 2)
|
|
||||||
hbhunger.register_food("mtfoods:apple_cider", 2)
|
|
||||||
hbhunger.register_food("mtfoods:cider_rack", 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("fruit") ~= nil then
|
|
||||||
hbhunger.register_food("fruit:apple", 2)
|
|
||||||
hbhunger.register_food("fruit:pear", 2)
|
|
||||||
hbhunger.register_food("fruit:bananna", 3)
|
|
||||||
hbhunger.register_food("fruit:orange", 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("mush45") ~= nil then
|
|
||||||
hbhunger.register_food("mush45:meal", 4)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("seaplants") ~= nil then
|
|
||||||
hbhunger.register_food("seaplants:kelpgreen", 1)
|
|
||||||
hbhunger.register_food("seaplants:kelpbrown", 1)
|
|
||||||
hbhunger.register_food("seaplants:seagrassgreen", 1)
|
|
||||||
hbhunger.register_food("seaplants:seagrassred", 1)
|
|
||||||
hbhunger.register_food("seaplants:seasaladmix", 6)
|
|
||||||
hbhunger.register_food("seaplants:kelpgreensalad", 1)
|
|
||||||
hbhunger.register_food("seaplants:kelpbrownsalad", 1)
|
|
||||||
hbhunger.register_food("seaplants:seagrassgreensalad", 1)
|
|
||||||
hbhunger.register_food("seaplants:seagrassgreensalad", 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("mobfcooking") ~= nil then
|
|
||||||
hbhunger.register_food("mobfcooking:cooked_pork", 6)
|
|
||||||
hbhunger.register_food("mobfcooking:cooked_ostrich", 6)
|
|
||||||
hbhunger.register_food("mobfcooking:cooked_beef", 6)
|
|
||||||
hbhunger.register_food("mobfcooking:cooked_chicken", 6)
|
|
||||||
hbhunger.register_food("mobfcooking:cooked_lamb", 6)
|
|
||||||
hbhunger.register_food("mobfcooking:cooked_venison", 6)
|
|
||||||
hbhunger.register_food("mobfcooking:cooked_fish", 6)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("creatures") ~= nil then
|
|
||||||
hbhunger.register_food("creatures:meat", 6)
|
|
||||||
hbhunger.register_food("creatures:flesh", 3)
|
|
||||||
hbhunger.register_food("creatures:rotten_flesh", 3, "", 3)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("ethereal") then
|
|
||||||
hbhunger.register_food("ethereal:strawberry", 1)
|
|
||||||
hbhunger.register_food("ethereal:banana", 4)
|
|
||||||
hbhunger.register_food("ethereal:pine_nuts", 1)
|
|
||||||
hbhunger.register_food("ethereal:bamboo_sprout", 0, "", 3)
|
|
||||||
hbhunger.register_food("ethereal:fern_tubers", 1)
|
|
||||||
hbhunger.register_food("ethereal:banana_bread", 7)
|
|
||||||
hbhunger.register_food("ethereal:mushroom_plant", 2)
|
|
||||||
hbhunger.register_food("ethereal:coconut_slice", 2)
|
|
||||||
hbhunger.register_food("ethereal:golden_apple", 4, "", nil, 10)
|
|
||||||
hbhunger.register_food("ethereal:wild_onion_plant", 2)
|
|
||||||
hbhunger.register_food("ethereal:mushroom_soup", 4, "ethereal:bowl")
|
|
||||||
hbhunger.register_food("ethereal:mushroom_soup_cooked", 6, "ethereal:bowl")
|
|
||||||
hbhunger.register_food("ethereal:hearty_stew", 6, "ethereal:bowl", 3)
|
|
||||||
hbhunger.register_food("ethereal:hearty_stew_cooked", 10, "ethereal:bowl")
|
|
||||||
if minetest.get_modpath("bucket") then
|
|
||||||
hbhunger.register_food("ethereal:bucket_cactus", 2, "bucket:bucket_empty")
|
|
||||||
end
|
|
||||||
hbhunger.register_food("ethereal:fish_raw", 2)
|
|
||||||
hbhunger.register_food("ethereal:fish_cooked", 5)
|
|
||||||
hbhunger.register_food("ethereal:seaweed", 1)
|
|
||||||
hbhunger.register_food("ethereal:yellowleaves", 1, "", nil, 1)
|
|
||||||
hbhunger.register_food("ethereal:sashimi", 4)
|
|
||||||
hbhunger.register_food("ethereal:orange", 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("farming") and farming.mod == "redo" then
|
|
||||||
hbhunger.register_food("farming:bread", 6)
|
|
||||||
hbhunger.register_food("farming:potato", 1)
|
|
||||||
hbhunger.register_food("farming:baked_potato", 6)
|
|
||||||
hbhunger.register_food("farming:cucumber", 4)
|
|
||||||
hbhunger.register_food("farming:tomato", 4)
|
|
||||||
hbhunger.register_food("farming:carrot", 3)
|
|
||||||
hbhunger.register_food("farming:carrot_gold", 6, "", nil, 8)
|
|
||||||
hbhunger.register_food("farming:corn", 3)
|
|
||||||
hbhunger.register_food("farming:corn_cob", 5)
|
|
||||||
hbhunger.register_food("farming:melon_slice", 2)
|
|
||||||
hbhunger.register_food("farming:pumpkin_slice", 1)
|
|
||||||
hbhunger.register_food("farming:pumpkin_bread", 9)
|
|
||||||
hbhunger.register_food("farming:coffee_cup", 2, "farming:drinking_cup")
|
|
||||||
hbhunger.register_food("farming:coffee_cup_hot", 3, "farming:drinking_cup", nil, 2)
|
|
||||||
hbhunger.register_food("farming:cookie", 2)
|
|
||||||
hbhunger.register_food("farming:chocolate_dark", 3)
|
|
||||||
hbhunger.register_food("farming:donut", 4)
|
|
||||||
hbhunger.register_food("farming:donut_chocolate", 6)
|
|
||||||
hbhunger.register_food("farming:donut_apple", 6)
|
|
||||||
hbhunger.register_food("farming:raspberries", 1)
|
|
||||||
hbhunger.register_food("farming:blueberries", 1)
|
|
||||||
hbhunger.register_food("farming:muffin_blueberry", 4)
|
|
||||||
if minetest.get_modpath("vessels") then
|
|
||||||
hbhunger.register_food("farming:smoothie_raspberry", 2, "vessels:drinking_glass")
|
|
||||||
end
|
|
||||||
hbhunger.register_food("farming:rhubarb", 1)
|
|
||||||
hbhunger.register_food("farming:rhubarb_pie", 6)
|
|
||||||
hbhunger.register_food("farming:beans", 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("kpgmobs") ~= nil then
|
|
||||||
hbhunger.register_food("kpgmobs:uley", 3)
|
|
||||||
hbhunger.register_food("kpgmobs:meat", 6)
|
|
||||||
hbhunger.register_food("kpgmobs:rat_cooked", 5)
|
|
||||||
hbhunger.register_food("kpgmobs:med_cooked", 4)
|
|
||||||
if minetest.get_modpath("bucket") then
|
|
||||||
hbhunger.register_food("kpgmobs:bucket_milk", 4, "bucket:bucket_empty")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("jkfarming") ~= nil then
|
|
||||||
hbhunger.register_food("jkfarming:carrot", 3)
|
|
||||||
hbhunger.register_food("jkfarming:corn", 3)
|
|
||||||
hbhunger.register_food("jkfarming:melon_part", 2)
|
|
||||||
hbhunger.register_food("jkfarming:cake", 3)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("jkanimals") ~= nil then
|
|
||||||
hbhunger.register_food("jkanimals:meat", 6)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("jkwine") ~= nil then
|
|
||||||
hbhunger.register_food("jkwine:grapes", 2)
|
|
||||||
hbhunger.register_food("jkwine:winebottle", 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("cooking") ~= nil then
|
|
||||||
hbhunger.register_food("cooking:meat_beef_cooked", 4)
|
|
||||||
hbhunger.register_food("cooking:fish_bluewhite_cooked", 3)
|
|
||||||
hbhunger.register_food("cooking:fish_clownfish_cooked", 1)
|
|
||||||
hbhunger.register_food("cooking:meat_chicken_cooked", 2)
|
|
||||||
hbhunger.register_food("cooking:meat_cooked", 2)
|
|
||||||
hbhunger.register_food("cooking:meat_pork_cooked", 3)
|
|
||||||
hbhunger.register_food("cooking:meat_toxic_cooked", -3)
|
|
||||||
hbhunger.register_food("cooking:meat_venison_cooked", 3)
|
|
||||||
hbhunger.register_food("cooking:meat_undead_cooked", 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- ferns mod of plantlife_modpack
|
|
||||||
if minetest.get_modpath("ferns") ~= nil then
|
|
||||||
hbhunger.register_food("ferns:fiddlehead", 1, "", 1)
|
|
||||||
hbhunger.register_food("ferns:fiddlehead_roasted", 3)
|
|
||||||
hbhunger.register_food("ferns:ferntuber_roasted", 3)
|
|
||||||
hbhunger.register_food("ferns:horsetail_01", 1)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("pizza") ~= nil then
|
|
||||||
hbhunger.register_food("pizza:pizza", 30, "", nil, 30)
|
|
||||||
hbhunger.register_food("pizza:pizzaslice", 5, "", nil, 5)
|
|
||||||
end
|
|
||||||
|
|
||||||
if minetest.get_modpath("nssm") then
|
|
||||||
hbhunger.register_food("nssm:werewolf_leg", 3)
|
|
||||||
hbhunger.register_food("nssm:heron_leg", 2)
|
|
||||||
hbhunger.register_food("nssm:chichibios_heron_leg", 4)
|
|
||||||
hbhunger.register_food("nssm:crocodile_tail", 3)
|
|
||||||
hbhunger.register_food("nssm:duck_legs", 1)
|
|
||||||
hbhunger.register_food("nssm:ant_leg", 1)
|
|
||||||
hbhunger.register_food("nssm:spider_leg", 1)
|
|
||||||
hbhunger.register_food("nssm:tentacle", 2)
|
|
||||||
hbhunger.register_food("nssm:worm_flesh", 2, "", 2) -- poisonous
|
|
||||||
hbhunger.register_food("nssm:amphibian_heart", 1)
|
|
||||||
hbhunger.register_food("nssm:raw_scrausics_wing", 1)
|
|
||||||
-- superfoods
|
|
||||||
hbhunger.register_food("nssm:phoenix_nuggets", 20, "", nil, 20)
|
|
||||||
hbhunger.register_food("nssm:phoenix_tear", 20, "", nil, 20)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- player-action based hunger changes
|
-- player-action based hunger changes
|
||||||
function hbhunger.handle_node_actions(pos, oldnode, player, ext)
|
function hbhunger.handle_node_actions(pos, oldnode, player, ext)
|
||||||
-- is_fake_player comes from the pipeworks, we are not interested in those
|
-- is_fake_player comes from the pipeworks, we are not interested in those
|
||||||
|
|
|
@ -25,6 +25,9 @@ hbhunger.EXHAUST_DIG = 3 -- exhaustion increased this value after digged node
|
||||||
hbhunger.EXHAUST_PLACE = 1 -- exhaustion increased this value after placed
|
hbhunger.EXHAUST_PLACE = 1 -- exhaustion increased this value after placed
|
||||||
hbhunger.EXHAUST_MOVE = 0.3 -- exhaustion increased this value if player movement detected
|
hbhunger.EXHAUST_MOVE = 0.3 -- exhaustion increased this value if player movement detected
|
||||||
hbhunger.EXHAUST_LVL = 160 -- at what exhaustion player satiation gets lowerd
|
hbhunger.EXHAUST_LVL = 160 -- at what exhaustion player satiation gets lowerd
|
||||||
|
hbhunger.SAT_MAX = 30 -- maximum satiation points
|
||||||
|
hbhunger.SAT_INIT = 20 -- initial satiation points
|
||||||
|
hbhunger.SAT_HEAL = 15 -- required satiation points to start healing
|
||||||
|
|
||||||
|
|
||||||
--load custom settings
|
--load custom settings
|
||||||
|
@ -39,9 +42,10 @@ local function custom_hud(player)
|
||||||
end
|
end
|
||||||
|
|
||||||
dofile(minetest.get_modpath("hbhunger").."/hunger.lua")
|
dofile(minetest.get_modpath("hbhunger").."/hunger.lua")
|
||||||
|
dofile(minetest.get_modpath("hbhunger").."/register_foods.lua")
|
||||||
|
|
||||||
-- register satiation hudbar
|
-- register satiation hudbar
|
||||||
hb.register_hudbar("satiation", 0xFFFFFF, S("Satiation"), { icon = "hbhunger_icon.png", bgicon = "hbhunger_bgicon.png", bar = "hbhunger_bar.png" }, 20, 30, false, nil, { format_value = "%.1f", format_max_value = "%d" })
|
hb.register_hudbar("satiation", 0xFFFFFF, S("Satiation"), { icon = "hbhunger_icon.png", bgicon = "hbhunger_bgicon.png", bar = "hbhunger_bar.png" }, hbhunger.SAT_INIT, hbhunger.SAT_MAX, false, nil, { format_value = "%.1f", format_max_value = "%d" })
|
||||||
|
|
||||||
-- update hud elemtens if value has changed
|
-- update hud elemtens if value has changed
|
||||||
local function update_hud(player)
|
local function update_hud(player)
|
||||||
|
@ -73,7 +77,7 @@ hbhunger.set_hunger_raw = function(player)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
local value = hbhunger.hunger[name]
|
local value = hbhunger.hunger[name]
|
||||||
if not inv or not value then return nil end
|
if not inv or not value then return nil end
|
||||||
if value > 30 then value = 30 end
|
if value > hbhunger.SAT_MAX then value = hbhunger.SAT_MAX end
|
||||||
if value < 0 then value = 0 end
|
if value < 0 then value = 0 end
|
||||||
|
|
||||||
inv:set_stack("hunger", 1, ItemStack({name=":", count=value+1}))
|
inv:set_stack("hunger", 1, ItemStack({name=":", count=value+1}))
|
||||||
|
@ -96,7 +100,7 @@ end)
|
||||||
minetest.register_on_respawnplayer(function(player)
|
minetest.register_on_respawnplayer(function(player)
|
||||||
-- reset hunger (and save)
|
-- reset hunger (and save)
|
||||||
local name = player:get_player_name()
|
local name = player:get_player_name()
|
||||||
hbhunger.hunger[name] = 20
|
hbhunger.hunger[name] = hbhunger.SAT_INIT
|
||||||
hbhunger.set_hunger_raw(player)
|
hbhunger.set_hunger_raw(player)
|
||||||
hbhunger.exhaustion[name] = 0
|
hbhunger.exhaustion[name] = 0
|
||||||
end)
|
end)
|
||||||
|
@ -116,10 +120,10 @@ minetest.register_globalstep(function(dtime)
|
||||||
local h = tonumber(hbhunger.hunger[name])
|
local h = tonumber(hbhunger.hunger[name])
|
||||||
local hp = player:get_hp()
|
local hp = player:get_hp()
|
||||||
if timer > 4 then
|
if timer > 4 then
|
||||||
-- heal player by 1 hp if not dead and satiation is > 15 (of 30)
|
-- heal player by 1 hp if not dead and satiation is > hbhunger.SAT_HEAL
|
||||||
if h > 15 and hp > 0 and player:get_breath() > 0 then
|
if h > hbhunger.SAT_HEAL and hp > 0 and player:get_breath() > 0 then
|
||||||
player:set_hp(hp+1)
|
player:set_hp(hp+1)
|
||||||
-- or damage player by 1 hp if satiation is < 2 (of 30)
|
-- or damage player by 1 hp if satiation is < 2
|
||||||
elseif h <= 1 then
|
elseif h <= 1 then
|
||||||
if hp-1 >= 0 then player:set_hp(hp-1) end
|
if hp-1 >= 0 then player:set_hp(hp-1) end
|
||||||
end
|
end
|
||||||
|
@ -147,4 +151,38 @@ minetest.register_globalstep(function(dtime)
|
||||||
if timer2 > hbhunger.HUNGER_TICK then timer2 = 0 end
|
if timer2 > hbhunger.HUNGER_TICK then timer2 = 0 end
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
minetest.register_chatcommand("satiation", {
|
||||||
|
privs = {["server"]=true},
|
||||||
|
params = S("[<player>] <satiation>"),
|
||||||
|
description = S("Set satiation of player or yourself"),
|
||||||
|
func = function(name, param)
|
||||||
|
if minetest.settings:get_bool("enable_damage") == false then
|
||||||
|
return false, S("Not possible, damage is disabled.")
|
||||||
|
end
|
||||||
|
local targetname, satiation = string.match(param, "(%S+) (%S+)")
|
||||||
|
if not targetname then
|
||||||
|
satiation = param
|
||||||
|
end
|
||||||
|
satiation = tonumber(satiation)
|
||||||
|
if not satiation then
|
||||||
|
return false, S("Invalid satiation!")
|
||||||
|
end
|
||||||
|
if not targetname then
|
||||||
|
targetname = name
|
||||||
|
end
|
||||||
|
local target = minetest.get_player_by_name(targetname)
|
||||||
|
if target == nil then
|
||||||
|
return false, S("Player @1 does not exist.", targetname)
|
||||||
|
end
|
||||||
|
if satiation > hbhunger.SAT_MAX then
|
||||||
|
satiation = hbhunger.SAT_MAX
|
||||||
|
elseif satiation < 0 then
|
||||||
|
satiation = 0
|
||||||
|
end
|
||||||
|
hbhunger.hunger[targetname] = satiation
|
||||||
|
hbhunger.set_hunger_raw(target)
|
||||||
|
return true
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,2 +1,7 @@
|
||||||
# textdomain:hbhunger
|
# textdomain:hbhunger
|
||||||
Satiation=Sättigung
|
Satiation=Sättigung
|
||||||
|
Set satiation of player or yourself=Sättigung von Spieler oder Ihnen selbst setzen
|
||||||
|
Not possible, damage is disabled.=Nicht möglich, Schaden ist deaktiviert.
|
||||||
|
Invalid satiation!=Ungültige Sättigung!
|
||||||
|
Player @1 does not exist.=Spieler @1 existiert nicht.
|
||||||
|
[<player>] <satiation>=[<Spieler>] <Sättigung>
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
# textdomain:hbhunger
|
||||||
|
Satiation=Satiété
|
|
@ -1,2 +1,7 @@
|
||||||
# textdomain:hbhunger
|
# textdomain:hbhunger
|
||||||
Satiation=
|
Satiation=
|
||||||
|
Set satiation of player or yourself=
|
||||||
|
Not possible, damage is disabled.=
|
||||||
|
Invalid satiation!=
|
||||||
|
Player @1 does not exist.=
|
||||||
|
[<player>] <satiation>=
|
||||||
|
|
|
@ -0,0 +1,331 @@
|
||||||
|
if minetest.get_modpath("default") ~= nil then
|
||||||
|
hbhunger.register_food("default:apple", 2)
|
||||||
|
hbhunger.register_food("default:blueberries", 2)
|
||||||
|
end
|
||||||
|
if minetest.get_modpath("flowers") ~= nil then
|
||||||
|
hbhunger.register_food("flowers:mushroom_brown", 1)
|
||||||
|
hbhunger.register_food("flowers:mushroom_red", 1, "", 3)
|
||||||
|
end
|
||||||
|
if minetest.get_modpath("farming") ~= nil then
|
||||||
|
hbhunger.register_food("farming:bread", 5)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("mobs") ~= nil then
|
||||||
|
if mobs.mod ~= nil and mobs.mod == "redo" then
|
||||||
|
hbhunger.register_food("mobs:cheese", 4)
|
||||||
|
hbhunger.register_food("mobs:meat", 8)
|
||||||
|
hbhunger.register_food("mobs:meat_raw", 4)
|
||||||
|
hbhunger.register_food("mobs:rat_cooked", 4)
|
||||||
|
hbhunger.register_food("mobs:honey", 2)
|
||||||
|
hbhunger.register_food("mobs:pork_raw", 3, "", 3)
|
||||||
|
hbhunger.register_food("mobs:pork_cooked", 8)
|
||||||
|
hbhunger.register_food("mobs:chicken_cooked", 6)
|
||||||
|
hbhunger.register_food("mobs:chicken_raw", 2, "", 3)
|
||||||
|
hbhunger.register_food("mobs:chicken_egg_fried", 2)
|
||||||
|
if minetest.get_modpath("bucket") then
|
||||||
|
hbhunger.register_food("mobs:bucket_milk", 3, "bucket:bucket_empty")
|
||||||
|
end
|
||||||
|
else
|
||||||
|
hbhunger.register_food("mobs:meat", 6)
|
||||||
|
hbhunger.register_food("mobs:meat_raw", 3)
|
||||||
|
hbhunger.register_food("mobs:rat_cooked", 5)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("moretrees") ~= nil then
|
||||||
|
hbhunger.register_food("moretrees:coconut_milk", 1)
|
||||||
|
hbhunger.register_food("moretrees:raw_coconut", 2)
|
||||||
|
hbhunger.register_food("moretrees:acorn_muffin", 3)
|
||||||
|
hbhunger.register_food("moretrees:spruce_nuts", 1)
|
||||||
|
hbhunger.register_food("moretrees:pine_nuts", 1)
|
||||||
|
hbhunger.register_food("moretrees:fir_nuts", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("dwarves") ~= nil then
|
||||||
|
hbhunger.register_food("dwarves:beer", 2)
|
||||||
|
hbhunger.register_food("dwarves:apple_cider", 1)
|
||||||
|
hbhunger.register_food("dwarves:midus", 2)
|
||||||
|
hbhunger.register_food("dwarves:tequila", 2)
|
||||||
|
hbhunger.register_food("dwarves:tequila_with_lime", 2)
|
||||||
|
hbhunger.register_food("dwarves:sake", 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("animalmaterials") ~= nil then
|
||||||
|
hbhunger.register_food("animalmaterials:milk", 2)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_raw", 3)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_pork", 3)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_beef", 3)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_chicken", 3)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_lamb", 3)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_venison", 3)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_undead", 3, "", 3)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_toxic", 3, "", 5)
|
||||||
|
hbhunger.register_food("animalmaterials:meat_ostrich", 3)
|
||||||
|
hbhunger.register_food("animalmaterials:fish_bluewhite", 2)
|
||||||
|
hbhunger.register_food("animalmaterials:fish_clownfish", 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("fishing") ~= nil then
|
||||||
|
hbhunger.register_food("fishing:fish_raw", 2)
|
||||||
|
hbhunger.register_food("fishing:fish_cooked", 5)
|
||||||
|
hbhunger.register_food("fishing:sushi", 6)
|
||||||
|
hbhunger.register_food("fishing:shark", 4)
|
||||||
|
hbhunger.register_food("fishing:shark_cooked", 8)
|
||||||
|
hbhunger.register_food("fishing:pike", 4)
|
||||||
|
hbhunger.register_food("fishing:pike_cooked", 8)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("glooptest") ~= nil then
|
||||||
|
hbhunger.register_food("glooptest:kalite_lump", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("bushes") ~= nil then
|
||||||
|
hbhunger.register_food("bushes:sugar", 1)
|
||||||
|
hbhunger.register_food("bushes:strawberry", 2)
|
||||||
|
hbhunger.register_food("bushes:berry_pie_raw", 3)
|
||||||
|
hbhunger.register_food("bushes:berry_pie_cooked", 4)
|
||||||
|
hbhunger.register_food("bushes:basket_pies", 15)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("bushes_classic") then
|
||||||
|
-- bushes_classic mod, as found in the plantlife modpack
|
||||||
|
local berries = {
|
||||||
|
"strawberry",
|
||||||
|
"blackberry",
|
||||||
|
"blueberry",
|
||||||
|
"raspberry",
|
||||||
|
"gooseberry",
|
||||||
|
"mixed_berry"}
|
||||||
|
for _, berry in ipairs(berries) do
|
||||||
|
if berry ~= "mixed_berry" then
|
||||||
|
hbhunger.register_food("bushes:"..berry, 1)
|
||||||
|
end
|
||||||
|
hbhunger.register_food("bushes:"..berry.."_pie_raw", 2)
|
||||||
|
hbhunger.register_food("bushes:"..berry.."_pie_cooked", 5)
|
||||||
|
hbhunger.register_food("bushes:basket_"..berry, 15)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("mushroom") ~= nil then
|
||||||
|
hbhunger.register_food("mushroom:brown", 1)
|
||||||
|
hbhunger.register_food("mushroom:red", 1, "", 3)
|
||||||
|
-- mushroom potions: red = strong poison, brown = light restorative
|
||||||
|
if minetest.get_modpath("vessels") then
|
||||||
|
hbhunger.register_food("mushroom:brown_essence", 1, "vessels:glass_bottle", nil, 4)
|
||||||
|
hbhunger.register_food("mushroom:poison", 1, "vessels:glass_bottle", 10)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("docfarming") ~= nil then
|
||||||
|
hbhunger.register_food("docfarming:carrot", 3)
|
||||||
|
hbhunger.register_food("docfarming:cucumber", 2)
|
||||||
|
hbhunger.register_food("docfarming:corn", 3)
|
||||||
|
hbhunger.register_food("docfarming:potato", 4)
|
||||||
|
hbhunger.register_food("docfarming:bakedpotato", 5)
|
||||||
|
hbhunger.register_food("docfarming:raspberry", 3)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("farming_plus") ~= nil then
|
||||||
|
hbhunger.register_food("farming_plus:carrot_item", 3)
|
||||||
|
hbhunger.register_food("farming_plus:banana", 2)
|
||||||
|
hbhunger.register_food("farming_plus:orange_item", 2)
|
||||||
|
hbhunger.register_food("farming:pumpkin_bread", 4)
|
||||||
|
hbhunger.register_food("farming_plus:strawberry_item", 2)
|
||||||
|
hbhunger.register_food("farming_plus:tomato_item", 2)
|
||||||
|
hbhunger.register_food("farming_plus:potato_item", 4)
|
||||||
|
hbhunger.register_food("farming_plus:rhubarb_item", 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("mtfoods") ~= nil then
|
||||||
|
hbhunger.register_food("mtfoods:dandelion_milk", 1)
|
||||||
|
hbhunger.register_food("mtfoods:sugar", 1)
|
||||||
|
hbhunger.register_food("mtfoods:short_bread", 4)
|
||||||
|
hbhunger.register_food("mtfoods:cream", 1)
|
||||||
|
hbhunger.register_food("mtfoods:chocolate", 2)
|
||||||
|
hbhunger.register_food("mtfoods:cupcake", 2)
|
||||||
|
hbhunger.register_food("mtfoods:strawberry_shortcake", 2)
|
||||||
|
hbhunger.register_food("mtfoods:cake", 3)
|
||||||
|
hbhunger.register_food("mtfoods:chocolate_cake", 3)
|
||||||
|
hbhunger.register_food("mtfoods:carrot_cake", 3)
|
||||||
|
hbhunger.register_food("mtfoods:pie_crust", 3)
|
||||||
|
hbhunger.register_food("mtfoods:apple_pie", 3)
|
||||||
|
hbhunger.register_food("mtfoods:rhubarb_pie", 2)
|
||||||
|
hbhunger.register_food("mtfoods:banana_pie", 3)
|
||||||
|
hbhunger.register_food("mtfoods:pumpkin_pie", 3)
|
||||||
|
hbhunger.register_food("mtfoods:cookies", 2)
|
||||||
|
hbhunger.register_food("mtfoods:mlt_burger", 5)
|
||||||
|
hbhunger.register_food("mtfoods:potato_slices", 2)
|
||||||
|
hbhunger.register_food("mtfoods:potato_chips", 3)
|
||||||
|
--mtfoods:medicine
|
||||||
|
hbhunger.register_food("mtfoods:casserole", 3)
|
||||||
|
hbhunger.register_food("mtfoods:glass_flute", 2)
|
||||||
|
hbhunger.register_food("mtfoods:orange_juice", 2)
|
||||||
|
hbhunger.register_food("mtfoods:apple_juice", 2)
|
||||||
|
hbhunger.register_food("mtfoods:apple_cider", 2)
|
||||||
|
hbhunger.register_food("mtfoods:cider_rack", 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("fruit") ~= nil then
|
||||||
|
hbhunger.register_food("fruit:apple", 2)
|
||||||
|
hbhunger.register_food("fruit:pear", 2)
|
||||||
|
hbhunger.register_food("fruit:bananna", 3)
|
||||||
|
hbhunger.register_food("fruit:orange", 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("mush45") ~= nil then
|
||||||
|
hbhunger.register_food("mush45:meal", 4)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("seaplants") ~= nil then
|
||||||
|
hbhunger.register_food("seaplants:kelpgreen", 1)
|
||||||
|
hbhunger.register_food("seaplants:kelpbrown", 1)
|
||||||
|
hbhunger.register_food("seaplants:seagrassgreen", 1)
|
||||||
|
hbhunger.register_food("seaplants:seagrassred", 1)
|
||||||
|
hbhunger.register_food("seaplants:seasaladmix", 6)
|
||||||
|
hbhunger.register_food("seaplants:kelpgreensalad", 1)
|
||||||
|
hbhunger.register_food("seaplants:kelpbrownsalad", 1)
|
||||||
|
hbhunger.register_food("seaplants:seagrassgreensalad", 1)
|
||||||
|
hbhunger.register_food("seaplants:seagrassgreensalad", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("mobfcooking") ~= nil then
|
||||||
|
hbhunger.register_food("mobfcooking:cooked_pork", 6)
|
||||||
|
hbhunger.register_food("mobfcooking:cooked_ostrich", 6)
|
||||||
|
hbhunger.register_food("mobfcooking:cooked_beef", 6)
|
||||||
|
hbhunger.register_food("mobfcooking:cooked_chicken", 6)
|
||||||
|
hbhunger.register_food("mobfcooking:cooked_lamb", 6)
|
||||||
|
hbhunger.register_food("mobfcooking:cooked_venison", 6)
|
||||||
|
hbhunger.register_food("mobfcooking:cooked_fish", 6)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("creatures") ~= nil then
|
||||||
|
hbhunger.register_food("creatures:meat", 6)
|
||||||
|
hbhunger.register_food("creatures:flesh", 3)
|
||||||
|
hbhunger.register_food("creatures:rotten_flesh", 3, "", 3)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("ethereal") then
|
||||||
|
hbhunger.register_food("ethereal:strawberry", 1)
|
||||||
|
hbhunger.register_food("ethereal:banana", 4)
|
||||||
|
hbhunger.register_food("ethereal:pine_nuts", 1)
|
||||||
|
hbhunger.register_food("ethereal:bamboo_sprout", 0, "", 3)
|
||||||
|
hbhunger.register_food("ethereal:fern_tubers", 1)
|
||||||
|
hbhunger.register_food("ethereal:banana_bread", 7)
|
||||||
|
hbhunger.register_food("ethereal:mushroom_plant", 2)
|
||||||
|
hbhunger.register_food("ethereal:coconut_slice", 2)
|
||||||
|
hbhunger.register_food("ethereal:golden_apple", 4, "", nil, 10)
|
||||||
|
hbhunger.register_food("ethereal:wild_onion_plant", 2)
|
||||||
|
hbhunger.register_food("ethereal:mushroom_soup", 4, "ethereal:bowl")
|
||||||
|
hbhunger.register_food("ethereal:mushroom_soup_cooked", 6, "ethereal:bowl")
|
||||||
|
hbhunger.register_food("ethereal:hearty_stew", 6, "ethereal:bowl")
|
||||||
|
hbhunger.register_food("ethereal:hearty_stew_cooked", 10, "ethereal:bowl")
|
||||||
|
if minetest.get_modpath("bucket") then
|
||||||
|
hbhunger.register_food("ethereal:bucket_cactus", 2, "bucket:bucket_empty")
|
||||||
|
end
|
||||||
|
hbhunger.register_food("ethereal:fish_raw", 2)
|
||||||
|
hbhunger.register_food("ethereal:fish_cooked", 5)
|
||||||
|
hbhunger.register_food("ethereal:seaweed", 1)
|
||||||
|
hbhunger.register_food("ethereal:yellowleaves", 1, "", nil, 1)
|
||||||
|
hbhunger.register_food("ethereal:sashimi", 4)
|
||||||
|
hbhunger.register_food("ethereal:orange", 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("farming") and farming.mod == "redo" then
|
||||||
|
hbhunger.register_food("farming:bread", 6)
|
||||||
|
hbhunger.register_food("farming:potato", 1)
|
||||||
|
hbhunger.register_food("farming:baked_potato", 6)
|
||||||
|
hbhunger.register_food("farming:cucumber", 4)
|
||||||
|
hbhunger.register_food("farming:tomato", 4)
|
||||||
|
hbhunger.register_food("farming:carrot", 3)
|
||||||
|
hbhunger.register_food("farming:carrot_gold", 6, "", nil, 8)
|
||||||
|
hbhunger.register_food("farming:corn", 3)
|
||||||
|
hbhunger.register_food("farming:corn_cob", 5)
|
||||||
|
hbhunger.register_food("farming:melon_slice", 2)
|
||||||
|
hbhunger.register_food("farming:pumpkin_slice", 1)
|
||||||
|
hbhunger.register_food("farming:pumpkin_bread", 9)
|
||||||
|
hbhunger.register_food("farming:coffee_cup", 2, "farming:drinking_cup")
|
||||||
|
hbhunger.register_food("farming:coffee_cup_hot", 3, "farming:drinking_cup", nil, 2)
|
||||||
|
hbhunger.register_food("farming:cookie", 2)
|
||||||
|
hbhunger.register_food("farming:chocolate_dark", 3)
|
||||||
|
hbhunger.register_food("farming:donut", 4)
|
||||||
|
hbhunger.register_food("farming:donut_chocolate", 6)
|
||||||
|
hbhunger.register_food("farming:donut_apple", 6)
|
||||||
|
hbhunger.register_food("farming:raspberries", 1)
|
||||||
|
hbhunger.register_food("farming:blueberries", 1)
|
||||||
|
hbhunger.register_food("farming:muffin_blueberry", 4)
|
||||||
|
if minetest.get_modpath("vessels") then
|
||||||
|
hbhunger.register_food("farming:smoothie_raspberry", 2, "vessels:drinking_glass")
|
||||||
|
end
|
||||||
|
hbhunger.register_food("farming:rhubarb", 1)
|
||||||
|
hbhunger.register_food("farming:rhubarb_pie", 6)
|
||||||
|
hbhunger.register_food("farming:beans", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("kpgmobs") ~= nil then
|
||||||
|
hbhunger.register_food("kpgmobs:uley", 3)
|
||||||
|
hbhunger.register_food("kpgmobs:meat", 6)
|
||||||
|
hbhunger.register_food("kpgmobs:rat_cooked", 5)
|
||||||
|
hbhunger.register_food("kpgmobs:med_cooked", 4)
|
||||||
|
if minetest.get_modpath("bucket") then
|
||||||
|
hbhunger.register_food("kpgmobs:bucket_milk", 4, "bucket:bucket_empty")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("jkfarming") ~= nil then
|
||||||
|
hbhunger.register_food("jkfarming:carrot", 3)
|
||||||
|
hbhunger.register_food("jkfarming:corn", 3)
|
||||||
|
hbhunger.register_food("jkfarming:melon_part", 2)
|
||||||
|
hbhunger.register_food("jkfarming:cake", 3)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("jkanimals") ~= nil then
|
||||||
|
hbhunger.register_food("jkanimals:meat", 6)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("jkwine") ~= nil then
|
||||||
|
hbhunger.register_food("jkwine:grapes", 2)
|
||||||
|
hbhunger.register_food("jkwine:winebottle", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("cooking") ~= nil then
|
||||||
|
hbhunger.register_food("cooking:meat_beef_cooked", 4)
|
||||||
|
hbhunger.register_food("cooking:fish_bluewhite_cooked", 3)
|
||||||
|
hbhunger.register_food("cooking:fish_clownfish_cooked", 1)
|
||||||
|
hbhunger.register_food("cooking:meat_chicken_cooked", 2)
|
||||||
|
hbhunger.register_food("cooking:meat_cooked", 2)
|
||||||
|
hbhunger.register_food("cooking:meat_pork_cooked", 3)
|
||||||
|
hbhunger.register_food("cooking:meat_toxic_cooked", -3)
|
||||||
|
hbhunger.register_food("cooking:meat_venison_cooked", 3)
|
||||||
|
hbhunger.register_food("cooking:meat_undead_cooked", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- ferns mod of plantlife_modpack
|
||||||
|
if minetest.get_modpath("ferns") ~= nil then
|
||||||
|
hbhunger.register_food("ferns:fiddlehead", 1, "", 1)
|
||||||
|
hbhunger.register_food("ferns:fiddlehead_roasted", 3)
|
||||||
|
hbhunger.register_food("ferns:ferntuber_roasted", 3)
|
||||||
|
hbhunger.register_food("ferns:horsetail_01", 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("pizza") ~= nil then
|
||||||
|
hbhunger.register_food("pizza:pizza", 30, "", nil, 30)
|
||||||
|
hbhunger.register_food("pizza:pizzaslice", 5, "", nil, 5)
|
||||||
|
end
|
||||||
|
|
||||||
|
if minetest.get_modpath("nssm") then
|
||||||
|
hbhunger.register_food("nssm:werewolf_leg", 3)
|
||||||
|
hbhunger.register_food("nssm:heron_leg", 2)
|
||||||
|
hbhunger.register_food("nssm:chichibios_heron_leg", 4)
|
||||||
|
hbhunger.register_food("nssm:crocodile_tail", 3)
|
||||||
|
hbhunger.register_food("nssm:duck_legs", 1)
|
||||||
|
hbhunger.register_food("nssm:ant_leg", 1)
|
||||||
|
hbhunger.register_food("nssm:spider_leg", 1)
|
||||||
|
hbhunger.register_food("nssm:tentacle", 2)
|
||||||
|
hbhunger.register_food("nssm:worm_flesh", 2, "", 2) -- poisonous
|
||||||
|
hbhunger.register_food("nssm:amphibian_heart", 1)
|
||||||
|
hbhunger.register_food("nssm:raw_scrausics_wing", 1)
|
||||||
|
-- superfoods
|
||||||
|
hbhunger.register_food("nssm:phoenix_nuggets", 20, "", nil, 20)
|
||||||
|
hbhunger.register_food("nssm:phoenix_tear", 20, "", nil, 20)
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
svrz = {}
|
||||||
|
local modname = minetest.get_current_modname()
|
||||||
|
local S = minetest.get_translator(modname)
|
||||||
|
local modpath = minetest.get_modpath(modname)
|
||||||
|
local settings = Settings(modpath .. "/srvz.conf")
|
||||||
|
svrz.settings = {}
|
||||||
|
svrz.settings.reserved = tonumber(settings:get("reserved")) or 0
|
||||||
|
|
||||||
|
minetest.register_on_prejoinplayer(function(player)
|
||||||
|
if minetest.check_player_privs(player, {server = true}) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local connected_players = minetest.get_connected_players()
|
||||||
|
local max_players = tonumber(minetest.setting_get("max_users"))
|
||||||
|
if max_players <= #connected_players + svrz.settings.reserved then
|
||||||
|
msg = S("Server full of players! Retry later.")
|
||||||
|
return msg
|
||||||
|
end
|
||||||
|
end)
|
|
@ -0,0 +1,2 @@
|
||||||
|
# textdomain: srvz
|
||||||
|
Server full of players! Retry later.=¡Servidor lleno de jugadores! Reinténtalo más tarde.
|
|
@ -0,0 +1,2 @@
|
||||||
|
name = srvz
|
||||||
|
depends = sfinv
|
|
@ -0,0 +1 @@
|
||||||
|
reserved=1
|
|
@ -0,0 +1 @@
|
||||||
|
reserved=1
|
|
@ -0,0 +1,16 @@
|
||||||
|
name: build
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
luacheck:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install Luarocks
|
||||||
|
run: |
|
||||||
|
sudo apt-get update -qyy
|
||||||
|
sudo apt-get install luarocks -qyy
|
||||||
|
- name: Install Luacheck
|
||||||
|
run: luarocks install --local luacheck
|
||||||
|
- name: Run Luacheck
|
||||||
|
run: $HOME/.luarocks/bin/luacheck mods
|
|
@ -0,0 +1,10 @@
|
||||||
|
# textdomain: beds
|
||||||
|
Fancy Bed=ファンシーなベッド
|
||||||
|
Simple Bed=シンプルなベッド
|
||||||
|
This bed is already occupied!=ベッドはすでに使われています!
|
||||||
|
You have to stop moving before going to bed!=寝るときは動かないでください!
|
||||||
|
Good morning.=おはようございます。
|
||||||
|
@1 of @2 players are in bed=ベッドに@1 / @2人います
|
||||||
|
Force night skip=強制的に夜をスキップします
|
||||||
|
You can only sleep at night.=夜しか寝れません。
|
||||||
|
Leave Bed=ベッドから出ます
|
|
@ -1,8 +1,8 @@
|
||||||
# textdomain: beds
|
# textdomain: beds
|
||||||
Fancy Bed=Детализированная Кровать
|
Fancy Bed=Детализированная Кровать
|
||||||
Simple Bed=Обычная Кровать
|
Simple Bed=Обычная Кровать
|
||||||
This bed is already occupied!=
|
This bed is already occupied!=Эта кровать уже занята!
|
||||||
You have to stop moving before going to bed!=
|
You have to stop moving before going to bed!=Нельзя воспользоваться кроватью на ходу!
|
||||||
Good morning.=Доброе утро.
|
Good morning.=Доброе утро.
|
||||||
@1 of @2 players are in bed=@1 из @2 игроков в кровати
|
@1 of @2 players are in bed=@1 из @2 игроков в кровати
|
||||||
Force night skip=Пропустить ночь
|
Force night skip=Пропустить ночь
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# textdomain: beds
|
# textdomain: beds
|
||||||
Fancy Bed=花式床
|
Fancy Bed=花式床
|
||||||
Simple Bed=简易床
|
Simple Bed=简易床
|
||||||
This bed is already occupied!=
|
This bed is already occupied!=床上已有人!
|
||||||
You have to stop moving before going to bed!=
|
You have to stop moving before going to bed!=上床前要停止移动!
|
||||||
Good morning.=早安!
|
Good morning.=早安!
|
||||||
@1 of @2 players are in bed=@2位玩家中的@1位在床上
|
@1 of @2 players are in bed=@2位玩家中的@1位在床上
|
||||||
Force night skip=强制跳过夜晚
|
Force night skip=强制跳过夜晚
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
# textdomain: binoculars
|
||||||
|
Binoculars=双眼鏡
|
||||||
|
Use with 'Zoom' key=ズームキーで使います
|
|
@ -0,0 +1,4 @@
|
||||||
|
# textdomain: boats
|
||||||
|
Boat cruise mode on=クルージングモード・オン
|
||||||
|
Boat cruise mode off=クルージングモード・オフ
|
||||||
|
Boat=ボート
|
|
@ -0,0 +1,8 @@
|
||||||
|
# textdomain: bones
|
||||||
|
Bones=骨
|
||||||
|
@1's old bones=@1の古い骨
|
||||||
|
@1 died at @2.=@1は@2で死亡しました。
|
||||||
|
@1 died at @2, and dropped their inventory.=@1は@2で死亡して持ち物を落としました。
|
||||||
|
@1 died at @2, and bones were placed.=@1は@2で死亡して骨が残されました。
|
||||||
|
@1's fresh bones=@1の新鮮な骨
|
||||||
|
@1's bones=@1の骨
|
|
@ -2,7 +2,7 @@
|
||||||
Bones=骨骸
|
Bones=骨骸
|
||||||
@1's old bones=@1的旧骨骸
|
@1's old bones=@1的旧骨骸
|
||||||
@1 died at @2.=@1在@2死亡。
|
@1 died at @2.=@1在@2死亡。
|
||||||
@1 died at @2, and dropped their inventory.=@1在@2死亡,丢掉了物品栏。
|
@1 died at @2, and dropped their inventory.=@1在@2死亡,丢掉了所有物品。
|
||||||
@1 died at @2, and bones were placed.=@1在@2死亡,骨骸被放置。
|
@1 died at @2, and bones were placed.=@1在@2死亡,已放置骨骸。
|
||||||
@1's fresh bones=@1的新鲜骨骸
|
@1's fresh bones=@1的新鲜骨骸
|
||||||
@1's bones=@1的骨骸
|
@1's bones=@1的骨骸
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
# textdomain: bucket
|
||||||
|
Empty Bucket=空のバケツ
|
||||||
|
Water Bucket=水入りバケツ
|
||||||
|
River Water Bucket=川の水入りバケツ
|
||||||
|
Lava Bucket=溶岩入りバケツ
|
|
@ -1,14 +0,0 @@
|
||||||
Minetest Game mod: Butterflies
|
|
||||||
==============================
|
|
||||||
Adds butterflies to the world on mapgen, which can be caught in a net if the
|
|
||||||
fireflies mod is also enabled.
|
|
||||||
|
|
||||||
Authors of source code
|
|
||||||
----------------------
|
|
||||||
Shara RedCat (MIT)
|
|
||||||
|
|
||||||
Authors of media (textures)
|
|
||||||
---------------------------
|
|
||||||
Shara RedCat (CC BY-SA 3.0):
|
|
||||||
butterflies_butterfly_*.png
|
|
||||||
butterflies_butterfly_*_animated.png
|
|
|
@ -1,137 +0,0 @@
|
||||||
-- butterflies/init.lua
|
|
||||||
|
|
||||||
-- Load support for MT game translation.
|
|
||||||
local S = minetest.get_translator("butterflies")
|
|
||||||
|
|
||||||
-- register butterflies
|
|
||||||
local butter_list = {
|
|
||||||
{"white", S("White Butterfly")},
|
|
||||||
{"red", S("Red Butterfly")},
|
|
||||||
{"violet", S("Violet Butterfly")}
|
|
||||||
}
|
|
||||||
|
|
||||||
for i in ipairs (butter_list) do
|
|
||||||
local name = butter_list[i][1]
|
|
||||||
local desc = butter_list[i][2]
|
|
||||||
|
|
||||||
minetest.register_node("butterflies:butterfly_"..name, {
|
|
||||||
description = desc,
|
|
||||||
drawtype = "plantlike",
|
|
||||||
tiles = {{
|
|
||||||
name = "butterflies_butterfly_"..name.."_animated.png",
|
|
||||||
animation = {
|
|
||||||
type = "vertical_frames",
|
|
||||||
aspect_w = 16,
|
|
||||||
aspect_h = 16,
|
|
||||||
length = 3
|
|
||||||
},
|
|
||||||
}},
|
|
||||||
inventory_image = "butterflies_butterfly_"..name..".png",
|
|
||||||
wield_image = "butterflies_butterfly_"..name..".png",
|
|
||||||
waving = 1,
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
buildable_to = true,
|
|
||||||
walkable = false,
|
|
||||||
groups = {catchable = 1},
|
|
||||||
selection_box = {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
|
|
||||||
},
|
|
||||||
floodable = true,
|
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "butterflies:butterfly_"..name})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
|
||||||
on_timer = function(pos, elapsed)
|
|
||||||
if minetest.get_node_light(pos) < 11 then
|
|
||||||
minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name})
|
|
||||||
end
|
|
||||||
minetest.get_node_timer(pos):start(30)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
minetest.register_node("butterflies:hidden_butterfly_"..name, {
|
|
||||||
drawtype = "airlike",
|
|
||||||
inventory_image = "butterflies_butterfly_"..name..".png^default_invisible_node_overlay.png",
|
|
||||||
wield_image = "butterflies_butterfly_"..name..".png^default_invisible_node_overlay.png",
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
walkable = false,
|
|
||||||
pointable = false,
|
|
||||||
diggable = false,
|
|
||||||
drop = "",
|
|
||||||
groups = {not_in_creative_inventory = 1},
|
|
||||||
floodable = true,
|
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
|
||||||
on_timer = function(pos, elapsed)
|
|
||||||
if minetest.get_node_light(pos) >= 11 then
|
|
||||||
minetest.set_node(pos, {name = "butterflies:butterfly_"..name})
|
|
||||||
end
|
|
||||||
minetest.get_node_timer(pos):start(30)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
-- register decoration
|
|
||||||
minetest.register_decoration({
|
|
||||||
name = "butterflies:butterfly",
|
|
||||||
deco_type = "simple",
|
|
||||||
place_on = {"default:dirt_with_grass"},
|
|
||||||
place_offset_y = 2,
|
|
||||||
sidelen = 80,
|
|
||||||
fill_ratio = 0.005,
|
|
||||||
biomes = {"grassland", "deciduous_forest"},
|
|
||||||
y_max = 31000,
|
|
||||||
y_min = 1,
|
|
||||||
decoration = {
|
|
||||||
"butterflies:butterfly_white",
|
|
||||||
"butterflies:butterfly_red",
|
|
||||||
"butterflies:butterfly_violet"
|
|
||||||
},
|
|
||||||
spawn_by = "group:flower",
|
|
||||||
num_spawn_by = 1
|
|
||||||
})
|
|
||||||
|
|
||||||
-- get decoration ID
|
|
||||||
local butterflies = minetest.get_decoration_id("butterflies:butterfly")
|
|
||||||
minetest.set_gen_notify({decoration = true}, {butterflies})
|
|
||||||
|
|
||||||
-- start nodetimers
|
|
||||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
|
||||||
local gennotify = minetest.get_mapgen_object("gennotify")
|
|
||||||
local poslist = {}
|
|
||||||
|
|
||||||
for _, pos in ipairs(gennotify["decoration#"..butterflies] or {}) do
|
|
||||||
local deco_pos = {x = pos.x, y = pos.y + 3, z = pos.z}
|
|
||||||
table.insert(poslist, deco_pos)
|
|
||||||
end
|
|
||||||
|
|
||||||
if #poslist ~= 0 then
|
|
||||||
for i = 1, #poslist do
|
|
||||||
local pos = poslist[i]
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end)
|
|
|
@ -1,58 +0,0 @@
|
||||||
License of source code
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
The MIT License (MIT)
|
|
||||||
Copyright (c) 2018 Shara RedCat
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
|
||||||
software and associated documentation files (the "Software"), to deal in the Software
|
|
||||||
without restriction, including without limitation the rights to use, copy, modify, merge,
|
|
||||||
publish, distribute, sublicense, and/or sell copies of the Software, and to permit
|
|
||||||
persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or
|
|
||||||
substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
||||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
|
|
||||||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
||||||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
||||||
DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
For more details:
|
|
||||||
https://opensource.org/licenses/MIT
|
|
||||||
|
|
||||||
Licenses of media (textures)
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
|
||||||
Copyright (C) 2018 Shara RedCat
|
|
||||||
|
|
||||||
You are free to:
|
|
||||||
Share — copy and redistribute the material in any medium or format.
|
|
||||||
Adapt — remix, transform, and build upon the material for any purpose, even commercially.
|
|
||||||
The licensor cannot revoke these freedoms as long as you follow the license terms.
|
|
||||||
|
|
||||||
Under the following terms:
|
|
||||||
|
|
||||||
Attribution — You must give appropriate credit, provide a link to the license, and
|
|
||||||
indicate if changes were made. You may do so in any reasonable manner, but not in any way
|
|
||||||
that suggests the licensor endorses you or your use.
|
|
||||||
|
|
||||||
ShareAlike — If you remix, transform, or build upon the material, you must distribute
|
|
||||||
your contributions under the same license as the original.
|
|
||||||
|
|
||||||
No additional restrictions — You may not apply legal terms or technological measures that
|
|
||||||
legally restrict others from doing anything the license permits.
|
|
||||||
|
|
||||||
Notices:
|
|
||||||
|
|
||||||
You do not have to comply with the license for elements of the material in the public
|
|
||||||
domain or where your use is permitted by an applicable exception or limitation.
|
|
||||||
No warranties are given. The license may not give you all of the permissions necessary
|
|
||||||
for your intended use. For example, other rights such as publicity, privacy, or moral
|
|
||||||
rights may limit how you use the material.
|
|
||||||
|
|
||||||
For more details:
|
|
||||||
http://creativecommons.org/licenses/by-sa/3.0/
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Weißer Schmetterling
|
|
||||||
Red Butterfly=Roter Schmetterling
|
|
||||||
Violet Butterfly=Violetter Schmetterling
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Blanka Papilio
|
|
||||||
Red Butterfly=Ruĝa Papilio
|
|
||||||
Violet Butterfly=Viola Papilio
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Mariposa blanca
|
|
||||||
Red Butterfly=Mariposa roja
|
|
||||||
Violet Butterfly=Mariposa violeta
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Papillon blanc
|
|
||||||
Red Butterfly=Papillon rouge
|
|
||||||
Violet Butterfly=Papillon violet
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Kupu-Kupu Putih
|
|
||||||
Red Butterfly=Kupu-Kupu Merah
|
|
||||||
Violet Butterfly=Kupu-Kupu Ungu
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Farfalla bianca
|
|
||||||
Red Butterfly=Farfalla rossa
|
|
||||||
Violet Butterfly=Farfalla viola
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=lo blabi toldi
|
|
||||||
Red Butterfly=lo xunre toldi
|
|
||||||
Violet Butterfly=lo zirpu toldi
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Rama-Rama Putih
|
|
||||||
Red Butterfly=Rama-Rama Merah
|
|
||||||
Violet Butterfly=Rama-Rama Ungu
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=
|
|
||||||
Red Butterfly=
|
|
||||||
Violet Butterfly=
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Белая Бабочка
|
|
||||||
Red Butterfly=Красная Бабочка
|
|
||||||
Violet Butterfly=Фиолетовая Бабочка
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Vit fjäril
|
|
||||||
Red Butterfly=Röd fjäril
|
|
||||||
Violet Butterfly=Violett fjäril
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=Biely motýlik
|
|
||||||
Red Butterfly=Červený motýlik
|
|
||||||
Violet Butterfly=Fialový motýlik
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=白蝴蝶
|
|
||||||
Red Butterfly=红蝴蝶
|
|
||||||
Violet Butterfly=紫蝴蝶
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=白蝴蝶
|
|
||||||
Red Butterfly=紅蝴蝶
|
|
||||||
Violet Butterfly=紫蝴蝶
|
|
|
@ -1,4 +0,0 @@
|
||||||
# textdomain: butterflies
|
|
||||||
White Butterfly=
|
|
||||||
Red Butterfly=
|
|
||||||
Violet Butterfly=
|
|
|
@ -1,3 +0,0 @@
|
||||||
name = butterflies
|
|
||||||
description = Minetest Game mod: Butterflies
|
|
||||||
depends = default, flowers
|
|
Before Width: | Height: | Size: 110 B |
Before Width: | Height: | Size: 125 B |
Before Width: | Height: | Size: 110 B |
Before Width: | Height: | Size: 125 B |