Compare commits

..

6 commits

9408 changed files with 71089 additions and 115327 deletions

View file

@ -18,7 +18,7 @@ reset-map-and-players --> reset map and players databases
__Requirements:__ __Requirements:__
Ubuntu 20.04/22.04 (works in LXD) Ubuntu 20.04 (works in LXD)
Be in the project directory via cd before you run any scripts! Be in the project directory via cd before you run any scripts!

View file

@ -1,5 +1,4 @@
mt_version="5.10.0" mt_version="5.4.1"
mt_game_version="5.8.0"
first_install=y first_install=y
ufw_enable=y ufw_enable=y
ufw_ssh_port_for_accept=22 ufw_ssh_port_for_accept=22

View file

@ -1,124 +0,0 @@
minetest.register_alias("stairs:stair_black", "bakedclay:stair_baked_clay_black")
minetest.log("action", "[minetest_mm] Alias stairs:stair_black -> bakedclay:stair_baked_clay_black registered.")
minetest.register_alias("stairs:stair_yellow", "bakedclay:stair_baked_clay_yellow")
minetest.log("action", "[minetest_mm] Alias stairs:stair_yellow -> bakedclay:stair_baked_clay_yellow registered.")
minetest.register_alias("stairs:stair_white", "bakedclay:stair_baked_clay_white")
minetest.log("action", "[minetest_mm] Alias stairs:stair_white -> bakedclay:stair_baked_clay_white registered.")
minetest.register_alias("stairs:stair_violet", "bakedclay:stair_baked_clay_violet")
minetest.log("action", "[minetest_mm] Alias stairs:stair_violet -> bakedclay:stair_baked_clay_violet registered.")
minetest.register_alias("stairs:stair_red", "bakedclay:stair_baked_clay_red")
minetest.log("action", "[minetest_mm] Alias stairs:stair_red -> bakedclay:stair_baked_clay_red registered.")
minetest.register_alias("stairs:stair_pink", "bakedclay:stair_baked_clay_pink")
minetest.log("action", "[minetest_mm] Alias stairs:stair_pink -> bakedclay:stair_baked_clay_pink registered.")
minetest.register_alias("stairs:stair_natural", "bakedclay:stair_baked_clay_natural")
minetest.log("action", "[minetest_mm] Alias stairs:stair_natural -> bakedclay:stair_baked_clay_natural registered.")
minetest.register_alias("stairs:stair_magenta", "bakedclay:stair_baked_clay_magenta")
minetest.log("action", "[minetest_mm] Alias stairs:stair_magenta -> bakedclay:stair_baked_clay_magenta registered.")
minetest.register_alias("stairs:stair_grey", "bakedclay:stair_baked_clay_grey")
minetest.log("action", "[minetest_mm] Alias stairs:stair_grey -> bakedclay:stair_baked_clay_grey registered.")
minetest.register_alias("stairs:stair_green", "bakedclay:stair_baked_clay_green")
minetest.log("action", "[minetest_mm] Alias stairs:stair_green -> bakedclay:stair_baked_clay_green registered.")
minetest.register_alias("stairs:stair_cyan", "bakedclay:stair_baked_clay_cyan")
minetest.log("action", "[minetest_mm] Alias stairs:stair_cyan -> bakedclay:stair_baked_clay_cyan registered.")
minetest.register_alias("stairs:stair_brown", "bakedclay:stair_baked_clay_brown")
minetest.log("action", "[minetest_mm] Alias stairs:stair_brown -> bakedclay:stair_baked_clay_brown registered.")
minetest.register_alias("stairs:stair_blue", "bakedclay:stair_baked_clay_blue")
minetest.log("action", "[minetest_mm] Alias stairs:stair_blue -> bakedclay:stair_baked_clay_blue registered.")
minetest.register_alias("stairs:stair_dark_green", "bakedclay:stair_baked_clay_dark_green")
minetest.log("action", "[minetest_mm] Alias stairs:stair_dark_green -> bakedclay:stair_baked_clay_dark_green registered.")
minetest.register_alias("stairs:stair_dark_grey", "bakedclay:stair_baked_clay_dark_grey")
minetest.log("action", "[minetest_mm] Alias stairs:stair_dark_grey -> bakedclay:stair_baked_clay_dark_grey registered.")
minetest.register_alias("stairs:slab_apple_tree_planks", "moretrees:slab_apple_tree_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_apple_tree_planks -> moretrees:slab_apple_tree_planks registered.")
minetest.register_alias("stairs:slab_beech_planks", "moretrees:slab_beech_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_beech_planks -> moretrees:slab_beech_planks registered.")
minetest.register_alias("stairs:slab_birch_planks", "moretrees:slab_birch_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_birch_planks -> moretrees:slab_birch_planks registered.")
minetest.register_alias("stairs:slab_cedar_planks", "moretrees:slab_cedar_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_cedar_planks -> moretrees:slab_cedar_planks registered.")
minetest.register_alias("stairs:slab_date_palm_planks", "moretrees:slab_date_palm_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_date_palm_planks -> moretrees:slab_date_palm_planks registered.")
minetest.register_alias("stairs:slab_fir_planks", "moretrees:slab_fir_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_fir_planks -> moretrees:slab_fir_planks registered.")
minetest.register_alias("stairs:slab_oak_planks", "moretrees:slab_oak_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_oak_planks -> moretrees:slab_oak_planks registered.")
minetest.register_alias("stairs:slab_palm_planks", "moretrees:slab_palm_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_palm_planks -> moretrees:slab_palm_planks registered.")
minetest.register_alias("stairs:slab_poplar_planks", "moretrees:slab_poplar_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_poplar_planks -> moretrees:slab_poplar_planks registered.")
minetest.register_alias("stairs:slab_rubber_tree_planks", "moretrees:slab_rubber_tree_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_rubber_tree_planks -> moretrees:slab_rubber_tree_planks registered.")
minetest.register_alias("stairs:slab_sequoia_planks", "moretrees:slab_sequoia_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_sequoia_planks -> moretrees:slab_sequoia_planks registered.")
minetest.register_alias("stairs:slab_spruce_planks", "moretrees:slab_spruce_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_spruce_planks -> moretrees:slab_spruce_planks registered.")
minetest.register_alias("stairs:slab_willow_planks", "moretrees:slab_willow_planks")
minetest.log("action", "[minetest_mm] Alias stairs:slab_willow_planks -> moretrees:slab_willow_planks registered.")
minetest.register_alias("stairs:stair_apple_tree_planks", "moretrees:stair_apple_tree_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_apple_tree_planks -> moretrees:stair_apple_tree_planks registered.")
minetest.register_alias("stairs:stair_beech_planks", "moretrees:stair_beech_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_beech_planks -> moretrees:stair_beech_planks registered.")
minetest.register_alias("stairs:stair_birch_planks", "moretrees:stair_birch_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_birch_planks -> moretrees:stair_birch_planks registered.")
minetest.register_alias("stairs:stair_cedar_planks", "moretrees:stair_cedar_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_cedar_planks -> moretrees:stair_cedar_planks registered.")
minetest.register_alias("stairs:stair_date_palm_planks", "moretrees:stair_date_palm_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_date_palm_planks -> moretrees:stair_date_palm_planks registered.")
minetest.register_alias("stairs:stair_fir_planks", "moretrees:stair_fir_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_fir_planks -> moretrees:stair_fir_planks registered.")
minetest.register_alias("stairs:stair_oak_planks", "moretrees:stair_oak_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_oak_planks -> moretrees:stair_oak_planks registered.")
minetest.register_alias("stairs:stair_palm_planks", "moretrees:stair_palm_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_palm_planks -> moretrees:stair_palm_planks registered.")
minetest.register_alias("stairs:stair_poplar_planks", "moretrees:stair_poplar_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_poplar_planks -> moretrees:stair_poplar_planks registered.")
minetest.register_alias("stairs:stair_rubber_tree_planks", "moretrees:stair_rubber_tree_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_rubber_tree_planks -> moretrees:stair_rubber_tree_planks registered.")
minetest.register_alias("stairs:stair_sequoia_planks", "moretrees:stair_sequoia_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_sequoia_planks -> moretrees:stair_sequoia_planks registered.")
minetest.register_alias("stairs:stair_spruce_planks", "moretrees:stair_spruce_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_spruce_planks -> moretrees:stair_spruce_planks registered.")
minetest.register_alias("stairs:stair_willow_planks", "moretrees:stair_willow_planks")
minetest.log("action", "[minetest_mm] Alias stairs:stair_willow_planks -> moretrees:stair_willow_planks registered.")

View file

@ -3,159 +3,149 @@ rm -rf mods
mkdir mods mkdir mods
cd mods cd mods
git clone --depth 1 --branch master https://github.com/minetest-mods/3d_armor.git
git clone --depth 1 --branch master https://github.com/minetest-mods/unified_inventory.git
git clone --depth 1 --branch master https://github.com/minetest-mods/unifiedbricks.git
git clone --depth 1 --branch master https://github.com/minetest-mods/moreblocks.git
git clone --depth 1 --branch master https://github.com/minetest-mods/moreores.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mywalls.git
git clone --depth 1 --branch master https://github.com/minetest-mods/xdecor.git
git clone --depth 1 --branch master https://github.com/minetest-mods/vehicle_mash.git
git clone --depth 1 --branch master https://github.com/minetest-mods/lib_mount
git clone --depth 1 --branch master https://github.com/minetest-mods/workbench.git
git clone --depth 1 --branch master https://github.com/minetest-mods/ts_furniture.git
git clone --depth 1 --branch master https://github.com/minetest-mods/playeranim.git
git clone --depth 1 --branch master https://github.com/minetest-mods/skinsdb.git
git clone --depth 1 --branch master https://github.com/minetest-mods/letters.git
git clone --depth 1 --branch master https://github.com/minetest-mods/ts_doors.git
git clone --depth 1 --branch master https://github.com/minetest-mods/trash_can.git
git clone --depth 1 --branch master https://github.com/minetest-mods/throwing_arrows.git
git clone --depth 1 --branch master https://github.com/minetest-mods/throwing.git
git clone --depth 1 --branch master https://github.com/minetest-mods/stained_glass.git
git clone --depth 1 --branch master https://github.com/minetest-mods/xban2.git
git clone --depth 1 --branch master https://github.com/minetest-mods/drinks.git
git clone --depth 1 --branch master https://github.com/minetest-mods/jukebox.git
git clone --depth 1 --branch master https://github.com/minetest-mods/carpets.git
git clone --depth 1 --branch master https://github.com/minetest-mods/chat2.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mymillwork.git
git clone --depth 1 --branch master https://github.com/minetest-mods/signs_api.git
git clone --depth 1 --branch master https://github.com/minetest-mods/crops.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mtfoods.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mysheetmetal.git
git clone --depth 1 --branch master https://github.com/minetest-mods/ts_workshop.git
git clone --depth 1 --branch master https://github.com/minetest-mods/myroofs.git
git clone --depth 1 --branch master https://github.com/minetest-mods/ts_paper.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mydeck.git
git clone --depth 1 --branch master https://github.com/minetest-mods/enchanting.git
git clone --depth 1 --branch master https://github.com/minetest-mods/interact.git
git clone --depth 1 --branch master https://github.com/minetest-mods/stargate.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mypaths.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mycorners.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mymasonhammer.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mywoodslopes.git
git clone --depth 1 --branch master https://github.com/minetest-mods/display_api.git
git clone --depth 1 --branch master https://github.com/minetest-mods/font_api.git
git clone --depth 1 --branch master https://github.com/minetest-mods/trees_lib.git
git clone --depth 1 --branch master https://github.com/minetest-mods/intllib.git
git clone --depth 1 --branch master https://github.com/minetest-mods/more_chests.git
git clone --depth 1 --branch master https://github.com/minetest-mods/flowerpot.git
git clone --depth 1 --branch master https://github.com/minetest-mods/cloud_items.git
git clone --depth 1 --branch master https://github.com/minetest-mods/compost.git
git clone --depth 1 --branch master https://github.com/minetest-mods/death_compass.git
git clone --depth 1 --branch master https://github.com/minetest-mods/smartfs.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/unifieddyes.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/basic_materials.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/biome_lib.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/moretrees.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/homedecor_modpack.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/signs_lib.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/currency.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/plantlife_modpack.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/new_campfire.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/coloredwood.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/basic_signs.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/roads.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/blox.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/plasticbox.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/charcoal.git
git clone --depth 1 --branch master https://github.com/Sokomine/windmill.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/farming.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/protector.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/playerplus.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_npc.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_redo.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_water.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_monster.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_animal.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mob_horse.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/bows.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/builtin_item.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/bonemeal.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/stamina.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/wine.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/bees.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/wool.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/regrow.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/ambience.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/bakedclay.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/stairs.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/anvils.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/carts.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/doors.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/pie.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/castle.git
git clone --depth 1 --branch master https://notabug.org/TenPlus1/mobs_sky.git
git clone --depth 1 --branch master https://github.com/Uberi/Minetest-WorldEdit.git
git clone --depth 1 --branch master https://github.com/minetest-mods/realchess.git
git clone --depth 1 --branch master https://github.com/Grizzly-Adam/BBQ.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mydoors.git
git clone --depth 1 --branch master https://github.com/TumeniNodes/angledwalls.git
git clone --depth 1 --branch master https://github.com/pyrollo/display_modpack.git
git clone --depth 1 --branch master https://github.com/Sokomine/cottages.git
git clone --depth 1 --branch master https://github.com/joe7575/techpack.git
git clone --depth 1 --branch master https://github.com/random-geek/morelights.git
git clone --depth 1 --branch master https://repo.or.cz/minetest_mtg_plus.git
git clone --depth 1 --branch master https://github.com/minetest-mods/spectator_mode.git
git clone --depth 1 --branch master https://github.com/Extex101/christmas.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/gloopblocks.git
git clone --depth 1 --branch master https://github.com/minetest-mods/mylandscaping.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/minislots.git
git clone --depth 1 --branch master https://github.com/v-rob/bridger.git
git clone --depth 1 --branch master https://github.com/AiTechEye/smartshop.git
git clone --depth 1 --branch master https://repo.or.cz/minetest_colorcubes.git
git clone --depth 1 --branch master https://github.com/DonBatman/myboardgames.git
git clone --depth 1 --branch master https://gitlab.com/VanessaE/ilights.git
git clone --depth 1 --branch master https://github.com/TumeniNodes/angledstairs.git
git clone --depth 1 --branch master https://github.com/TumeniNodes/artdeco.git
git clone --depth 1 --branch master https://github.com/TumeniNodes/facade.git
git clone --depth 1 --branch master https://github.com/TumeniNodes/stoneworks.git
git clone --depth 1 --branch master https://github.com/Delaroyas/simplyslopes.git
git clone --depth 1 --branch master https://github.com/joe7575/tubelib2.git
git clone --depth 1 --branch master https://github.com/Ezhh/abriflame.git
git clone --depth 1 --branch master https://github.com/Ezhh/abriglass.git
git clone --depth 1 --branch master https://github.com/brittm3/Minetest-lpanes.git
git clone --depth 1 --branch master https://github.com/qwrwed/lightsplus.git
git clone --depth 1 --branch master https://github.com/khonkhortisan/rubiks.git
git clone --branch master https://git.bananach.space/advtrains.git
git clone --depth 1 --branch master https://github.com/Dragonop/claycrafter
git clone --depth 1 --branch master https://notabug.org/NetherEran/hot_air_balloons.git
git clone --branch master https://cheapiesystems.com/git/prefab_redo
git clone --branch master https://cheapiesystems.com/git/mail
git clone --branch master https://gitlab.com/VanessaE/home_workshop_modpack.git
git clone --branch master https://git.bananach.space/basic_trains.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/digilines.git #Clean git stuff
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mesecons.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/xcompat.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/3d_armor.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/unified_inventory.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/unifiedbricks.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/moreblocks.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/moreores.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mywalls.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/xdecor.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/vehicle_mash.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/lib_mount
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/workbench.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/ts_furniture.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/playeranim.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/skinsdb.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/letters.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/ts_doors.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/trash_can.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/throwing_arrows.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/throwing.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/stained_glass.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/xban2.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/drinks.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/jukebox.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/carpets.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/chat2.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mymillwork.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/signs_api.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/crops.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mtfoods.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mysheetmetal.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/ts_workshop.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/myroofs.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/ts_paper.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mydeck.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/enchanting.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/interact.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/stargate.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mypaths.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mycorners.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mymasonhammer.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mywoodslopes.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/display_api.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/font_api.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/trees_lib.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/intllib.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/more_chests.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/flowerpot.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/cloud_items.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/compost.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/death_compass.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/smartfs.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/unifieddyes.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/basic_materials.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/biome_lib.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/moretrees.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/homedecor_modpack.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/signs_lib.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/currency.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/plantlife_modpack.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/new_campfire.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/coloredwood.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/basic_signs.git
git clone --recurse-submodules --depth 1 --branch master https://cheapiesystems.com/git/roads
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/blox.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/cheapie/plasticbox.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/torusJKL/charcoal.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Sokomine/windmill.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/farming.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/protector.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/playerplus.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/mobs_npc.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/mobs_redo.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/mobs_water.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/mobs_monster.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/mobs_animal.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/mob_horse.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/bows.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/builtin_item.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/bonemeal.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/stamina.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/wine.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/bees.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/wool.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/regrow.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/ambience.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/bakedclay.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/stairs.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/anvils.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/carts.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/doors.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/pie.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/castle.git
git clone --recurse-submodules --depth 1 --branch master https://codeberg.org/tenplus1/mobs_sky.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Uberi/Minetest-WorldEdit.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/realchess.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Grizzly-Adam/BBQ.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mydoors.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/TumeniNodes/angledwalls.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/pyrollo/display_modpack.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Sokomine/cottages.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/joe7575/techpack.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/random-geek/morelights.git
git clone --recurse-submodules --depth 1 --branch master https://repo.or.cz/minetest_mtg_plus.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/spectator_mode.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Extex101/christmas.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/gloopblocks.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/minetest-mods/mylandscaping.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/minislots.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/v-rob/bridger.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/AiTechEye/smartshop.git
git clone --recurse-submodules --depth 1 --branch master https://repo.or.cz/minetest_colorcubes.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/DonBatman/myboardgames.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/mt-mods/ilights.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/TumeniNodes/angledstairs.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/TumeniNodes/artdeco.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/TumeniNodes/facade.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/TumeniNodes/stoneworks.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Delaroyas/simplyslopes.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/joe7575/tubelib2.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Ezhh/abriflame.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Ezhh/abriglass.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/brittm3/Minetest-lpanes.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/qwrwed/lightsplus.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/khonkhortisan/rubiks.git
git clone --recurse-submodules --branch master https://git.bananach.space/advtrains.git
git clone --recurse-submodules --depth 1 --branch master https://github.com/Dragonop/claycrafter
git clone --recurse-submodules --depth 1 --branch master https://notabug.org/NetherEran/hot_air_balloons.git
git clone --recurse-submodules --branch master https://cheapiesystems.com/git/prefab_redo
git clone --recurse-submodules --branch master https://cheapiesystems.com/git/mail
git clone --recurse-submodules --branch master https://github.com/mt-mods/home_workshop_modpack.git
git clone --recurse-submodules --branch master https://git.bananach.space/basic_trains.git
echo "Cleaning some git stuff"
rm -rf $(find . -name .git*) rm -rf $(find . -name .git*)
#Make some fixes
#1
if [[ $(grep -R "run_at_every_load = false" homedecor_modpack/homedecor_kitchen/init.lua | wc -l) = 1 ]]
then
echo "Applying fix for unknown kitchen_cabinet blocks: https://git.my-web.xyz/milan/minetest-mm/issues/34" echo "Applying fix for unknown kitchen_cabinet blocks: https://git.my-web.xyz/milan/minetest-mm/issues/34"
echo "This fix can be removed after some time" echo "This fix can be removed after some time"
sed -i 's/run_at_every_load = false,/run_at_every_load = true,/' homedecor_modpack/homedecor_kitchen/init.lua sed -i 's/run_at_every_load = false,/run_at_every_load = true,/' homedecor_modpack/homedecor_kitchen/init.lua
fi
echo "Disabling plasticbox homedecor dependency" #update skins-db
sed -i 's/homedecor/homedecor?/' plasticbox/depends.txt
echo "Removing bugged cloud_car"
sed -i 's/loadfile(minetest.get_modpath(minetest.get_current_modname()) .. "\/car.lua")(table.copy(car_def))//' cloud_items/init.lua
rm -f cloud_items/car.lua
echo "Installing minetest_mm mod for some fixes"
mkdir minetest_mm
cp ../minetest_mm.lua minetest_mm/init.lua
echo "Updating skins-db"
cd skinsdb/updater cd skinsdb/updater
python3 update_skins.py python3 update_skins.py

View file

@ -1,5 +1,5 @@
load_mod_interact = false load_mod_interact = false
load_mod_christmas = true load_mod_christmas = false
load_mod_advtrains_luaautomation = false load_mod_advtrains_luaautomation = false
load_mod_advtrains_interlocking = false load_mod_advtrains_interlocking = false
load_mod_advtrains_line_automation = false load_mod_advtrains_line_automation = false
@ -16,6 +16,7 @@ load_mod_letters = true
load_mod_trafficlight = true load_mod_trafficlight = true
load_mod_jukebox = true load_mod_jukebox = true
load_mod_tubelib_addons1 = true load_mod_tubelib_addons1 = true
load_mod_plasmascreen = true
load_mod_mobs_npc = true load_mod_mobs_npc = true
load_mod_my_future_doors = true load_mod_my_future_doors = true
load_mod_itemframes = true load_mod_itemframes = true
@ -28,6 +29,7 @@ load_mod_builtin_item = true
load_mod_homedecor_exterior = true load_mod_homedecor_exterior = true
load_mod_flowerpot = true load_mod_flowerpot = true
load_mod_3d_armor_stand = true load_mod_3d_armor_stand = true
load_mod_junglegrass = true
load_mod_mobs_crocs = true load_mod_mobs_crocs = true
load_mod_homedecor_electrical = true load_mod_homedecor_electrical = true
load_mod_homedecor_doors_and_gates = true load_mod_homedecor_doors_and_gates = true
@ -45,6 +47,7 @@ load_mod_nature_classic = true
load_mod_homedecor_clocks = true load_mod_homedecor_clocks = true
load_mod_signs_road = true load_mod_signs_road = true
load_mod_homedecor_cobweb = true load_mod_homedecor_cobweb = true
load_mod_along_shore = true
load_mod_artdeco = true load_mod_artdeco = true
load_mod_carts = true load_mod_carts = true
load_mod_mobs_butterfly = true load_mod_mobs_butterfly = true
@ -73,7 +76,9 @@ load_mod_bbq = true
load_mod_wieldview = true load_mod_wieldview = true
load_mod_death_compass = true load_mod_death_compass = true
load_mod_facade = true load_mod_facade = true
load_mod_inbox = true
load_mod_cloud_items = true load_mod_cloud_items = true
load_mod_flowers_plus = true
load_mod_bows = true load_mod_bows = true
load_mod_3dmushrooms = true load_mod_3dmushrooms = true
load_mod_minislots_engine = true load_mod_minislots_engine = true
@ -259,6 +264,7 @@ load_mod_serialize_lib = true
load_mod_hot_air_balloons = true load_mod_hot_air_balloons = true
load_mod_mobs_bat = true load_mod_mobs_bat = true
load_mod_home_workshop_machines = true load_mod_home_workshop_machines = true
load_mod_home_workshop_common = true
load_mod_home_workshop_misc = true load_mod_home_workshop_misc = true
load_mod_computers = true load_mod_computers = true
load_mod_advtrains_assets = true load_mod_advtrains_assets = true
@ -266,55 +272,3 @@ load_mod_advtrains_train_subway = true
load_mod_advtrains_train_japan = true load_mod_advtrains_train_japan = true
load_mod_advtrains_train_industrial = true load_mod_advtrains_train_industrial = true
load_mod_advtrains_train_steam = true load_mod_advtrains_train_steam = true
load_mod_home_vending_machines = true
load_mod_pl_sunflowers = true
load_mod_pl_seaweed = true
load_mod_pl_waterlilies = true
load_mod_homedecor_inbox = true
load_mod_armor_steel = true
load_mod_armor_nether = true
load_mod_armor_mithril = true
load_mod_armor_gold = true
load_mod_armor_diamond = true
load_mod_armor_cactus = true
load_mod_armor_bronze = true
load_mod_armor_admin = true
load_mod_armor_crystal = true
load_mod_homedecor_plasmascreen = true
load_mod_armor_wood = true
load_mod_xcompat = true
load_mod_mesecons_wires = true
load_mod_mesecons_walllever = true
load_mod_mesecons_torch = true
load_mod_mesecons_solarpanel = true
load_mod_mesecons_random = true
load_mod_mesecons_pressureplates = true
load_mod_mesecons_powerplant = true
load_mod_mesecons_pistons = true
load_mod_mesecons_mvps = true
load_mod_mesecons_luacontroller = true
load_mod_mesecons_movestones = true
load_mod_mesecons_lightstone = true
load_mod_mesecons_lamp = true
load_mod_mesecons_insulated = true
load_mod_mesecons_gates = true
load_mod_mesecons_extrawires = true
load_mod_mesecons_detector = true
load_mod_mesecons_delayer = true
load_mod_mesecons_commandblock = true
load_mod_mesecons_button = true
load_mod_mesecons_blinkyplant = true
load_mod_digilines = true
load_mod_mesecons_microcontroller = true
load_mod_mesecons_gamecompat = true
load_mod_mesecons_alias = true
load_mod_mesecons_receiver = true
load_mod_mesecons_fpga = true
load_mod_mesecons = true
load_mod_mesecons_materials = true
load_mod_mesecons_hydroturbine = true
load_mod_mesecons_switch = true
load_mod_mesecons_stickyblocks = true
load_mod_mesecons_noteblock = true
load_mod_mesecons_doors = true
load_mod_minetest_mm = true

View file

@ -1,39 +0,0 @@
--- 3D Armor Crafting
--
-- @topic crafting
--- Craft recipes for helmets, chestplates, leggings, boots, & shields.
--
-- @craft armor
-- @usage
-- Key:
-- - m: material
-- - wood: group:wood
-- - cactus: default:cactus
-- - steel: default:steel_ingot
-- - bronze: default:bronze_ingot
-- - diamond: default:diamond
-- - gold: default:gold_ingot
-- - mithril: moreores:mithril_ingot
-- - crystal: ethereal:crystal_ingot
-- - nether: nether:nether_ingot
--
-- helmet: chestplate: leggings:
-- ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐
-- │ m │ m │ m │ │ m │ │ m │ │ m │ m │ m │
-- ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤
-- │ m │ │ m │ │ m │ m │ m │ │ m │ │ m │
-- ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤
-- │ │ │ │ │ m │ m │ m │ │ m │ │ m │
-- └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘
--
-- boots: shield:
-- ┌───┬───┬───┐ ┌───┬───┬───┐
-- │ │ │ │ │ m │ m │ m │
-- ├───┼───┼───┤ ├───┼───┼───┤
-- │ m │ │ m │ │ m │ m │ m │
-- ├───┼───┼───┤ ├───┼───┼───┤
-- │ m │ │ m │ │ │ m │ │
-- └───┴───┴───┘ └───┴───┴───┘

View file

@ -31,7 +31,7 @@ rm -rf "${d_export}"
# generate items, settings, & crafts topics temp files # generate items, settings, & crafts topics temp files
echo -e "\ngenerating temp files ..." echo -e "\ngenerating temp files ..."
for script in src settings; do for script in "src" "settings" "crafts"; do
script="${d_ldoc}/parse_${script}.py" script="${d_ldoc}/parse_${script}.py"
if test ! -f "${script}"; then if test ! -f "${script}"; then
echo "ERROR: script doesn't exist: ${script}" echo "ERROR: script doesn't exist: ${script}"
@ -48,7 +48,7 @@ done
echo echo
# generate new doc files # generate new doc files
"${cmd_ldoc}" --unsafe_no_sandbox -c "${f_config}" -d "${d_export}" "${d_root}"; retval=$? "${cmd_ldoc}" --UNSAFE_NO_SANDBOX -c "${f_config}" -d "${d_export}" "${d_root}"; retval=$?
# check exit status # check exit status
if test ${retval} -ne 0; then if test ${retval} -ne 0; then
@ -57,7 +57,7 @@ if test ${retval} -ne 0; then
fi fi
echo -e "\ncleaning temp files ..." echo -e "\ncleaning temp files ..."
find "${d_ldoc}" -type f -name "*.luadoc" ! -name "crafting.luadoc" -exec rm -vf {} + rm -vf "${d_ldoc}/"*.luadoc
# HACK: ldoc does not seem to like the "shields:" prefix # HACK: ldoc does not seem to like the "shields:" prefix
echo -e "\ncompensating for LDoc's issue with \"shields:\" prefix ..." echo -e "\ncompensating for LDoc's issue with \"shields:\" prefix ..."
@ -72,7 +72,7 @@ sed -i \
printf "\ncopying textures ..." printf "\ncopying textures ..."
mkdir -p "${d_data}" mkdir -p "${d_data}"
texture_count=0 texture_count=0
for d_mod in armor_* shields; do for d_mod in "3d_armor" "shields"; do
printf "\rcopying textures from ${d_mod} ...\n" printf "\rcopying textures from ${d_mod} ...\n"
for png in $(find "${d_root}/${d_mod}/textures" -maxdepth 1 -type f -name "*.png"); do for png in $(find "${d_root}/${d_mod}/textures" -maxdepth 1 -type f -name "*.png"); do
if test -f "${d_data}/$(basename ${png})"; then if test -f "${d_data}/$(basename ${png})"; then

View file

@ -0,0 +1,46 @@
#!/usr/bin/env python
# This script will parse source files for craft recipes.
import sys, os, codecs, errno
path = os.path.realpath(__file__)
script = os.path.basename(path)
d_root = os.path.dirname(os.path.dirname(path))
d_ldoc = os.path.join(d_root, ".ldoc")
craftfile = os.path.realpath(os.path.join(d_root, "3d_armor/armor.lua"))
if not os.path.isfile(craftfile):
print("ERROR: craft file does not exist for parsing: {}".format(craftfile))
sys.exit(errnor.ENOENT)
buffer = codecs.open(craftfile, "r", "utf-8")
if not buffer:
print("ERROR: could not open file for reading: {}".format(craftfile))
sys.exit(errno.EIO)
data_in = buffer.read()
buffer.close()
craft = ""
data_in = data_in.replace("\r\n", "\n").replace("\r", "\n")
for sect in data_in.split("\n---"):
if "@craft armor" in sect:
sect = "---{}".format(sect)
for li in sect.split("\n"):
if li.startswith("--"):
craft = "{}\n{}".format(craft, li)
outfile = os.path.join(d_ldoc, "crafting.luadoc")
buffer = codecs.open(outfile, "w", "utf-8")
if not buffer:
print("ERROR: could not open file for writing: {}".format(outfile))
sys.exit(errno.EIO)
buffer.write("\n--- 3D Armor Crafting\n--\n-- @topic crafting\n\n{}\n".format(craft))
buffer.close()
print("crafts exported to\t{}".format(outfile))

View file

@ -18,7 +18,6 @@ read_globals = {
-- deps -- deps
"default", "default",
"player_api",
"minetest", "minetest",
"unified_inventory", "unified_inventory",
"wardrobe", "wardrobe",

View file

@ -0,0 +1,26 @@
[mod] 3d Armor [3d_armor]
=========================
License Source Code
-------------------
Copyright (C) 2012-2019 stujones11, Stuart Jones <stujones111@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
License Textures
----------------
Copyright (C) 2017-2019 davidthecreator - CC-BY-SA 3.0

View file

@ -6,7 +6,7 @@
|-[Armor Configuration](#armor-configuration) |||- - [3d_Armor Item Storage](#3d_armor-item-storage) |-[Armor Configuration](#armor-configuration) |||- - [3d_Armor Item Storage](#3d_armor-item-storage)
|- - [disable_specific_materials](#to-disable-individual-armor-materials) |||- - [Armor Registration](#armor-registration) |- - [disable_specific_materials](#to-disable-individual-armor-materials) |||- - [Armor Registration](#armor-registration)
|- - [armor_init_delay](#initialization-glitches-when-a-player-first-joins) |||- - [Registering Armor Groups](#registering-armor-groups) |- - [armor_init_delay](#initialization-glitches-when-a-player-first-joins) |||- - [Registering Armor Groups](#registering-armor-groups)
|- - [wieldview_update_time](#how-often-player-wield-items-are-updated) |||- - [Groups used by 3d_Armor](#groups-used-by-3d_armor) |- - [armor_init_times](#number-of-initialization-attempts) |||- - [Groups used by 3d_Armor](#groups-used-by-3d_armor)
|- - [armor_bones_delay](#armor-not-in-bones-due-to-server-lag) |||- - - [Elements](#elements) |- - [armor_bones_delay](#armor-not-in-bones-due-to-server-lag) |||- - - [Elements](#elements)
|- - [armor_update_time](#how-often-player-armor-items-are-updated) |||- - - [Attributes](#attributes) |- - [armor_update_time](#how-often-player-armor-items-are-updated) |||- - - [Attributes](#attributes)
|- - [armor_drop](#drop-armor-when-a-player-dies) |||- - - [Physics](#physics) |- - [armor_drop](#drop-armor-when-a-player-dies) |||- - - [Physics](#physics)
@ -19,7 +19,7 @@
|- - [armor_fire_protect](#enable-fire-protection) |||- - - [armor:remove_all](#armor-remove_all) |- - [armor_fire_protect](#enable-fire-protection) |||- - - [armor:remove_all](#armor-remove_all)
|- - [armor_punch_damage](#enable-punch-damage-effects) |||- - - [armor:equip](#armor-equip) |- - [armor_punch_damage](#enable-punch-damage-effects) |||- - - [armor:equip](#armor-equip)
|- - [armor_migrate_old_inventory](#migration-of-old-armor-inventories) |||- - - [armor:unequip](#armor-unequip) |- - [armor_migrate_old_inventory](#migration-of-old-armor-inventories) |||- - - [armor:unequip](#armor-unequip)
| |||- - - [armor:update_skin](#armor-update_skin) |- - [wieldview_update_time](#how-often-player-wield-items-are-updated) |||- - - [armor:update_skin](#armor-update_skin)
|-[Credits](#credits) |||- - [Callbacks](#Callbacks) |-[Credits](#credits) |||- - [Callbacks](#Callbacks)
| |||- - - [Item callbacks](#item-callbacks) | |||- - - [Item callbacks](#item-callbacks)
| |||- - - [Global callbacks](#global-callbacks) | |||- - - [Global callbacks](#global-callbacks)
@ -53,13 +53,17 @@ 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**
armor_init_delay = 2 armor_init_delay = 2
### Number of initialization attempts
**Increase to prevent glitches - Use in conjunction with armor_init_delay if initialization problems persist.**
armor_init_times = 10
### Armor not in bones due to server lag ### Armor not in bones due to server lag
**Increase to help resolve** **Increase to help resolve**
@ -249,7 +253,7 @@ The above allows armor to block/prevent new damage types but you also need to as
## Groups used by 3d_Armor ## Groups used by 3d_Armor
3d_armor has many default groups already registered, these are categorized under 4 main headings 3d_armor has many default groups already registered, these are categorized under 4 main headings
- **Elements:** armor_head, armor_torso, armor_legs, armor_feet - **Elements:** armor_head, armor_torso, armor_legs, armor_feet
- **Attributes:** armor_heal, armor_fire, armor_water, armor_feather - **Attributes:** armor_heal, armor_fire, armor_water
- **Physics:** physics_jump, physics_speed, physics_gravity - **Physics:** physics_jump, physics_speed, physics_gravity
- **Durability:** armor_use, flammable - **Durability:** armor_use, flammable
@ -329,9 +333,6 @@ The below Diamond chestplate has a 12% chance to completely block all damage (ar
damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
}) })
#### Armor_feather
***"Armor_feather"*** will slow a player when falling. This only has one level or state, which is armor_feather=1
### Physics ### Physics
The physics attributes supported by 3d_armor are ***physics_jump, physics_speed and physics_gravity***. Although 3d_armor supports the use of this with no other mods it is recommended that the mod [player_monoids](https://forum.minetest.net/viewtopic.php?t=14895) is used to help with intermod compatability. The physics attributes supported by 3d_armor are ***physics_jump, physics_speed and physics_gravity***. Although 3d_armor supports the use of this with no other mods it is recommended that the mod [player_monoids](https://forum.minetest.net/viewtopic.php?t=14895) is used to help with intermod compatability.

View file

@ -112,7 +112,7 @@ armor = {
timer = 0, timer = 0,
elements = {"head", "torso", "legs", "feet"}, elements = {"head", "torso", "legs", "feet"},
physics = {"jump", "speed", "gravity"}, physics = {"jump", "speed", "gravity"},
attributes = {"heal", "fire", "water", "feather"}, attributes = {"heal", "fire", "water"},
formspec = "image[2.5,0;2,4;armor_preview]".. formspec = "image[2.5,0;2,4;armor_preview]"..
default.gui_bg.. default.gui_bg..
default.gui_bg_img.. default.gui_bg_img..
@ -132,7 +132,6 @@ armor = {
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",
}, },
fire_nodes = { fire_nodes = {
{"nether:lava_source", 5, 8}, {"nether:lava_source", 5, 8},
@ -162,6 +161,7 @@ armor = {
armor.config = { armor.config = {
init_delay = 2, init_delay = 2,
init_times = 10,
bones_delay = 1, bones_delay = 1,
update_time = 1, update_time = 1,
drop = minetest.get_modpath("bones") ~= nil, drop = minetest.get_modpath("bones") ~= nil,
@ -176,13 +176,11 @@ armor.config = {
material_gold = true, material_gold = true,
material_mithril = true, material_mithril = true,
material_crystal = true, material_crystal = 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,
fire_protect = minetest.get_modpath("ethereal") ~= nil, fire_protect = minetest.get_modpath("ethereal") ~= nil,
fire_protect_torch = minetest.get_modpath("ethereal") ~= nil, fire_protect_torch = minetest.get_modpath("ethereal") ~= nil,
feather_fall = true,
punch_damage = true, punch_damage = true,
} }
@ -352,7 +350,7 @@ armor.update_player_visuals = function(self, player)
end end
local name = player:get_player_name() local name = player:get_player_name()
if self.textures[name] then if self.textures[name] then
player_api.set_textures(player, { default.player_set_textures(player, {
self.textures[name].skin, self.textures[name].skin,
self.textures[name].armor, self.textures[name].armor,
self.textures[name].wielditem, self.textures[name].wielditem,
@ -373,7 +371,7 @@ armor.set_player_armor = function(self, player)
local state = 0 local state = 0
local count = 0 local count = 0
local preview = armor:get_preview(name) local preview = armor:get_preview(name)
local texture = "blank.png" local texture = "3d_armor_trans.png"
local physics = {} local physics = {}
local attributes = {} local attributes = {}
local levels = {} local levels = {}
@ -415,7 +413,7 @@ armor.set_player_armor = function(self, player)
end end
-- DEPRECATED, use armor_groups instead -- DEPRECATED, use armor_groups instead
if def.groups["armor_radiation"] and levels["radiation"] then if def.groups["armor_radiation"] and levels["radiation"] then
levels["radiation"] = levels["radiation"] + def.groups["armor_radiation"] levels["radiation"] = def.groups["armor_radiation"]
end end
end end
local item = stack:get_name() local item = stack:get_name()
@ -490,13 +488,10 @@ armor.set_player_armor = function(self, player)
armor_monoid.monoid:add_change(player, change, "3d_armor:armor") armor_monoid.monoid:add_change(player, change, "3d_armor:armor")
else else
-- Preserve immortal group (damage disabled for player) -- Preserve immortal group (damage disabled for player)
local player_groups = player:get_armor_groups() local immortal = player:get_armor_groups().immortal
local immortal = player_groups.immortal
if immortal and immortal ~= 0 then if immortal and immortal ~= 0 then
groups.immortal = 1 groups.immortal = 1
end end
-- Preserve fall_damage_add_percent group (fall damage modifier)
groups.fall_damage_add_percent = player_groups.fall_damage_add_percent
player:set_armor_groups(groups) player:set_armor_groups(groups)
end end
if use_player_monoids then if use_player_monoids then
@ -630,9 +625,6 @@ end
armor.damage = function(self, player, index, stack, use) armor.damage = function(self, player, index, stack, use)
local old_stack = ItemStack(stack) local old_stack = ItemStack(stack)
local worn_armor = armor:get_weared_armor_elements(player) local worn_armor = armor:get_weared_armor_elements(player)
if not worn_armor then
return
end
local armor_worn_cnt = 0 local armor_worn_cnt = 0
for k,v in pairs(worn_armor) do for k,v in pairs(worn_armor) do
armor_worn_cnt = armor_worn_cnt + 1 armor_worn_cnt = armor_worn_cnt + 1
@ -683,10 +675,6 @@ armor.equip = function(self, player, itemstack)
for i=1, armor_inv:get_size("armor") do for i=1, armor_inv:get_size("armor") do
local stack = armor_inv:get_stack("armor", i) local stack = armor_inv:get_stack("armor", i)
if self:get_element(stack:get_name()) == armor_element then if self:get_element(stack:get_name()) == armor_element then
--prevents equiping an armor that would unequip a cursed armor.
if minetest.get_item_group(stack:get_name(), "cursed") ~= 0 then
return itemstack
end
index = i index = i
self:unequip(player, armor_element) self:unequip(player, armor_element)
break break
@ -719,14 +707,11 @@ armor.unequip = function(self, player, armor_element)
if self:get_element(stack:get_name()) == armor_element then if self:get_element(stack:get_name()) == armor_element then
armor_inv:set_stack("armor", i, "") armor_inv:set_stack("armor", i, "")
minetest.after(0, function() minetest.after(0, function()
local pplayer = minetest.get_player_by_name(name) local inv = player:get_inventory()
if pplayer then -- player is still online
local inv = pplayer:get_inventory()
if inv:room_for_item("main", stack) then if inv:room_for_item("main", stack) then
inv:add_item("main", stack) inv:add_item("main", stack)
else else
minetest.add_item(pplayer:get_pos(), stack) minetest.add_item(player:get_pos(), stack)
end
end end
end) end)
self:run_callbacks("on_unequip", player, i, stack) self:run_callbacks("on_unequip", player, i, stack)
@ -811,6 +796,9 @@ end
-- @tparam[opt] bool listring Use `listring` formspec element (default: `false`). -- @tparam[opt] bool listring Use `listring` formspec element (default: `false`).
-- @treturn string Formspec formatted string. -- @treturn string Formspec formatted string.
armor.get_armor_formspec = function(self, name, listring) armor.get_armor_formspec = function(self, name, listring)
if armor.def[name].init_time == 0 then
return "label[0,0;Armor not initialized!]"
end
local formspec = armor.formspec.. local formspec = armor.formspec..
"list[detached:"..name.."_armor;armor;0,0.5;2,3;]" "list[detached:"..name.."_armor;armor;0,0.5;2,3;]"
if listring == true then if listring == true then
@ -939,10 +927,6 @@ armor.get_valid_player = function(self, player, msg)
minetest.log("warning", ("3d_armor%s: Player reference is nil"):format(msg)) minetest.log("warning", ("3d_armor%s: Player reference is nil"):format(msg))
return return
end end
if type(player) ~= "userdata" then
-- Fake player, fail silently
return
end
local name = player:get_player_name() local name = player:get_player_name()
if not name then if not name then
minetest.log("warning", ("3d_armor%s: Player name is nil"):format(msg)) minetest.log("warning", ("3d_armor%s: Player name is nil"):format(msg))

View file

@ -15,7 +15,6 @@ 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)
@ -35,6 +34,10 @@ ARMOR_FIRE_NODES = {
-- 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 = 1 ARMOR_INIT_DELAY = 1
-- Number of initialization attempts.
-- Use in conjunction with ARMOR_INIT_DELAY if initialization problems persist.
ARMOR_INIT_TIMES = 1
-- Increase this if armor is not getting into bones due to server lag. -- Increase this if armor is not getting into bones due to server lag.
ARMOR_BONES_DELAY = 1 ARMOR_BONES_DELAY = 1

View file

@ -0,0 +1,940 @@
--- Registered armors.
--
-- @topic armor
-- support for i18n
local S = armor.get_translator
--- Admin Helmet
--
-- @helmet 3d_armor:helmet_admin
-- @img 3d_armor_inv_helmet_admin.png
-- @grp armor_head 1
-- @grp armor_heal 100
-- @grp armor_use 0
-- @grp armor_water 1
-- @grp not_in_creative_inventory 1
-- @armorgrp fleshy 100
armor:register_armor("3d_armor:helmet_admin", {
description = S("Admin Helmet"),
inventory_image = "3d_armor_inv_helmet_admin.png",
armor_groups = {fleshy=100},
groups = {armor_head=1, armor_heal=100, armor_use=0, armor_water=1,
not_in_creative_inventory=1},
on_drop = function(itemstack, dropper, pos)
return
end,
})
--- Admin Chestplate
--
-- @chestplate 3d_armor:chestplate_admin
-- @img 3d_armor_inv_chestplate_admin.png
-- @grp armor_torso 1
-- @grp armor_heal 100
-- @grp armor_use 0
-- @grp not_in_creative_inventory 1
-- @armorgrp fleshy 100
armor:register_armor("3d_armor:chestplate_admin", {
description = S("Admin Chestplate"),
inventory_image = "3d_armor_inv_chestplate_admin.png",
armor_groups = {fleshy=100},
groups = {armor_torso=1, armor_heal=100, armor_use=0,
not_in_creative_inventory=1},
on_drop = function(itemstack, dropper, pos)
return
end,
})
--- Admin Leggings
--
-- @leggings 3d_armor:leggings_admin
-- @img 3d_armor_inv_leggings_admin.png
-- @grp armor_legs 1
-- @grp armor_heal 100
-- @grp armor_use 0
-- @grp not_in_creative_inventory 1
-- @armorgrp fleshy 100
armor:register_armor("3d_armor:leggings_admin", {
description = S("Admin Leggings"),
inventory_image = "3d_armor_inv_leggings_admin.png",
armor_groups = {fleshy=100},
groups = {armor_legs=1, armor_heal=100, armor_use=0,
not_in_creative_inventory=1},
on_drop = function(itemstack, dropper, pos)
return
end,
})
--- Admin Boots
--
-- @boots 3d_armor:boots_admin
-- @img 3d_armor_inv_boots_admin.png
-- @grp armor_feet 1
-- @grp armor_heal 100
-- @grp armor_use 0
-- @grp not_in_creative_inventory 1
-- @armorgrp fleshy 100
armor:register_armor("3d_armor:boots_admin", {
description = S("Admin Boots"),
inventory_image = "3d_armor_inv_boots_admin.png",
armor_groups = {fleshy=100},
groups = {armor_feet=1, armor_heal=100, armor_use=0,
not_in_creative_inventory=1},
on_drop = function(itemstack, dropper, pos)
return
end,
})
minetest.register_alias("adminboots", "3d_armor:boots_admin")
minetest.register_alias("adminhelmet", "3d_armor:helmet_admin")
minetest.register_alias("adminchestplate", "3d_armor:chestplate_admin")
minetest.register_alias("adminleggings", "3d_armor:leggings_admin")
--- Wood
--
-- Requires setting `armor_material_wood`.
--
-- @section wood
if armor.materials.wood then
--- Wood Helmet
--
-- @helmet 3d_armor:helmet_wood
-- @img 3d_armor_inv_helmet_wood.png
-- @grp armor_head 1
-- @grp armor_heal 0
-- @grp armor_use 2000
-- @grp flammable 1
-- @armorgrp fleshy 5
-- @damagegrp cracky 3
-- @damagegrp snappy 2
-- @damagegrp choppy 3
-- @damagegrp crumbly 2
-- @damagegrp level 1
armor:register_armor("3d_armor:helmet_wood", {
description = S("Wood Helmet"),
inventory_image = "3d_armor_inv_helmet_wood.png",
groups = {armor_head=1, armor_heal=0, armor_use=2000, flammable=1},
armor_groups = {fleshy=5},
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
})
--- Wood Chestplate
--
-- @chestplate 3d_armor:chestplate_wood
-- @img 3d_armor_inv_chestplate_wood.png
-- @grp armor_torso 1
-- @grp armor_heal 0
-- @grp armor_use 2000
-- @grp flammable 1
-- @armorgrp fleshy 10
-- @damagegrp cracky 3
-- @damagegrp snappy 2
-- @damagegrp choppy 3
-- @damagegrp crumbly 2
-- @damagegrp level 1
armor:register_armor("3d_armor:chestplate_wood", {
description = S("Wood Chestplate"),
inventory_image = "3d_armor_inv_chestplate_wood.png",
groups = {armor_torso=1, armor_heal=0, armor_use=2000, flammable=1},
armor_groups = {fleshy=10},
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
})
--- Wood Leggings
--
-- @leggings 3d_armor:leggings_wood
-- @img 3d_armor_inv_leggings_wood.png
-- @grp armor_legs 1
-- @grp armor_heal 0
-- @grp armor_use 1000
-- @grp flammable 1
-- @armorgrp fleshy 10
-- @damagegrp cracky 3
-- @damagegrp snappy 2
-- @damagegrp choppy 3
-- @damagegrp crumbly 2
-- @damagegrp level 1
armor:register_armor("3d_armor:leggings_wood", {
description = S("Wood Leggings"),
inventory_image = "3d_armor_inv_leggings_wood.png",
groups = {armor_legs=1, armor_heal=0, armor_use=2000, flammable=1},
armor_groups = {fleshy=10},
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
})
--- Wood Boots
--
-- @boots 3d_armor:boots_wood
-- @img 3d_armor_inv_boots_wood.png
-- @grp armor_feet 1
-- @grp armor_heal 0
-- @grp armor_use 2000
-- @grp flammable 1
-- @armorgrp fleshy 5
-- @damagegrp cracky 3
-- @damagegrp snappy 2
-- @damagegrp choppy 3
-- @damagegrp crumbly 2
-- @damagegrp level 1
armor:register_armor("3d_armor:boots_wood", {
description = S("Wood Boots"),
inventory_image = "3d_armor_inv_boots_wood.png",
armor_groups = {fleshy=5},
damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=1},
groups = {armor_feet=1, armor_heal=0, armor_use=2000, flammable=1},
})
local wood_armor_fuel = {
helmet = 6,
chestplate = 8,
leggings = 7,
boots = 5
}
for armor, burn in pairs(wood_armor_fuel) do
minetest.register_craft({
type = "fuel",
recipe = "3d_armor:" .. armor .. "_wood",
burntime = burn,
})
end
end
--- Cactus
--
-- Requires setting `armor_material_cactus`.
--
-- @section cactus
if armor.materials.cactus then
--- Cactus Helmet
--
-- @helmet 3d_armor:helmet_cactus
-- @img 3d_armor_inv_helmet_cactus.png
-- @grp armor_head 1
-- @grp armor_heal 0
-- @grp armor_use 1000
-- @armorgrp fleshy 5
-- @damagegrp cracky 3
-- @damagegrp snappy 3
-- @damagegrp choppy 2
-- @damagegrp crumbly 2
-- @damagegrp level 1
armor:register_armor("3d_armor:helmet_cactus", {
description = S("Cactus Helmet"),
inventory_image = "3d_armor_inv_helmet_cactus.png",
groups = {armor_head=1, armor_heal=0, armor_use=1000},
armor_groups = {fleshy=5},
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
})
--- Cactus Chestplate
--
-- @chestplate 3d_armor:chestplate_cactus
-- @img 3d_armor_inv_chestplate_cactus.png
-- @grp armor_torso 1
-- @grp armor_heal 0
-- @grp armor_use 1000
-- @armorgrp fleshy 10
-- @damagegrp cracky 3
-- @damagegrp snappy 3
-- @damagegrp choppy 2
-- @damagegrp crumbly 2
-- @damagegrp level 1
armor:register_armor("3d_armor:chestplate_cactus", {
description = S("Cactus Chestplate"),
inventory_image = "3d_armor_inv_chestplate_cactus.png",
groups = {armor_torso=1, armor_heal=0, armor_use=1000},
armor_groups = {fleshy=10},
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
})
--- Cactus Leggings
--
-- @leggings 3d_armor:leggings_cactus
-- @img 3d_armor_inv_leggings_cactus.png
-- @grp armor_legs 1
-- @grp armor_heal 0
-- @grp armor_use 1000
-- @armorgrp fleshy 10
-- @damagegrp cracky 3
-- @damagegrp snappy 3
-- @damagegrp choppy 2
-- @damagegrp crumbly 2
-- @damagegrp level 1
armor:register_armor("3d_armor:leggings_cactus", {
description = S("Cactus Leggings"),
inventory_image = "3d_armor_inv_leggings_cactus.png",
groups = {armor_legs=1, armor_heal=0, armor_use=1000},
armor_groups = {fleshy=10},
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
})
--- Cactus Boots
--
-- @boots 3d_armor:boots_cactus
-- @img 3d_armor_inv_boots_cactus.png
-- @grp armor_feet 1
-- @grp armor_heal 0
-- @grp armor_use 1000
-- @armorgrp fleshy 5
-- @damagegrp cracky 3
-- @damagegrp snappy 3
-- @damagegrp choppy 2
-- @damagegrp crumbly 2
-- @damagegrp level 1
armor:register_armor("3d_armor:boots_cactus", {
description = S("Cactus Boots"),
inventory_image = "3d_armor_inv_boots_cactus.png",
groups = {armor_feet=1, armor_heal=0, armor_use=1000},
armor_groups = {fleshy=5},
damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1},
})
local cactus_armor_fuel = {
helmet = 14,
chestplate = 16,
leggings = 15,
boots = 13
}
for armor, burn in pairs(cactus_armor_fuel) do
minetest.register_craft({
type = "fuel",
recipe = "3d_armor:" .. armor .. "_cactus",
burntime = burn,
})
end
end
--- Steel
--
-- Requires setting `armor_material_steel`.
--
-- @section steel
if armor.materials.steel then
--- Steel Helmet
--
-- @helmet 3d_armor:helmet_steel
-- @img 3d_armor_inv_helmet_steel.png
-- @grp armor_head 1
-- @grp armor_heal 0
-- @grp armor_use 800
-- @grp physics_speed -0.01
-- @grp physica_gravity 0.01
-- @armorgrp fleshy 10
-- @damagegrp cracky 2
-- @damagegrp snappy 3
-- @damagegrp choppy 2
-- @damagegrp crumbly 1
-- @damagegrp level 2
armor:register_armor("3d_armor:helmet_steel", {
description = S("Steel Helmet"),
inventory_image = "3d_armor_inv_helmet_steel.png",
groups = {armor_head=1, armor_heal=0, armor_use=800,
physics_speed=-0.01, physics_gravity=0.01},
armor_groups = {fleshy=10},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})
--- Steel Chestplate
--
-- @chestplate 3d_armor:chestplate_steel
-- @img 3d_armor_inv_chestplate_steel.png
-- @grp armor_torso 1
-- @grp armor_heal 0
-- @grp armor_use 800
-- @grp physics_speed
-- @grp physics_gravity
-- @armorgrp fleshy
-- @damagegrp cracky 2
-- @damagegrp snappy 3
-- @damagegrp choppy 2
-- @damagegrp crumbly 1
-- @damagegrp level 2
armor:register_armor("3d_armor:chestplate_steel", {
description = S("Steel Chestplate"),
inventory_image = "3d_armor_inv_chestplate_steel.png",
groups = {armor_torso=1, armor_heal=0, armor_use=800,
physics_speed=-0.04, physics_gravity=0.04},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})
--- Steel Leggings
--
-- @leggings 3d_armor:leggings_steel
-- @img 3d_armor_inv_leggings_steel.png
-- @grp armor_legs 1
-- @grp armor_heal 0
-- @grp armor_use 800
-- @grp physics_speed -0.03
-- @grp physics_gravity 0.03
-- @armorgrp fleshy 15
-- @damagegrp cracky 2
-- @damagegrp snappy 3
-- @damagegrp choppy 2
-- @damagegrp crumbly 1
-- @damagegrp level 2
armor:register_armor("3d_armor:leggings_steel", {
description = S("Steel Leggings"),
inventory_image = "3d_armor_inv_leggings_steel.png",
groups = {armor_legs=1, armor_heal=0, armor_use=800,
physics_speed=-0.03, physics_gravity=0.03},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})
--- Steel Boots
--
-- @boots 3d_armor:boots_steel
-- @img 3d_armor_inv_boots_steel.png
-- @grp armor_feet 1
-- @grp armor_heal 0
-- @grp armor_use 800
-- @grp physics_speed -0.01
-- @grp physics_gravity 0.01
-- @armorgrp fleshy 10
-- @damagegrp cracky 2
-- @damagegrp snappy 3
-- @damagegrp choppy 2
-- @damagegrp crumbly 1
-- @damagegrp level 2
armor:register_armor("3d_armor:boots_steel", {
description = S("Steel Boots"),
inventory_image = "3d_armor_inv_boots_steel.png",
groups = {armor_feet=1, armor_heal=0, armor_use=800,
physics_speed=-0.01, physics_gravity=0.01},
armor_groups = {fleshy=10},
damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2},
})
end
--- Bronze
--
-- Requires setting `armor_material_bronze`.
--
-- @section bronze
if armor.materials.bronze then
--- Bronze Helmet
--
-- @helmet 3d_armor:helmet_bronze
-- @img 3d_armor_inv_helmet_bronze.png
-- @grp armor_head 1
-- @grp armor_heal 6
-- @grp armor_use 400
-- @grp physics_speed -0.01
-- @grp physics_gravity 0.01
-- @armorgrp fleshy 10
-- @damagegrp cracky 3
-- @damagegrp snappy 2
-- @damagegrp choppy 2
-- @damagegrp crumbly 1
-- @damagegrp level 2
armor:register_armor("3d_armor:helmet_bronze", {
description = S("Bronze Helmet"),
inventory_image = "3d_armor_inv_helmet_bronze.png",
groups = {armor_head=1, armor_heal=6, armor_use=400,
physics_speed=-0.01, physics_gravity=0.01},
armor_groups = {fleshy=10},
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
})
--- Bronze Chestplate
--
-- @chestplate 3d_armor:chestplate_bronze
-- @img 3d_armor_inv_chestplate_bronze.png
-- @grp armor_torso 1
-- @grp armor_heal 6
-- @grp armor_use 400
-- @grp physics_speed -0.04
-- @grp physics_gravity 0.04
-- @armorgrp fleshy 15
-- @damagegrp cracky 3
-- @damagegrp snappy 2
-- @damagegrp choppy 2
-- @damagegrp crumbly 1
-- @damagegrp level 2
armor:register_armor("3d_armor:chestplate_bronze", {
description = S("Bronze Chestplate"),
inventory_image = "3d_armor_inv_chestplate_bronze.png",
groups = {armor_torso=1, armor_heal=6, armor_use=400,
physics_speed=-0.04, physics_gravity=0.04},
armor_groups = {fleshy=15},
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
})
--- Bronze Leggings
--
-- @leggings 3d_armor:leggings_bronze
-- @img 3d_armor_inv_leggings_bronze.png
-- @grp armor_legs 1
-- @grp armor_heal 6
-- @grp armor_use 400
-- @grp physics_speed -0.03
-- @grp physics_gravity 0.03
-- @armorgrp fleshy 15
-- @damagegrp cracky 3
-- @damagegrp snappy 2
-- @damagegrp choppy 2
-- @damagegrp crumbly 1
-- @damagegrp level 2
armor:register_armor("3d_armor:leggings_bronze", {
description = S("Bronze Leggings"),
inventory_image = "3d_armor_inv_leggings_bronze.png",
groups = {armor_legs=1, armor_heal=6, armor_use=400,
physics_speed=-0.03, physics_gravity=0.03},
armor_groups = {fleshy=15},
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
})
--- Bronze Boots
--
-- @boots 3d_armor:boots_bronze
-- @img 3d_armor_inv_boots_bronze.png
-- @grp armor_feet 1
-- @grp armor_heal 6
-- @grp armor_use 400
-- @grp physics_speed -0.01
-- @grp physics_gravity 0.01
-- @armorgrp fleshy 10
-- @damagegrp cracky 3
-- @damagegrp snappy 2
-- @damagegrp choppy 2
-- @damagegrp crumbly 1
-- @damagegrp level 2
armor:register_armor("3d_armor:boots_bronze", {
description = S("Bronze Boots"),
inventory_image = "3d_armor_inv_boots_bronze.png",
groups = {armor_feet=1, armor_heal=6, armor_use=400,
physics_speed=-0.01, physics_gravity=0.01},
armor_groups = {fleshy=10},
damage_groups = {cracky=3, snappy=2, choppy=2, crumbly=1, level=2},
})
end
--- Diamond
--
-- Requires setting `armor_material_diamond`.
--
-- @section diamond
if armor.materials.diamond then
--- Diamond Helmet
--
-- @helmet 3d_armor:helmet_diamond
-- @img 3d_armor_inv_helmet_diamond.png
-- @grp armor_head 1
-- @grp armor_heal 12
-- @grp armor_use 200
-- @armorgrp fleshy 15
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp choppy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:helmet_diamond", {
description = S("Diamond Helmet"),
inventory_image = "3d_armor_inv_helmet_diamond.png",
groups = {armor_head=1, armor_heal=12, armor_use=200},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
})
--- Diamond Chestplate
--
-- @chestplate 3d_armor:chestplate_diamond
-- @img 3d_armor_inv_chestplate_diamond.png
-- @grp armor_torso 1
-- @grp armor_heal 12
-- @grp armor_use 200
-- @armorgrp fleshy 20
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp choppy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:chestplate_diamond", {
description = S("Diamond Chestplate"),
inventory_image = "3d_armor_inv_chestplate_diamond.png",
groups = {armor_torso=1, armor_heal=12, armor_use=200},
armor_groups = {fleshy=20},
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
})
--- Diamond Leggings
--
-- @leggings 3d_armor:leggings_diamond
-- @img 3d_armor_inv_leggings_diamond.png
-- @grp armor_legs 1
-- @grp armor_heal 12
-- @grp armor_use 200
-- @armorgrp fleshy 20
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp choppy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:leggings_diamond", {
description = S("Diamond Leggings"),
inventory_image = "3d_armor_inv_leggings_diamond.png",
groups = {armor_legs=1, armor_heal=12, armor_use=200},
armor_groups = {fleshy=20},
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
})
--- Diamond Boots
--
-- @boots 3d_armor:boots_diamond
-- @img 3d_armor_inv_boots_diamond.png
-- @grp armor_feet 1
-- @grp armor_heal 12
-- @grp armor_use 200
-- @armorgrp fleshy 15
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp choppy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:boots_diamond", {
description = S("Diamond Boots"),
inventory_image = "3d_armor_inv_boots_diamond.png",
groups = {armor_feet=1, armor_heal=12, armor_use=200},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=1, choppy=1, level=3},
})
end
--- Gold
--
-- Requires `armor_material_gold`.
--
-- @section gold
if armor.materials.gold then
--- Gold Helmet
--
-- @helmet 3d_armor:helmet_gold
-- @img 3d_armor_inv_helmet_gold.png
-- @grp armor_head 1
-- @grp armor_heal 6
-- @grp armor_use 300
-- @grp physics_speed -0.02
-- @grp physics_gravity 0.02
-- @armorgrp fleshy 10
-- @damagegrp cracky 1
-- @damagegrp snappy 2
-- @damagegrp choppy 2
-- @damagegrp crumbly 3
-- @damagegrp level 2
armor:register_armor("3d_armor:helmet_gold", {
description = S("Gold Helmet"),
inventory_image = "3d_armor_inv_helmet_gold.png",
groups = {armor_head=1, armor_heal=6, armor_use=300,
physics_speed=-0.02, physics_gravity=0.02},
armor_groups = {fleshy=10},
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
})
--- Gold Chestplate
--
-- @chestplate 3d_armor:chestplate_gold
-- @img 3d_armor_inv_chestplate_gold.png
-- @grp armor_torso 1
-- @grp armor_heal 6
-- @grp armor_use 300
-- @grp physics_speed -0.05
-- @grp physics_gravity 0.05
-- @armorgrp fleshy 15
-- @damagegrp cracky 1
-- @damagegrp snappy 2
-- @damagegrp choppy 2
-- @damagegrp crumbly 3
-- @damagegrp level 2
armor:register_armor("3d_armor:chestplate_gold", {
description = S("Gold Chestplate"),
inventory_image = "3d_armor_inv_chestplate_gold.png",
groups = {armor_torso=1, armor_heal=6, armor_use=300,
physics_speed=-0.05, physics_gravity=0.05},
armor_groups = {fleshy=15},
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
})
--- Gold Leggings
--
-- @leggings 3d_armor:leggings_gold
-- @img 3d_armor_inv_leggings_gold.png
-- @grp armor_legs 1
-- @grp armor_heal 6
-- @grp armor_use 300
-- @grp physics_speed -0.04
-- @grp physics_gravity 0.04
-- @armorgrp fleshy 15
-- @damagegrp cracky 1
-- @damagegrp snappy 2
-- @damagegrp choppy 2
-- @damagegrp crumbly 3
-- @damagegrp level 2
armor:register_armor("3d_armor:leggings_gold", {
description = S("Gold Leggings"),
inventory_image = "3d_armor_inv_leggings_gold.png",
groups = {armor_legs=1, armor_heal=6, armor_use=300,
physics_speed=-0.04, physics_gravity=0.04},
armor_groups = {fleshy=15},
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
})
--- Gold Boots
--
-- @boots 3d_armor:boots_gold
-- @img 3d_armor_inv_boots_gold.png
-- @grp armor_feet 1
-- @grp armor_heal 6
-- @grp armor_use 300
-- @grp physics_speed -0.02
-- @grp physics_gravity 0.02
-- @armorgrp fleshy 10
-- @damagegrp cracky 1
-- @damagegrp snappy 2
-- @damagegrp choppy 2
-- @damagegrp crumbly 3
-- @damagegrp level 2
armor:register_armor("3d_armor:boots_gold", {
description = S("Gold Boots"),
inventory_image = "3d_armor_inv_boots_gold.png",
groups = {armor_feet=1, armor_heal=6, armor_use=300,
physics_speed=-0.02, physics_gravity=0.02},
armor_groups = {fleshy=10},
damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2},
})
end
--- Mithril
--
-- Requires `armor_material_mithril`.
--
-- @section mithril
if armor.materials.mithril then
--- Mithril Helmet
--
-- @helmet 3d_armor:helmet_mithril
-- @img 3d_armor_inv_helmet_mithril.png
-- @grp armor_head 1
-- @grp armor_heal 12
-- @grp armor_use 100
-- @armorgrp fleshy 15
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:helmet_mithril", {
description = S("Mithril Helmet"),
inventory_image = "3d_armor_inv_helmet_mithril.png",
groups = {armor_head=1, armor_heal=12, armor_use=100},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=1, level=3},
})
--- Mithril Chestplate
--
-- @chestplate 3d_armor:chestplate_mithril
-- @img 3d_armor_inv_chestplate_mithril.png
-- @grp armor_torso 1
-- @grp armor_heal 12
-- @grp armor_use 100
-- @armorgrp fleshy 20
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:chestplate_mithril", {
description = S("Mithril Chestplate"),
inventory_image = "3d_armor_inv_chestplate_mithril.png",
groups = {armor_torso=1, armor_heal=12, armor_use=100},
armor_groups = {fleshy=20},
damage_groups = {cracky=2, snappy=1, level=3},
})
--- Mithril Leggings
--
-- @leggings 3d_armor:leggings_mithril
-- @img 3d_armor_inv_leggings_mithril.png
-- @grp armor_legs 1
-- @grp armor_heal 12
-- @grp armor_use 100
-- @armorgrp fleshy 20
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:leggings_mithril", {
description = S("Mithril Leggings"),
inventory_image = "3d_armor_inv_leggings_mithril.png",
groups = {armor_legs=1, armor_heal=12, armor_use=100},
armor_groups = {fleshy=20},
damage_groups = {cracky=2, snappy=1, level=3},
})
--- Mithril Boots
--
-- @boots 3d_armor:boots_mithril
-- @img 3d_armor_inv_boots_mithril.png
-- @grp armor_feet 1
-- @grp armor_heal 12
-- @grp armor_use 100
-- @armorgrp fleshy 15
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:boots_mithril", {
description = S("Mithril Boots"),
inventory_image = "3d_armor_inv_boots_mithril.png",
groups = {armor_feet=1, armor_heal=12, armor_use=100},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=1, level=3},
})
end
--- Crystal
--
-- Requires `armor_material_crystal`.
--
-- @section crystal
if armor.materials.crystal then
--- Crystal Helmet
--
-- @helmet 3d_armor:helmet_crystal
-- @img 3d_armor_inv_helmet_crystal.png
-- @grp armor_head 1
-- @grp armor_heal 12
-- @grp armor_use 100
-- @grp armor_fire 1
-- @armorgrp fleshy 15
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:helmet_crystal", {
description = S("Crystal Helmet"),
inventory_image = "3d_armor_inv_helmet_crystal.png",
groups = {armor_head=1, armor_heal=12, armor_use=100, armor_fire=1},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=1, level=3},
})
--- Crystal Chestplate
--
-- @chestplate 3d_armor:chestplate_crystal
-- @img 3d_armor_inv_chestplate_crystal.png
-- @grp armor_torso 1
-- @grp armor_heal 12
-- @grp armor_use 100
-- @grp armor_fire 1
-- @armorgrp fleshy 20
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:chestplate_crystal", {
description = S("Crystal Chestplate"),
inventory_image = "3d_armor_inv_chestplate_crystal.png",
groups = {armor_torso=1, armor_heal=12, armor_use=100, armor_fire=1},
armor_groups = {fleshy=20},
damage_groups = {cracky=2, snappy=1, level=3},
})
--- Crystal Leggings
--
-- @leggings 3d_armor:leggings_crystal
-- @img 3d_armor_inv_leggings_crystal.png
-- @grp armor_legs 1
-- @grp armor_heal 12
-- @grp armor_use 100
-- @grp armor_fire 1
-- @armorgrp fleshy 20
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:leggings_crystal", {
description = S("Crystal Leggings"),
inventory_image = "3d_armor_inv_leggings_crystal.png",
groups = {armor_legs=1, armor_heal=12, armor_use=100, armor_fire=1},
armor_groups = {fleshy=20},
damage_groups = {cracky=2, snappy=1, level=3},
})
--- Crystal Boots
--
-- @boots 3d_armor:boots_crystal
-- @img 3d_armor_inv_boots_crystal.png
-- @grp armor_feet 1
-- @grp armor_heal 12
-- @grp armor_use 100
-- @grp physics_speed 1
-- @grp physics_jump 0.5
-- @grp armor_fire 1
-- @armorgrp fleshy 15
-- @damagegrp cracky 2
-- @damagegrp snappy 1
-- @damagegrp level 3
armor:register_armor("3d_armor:boots_crystal", {
description = S("Crystal Boots"),
inventory_image = "3d_armor_inv_boots_crystal.png",
groups = {armor_feet=1, armor_heal=12, armor_use=100, physics_speed=1,
physics_jump=0.5, armor_fire=1},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=1, level=3},
})
end
--- Crafting
--
-- @section craft
--- Craft recipes for helmets, chestplates, leggings, boots, & shields.
--
-- @craft armor
-- @usage
-- Key:
-- - m: material
-- - wood: group:wood
-- - cactus: default:cactus
-- - steel: default:steel_ingot
-- - bronze: default:bronze_ingot
-- - diamond: default:diamond
-- - gold: default:gold_ingot
-- - mithril: moreores:mithril_ingot
-- - crystal: ethereal:crystal_ingot
--
-- helmet: chestplate: leggings:
-- ┌───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┐
-- │ m │ m │ m │ │ m │ │ m │ │ m │ m │ m │
-- ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤
-- │ m │ │ m │ │ m │ m │ m │ │ m │ │ m │
-- ├───┼───┼───┤ ├───┼───┼───┤ ├───┼───┼───┤
-- │ │ │ │ │ m │ m │ m │ │ m │ │ m │
-- └───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┘
--
-- boots: shield:
-- ┌───┬───┬───┐ ┌───┬───┬───┐
-- │ │ │ │ │ m │ m │ m │
-- ├───┼───┼───┤ ├───┼───┼───┤
-- │ m │ │ m │ │ m │ m │ m │
-- ├───┼───┼───┤ ├───┼───┼───┤
-- │ m │ │ m │ │ │ m │ │
-- └───┴───┴───┘ └───┴───┴───┘
for k, v in pairs(armor.materials) do
minetest.register_craft({
output = "3d_armor:helmet_"..k,
recipe = {
{v, v, v},
{v, "", v},
{"", "", ""},
},
})
minetest.register_craft({
output = "3d_armor:chestplate_"..k,
recipe = {
{v, "", v},
{v, v, v},
{v, v, v},
},
})
minetest.register_craft({
output = "3d_armor:leggings_"..k,
recipe = {
{v, v, v},
{v, "", v},
{v, "", v},
},
})
minetest.register_craft({
output = "3d_armor:boots_"..k,
recipe = {
{v, "", v},
{v, "", v},
},
})
end

View file

@ -19,7 +19,6 @@ 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:
@ -39,7 +38,6 @@ 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:
@ -59,7 +57,6 @@ 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:
@ -77,8 +74,6 @@ 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

View file

@ -0,0 +1,8 @@
default
player_monoids?
armor_monoid?
pova?
fire?
ethereal?
bakedclay?
moreores?

View file

@ -0,0 +1 @@
Adds craftable armor that is visible to other players.

View file

@ -2,6 +2,7 @@ local modname = minetest.get_current_modname()
local modpath = minetest.get_modpath(modname) local modpath = minetest.get_modpath(modname)
local worldpath = minetest.get_worldpath() local worldpath = minetest.get_worldpath()
local last_punch_time = {} local last_punch_time = {}
local pending_players = {}
local timer = 0 local timer = 0
dofile(modpath.."/api.lua") dofile(modpath.."/api.lua")
@ -98,7 +99,14 @@ for _, mod in pairs(skin_mods) do
armor.set_skin_mod(mod) armor.set_skin_mod(mod)
end end
end end
if not minetest.get_modpath("moreores") then
armor.materials.mithril = nil
end
if not minetest.get_modpath("ethereal") then
armor.materials.crystal = nil
end
dofile(modpath.."/armor.lua")
-- Armor Initialization -- Armor Initialization
@ -180,7 +188,11 @@ local function validate_armor_inventory(player)
end end
local function init_player_armor(initplayer) local function init_player_armor(initplayer)
local name = assert(initplayer:get_player_name()) local name = initplayer:get_player_name()
local pos = initplayer:get_pos()
if not name or not pos then
return false
end
local armor_inv = minetest.create_detached_inventory(name.."_armor", { local armor_inv = minetest.create_detached_inventory(name.."_armor", {
on_put = function(inv, listname, index, stack, player) on_put = function(inv, listname, index, stack, player)
validate_armor_inventory(player) validate_armor_inventory(player)
@ -219,11 +231,6 @@ local function init_player_armor(initplayer)
if player:get_player_name() ~= name then if player:get_player_name() ~= name then
return 0 return 0
end end
--cursed items cannot be unequiped by the player
local is_cursed = minetest.get_item_group(stack:get_name(), "cursed") ~= 0
if not minetest.is_creative_enabled(player) and is_cursed then
return 0
end
return stack:get_count() return stack:get_count()
end, end,
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
@ -251,6 +258,7 @@ local function init_player_armor(initplayer)
end end
end end
armor.def[name] = { armor.def[name] = {
init_time = minetest.get_gametime(),
level = 0, level = 0,
state = 0, state = 0,
count = 0, count = 0,
@ -268,8 +276,8 @@ local function init_player_armor(initplayer)
local skin = armor:get_player_skin(name) local skin = armor:get_player_skin(name)
armor.textures[name] = { armor.textures[name] = {
skin = skin, skin = skin,
armor = "blank.png", armor = "3d_armor_trans.png",
wielditem = "blank.png", wielditem = "3d_armor_trans.png",
preview = armor.default_skin.."_preview.png", preview = armor.default_skin.."_preview.png",
} }
local texture_path = minetest.get_modpath("player_textures") local texture_path = minetest.get_modpath("player_textures")
@ -283,16 +291,17 @@ local function init_player_armor(initplayer)
end end
end end
armor:set_player_armor(initplayer) armor:set_player_armor(initplayer)
return true
end end
-- Armor Player Model -- Armor Player Model
player_api.register_model("3d_armor_character.b3d", { default.player_register_model("3d_armor_character.b3d", {
animation_speed = 30, animation_speed = 30,
textures = { textures = {
armor.default_skin..".png", armor.default_skin..".png",
"blank.png", "3d_armor_trans.png",
"blank.png", "3d_armor_trans.png",
}, },
animations = { animations = {
stand = {x=0, y=79}, stand = {x=0, y=79},
@ -301,10 +310,6 @@ player_api.register_model("3d_armor_character.b3d", {
mine = {x=189, y=198}, mine = {x=189, y=198},
walk_mine = {x=200, y=219}, walk_mine = {x=200, y=219},
sit = {x=81, y=160}, sit = {x=81, y=160},
-- compatibility w/ the emote mod
wave = {x = 192, y = 196, override_local = true},
point = {x = 196, y = 196, override_local = true},
freeze = {x = 205, y = 205, override_local = true},
}, },
}) })
@ -322,8 +327,16 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end) end)
minetest.register_on_joinplayer(function(player) minetest.register_on_joinplayer(function(player)
player_api.set_model(player, "3d_armor_character.b3d") default.player_set_model(player, "3d_armor_character.b3d")
init_player_armor(player) local player_name = player:get_player_name()
minetest.after(0, function()
-- TODO: Added in 7566ecc - What's the prupose?
local pplayer = minetest.get_player_by_name(player_name)
if pplayer and init_player_armor(pplayer) == false then
pending_players[pplayer] = 0
end
end)
end) end)
minetest.register_on_leaveplayer(function(player) minetest.register_on_leaveplayer(function(player)
@ -332,6 +345,7 @@ minetest.register_on_leaveplayer(function(player)
armor.def[name] = nil armor.def[name] = nil
armor.textures[name] = nil armor.textures[name] = nil
end end
pending_players[player] = nil
end) end)
if armor.config.drop == true or armor.config.destroy == true then if armor.config.drop == true or armor.config.destroy == true then
@ -344,14 +358,11 @@ if armor.config.drop == true or armor.config.destroy == true then
for i=1, armor_inv:get_size("armor") do for i=1, armor_inv:get_size("armor") do
local stack = armor_inv:get_stack("armor", i) local stack = armor_inv:get_stack("armor", i)
if stack:get_count() > 0 then if stack:get_count() > 0 then
--soulbound armors remain equipped after death
if minetest.get_item_group(stack:get_name(), "soulbound") == 0 then
table.insert(drop, stack) table.insert(drop, stack)
armor:run_callbacks("on_unequip", player, i, stack) armor:run_callbacks("on_unequip", player, i, stack)
armor_inv:set_stack("armor", i, nil) armor_inv:set_stack("armor", i, nil)
end end
end end
end
armor:save_armor_inventory(player) armor:save_armor_inventory(player)
armor:set_player_armor(player) armor:set_player_armor(player)
local pos = player:get_pos() local pos = player:get_pos()
@ -385,8 +396,8 @@ if armor.config.drop == true or armor.config.destroy == true then
end) end)
end end
end) end)
else -- reset un-dropped armor and it's effects
minetest.register_on_respawnplayer(function(player) minetest.register_on_respawnplayer(function(player)
-- reset un-dropped armor and it's effects
armor:set_player_armor(player) armor:set_player_armor(player)
end) end)
end end
@ -395,14 +406,10 @@ if armor.config.punch_damage == true then
minetest.register_on_punchplayer(function(player, hitter, minetest.register_on_punchplayer(function(player, hitter,
time_from_last_punch, tool_capabilities) time_from_last_punch, tool_capabilities)
local name = player:get_player_name() local name = player:get_player_name()
if hitter then
local hit_ip = hitter:is_player() local hit_ip = hitter:is_player()
if name and hit_ip and minetest.is_protected(player:get_pos(), "") then if name and hit_ip and minetest.is_protected(player:get_pos(), "") then
return return
end elseif name then
end
if name then
armor:punch(player, hitter, time_from_last_punch, tool_capabilities) armor:punch(player, hitter, time_from_last_punch, tool_capabilities)
last_punch_time[name] = minetest.get_gametime() last_punch_time[name] = minetest.get_gametime()
end end
@ -410,18 +417,10 @@ if armor.config.punch_damage == true then
end end
minetest.register_on_player_hpchange(function(player, hp_change, reason) minetest.register_on_player_hpchange(function(player, hp_change, reason)
if not minetest.is_player(player) then if player and reason.type ~= "drown" and reason.hunger == nil
return hp_change and hp_change < 0 then
end
if reason.type == "drown" or reason.hunger or hp_change >= 0 then
return hp_change
end
local name = player:get_player_name() local name = player:get_player_name()
local properties = player:get_properties() if name then
local hp = player:get_hp()
if hp + hp_change < properties.hp_max then
local heal = armor.def[name].heal local heal = armor.def[name].heal
if heal >= math.random(100) then if heal >= math.random(100) then
hp_change = 0 hp_change = 0
@ -432,31 +431,29 @@ minetest.register_on_player_hpchange(function(player, hp_change, reason)
armor:punch(player) armor:punch(player)
end end
end end
end
return hp_change return hp_change
end, true) end, true)
minetest.register_globalstep(function(dtime) minetest.register_globalstep(function(dtime)
timer = timer + dtime timer = timer + dtime
if armor.config.feather_fall == true then
for _,player in pairs(minetest.get_connected_players()) do
local name = player:get_player_name()
if armor.def[name].feather > 0 then
local vel_y = player:get_velocity().y
if vel_y < -0.5 then
vel_y = -(vel_y * 0.05)
player:add_velocity({x = 0, y = vel_y, z = 0})
end
end
end
end
if timer <= armor.config.init_delay then if timer <= armor.config.init_delay then
return return
end end
timer = 0 timer = 0
for player, count in pairs(pending_players) do
local remove = init_player_armor(player) == true
pending_players[player] = count + 1
if remove == false and count > armor.config.init_times then
minetest.log("warning", S("3d_armor: Failed to initialize player"))
remove = true
end
if remove == true then
pending_players[player] = nil
end
end
-- water breathing protection, added by TenPlus1 -- water breathing protection, added by TenPlus1
if armor.config.water_protect == true then if armor.config.water_protect == true then
for _,player in pairs(minetest.get_connected_players()) do for _,player in pairs(minetest.get_connected_players()) do
@ -469,14 +466,22 @@ minetest.register_globalstep(function(dtime)
end end
end) end)
-- Fire Protection, added by TenPlus1.
if armor.config.fire_protect == true then if armor.config.fire_protect == true then
-- override any hot nodes that do not already deal damage
for _, row in pairs(armor.fire_nodes) do
if minetest.registered_nodes[row[1]] then
local damage = minetest.registered_nodes[row[1]].damage_per_second
if not damage or damage == 0 then
minetest.override_item(row[1], {damage_per_second = row[3]})
end
end
end
else
print ("[3d_armor] Fire Nodes disabled")
end
-- make torches hurt if armor.config.fire_protect == true then
minetest.override_item("default:torch", {damage_per_second = 1})
minetest.override_item("default:torch_wall", {damage_per_second = 1})
minetest.override_item("default:torch_ceiling", {damage_per_second = 1})
-- check player damage for any hot nodes we may be protected against
minetest.register_on_player_hpchange(function(player, hp_change, reason) minetest.register_on_player_hpchange(function(player, hp_change, reason)
if reason.type == "node_damage" and reason.node then if reason.type == "node_damage" and reason.node then
@ -485,7 +490,9 @@ if armor.config.fire_protect == true then
local name = player:get_player_name() local name = player:get_player_name()
for _,igniter in pairs(armor.fire_nodes) do for _,igniter in pairs(armor.fire_nodes) do
if reason.node == igniter[1] then if reason.node == igniter[1] then
if armor.def[name].fire >= igniter[2] then if armor.def[name].fire < igniter[2] then
armor:punch(player, "fire")
else
hp_change = 0 hp_change = 0
end end
end end

View file

@ -1,7 +0,0 @@
# textdomain: 3d_armor
Radiation=Strahlung
Level=Stufe
Heal=Heilung
Fire=Feuer
Your @1 is almost broken!=@1 ist fast kaputt!
Your @1 got destroyed!=@1 wurde zerstört!

View file

@ -1,7 +0,0 @@
# textdomain: 3d_armor
Radiation=Radiado
Level=Nivelo
Heal=Blokŝanco
Fire=Fajro
Your @1 is almost broken!=Via @1 estas preskaŭ rompita!
Your @1 got destroyed!=Via @1 detruiĝis!

View file

@ -1,7 +1,58 @@
# textdomain: 3d_armor # textdomain: 3d_armor
Radiation=Radiación
Level=Nivel
Heal=Salud ### api.lua ###
3d_armor: Detached armor inventory is nil @1=3d_armor: La armadura desconectada es nula @1
3d_armor: Player name is nil @1=3d_armor: El nombre del jugador es nulo @1
3d_armor: Player reference is nil @1=3d_armor: La referencia del jugador es nula @1
### armor.lua ###
Admin Boots=Botas de admin
Admin Chestplate=Peto de admin
Admin Helmet=Casco de admin
Admin Leggings=Grebas de admin
Bronze Boots=Botas de bronce
Bronze Chestplate=Peto de bronce
Bronze Helmet=Casco de bronce
Bronze Leggings=Grebas de bronce
Cactus Boots=Botas de cactus
Cactus Chestplate=Peto de cactus
Cactus Helmet=Casco de cactus
Cactus Leggings=Grebas de cactus
Crystal Boots=Botas de cristal
Crystal Chestplate=Peto de cristal
Crystal Helmet=Casco de cristal
Crystal Leggings=Grebas de cristal
Diamond Boots=Botas de diamante
Diamond Chestplate=Peto de diamante
Diamond Helmet=Casco de diamante
Diamond Leggings=Grebas de diamante
Gold Boots=Botas de oro
Gold Chestplate=Peto de oro
Gold Helmet=Casco de oro
Gold Leggings=Grebas de oro
Mithril Boots=Botas de mitrilo
Mithril Chestplate=Peto de mitrilo
Mithril Helmet=Casco de mitrilo
Mithril Leggings=Grebas de mitrilo
Steel Boots=Botas de acero
Steel Chestplate=Peto de acero
Steel Helmet=Casco de acero
Steel Leggings=Grebas de acero
Wood Boots=Botas de madera
Wood Chestplate=Peto de madera
Wood Helmet=Casco de madera
Wood Leggings=Grebas de madera
### init.lua ###
3d_armor: Failed to initialize player=3d_armor: Fallo en la inicialización del jugador
Fire=Fuego Fire=Fuego
Your @1 is almost broken!=¡Tu @1 esta a punto de romperse! Heal=Salud
Level=Nivel
Radiation=Radiación
Your @1 got destroyed!=¡Tu @1 fue destruído! Your @1 got destroyed!=¡Tu @1 fue destruído!
Your @1 is almost broken!=¡Tu @1 esta a punto de romperse!
[3d_armor] Fire Nodes disabled=[3d_armor] Nodos de fuego desabilitados

View file

@ -1,7 +1,58 @@
# textdomain: 3d_armor # textdomain: 3d_armor
Radiation=Radiation
Level=Niveau
Heal=Soins ### api.lua ###
3d_armor: Detached armor inventory is nil @1=3d_armor : Inventaire détaché pour l'armure non trouvé @1
3d_armor: Player name is nil @1=3d_armor : Nom du joueur non trouvé @1
3d_armor: Player reference is nil @1=3d_armor : Référence au joueur non trouvée @1
### armor.lua ###
Admin Boots=Bottes d'admin
Admin Chestplate=Cuirasse d'admin
Admin Helmet=Casque d'admin
Admin Leggings=Jambières d'admin
Bronze Boots=Bottes en bronze
Bronze Chestplate=Cuirasse en bronze
Bronze Helmet=Casque en bronze
Bronze Leggings=Jambières en bronze
Cactus Boots=Bottes en cactus
Cactus Chestplate=Cuirasse en cactus
Cactus Helmet=Casque en cactus
Cactus Leggings=Jambières en cactus
Crystal Boots=Bottes en cristal
Crystal Chestplate=Cuirasse en cristal
Crystal Helmet=Casque en cristal
Crystal Leggings=Jambières en cristal
Diamond Boots=Bottes en diamant
Diamond Chestplate=Cuirasse en diamant
Diamond Helmet=Casque en diamant
Diamond Leggings=Jambières en diamant
Gold Boots=Bottes en or
Gold Chestplate=Cuirasse en or
Gold Helmet=Casque en or
Gold Leggings=Jambières en or
Mithril Boots=Bottes en mithril
Mithril Chestplate=Cuirasse en mithril
Mithril Helmet=Casque en mithril
Mithril Leggings=Jambières en mithril
Steel Boots=Bottes en acier
Steel Chestplate=Cuirasse en acier
Steel Helmet=Casque en acier
Steel Leggings=Jambières en acier
Wood Boots=Bottes en bois
Wood Chestplate=Cuirasse en bois
Wood Helmet=Casque en bois
Wood Leggings=Jambières en bois
### init.lua ###
3d_armor: Failed to initialize player=3d_armor : Impossible d'initialiser le joueur
Fire=Fire Fire=Fire
Your @1 is almost broken!=Une partie de votre armure est presque détruite : @1 ! Heal=Soins
Level=Niveau
Radiation=Radiation
Your @1 got destroyed!=Une partie de votre armure a été détruite : @1 ! Your @1 got destroyed!=Une partie de votre armure a été détruite : @1 !
Your @1 is almost broken!=Une partie de votre armure est presque détruite : @1 !
[3d_armor] Fire Nodes disabled=[3d_armor] Nœuds de type feu désactivés

View file

@ -1,7 +1,85 @@
# textdomain: 3d_armor # textdomain: 3d_armor
Radiation=Radiazione
Level=Livello
Heal=Guarigione ### api.lua ###
3d_armor: Detached armor inventory is nil @1=3d_armor: L'inventario separato dell'armatura è nullo @1
3d_armor: Player name is nil @1=3d_armor: Il nome dell'utente è nullo @1
3d_armor: Player reference is nil @1=3d_armor: Il riferimento all'utente è nullo @1
### armor.lua ###
Admin Boots=Stivali dell'amministratrice/tore
Admin Chestplate=Corazza dell'amministratrice/tore
Admin Helmet=Elmo dell'amministratrice/tore
Admin Leggings=Gambali dell'amministratrice/tore
Bronze Boots=Stivali di bronzo
Bronze Chestplate=Corazza di bronzo
Bronze Helmet=Elmo di bronzo
Bronze Leggings=Gambali di bronzo
Cactus Boots=Stivali di cactus
Cactus Chestplate=Corazza di cactus
Cactus Helmet=Elmo di cactus
Cactus Leggings=Gambali di cactus
Crystal Boots=Stivali di cristallo
Crystal Chestplate=Corazza di cristallo
Crystal Helmet=Elmo di cristallo
Crystal Leggings=Gambali di cristallo
Diamond Boots=Stivali di diamante
Diamond Chestplate=Corazza di diamante
Diamond Helmet=Elmo di diamante
Diamond Leggings=Gambali di diamante
Gold Boots=Stivali d'oro
Gold Chestplate=Corazza d'oro
Gold Helmet=Elmo d'oro
Gold Leggings=Gambali d'oro
Mithril Boots=Stivali di mithril
Mithril Chestplate=Corazza di mithril
Mithril Helmet=Elmo di mithril
Mithril Leggings=Gambali di mithril
Steel Boots=Stivali d'acciaio
Steel Chestplate=Corazza d'acciaio
Steel Helmet=Elmo d'acciaio
Steel Leggings=Gambali d'acciaio
Wood Boots=Stivali di legno
Wood Chestplate=Corazza di legno
Wood Helmet=Elmo di legno
Wood Leggings=Gambali di legno
### init.lua ###
3d_armor: Failed to initialize player=3d_armor: Inizializzazione dell'utente fallita
Fire=Fuoco Fire=Fuoco
Your @1 is almost broken!=@1 quasi in frantumi! Heal=Guarigione
Level=Livello
Radiation=Radiazione
Your @1 got destroyed!=@1 in frantumi! Your @1 got destroyed!=@1 in frantumi!
Your @1 is almost broken!=@1 quasi in frantumi!
[3d_armor] Fire Nodes disabled=[3d_armor] Nodi fuoco disabilitati
##### not used anymore #####
3d_armor_ip: Mod loaded but unused.=3d_armor_ip: Mod caricata ma inutilizzata.
Back=Indietro
Armor=Armatura
3d_armor_sfinv: Mod loaded but unused.=3d_armor_sfinv: Mod caricata ma inutilizzata.
Armor stand top=Parte superiore del supporto per armatura
Armor stand=Supporto per armatura
Armor Stand=Supporto per armatura
Locked Armor stand=Supporto per armatura chiuso a chiave
Armor Stand (owned by @1)=Supporto per armatura (di proprietà di @1)
3d_armor_ui: Mod loaded but unused.=3d_armor_ui: Mod caricata ma inutilizzata.
3d Armor=Armatura 3D
Armor not initialized!=Armatura non inizializzata!
Admin Shield=Scudo dell'amministratrice/tore
Wooden Shield=Scudo di legno
Enhanced Wood Shield=Scudo di legno migliorato
Cactus Shield=Scudo di cactus
Enhanced Cactus Shield=Scudo di cactus migliorato
Steel Shield=Scudo d'acciaio
Bronze Shield=Scudo di bronzo
Diamond Shield=Scudo di diamante
Gold Shield=Scudo d'oro
Mithril Shield=Scudo di mithril
Crystal Shield=Scudo di cristallo

View file

@ -1,7 +1,85 @@
# textdomain: 3d_armor # textdomain: 3d_armor
Radiation=Radiasi
Level=Tahap
Heal=Pulih ### api.lua ###
3d_armor: Detached armor inventory is nil @1=3d_armor: Inventori perisai terpisah tiada nilai @1
3d_armor: Player name is nil @1=3d_armor: Nama pemain tiada nilai @1
3d_armor: Player reference is nil @1=3d_armor: Rujukan pemain tiada nilai @1
### armor.lua ###
Admin Boots=But Pentadbir
Admin Chestplate=Perisai Dada Pentadbir
Admin Helmet=Helmet Pentadbir
Admin Leggings=Perisai Kaki Pentadbir
Bronze Boots=But Gangsa
Bronze Chestplate=Perisai Dada Gangsa
Bronze Helmet=Helmet Gangsa
Bronze Leggings=Perisai Kaki Gangsa
Cactus Boots=But Kaktus
Cactus Chestplate=Perisai Dada Kaktus
Cactus Helmet=Helmet Kaktus
Cactus Leggings=Perisai Kaki Kaktus
Crystal Boots=But Kristal
Crystal Chestplate=Perisai Dada Kristal
Crystal Helmet=Helmet Kristal
Crystal Leggings=Perisai Kaki Kristal
Diamond Boots=But Intan
Diamond Chestplate=Perisai Dada Intan
Diamond Helmet=Helmet Intan
Diamond Leggings=Perisai Kaki Intan
Gold Boots=But Emas
Gold Chestplate=Perisai Dada Emas
Gold Helmet=Helmet Emas
Gold Leggings=Perisai Kaki Emas
Mithril Boots=But Mithril
Mithril Chestplate=Perisai Dada Mithril
Mithril Helmet=Helmet Mithril
Mithril Leggings=Perisai Kaki Mithril
Steel Boots=But Keluli
Steel Chestplate=Perisai Dada Keluli
Steel Helmet=Helmet Keluli
Steel Leggings=Perisai Kaki Keluli
Wood Boots=But Kayu
Wood Chestplate=Perisai Dada Kayu
Wood Helmet=Helmet Kayu
Wood Leggings=Perisai Kaki Kayu
### init.lua ###
3d_armor: Failed to initialize player=3d_armor: Gagal mengasalkan pemain
Fire=Api Fire=Api
Your @1 is almost broken!= Heal=Pulih
Level=Tahap
Radiation=Radiasi
Your @1 got destroyed!=@1 anda telah musnah! Your @1 got destroyed!=@1 anda telah musnah!
Your @1 is almost broken!=
[3d_armor] Fire Nodes disabled=[3d_armor] Nod-nod Api dilumpuhkan
##### not used anymore #####
3d_armor_ip: Mod loaded but unused.=3d_armor_ip: Mods dimuatkan tetapi tidak digunakan.
Back=Kembali
Armor=Perisai
3d_armor_sfinv: Mod loaded but unused.=3d_armor_sfinv: Mods dimuatkan tetapi tidak digunakan.
Armor stand top=Bhg atas dirian perisai
Armor stand=Dirian perisai
Armor Stand=Dirian Perisai
Locked Armor stand=Dirian perisai Berkunci
Armor Stand (owned by @1)=Dirian Perisai (milik @1)
3d_armor_ui: Mod loaded but unused.=3d_armor_ui: Mods dimuatkan tetapi tidak digunakan.
3d Armor=Perisai 3d
Armor not initialized!=Perisai tidak diasalkan!
Admin Shield=Perisai Pegang Pentadbir
Wooden Shield=Perisai Pegang Kayu
Enhanced Wood Shield=Perisai Pegang Kayu Kukuh
Cactus Shield=Perisai Pegang Kaktus
Enhanced Cactus Shield=Perisai Pegang Kaktus Kukuh
Steel Shield=Perisai Pegang Keluli
Bronze Shield=Perisai Pegang Gangsa
Diamond Shield=Perisai Pegang Intan
Gold Shield=Perisai Pegang Emas
Mithril Shield=Perisai Pegang Mithril
Crystal Shield=Perisai Pegang Kristal

View file

@ -1,7 +0,0 @@
# textdomain: 3d_armor
Radiation=Promieniowanie
Level=Poziom
Heal=Uzdrawianie
Fire=Ogień
Your @1 is almost broken!=Twój @1 jest prawie zepsuty!
Your @1 got destroyed!=Twój @1 został zniszczony!

View file

@ -1,7 +1,85 @@
# textdomain: 3d_armor # textdomain: 3d_armor
Radiation=Radiação
Level=Nível
Heal=Saúde ### api.lua ###
3d_armor: Detached armor inventory is nil @1=3d_armor: Inventario avulso de armadura é nulo @1
3d_armor: Player name is nil @1=3d_armor: Nome de jogador é nulo @1
3d_armor: Player reference is nil @1=3d_armor: Referência Jogador é nula @1
### armor.lua ###
Admin Boots=Botas de Administrador
Admin Chestplate=Peitoral de Administrador
Admin Helmet=Capacete de Administrador
Admin Leggings=Calças de Administrador
Bronze Boots=Botas de Bronze
Bronze Chestplate=Peitoral de Bronze
Bronze Helmet=Capacete de Bronze
Bronze Leggings=Calças de Bronze
Cactus Boots=Botas de Madeira
Cactus Chestplate=Peitoral de Cacto
Cactus Helmet=Capacete de Cacto
Cactus Leggings=Calças de Cacto
Crystal Boots=Botas de Cristal
Crystal Chestplate=Peitoral de Cristal
Crystal Helmet=Capacete de Cristal
Crystal Leggings=Calças de Cristal
Diamond Boots=Botas de Diamante
Diamond Chestplate=Peitoral de Diamante
Diamond Helmet=Capacete de Diamante
Diamond Leggings=Calças de Diamante
Gold Boots=Botas de Ouro
Gold Chestplate=Peitoral de Ouro
Gold Helmet=Capacete de Ouro
Gold Leggings=Calças de Ouro
Mithril Boots=Botas de Mithril
Mithril Chestplate=Peitoral de Mithril
Mithril Helmet=Capacete de Mithril
Mithril Leggings=Calças de Mithril
Steel Boots=Botas de Aço
Steel Chestplate=Peitoral de Aço
Steel Helmet=Capacete de Aço
Steel Leggings=Calças de Aço
Wood Boots=Botas de Madeira
Wood Chestplate=Peitoral de Madeira
Wood Helmet=Capacete de Madeira
Wood Leggings=Calças de Madeira
### init.lua ###
3d_armor: Failed to initialize player=3d_armor: Falha ao inicializar jogador
Fire=Fogo Fire=Fogo
Your @1 is almost broken!= Heal=Saúde
Level=Nível
Radiation=Radiação
Your @1 got destroyed!=@1 foi destruído(a)! Your @1 got destroyed!=@1 foi destruído(a)!
Your @1 is almost broken!=
[3d_armor] Fire Nodes disabled=[3d_armor] Nodes de gofo desabilitados
##### not used anymore #####
3d_armor_ip: Mod loaded but unused.=3d_armor_ip: Mod carregado mas inoperante.
Back=Voltar
Armor=Armadura
3d_armor_sfinv: Mod loaded but unused.=3d_armor_sfinv: Mod carregado mas inoperante.
Armor stand top=Topo de estande de armadura
Armor stand=Estande de armadura
Armor Stand=Estande de Armadura
Locked Armor stand=Estande de Armadura Trancada
Armor Stand (owned by @1)=Estande de Armadura (pertente a @1)
3d_armor_ui: Mod loaded but unused.=3d_armor_ui: Mod carregado mas inoperante.
3d Armor=3d Armor
Armor not initialized!=Armadura não inicializada!
Admin Shield=Escudo de Administrador
Wooden Shield=Escudo de Madeira
Enhanced Wood Shield=Escudo de Madeira Melhorado
Cactus Shield=Escudo de Cacto
Enhanced Cactus Shield=Escudo de Cacto Melhorado
Steel Shield=Escudo de Aço
Bronze Shield=Escudo de Bronze
Diamond Shield=Escudo de Diamante
Gold Shield=Escudo de Ouro
Mithril Shield=Escudo de Mithril
Crystal Shield=Escudo de Cristal

View file

@ -1,7 +1,85 @@
# textdomain: 3d_armor # textdomain: 3d_armor
Radiation=Radiação
Level=Nível
Heal=Saúde ### api.lua ###
3d_armor: Detached armor inventory is nil @1=3d_armor: Inventario avulso de armadura é nulo @1
3d_armor: Player name is nil @1=3d_armor: Nome de jogador é nulo @1
3d_armor: Player reference is nil @1=3d_armor: Referência Jogador é nula @1
### armor.lua ###
Admin Boots=Botas de Administrador
Admin Chestplate=Peitoral de Administrador
Admin Helmet=Capacete de Administrador
Admin Leggings=Calças de Administrador
Bronze Boots=Botas de Bronze
Bronze Chestplate=Peitoral de Bronze
Bronze Helmet=Capacete de Bronze
Bronze Leggings=Calças de Bronze
Cactus Boots=Botas de Madeira
Cactus Chestplate=Peitoral de Cacto
Cactus Helmet=Capacete de Cacto
Cactus Leggings=Calças de Cacto
Crystal Boots=Botas de Cristal
Crystal Chestplate=Peitoral de Cristal
Crystal Helmet=Capacete de Cristal
Crystal Leggings=Calças de Cristal
Diamond Boots=Botas de Diamante
Diamond Chestplate=Peitoral de Diamante
Diamond Helmet=Capacete de Diamante
Diamond Leggings=Calças de Diamante
Gold Boots=Botas de Ouro
Gold Chestplate=Peitoral de Ouro
Gold Helmet=Capacete de Ouro
Gold Leggings=Calças de Ouro
Mithril Boots=Botas de Mithril
Mithril Chestplate=Peitoral de Mithril
Mithril Helmet=Capacete de Mithril
Mithril Leggings=Calças de Mithril
Steel Boots=Botas de Aço
Steel Chestplate=Peitoral de Aço
Steel Helmet=Capacete de Aço
Steel Leggings=Calças de Aço
Wood Boots=Botas de Madeira
Wood Chestplate=Peitoral de Madeira
Wood Helmet=Capacete de Madeira
Wood Leggings=Calças de Madeira
### init.lua ###
3d_armor: Failed to initialize player=3d_armor: Falha ao inicializar jogador
Fire=Fogo Fire=Fogo
Your @1 is almost broken!= Heal=Saúde
Level=Nível
Radiation=Radiação
Your @1 got destroyed!=@1 foi destruído(a)! Your @1 got destroyed!=@1 foi destruído(a)!
Your @1 is almost broken!=
[3d_armor] Fire Nodes disabled=[3d_armor] Nodes de gofo desabilitados
##### not used anymore #####
3d_armor_ip: Mod loaded but unused.=3d_armor_ip: Mod carregado mas inoperante.
Back=Voltar
Armor=Armadura
3d_armor_sfinv: Mod loaded but unused.=3d_armor_sfinv: Mod carregado mas inoperante.
Armor stand top=Topo de estande de armadura
Armor stand=Estande de armadura
Armor Stand=Estande de Armadura
Locked Armor stand=Estande de Armadura Trancada
Armor Stand (owned by @1)=Estande de Armadura (pertente a @1)
3d_armor_ui: Mod loaded but unused.=3d_armor_ui: Mod carregado mas inoperante.
3d Armor=3d Armor
Armor not initialized!=Armadura não inicializada!
Admin Shield=Escudo de Administrador
Wooden Shield=Escudo de Madeira
Enhanced Wood Shield=Escudo de Madeira Melhorado
Cactus Shield=Escudo de Cacto
Enhanced Cactus Shield=Escudo de Cacto Melhorado
Steel Shield=Escudo de Aço
Bronze Shield=Escudo de Bronze
Diamond Shield=Escudo de Diamante
Gold Shield=Escudo de Ouro
Mithril Shield=Escudo de Mithril
Crystal Shield=Escudo de Cristal

View file

@ -1,7 +1,85 @@
# textdomain: 3d_armor # textdomain: 3d_armor
Radiation=излучение
Level=уровень
Heal=исцеление ### api.lua ###
3d_armor: Detached armor inventory is nil @1=3d_armor: Отдельный инвентарь брони является nil @1
3d_armor: Player name is nil @1=3d_armor: Имя игрока является nil @1
3d_armor: Player reference is nil @1=3d_armor: Ссылка игрока является nil @1
### armor.lua ###
Admin Boots=ботинки админа
Admin Chestplate=бронежилет админа
Admin Helmet=шлем админа
Admin Leggings=гамаши админа
Bronze Boots=бронзовые ботинки
Bronze Chestplate=бронзовый бронежилет
Bronze Helmet=бронзовый шлем
Bronze Leggings=бронзовые гамаши
Cactus Boots=кактусовые ботинки
Cactus Chestplate=кактусовый бронежилет
Cactus Helmet=кактусовый шлем
Cactus Leggings=кактусовые гамаши
Crystal Boots=кристалловые ботинки
Crystal Chestplate=кристалловый бронежилет
Crystal Helmet=кристалловый шлем
Crystal Leggings=кристалловые гамаши
Diamond Boots=алмазные ботинки
Diamond Chestplate=алмазный бронежилет
Diamond Helmet=алмазный шлем
Diamond Leggings=алмазные гамаши
Gold Boots=золотые ботинки
Gold Chestplate=золотой бронежилет
Gold Helmet=золотой шлем
Gold Leggings=золотые гамаши
Mithril Boots=мифриловые ботинки
Mithril Chestplate=мифриловый бронежилет
Mithril Helmet=мифриловый шлем
Mithril Leggings=мифриловые гамаши
Steel Boots=стальные ботинки
Steel Chestplate=стальной бронежилет
Steel Helmet=стальной шлем
Steel Leggings=стальные гамаши
Wood Boots=деревянные ботинки
Wood Chestplate=деревянный бронежилет
Wood Helmet=деревянный шлем
Wood Leggings=деревянные гамаши
### init.lua ###
3d_armor: Failed to initialize player=3d_armor: не смог подготовить игрока
Fire=огонь Fire=огонь
Your @1 is almost broken!= Heal=исцеление
Level=уровень
Radiation=излучение
Your @1 got destroyed!=твой(и) @1 был(и) разрушен(ы)! Your @1 got destroyed!=твой(и) @1 был(и) разрушен(ы)!
Your @1 is almost broken!=
[3d_armor] Fire Nodes disabled=[3d_armor] блоки огня отключены
##### not used anymore #####
3d_armor_ip: Mod loaded but unused.=3d_armor_ip: мод загружен но не используется.
Back=назад
Armor=бронь
3d_armor_sfinv: Mod loaded but unused.=3d_armor_sfinv: мод загружен но не используется.
Armor stand top=стойка для брони (верх)
Armor stand=стойка для брони
Armor Stand=стойка для брони
Locked Armor stand=защищенная стойка для брони
Armor Stand (owned by @1)=стойка для брони (принадлежит @1)
3d_armor_ui: Mod loaded but unused.=3d_armor_ui: мод загружен но не используется.
3d Armor=3D бронь
Armor not initialized!=бронь не подготовлена!
Admin Shield=щит админа
Wooden Shield=деревянный щит
Enhanced Wood Shield=улучшенный деревянный щит
Cactus Shield=кактусный щит
Enhanced Cactus Shield=улучшенный кактусный щит
Steel Shield=стальной щит
Bronze Shield=бронзовый щит
Diamond Shield=алмазный щит
Gold Shield=золотой щит
Mithril Shield=мифриловый щит
Crystal Shield=кристалловый щит

View file

@ -1,7 +0,0 @@
# textdomain: 3d_armor
Radiation=Strålning
Level=Nivå
Heal=Läkning
Fire=Eld
Your @1 is almost broken!=Din @1 är nästan förstörd!
Your @1 got destroyed!=Din @1 blev förstörd!

View file

@ -1,7 +1,58 @@
# textdomain: 3d_armor # textdomain: 3d_armor
Radiation=
Level=
Heal= ### api.lua ###
3d_armor: Detached armor inventory is nil @1=
3d_armor: Player name is nil @1=
3d_armor: Player reference is nil @1=
### armor.lua ###
Admin Boots=
Admin Chestplate=
Admin Helmet=
Admin Leggings=
Bronze Boots=
Bronze Chestplate=
Bronze Helmet=
Bronze Leggings=
Cactus Boots=
Cactus Chestplate=
Cactus Helmet=
Cactus Leggings=
Crystal Boots=
Crystal Chestplate=
Crystal Helmet=
Crystal Leggings=
Diamond Boots=
Diamond Chestplate=
Diamond Helmet=
Diamond Leggings=
Gold Boots=
Gold Chestplate=
Gold Helmet=
Gold Leggings=
Mithril Boots=
Mithril Chestplate=
Mithril Helmet=
Mithril Leggings=
Steel Boots=
Steel Chestplate=
Steel Helmet=
Steel Leggings=
Wood Boots=
Wood Chestplate=
Wood Helmet=
Wood Leggings=
### init.lua ###
3d_armor: Failed to initialize player=
Fire= Fire=
Your @1 is almost broken!= Heal=
Level=
Radiation=
Your @1 got destroyed!= Your @1 got destroyed!=
Your @1 is almost broken!=
[3d_armor] Fire Nodes disabled=

View file

@ -1,5 +1,4 @@
name = 3d_armor name = 3d_armor
depends = default, player_api depends = default
optional_depends = player_monoids, armor_monoid, pova, moreores optional_depends = player_monoids, armor_monoid, pova, fire, ethereal, bakedclay, moreores
description = Adds craftable armor that is visible to other players. description = Adds craftable armor that is visible to other players.
min_minetest_version = 5.0

View file

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 258 B

View file

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 261 B

View file

Before

Width:  |  Height:  |  Size: 253 B

After

Width:  |  Height:  |  Size: 253 B

View file

Before

Width:  |  Height:  |  Size: 241 B

After

Width:  |  Height:  |  Size: 241 B

View file

Before

Width:  |  Height:  |  Size: 252 B

After

Width:  |  Height:  |  Size: 252 B

View file

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 239 B

View file

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 261 B

View file

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 265 B

View file

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 245 B

View file

Before

Width:  |  Height:  |  Size: 226 B

After

Width:  |  Height:  |  Size: 226 B

View file

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 261 B

View file

Before

Width:  |  Height:  |  Size: 233 B

After

Width:  |  Height:  |  Size: 233 B

View file

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 232 B

View file

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

View file

Before

Width:  |  Height:  |  Size: 233 B

After

Width:  |  Height:  |  Size: 233 B

View file

Before

Width:  |  Height:  |  Size: 409 B

After

Width:  |  Height:  |  Size: 409 B

View file

Before

Width:  |  Height:  |  Size: 396 B

After

Width:  |  Height:  |  Size: 396 B

View file

Before

Width:  |  Height:  |  Size: 393 B

After

Width:  |  Height:  |  Size: 393 B

View file

Before

Width:  |  Height:  |  Size: 404 B

After

Width:  |  Height:  |  Size: 404 B

View file

Before

Width:  |  Height:  |  Size: 429 B

After

Width:  |  Height:  |  Size: 429 B

View file

Before

Width:  |  Height:  |  Size: 402 B

After

Width:  |  Height:  |  Size: 402 B

View file

Before

Width:  |  Height:  |  Size: 416 B

After

Width:  |  Height:  |  Size: 416 B

View file

Before

Width:  |  Height:  |  Size: 385 B

After

Width:  |  Height:  |  Size: 385 B

View file

Before

Width:  |  Height:  |  Size: 324 B

After

Width:  |  Height:  |  Size: 324 B

View file

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 348 B

View file

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 261 B

View file

Before

Width:  |  Height:  |  Size: 337 B

After

Width:  |  Height:  |  Size: 337 B

View file

Before

Width:  |  Height:  |  Size: 325 B

After

Width:  |  Height:  |  Size: 325 B

View file

Before

Width:  |  Height:  |  Size: 350 B

After

Width:  |  Height:  |  Size: 350 B

View file

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 353 B

View file

Before

Width:  |  Height:  |  Size: 353 B

After

Width:  |  Height:  |  Size: 353 B

View file

Before

Width:  |  Height:  |  Size: 251 B

After

Width:  |  Height:  |  Size: 251 B

View file

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 338 B

View file

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 354 B

View file

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 267 B

View file

Before

Width:  |  Height:  |  Size: 327 B

After

Width:  |  Height:  |  Size: 327 B

View file

Before

Width:  |  Height:  |  Size: 237 B

After

Width:  |  Height:  |  Size: 237 B

View file

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

View file

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 207 B

View file

Before

Width:  |  Height:  |  Size: 194 B

After

Width:  |  Height:  |  Size: 194 B

View file

Before

Width:  |  Height:  |  Size: 217 B

After

Width:  |  Height:  |  Size: 217 B

View file

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 220 B

View file

Before

Width:  |  Height:  |  Size: 202 B

After

Width:  |  Height:  |  Size: 202 B

View file

Before

Width:  |  Height:  |  Size: 224 B

After

Width:  |  Height:  |  Size: 224 B

View file

Before

Width:  |  Height:  |  Size: 209 B

After

Width:  |  Height:  |  Size: 209 B

View file

Before

Width:  |  Height:  |  Size: 215 B

After

Width:  |  Height:  |  Size: 215 B

View file

Before

Width:  |  Height:  |  Size: 256 B

After

Width:  |  Height:  |  Size: 256 B

View file

Before

Width:  |  Height:  |  Size: 256 B

After

Width:  |  Height:  |  Size: 256 B

Some files were not shown because too many files have changed in this diff Show more