From 01b151c4784090190caa9121476e7b858df12c3e Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Mon, 29 Jun 2020 19:25:08 +0200 Subject: [PATCH] built on 29/06/2020 19:25:08 --- .../.github/workflows/integration-test.yml | 14 + 3d_armor/.github/workflows/luacheck.yml | 17 + 3d_armor/.luacheckrc | 34 + 3d_armor/3d_armor/LICENSE.txt | 26 + 3d_armor/3d_armor/README.txt | 191 +++++ 3d_armor/3d_armor/api.lua | 542 ++++++++++++++ 3d_armor/3d_armor/armor.conf.example | 65 ++ 3d_armor/3d_armor/armor.lua | 372 ++++++++++ 3d_armor/3d_armor/crafting_guide.txt | 79 ++ 3d_armor/3d_armor/depends.txt | 8 + 3d_armor/3d_armor/description.txt | 1 + 3d_armor/3d_armor/init.lua | 493 +++++++++++++ 3d_armor/3d_armor/integration_test.lua | 25 + 3d_armor/3d_armor/intllib.lua | 45 ++ 3d_armor/3d_armor/locale/es.po | 384 ++++++++++ 3d_armor/3d_armor/locale/fr.po | 295 ++++++++ 3d_armor/3d_armor/locale/it.po | 295 ++++++++ 3d_armor/3d_armor/locale/ms.po | 296 ++++++++ 3d_armor/3d_armor/locale/pt.po | 295 ++++++++ 3d_armor/3d_armor/locale/pt_BR.po | 295 ++++++++ 3d_armor/3d_armor/locale/ru.po | 294 ++++++++ 3d_armor/3d_armor/locale/template.pot | 294 ++++++++ 3d_armor/3d_armor/mod.conf | 4 + .../3d_armor/models/3d_armor_character.b3d | Bin 0 -> 151606 bytes .../3d_armor/models/3d_armor_character.blend | Bin 0 -> 775480 bytes .../textures/3d_armor_boots_admin.png | Bin 0 -> 258 bytes .../textures/3d_armor_boots_admin_preview.png | Bin 0 -> 261 bytes .../textures/3d_armor_boots_bronze.png | Bin 0 -> 253 bytes .../3d_armor_boots_bronze_preview.png | Bin 0 -> 241 bytes .../textures/3d_armor_boots_cactus.png | Bin 0 -> 252 bytes .../3d_armor_boots_cactus_preview.png | Bin 0 -> 239 bytes .../textures/3d_armor_boots_crystal.png | Bin 0 -> 261 bytes .../3d_armor_boots_crystal_preview.png | Bin 0 -> 258 bytes .../textures/3d_armor_boots_diamond.png | Bin 0 -> 265 bytes .../3d_armor_boots_diamond_preview.png | Bin 0 -> 270 bytes .../3d_armor/textures/3d_armor_boots_gold.png | Bin 0 -> 245 bytes .../textures/3d_armor_boots_gold_preview.png | Bin 0 -> 226 bytes .../textures/3d_armor_boots_mithril.png | Bin 0 -> 261 bytes .../3d_armor_boots_mithril_preview.png | Bin 0 -> 272 bytes .../textures/3d_armor_boots_steel.png | Bin 0 -> 233 bytes .../textures/3d_armor_boots_steel_preview.png | Bin 0 -> 232 bytes .../3d_armor/textures/3d_armor_boots_wood.png | Bin 0 -> 267 bytes .../textures/3d_armor_boots_wood_preview.png | Bin 0 -> 233 bytes .../textures/3d_armor_chestplate_admin.png | Bin 0 -> 409 bytes .../3d_armor_chestplate_admin_preview.png | Bin 0 -> 285 bytes .../textures/3d_armor_chestplate_bronze.png | Bin 0 -> 396 bytes .../3d_armor_chestplate_bronze_preview.png | Bin 0 -> 282 bytes .../textures/3d_armor_chestplate_cactus.png | Bin 0 -> 393 bytes .../3d_armor_chestplate_cactus_preview.png | Bin 0 -> 286 bytes .../textures/3d_armor_chestplate_crystal.png | Bin 0 -> 404 bytes .../3d_armor_chestplate_crystal_preview.png | Bin 0 -> 289 bytes .../textures/3d_armor_chestplate_diamond.png | Bin 0 -> 429 bytes .../3d_armor_chestplate_diamond_preview.png | Bin 0 -> 290 bytes .../textures/3d_armor_chestplate_gold.png | Bin 0 -> 402 bytes .../3d_armor_chestplate_gold_preview.png | Bin 0 -> 281 bytes .../textures/3d_armor_chestplate_mithril.png | Bin 0 -> 416 bytes .../3d_armor_chestplate_mithril_preview.png | Bin 0 -> 286 bytes .../textures/3d_armor_chestplate_steel.png | Bin 0 -> 385 bytes .../3d_armor_chestplate_steel_preview.png | Bin 0 -> 274 bytes .../textures/3d_armor_chestplate_wood.png | Bin 0 -> 324 bytes .../3d_armor_chestplate_wood_preview.png | Bin 0 -> 275 bytes .../textures/3d_armor_helmet_admin.png | Bin 0 -> 348 bytes .../3d_armor_helmet_admin_preview.png | Bin 0 -> 261 bytes .../textures/3d_armor_helmet_bronze.png | Bin 0 -> 337 bytes .../3d_armor_helmet_bronze_preview.png | Bin 0 -> 271 bytes .../textures/3d_armor_helmet_cactus.png | Bin 0 -> 325 bytes .../3d_armor_helmet_cactus_preview.png | Bin 0 -> 203 bytes .../textures/3d_armor_helmet_crystal.png | Bin 0 -> 350 bytes .../3d_armor_helmet_crystal_preview.png | Bin 0 -> 257 bytes .../textures/3d_armor_helmet_diamond.png | Bin 0 -> 353 bytes .../3d_armor_helmet_diamond_preview.png | Bin 0 -> 269 bytes .../textures/3d_armor_helmet_gold.png | Bin 0 -> 353 bytes .../textures/3d_armor_helmet_gold_preview.png | Bin 0 -> 251 bytes .../textures/3d_armor_helmet_mithril.png | Bin 0 -> 338 bytes .../3d_armor_helmet_mithril_preview.png | Bin 0 -> 253 bytes .../textures/3d_armor_helmet_steel.png | Bin 0 -> 354 bytes .../3d_armor_helmet_steel_preview.png | Bin 0 -> 267 bytes .../textures/3d_armor_helmet_wood.png | Bin 0 -> 327 bytes .../textures/3d_armor_helmet_wood_preview.png | Bin 0 -> 237 bytes .../textures/3d_armor_inv_boots_admin.png | Bin 0 -> 216 bytes .../textures/3d_armor_inv_boots_bronze.png | Bin 0 -> 207 bytes .../textures/3d_armor_inv_boots_cactus.png | Bin 0 -> 194 bytes .../textures/3d_armor_inv_boots_crystal.png | Bin 0 -> 217 bytes .../textures/3d_armor_inv_boots_diamond.png | Bin 0 -> 220 bytes .../textures/3d_armor_inv_boots_gold.png | Bin 0 -> 202 bytes .../textures/3d_armor_inv_boots_mithril.png | Bin 0 -> 224 bytes .../textures/3d_armor_inv_boots_steel.png | Bin 0 -> 209 bytes .../textures/3d_armor_inv_boots_wood.png | Bin 0 -> 215 bytes .../3d_armor_inv_chestplate_admin.png | Bin 0 -> 256 bytes .../3d_armor_inv_chestplate_bronze.png | Bin 0 -> 261 bytes .../3d_armor_inv_chestplate_cactus.png | Bin 0 -> 246 bytes .../3d_armor_inv_chestplate_crystal.png | Bin 0 -> 258 bytes .../3d_armor_inv_chestplate_diamond.png | Bin 0 -> 264 bytes .../textures/3d_armor_inv_chestplate_gold.png | Bin 0 -> 256 bytes .../3d_armor_inv_chestplate_mithril.png | Bin 0 -> 246 bytes .../3d_armor_inv_chestplate_steel.png | Bin 0 -> 252 bytes .../textures/3d_armor_inv_chestplate_wood.png | Bin 0 -> 244 bytes .../textures/3d_armor_inv_helmet_admin.png | Bin 0 -> 188 bytes .../textures/3d_armor_inv_helmet_bronze.png | Bin 0 -> 180 bytes .../textures/3d_armor_inv_helmet_cactus.png | Bin 0 -> 183 bytes .../textures/3d_armor_inv_helmet_crystal.png | Bin 0 -> 186 bytes .../textures/3d_armor_inv_helmet_diamond.png | Bin 0 -> 189 bytes .../textures/3d_armor_inv_helmet_gold.png | Bin 0 -> 178 bytes .../textures/3d_armor_inv_helmet_mithril.png | Bin 0 -> 180 bytes .../textures/3d_armor_inv_helmet_steel.png | Bin 0 -> 194 bytes .../textures/3d_armor_inv_helmet_wood.png | Bin 0 -> 151 bytes .../textures/3d_armor_inv_leggings_admin.png | Bin 0 -> 214 bytes .../textures/3d_armor_inv_leggings_bronze.png | Bin 0 -> 245 bytes .../textures/3d_armor_inv_leggings_cactus.png | Bin 0 -> 217 bytes .../3d_armor_inv_leggings_crystal.png | Bin 0 -> 212 bytes .../3d_armor_inv_leggings_diamond.png | Bin 0 -> 213 bytes .../textures/3d_armor_inv_leggings_gold.png | Bin 0 -> 238 bytes .../3d_armor_inv_leggings_mithril.png | Bin 0 -> 250 bytes .../textures/3d_armor_inv_leggings_steel.png | Bin 0 -> 233 bytes .../textures/3d_armor_inv_leggings_wood.png | Bin 0 -> 211 bytes .../textures/3d_armor_leggings_admin.png | Bin 0 -> 288 bytes .../3d_armor_leggings_admin_preview.png | Bin 0 -> 298 bytes .../textures/3d_armor_leggings_bronze.png | Bin 0 -> 278 bytes .../3d_armor_leggings_bronze_preview.png | Bin 0 -> 273 bytes .../textures/3d_armor_leggings_cactus.png | Bin 0 -> 251 bytes .../3d_armor_leggings_cactus_preview.png | Bin 0 -> 261 bytes .../textures/3d_armor_leggings_crystal.png | Bin 0 -> 290 bytes .../3d_armor_leggings_crystal_preview.png | Bin 0 -> 268 bytes .../textures/3d_armor_leggings_diamond.png | Bin 0 -> 294 bytes .../3d_armor_leggings_diamond_preview.png | Bin 0 -> 308 bytes .../textures/3d_armor_leggings_gold.png | Bin 0 -> 272 bytes .../3d_armor_leggings_gold_preview.png | Bin 0 -> 257 bytes .../textures/3d_armor_leggings_mithril.png | Bin 0 -> 286 bytes .../3d_armor_leggings_mithril_preview.png | Bin 0 -> 315 bytes .../textures/3d_armor_leggings_steel.png | Bin 0 -> 288 bytes .../3d_armor_leggings_steel_preview.png | Bin 0 -> 287 bytes .../textures/3d_armor_leggings_wood.png | Bin 0 -> 255 bytes .../3d_armor_leggings_wood_preview.png | Bin 0 -> 217 bytes 3d_armor/3d_armor/textures/3d_armor_trans.png | Bin 0 -> 274 bytes .../3d_armor/textures/3d_armor_ui_form.png | Bin 0 -> 9116 bytes .../3d_armor/textures/character_preview.png | Bin 0 -> 349 bytes .../textures/inventory_plus_armor.png | Bin 0 -> 571 bytes 3d_armor/3d_armor/textures/preview_index.txt | 44 ++ 3d_armor/3d_armor/tools/README.md | 7 + 3d_armor/3d_armor/tools/updatepo.sh | 24 + 3d_armor/3d_armor_ip/LICENSE.txt | 18 + 3d_armor/3d_armor_ip/depends.txt | 2 + 3d_armor/3d_armor_ip/description.txt | 1 + 3d_armor/3d_armor_ip/init.lua | 38 + 3d_armor/3d_armor_ip/mod.conf | 4 + 3d_armor/3d_armor_sfinv/LICENSE.txt | 18 + 3d_armor/3d_armor_sfinv/depends.txt | 2 + 3d_armor/3d_armor_sfinv/description.txt | 1 + 3d_armor/3d_armor_sfinv/init.lua | 21 + 3d_armor/3d_armor_sfinv/mod.conf | 4 + 3d_armor/3d_armor_stand/LICENSE.txt | 43 ++ 3d_armor/3d_armor_stand/README.txt | 21 + 3d_armor/3d_armor_stand/depends.txt | 2 + 3d_armor/3d_armor_stand/init.lua | 353 +++++++++ 3d_armor/3d_armor_stand/mod.conf | 2 + .../3d_armor_stand/models/3d_armor_entity.obj | 193 +++++ .../3d_armor_stand/models/3d_armor_stand.obj | 280 ++++++++ .../3d_armor_stand/models/3d_armor_stand.png | Bin 0 -> 1628 bytes .../models/3d_armor_stand_locked.png | Bin 0 -> 1992 bytes .../textures/3d_armor_stand_feet.png | Bin 0 -> 160 bytes .../textures/3d_armor_stand_head.png | Bin 0 -> 164 bytes .../textures/3d_armor_stand_legs.png | Bin 0 -> 159 bytes .../textures/3d_armor_stand_shield.png | Bin 0 -> 166 bytes .../textures/3d_armor_stand_torso.png | Bin 0 -> 191 bytes 3d_armor/3d_armor_ui/LICENSE.txt | 18 + 3d_armor/3d_armor_ui/depends.txt | 2 + 3d_armor/3d_armor_ui/description.txt | 1 + 3d_armor/3d_armor_ui/init.lua | 53 ++ 3d_armor/3d_armor_ui/mod.conf | 4 + 3d_armor/LICENSE.md | 10 + 3d_armor/README.md | 72 ++ 3d_armor/description.txt | 1 + 3d_armor/integration-test.sh | 20 + 3d_armor/modpack.conf | 5 + 3d_armor/preview_gen.py | 81 +++ 3d_armor/screenshot.png | Bin 0 -> 66964 bytes 3d_armor/settingtypes.txt | 65 ++ 3d_armor/shields/LICENSE.txt | 26 + 3d_armor/shields/README.txt | 16 + 3d_armor/shields/crafting_guide.txt | 36 + 3d_armor/shields/depends.txt | 2 + 3d_armor/shields/description.txt | 1 + 3d_armor/shields/init.lua | 236 ++++++ 3d_armor/shields/mod.conf | 3 + 3d_armor/shields/textures/preview_index.txt | 11 + .../textures/shields_inv_shield_admin.png | Bin 0 -> 277 bytes .../textures/shields_inv_shield_bronze.png | Bin 0 -> 264 bytes .../textures/shields_inv_shield_cactus.png | Bin 0 -> 190 bytes .../textures/shields_inv_shield_crystal.png | Bin 0 -> 274 bytes .../textures/shields_inv_shield_diamond.png | Bin 0 -> 281 bytes .../shields_inv_shield_enhanced_cactus.png | Bin 0 -> 211 bytes .../shields_inv_shield_enhanced_wood.png | Bin 0 -> 263 bytes .../textures/shields_inv_shield_gold.png | Bin 0 -> 263 bytes .../textures/shields_inv_shield_mithril.png | Bin 0 -> 261 bytes .../textures/shields_inv_shield_steel.png | Bin 0 -> 260 bytes .../textures/shields_inv_shield_wood.png | Bin 0 -> 210 bytes .../shields/textures/shields_shield_admin.png | Bin 0 -> 344 bytes .../textures/shields_shield_admin_preview.png | Bin 0 -> 345 bytes .../textures/shields_shield_bronze.png | Bin 0 -> 320 bytes .../shields_shield_bronze_preview.png | Bin 0 -> 325 bytes .../textures/shields_shield_cactus.png | Bin 0 -> 238 bytes .../shields_shield_cactus_preview.png | Bin 0 -> 320 bytes .../textures/shields_shield_crystal.png | Bin 0 -> 343 bytes .../shields_shield_crystal_preview.png | Bin 0 -> 346 bytes .../textures/shields_shield_diamond.png | Bin 0 -> 347 bytes .../shields_shield_diamond_preview.png | Bin 0 -> 349 bytes .../shields_shield_enhanced_cactus.png | Bin 0 -> 261 bytes ...shields_shield_enhanced_cactus_preview.png | Bin 0 -> 265 bytes .../textures/shields_shield_enhanced_wood.png | Bin 0 -> 311 bytes .../shields_shield_enhanced_wood_preview.png | Bin 0 -> 318 bytes .../shields/textures/shields_shield_gold.png | Bin 0 -> 324 bytes .../textures/shields_shield_gold_preview.png | Bin 0 -> 327 bytes .../textures/shields_shield_mithril.png | Bin 0 -> 324 bytes .../shields_shield_mithril_preview.png | Bin 0 -> 328 bytes .../shields/textures/shields_shield_steel.png | Bin 0 -> 322 bytes .../textures/shields_shield_steel_preview.png | Bin 0 -> 317 bytes .../shields/textures/shields_shield_wood.png | Bin 0 -> 262 bytes .../textures/shields_shield_wood_preview.png | Bin 0 -> 270 bytes 3d_armor/wieldview/LICENSE.txt | 18 + 3d_armor/wieldview/README.txt | 23 + 3d_armor/wieldview/depends.txt | 1 + 3d_armor/wieldview/description.txt | 1 + 3d_armor/wieldview/init.lua | 85 +++ 3d_armor/wieldview/mod.conf | 3 + 3d_armor/wieldview/transform.lua | 24 + README.md | 16 +- autobahn/init.lua | 27 +- hyperloop/recipes.lua | 2 +- minecart/README.md | 1 + minecart/init.lua | 2 +- minecart/monitoring.lua | 17 +- minecart/recording.lua | 2 +- minecart/storage.lua | 82 ++- ta4_jetpack/LICENSE.txt | 674 ++++++++++++++++++ ta4_jetpack/README.md | 46 ++ ta4_jetpack/i18n.py | 80 +++ ta4_jetpack/init.lua | 527 ++++++++++++++ ta4_jetpack/locale/ta4_jetpack.de.tr | 14 + ta4_jetpack/locale/template.txt | 11 + ta4_jetpack/mod.conf | 3 + ta4_jetpack/screenshot.png | Bin 0 -> 226016 bytes ta4_jetpack/settingtypes.txt | 14 + ta4_jetpack/sounds/ta4_jetpack.ogg | Bin 0 -> 9367 bytes ta4_jetpack/sounds/ta4_jetpack_alarm.ogg | Bin 0 -> 21820 bytes ta4_jetpack/sounds/ta4_jetpack_on.ogg | Bin 0 -> 4887 bytes .../textures/ta4_jetpack_controller_inv.png | Bin 0 -> 629 bytes .../ta4_jetpack_controller_off_inv.png | Bin 0 -> 526 bytes ta4_jetpack/textures/ta4_jetpack_jetpack.png | Bin 0 -> 395 bytes .../textures/ta4_jetpack_jetpack_inv.png | Bin 0 -> 370 bytes .../textures/ta4_jetpack_jetpack_preview.png | Bin 0 -> 539 bytes ta4_jetpack/textures/ta4_jetpack_mat_side.png | Bin 0 -> 193 bytes ta4_jetpack/textures/ta4_jetpack_mat_top.png | Bin 0 -> 423 bytes ta4_jetpack/textures/ta4_jetpack_smoke.png | Bin 0 -> 472 bytes techage/README.md | 66 +- techage/basic_machines/quarry.lua | 3 + techage/basis/gravel_lib.lua | 21 +- techage/basis/nodedata_sqlite.lua | 10 +- techage/doc/items.lua | 1 + techage/doc/manual_DE.lua | 17 +- techage/doc/manual_EN.lua | 23 +- techage/init.lua | 3 +- techage/items/aluminium.lua | 2 +- techage/items/cement.lua | 52 ++ techage/manuals/manual_DE.md | 11 +- techage/manuals/manual_EN.md | 9 + techage/manuals/manual_ta3_DE.md | 8 +- techage/manuals/manual_ta3_EN.md | 12 +- techage/manuals/toc_DE.md | 1 + techage/manuals/toc_EN.md | 1 + techage/oil/reboiler.lua | 2 +- 270 files changed, 7929 insertions(+), 91 deletions(-) create mode 100644 3d_armor/.github/workflows/integration-test.yml create mode 100644 3d_armor/.github/workflows/luacheck.yml create mode 100644 3d_armor/.luacheckrc create mode 100644 3d_armor/3d_armor/LICENSE.txt create mode 100644 3d_armor/3d_armor/README.txt create mode 100644 3d_armor/3d_armor/api.lua create mode 100644 3d_armor/3d_armor/armor.conf.example create mode 100644 3d_armor/3d_armor/armor.lua create mode 100644 3d_armor/3d_armor/crafting_guide.txt create mode 100644 3d_armor/3d_armor/depends.txt create mode 100644 3d_armor/3d_armor/description.txt create mode 100644 3d_armor/3d_armor/init.lua create mode 100644 3d_armor/3d_armor/integration_test.lua create mode 100644 3d_armor/3d_armor/intllib.lua create mode 100644 3d_armor/3d_armor/locale/es.po create mode 100644 3d_armor/3d_armor/locale/fr.po create mode 100644 3d_armor/3d_armor/locale/it.po create mode 100644 3d_armor/3d_armor/locale/ms.po create mode 100644 3d_armor/3d_armor/locale/pt.po create mode 100644 3d_armor/3d_armor/locale/pt_BR.po create mode 100644 3d_armor/3d_armor/locale/ru.po create mode 100644 3d_armor/3d_armor/locale/template.pot create mode 100644 3d_armor/3d_armor/mod.conf create mode 100644 3d_armor/3d_armor/models/3d_armor_character.b3d create mode 100644 3d_armor/3d_armor/models/3d_armor_character.blend create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_admin.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_admin_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_bronze.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_bronze_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_cactus.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_crystal.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_diamond.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_gold.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_gold_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_mithril.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_steel.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_wood.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_bronze.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_bronze_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_gold.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_gold_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_wood_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_admin.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_admin_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_bronze_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_gold.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_steel.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_wood.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_wood_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_admin.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_bronze.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_wood.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_admin.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_bronze.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_wood.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_admin.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_bronze.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_wood.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_admin.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_bronze.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_wood.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_admin.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_bronze.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_bronze_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_gold.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_steel.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_wood.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_wood_preview.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_trans.png create mode 100644 3d_armor/3d_armor/textures/3d_armor_ui_form.png create mode 100644 3d_armor/3d_armor/textures/character_preview.png create mode 100644 3d_armor/3d_armor/textures/inventory_plus_armor.png create mode 100644 3d_armor/3d_armor/textures/preview_index.txt create mode 100644 3d_armor/3d_armor/tools/README.md create mode 100755 3d_armor/3d_armor/tools/updatepo.sh create mode 100644 3d_armor/3d_armor_ip/LICENSE.txt create mode 100644 3d_armor/3d_armor_ip/depends.txt create mode 100644 3d_armor/3d_armor_ip/description.txt create mode 100644 3d_armor/3d_armor_ip/init.lua create mode 100644 3d_armor/3d_armor_ip/mod.conf create mode 100644 3d_armor/3d_armor_sfinv/LICENSE.txt create mode 100644 3d_armor/3d_armor_sfinv/depends.txt create mode 100644 3d_armor/3d_armor_sfinv/description.txt create mode 100644 3d_armor/3d_armor_sfinv/init.lua create mode 100644 3d_armor/3d_armor_sfinv/mod.conf create mode 100644 3d_armor/3d_armor_stand/LICENSE.txt create mode 100644 3d_armor/3d_armor_stand/README.txt create mode 100644 3d_armor/3d_armor_stand/depends.txt create mode 100644 3d_armor/3d_armor_stand/init.lua create mode 100644 3d_armor/3d_armor_stand/mod.conf create mode 100644 3d_armor/3d_armor_stand/models/3d_armor_entity.obj create mode 100644 3d_armor/3d_armor_stand/models/3d_armor_stand.obj create mode 100644 3d_armor/3d_armor_stand/models/3d_armor_stand.png create mode 100644 3d_armor/3d_armor_stand/models/3d_armor_stand_locked.png create mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png create mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png create mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png create mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_shield.png create mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png create mode 100644 3d_armor/3d_armor_ui/LICENSE.txt create mode 100644 3d_armor/3d_armor_ui/depends.txt create mode 100644 3d_armor/3d_armor_ui/description.txt create mode 100644 3d_armor/3d_armor_ui/init.lua create mode 100644 3d_armor/3d_armor_ui/mod.conf create mode 100644 3d_armor/LICENSE.md create mode 100644 3d_armor/README.md create mode 100644 3d_armor/description.txt create mode 100755 3d_armor/integration-test.sh create mode 100644 3d_armor/modpack.conf create mode 100755 3d_armor/preview_gen.py create mode 100644 3d_armor/screenshot.png create mode 100644 3d_armor/settingtypes.txt create mode 100644 3d_armor/shields/LICENSE.txt create mode 100644 3d_armor/shields/README.txt create mode 100644 3d_armor/shields/crafting_guide.txt create mode 100644 3d_armor/shields/depends.txt create mode 100644 3d_armor/shields/description.txt create mode 100644 3d_armor/shields/init.lua create mode 100644 3d_armor/shields/mod.conf create mode 100644 3d_armor/shields/textures/preview_index.txt create mode 100644 3d_armor/shields/textures/shields_inv_shield_admin.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_bronze.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_cactus.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_crystal.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_diamond.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_enhanced_wood.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_gold.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_mithril.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_steel.png create mode 100644 3d_armor/shields/textures/shields_inv_shield_wood.png create mode 100644 3d_armor/shields/textures/shields_shield_admin.png create mode 100644 3d_armor/shields/textures/shields_shield_admin_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_bronze.png create mode 100644 3d_armor/shields/textures/shields_shield_bronze_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_cactus.png create mode 100644 3d_armor/shields/textures/shields_shield_cactus_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_crystal.png create mode 100644 3d_armor/shields/textures/shields_shield_crystal_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_diamond.png create mode 100644 3d_armor/shields/textures/shields_shield_diamond_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_enhanced_cactus.png create mode 100644 3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_enhanced_wood.png create mode 100644 3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_gold.png create mode 100644 3d_armor/shields/textures/shields_shield_gold_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_mithril.png create mode 100644 3d_armor/shields/textures/shields_shield_mithril_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_steel.png create mode 100644 3d_armor/shields/textures/shields_shield_steel_preview.png create mode 100644 3d_armor/shields/textures/shields_shield_wood.png create mode 100644 3d_armor/shields/textures/shields_shield_wood_preview.png create mode 100644 3d_armor/wieldview/LICENSE.txt create mode 100644 3d_armor/wieldview/README.txt create mode 100644 3d_armor/wieldview/depends.txt create mode 100644 3d_armor/wieldview/description.txt create mode 100644 3d_armor/wieldview/init.lua create mode 100644 3d_armor/wieldview/mod.conf create mode 100644 3d_armor/wieldview/transform.lua create mode 100644 ta4_jetpack/LICENSE.txt create mode 100644 ta4_jetpack/README.md create mode 100755 ta4_jetpack/i18n.py create mode 100644 ta4_jetpack/init.lua create mode 100644 ta4_jetpack/locale/ta4_jetpack.de.tr create mode 100644 ta4_jetpack/locale/template.txt create mode 100644 ta4_jetpack/mod.conf create mode 100644 ta4_jetpack/screenshot.png create mode 100644 ta4_jetpack/settingtypes.txt create mode 100644 ta4_jetpack/sounds/ta4_jetpack.ogg create mode 100644 ta4_jetpack/sounds/ta4_jetpack_alarm.ogg create mode 100644 ta4_jetpack/sounds/ta4_jetpack_on.ogg create mode 100644 ta4_jetpack/textures/ta4_jetpack_controller_inv.png create mode 100644 ta4_jetpack/textures/ta4_jetpack_controller_off_inv.png create mode 100644 ta4_jetpack/textures/ta4_jetpack_jetpack.png create mode 100644 ta4_jetpack/textures/ta4_jetpack_jetpack_inv.png create mode 100644 ta4_jetpack/textures/ta4_jetpack_jetpack_preview.png create mode 100644 ta4_jetpack/textures/ta4_jetpack_mat_side.png create mode 100644 ta4_jetpack/textures/ta4_jetpack_mat_top.png create mode 100644 ta4_jetpack/textures/ta4_jetpack_smoke.png create mode 100644 techage/items/cement.lua diff --git a/3d_armor/.github/workflows/integration-test.yml b/3d_armor/.github/workflows/integration-test.yml new file mode 100644 index 0000000..1eeaa6a --- /dev/null +++ b/3d_armor/.github/workflows/integration-test.yml @@ -0,0 +1,14 @@ +name: integration-test + +on: [push] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + + - name: integration-test + run: ./integration-test.sh diff --git a/3d_armor/.github/workflows/luacheck.yml b/3d_armor/.github/workflows/luacheck.yml new file mode 100644 index 0000000..a03fe92 --- /dev/null +++ b/3d_armor/.github/workflows/luacheck.yml @@ -0,0 +1,17 @@ +name: luacheck + +on: [push] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + - name: apt + run: sudo apt-get install -y luarocks + - name: luacheck install + run: luarocks install --local luacheck + - name: luacheck run + run: $HOME/.luarocks/bin/luacheck ./ diff --git a/3d_armor/.luacheckrc b/3d_armor/.luacheckrc new file mode 100644 index 0000000..b01ed8e --- /dev/null +++ b/3d_armor/.luacheckrc @@ -0,0 +1,34 @@ + +unused_args = false + +globals = { + "wieldview", + "armor", + "armor_i18n", + "inventory_plus" +} + +read_globals = { + -- Stdlib + string = {fields = {"split"}}, + table = {fields = {"copy", "getn"}}, + + -- Minetest + "vector", "ItemStack", + "dump", "VoxelArea", + + -- deps + "default", + "minetest", + "unified_inventory", + "intllib", + "wardrobe", + "player_monoids", + "armor_monoid", + "sfinv", + "ARMOR_MATERIALS", + "ARMOR_FIRE_NODES", + "pova", + "skins", + "u_skins" +} diff --git a/3d_armor/3d_armor/LICENSE.txt b/3d_armor/3d_armor/LICENSE.txt new file mode 100644 index 0000000..f253f29 --- /dev/null +++ b/3d_armor/3d_armor/LICENSE.txt @@ -0,0 +1,26 @@ +[mod] 3d Armor [3d_armor] +========================= + +License Source Code +------------------- + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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 diff --git a/3d_armor/3d_armor/README.txt b/3d_armor/3d_armor/README.txt new file mode 100644 index 0000000..7dbe82d --- /dev/null +++ b/3d_armor/3d_armor/README.txt @@ -0,0 +1,191 @@ +[mod] Visible Player Armor [3d_armor] +===================================== + +Depends: default + +Recommends: sfinv, unified_inventory or smart_inventory (use only one to avoid conflicts) + +Supports: player_monoids and armor_monoid + +Adds craftable armor that is visible to other players. Each armor item worn contributes to +a player's armor group level making them less vulnerable to weapons. + +Armor takes damage when a player is hurt but also offers a percentage chance of healing. +Overall level is boosted by 10% when wearing a full matching set. + +Fire protection added by TenPlus1 when using crystal armor if Ethereal mod active, level 1 +protects against torches, level 2 for crystal spike, level 3 for fire, level 5 for lava. + +Armor Configuration +------------------- + +Override the following default settings by adding them to your minetest.conf file. + +-- Set false to disable individual armor materials. +armor_material_wood = true +armor_material_cactus = true +armor_material_steel = true +armor_material_bronze = true +armor_material_diamond = true +armor_material_gold = true +armor_material_mithril = true +armor_material_crystal = true + +-- Increase this if you get initialization glitches when a player first joins. +armor_init_delay = 2 + +-- Number of initialization attempts. +-- Use in conjunction with armor_init_delay if initialization problems persist. +armor_init_times = 10 + +-- Increase this if armor is not getting into bones due to server lag. +armor_bones_delay = 1 + +-- How often player armor items are updated. +armor_update_time = 1 + +-- Drop armor when a player dies. +-- Uses bones mod if present, otherwise items are dropped around the player. +armor_drop = true + +-- Pulverise armor when a player dies, overrides armor_drop. +armor_destroy = false + +-- You can use this to increase or decrease overall armor effectiveness, +-- eg: level_multiplier = 0.5 will reduce armor level by half. +armor_level_multiplier = 1 + +-- You can use this to increase or decrease overall armor healing, +-- eg: armor_heal_multiplier = 0 will disable healing altogether. +armor_heal_multiplier = 1 + +-- Enable water protection (periodically restores breath when activated) +armor_water_protect = true + +-- Enable fire protection (defaults true if using ethereal mod) +armor_fire_protect = false + +-- Enable punch damage effects. +armor_punch_damage = true + +-- Enable migration of old armor inventories +armor_migrate_old_inventory = true + +API +--- + +Armor Registration: + +armor:register_armor(name, def) + +Wrapper function for `minetest.register_tool`, while registering armor as +a tool item is still supported, this may be deprecated in future so new code +should use this method. + +Additional fields supported by 3d_armor: + + texture = + preview = + armor_groups = + damage_groups =
+ reciprocate_damage = + on_equip = + on_unequip = + on_destroy = + on_damage = + on_punched = + +armor:register_armor_group(group, base) + +Example: + +armor:register_armor_group("radiation", 100) + +armor:register_armor("mod_name:speed_boots", { + description = "Speed Boots", + inventory_image = "mod_name_speed_boots_inv.png", + texture = "mod_name_speed_boots.png", + preview = "mod_name_speed_boots_preview.png", + groups = {armor_feet=1, armor_use=500, physics_speed=1.2, flammable=1}, + armor_groups = {fleshy=10, radiation=10}, + damage_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1}, + reciprocate_damage = true, + on_destroy = function(player, index, stack) + local pos = player:get_pos() + if pos then + minetest.sound_play({ + name = "mod_name_break_sound", + pos = pos, + gain = 0.5, + }) + end + end, +}) + +See armor.lua, technic_armor and shields mods for more examples. + +Default groups: + +Elements: armor_head, armor_torso, armor_legs, armor_feet +Attributes: armor_heal, armor_fire, armor_water +Physics: physics_jump, physics_speed, physics_gravity +Durability: armor_use, flammable + +Notes: + +Elements may be modified by dependent mods, eg shields adds armor_shield. +Attributes and physics values are 'stackable', durability is determined +by the level of armor_use, total uses == approx (65535/armor_use), non-fleshy +damage groups need to be defined in the tool/weapon used against the player. + +Reciprocal tool damage will be done only by the first armor inventory item + with `reciprocate_damage = true` + +Armor Functions: + +armor:set_player_armor(player) + +Primarily an internal function but can be called externally to apply any +changes that might not otherwise get handled. + +armor:punch(player, hitter, time_from_last_punch, tool_capabilities) + +Used to apply damage to all equipped armor based on the damage groups of +each individual item.`hitter`, `time_from_last_punch` and `tool_capabilities` +are optional but should be valid if included. + +armor:damage(player, index, stack, use) + +Adds wear to a single armor itemstack, triggers `on_damage` callbacks and +updates the necessary inventories. Also handles item destruction callbacks +and so should NOT be called from `on_unequip` to avoid an infinite loop. + +Item Callbacks: + +on_equip = func(player, index, stack) +on_unequip = func(player, index, stack) +on_destroy = func(player, index, stack) +on_damage = func(player, index, stack) +on_punched = func(player, hitter, time_from_last_punch, tool_capabilities) + +Notes: + +`on_punched` is called every time a player is punched or takes damage, `hitter`, +`time_from_last_punch` and `tool_capabilities` can be `nil` and will be in the +case of fall damage, etc. When fire protection is enabled, hitter == "fire" +in the event of fire damage. Return `false` to override armor damage effects. +When armor is destroyed `stack` will contain a copy of the previous stack. + +Global Callbacks: + +armor:register_on_update(func(player)) +armor:register_on_equip(func(player, index, stack)) +armor:register_on_unequip(func(player, index, stack)) +armor:register_on_destroy(func(player, index, stack)) + +Global Callback Example: + +armor:register_on_update(function(player) + print(player:get_player_name().." armor updated!") +end) + diff --git a/3d_armor/3d_armor/api.lua b/3d_armor/3d_armor/api.lua new file mode 100644 index 0000000..6aae7d2 --- /dev/null +++ b/3d_armor/3d_armor/api.lua @@ -0,0 +1,542 @@ +-- support for i18n +local S = armor_i18n.gettext + +local skin_previews = {} +local use_player_monoids = minetest.global_exists("player_monoids") +local use_armor_monoid = minetest.global_exists("armor_monoid") +local use_pova_mod = minetest.get_modpath("pova") +local armor_def = setmetatable({}, { + __index = function() + return setmetatable({ + groups = setmetatable({}, { + __index = function() + return 0 + end}) + }, { + __index = function() + return 0 + end + }) + end, +}) +local armor_textures = setmetatable({}, { + __index = function() + return setmetatable({}, { + __index = function() + return "blank.png" + end + }) + end +}) + +armor = { + timer = 0, + elements = {"head", "torso", "legs", "feet"}, + physics = {"jump", "speed", "gravity"}, + attributes = {"heal", "fire", "water"}, + formspec = "image[2.5,0;2,4;armor_preview]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + default.get_hotbar_bg(0, 4.7).. + "list[current_player;main;0,4.7;8,1;]".. + "list[current_player;main;0,5.85;8,3;8]", + def = armor_def, + textures = armor_textures, + default_skin = "character", + materials = { + 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", + }, + fire_nodes = { + {"default:lava_source", 5, 8}, + {"default:lava_flowing", 5, 8}, + {"fire:basic_flame", 3, 4}, + {"fire:permanent_flame", 3, 4}, + {"ethereal:crystal_spike", 2, 1}, + {"ethereal:fire_flower", 2, 1}, + {"default:torch", 1, 1}, + {"default:torch_ceiling", 1, 1}, + {"default:torch_wall", 1, 1}, + }, + registered_groups = {["fleshy"]=100}, + registered_callbacks = { + on_update = {}, + on_equip = {}, + on_unequip = {}, + on_damage = {}, + on_destroy = {}, + }, + migrate_old_inventory = true, + version = "0.4.13", +} + +armor.config = { + init_delay = 2, + init_times = 10, + bones_delay = 1, + update_time = 1, + drop = minetest.get_modpath("bones") ~= nil, + destroy = false, + level_multiplier = 1, + heal_multiplier = 1, + material_wood = true, + material_cactus = true, + material_steel = true, + material_bronze = true, + material_diamond = true, + material_gold = true, + material_mithril = true, + material_crystal = true, + water_protect = true, + fire_protect = minetest.get_modpath("ethereal") ~= nil, + punch_damage = true, +} + +-- Armor Registration + +armor.register_armor = function(self, name, def) + minetest.register_tool(name, def) +end + +armor.register_armor_group = function(self, group, base) + base = base or 100 + self.registered_groups[group] = base + if use_armor_monoid then + armor_monoid.register_armor_group(group, base) + end +end + +-- Armor callbacks + +armor.register_on_update = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_update, func) + end +end + +armor.register_on_equip = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_equip, func) + end +end + +armor.register_on_unequip = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_unequip, func) + end +end + +armor.register_on_damage = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_damage, func) + end +end + +armor.register_on_destroy = function(self, func) + if type(func) == "function" then + table.insert(self.registered_callbacks.on_destroy, func) + end +end + +armor.run_callbacks = function(self, callback, player, index, stack) + if stack then + local def = stack:get_definition() or {} + if type(def[callback]) == "function" then + def[callback](player, index, stack) + end + end + local callbacks = self.registered_callbacks[callback] + if callbacks then + for _, func in pairs(callbacks) do + func(player, index, stack) + end + end +end + +armor.update_player_visuals = function(self, player) + if not player then + return + end + local name = player:get_player_name() + if self.textures[name] then + default.player_set_textures(player, { + self.textures[name].skin, + self.textures[name].armor, + self.textures[name].wielditem, + }) + end + self:run_callbacks("on_update", player) +end + +armor.set_player_armor = function(self, player) + local name, armor_inv = self:get_valid_player(player, "[set_player_armor]") + if not name then + return + end + local state = 0 + local count = 0 + local material = {count=1} + local preview = armor:get_preview(name) + local texture = "3d_armor_trans.png" + local physics = {} + local attributes = {} + local levels = {} + local groups = {} + local change = {} + for _, phys in pairs(self.physics) do + physics[phys] = 1 + end + for _, attr in pairs(self.attributes) do + attributes[attr] = 0 + end + for group, _ in pairs(self.registered_groups) do + change[group] = 1 + levels[group] = 0 + end + local list = armor_inv:get_list("armor") + if type(list) ~= "table" then + return + end + for i, stack in pairs(list) do + if stack:get_count() == 1 then + local def = stack:get_definition() + for _, element in pairs(self.elements) do + if def.groups["armor_"..element] then + if def.armor_groups then + for group, level in pairs(def.armor_groups) do + if levels[group] then + levels[group] = levels[group] + level + end + end + else + local level = def.groups["armor_"..element] + levels["fleshy"] = levels["fleshy"] + level + end + break + end + -- DEPRECATED, use armor_groups instead + if def.groups["armor_radiation"] and levels["radiation"] then + levels["radiation"] = def.groups["armor_radiation"] + end + end + local item = stack:get_name() + local tex = def.texture or item:gsub("%:", "_") + tex = tex:gsub(".png$", "") + local prev = def.preview or tex.."_preview" + prev = prev:gsub(".png$", "") + texture = texture.."^"..tex..".png" + preview = preview.."^"..prev..".png" + state = state + stack:get_wear() + count = count + 1 + for _, phys in pairs(self.physics) do + local value = def.groups["physics_"..phys] or 0 + physics[phys] = physics[phys] + value + end + for _, attr in pairs(self.attributes) do + local value = def.groups["armor_"..attr] or 0 + attributes[attr] = attributes[attr] + value + end + local mat = string.match(item, "%:.+_(.+)$") + if material.name then + if material.name == mat then + material.count = material.count + 1 + end + else + material.name = mat + end + end + end + for group, level in pairs(levels) do + if level > 0 then + level = level * armor.config.level_multiplier + if material.name and material.count == #self.elements then + level = level * 1.1 + end + end + local base = self.registered_groups[group] + self.def[name].groups[group] = level + if level > base then + level = base + end + groups[group] = base - level + change[group] = groups[group] / base + end + for _, attr in pairs(self.attributes) do + local mult = attr == "heal" and self.config.heal_multiplier or 1 + self.def[name][attr] = attributes[attr] * mult + end + for _, phys in pairs(self.physics) do + self.def[name][phys] = physics[phys] + end + if use_armor_monoid then + armor_monoid.monoid:add_change(player, change, "3d_armor:armor") + else + -- Preserve immortal group (damage disabled for player) + local immortal = player:get_armor_groups().immortal + if immortal and immortal ~= 0 then + groups.immortal = 1 + end + player:set_armor_groups(groups) + end + if use_player_monoids then + player_monoids.speed:add_change(player, physics.speed, + "3d_armor:physics") + player_monoids.jump:add_change(player, physics.jump, + "3d_armor:physics") + player_monoids.gravity:add_change(player, physics.gravity, + "3d_armor:physics") + elseif use_pova_mod then + -- only add the changes, not the default 1.0 for each physics setting + pova.add_override(name, "3d_armor", { + speed = physics.speed - 1, + jump = physics.jump - 1, + gravity = physics.gravity - 1, + }) + pova.do_override(player) + else + -- Check access conflicts with other mods + if player:get_meta():get_int("player_physics_locked") == 0 then + player:set_physics_override(physics) + end + end + self.textures[name].armor = texture + self.textures[name].preview = preview + self.def[name].level = self.def[name].groups.fleshy or 0 + self.def[name].state = state + self.def[name].count = count + self:update_player_visuals(player) +end + +armor.punch = function(self, player, hitter, time_from_last_punch, tool_capabilities) + local name, armor_inv = self:get_valid_player(player, "[punch]") + if not name then + return + end + local set_state + local set_count + local state = 0 + local count = 0 + local recip = true + local default_groups = {cracky=3, snappy=3, choppy=3, crumbly=3, level=1} + local list = armor_inv:get_list("armor") + for i, stack in pairs(list) do + if stack:get_count() == 1 then + local itemname = stack:get_name() + local use = minetest.get_item_group(itemname, "armor_use") or 0 + local damage = use > 0 + local def = stack:get_definition() or {} + if type(def.on_punched) == "function" then + damage = def.on_punched(player, hitter, time_from_last_punch, + tool_capabilities) ~= false and damage == true + end + if damage == true and tool_capabilities then + local damage_groups = def.damage_groups or default_groups + local level = damage_groups.level or 0 + local groupcaps = tool_capabilities.groupcaps or {} + local uses = 0 + damage = false + for group, caps in pairs(groupcaps) do + local maxlevel = caps.maxlevel or 0 + local diff = maxlevel - level + if diff == 0 then + diff = 1 + end + if diff > 0 and caps.times then + local group_level = damage_groups[group] + if group_level then + local time = caps.times[group_level] + if time then + local dt = time_from_last_punch or 0 + if dt > time / diff then + if caps.uses then + uses = caps.uses * math.pow(3, diff) + end + damage = true + break + end + end + end + end + end + if damage == true and recip == true and hitter and + def.reciprocate_damage == true and uses > 0 then + local item = hitter:get_wielded_item() + if item and item:get_name() ~= "" then + item:add_wear(65535 / uses) + hitter:set_wielded_item(item) + end + -- reciprocate tool damage only once + recip = false + end + end + if damage == true and hitter == "fire" then + damage = minetest.get_item_group(itemname, "flammable") > 0 + end + if damage == true then + self:damage(player, i, stack, use) + set_state = self.def[name].state + set_count = self.def[name].count + end + state = state + stack:get_wear() + count = count + 1 + end + end + if set_count and set_count ~= count then + state = set_state or state + count = set_count or count + end + self.def[name].state = state + self.def[name].count = count +end + +armor.damage = function(self, player, index, stack, use) + local old_stack = ItemStack(stack) + stack:add_wear(use) + self:run_callbacks("on_damage", player, index, stack) + self:set_inventory_stack(player, index, stack) + if stack:get_count() == 0 then + self:run_callbacks("on_unequip", player, index, old_stack) + self:run_callbacks("on_destroy", player, index, old_stack) + self:set_player_armor(player) + end +end + +armor.get_player_skin = function(self, name) + if (self.skin_mod == "skins" or self.skin_mod == "simple_skins") and skins.skins[name] then + return skins.skins[name]..".png" + elseif self.skin_mod == "u_skins" and u_skins.u_skins[name] then + return u_skins.u_skins[name]..".png" + elseif self.skin_mod == "wardrobe" and wardrobe.playerSkins and wardrobe.playerSkins[name] then + return wardrobe.playerSkins[name] + end + return armor.default_skin..".png" +end + +armor.add_preview = function(self, preview) + skin_previews[preview] = true +end + +armor.get_preview = function(self, name) + local preview = string.gsub(armor:get_player_skin(name), ".png", "_preview.png") + if skin_previews[preview] then + return preview + end + return "character_preview.png" +end + +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.. + "list[detached:"..name.."_armor;armor;0,0.5;2,3;]" + if listring == true then + formspec = formspec.."listring[current_player;main]".. + "listring[detached:"..name.."_armor;armor]" + end + formspec = formspec:gsub("armor_preview", armor.textures[name].preview) + formspec = formspec:gsub("armor_level", armor.def[name].level) + for _, attr in pairs(self.attributes) do + formspec = formspec:gsub("armor_attr_"..attr, armor.def[name][attr]) + end + for group, _ in pairs(self.registered_groups) do + formspec = formspec:gsub("armor_group_"..group, + armor.def[name].groups[group]) + end + return formspec +end + +armor.get_element = function(self, item_name) + for _, element in pairs(armor.elements) do + if minetest.get_item_group(item_name, "armor_"..element) > 0 then + return element + end + end +end + +armor.serialize_inventory_list = function(self, list) + local list_table = {} + for _, stack in ipairs(list) do + table.insert(list_table, stack:to_string()) + end + return minetest.serialize(list_table) +end + +armor.deserialize_inventory_list = function(self, list_string) + local list_table = minetest.deserialize(list_string) + local list = {} + for _, stack in ipairs(list_table or {}) do + table.insert(list, ItemStack(stack)) + end + return list +end + +armor.load_armor_inventory = function(self, player) + local _, inv = self:get_valid_player(player, "[load_armor_inventory]") + if inv then + local meta = player:get_meta() + local armor_list_string = meta:get_string("3d_armor_inventory") + if armor_list_string then + inv:set_list("armor", + self:deserialize_inventory_list(armor_list_string)) + return true + end + end +end + +armor.save_armor_inventory = function(self, player) + local _, inv = self:get_valid_player(player, "[save_armor_inventory]") + if inv then + local meta = player:get_meta() + meta:set_string("3d_armor_inventory", + self:serialize_inventory_list(inv:get_list("armor"))) + end +end + +armor.update_inventory = function(self, player) + -- DEPRECATED: Legacy inventory support +end + +armor.set_inventory_stack = function(self, player, i, stack) + local _, inv = self:get_valid_player(player, "[set_inventory_stack]") + if inv then + inv:set_stack("armor", i, stack) + self:save_armor_inventory(player) + end +end + +armor.get_valid_player = function(self, player, msg) + msg = msg or "" + if not player then + minetest.log("warning", S("3d_armor: Player reference is nil @1", msg)) + return + end + local name = player:get_player_name() + if not name then + minetest.log("warning", S("3d_armor: Player name is nil @1", msg)) + return + end + local inv = minetest.get_inventory({type="detached", name=name.."_armor"}) + if not inv then + minetest.log("warning", S("3d_armor: Detached armor inventory is nil @1", msg)) + return + end + return name, inv +end + +armor.drop_armor = function(pos, stack) + local node = minetest.get_node_or_nil(pos) + if node then + local obj = minetest.add_item(pos, stack) + if obj then + obj:set_velocity({x=math.random(-1, 1), y=5, z=math.random(-1, 1)}) + end + end +end diff --git a/3d_armor/3d_armor/armor.conf.example b/3d_armor/3d_armor/armor.conf.example new file mode 100644 index 0000000..9ce34b4 --- /dev/null +++ b/3d_armor/3d_armor/armor.conf.example @@ -0,0 +1,65 @@ +-- DEPRECATED, will not be supported in future versions + +-- See README.txt for new configuration options. + +-- Armor Configuration (defaults) + +-- You can remove any unwanted armor materials from this table. +-- Note that existing armor that is removed will show up as an unknown item. +ARMOR_MATERIALS = { + 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", +} + +-- Enable fire protection (defaults true if using ethereal mod) +ARMOR_FIRE_PROTECT = false + +-- Fire protection nodes, (name, protection level, damage) +ARMOR_FIRE_NODES = { + {"default:lava_source", 5, 4}, + {"default:lava_flowing", 5, 4}, + {"fire:basic_flame", 3, 4}, + {"fire:permanent_flame", 3, 4}, + {"ethereal:crystal_spike", 2, 1}, + {"ethereal:fire_flower", 2, 1}, + {"default:torch", 1, 1}, +} + +-- Increase this if you get initialization glitches when a player first joins. +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. +ARMOR_BONES_DELAY = 1 + +-- How often player armor/wield items are updated. +ARMOR_UPDATE_TIME = 1 + +-- Drop armor when a player dies. +-- Uses bones mod if present, otherwise items are dropped around the player. +ARMOR_DROP = true + +-- Pulverise armor when a player dies, overrides ARMOR_DROP. +ARMOR_DESTROY = false + +-- You can use this to increase or decrease overall armor effectiveness, +-- eg: ARMOR_LEVEL_MULTIPLIER = 0.5 will reduce armor level by half. +ARMOR_LEVEL_MULTIPLIER = 1 + +-- You can use this to increase or decrease overall armor healing, +-- eg: ARMOR_HEAL_MULTIPLIER = 0 will disable healing altogether. +ARMOR_HEAL_MULTIPLIER = 1 + +-- You can use this to increase or decrease overall armor radiation protection, +-- eg: ARMOR_RADIATION_MULTIPLIER = 0 will completely disable radiation protection. +-- Note: patched technic mod is required +ARMOR_RADIATION_MULTIPLIER = 1 diff --git a/3d_armor/3d_armor/armor.lua b/3d_armor/3d_armor/armor.lua new file mode 100644 index 0000000..171ce03 --- /dev/null +++ b/3d_armor/3d_armor/armor.lua @@ -0,0 +1,372 @@ +-- support for i18n +local S = armor_i18n.gettext + +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, +}) + +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, +}) + +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, +}) + +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") + +if armor.materials.wood then + 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}, + }) + 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}, + }) + 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}, + }) + 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 + +if armor.materials.cactus then + 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}, + }) + 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}, + }) + 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}, + }) + 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 + +if armor.materials.steel then + 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}, + }) + 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}, + }) + 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}, + }) + 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 + +if armor.materials.bronze then + 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}, + }) + 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}, + }) + 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}, + }) + 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 + +if armor.materials.diamond then + 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}, + }) + 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}, + }) + 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}, + }) + 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 + +if armor.materials.gold then + 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}, + }) + 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}, + }) + 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}, + }) + 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 + +if armor.materials.mithril then + 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}, + }) + 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}, + }) + 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}, + }) + 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 + +if armor.materials.crystal then + 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}, + }) + 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}, + }) + 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}, + }) + 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 + +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 diff --git a/3d_armor/3d_armor/crafting_guide.txt b/3d_armor/3d_armor/crafting_guide.txt new file mode 100644 index 0000000..abd1519 --- /dev/null +++ b/3d_armor/3d_armor/crafting_guide.txt @@ -0,0 +1,79 @@ +3d_armor -- Crafting Guide +-------------------------- + +Helmets: + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | | X | ++---+---+---+ +| | | | ++---+---+---+ + +[3d_armor:helmet_wood] X = [default:wood] +[3d_armor:helmet_cactus] X = [default:cactus] +[3d_armor:helmet_steel] X = [default:steel_ingot] +[3d_armor:helmet_bronze] X = [default:bronze_ingot] +[3d_armor:helmet_diamond] X = [default:diamond] +[3d_armor:helmet_gold] X = [default:gold_ingot] +[3d_armor:helmet_mithril] X = [moreores:mithril_ingot] * +[3d_armor:helmet_crystal] X = [ethereal:crystal_ingot] ** + +Chestplates: + ++---+---+---+ +| X | | X | ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | X | X | ++---+---+---+ + +[3d_armor:chestplate_wood] X = [default:wood] +[3d_armor:chestplate_cactus] X = [default:cactus] +[3d_armor:chestplate_steel] X = [default:steel_ingot] +[3d_armor:chestplate_bronze] X = [default:bronze_ingot] +[3d_armor:chestplate_diamond] X = [default:diamond] +[3d_armor:chestplate_gold] X = [default:gold_ingot] +[3d_armor:chestplate_mithril] X = [moreores:mithril_ingot] * +[3d_armor:chestplate_crystal] X = [ethereal:crystal_ingot] ** + +Leggings: + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | | X | ++---+---+---+ +| X | | X | ++---+---+---+ + +[3d_armor:leggings_wood] X = [default:wood] +[3d_armor:leggings_cactus] X = [default:cactus] +[3d_armor:leggings_steel] X = [default:steel_ingot] +[3d_armor:leggings_bronze] X = [default:bronze_ingot] +[3d_armor:leggings_diamond] X = [default:diamond] +[3d_armor:leggings_gold] X = [default:gold_ingot] +[3d_armor:leggings_mithril] X = [moreores:mithril_ingot] * +[3d_armor:leggings_crystal] X = [ethereal:crystal_ingot] ** + +Boots: + ++---+---+---+ +| X | | X | ++---+---+---+ +| X | | X | ++---+---+---+ + +[3d_armor:boots_wood] X = [default:wood] +[3d_armor:boots_cactus] X = [default:cactus] +[3d_armor:boots_steel] X = [default:steel_ingot] +[3d_armor:boots_bronze] X = [default:bronze_ingot +[3d_armor:boots_diamond] X = [default:diamond] +[3d_armor:boots_gold] X = [default:gold_ingot] +[3d_armor:boots_mithril] X = [moreores:mithril_ingot] * +[3d_armor:boots_crystal] X = [ethereal:crystal_ingot] ** + + * Requires moreores mod by Calinou - https://forum.minetest.net/viewtopic.php?id=549 +** Requires ethereal mod by Chinchow & TenPlus1 - https://github.com/tenplus1/ethereal diff --git a/3d_armor/3d_armor/depends.txt b/3d_armor/3d_armor/depends.txt new file mode 100644 index 0000000..a33755d --- /dev/null +++ b/3d_armor/3d_armor/depends.txt @@ -0,0 +1,8 @@ +default +player_monoids? +armor_monoid? +pova? +fire? +ethereal? +bakedclay? +intllib? diff --git a/3d_armor/3d_armor/description.txt b/3d_armor/3d_armor/description.txt new file mode 100644 index 0000000..b0a9b0a --- /dev/null +++ b/3d_armor/3d_armor/description.txt @@ -0,0 +1 @@ +Adds craftable armor that is visible to other players. diff --git a/3d_armor/3d_armor/init.lua b/3d_armor/3d_armor/init.lua new file mode 100644 index 0000000..e83bc10 --- /dev/null +++ b/3d_armor/3d_armor/init.lua @@ -0,0 +1,493 @@ +local modname = minetest.get_current_modname() +local modpath = minetest.get_modpath(modname) +local worldpath = minetest.get_worldpath() +local last_punch_time = {} +local pending_players = {} +local timer = 0 + +-- support for i18n +armor_i18n = { } +armor_i18n.gettext, armor_i18n.ngettext = dofile(modpath.."/intllib.lua") + +-- local functions +local S = armor_i18n.gettext +local F = minetest.formspec_escape + +dofile(modpath.."/api.lua") + +-- integration test +if minetest.settings:get_bool("enable_3d_armor_integration_test") then + dofile(modpath.."/integration_test.lua") +end + + +-- Legacy Config Support + +local input = io.open(modpath.."/armor.conf", "r") +if input then + dofile(modpath.."/armor.conf") + input:close() +end +input = io.open(worldpath.."/armor.conf", "r") +if input then + dofile(worldpath.."/armor.conf") + input:close() +end +for name, _ in pairs(armor.config) do + local global = "ARMOR_"..name:upper() + if minetest.global_exists(global) then + armor.config[name] = _G[global] + end +end +if minetest.global_exists("ARMOR_MATERIALS") then + armor.materials = table.copy(ARMOR_MATERIALS) +end +if minetest.global_exists("ARMOR_FIRE_NODES") then + armor.fire_nodes = table.copy(ARMOR_FIRE_NODES) +end + +-- Load Configuration + +for name, config in pairs(armor.config) do + local setting = minetest.settings:get("armor_"..name) + if type(config) == "number" then + setting = tonumber(setting) + elseif type(config) == "boolean" then + setting = minetest.settings:get_bool("armor_"..name) + end + if setting ~= nil then + armor.config[name] = setting + end +end +for material, _ in pairs(armor.materials) do + local key = "material_"..material + if armor.config[key] == false then + armor.materials[material] = nil + end +end + +-- Mod Compatibility + +if minetest.get_modpath("technic") then + armor.formspec = armor.formspec.. + "label[5,2.5;"..F(S("Radiation"))..": armor_group_radiation]" + armor:register_armor_group("radiation") +end +local skin_mods = {"skins", "u_skins", "simple_skins", "wardrobe"} +for _, mod in pairs(skin_mods) do + local path = minetest.get_modpath(mod) + if path then + local dir_list = minetest.get_dir_list(path.."/textures") + for _, fn in pairs(dir_list) do + if fn:find("_preview.png$") then + armor:add_preview(fn) + end + end + armor.skin_mod = mod + 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.formspec = armor.formspec.. + "label[5,1;"..F(S("Level"))..": armor_level]".. + "label[5,1.5;"..F(S("Heal"))..": armor_attr_heal]" +if armor.config.fire_protect then + armor.formspec = armor.formspec.."label[5,2;"..F(S("Fire"))..": armor_attr_fire]" +end +armor:register_on_damage(function(player, index, stack) + local name = player:get_player_name() + local def = stack:get_definition() + if name and def and def.description and stack:get_wear() > 60100 then + minetest.chat_send_player(name, S("Your @1 is almost broken!", def.description)) + minetest.sound_play("default_tool_breaks", {to_player = name, gain = 2.0}) + end +end) +armor:register_on_destroy(function(player, index, stack) + local name = player:get_player_name() + local def = stack:get_definition() + if name and def and def.description then + minetest.chat_send_player(name, S("Your @1 got destroyed!", def.description)) + minetest.sound_play("default_tool_breaks", {to_player = name, gain = 2.0}) + end +end) + +local function validate_armor_inventory(player) + -- Workaround for detached inventory swap exploit + local _, inv = armor:get_valid_player(player, "[validate_armor_inventory]") + local pos = player:get_pos() + if not inv then + return + end + local armor_prev = {} + local attribute_meta = player:get_meta() -- I know, the function's name is weird but let it be like that. ;) + local armor_list_string = attribute_meta:get_string("3d_armor_inventory") + if armor_list_string then + local armor_list = armor:deserialize_inventory_list(armor_list_string) + for i, stack in ipairs(armor_list) do + if stack:get_count() > 0 then + armor_prev[stack:get_name()] = i + end + end + end + local elements = {} + local player_inv = player:get_inventory() + for i = 1, 6 do + local stack = inv:get_stack("armor", i) + if stack:get_count() > 0 then + local item = stack:get_name() + local element = armor:get_element(item) + if element and not elements[element] then + if armor_prev[item] then + armor_prev[item] = nil + else + -- Item was not in previous inventory + armor:run_callbacks("on_equip", player, i, stack) + end + elements[element] = true; + else + inv:remove_item("armor", stack) + minetest.item_drop(stack, player, pos) + -- The following code returns invalid items to the player's main + -- inventory but could open up the possibity for a hacked client + -- to receive items back they never really had. I am not certain + -- so remove the is_singleplayer check at your own risk :] + if minetest.is_singleplayer() and player_inv and + player_inv:room_for_item("main", stack) then + player_inv:add_item("main", stack) + end + end + end + end + for item, i in pairs(armor_prev) do + local stack = ItemStack(item) + -- Previous item is not in current inventory + armor:run_callbacks("on_unequip", player, i, stack) + end +end + +local function init_player_armor(initplayer) + 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", { + on_put = function(inv, listname, index, stack, player) + validate_armor_inventory(player) + armor:save_armor_inventory(player) + armor:set_player_armor(player) + end, + on_take = function(inv, listname, index, stack, player) + validate_armor_inventory(player) + armor:save_armor_inventory(player) + armor:set_player_armor(player) + end, + on_move = function(inv, from_list, from_index, to_list, to_index, count, player) + validate_armor_inventory(player) + armor:save_armor_inventory(player) + armor:set_player_armor(player) + end, + allow_put = function(inv, listname, index, put_stack, player) + local element = armor:get_element(put_stack:get_name()) + if not element then + return 0 + end + for i = 1, 6 do + local stack = inv:get_stack("armor", i) + local def = stack:get_definition() or {} + if def.groups and def.groups["armor_"..element] + and i ~= index then + return 0 + end + end + return 1 + end, + allow_take = function(inv, listname, index, stack, player) + return stack:get_count() + end, + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + return count + end, + }, name) + armor_inv:set_size("armor", 6) + if not armor:load_armor_inventory(initplayer) and armor.migrate_old_inventory then + local player_inv = initplayer:get_inventory() + player_inv:set_size("armor", 6) + for i=1, 6 do + local stack = player_inv:get_stack("armor", i) + armor_inv:set_stack("armor", i, stack) + end + armor:save_armor_inventory(initplayer) + player_inv:set_size("armor", 0) + end + for i=1, 6 do + local stack = armor_inv:get_stack("armor", i) + if stack:get_count() > 0 then + armor:run_callbacks("on_equip", initplayer, i, stack) + end + end + armor.def[name] = { + init_time = minetest.get_gametime(), + level = 0, + state = 0, + count = 0, + groups = {}, + } + for _, phys in pairs(armor.physics) do + armor.def[name][phys] = 1 + end + for _, attr in pairs(armor.attributes) do + armor.def[name][attr] = 0 + end + for group, _ in pairs(armor.registered_groups) do + armor.def[name].groups[group] = 0 + end + local skin = armor:get_player_skin(name) + armor.textures[name] = { + skin = skin, + armor = "3d_armor_trans.png", + wielditem = "3d_armor_trans.png", + preview = armor.default_skin.."_preview.png", + } + local texture_path = minetest.get_modpath("player_textures") + if texture_path then + local dir_list = minetest.get_dir_list(texture_path.."/textures") + for _, fn in pairs(dir_list) do + if fn == "player_"..name..".png" then + armor.textures[name].skin = fn + break + end + end + end + armor:set_player_armor(initplayer) + return true +end + +-- Armor Player Model + +default.player_register_model("3d_armor_character.b3d", { + animation_speed = 30, + textures = { + armor.default_skin..".png", + "3d_armor_trans.png", + "3d_armor_trans.png", + }, + animations = { + stand = {x=0, y=79}, + lay = {x=162, y=166}, + walk = {x=168, y=187}, + mine = {x=189, y=198}, + walk_mine = {x=200, y=219}, + sit = {x=81, y=160}, + }, +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = armor:get_valid_player(player, "[on_player_receive_fields]") + if not name then + return + end + local player_name = player:get_player_name() + for field, _ in pairs(fields) do + if string.find(field, "skins_set") then + minetest.after(0, function() + local pplayer = minetest.get_player_by_name(player_name) + if player then + local skin = armor:get_player_skin(name) + armor.textures[name].skin = skin + armor:set_player_armor(pplayer) + end + end) + end + end +end) + +minetest.register_on_joinplayer(function(player) + default.player_set_model(player, "3d_armor_character.b3d") + local player_name = player:get_player_name() + + minetest.after(0, function() + 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) + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + if name then + armor.def[name] = nil + armor.textures[name] = nil + end + pending_players[player] = nil +end) + +if armor.config.drop == true or armor.config.destroy == true then + minetest.register_on_dieplayer(function(player) + local name, armor_inv = armor:get_valid_player(player, "[on_dieplayer]") + if not name then + return + end + local drop = {} + for i=1, armor_inv:get_size("armor") do + local stack = armor_inv:get_stack("armor", i) + if stack:get_count() > 0 then + table.insert(drop, stack) + armor:run_callbacks("on_unequip", player, i, stack) + armor_inv:set_stack("armor", i, nil) + end + end + armor:save_armor_inventory(player) + armor:set_player_armor(player) + local pos = player:get_pos() + if pos and armor.config.destroy == false then + minetest.after(armor.config.bones_delay, function() + local meta = nil + local maxp = vector.add(pos, 16) + local minp = vector.subtract(pos, 16) + local bones = minetest.find_nodes_in_area(minp, maxp, {"bones:bones"}) + for _, p in pairs(bones) do + local m = minetest.get_meta(p) + if m:get_string("owner") == name then + meta = m + break + end + end + if meta then + local inv = meta:get_inventory() + for _,stack in ipairs(drop) do + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + else + armor.drop_armor(pos, stack) + end + end + else + for _,stack in ipairs(drop) do + armor.drop_armor(pos, stack) + end + end + end) + end + end) +end + +if armor.config.punch_damage == true then + minetest.register_on_punchplayer(function(player, hitter, + time_from_last_punch, tool_capabilities) + local name = player:get_player_name() + if name then + armor:punch(player, hitter, time_from_last_punch, tool_capabilities) + last_punch_time[name] = minetest.get_gametime() + end + end) +end + +minetest.register_on_player_hpchange(function(player, hp_change, reason) + if player and reason.type ~= "drown" and reason.hunger == nil + and hp_change < 0 then + local name = player:get_player_name() + if name then + local heal = armor.def[name].heal + if heal >= math.random(100) then + hp_change = 0 + end + -- check if armor damage was handled by fire or on_punchplayer + local time = last_punch_time[name] or 0 + if time == 0 or time + 1 < minetest.get_gametime() then + armor:punch(player) + end + end + end + return hp_change +end, true) + +minetest.register_globalstep(function(dtime) + timer = timer + dtime + if timer > armor.config.init_delay then + 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 + timer = 0 + end +end) + +-- Fire Protection and water breathing, added by TenPlus1. + +if armor.config.fire_protect == true then + -- override hot nodes so they do not hurt player anywhere but mod + for _, row in pairs(armor.fire_nodes) do + if minetest.registered_nodes[row[1]] then + minetest.override_item(row[1], {damage_per_second = 0}) + end + end +else + print (S("[3d_armor] Fire Nodes disabled")) +end + +if armor.config.water_protect == true or armor.config.fire_protect == true then + minetest.register_globalstep(function(dtime) + armor.timer = armor.timer + dtime + if armor.timer < armor.config.update_time then + return + end + for _,player in pairs(minetest.get_connected_players()) do + local name = player:get_player_name() + local pos = player:get_pos() + local hp = player:get_hp() + if not name or not pos or not hp then + return + end + -- water breathing + if armor.config.water_protect == true then + if armor.def[name].water > 0 and + player:get_breath() < 10 then + player:set_breath(10) + end + end + -- fire protection + if armor.config.fire_protect == true then + local fire_damage = true + pos.y = pos.y + 1.4 -- head level + local node_head = minetest.get_node(pos).name + pos.y = pos.y - 1.2 -- feet level + local node_feet = minetest.get_node(pos).name + -- is player inside a hot node? + for _, row in pairs(armor.fire_nodes) do + -- check fire protection, if not enough then get hurt + if row[1] == node_head or row[1] == node_feet then + if fire_damage == true then + armor:punch(player, "fire") + last_punch_time[name] = minetest.get_gametime() + fire_damage = false + end + if hp > 0 and armor.def[name].fire < row[2] then + hp = hp - row[3] * armor.config.update_time + player:set_hp(hp) + break + end + end + end + end + end + armor.timer = 0 + end) +end diff --git a/3d_armor/3d_armor/integration_test.lua b/3d_armor/3d_armor/integration_test.lua new file mode 100644 index 0000000..65e9dfd --- /dev/null +++ b/3d_armor/3d_armor/integration_test.lua @@ -0,0 +1,25 @@ + +minetest.log("warning", "[TEST] integration-test enabled!") + +minetest.register_on_mods_loaded(function() + minetest.after(1, function() + + local data = minetest.write_json({ success = true }, true); + local file = io.open(minetest.get_worldpath().."/integration_test.json", "w" ); + if file then + file:write(data) + file:close() + end + + file = io.open(minetest.get_worldpath().."/registered_nodes.txt", "w" ); + if file then + for name in pairs(minetest.registered_nodes) do + file:write(name .. '\n') + end + file:close() + end + + minetest.log("warning", "[TEST] integration tests done!") + minetest.request_shutdown("success") + end) +end) diff --git a/3d_armor/3d_armor/intllib.lua b/3d_armor/3d_armor/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/3d_armor/3d_armor/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/3d_armor/3d_armor/locale/es.po b/3d_armor/3d_armor/locale/es.po new file mode 100644 index 0000000..8eeaf6e --- /dev/null +++ b/3d_armor/3d_armor/locale/es.po @@ -0,0 +1,384 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-06 18:20+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player name is nil @1" +msgstr "3d_armor: El nombre del jugador es nulo @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player inventory is nil @1" +msgstr "3d_armor: El inventario del jugador es nulo @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Detached armor inventory is nil @1" +msgstr "3d_armor: La armadura desconectada es nula @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player reference is nil @1" +msgstr "3d_armor: La referencia del jugador es nula @1" + +#: ../3d_armor/armor.lua +msgid "Admin Helmet" +msgstr "Casco de admin" + +#: ../3d_armor/armor.lua +msgid "Admin Chestplate" +msgstr "Peto de admin" + +#: ../3d_armor/armor.lua +msgid "Admin Leggings" +msgstr "Polainas de admin" + +#: ../3d_armor/armor.lua +msgid "Admin Boots" +msgstr "Botas de admin" + +#: ../3d_armor/armor.lua +msgid "Wood Helmet" +msgstr "Casco de madera" + +#: ../3d_armor/armor.lua +msgid "Wood Chestplate" +msgstr "Peto de madera" + +#: ../3d_armor/armor.lua +msgid "Wood Leggings" +msgstr "Polainas de madera" + +#: ../3d_armor/armor.lua +msgid "Wood Boots" +msgstr "Botas de madera" + +#: ../3d_armor/armor.lua +msgid "Cactus Helmet" +msgstr "Casco de cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Chestplate" +msgstr "Peto de cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Leggings" +msgstr "Polainas de cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Boots" +msgstr "Botas de cactus" + +#: ../3d_armor/armor.lua +msgid "Steel Helmet" +msgstr "Casco de acero" + +#: ../3d_armor/armor.lua +msgid "Steel Chestplate" +msgstr "Peto de acero" + +#: ../3d_armor/armor.lua +msgid "Steel Leggings" +msgstr "Polainas de acero" + +#: ../3d_armor/armor.lua +msgid "Steel Boots" +msgstr "Botas de acero" + +#: ../3d_armor/armor.lua +msgid "Bronze Helmet" +msgstr "Casco de bronce" + +#: ../3d_armor/armor.lua +msgid "Bronze Chestplate" +msgstr "Peto de bronce" + +#: ../3d_armor/armor.lua +msgid "Bronze Leggings" +msgstr "Polainas de bronce" + +#: ../3d_armor/armor.lua +msgid "Bronze Boots" +msgstr "Botas de bronce" + +#: ../3d_armor/armor.lua +msgid "Diamond Helmet" +msgstr "Casco de diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Chestplate" +msgstr "Peto de diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Leggings" +msgstr "Polainas de diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Boots" +msgstr "Botas de diamante" + +#: ../3d_armor/armor.lua +msgid "Gold Helmet" +msgstr "Casco de oro" + +#: ../3d_armor/armor.lua +msgid "Gold Chestplate" +msgstr "Peto de oro" + +#: ../3d_armor/armor.lua +msgid "Gold Leggings" +msgstr "Polainas de oro" + +#: ../3d_armor/armor.lua +msgid "Gold Boots" +msgstr "Botas de oro" + +#: ../3d_armor/armor.lua +msgid "Mithril Helmet" +msgstr "Casco de mitrilo" + +#: ../3d_armor/armor.lua +msgid "Mithril Chestplate" +msgstr "Peto de mitrilo" + +#: ../3d_armor/armor.lua +msgid "Mithril Leggings" +msgstr "Polainas de mitrilo" + +#: ../3d_armor/armor.lua +msgid "Mithril Boots" +msgstr "Botas de mitrilo" + +#: ../3d_armor/armor.lua +msgid "Crystal Helmet" +msgstr "Casco de cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Chestplate" +msgstr "Peto de cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Leggings" +msgstr "Polainas de cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Boots" +msgstr "Botas de cristal" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Radiation" +msgstr "Radiación" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Level" +msgstr "Nivel" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Heal" +msgstr "Salud" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Fire" +msgstr "Fuego" + +#: ../3d_armor/init.lua +msgid "Your @1 got destroyed!" +msgstr "¡Tu @1 fue destruído!" + +#: ../3d_armor/init.lua +msgid "3d_armor: Failed to initialize player" +msgstr "3d_armor: Fallo en la inicialización del jugador" + +#: ../3d_armor/init.lua +msgid "[3d_armor] Fire Nodes disabled" +msgstr "[3d_armor] Nodos de fuego desabilitados" + +#: ../3d_armor_ip/init.lua +msgid "3d_armor_ip: Mod loaded but unused." +msgstr "3d_armor_ip: Mod cargado, pero sin ser usado." + +#: ../3d_armor_ip/init.lua +msgid "Back" +msgstr "Volver" + +#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua +msgid "Armor" +msgstr "Armadura" + +#: ../3d_armor_sfinv/init.lua +msgid "3d_armor_sfinv: Mod loaded but unused." +msgstr "3d_armor_sfinv: Mod cargado, pero sin ser usado." + +#: ../3d_armor_stand/init.lua +msgid "Armor stand top" +msgstr "Parte arriba maniquí armadura" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand" +msgstr "Maniquí para armadura" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand" +msgstr "Maniquí para armadura" + +#: ../3d_armor_stand/init.lua +msgid "Locked Armor stand" +msgstr "Maniquí para armadura (bloqueado)" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand (owned by @1)" +msgstr "Maniquí para armadura (propiedad de @1)" + +#: ../3d_armor_ui/init.lua +msgid "3d_armor_ui: Mod loaded but unused." +msgstr "3d_armor_ui: Mod cargado, pero sin ser usado." + +#: ../3d_armor_ui/init.lua +msgid "3d Armor" +msgstr "Armadura 3d" + +#: ../3d_armor_ui/init.lua +msgid "Armor not initialized!" +msgstr "¡Armadura no inicializada!" + +#: ../hazmat_suit/init.lua +msgid "hazmat_suit: Mod loaded but unused." +msgstr "hazmat_suit: Mod cargado, pero sin ser usado." + +#: ../hazmat_suit/init.lua +msgid "Hazmat Helmet" +msgstr "Casco de hazmat" + +#: ../hazmat_suit/init.lua +msgid "Hazmat Chestplate" +msgstr "Peto de hazmat" + +#: ../hazmat_suit/init.lua +msgid "Hazmat Sleeve" +msgstr "Manga de hazmat" + +#: ../hazmat_suit/init.lua +msgid "Hazmat Leggins" +msgstr "Polainas de hazmat" + +#: ../hazmat_suit/init.lua +msgid "Hazmat Boots" +msgstr "Botas de hazmat" + +#: ../hazmat_suit/init.lua +msgid "Hazmat Suit" +msgstr "Traje de hazmat" + +#: ../shields/init.lua +msgid "Admin Shield" +msgstr "Escudo de admin" + +#: ../shields/init.lua +msgid "Wooden Shield" +msgstr "Escudo de madera" + +#: ../shields/init.lua +msgid "Enhanced Wood Shield" +msgstr "Escudo de madera mejorado" + +#: ../shields/init.lua +msgid "Cactus Shield" +msgstr "Escudo de cactus" + +#: ../shields/init.lua +msgid "Enhanced Cactus Shield" +msgstr "Escudo de cactus mejorado" + +#: ../shields/init.lua +msgid "Steel Shield" +msgstr "Escudo de acero" + +#: ../shields/init.lua +msgid "Bronze Shield" +msgstr "Escudo de bronce" + +#: ../shields/init.lua +msgid "Diamond Shield" +msgstr "Escudo de diamante" + +#: ../shields/init.lua +msgid "Gold Shield" +msgstr "Escudo de oro" + +#: ../shields/init.lua +msgid "Mithril Shield" +msgstr "Escudo de mitrilo" + +#: ../shields/init.lua +msgid "Crystal Shield" +msgstr "Escudo de cristal" + +#: ../technic_armor/init.lua +msgid "technic_armor: Mod loaded but unused." +msgstr "technic_armor: Mod cargado, pero no usado." + +#: ../technic_armor/init.lua +msgid "Lead" +msgstr "Plomo" + +#: ../technic_armor/init.lua +msgid "Brass" +msgstr "Latón" + +#: ../technic_armor/init.lua +msgid "Cast Iron" +msgstr "Hierro fundido" + +#: ../technic_armor/init.lua +msgid "Carbon Steel" +msgstr "Acero carbono" + +#: ../technic_armor/init.lua +msgid "Stainless Steel" +msgstr "Acero inoxidable" + +#: ../technic_armor/init.lua +msgid "Tin" +msgstr "Estaño" + +#: ../technic_armor/init.lua +msgid "Silver" +msgstr "Plata" + +#: ../technic_armor/init.lua +msgid "Helmet" +msgstr "Casco" + +#: ../technic_armor/init.lua +msgid "Chestplate" +msgstr "Peto" + +#: ../technic_armor/init.lua +msgid "Leggins" +msgstr "Polainas" + +#: ../technic_armor/init.lua +msgid "Boots" +msgstr "Botas" + +#: ../technic_armor/init.lua +msgid "Shield" +msgstr "Escudo" + +#. Translators: @1 stands for material and @2 for part of the armor, so that you could use a conjunction if in your language part name comes first then material (e.g. in french 'Silver Boots' is translated in 'Bottes en argent' by using '@2 en @1' as translated string) +#: ../technic_armor/init.lua +msgid "@1 @2" +msgstr "@2 de @1" diff --git a/3d_armor/3d_armor/locale/fr.po b/3d_armor/3d_armor/locale/fr.po new file mode 100644 index 0000000..f2d258f --- /dev/null +++ b/3d_armor/3d_armor/locale/fr.po @@ -0,0 +1,295 @@ +# French translation for 3D ARMOR MOD +# Copyright (C) 2018 by Stuart Jones +# This file is distributed under the same license as the 3D ARMOR MOD package. +# fat115 , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-23 21:24+0200\n" +"PO-Revision-Date: 2018-07-23 21:30+0200\n" +"Last-Translator: fat115 \n" +"Language-Team: \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.12\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player reference is nil @1" +msgstr "3d_armor : Référence au joueur non trouvée @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player name is nil @1" +msgstr "3d_armor : Nom du joueur non trouvé @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Detached armor inventory is nil @1" +msgstr "3d_armor : Inventaire détaché pour l'armure non trouvé @1" + +#: ../3d_armor/armor.lua +msgid "Admin Helmet" +msgstr "Casque d'admin" + +#: ../3d_armor/armor.lua +msgid "Admin Chestplate" +msgstr "Cuirasse d'admin" + +#: ../3d_armor/armor.lua +msgid "Admin Leggings" +msgstr "Jambières d'admin" + +#: ../3d_armor/armor.lua +msgid "Admin Boots" +msgstr "Bottes d'admin" + +#: ../3d_armor/armor.lua +msgid "Wood Helmet" +msgstr "Casque en bois" + +#: ../3d_armor/armor.lua +msgid "Wood Chestplate" +msgstr "Cuirasse en bois" + +#: ../3d_armor/armor.lua +msgid "Wood Leggings" +msgstr "Jambières en bois" + +#: ../3d_armor/armor.lua +msgid "Wood Boots" +msgstr "Bottes en bois" + +#: ../3d_armor/armor.lua +msgid "Cactus Helmet" +msgstr "Casque en cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Chestplate" +msgstr "Cuirasse en cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Leggings" +msgstr "Jambières en cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Boots" +msgstr "Bottes en cactus" + +#: ../3d_armor/armor.lua +msgid "Steel Helmet" +msgstr "Casque en acier" + +#: ../3d_armor/armor.lua +msgid "Steel Chestplate" +msgstr " = Cuirasse en acier" + +#: ../3d_armor/armor.lua +msgid "Steel Leggings" +msgstr "Jambières en acier" + +#: ../3d_armor/armor.lua +msgid "Steel Boots" +msgstr "Bottes en acier" + +#: ../3d_armor/armor.lua +msgid "Bronze Helmet" +msgstr "Casque en bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Chestplate" +msgstr "Cuirasse en bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Leggings" +msgstr "Jambières en bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Boots" +msgstr "Bottes en bronze" + +#: ../3d_armor/armor.lua +msgid "Diamond Helmet" +msgstr "Casque en diamant" + +#: ../3d_armor/armor.lua +msgid "Diamond Chestplate" +msgstr "Cuirasse en diamant" + +#: ../3d_armor/armor.lua +msgid "Diamond Leggings" +msgstr "Jambières en diamant" + +#: ../3d_armor/armor.lua +msgid "Diamond Boots" +msgstr "Bottes en diamant" + +#: ../3d_armor/armor.lua +msgid "Gold Helmet" +msgstr "Casque en or" + +#: ../3d_armor/armor.lua +msgid "Gold Chestplate" +msgstr "Cuirasse en or" + +#: ../3d_armor/armor.lua +msgid "Gold Leggings" +msgstr "Jambières en or" + +#: ../3d_armor/armor.lua +msgid "Gold Boots" +msgstr "Bottes en or" + +#: ../3d_armor/armor.lua +msgid "Mithril Helmet" +msgstr "Casque en mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Chestplate" +msgstr "Cuirasse en mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Leggings" +msgstr "Jambières en mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Boots" +msgstr "Bottes en mithril" + +#: ../3d_armor/armor.lua +msgid "Crystal Helmet" +msgstr "Casque en cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Chestplate" +msgstr "Cuirasse en cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Leggings" +msgstr "Jambières en cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Boots" +msgstr "Bottes en cristal" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Radiation" +msgstr "Radiation" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Level" +msgstr "Niveau" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Heal" +msgstr "Soins" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Fire" +msgstr "Fire" + +#: ../3d_armor/init.lua +msgid "Your @1 got destroyed!" +msgstr "Une partie de votre armure a été détruite : @1 !" + +#: ../3d_armor/init.lua +msgid "3d_armor: Failed to initialize player" +msgstr "3d_armor : Impossible d'initialiser le joueur" + +#: ../3d_armor/init.lua +msgid "[3d_armor] Fire Nodes disabled" +msgstr "[3d_armor] Noeuds de type feu désactivés" + +#: ../3d_armor_ip/init.lua +msgid "3d_armor_ip: Mod loaded but unused." +msgstr "3d_armor_ip : Mod chargé mais inutilisé." + +#: ../3d_armor_ip/init.lua +msgid "Back" +msgstr "Retour" + +#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua +msgid "Armor" +msgstr "Armure" + +#: ../3d_armor_sfinv/init.lua +msgid "3d_armor_sfinv: Mod loaded but unused." +msgstr "3d_armor_sfinv : Mod chargé mais inutilisé." + +#: ../3d_armor_stand/init.lua +msgid "Armor stand top" +msgstr "Haut de support d'armure" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand" +msgstr "Support d'armure" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand" +msgstr "Support d'armure" + +#: ../3d_armor_stand/init.lua +msgid "Locked Armor stand" +msgstr "Support d'armure verrouillé" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand (owned by @1)" +msgstr "Support d'armure (propriété de @1)" + +#: ../3d_armor_ui/init.lua +msgid "3d_armor_ui: Mod loaded but unused." +msgstr "3d_armor_ui : Mod chargé mais inutilisé." + +#: ../3d_armor_ui/init.lua +msgid "3d Armor" +msgstr "Armure 3d" + +#: ../3d_armor_ui/init.lua +msgid "Armor not initialized!" +msgstr "Armure non initialisée !" + +#: ../shields/init.lua +msgid "Admin Shield" +msgstr "Bouclier d'admin" + +#: ../shields/init.lua +msgid "Wooden Shield" +msgstr "Bouclier en bois" + +#: ../shields/init.lua +msgid "Enhanced Wood Shield" +msgstr "Bouclier en bois amélioré" + +#: ../shields/init.lua +msgid "Cactus Shield" +msgstr "Bouclier en cactus" + +#: ../shields/init.lua +msgid "Enhanced Cactus Shield" +msgstr "Bouclier en cactus amélioré" + +#: ../shields/init.lua +msgid "Steel Shield" +msgstr "Bouclier en acier" + +#: ../shields/init.lua +msgid "Bronze Shield" +msgstr "Bouclier en bronze" + +#: ../shields/init.lua +msgid "Diamond Shield" +msgstr "Bouclier en diamant" + +#: ../shields/init.lua +msgid "Gold Shield" +msgstr "Bouclier en or" + +#: ../shields/init.lua +msgid "Mithril Shield" +msgstr "Bouclier en mithril" + +#: ../shields/init.lua +msgid "Crystal Shield" +msgstr "Bouclier en cristal" diff --git a/3d_armor/3d_armor/locale/it.po b/3d_armor/3d_armor/locale/it.po new file mode 100644 index 0000000..5d6f46b --- /dev/null +++ b/3d_armor/3d_armor/locale/it.po @@ -0,0 +1,295 @@ +# Italian translation for 3D ARMOR MOD +# Copyright (C) 2018 by Stuart Jones +# This file is distributed under the same license as the 3D ARMOR MOD package. +# Hamlet , 2017. +# +msgid "" +msgstr "" +"Project-Id-Version: Italian localization file for the 3D Armor module\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-23 21:24+0200\n" +"PO-Revision-Date: 2018-07-23 21:30+0200\n" +"Last-Translator: H4mlet \n" +"Language-Team: ITALIANO\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Poedit 1.6.10\n" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player reference is nil @1" +msgstr "3d_armor: Il riferimento alla/al giocatrice/tore è nullo @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player name is nil @1" +msgstr "3d_armor: Il nome della/del gicatrice/tore è nullo @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Detached armor inventory is nil @1" +msgstr "3d_armor: L'inventario staccato dell'armatura è nullo @1" + +#: ../3d_armor/armor.lua +msgid "Admin Helmet" +msgstr "Elmo dell'amministratrice/tore" + +#: ../3d_armor/armor.lua +msgid "Admin Chestplate" +msgstr "Corazza dell'amministratrice/tore" + +#: ../3d_armor/armor.lua +msgid "Admin Leggings" +msgstr "Gambali dell'amministratrice/tore" + +#: ../3d_armor/armor.lua +msgid "Admin Boots" +msgstr "Stivali dell'amministratrice/tore" + +#: ../3d_armor/armor.lua +msgid "Wood Helmet" +msgstr "Elmo di legno" + +#: ../3d_armor/armor.lua +msgid "Wood Chestplate" +msgstr "Corazza di legno" + +#: ../3d_armor/armor.lua +msgid "Wood Leggings" +msgstr "Gambali di legno" + +#: ../3d_armor/armor.lua +msgid "Wood Boots" +msgstr "Stivali di legno" + +#: ../3d_armor/armor.lua +msgid "Cactus Helmet" +msgstr "Elmo di cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Chestplate" +msgstr "Corazza di cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Leggings" +msgstr "Gambali di cactus" + +#: ../3d_armor/armor.lua +msgid "Cactus Boots" +msgstr "Stivali di cactus" + +#: ../3d_armor/armor.lua +msgid "Steel Helmet" +msgstr "Elmo di acciaio" + +#: ../3d_armor/armor.lua +msgid "Steel Chestplate" +msgstr "Corazza di acciaio" + +#: ../3d_armor/armor.lua +msgid "Steel Leggings" +msgstr "Gambali di acciaio" + +#: ../3d_armor/armor.lua +msgid "Steel Boots" +msgstr "Stivali di acciaio" + +#: ../3d_armor/armor.lua +msgid "Bronze Helmet" +msgstr "Elmo di bronzo" + +#: ../3d_armor/armor.lua +msgid "Bronze Chestplate" +msgstr "Corazza di bronzo" + +#: ../3d_armor/armor.lua +msgid "Bronze Leggings" +msgstr "Gambali di bronzo" + +#: ../3d_armor/armor.lua +msgid "Bronze Boots" +msgstr "Stivali di bronzo" + +#: ../3d_armor/armor.lua +msgid "Diamond Helmet" +msgstr "Elmo di diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Chestplate" +msgstr "Corazza di diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Leggings" +msgstr "Gambali di diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Boots" +msgstr "Stivali di diamante" + +#: ../3d_armor/armor.lua +msgid "Gold Helmet" +msgstr "Elmo d'oro" + +#: ../3d_armor/armor.lua +msgid "Gold Chestplate" +msgstr "Corazza d'oro" + +#: ../3d_armor/armor.lua +msgid "Gold Leggings" +msgstr "Gambali d'oro" + +#: ../3d_armor/armor.lua +msgid "Gold Boots" +msgstr "Stivali d'oro" + +#: ../3d_armor/armor.lua +msgid "Mithril Helmet" +msgstr "Elmo di mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Chestplate" +msgstr "Corazza di mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Leggings" +msgstr "Gambali di mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Boots" +msgstr "Stivali di mithril" + +#: ../3d_armor/armor.lua +msgid "Crystal Helmet" +msgstr "Elmo di cristallo" + +#: ../3d_armor/armor.lua +msgid "Crystal Chestplate" +msgstr "Corazza di cristallo" + +#: ../3d_armor/armor.lua +msgid "Crystal Leggings" +msgstr "Gambali di cristallo" + +#: ../3d_armor/armor.lua +msgid "Crystal Boots" +msgstr "Stivali di cristallo" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Radiation" +msgstr "Radiazione" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Level" +msgstr "Livello" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Heal" +msgstr "Guarigione" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Fire" +msgstr "Fuoco" + +#: ../3d_armor/init.lua +msgid "Your @1 got destroyed!" +msgstr "Il/i vostro/i @1 è/sono stato/i distrutto/i!" + +#: ../3d_armor/init.lua +msgid "3d_armor: Failed to initialize player" +msgstr "3d_armor: Inizializzazione della/del giocatrice/tore fallita" + +#: ../3d_armor/init.lua +msgid "[3d_armor] Fire Nodes disabled" +msgstr "[3d_armor] Nodi fuoco disabilitati" + +#: ../3d_armor_ip/init.lua +msgid "3d_armor_ip: Mod loaded but unused." +msgstr "3d_armor_ip: Mod caricato ma inutilizzato." + +#: ../3d_armor_ip/init.lua +msgid "Back" +msgstr "Indietro" + +#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua +msgid "Armor" +msgstr "Armatura" + +#: ../3d_armor_sfinv/init.lua +msgid "3d_armor_sfinv: Mod loaded but unused." +msgstr "3d_armor_sfinv: Mod caricato ma inutilizzato." + +#: ../3d_armor_stand/init.lua +msgid "Armor stand top" +msgstr "Parte superiore del supporto per armatura" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand" +msgstr "Supporto per armatura" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand" +msgstr "Supporto per armatura" + +#: ../3d_armor_stand/init.lua +msgid "Locked Armor stand" +msgstr "Supporto per armatura chiuso a chiave" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand (owned by @1)" +msgstr "Supporto per armatura (di proprietà di @1)" + +#: ../3d_armor_ui/init.lua +msgid "3d_armor_ui: Mod loaded but unused." +msgstr "3d_armor_ui: Mod caricato ma inutilizzato." + +#: ../3d_armor_ui/init.lua +msgid "3d Armor" +msgstr "Armatura 3D" + +#: ../3d_armor_ui/init.lua +msgid "Armor not initialized!" +msgstr "Armatura non inizializzata!" + +#: ../shields/init.lua +msgid "Admin Shield" +msgstr "Scudo dell'amministratrice/tore" + +#: ../shields/init.lua +msgid "Wooden Shield" +msgstr "Scudo di legno" + +#: ../shields/init.lua +msgid "Enhanced Wood Shield" +msgstr "Scudo di legno migliorato" + +#: ../shields/init.lua +msgid "Cactus Shield" +msgstr "Scudo di cactus" + +#: ../shields/init.lua +msgid "Enhanced Cactus Shield" +msgstr "Scudo di cactus migliorato" + +#: ../shields/init.lua +msgid "Steel Shield" +msgstr "Scudo di acciaio" + +#: ../shields/init.lua +msgid "Bronze Shield" +msgstr "Scudo di bronzo" + +#: ../shields/init.lua +msgid "Diamond Shield" +msgstr "Scudo di diamante" + +#: ../shields/init.lua +msgid "Gold Shield" +msgstr "Scudo d'oro" + +#: ../shields/init.lua +msgid "Mithril Shield" +msgstr "Scudo di mithril" + +#: ../shields/init.lua +msgid "Crystal Shield" +msgstr "Scudo di cristallo" diff --git a/3d_armor/3d_armor/locale/ms.po b/3d_armor/3d_armor/locale/ms.po new file mode 100644 index 0000000..518e438 --- /dev/null +++ b/3d_armor/3d_armor/locale/ms.po @@ -0,0 +1,296 @@ +# Malay translation for 3D ARMOR MOD +# Copyright (C) 2018 by Stuart Jones +# This file is distributed under the same license as the 3D ARMOR MOD package. +# MuhdNurHidayat (MNH48) , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: \n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-23 21:21+0200\n" +"PO-Revision-Date: 2018-07-23 21:30+0200\n" +"Last-Translator: MuhdNurHidayat (MNH48) \n" +"Language-Team: \n" +"Language: ms\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player reference is nil @1" +msgstr "3d_armor: Rujukan pemain tiada nilai @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player name is nil @1" +msgstr "3d_armor: Nama pemain tiada nilai @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Detached armor inventory is nil @1" +msgstr "3d_armor: Inventori perisai terpisah tiada nilai @1" + +#: ../3d_armor/armor.lua +msgid "Admin Helmet" +msgstr "Helmet Pentadbir" + +#: ../3d_armor/armor.lua +msgid "Admin Chestplate" +msgstr "Perisai Dada Pentadbir" + +#: ../3d_armor/armor.lua +msgid "Admin Leggings" +msgstr "Perisai Kaki Pentadbir" + +#: ../3d_armor/armor.lua +msgid "Admin Boots" +msgstr "But Pentadbir" + +#: ../3d_armor/armor.lua +msgid "Wood Helmet" +msgstr "Helmet Kayu" + +#: ../3d_armor/armor.lua +msgid "Wood Chestplate" +msgstr "Perisai Dada Kayu" + +#: ../3d_armor/armor.lua +msgid "Wood Leggings" +msgstr "Perisai Kaki Kayu" + +#: ../3d_armor/armor.lua +msgid "Wood Boots" +msgstr "But Kayu" + +#: ../3d_armor/armor.lua +msgid "Cactus Helmet" +msgstr "Helmet Kaktus" + +#: ../3d_armor/armor.lua +msgid "Cactus Chestplate" +msgstr "Perisai Dada Kaktus" + +#: ../3d_armor/armor.lua +msgid "Cactus Leggings" +msgstr "Perisai Kaki Kaktus" + +#: ../3d_armor/armor.lua +msgid "Cactus Boots" +msgstr "But Kaktus" + +#: ../3d_armor/armor.lua +msgid "Steel Helmet" +msgstr "Helmet Keluli" + +#: ../3d_armor/armor.lua +msgid "Steel Chestplate" +msgstr "Perisai Dada Keluli" + +#: ../3d_armor/armor.lua +msgid "Steel Leggings" +msgstr "Perisai Kaki Keluli" + +#: ../3d_armor/armor.lua +msgid "Steel Boots" +msgstr "But Keluli" + +#: ../3d_armor/armor.lua +msgid "Bronze Helmet" +msgstr "Helmet Gangsa" + +#: ../3d_armor/armor.lua +msgid "Bronze Chestplate" +msgstr "Perisai Dada Gangsa" + +#: ../3d_armor/armor.lua +msgid "Bronze Leggings" +msgstr "Perisai Kaki Gangsa" + +#: ../3d_armor/armor.lua +msgid "Bronze Boots" +msgstr "But Gangsa" + +# 'Diamond' should be translated as 'intan' because the more common word 'berlian' is only specifically used for the gemstone diamond. +#: ../3d_armor/armor.lua +msgid "Diamond Helmet" +msgstr "Helmet Intan" + +#: ../3d_armor/armor.lua +msgid "Diamond Chestplate" +msgstr "Perisai Dada Intan" + +#: ../3d_armor/armor.lua +msgid "Diamond Leggings" +msgstr "Perisai Kaki Intan" + +#: ../3d_armor/armor.lua +msgid "Diamond Boots" +msgstr "But Intan" + +#: ../3d_armor/armor.lua +msgid "Gold Helmet" +msgstr "Helmet Emas" + +#: ../3d_armor/armor.lua +msgid "Gold Chestplate" +msgstr "Perisai Dada Emas" + +#: ../3d_armor/armor.lua +msgid "Gold Leggings" +msgstr "Perisai Kaki Emas" + +#: ../3d_armor/armor.lua +msgid "Gold Boots" +msgstr "But Emas" + +#: ../3d_armor/armor.lua +msgid "Mithril Helmet" +msgstr "Helmet Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Chestplate" +msgstr "Perisai Dada Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Leggings" +msgstr "Perisai Kaki Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Boots" +msgstr "But Mithril" + +#: ../3d_armor/armor.lua +msgid "Crystal Helmet" +msgstr "Helmet Kristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Chestplate" +msgstr "Perisai Dada Kristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Leggings" +msgstr "Perisai Kaki Kristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Boots" +msgstr "But Kristal" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Radiation" +msgstr "Radiasi" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Level" +msgstr "Tahap" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Heal" +msgstr "Pulih" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Fire" +msgstr "Api" + +#: ../3d_armor/init.lua +msgid "Your @1 got destroyed!" +msgstr "@1 anda telah musnah!" + +#: ../3d_armor/init.lua +msgid "3d_armor: Failed to initialize player" +msgstr "3d_armor: Gagal mengasalkan pemain" + +#: ../3d_armor/init.lua +msgid "[3d_armor] Fire Nodes disabled" +msgstr "[3d_armor] Nod-nod Api dilumpuhkan" + +#: ../3d_armor_ip/init.lua +msgid "3d_armor_ip: Mod loaded but unused." +msgstr "3d_armor_ip: Mods dimuatkan tetapi tidak digunakan." + +#: ../3d_armor_ip/init.lua +msgid "Back" +msgstr "Kembali" + +#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua +msgid "Armor" +msgstr "Perisai" + +#: ../3d_armor_sfinv/init.lua +msgid "3d_armor_sfinv: Mod loaded but unused." +msgstr "3d_armor_sfinv: Mods dimuatkan tetapi tidak digunakan." + +#: ../3d_armor_stand/init.lua +msgid "Armor stand top" +msgstr "Bhg atas dirian perisai" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand" +msgstr "Dirian perisai" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand" +msgstr "Dirian Perisai" + +#: ../3d_armor_stand/init.lua +msgid "Locked Armor stand" +msgstr "Dirian perisai Berkunci" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand (owned by @1)" +msgstr "Dirian Perisai (milik @1)" + +#: ../3d_armor_ui/init.lua +msgid "3d_armor_ui: Mod loaded but unused." +msgstr "3d_armor_ui: Mods dimuatkan tetapi tidak digunakan." + +#: ../3d_armor_ui/init.lua +msgid "3d Armor" +msgstr "Perisai 3d" + +#: ../3d_armor_ui/init.lua +msgid "Armor not initialized!" +msgstr "Perisai tidak diasalkan!" + +#: ../shields/init.lua +msgid "Admin Shield" +msgstr "Perisai Pegang Pentadbir" + +#: ../shields/init.lua +msgid "Wooden Shield" +msgstr "Perisai Pegang Kayu" + +#: ../shields/init.lua +msgid "Enhanced Wood Shield" +msgstr "Perisai Pegang Kayu Kukuh" + +#: ../shields/init.lua +msgid "Cactus Shield" +msgstr "Perisai Pegang Kaktus" + +#: ../shields/init.lua +msgid "Enhanced Cactus Shield" +msgstr "Perisai Pegang Kaktus Kukuh" + +#: ../shields/init.lua +msgid "Steel Shield" +msgstr "Perisai Pegang Keluli" + +#: ../shields/init.lua +msgid "Bronze Shield" +msgstr "Perisai Pegang Gangsa" + +#: ../shields/init.lua +msgid "Diamond Shield" +msgstr "Perisai Pegang Intan" + +#: ../shields/init.lua +msgid "Gold Shield" +msgstr "Perisai Pegang Emas" + +#: ../shields/init.lua +msgid "Mithril Shield" +msgstr "Perisai Pegang Mithril" + +#: ../shields/init.lua +msgid "Crystal Shield" +msgstr "Perisai Pegang Kristal" diff --git a/3d_armor/3d_armor/locale/pt.po b/3d_armor/3d_armor/locale/pt.po new file mode 100644 index 0000000..0166637 --- /dev/null +++ b/3d_armor/3d_armor/locale/pt.po @@ -0,0 +1,295 @@ +# LANGUAGE translation for 3D ARMOR MOD +# Copyright (C) 2018 by Stuart Jones +# This file is distributed under the same license as the 3D ARMOR MOD package. +# BrunoMine , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: 3d_armor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-23 21:24+0200\n" +"PO-Revision-Date: 2018-11-08 13:12-0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: BrunoMine \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: pt\n" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player reference is nil @1" +msgstr "3d_armor: Referência Jogador é nula @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player name is nil @1" +msgstr "3d_armor: Nome de jogador é nulo @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Detached armor inventory is nil @1" +msgstr "3d_armor: Inventario avulso de armadura é nulo @1" + +#: ../3d_armor/armor.lua +msgid "Admin Helmet" +msgstr "Capacete de Administrador" + +#: ../3d_armor/armor.lua +msgid "Admin Chestplate" +msgstr "Peitoral de Administrador" + +#: ../3d_armor/armor.lua +msgid "Admin Leggings" +msgstr "Calças de Administrador" + +#: ../3d_armor/armor.lua +msgid "Admin Boots" +msgstr "Botas de Administrador" + +#: ../3d_armor/armor.lua +msgid "Wood Helmet" +msgstr "Capacete de Madeira" + +#: ../3d_armor/armor.lua +msgid "Wood Chestplate" +msgstr "Peitoral de Madeira" + +#: ../3d_armor/armor.lua +msgid "Wood Leggings" +msgstr "Calças de Madeira" + +#: ../3d_armor/armor.lua +msgid "Wood Boots" +msgstr "Botas de Madeira" + +#: ../3d_armor/armor.lua +msgid "Cactus Helmet" +msgstr "Capacete de Cacto" + +#: ../3d_armor/armor.lua +msgid "Cactus Chestplate" +msgstr "Peitoral de Cacto" + +#: ../3d_armor/armor.lua +msgid "Cactus Leggings" +msgstr "Calças de Cacto" + +#: ../3d_armor/armor.lua +msgid "Cactus Boots" +msgstr "Botas de Madeira" + +#: ../3d_armor/armor.lua +msgid "Steel Helmet" +msgstr "Capacete de Aço" + +#: ../3d_armor/armor.lua +msgid "Steel Chestplate" +msgstr "Peitoral de Aço" + +#: ../3d_armor/armor.lua +msgid "Steel Leggings" +msgstr "Calças de Aço" + +#: ../3d_armor/armor.lua +msgid "Steel Boots" +msgstr "Botas de Aço" + +#: ../3d_armor/armor.lua +msgid "Bronze Helmet" +msgstr "Capacete de Bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Chestplate" +msgstr "Peitoral de Bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Leggings" +msgstr "Calças de Bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Boots" +msgstr "Botas de Bronze" + +#: ../3d_armor/armor.lua +msgid "Diamond Helmet" +msgstr "Capacete de Diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Chestplate" +msgstr "Peitoral de Diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Leggings" +msgstr "Calças de Diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Boots" +msgstr "Botas de Diamante" + +#: ../3d_armor/armor.lua +msgid "Gold Helmet" +msgstr "Capacete de Ouro" + +#: ../3d_armor/armor.lua +msgid "Gold Chestplate" +msgstr "Peitoral de Ouro" + +#: ../3d_armor/armor.lua +msgid "Gold Leggings" +msgstr "Calças de Ouro" + +#: ../3d_armor/armor.lua +msgid "Gold Boots" +msgstr "Botas de Ouro" + +#: ../3d_armor/armor.lua +msgid "Mithril Helmet" +msgstr "Capacete de Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Chestplate" +msgstr "Peitoral de Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Leggings" +msgstr "Calças de Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Boots" +msgstr "Botas de Mithril" + +#: ../3d_armor/armor.lua +msgid "Crystal Helmet" +msgstr "Capacete de Cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Chestplate" +msgstr "Peitoral de Cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Leggings" +msgstr "Calças de Cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Boots" +msgstr "Botas de Cristal" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Radiation" +msgstr "Radiação" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Level" +msgstr "Nível" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Heal" +msgstr "Saúde" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Fire" +msgstr "Fogo" + +#: ../3d_armor/init.lua +msgid "Your @1 got destroyed!" +msgstr "@1 foi destruído(a)!" + +#: ../3d_armor/init.lua +msgid "3d_armor: Failed to initialize player" +msgstr "3d_armor: Falha ao inicializar jogador" + +#: ../3d_armor/init.lua +msgid "[3d_armor] Fire Nodes disabled" +msgstr "[3d_armor] Nodes de gofo desabilitados" + +#: ../3d_armor_ip/init.lua +msgid "3d_armor_ip: Mod loaded but unused." +msgstr "3d_armor_ip: Mod carregado mas inoperante." + +#: ../3d_armor_ip/init.lua +msgid "Back" +msgstr "Voltar" + +#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua +msgid "Armor" +msgstr "Armadura" + +#: ../3d_armor_sfinv/init.lua +msgid "3d_armor_sfinv: Mod loaded but unused." +msgstr "3d_armor_sfinv: Mod carregado mas inoperante." + +#: ../3d_armor_stand/init.lua +msgid "Armor stand top" +msgstr "Topo de estande de armadura" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand" +msgstr "Estande de armadura" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand" +msgstr "Estande de Armadura" + +#: ../3d_armor_stand/init.lua +msgid "Locked Armor stand" +msgstr "Estande de Armadura Trancada" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand (owned by @1)" +msgstr "Estande de Armadura (pertente a @1)" + +#: ../3d_armor_ui/init.lua +msgid "3d_armor_ui: Mod loaded but unused." +msgstr "3d_armor_ui: Mod carregado mas inoperante." + +#: ../3d_armor_ui/init.lua +msgid "3d Armor" +msgstr "3d Armor" + +#: ../3d_armor_ui/init.lua +msgid "Armor not initialized!" +msgstr "Armadura não inicializada!" + +#: ../shields/init.lua +msgid "Admin Shield" +msgstr "Escudo de Administrador" + +#: ../shields/init.lua +msgid "Wooden Shield" +msgstr "Escudo de Madeira" + +#: ../shields/init.lua +msgid "Enhanced Wood Shield" +msgstr "Escudo de Madeira Melhorado" + +#: ../shields/init.lua +msgid "Cactus Shield" +msgstr "Escudo de Cacto" + +#: ../shields/init.lua +msgid "Enhanced Cactus Shield" +msgstr "Escudo de Cacto Melhorado" + +#: ../shields/init.lua +msgid "Steel Shield" +msgstr "Escudo de Aço" + +#: ../shields/init.lua +msgid "Bronze Shield" +msgstr "Escudo de Bronze" + +#: ../shields/init.lua +msgid "Diamond Shield" +msgstr "Escudo de Diamante" + +#: ../shields/init.lua +msgid "Gold Shield" +msgstr "Escudo de Ouro" + +#: ../shields/init.lua +msgid "Mithril Shield" +msgstr "Escudo de Mithril" + +#: ../shields/init.lua +msgid "Crystal Shield" +msgstr "Escudo de Cristal" diff --git a/3d_armor/3d_armor/locale/pt_BR.po b/3d_armor/3d_armor/locale/pt_BR.po new file mode 100644 index 0000000..b429d11 --- /dev/null +++ b/3d_armor/3d_armor/locale/pt_BR.po @@ -0,0 +1,295 @@ +# LANGUAGE translation for 3D ARMOR MOD +# Copyright (C) 2018 by Stuart Jones +# This file is distributed under the same license as the 3D ARMOR MOD package. +# BrunoMine , 2018. +# +msgid "" +msgstr "" +"Project-Id-Version: 3d_armor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-23 21:24+0200\n" +"PO-Revision-Date: 2018-11-08 13:12-0200\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" +"Last-Translator: BrunoMine \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: pt_BR\n" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player reference is nil @1" +msgstr "3d_armor: Referência Jogador é nula @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player name is nil @1" +msgstr "3d_armor: Nome de jogador é nulo @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Detached armor inventory is nil @1" +msgstr "3d_armor: Inventario avulso de armadura é nulo @1" + +#: ../3d_armor/armor.lua +msgid "Admin Helmet" +msgstr "Capacete de Administrador" + +#: ../3d_armor/armor.lua +msgid "Admin Chestplate" +msgstr "Peitoral de Administrador" + +#: ../3d_armor/armor.lua +msgid "Admin Leggings" +msgstr "Calças de Administrador" + +#: ../3d_armor/armor.lua +msgid "Admin Boots" +msgstr "Botas de Administrador" + +#: ../3d_armor/armor.lua +msgid "Wood Helmet" +msgstr "Capacete de Madeira" + +#: ../3d_armor/armor.lua +msgid "Wood Chestplate" +msgstr "Peitoral de Madeira" + +#: ../3d_armor/armor.lua +msgid "Wood Leggings" +msgstr "Calças de Madeira" + +#: ../3d_armor/armor.lua +msgid "Wood Boots" +msgstr "Botas de Madeira" + +#: ../3d_armor/armor.lua +msgid "Cactus Helmet" +msgstr "Capacete de Cacto" + +#: ../3d_armor/armor.lua +msgid "Cactus Chestplate" +msgstr "Peitoral de Cacto" + +#: ../3d_armor/armor.lua +msgid "Cactus Leggings" +msgstr "Calças de Cacto" + +#: ../3d_armor/armor.lua +msgid "Cactus Boots" +msgstr "Botas de Madeira" + +#: ../3d_armor/armor.lua +msgid "Steel Helmet" +msgstr "Capacete de Aço" + +#: ../3d_armor/armor.lua +msgid "Steel Chestplate" +msgstr "Peitoral de Aço" + +#: ../3d_armor/armor.lua +msgid "Steel Leggings" +msgstr "Calças de Aço" + +#: ../3d_armor/armor.lua +msgid "Steel Boots" +msgstr "Botas de Aço" + +#: ../3d_armor/armor.lua +msgid "Bronze Helmet" +msgstr "Capacete de Bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Chestplate" +msgstr "Peitoral de Bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Leggings" +msgstr "Calças de Bronze" + +#: ../3d_armor/armor.lua +msgid "Bronze Boots" +msgstr "Botas de Bronze" + +#: ../3d_armor/armor.lua +msgid "Diamond Helmet" +msgstr "Capacete de Diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Chestplate" +msgstr "Peitoral de Diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Leggings" +msgstr "Calças de Diamante" + +#: ../3d_armor/armor.lua +msgid "Diamond Boots" +msgstr "Botas de Diamante" + +#: ../3d_armor/armor.lua +msgid "Gold Helmet" +msgstr "Capacete de Ouro" + +#: ../3d_armor/armor.lua +msgid "Gold Chestplate" +msgstr "Peitoral de Ouro" + +#: ../3d_armor/armor.lua +msgid "Gold Leggings" +msgstr "Calças de Ouro" + +#: ../3d_armor/armor.lua +msgid "Gold Boots" +msgstr "Botas de Ouro" + +#: ../3d_armor/armor.lua +msgid "Mithril Helmet" +msgstr "Capacete de Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Chestplate" +msgstr "Peitoral de Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Leggings" +msgstr "Calças de Mithril" + +#: ../3d_armor/armor.lua +msgid "Mithril Boots" +msgstr "Botas de Mithril" + +#: ../3d_armor/armor.lua +msgid "Crystal Helmet" +msgstr "Capacete de Cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Chestplate" +msgstr "Peitoral de Cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Leggings" +msgstr "Calças de Cristal" + +#: ../3d_armor/armor.lua +msgid "Crystal Boots" +msgstr "Botas de Cristal" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Radiation" +msgstr "Radiação" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Level" +msgstr "Nível" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Heal" +msgstr "Saúde" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Fire" +msgstr "Fogo" + +#: ../3d_armor/init.lua +msgid "Your @1 got destroyed!" +msgstr "@1 foi destruído(a)!" + +#: ../3d_armor/init.lua +msgid "3d_armor: Failed to initialize player" +msgstr "3d_armor: Falha ao inicializar jogador" + +#: ../3d_armor/init.lua +msgid "[3d_armor] Fire Nodes disabled" +msgstr "[3d_armor] Nodes de gofo desabilitados" + +#: ../3d_armor_ip/init.lua +msgid "3d_armor_ip: Mod loaded but unused." +msgstr "3d_armor_ip: Mod carregado mas inoperante." + +#: ../3d_armor_ip/init.lua +msgid "Back" +msgstr "Voltar" + +#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua +msgid "Armor" +msgstr "Armadura" + +#: ../3d_armor_sfinv/init.lua +msgid "3d_armor_sfinv: Mod loaded but unused." +msgstr "3d_armor_sfinv: Mod carregado mas inoperante." + +#: ../3d_armor_stand/init.lua +msgid "Armor stand top" +msgstr "Topo de estande de armadura" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand" +msgstr "Estande de armadura" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand" +msgstr "Estande de Armadura" + +#: ../3d_armor_stand/init.lua +msgid "Locked Armor stand" +msgstr "Estande de Armadura Trancada" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand (owned by @1)" +msgstr "Estande de Armadura (pertente a @1)" + +#: ../3d_armor_ui/init.lua +msgid "3d_armor_ui: Mod loaded but unused." +msgstr "3d_armor_ui: Mod carregado mas inoperante." + +#: ../3d_armor_ui/init.lua +msgid "3d Armor" +msgstr "3d Armor" + +#: ../3d_armor_ui/init.lua +msgid "Armor not initialized!" +msgstr "Armadura não inicializada!" + +#: ../shields/init.lua +msgid "Admin Shield" +msgstr "Escudo de Administrador" + +#: ../shields/init.lua +msgid "Wooden Shield" +msgstr "Escudo de Madeira" + +#: ../shields/init.lua +msgid "Enhanced Wood Shield" +msgstr "Escudo de Madeira Melhorado" + +#: ../shields/init.lua +msgid "Cactus Shield" +msgstr "Escudo de Cacto" + +#: ../shields/init.lua +msgid "Enhanced Cactus Shield" +msgstr "Escudo de Cacto Melhorado" + +#: ../shields/init.lua +msgid "Steel Shield" +msgstr "Escudo de Aço" + +#: ../shields/init.lua +msgid "Bronze Shield" +msgstr "Escudo de Bronze" + +#: ../shields/init.lua +msgid "Diamond Shield" +msgstr "Escudo de Diamante" + +#: ../shields/init.lua +msgid "Gold Shield" +msgstr "Escudo de Ouro" + +#: ../shields/init.lua +msgid "Mithril Shield" +msgstr "Escudo de Mithril" + +#: ../shields/init.lua +msgid "Crystal Shield" +msgstr "Escudo de Cristal" diff --git a/3d_armor/3d_armor/locale/ru.po b/3d_armor/3d_armor/locale/ru.po new file mode 100644 index 0000000..4beee8a --- /dev/null +++ b/3d_armor/3d_armor/locale/ru.po @@ -0,0 +1,294 @@ +# Russian translation for 3D ARMOR MOD +# Copyright (C) 2018 by Stuart Jones +# This file is distributed under the same license as the 3D ARMOR MOD package. +# CodeXP , 2018. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: 3d_armor\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-23 21:21+0200\n" +"PO-Revision-Date: 2018-07-23 21:30+0200\n" +"Last-Translator: CodeXP \n" +"Language-Team: \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player reference is nil @1" +msgstr "3d_armor: Ссылка игрока является nil @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player name is nil @1" +msgstr "3d_armor: Имя игрока является nil @1" + +#: ../3d_armor/api.lua +msgid "3d_armor: Detached armor inventory is nil @1" +msgstr "3d_armor: Отдельный инвентарь брони является nil @1" + +#: ../3d_armor/armor.lua +msgid "Admin Helmet" +msgstr "шлем админа" + +#: ../3d_armor/armor.lua +msgid "Admin Chestplate" +msgstr "бронежилет админа" + +#: ../3d_armor/armor.lua +msgid "Admin Leggings" +msgstr "гамаши админа" + +#: ../3d_armor/armor.lua +msgid "Admin Boots" +msgstr "ботинки админа" + +#: ../3d_armor/armor.lua +msgid "Wood Helmet" +msgstr "деревянный шлем" + +#: ../3d_armor/armor.lua +msgid "Wood Chestplate" +msgstr "деревянный бронежилет" + +#: ../3d_armor/armor.lua +msgid "Wood Leggings" +msgstr "деревянные гамаши" + +#: ../3d_armor/armor.lua +msgid "Wood Boots" +msgstr "деревянные ботинки" + +#: ../3d_armor/armor.lua +msgid "Cactus Helmet" +msgstr "кактусовый шлем" + +#: ../3d_armor/armor.lua +msgid "Cactus Chestplate" +msgstr "кактусовый бронежилет" + +#: ../3d_armor/armor.lua +msgid "Cactus Leggings" +msgstr "кактусовые гамаши" + +#: ../3d_armor/armor.lua +msgid "Cactus Boots" +msgstr "кактусовые ботинки" + +#: ../3d_armor/armor.lua +msgid "Steel Helmet" +msgstr "стальной шлем" + +#: ../3d_armor/armor.lua +msgid "Steel Chestplate" +msgstr "стальной бронежилет" + +#: ../3d_armor/armor.lua +msgid "Steel Leggings" +msgstr "стальные гамаши" + +#: ../3d_armor/armor.lua +msgid "Steel Boots" +msgstr "стальные ботинки" + +#: ../3d_armor/armor.lua +msgid "Bronze Helmet" +msgstr "бронзовый шлем" + +#: ../3d_armor/armor.lua +msgid "Bronze Chestplate" +msgstr "бронзовый бронежилет" + +#: ../3d_armor/armor.lua +msgid "Bronze Leggings" +msgstr "бронзовые гамаши" + +#: ../3d_armor/armor.lua +msgid "Bronze Boots" +msgstr "бронзовые ботинки" + +#: ../3d_armor/armor.lua +msgid "Diamond Helmet" +msgstr "алмазный шлем" + +#: ../3d_armor/armor.lua +msgid "Diamond Chestplate" +msgstr "алмазный бронежилет" + +#: ../3d_armor/armor.lua +msgid "Diamond Leggings" +msgstr "алмазные гамаши" + +#: ../3d_armor/armor.lua +msgid "Diamond Boots" +msgstr "алмазные ботинки" + +#: ../3d_armor/armor.lua +msgid "Gold Helmet" +msgstr "золотой шлем" + +#: ../3d_armor/armor.lua +msgid "Gold Chestplate" +msgstr "золотой бронежилет" + +#: ../3d_armor/armor.lua +msgid "Gold Leggings" +msgstr "золотые гамаши" + +#: ../3d_armor/armor.lua +msgid "Gold Boots" +msgstr "золотые ботинки" + +#: ../3d_armor/armor.lua +msgid "Mithril Helmet" +msgstr "мифриловый шлем" + +#: ../3d_armor/armor.lua +msgid "Mithril Chestplate" +msgstr "мифриловый бронежилет" + +#: ../3d_armor/armor.lua +msgid "Mithril Leggings" +msgstr "мифриловые гамаши" + +#: ../3d_armor/armor.lua +msgid "Mithril Boots" +msgstr "мифриловые ботинки" + +#: ../3d_armor/armor.lua +msgid "Crystal Helmet" +msgstr "кристалловый шлем" + +#: ../3d_armor/armor.lua +msgid "Crystal Chestplate" +msgstr "кристалловый бронежилет" + +#: ../3d_armor/armor.lua +msgid "Crystal Leggings" +msgstr "кристалловые гамаши" + +#: ../3d_armor/armor.lua +msgid "Crystal Boots" +msgstr "кристалловые ботинки" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Radiation" +msgstr "излучение" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Level" +msgstr "уровень" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Heal" +msgstr "исцеление" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Fire" +msgstr "огонь" + +#: ../3d_armor/init.lua +msgid "Your @1 got destroyed!" +msgstr "твой(и) @1 был(и) разрушен(ы)!" + +#: ../3d_armor/init.lua +msgid "3d_armor: Failed to initialize player" +msgstr "3d_armor: не смог подготовить игрока" + +#: ../3d_armor/init.lua +msgid "[3d_armor] Fire Nodes disabled" +msgstr "[3d_armor] блоки огня отключены" + +#: ../3d_armor_ip/init.lua +msgid "3d_armor_ip: Mod loaded but unused." +msgstr "3d_armor_ip: мод загружен но не используется." + +#: ../3d_armor_ip/init.lua +msgid "Back" +msgstr "назад" + +#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua +msgid "Armor" +msgstr "бронь" + +#: ../3d_armor_sfinv/init.lua +msgid "3d_armor_sfinv: Mod loaded but unused." +msgstr "3d_armor_sfinv: мод загружен но не используется." + +#: ../3d_armor_stand/init.lua +msgid "Armor stand top" +msgstr "стойка для брони (верх)" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand" +msgstr "стойка для брони" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand" +msgstr "стойка для брони" + +#: ../3d_armor_stand/init.lua +msgid "Locked Armor stand" +msgstr "защищенная стойка для брони" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand (owned by @1)" +msgstr "стойка для брони (принадлежит @1)" + +#: ../3d_armor_ui/init.lua +msgid "3d_armor_ui: Mod loaded but unused." +msgstr "3d_armor_ui: мод загружен но не используется." + +#: ../3d_armor_ui/init.lua +msgid "3d Armor" +msgstr "3D бронь" + +#: ../3d_armor_ui/init.lua +msgid "Armor not initialized!" +msgstr "бронь не подготовлена!" + +#: ../shields/init.lua +msgid "Admin Shield" +msgstr "щит админа" + +#: ../shields/init.lua +msgid "Wooden Shield" +msgstr "деревянный щит" + +#: ../shields/init.lua +msgid "Enhanced Wood Shield" +msgstr "улучшенный деревянный щит" + +#: ../shields/init.lua +msgid "Cactus Shield" +msgstr "кактусный щит" + +#: ../shields/init.lua +msgid "Enhanced Cactus Shield" +msgstr "улучшенный кактусный щит" + +#: ../shields/init.lua +msgid "Steel Shield" +msgstr "стальной щит" + +#: ../shields/init.lua +msgid "Bronze Shield" +msgstr "бронзовый щит" + +#: ../shields/init.lua +msgid "Diamond Shield" +msgstr "алмазный щит" + +#: ../shields/init.lua +msgid "Gold Shield" +msgstr "золотой щит" + +#: ../shields/init.lua +msgid "Mithril Shield" +msgstr "мифриловый щит" + +#: ../shields/init.lua +msgid "Crystal Shield" +msgstr "кристалловый щит" diff --git a/3d_armor/3d_armor/locale/template.pot b/3d_armor/3d_armor/locale/template.pot new file mode 100644 index 0000000..0b0222c --- /dev/null +++ b/3d_armor/3d_armor/locale/template.pot @@ -0,0 +1,294 @@ +# LANGUAGE translation for 3D ARMOR MOD +# Copyright (C) 2018 by Stuart Jones +# This file is distributed under the same license as the 3D ARMOR MOD package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-07-23 21:24+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player reference is nil @1" +msgstr "" + +#: ../3d_armor/api.lua +msgid "3d_armor: Player name is nil @1" +msgstr "" + +#: ../3d_armor/api.lua +msgid "3d_armor: Detached armor inventory is nil @1" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Admin Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Admin Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Admin Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Admin Boots" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Wood Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Wood Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Wood Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Wood Boots" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Cactus Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Cactus Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Cactus Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Cactus Boots" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Steel Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Steel Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Steel Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Steel Boots" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Bronze Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Bronze Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Bronze Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Bronze Boots" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Diamond Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Diamond Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Diamond Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Diamond Boots" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Gold Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Gold Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Gold Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Gold Boots" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Mithril Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Mithril Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Mithril Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Mithril Boots" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Crystal Helmet" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Crystal Chestplate" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Crystal Leggings" +msgstr "" + +#: ../3d_armor/armor.lua +msgid "Crystal Boots" +msgstr "" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Radiation" +msgstr "" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Level" +msgstr "" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Heal" +msgstr "" + +#: ../3d_armor/init.lua ../3d_armor_ui/init.lua +msgid "Fire" +msgstr "" + +#: ../3d_armor/init.lua +msgid "Your @1 got destroyed!" +msgstr "" + +#: ../3d_armor/init.lua +msgid "3d_armor: Failed to initialize player" +msgstr "" + +#: ../3d_armor/init.lua +msgid "[3d_armor] Fire Nodes disabled" +msgstr "" + +#: ../3d_armor_ip/init.lua +msgid "3d_armor_ip: Mod loaded but unused." +msgstr "" + +#: ../3d_armor_ip/init.lua +msgid "Back" +msgstr "" + +#: ../3d_armor_ip/init.lua ../3d_armor_sfinv/init.lua ../3d_armor_ui/init.lua +msgid "Armor" +msgstr "" + +#: ../3d_armor_sfinv/init.lua +msgid "3d_armor_sfinv: Mod loaded but unused." +msgstr "" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand top" +msgstr "" + +#: ../3d_armor_stand/init.lua +msgid "Armor stand" +msgstr "" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand" +msgstr "" + +#: ../3d_armor_stand/init.lua +msgid "Locked Armor stand" +msgstr "" + +#: ../3d_armor_stand/init.lua +msgid "Armor Stand (owned by @1)" +msgstr "" + +#: ../3d_armor_ui/init.lua +msgid "3d_armor_ui: Mod loaded but unused." +msgstr "" + +#: ../3d_armor_ui/init.lua +msgid "3d Armor" +msgstr "" + +#: ../3d_armor_ui/init.lua +msgid "Armor not initialized!" +msgstr "" + +#: ../shields/init.lua +msgid "Admin Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Wooden Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Enhanced Wood Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Cactus Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Enhanced Cactus Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Steel Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Bronze Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Diamond Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Gold Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Mithril Shield" +msgstr "" + +#: ../shields/init.lua +msgid "Crystal Shield" +msgstr "" diff --git a/3d_armor/3d_armor/mod.conf b/3d_armor/3d_armor/mod.conf new file mode 100644 index 0000000..56f7973 --- /dev/null +++ b/3d_armor/3d_armor/mod.conf @@ -0,0 +1,4 @@ +name = 3d_armor +depends = default +optional_depends = player_monoids, armor_monoid, pova, fire, ethereal, bakedclay, intllib +description = Adds craftable armor that is visible to other players. diff --git a/3d_armor/3d_armor/models/3d_armor_character.b3d b/3d_armor/3d_armor/models/3d_armor_character.b3d new file mode 100644 index 0000000000000000000000000000000000000000..c4d45b50e371fd8030dec685c001809526ea1b87 GIT binary patch literal 151606 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

gUX+W!Wzx@0XtlH6GQ}=^ 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�Qa&VerrgK5&FAKkT^lpGY72zy~EBcHuX@9|a!z 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�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 B8EOCk literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_admin.png b/3d_armor/3d_armor/textures/3d_armor_boots_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..833f6b71cd55ce00e5f184094dffc147a0dce9c4 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQYSrK978hhy}h=Px7mTGHL-u< z(n|)eTGKq|iW)h%c}>-dP5HnntSvOrFQ)jJzRpJ$roH{vEh|=SnG>j&RXln1ufj8H z=Wj2cb^k)wtCvfy_FaEuxSU->b-sM(4cQ31E(0=&)R`+k|Z-1)o oo{2D2tKF@4$Y%yR85@wvR@<*uf3MTdOBf{W>FVdQ&MBb@0BA&D(*OVf literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_admin_preview.png b/3d_armor/3d_armor/textures/3d_armor_boots_admin_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..2487a7ea08d77637bab4f6bc72d65ddf0b6daffa GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsWYA~jv*QM-d-@|Iuszla^dDN zy?U$jouWCFvU#!mRlVdZ$Npuif^exA$av-FD+(n|&*^ z{{3uWVB%0{z(p+h*3c~@%J8mY*PiY>cNgxv(0hbYW7AI7&C{M)mA@ zi6_(=*F0d{<9N+urc!cBx5!O(Z;9qJ<{BK$-G{G7)E#aAEi>n*|E0Oo#@Sh~3aw{< zc^CD$^vl-$+e5GNhg`V-H|6l>U;J{lRSaB~b#cWR>#M%BGiex_UvCr%?U(NncenL(Q zPI$6#2q-u-FfcMpUn literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_cactus.png b/3d_armor/3d_armor/textures/3d_armor_boots_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..350b065b211d1f94f1db78cd3501320a1812783c GIT binary patch literal 252 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQinZV978hhy}h=Px5a>`HL<)T zBz&`jN?JnOYf0s7Lq^-=nM{#}g4bmN68;@J8a!cw{UesZ(4CuR#cg@%dOLBoRs7$5 zn^nshbUrW96la)!n0ZTchI!Yrn0JL8LEwaum9(i`HRi*fBQ2hb2Cughn;Od-9FbW{JnT{aoqpS{d{oV7)f8 P31qFOtDnm{r-UW|>+o94 literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_crystal.png b/3d_armor/3d_armor/textures/3d_armor_boots_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..31c06b5861dcac2d934ed75c0d7d40b7c4ace012 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQfE9}978hhy}fpjw?#pK^@8SM ztBgiIjRv8%E{hv%<+E=xef#x&!KMwJvjz5A{5!1jZ^DYtY>Sv2*6DoY`pDHO`E}RH zaQpXPe#g}vo?&>lL2pIx_M3JM;d|~iED2hE@0mM;Om6*T>jl|nX+3Ge3}1WldHbIH zX0AADl5G3@c8dEZP6p4V*#SX6>sa}&on=tF@aA05(XkcJbU_fOyq+ey<)1Cfn@65;ypuZSAUHx3vIVCg!0IKt6 Awg3PC literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png b/3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..01a6bfafcb883894a63a52a47e14fc9b7517fd48 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsgs^Ajv*QM-dLoImC9txbVPHGV;TjTpB|+ir>g@Z%@v~f5 z_Rn!)U}O<+z(suc-moQa%ZEKT7Z`8YJ^A!XA47(>o}3ICRaN#f(w9GfVra-*+7Qai zutWdrJY6mBf})*Q92s7mXJojYv`qhAWW#iJrakgz8KrOEJz-=x9K-#Xm*K(I>*DE) m?}*KfS@&F{LI3%CM)}5m^9fIG8=eDtiow&>&t;ucLK6Ut&Rqlm literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_diamond.png b/3d_armor/3d_armor/textures/3d_armor_boots_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..187035962c6af2312a5eed1c4fa6451918d333eb GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQWrd3978hhy}fpj^N@o;>%+B2 z7Jp^&|E6%GF``j?qwL1X3GDZZXQo_A}3VhyomThv!l3A1c*e~9k z-M@IJ5Vk;(dmAzkcsx z4u;#0!#1dx^Dod|*;+FH_Ni%41Q>ober7ej9bW&g#)2W<;_a^Ue;6yDznt}rahcGz x^=m8Q9_IhEeP7Jcpep>X-XWVA=yGgeO}1M^YvtN!Z;C2G(w?q1cERbcMu6{1-oD!M< D4*FIX literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_mithril.png b/3d_armor/3d_armor/textures/3d_armor_boots_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..af7b9439b7e79cf2e8bc79798c57c8eb7f576674 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQfE9}978hhy`6TN^RR({%iZ?= zeY=^qKNPyuGU<@dss`Em{0H!-c;>RrRdQ1vV%aqF%<&sY_HiIg|k7wWNww>~}p q`Qmbh0@s)S7}s(Fos1nE*t><9fjQmyOmJZ)NQI}XpUXO@geCyMC1$Ds literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png b/3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1ebf92a050fbbeda0ab4984d131285e2d91ea106 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsq3CDjv*QM-d@q=YjzM|eXyOc zKdULTY2~3}CZ}0kD{d#e&YBhSg~iq(w*O*C_@j?15;}6`p&f$RQj=Prt({#t`_1&f z#!5`{4+}UjFtXqzbmRnF)fpQM?yUZ2uqX8Gso(!H|1nQkmVR~p>-JT#KYuY6)`&A` zoK|KyaEq5=friO}soUS?K5bB`>8BeIDsOszs`=T(rwuPTj%^J7t8io0t*PhB z*!M6lOV4;4np-$8{)$bw-EI2^vL9YY*gW9QJ8eHF}(U*9e0)eidSJo7sGo594Y{$NA=RX!}x8DD5_KN>Y z@4C}6O1-~7Zp=@NVQt7aW1X<8qTyBFf#AdO?179EboF?jUD?k*!8m{I-Y~P}YztT# ze$3i!{rcsf>FZpl<{vQOQ@pfe&4w#4YhuJ1Kd2r3%l=0f=rC-+A=Z*{hxTus>DxY^ P2FZK6`njxgN@xNAot;@v literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png b/3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..968ffc5be36df37cc81d0b02713d84871326b1f9 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsr8;Njv*QM-d?%Q$>hk>`p`J^ zgw~A~@gq`4Qg6>_YJ2GLHLYMY#7i0T;PSR z!qSvUCi6q{>gsJ`<4+~`B+4|rO?&%n`s=e_m)87f2(C8pjM538w8YbNs>NZG0q*}Z>?bT_-)9W6*3;F` JWt~$(6980#R$l-B literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_wood.png b/3d_armor/3d_armor/textures/3d_armor_boots_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..e62bdc5f42f218f1e35020430cab8663c3394b29 GIT binary patch literal 267 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQkOhk978hhy}fG4b;v-1^}+O& z%_S=qD?ADiU6_24nIrCCbtNmiY%I&cmC@$ub8Q^kd}clh>2&T)STJjk`PbgR74_OZ zh972rO-k8h!pPvUl#!v#{yKl7eAfrw4UxWQN^UquKDjY>9RtJe_xk2cEW84DId{a} zxVoF|r__R(e{yUNY}~b9?SJO`Un+YTx7^*cnw>GBeC3zhM`l0Y#v;H$a9ul)!1w==LPFfejBFfa);pfVj|Dw$?Fe>u1(@b*uj?-)E?{an^L HB{Ts5v7%^| literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png b/3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..de841b01960e9d41801e3f794675f7158e46cae2 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsSTbkjv*QM-d Sa!&!>&fw|l=d#Wzp$Py+3RTGf literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..d8df83df1016ec5641a86937db6f63e64a676d23 GIT binary patch literal 409 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|>w}ba4#Hxc7G2#=^q}Jg$~) z(~BN!##BmPk37hnvLs~XrJoXlhn_e7*NN zlRlQRPV|A>Yg2ZEsk1!pUUPr*lp$fp)-RSF*=+s)P4BTV1R3ow>3Dnk?TkOyb_E>K znY%sR?tPW(9$5xmFVFc8!=zFiUNTEI)R~-FZhC2s?dP47Lyr9CbI{Occ+?T zm#oyWVjD(=x55h&HmKcWX^==`FkmibVPKojc;l~Yh7g0%0=9;q{`Cw!j#n7;a;|;Q zX_#lEFn4o1!!siX#s%}m8LF(ABpc#NbI-V5ILF)|qP5E?+Tkw4hPDe_ih05Oj4#$X zd$0bX$FSkYwBwS8Hr3u=#m(To@XXAWwfmOVF}Aj-$X~eKqX`Uh22WQ%mvv4FO#n%2 Brw#xB literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1bb10fd3d88a9df40dcac8dde2c0486c738dcf0c GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsVAN;jv*QM-d^9xd&oe5^@4Qs z(hMWk&}j?PSlLc^goKp5P>TLJ&9Z=xbIF`J@qdnWp7-BaI?**W^)v?~i+}?IkPu)p zIOX{|=ES4;CR*#6x6RcF^0+(SvEYrK>nz2R z#E;!Ed3LpzeS@pvJiBm49apbFmiZNx^PW|dK4!Sq#2n0!wr~JB3i~~d z>q;^IC;)J{*J)7+abEyF_iLp|0r%+9)?31OUI1ctsfk=gebXv;@{dV!!n~ipz-y1E2>$0ot<|VgSGZSqjK< zx?f5>2!PNNKoMLV1K=3{N1pxsRY8F{@n`_J7%eykfY-YY&A|YqKG8OR2-qwDXpd__ zp@Mk^sE_@V2f$N2G}Q20*Lljf`DXzD*Iu5&O`kQa^UzWs?>8F&I)%9qEjY(N3jit< qs0w*w{>cMqyRWNa_xn_Tp8&otMh1vQIJ@Wo0000KKYQnhEK3l@%h4c>G_33-BpVWoEk?w@Rpxoujz~G@^v_BG zAOHk_01yBIKmZ5;0U!VbfB+Bx0zd$mt^FnCKFy84JEshJ#ajfx@s{%G{wef%0eC$h z@0gnefER>W+mAksc>?x`w+MjJi`Dw4mY7#OH^WwA=M8D-OqqM;xTQQ(60+&3eSBs~ zXdAVSUyTP7TJsQ|(Kn{OH~`k9eE~H{Lma13olns$=X1Tr<9dx>8~+&qHCWnBYq$nL zrL{g)s{ydPs)kD$pgXSsHvb`1s?omh02)4A`{$3X;Y|R583n+$?rdqtEdb2|uMely z0N9is$^gv*wwnNegNBBA@StrCp---=T_=rx44nzDfKYyqfrya@nSG+en?{E)wLao2iYu!Dr00000NkvXXu0mjf&!ndQ literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..b166c7cf4f4088f9264a8d061c1fb4483216fb17 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsi&SUjv*QM-d^9xd&oe5^}_2H zD^^4@bV|->oM#x(&G|y|w4h_WO#D6-A&s3g;{Pc1)qWR=Zj8`8I<1FOp@D&k14w8x z+@3sjVNT!s9?>tw$6q~Twt2VRu6^~_j|@Go0zJPgBl-=moM%7q=gTe~DWM4f@3D0f literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..4a268f4d595240e4b6175f3af9cc522d876cbe9f GIT binary patch literal 404 zcmV;F0c-w=P)LLgSok{#lIy zFaQR?02lxRU;qq&0WbgtzyKHk17HB=Z@AsNs9oDt8lSyC_B))SRtaEpc2Vv1Da54! z-0m)FodEm+gK0e;#==}Fz{U0}4qzZPk-DWz?B@VrSZnG!k?t9K{KI$=0FsjFqp{xU z<2)9GzQD1T%yZ2rb2;&10ML}8j+c%>4JfSD0B~qA@AruFT=OaYbK>s<@RS7r($62B zyFZNaKNL--cn|=tPk=@JXT*yD2#3`GUrFAK#q&+=9erDX0sHnyxINI8^XR6-sMeT`)OFeUp$BJ!POoH iCJu!LD6xxm52Mqj{ok{ygt~!#X7F_Nb6Mw<&;$U0EN=w> literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..f61e28f629b32f2dca99fd7477545bacf5bab60a GIT binary patch literal 429 zcmV;e0aE^nP)7Nqc9Dq><0Gxnro~u8M@d<@jA;x_G@O(Du9Sx?$s{pXgDgc;)IR(%d z904%5Xl@1oMp6LqZ?Xfx22lgFu(9DG0C{CVeb2f83}rwAAin3kCci5X0if08_*W66 z`368OZJ8NRHUQWVo6B>`Lk XPuwfB(aoWq00000NkvXXu0mjf1kbTt literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec9971232e8a69c9ca544fba972a56556fcaa65 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsh6HEjv*QM-d;b*$z&+NdLiV| z#i}EdZ8^#m!XCKhxW93EbKrNJo6sj!zBKoM8;RfK|EcDv^{bqjq@t90N`;9-p@9KN z9AH&=yX{h1;f?ZS(VYETU;SdXX?v*q_Q=_NUrPI8Qz``S;s}dY&hp z{=Cw~`OBdh(F|^}^$f8hk1KaGI0%ZkZrHot^^=)&>0bsnY1h353@=(I^fy#ptb5h+ zj^P)_GxiJI--W~t4qFGzZnIYr6900p1`6o3Ly017|>C;$bZ02F`%Pyh-bTkFlGrNgc=R_A?N$V-2&u;1p2Fu&(?s0Jz0w2aww9vDpyI zqvvzuNdUNBe{7qB+n6D6&iQLEe!^G_sqx#m?s*iK6Hf<#58w;LQ)EER5c2>SU`qrD zJ&*lz;%NZb14{tD2rjM#fMfrC0R(hEofra8S6dHcdz{8dl|2=XhRwkP&*hTFcsWm z*DAKHd$yr^`SlGkw_j)TJ52XI^;zujR||{zmlcBdMqGcL&3-`K-cPeABBtj4vX0^+ zgZ0TjV&bbAc4p3EV4T<-&9HX8?17kNyob+zc3b7JC@yb{tH0B32HsEh45=HE8;W*^ zeyw@K9$=frZv5-lKiP(wg(s3DzjI6U$~(MHE>?;EuOA`X5N`}~6o@Y1u3((Qk?OQA R*yJ>b@9FC2vd$@?2>_%3XXXF^ literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..aa06d189980608b7c1536629ba43915c477f7c25 GIT binary patch literal 416 zcmV;R0bl-!P)q+P1C! zS(O8D01m(bH~utBEpj7`X z0Cu}`(0+dnVmuUp%jFTYNC4O%OxrwisQn6nfcvgD3xL?hKIOjwpjT{m0DbRzYBr?u zyz{y7Bmi(6o96b~IAVpMIrN~HN0_yk*pJV+^E8(ej}8Eo?FML&Pf-DJh#|)(#=1%Y z@y>I-oOlud*f6Iu0nmh+O^|2i}$nF0F5 zQcsk1JrP~NiU6Q@JZ4A%*deF@t%ms7936m8ah<|C2dv@Pl>gLU1OPjQyMESK=c{q7 zU)L)JfEuC!`+q>|efx_5U`2ygvEEew;sJEMuUnlb17=k*RLjp+{rR*0;7f*ovjidT f0z1xOYXfVk_k`d@7oW@pdYHk})z4*}Q$iB}k;iu* literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..cc6d57094cfe1de71877414a64b89563426cc920 GIT binary patch literal 385 zcmV-{0e=38P)PA~E|zV!!k}ipzjf=~c{b-_9QCID!mK&_BB=3hL3vF~-Q f*!O*^e@*}&5KNB1E}#&o00000NkvXXu0mjfLbIU+ literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..162ce4b9763e89d7e964c3bceeb3a519a83086ef GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVshgfIjv*QM-d+#nI%L4Z_Tb)s zj;05kE+2f4aCcO2q;A&`<(~NC@*39Gqd)Bb@So25WVq|>(jc!WqfQ1U4uu9FQNVcP z{WjOU`Su(>sqfdBm=N{q-yJ1o_iT4<_#7 zoOk%(Ccg*8wSO54E^lGrICxOE;p%n%1ifo+hZ-ZUOTS&LzA(Ch^{0G;sfFHwU3WL= z9WP|~u|oFji`T!)8Gbk&OkQ)GwMUI_!PoR+mH7X95i$q-jiJr~yNQFlf}w9wrfFLx S-&dd~89ZJ6T-G@yGywo**mNTR literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..2db95ce231ebfb338549b88de1badfcd106b9aef GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|{6-ba4#Hxc7FNAs3UOfNQak zwfDhOr~Ec-5IJ%!j9)P#qKa4l0i&|81c#!r%FVkICdAj28UIXC&o|zjy=H4#iX_k| zEMUf($9buqD?d*9y1squWtrEyObwH`9~Z0oy#8Y+{(DdE;`5SB47u|ZOt=$P2t7!# zP_#c7u<@r%{mC6%3|4(LDxUYRpX_{GbN+MiU(3f@4EMh86;^jJJ!L4=yEAj@kIH>1 zF{}++9Q%$7`Ft%8WO~RZ|J*m^lJw<2Xa93#<|}MpdGya&<_WW+Zd`b=%GB}XeO88* z$DA{Ly+18xsnTWqAF+H&!;|;RSd!fD{NIx~-|=j}P=v$*`E7@NgUz15i2(V>)78&q Iol`;+0LyQG zX9Ek0iiBlkSPM(HwhPF}>}?bO&@fRqT@=&wy>VRzj3X7Sp!a^=~{-`DaN>|V3mX5DSQ zcfMcd^quhz+WM8TNZz}8PIbZy#l@uu&oi#{2rQ1N75#3?AH~_t+@|Mpnf*np#&(92 zKVRH;D0Eo!Hfbh*gWikXvj5j|cQO9TJHAl2{1(HmhInI$OTc6r{||;qi=G{D(H3q4 O33$5txvX}Cba4#Hxc7FtE#Dynp4M6( zy`zUTXH-e1tvkSIAtWp;%~g6ueD5wto zo$z&CZ8S53MfJAez*{lK9eE5X%iE*NY_e`EI6wAo~(Z9W$A{Ga`9wmQ~h-;H<* zt5p~yuKp|8_fo5Wg|kLW_xp!)PUj}=y>VP_)BQ6GKCd}{zRLC*=RF>V)TY}`mtC& zC1I6%WMdNlsVgp#4Kp>QH!xfd?-FEA)(l>~;LX7hu@91WE}s27!{hz8|7zc_{XF+J z{QAt9pVA&rJ9sGay2ASvQ*X=Pyz=zvI)jE~Qj?a%UHW=(gNWX_)BkepYu<0`W-%y! ze5TbT^2h0=ufAtZK2w*q+Jix#|LS|O8rP`8_^({-5-Bcd~zY%?NZbF7ToJfH2d1-3ckb&bEWpc)I$ztaD0e0swY^YT5t* literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png b/3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..17b87c9af398125f47b4a4252db61c05751d984e GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|^K+ba4#Hxc7GYK~5(_0hi*h z4;(iL9~9F$z?XA)G5hHa-2D6HXA3B9YHUorso%sUZQQ=|&3U%xPyf%2$Xctqx$kyr zYHZo+Wtsc)ewF;c#LO^budJBw_sh#pI`A+z^xCg`zLBBgv)XE2#sfaHA|;N$j6VC| zk1fNVe+GP?!{pf*=3AZNXJ(k#{^Rq;8@3GdU+b93taW}X>smeg5|8D)4>HBYnhnpF ztq|7~w0-_>i{Wv$g*$h>e>|mw!FWN4xGdX2w~b=n>4n4Y>-@C_5hod0n)BigGs$erX6QQH-MM+X%z-ndItOaXSr0_d^SSYy y_uhYbg}e*9tM~K&DB)CSU|{0FNqi_hz%BaBd4keB=G#CYGI+ZBxvXjTc%zR6P*w|?IIg@cWTPP=8|i<8zz1I{{H*9pEY`0uL(uIc3ycQ>%Yi+ zNAKtQ#tb)Py!XcHmsV@>KaAvJIAL+--MRH%tPD4o7xpnSY}{hapb*6HKytxN|EHpo$@D)!UEvUtIp_#Bg9*9=~NrcgoxCcN;#Mu_gL3WhCn?4q%A5 zpVcPmy7#+Fvu!cU2R?(xiMM3L*LE*y4E(8KvRCsP!;9)fhJ?VD3#T7&G{jBJocEoD z>6+1l`a=v7nJ2eLIhm|e71_u8PpIg&=CU2^f1=qE7_guT{^cRxx<#K|dF~Dj9tKZW KKbLh*2~7Zfmw$Nx literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png b/3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..7e750cca89b2de97bc668d9ef2085e312148bec9 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsY#wLjv*P&Z_lmfZ7>jNO?+k0 zqWa-X!>V+)V-7}a#t#C|G^BGj9h|zvS9nE+A&b|)gSlBJ9(t<{gtZ=136d_7}}T~YCOSq6st>^49W bH(1Zi=PD;V!CE}Bba4#Hxc7GYY2FqC9+z0R zR|{CJ7BF~qWOM}YTF@Zk%oww`{Yd2TQ(64K0|TBJu%B@MwE3e%QrfFX6Wy51Z=SEu zZF%?S9d!KPoWJqtEu%S9MD4?Zwj= zve!=i99v#_vTB-%)9-upK2N-SK&ATA-%ZPR?Vs-WeCqk^_0zv{&0|`i-FWSro`nd+R5z6sm0z&txTnMy*>mNU(xngern>)Us1 zytZoP8LjWk+q>mo^h-Z~o0u&1eLMRFNsmd3D)c;~`2OC>d-Q8X!QZ%N3mMWfa}}b} zCoRc-bndQe)PL4cF^&hNf$ueb{}H_z@@)1_F{VdHbgjhyG2gz#JMY`7z4gZ8d=G+K jnSYcr0v(GB{IGt&xO{=`1a}oy7mylHS3j3^P6zXC*GHMnZx)*}Oekcj%f8*kP~xcco1>25 z!oi=_3>x*P?bzc*8K%^&Y0_di@F}7GqL?~AgV=Yki~sGHDjD_go!=Cc{{MM$!qfcs z66w_`j1hS}uTQ`Gr13j0qvd0DO!_8U!@j?U>09bG#pkBmosa7;Y&*`dL&#?L->a74 zjz<|2K88-0o|``Pp5TJBTQ|0UzH5G}g6D?Y>EAaO%Fp9a*ll*^tmgGUG6kFrbzGJW ovyRw4cwNBaz<>oUu)51A9ut1S^0-V5Fz6UOUHx3vIVCg!06?pbVE_OC literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png b/3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..936fa669bed0bf5dd9c91a081b5b023106fccc7e GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsVkl?jv*QM-d;S&#h55^^yB~S zo0q03&rC}-v`$s!Z{&@(Ug~mf)}F=*%O{x6Sa!tu#zzL5L+OdhCT+bbR^`?2E&slf z%GS+%%y#+4!Jk!~Z%_Yp%K9gA#^=_(KfDUhEf_*-7zkChOBB?A1 zZOuoT{Wh~6*maLV!Cq4J+1r|#f(MEN&AHw_);_i_-R|UH#RYfwi05wGxad??B4b~o x$EAOvde#l)lVuNVcV}Q^5pcjsG|XqtyKH1S;lOu>Mxg%~JYD@<);T3K0RSVuXxab( literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_gold.png b/3d_armor/3d_armor/textures/3d_armor_helmet_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..3a51908cf07a0d3a3872bf7386ea2f0542d8950a GIT binary patch literal 353 zcmV-n0iOPeP)uw`0uQ{JFSa0C=8a{B;%c*!Bq!%>ZEG{&jB)AS*tk8*2g}6xjnv z;lt{Ov4HdU0AZs`0P+-cpTld>4gjpW6yFShv^;5lx-I@ZfbQ!UEZDkF#+JnT?vN?~ z(k`zyIsq`dz;L~vZ_Jf0VP1#%#Q~NSm4#Ljr)p zu}fsY3aA=@?6?b$Fm?po_&!!xbqEB=PLcpr1;E%J9@zt?PKo+nD;gJps&9keh=#=$ zS{$Hs2tWV=5P$##AOHafKmY;|fB*y_Kzn%unm;N|?%uEA00000NkvXXu0mjfti+MI literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png b/3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..fb3ba0e9a4ab875911b1aff7a4cff4d9eff41a8b GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsY9MFjv*QMlK=ewZ_jMEVN08! zYvUS=ReR=0l-2gfIcDs>^S|fEnRFQ=z7D?DTRL+ZRypW!PyL@I#S8?87k-_4_y}XW znsHKS!t{Rvt6L>rwe>O^@KgmcUi?wU*s}hA(?pHh!^ar;!<>%v$F+S}93AlVVdwVL z71j+A%_pv!|B!XaHh9$#$lha>aD{O(pG4__70hn3L<=#NGcepbW;&tH=)?)2Zx}pX L{an^LB{Ts5Xv|^$ literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png b/3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..2e9caef98cd3e28179670de82ff9dc3e5c65c6b4 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|^K=ba4#Hxc7GYLC(Vl0xWmi z=l|QywEdybr6z9=`<2T2&u5wiHJsrToA#KeQKg{k+s6JARug3-w|@%ok~GSe(Qh^N zy}qh)Uuf;Fe;1e0eZ4sA_PkKGMbZp8HTUCd89zMpHM_>jV4RtjD6>01neF*| z#)!qt40~9=-R^TWXQ;TIxKEm)!{*5R{-e(rf5fD3e3&73>|WrOZJNH5AM>3zET6_y zk=KaYcS{1pKedw$mulY>9RA$4ILh99Qv2zKOUECWD^>^i-eIoOWfWk*f?oKu Z|Ft$d|4eGu5@1*{c)I$ztaD0e0sx54ia!7V literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png b/3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..91e7c185226ab624f9641795e100145409886232 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsUw~)jv*QM-d@_z+3XyqZ5i!yR7^T=1em>cA}LC~l%p*&2}k8h%b$CUfm?|%QTc`hP5vP;9t zn%7al`m2FW)$_K8j1ITs&RnY7Ea@=o8N-pn2Uj+~d9dg7Csv2p`{hg?lU8qEm|67x zVC5TjgZK~;f9?yV$_$~UM%mB4F;_f4zL9ys`}||yE1&;-%Xm%iSIN8ojQ9B%Sp*yy ea1(WWGZ_4*I8I3S6_f?~hr!d;&t;ucLK6VgPF<}4 literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_steel.png b/3d_armor/3d_armor/textures/3d_armor_helmet_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c4a39518cad394cf697221a7ade4914792960f GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|`hrba4#Hxc7FtFV`Uhf!1o{ z?ehW!Y#KSbIy%GyR@zrE9gUuHf@PjfTjpygkF2zhxs%*#;-kQa z9Tb?-%TRmwX}CmV>G#ikuiFwBf2o}`oz>c~&ECd>c~@TNuSjm)>8z>o&HEXY%wC7K wXq)V8xUz#m`~g!;19t(V-T_u5&H|fzy)GL?BE?pe0>h5M)78&qol`;+00yX#8vpH?O=``TTlMa?iuqw8;}q zAMBD`?Z5Q$#_#X8OEZ}6f4S%O`#-!30(2N3R7S4;UR3#7Cf13e?6!hp!`UoB>wvYt zH}daOvuvnZoT|%pUY%LMHJrigY1h^D(~BqP9H^YW84S1X{+rJ{ v@BW9cjsBi|4{i%OFfg(R;3OVAZ(v_L$#H`7j3t3U-!XW)`njxgN@xNAbJJ!X literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_wood.png b/3d_armor/3d_armor/textures/3d_armor_helmet_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..8bda21c7fb8a00e80c160685e3118f4d61ee530a GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|{6)ba4#Hxc7FNAs3UOfNQak zH8=OcQ>XkkY}hn0_wA7){S66;FHQF}u=n^pI6R?uUBZ#V=i>8IjaA<4nLBg7Kr+v? zt&x67o9BtCZuCFTe~r;&(eb-FD|4TDR!pD4%`oZ9(=A@F__|dhi-JpEDGf<@otm-MDi>eoFc~zN-J5KQmsa;jY=;dM3m{H@Z3d1=oqY%xe>t zu|7%8zA44G*TQn$FetP1Yw13vLEz1-%UOZ&>jEj3LZ)j}G`PchG;A!5gh6~qaC-^kx zhiIQS`RH-jwLz*XVT+2Wj&z@qLo7}w|M>sko>_H9Vu9p@ zMW_GDx5%d6JSd^Y_xSLWjZzGgeq7DrIp#mv!jOld^Wc+-ypDzs&TlI-IF`!bBe$N> zKwLqaX=9?^g0+k%5*to4tVv`Lx*@9Lw1wLtEAf-WvgR8*m;_^GJ@oG|NU+W1JM@C> zz>$epn|K>M&y@bP0 Hl+XkK3x`h6 literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png b/3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..1b013957fa563bd7459646aeede9b25fb92150b6 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`ot`d^Ar_~TfBgS%lu|V>` zsv{rdC546D4H;AlYtHZbe`_hv|EEcYybPUsko>_H9Vu9p= z1d%WE9q&o>J$&Smq+lAs%i!su!)C-)_BXv_c6TO&2ag7OSaS+T7vuVUfB(-f=gH#O z#pqx-LB@l(kWE3Gsj^ps*@5f9y#q-M9(*~BS7RI2FuY^ZNn|KzoW!bOwpinUV26RJ z!Sn{zL?MG7ZK;V@8+4gEn>lusko>_H9Vu9oV z0g(^$58mMDd-%vBNx?LNm%-EJ&Hdl;xu=%=FZ#Mwg010*Ly>~%iM9n2AO2lm|9>z4 zyGGGP(hNe(CmXK_q%&+%Qkbp5?7)?9??4)Z2j7ymUwRH<4CRc|3>tPa++-4&9VqgE z!)1ol4DSPz3^*l@iT0kzI*`cdC9c4XR90}!sko>_H9Vu7T= z_MV6K9N})x20k*!+D|5%GU$BVA=9Maku1R=)O=D|x+&|x`F4Sx(+n$Y>X;YkIfSvK z9gcB`W}a|}VL9WCLkub#_Rp^nZ@6;kiJ=es=0aAbSymI`S{MUr>RFj37E3b-yN7X` zF{p7Ci5a<>GsMcJaoS8>nEXYh+xzZ;bTx)EVMp(_+F#rVbR2`HtDnm{r-UW|0~|w% literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png b/3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..43e6b14b4f98882369273e93203c9c43afd6f6a3 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`%ROBjLo8084c;i&pdgUU7VRyb zz+jzTz!ILo;$Fn5ts8ro@g8^i!+GL4I$KW2su&()pWCs+yx>1q#%<4rWs*uKiv9OW zFetVtC&_$|X0Ui=rNUZrSLb$_+krK{5zUMLNgQCik=@Jt;9}G_&h^Y+c(NFeN;bUs zZJHf0i&45_zlyE!&jQ^8zYe4;HK;Y%x_!DO&8)F#S{v^MtN2NIGh6p=GQI!Z{xWN} X?^LEd?cdvhPG<0Q^>bP0l+XkKvmR0n literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png b/3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..170f0d9b303e5655c3600bbbfbeaaf3e2cd82f02 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Gdx`!Lo7}w|M>sko>_H9;sf3d z-z}JrZ{51}zoUhzopr0LR=;c>n+a literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_boots_wood.png b/3d_armor/3d_armor/textures/3d_armor_inv_boots_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e7863085a061f199904b5bee6c16261129298e GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`^E_P~Lo7}w|M>sko>_H9;s=Qb zIVykUWrda7lMZZhTmOIUOtb%!_iQ!fVd!jp;*eD!wPC0Em-^VIga3ORVtJSyk`yc_ zNZpcj*eISbt8gbn8b=pnTh^lgi4vAm9BXDM;9?uk0)^WQ4eAQ$6 zs0#2a^aAiy{#+jBiK_sgavQ+ldI225zBj-j9v%evr78eOO>O@NgwGMKWfAVY00000 LNkvXXu0mjf+I(u{ literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png b/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..ca315dfce39db75c787fe7ccf3b4b0df48b4f3bb GIT binary patch literal 246 zcmVe*q*EAYq;mprRfowf;WNqFdjC^ zP4!Swa`QLw%JRPf9u9QRg|m9{_)L>>9h8fJeWn5U&AknVfYp96^|qic&k*1#*Z+rl w(*WN>XOf=+$P5JWsiy!gZk_@F8L9R^0qXq@kXwH%_5c6?07*qoM6N<$g2e)CFaQ7m literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png b/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..46742a1cd1ec3b135be47b6d92793f68a2adc6ad GIT binary patch literal 258 zcmV+d0sa1oP)!X<}I|#MfQy*p+Lxfje%(}OaMKfSLI?LZ89R?x4ehP%$P05xIV!Ipxe(g zOMp4ZcYyALfY}7@KdA!B1kHfe`D7CKBuxN*rc#770hR literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png b/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbea82b2234066208e37098f3541d227932c9bf GIT binary patch literal 256 zcmV+b0ssDqP)<0o!AtlQpXO|WCm9|$Nu;}tB_}gW|LCi* zR%yGtr^_K3blOisZBFddkD7<={WNQoCH}1pa|X00?@Gp3J?7Opd7$CTL|8B4<5}_TlVA50r<>4ZlCG{bc7{< zxGKFa3G<4(0Nrv6;Nq466jHty11gAwR{?&h3m~MY*8c(XZf8#pZ5$T>0000-r2W%Ogzb!*;2r9zJE1-2vwLUJTQ8D`D-a<0$}<`LZ{G zco+bG5`U^iMG3P2eykdbzW|V$&})eH>dE7o-IR5vUjUx!F@4ko_z}7QT$Nv!hq>Y= wz^7aT7+e>?A-s139OB_afPZQNfV5Qm-(zipq9vtyMF0Q*07*qoM6N<$f{=V?7ytkO literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png b/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..434f1bc3191b0ac401c01e0774d3ec9da02f6cf4 GIT binary patch literal 252 zcmV! znP1i>AsQxte}b$7P=sg(K*wsK^cMhyCh08%XY}CFOtodqv;^Q2J#L@s0(68S0Iy1~ zOT)b4EaEQV0B!;R0000R`xa`sI{G)Ru=Y)m0m)yu=E;Uzyn5JAVd7lir`v&NHT9eNoI$#g-?uH!Y z3ve*hqgyusph%oAg~CjkYLKOu)J*x8O;b2*r>^5}=F%Ld_aEfV_er1ltpk>mUqSPa u9q1BUd-(qdx$V{{UyaauzWi4P9pMStup~gG@Fpi4vs`Uhz_8=2!qF4k z4&P8PW#LU=;A%GT5I#{RF<*oE$}*p(YzE1;GwhNclNevj*uZ#zK`DdbogTe~DWM4fKNCX8 literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png b/3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..f5f2fa67c6c08a7205af2f7106e072ea7046680b GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`m7Xq+Ar_~TfBgS%lu|O(7 z^6UqBX|+=f6At~>-jJNrmT>jY|0bY(|LH)(0G`>38f<5DoiF|Qtk~4Hv9Tz@w1SsG zOGG@0A$bPliJD714ZGTMm@gPQG9O@M*&@1}(ZO<0BS$xD44Xg?>kjRLC00!@6Ef1& Y7?^do{V*_<2f2>H)78&qol`;+0OAWh_W%F@ literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png b/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..850991c6211995089e490f9a5c33d6d050f71488 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`)t)YnAr_~TfBgS%lu|P^e z<;fp;X|+=f6P%=HUyd*|bKa1}$Gi8-{xxsJxY#-qjaiN|WWEg9@vK|i{&1#*vHO-^ArW11q}(8npoz@;!@?G7G>lMi`aB6J=YH6-X9;5j(;700sX cg)?U|=&8?SuD7-e2Rehn)78&qol`;+0IwoE2LJ#7 literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png b/3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..5414f9a2e54497b6a54784014db9a0c6ee3770b9 GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`ot`d^Ar_~TfBgS%lu|P86 zeIZ-V=FOY`Cm%Mb+{4x&^6vI#ZtXV7rppX7o_$XD|6l*@i6IwT=Rux>nGU(Rx-p;c z@2`Jo(!)E6dF8=u29Jf?ma$13=5cs7IfdcG$ro&sQW&h%G8i-(9R3|iW$@t3S2&c! sIGvFtnQ$V zh1#$CH$9}Z*-i?YFf7@icksdgO>XP|&#rbpC~<_Xv++rXk;0uwQEjzT46?2Z|2Ngl zi7@o&Tflhg5|afl!%1F2=7OV^foweo_AoF+$1R@y{O-IepiK;(u6{1-oD!M^)5zeHsOhYOCez6$)`PR4zX4u4uW!%PaiVZU(8fCNGvU zZz>c{);_m<0(XM<3iX5;<%ViL$CdjSe;r;`5;|A;2J41nCBJt~npWl%#!#HxaC4ci zKAVN7*gxe5myI`Ef59~G-oeV)XIowG@hF#;PPHlbhzCZWhaEP;>?y+~jBHWw2?@fFAa`}xkgE+V>r zRQ&9>i$LeyDwX^cfN?vlM-9hKD)|oi01$kfmhrsw@w#6}v1U(@CP0TX;Y|YQ5mPtw zRnHC~LpB9aqRRGLSPM#K5qfrY0Gc1^S=^-00000NkvXXu0mjfXsko>^6*_3)}A zALdK+TxFQhQl`mr`l!=~kG8KL`C{wBM^%Hpq PbSs0WtDnm{r-UW|-s?_* literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png b/3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..8197b01bbf70a4bbb78e4c31d14a98e250a3f95f GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vproLLo7}w|M>sko>^65s&f7x z`JUdU4aqBP!k7C5n63sVWNa*yXaI9i&vi&vO#UDZbS8tR LtDnm{r-UW|mB>&g literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png b/3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..9dac33bebbd840d8c48d959641b8a13296fd5bbc GIT binary patch literal 213 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`b39!fLo7}w|M>sko>^65YI4pO z`JQH`4aqBP!k8U|ioS0Be|4G9FZqr2`V!4IUP!3)<#2Q{DzNV5fA_ck|7&repaQRf z)UjjP3_gM!%D1_MnI(JfGAxjvIG2Aj=QGn85;qtYMD1Zqun<05UBP=`702BVjK&Se z5*x&NZ}2G0;7hpJI`P(rlMA(*5_8xRrXD`w5n;q*SIOqJ*_eSVZ<_H*D}Io}89ZJ6 KT-G@yGywp6;!RWl literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png b/3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..5aeccb588d6beda200114dc6efff9113e400c590 GIT binary patch literal 238 zcmV;O>1t-1w34bK4jr;;85gs*-Vz+#%{5EC7`Q6QF}6Ov?~; o8r>jSarL}qk*tOBe0saiKVJ&BiR(^c-v9sr07*qoM6N<$fSj3`K7ST1py*pvw%5kQEpqTV$eCq|6!_z|lMDOAhC=kSM)W>NWBdNC!p0{^3eeAyh;;$>X( z!dg&b4gr+tvqu18P62!n>r(*AQ?DaH`)Lch#0-#LqMw5i;O8I&_(4MBCHiSh2PqoY j%-cPr=)q)ux%!-cSXB1Md4FO-00000NkvXXu0mjfVK`iH literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_inv_leggings_wood.png b/3d_armor/3d_armor/textures/3d_armor_inv_leggings_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..c46cdd9258a31ccd88aa5ca741ac0d90e33ed721 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`vpiiKLo7}w|M>sko>^7mT!Go7 zfBsy@vJO1Ecj5nOsl5jzj<_8=@yLRgL34$-0mI{KKGGJv$;}2Hynf6MT$A=}{h!YA zs>!gU_Z<7mgINs=XK7sg$G-CDOQxKEN7UPs7*2F5{9p82Sk2vl$Kl_RWgPQm+87nY z6FxKPS+eDvJCeqrXE}*S;TEe%Dv literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_admin.png b/3d_armor/3d_armor/textures/3d_armor_leggings_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..1f7207d0d8a5b050c2fba0621c99e5de3c3a11a4 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQqMhI978hhy`8?1m&uUF)t1fs zq5eGun4NrHRTH5yf_9EAP+pQe({p};Vr41S4K1@5T z@H=YXe>R3&^Gn6PKAS=NxM}eI U)4Q7=0KLrM>FVdQ&MBb@0BD+Sga7~l literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png b/3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..95c973a44492b3248ce3568e900019c5d28229c1 GIT binary patch literal 298 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsgIs6jv*QM-d;1zVsex?`tiR> zS*ELjxyM6IAr@C=?w2}SyaGgQTHkghOucj9*ldj_Y+R32_lZnqb(iTDxFCBkeBbwt ze`X}5&7E0zx{!%Op@9K|DEQuRrj+NwL@Nf~dF$Tg|6ofvF4r)1ZR}3Q_`JmB@_Nr? zgkH0od9fI*_*(NJ?BmZr#y7gZK4tg0)6V#0>rDP_{C4a4n)gP`zilMwFk75qUjN-Sd& zn-kQVbR!yMZ?w7dPfHY+dvjdPMdD{8zhXz))uSn&`R1oMoj9{+?##POIy{2In1E(r zfXw~#+DmTf%zC|E_Sf%ki9c`NXVjSSI!|o-;Z+h1r^{}hs8hLn`n!VGgE~7g?h_1i z_S8)M@?EfDlB(qnu?+T0yleVxe<`j|38|YTd}gCNzk~M6xG$%k-C$V3*r2`%D71P8 zMKf&+=!dpf49IPb~WZ zod(93Plt~)Mp~^9^V{8&rKtCF;rj+wIj02Hi)LO4c9RP^X2jWSP`D literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png b/3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..537adcbfac3489ee91de0531fa6f418e014466fd GIT binary patch literal 251 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQinWU978hhy}iDX_lN=y>xKJE z7cWX{^qAQw`9iXJtC8cco~PP=92@ik*X?-pK|dy9*+aqGTrMorm{}AU7&#mmm;@Ra z;7o?oY%dSXG;~k+d_y&*quY(qsZMzYi@|lKUx)4=yU+Y$-g?~&&v)5f?g1*<+9Mw4 zJ)1H7>q>@qaX*AlOo?x(E1ds9V?JAg?swgSss0;T&n1h`zm>u->HO~UjPK8Pvi&r6 uVPKlU7O`!c?W>p-JNaVki~e0_&{qn6XL@-~;Ypxx7(8A5T-G@yGywnxHDa0o literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png b/3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..09f848e99bf3e801a217fd20210c9a308dd9caa5 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsWYA~jv*QM-d|;19 zUz6ioo?saUQ~SfI6Rg?VxE}=0VdUp(jZ|PcWZ=5TXUZBTC!>nr*Z1tH_5JKUdu{Q( z>daybpivm0PVR#LTyepdz4xMbXl=c>{oYN68moWu1~ar0X0)95Z{N`W^m(tSgVDvh ziECY4RJ1=O#OZ8jjyPZX@TO6|O;bc3dqDoj!u4MRy&enhdG?LrZZ-ES|Bn_||CL>> uy4m_U>F4!#P1hLj?&bZd&cblO<^kuf8SxW@ZlyMYT;l2K=d#Wzp$Py231t}o literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png b/3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..6bf702f76a7fd2f132ae897becb2412d6b97c38b GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQZGGS978hhy`6rM_mBaPi!EF6 z1}13(2IUZ)BjV8p42KOE_N#?g1^#MIQD{>6Ug+iD_2h@;#+c%A=}0vOCIu`gZTHD^ zS-;P}zBb(6n{FufSoN=*gVm8|Z|q|C$}y-^?@3XV3sJroZT_I_`}2odAuJ3Nbdng1 z!s`C>GQ|B?oaZo8hhOmHS@VNeXU7Zm{P@PW#OssqrcHwPSs6_B7#-|*&&II3;L3J> zhPyLFQ_J~&*fHqz>Z(h8sAc%!@JmvNfl)%*Vctta)oI3d$Db9|=*@a@YX6OR=>yD- Xs>buw<4hI+JgTe~DWM4ffWT)_ literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png b/3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..96a11bf72c3a7f6446cd2852be1cb51106d0f514 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsmq=&jv*QM-dLRSZ{`hy}GSQa_O7xjMktg2DU&7sn1}&WA$H5~jY_6B*?mgBS*exZg`e1y28E+%{7#;O#BOvv(L1=42)A+8A!*nQJ)d z^w&461~X=}Kd;PSP}-?{p#AlK#y^6B4h_`@q-WLnPq>w`?IF;644$rjF6*2UngDn9 BVIBYg literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png b/3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..df3cf162dcc69473694fb11378db7f069aa3ff32 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQg1z7978hhy`6rLlgUuPHMrCL zwV?kug&U0#jp7?+HwtfLeqSy5H}StwTuWfH+Rt|XZ_Wuu`I8dOW=6h>^kiUhz=DEq zt>K;Zc3b7&ssm3Csr7D@;QwXGAd^&Tck^GBCL4p{v*U+Vjx>86sea9Nr%h3Qjf*P- z!$~DJh2*E-?=w93`u-8;kCe)ej`jOEf0>_WQQlX@utMd&injDeUj~Q6pE=!Xj2UjU zF5Xwi(4S`$TJq+c;C&VbGcz>_p!^S)Uy?!$j4z}a(tp_~?UtM${P^;ZH?vlJU;k}7 bTLJsd&))fu@8~N4JgTe~DWM4f2BC5p literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png b/3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..1bb32956dd4781fd28904cf7056f949e01d420bf GIT binary patch literal 308 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVso$P1jv*QM-d;1zVsex?`tiR^ zVlM9~v+S*@vse;0Zi{5zq;4SAD3GL^G`~S($sM!aCo*!*o>9du8!x1#sJn8^ki8eK zyXW|)^t^BeT@i!C_8&amfh8DocTrO9y^1@+DA*S7x(Xw*u~)gFTMQWQO30C*(a=3klpG|aKSxZ-u@ zj(@io*59w)@#p3%h9rY3>lJo=M;X3McYJqTqN#J|tSlu;vc z($%d8OeRz&c)vNz@93>GEjb{nm8beM!IRRr3Y3pyU7~7YQQCQ!8#$6_i;TN5JVPU;;H*1+}6wdW$#dH5rgI c+x9Xu%$5nCpmH>{0_Z0OPgg&ebxsLQ07{Ns@&Et; literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png b/3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..9fc78fb5104c9aa2c91753f0636176a52d30e600 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQcpcy978hhy`6rLv&BHb^>VxW z`>+J*X&ZDSn*K(#tAF2-o5QGV|H09v<+t_>wD1 QKo2u`y85}Sb4q9e08*rDi2wiq literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png b/3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..dde7b3deadb9794d4a2eaf1f1268e77e508e61ee GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2d_FfcNCx;Tbp+EVTLG5S9CovF)%R!{b7x0|^O?3;z_&d@ge#Ypt!r z_S**fGknU@^rp!7|7~J;_4T?^kse#ZZrj;A1LoBq_${R7*?xU9%Ylap;(;3fZ-!5h ze6Y7;&g@xrv)1{@o~qx*Y0O?z{fYmA{XzyN5xEa6nyKj%R1Wh90t1D?)78&qol`;+ E0EgXxoB#j- literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_steel.png b/3d_armor/3d_armor/textures/3d_armor_leggings_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..974cb5d8ee6740e6645e60cf1cabb075afcf32b8 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQqMhI978hhy}jzlb;v-3<-(ma zYsJsF3D`7pymQ&p(A6HW$F;*JL4{3|Gk1+|y5W}nx@XU4UzU2mcV=-91B(I!BZmV6 zlRyKEY0MI#qc6YlT2;#a+ikg3`|>O5`wo7HsQP=J@xqz6Ro~7Z-z#bEkh?3tmsn$>TiIyQKH&6=&vNriSbM4_Ullon(ICS)}{v z##{$vXr5#?w)tCJz+Siq{(tHy2zTX)`k2Af)z4*}Q$iB}a=LQp literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_wood.png b/3d_armor/3d_armor/textures/3d_armor_leggings_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..96081449832f68efb5d438d6ea0e21fad7f44c7e GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQpY@9978hhy`65z#bhYpT0H5k zPV3q=Z^X835IJ%!j9)QlB2Ow~gXouuClR1IR6&u6{1-oD!Mhm0@g4zI`QsmS>0IlD(zpF|CuGef(O<8g%lhb z7#NvYI0TRw2d*=}suX3o>!K*|N?gyJ13-)DXL z`Y%Qz!AzEE!>xJunBs~VpEBNIN`LS_?ZEX5@)H>tk223|@s6J$p1IZ@=vD?#S3j3^ HP6!lvI6-E$sR$z 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 literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/inventory_plus_armor.png b/3d_armor/3d_armor/textures/inventory_plus_armor.png new file mode 100644 index 0000000000000000000000000000000000000000..7f7d63e55aa33b25f5324baed0d6dfd3259e5c6f GIT binary patch literal 571 zcmV-B0>u4^P)p_d8}JPV3kxe7v04xWeFlrgp9c`}4Mgy#wO?G~ zoH%E=b0^6}XU8qHIP6Svlk??fa-)ecCYhv?e*pP%zJB4=+QPJPDKsWVQ2;O+Y|T5> z7NQY==C3<5W_Zx62yJa48Uc1!W=r#r%fs@Q&*(!;rvNZonwzpBfPDW|0A^!i09u^` z-~+>|eE{e~Oq!O~`fjcU)&Rc{CWna> z+St$7Xn>F~87Ai{&rbV6F^(W(0l*45DOc+f`e;n(u>oLpI`z_cG#Zs{h$VClAlck7 zR=rg#@9`=687~27M&UgQ0293rhvw+%(Q5hR_{$_etrg{M=wlqlVC;7QoLe9PV6c6A zZDm(U^ZXfYjQI(G_Y`1dm=Fe-oCYOCVXh(ZjIsO(rJ)829z&+qrhYH27%&?!Cjeu( zRY~{{}lPykN0#q&>kJ_5o0RH4Zr=MBNVxfJo7n}e9002ov JPDHLkV1h9+^J)M9 literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor/textures/preview_index.txt b/3d_armor/3d_armor/textures/preview_index.txt new file mode 100644 index 0000000..9e2fe9d --- /dev/null +++ b/3d_armor/3d_armor/textures/preview_index.txt @@ -0,0 +1,44 @@ +3d_armor/textures/3d_armor_helmet_wood.png:head +3d_armor/textures/3d_armor_chestplate_wood.png:torso +3d_armor/textures/3d_armor_leggings_wood.png:legs +3d_armor/textures/3d_armor_boots_wood.png:feet + +3d_armor/textures/3d_armor_helmet_cactus.png:head +3d_armor/textures/3d_armor_chestplate_cactus.png:torso +3d_armor/textures/3d_armor_leggings_cactus.png:legs +3d_armor/textures/3d_armor_boots_cactus.png:feet + +3d_armor/textures/3d_armor_helmet_steel.png:head +3d_armor/textures/3d_armor_chestplate_steel.png:torso +3d_armor/textures/3d_armor_leggings_steel.png:legs +3d_armor/textures/3d_armor_boots_steel.png:feet + +3d_armor/textures/3d_armor_helmet_bronze.png:head +3d_armor/textures/3d_armor_chestplate_bronze.png:torso +3d_armor/textures/3d_armor_leggings_bronze.png:legs +3d_armor/textures/3d_armor_boots_bronze.png:feet + +3d_armor/textures/3d_armor_helmet_gold.png:head +3d_armor/textures/3d_armor_chestplate_gold.png:torso +3d_armor/textures/3d_armor_leggings_gold.png:legs +3d_armor/textures/3d_armor_boots_gold.png:feet + +3d_armor/textures/3d_armor_helmet_diamond.png:head +3d_armor/textures/3d_armor_chestplate_diamond.png:torso +3d_armor/textures/3d_armor_leggings_diamond.png:legs +3d_armor/textures/3d_armor_boots_diamond.png:feet + +3d_armor/textures/3d_armor_helmet_mithril.png:head +3d_armor/textures/3d_armor_chestplate_mithril.png:torso +3d_armor/textures/3d_armor_leggings_mithril.png:legs +3d_armor/textures/3d_armor_boots_mithril.png:feet + +3d_armor/textures/3d_armor_helmet_crystal.png:head +3d_armor/textures/3d_armor_chestplate_crystal.png:torso +3d_armor/textures/3d_armor_leggings_crystal.png:legs +3d_armor/textures/3d_armor_boots_crystal.png:feet + +3d_armor/textures/3d_armor_helmet_admin.png:head +3d_armor/textures/3d_armor_chestplate_admin.png:torso +3d_armor/textures/3d_armor_leggings_admin.png:legs +3d_armor/textures/3d_armor_boots_admin.png:feet diff --git a/3d_armor/3d_armor/tools/README.md b/3d_armor/3d_armor/tools/README.md new file mode 100644 index 0000000..6aa7ffe --- /dev/null +++ b/3d_armor/3d_armor/tools/README.md @@ -0,0 +1,7 @@ +# Intllib tool + +please consider using the intllib tool to update locale files: + +```../../intllib/tools/xgettext.sh ../**/*.lua``` + +make sure you are in `3d_armor` derectory before running this command diff --git a/3d_armor/3d_armor/tools/updatepo.sh b/3d_armor/3d_armor/tools/updatepo.sh new file mode 100755 index 0000000..52de990 --- /dev/null +++ b/3d_armor/3d_armor/tools/updatepo.sh @@ -0,0 +1,24 @@ +#! /bin/bash + +# To create a new translation: +# msginit --locale=ll_CC -o locale/ll_CC.po -i locale/template.pot + +cd "$(dirname "${BASH_SOURCE[0]}")/.."; + +# Extract translatable strings. +xgettext --from-code=UTF-8 \ + --language=Lua \ + --sort-by-file \ + --keyword=S \ + --keyword=NS:1,2 \ + --keyword=N_ \ + --add-comments='Translators:' \ + --add-location=file \ + -o locale/template.pot \ + $(find .. -name '*.lua') + +# Update translations. +find locale -name '*.po' | while read -r file; do + echo $file + msgmerge --update $file locale/template.pot; +done diff --git a/3d_armor/3d_armor_ip/LICENSE.txt b/3d_armor/3d_armor_ip/LICENSE.txt new file mode 100644 index 0000000..b924ac0 --- /dev/null +++ b/3d_armor/3d_armor_ip/LICENSE.txt @@ -0,0 +1,18 @@ +[mod] 3d Armor integration to inventory plus [3d_armor_ip] +========================================================== + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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. diff --git a/3d_armor/3d_armor_ip/depends.txt b/3d_armor/3d_armor_ip/depends.txt new file mode 100644 index 0000000..e96293b --- /dev/null +++ b/3d_armor/3d_armor_ip/depends.txt @@ -0,0 +1,2 @@ +3d_armor +inventory_plus? diff --git a/3d_armor/3d_armor_ip/description.txt b/3d_armor/3d_armor_ip/description.txt new file mode 100644 index 0000000..58b700e --- /dev/null +++ b/3d_armor/3d_armor_ip/description.txt @@ -0,0 +1 @@ +Adds 3d_armor page to the inventory plus. diff --git a/3d_armor/3d_armor_ip/init.lua b/3d_armor/3d_armor_ip/init.lua new file mode 100644 index 0000000..7701a70 --- /dev/null +++ b/3d_armor/3d_armor_ip/init.lua @@ -0,0 +1,38 @@ +-- support for i18n +local S = armor_i18n.gettext +local F = minetest.formspec_escape + +if not minetest.global_exists("inventory_plus") then + minetest.log("warning", S("3d_armor_ip: Mod loaded but unused.")) + return +end + +armor.formspec = "size[8,8.5]button[6,0;2,0.5;main;"..F(S("Back")).."]"..armor.formspec +armor:register_on_update(function(player) + local name = player:get_player_name() + local formspec = armor:get_armor_formspec(name, true) + local page = player:get_inventory_formspec() + if page:find("detached:"..name.."_armor") then + inventory_plus.set_inventory_formspec(player, formspec) + end +end) + +if minetest.get_modpath("crafting") then + inventory_plus.get_formspec = function(player, page) + end +end + +minetest.register_on_joinplayer(function(player) + inventory_plus.register_button(player,"armor", S("Armor")) +end) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.armor then + local name = armor:get_valid_player(player, "[on_player_receive_fields]") + if not name then + return + end + local formspec = armor:get_armor_formspec(name, true) + inventory_plus.set_inventory_formspec(player, formspec) + end +end) diff --git a/3d_armor/3d_armor_ip/mod.conf b/3d_armor/3d_armor_ip/mod.conf new file mode 100644 index 0000000..0fe7f4e --- /dev/null +++ b/3d_armor/3d_armor_ip/mod.conf @@ -0,0 +1,4 @@ +name = 3d_armor_ip +depends = 3d_armor +optional_depends = inventory_plus +description = Adds 3d_armor page to the inventory plus. diff --git a/3d_armor/3d_armor_sfinv/LICENSE.txt b/3d_armor/3d_armor_sfinv/LICENSE.txt new file mode 100644 index 0000000..2b2a9f6 --- /dev/null +++ b/3d_armor/3d_armor_sfinv/LICENSE.txt @@ -0,0 +1,18 @@ +[mod] 3d Armor sfinv integration [3d_armor_sfinv] +================================================= + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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. diff --git a/3d_armor/3d_armor_sfinv/depends.txt b/3d_armor/3d_armor_sfinv/depends.txt new file mode 100644 index 0000000..c7beeda --- /dev/null +++ b/3d_armor/3d_armor_sfinv/depends.txt @@ -0,0 +1,2 @@ +3d_armor +sfinv? diff --git a/3d_armor/3d_armor_sfinv/description.txt b/3d_armor/3d_armor_sfinv/description.txt new file mode 100644 index 0000000..15f4e96 --- /dev/null +++ b/3d_armor/3d_armor_sfinv/description.txt @@ -0,0 +1 @@ +Adds 3d_armor page to the sfinv inventory. diff --git a/3d_armor/3d_armor_sfinv/init.lua b/3d_armor/3d_armor_sfinv/init.lua new file mode 100644 index 0000000..a937127 --- /dev/null +++ b/3d_armor/3d_armor_sfinv/init.lua @@ -0,0 +1,21 @@ +-- support for i18n +local S = armor_i18n.gettext + +if not minetest.global_exists("sfinv") then + minetest.log("warning", S("3d_armor_sfinv: Mod loaded but unused.")) + return +end + +sfinv.register_page("3d_armor:armor", { + title = S("Armor"), + get = function(self, player, context) + local name = player:get_player_name() + local formspec = armor:get_armor_formspec(name, true) + return sfinv.make_formspec(player, context, formspec, false) + end +}) +armor:register_on_update(function(player) + if sfinv.enabled then + sfinv.set_player_inventory_formspec(player) + end +end) diff --git a/3d_armor/3d_armor_sfinv/mod.conf b/3d_armor/3d_armor_sfinv/mod.conf new file mode 100644 index 0000000..bc0eb89 --- /dev/null +++ b/3d_armor/3d_armor_sfinv/mod.conf @@ -0,0 +1,4 @@ +name = 3d_armor_sfinv +depends = 3d_armor +optional_depends = sfinv +description = Adds 3d_armor page to the sfinv inventory. diff --git a/3d_armor/3d_armor_stand/LICENSE.txt b/3d_armor/3d_armor_stand/LICENSE.txt new file mode 100644 index 0000000..e3cb55d --- /dev/null +++ b/3d_armor/3d_armor_stand/LICENSE.txt @@ -0,0 +1,43 @@ +[mod] 3d Armor Stand [3d_armor_stand] +===================================== + +License Source Code +------------------- + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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. + +Lecense Models +-------------- + +Copyright (C) 2016-2019 Stuart Jones - CC BY-SA 3.0 + +UV model mapping by tobyplowy(aka toby109tt) + +License Textures +---------------- + +3d_armor_stand.png +3d_armor_stand_locked.png + +Copyright (C) 2017-2019 tobyplowy - CC BY-SA 3.0 + +3d_armor_stand_feet.png +3d_armor_stand_head.png +3d_armor_stand_legs.png +3d_armor_stand_torso.png + +Copyright (C) 2016-2019 Stuart Jones - CC BY-SA 3.0 diff --git a/3d_armor/3d_armor_stand/README.txt b/3d_armor/3d_armor_stand/README.txt new file mode 100644 index 0000000..6a98ab9 --- /dev/null +++ b/3d_armor/3d_armor_stand/README.txt @@ -0,0 +1,21 @@ +[mod] 3d Armor Stand [3d_armor_stand] +===================================== + +Depends: 3d_armor + +Adds a chest-like armor stand for armor storage and display. + +Crafting +-------- + +F = Wooden Fence [default:fence_wood] +S = Steel Ingot [default:steel_ingot] + ++---+---+---+ +| | F | | ++---+---+---+ +| | F | | ++---+---+---+ +| S | S | S | ++---+---+---+ + diff --git a/3d_armor/3d_armor_stand/depends.txt b/3d_armor/3d_armor_stand/depends.txt new file mode 100644 index 0000000..fdbb290 --- /dev/null +++ b/3d_armor/3d_armor_stand/depends.txt @@ -0,0 +1,2 @@ +3d_armor + diff --git a/3d_armor/3d_armor_stand/init.lua b/3d_armor/3d_armor_stand/init.lua new file mode 100644 index 0000000..ab4549b --- /dev/null +++ b/3d_armor/3d_armor_stand/init.lua @@ -0,0 +1,353 @@ +-- support for i18n +local S = armor_i18n.gettext + +local armor_stand_formspec = "size[8,7]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + default.get_hotbar_bg(0,3) .. + "list[current_name;armor_head;3,0.5;1,1;]" .. + "list[current_name;armor_torso;4,0.5;1,1;]" .. + "list[current_name;armor_legs;3,1.5;1,1;]" .. + "list[current_name;armor_feet;4,1.5;1,1;]" .. + "image[3,0.5;1,1;3d_armor_stand_head.png]" .. + "image[4,0.5;1,1;3d_armor_stand_torso.png]" .. + "image[3,1.5;1,1;3d_armor_stand_legs.png]" .. + "image[4,1.5;1,1;3d_armor_stand_feet.png]" .. + "list[current_player;main;0,3;8,1;]" .. + "list[current_player;main;0,4.25;8,3;8]" + +local elements = {"head", "torso", "legs", "feet"} + +local function drop_armor(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + local stack = inv:get_stack("armor_"..element, 1) + if stack and stack:get_count() > 0 then + armor.drop_armor(pos, stack) + inv:set_stack("armor_"..element, 1, nil) + end + end +end + +local function get_stand_object(pos) + local object = nil + local objects = minetest.get_objects_inside_radius(pos, 0.5) or {} + for _, obj in pairs(objects) do + local ent = obj:get_luaentity() + if ent then + if ent.name == "3d_armor_stand:armor_entity" then + -- Remove duplicates + if object then + obj:remove() + else + object = obj + end + end + end + end + return object +end + +local function update_entity(pos) + local node = minetest.get_node(pos) + local object = get_stand_object(pos) + if object then + if not string.find(node.name, "3d_armor_stand:") then + object:remove() + return + end + else + object = minetest.add_entity(pos, "3d_armor_stand:armor_entity") + end + if object then + local texture = "3d_armor_trans.png" + local textures = {} + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local yaw = 0 + if inv then + for _, element in pairs(elements) do + local stack = inv:get_stack("armor_"..element, 1) + if stack:get_count() == 1 then + local item = stack:get_name() or "" + local def = stack:get_definition() or {} + local groups = def.groups or {} + if groups["armor_"..element] then + if def.texture then + table.insert(textures, def.texture) + else + table.insert(textures, item:gsub("%:", "_")..".png") + end + end + end + end + end + if #textures > 0 then + texture = table.concat(textures, "^") + end + if node.param2 then + local rot = node.param2 % 4 + if rot == 1 then + yaw = 3 * math.pi / 2 + elseif rot == 2 then + yaw = math.pi + elseif rot == 3 then + yaw = math.pi / 2 + end + end + object:set_yaw(yaw) + object:set_properties({textures={texture}}) + end +end + +local function has_locked_armor_stand_privilege(meta, player) + local name = "" + if player then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + name = player:get_player_name() + end + if name ~= meta:get_string("owner") then + return false + end + return true +end + +local function add_hidden_node(pos, player) + local p = {x=pos.x, y=pos.y + 1, z=pos.z} + local name = player:get_player_name() + local node = minetest.get_node(p) + if node.name == "air" and not minetest.is_protected(pos, name) then + minetest.set_node(p, {name="3d_armor_stand:top"}) + end +end + +local function remove_hidden_node(pos) + local p = {x=pos.x, y=pos.y + 1, z=pos.z} + local node = minetest.get_node(p) + if node.name == "3d_armor_stand:top" then + minetest.remove_node(p) + end +end + +minetest.register_node("3d_armor_stand:top", { + description = S("Armor stand top"), + paramtype = "light", + drawtype = "plantlike", + sunlight_propagates = true, + walkable = true, + pointable = false, + diggable = false, + buildable_to = false, + drop = "", + groups = {not_in_creative_inventory = 1}, + on_blast = function() end, + tiles = {"3d_armor_trans.png"}, +}) + +minetest.register_node("3d_armor_stand:armor_stand", { + description = S("Armor stand"), + drawtype = "mesh", + mesh = "3d_armor_stand.obj", + tiles = {"3d_armor_stand.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25}, + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", armor_stand_formspec) + meta:set_string("infotext", S("Armor Stand")) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + inv:set_size("armor_"..element, 1) + end + end, + can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + if not inv:is_empty("armor_"..element) then + return false + end + end + return true + end, + after_place_node = function(pos, placer) + minetest.add_entity(pos, "3d_armor_stand:armor_entity") + add_hidden_node(pos, placer) + end, + allow_metadata_inventory_put = function(pos, listname, index, stack) + local def = stack:get_definition() or {} + local groups = def.groups or {} + if groups[listname] then + return 1 + end + return 0 + end, + allow_metadata_inventory_move = function(pos) + return 0 + end, + on_metadata_inventory_put = function(pos) + update_entity(pos) + end, + on_metadata_inventory_take = function(pos) + update_entity(pos) + end, + after_destruct = function(pos) + update_entity(pos) + remove_hidden_node(pos) + end, + on_blast = function(pos) + drop_armor(pos) + armor.drop_armor(pos, "3d_armor_stand:armor_stand") + minetest.remove_node(pos) + end, +}) + +minetest.register_node("3d_armor_stand:locked_armor_stand", { + description = S("Locked Armor stand"), + drawtype = "mesh", + mesh = "3d_armor_stand.obj", + tiles = {"3d_armor_stand_locked.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.4375, -0.25, 0.25, 1.4, 0.25}, + {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, + }, + }, + groups = {choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", armor_stand_formspec) + meta:set_string("infotext", S("Armor Stand")) + meta:set_string("owner", "") + local inv = meta:get_inventory() + for _, element in pairs(elements) do + inv:set_size("armor_"..element, 1) + end + end, + can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + if not inv:is_empty("armor_"..element) then + return false + end + end + return true + end, + after_place_node = function(pos, placer) + minetest.add_entity(pos, "3d_armor_stand:armor_entity") + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", S("Armor Stand (owned by @1)", meta:get_string("owner"))) + add_hidden_node(pos, placer) + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_armor_stand_privilege(meta, player) then + return 0 + end + local def = stack:get_definition() or {} + local groups = def.groups or {} + if groups[listname] then + return 1 + end + return 0 + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_armor_stand_privilege(meta, player) then + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_move = function(pos) + return 0 + end, + on_metadata_inventory_put = function(pos) + update_entity(pos) + end, + on_metadata_inventory_take = function(pos) + update_entity(pos) + end, + after_destruct = function(pos) + update_entity(pos) + remove_hidden_node(pos) + end, + on_blast = function(pos) + -- Not affected by TNT + end, +}) + +minetest.register_entity("3d_armor_stand:armor_entity", { + physical = true, + visual = "mesh", + mesh = "3d_armor_entity.obj", + visual_size = {x=1, y=1}, + collisionbox = {0,0,0,0,0,0}, + textures = {"3d_armor_trans.png"}, + pos = nil, + timer = 0, + on_activate = function(self) + local pos = self.object:get_pos() + if pos then + self.pos = vector.round(pos) + update_entity(pos) + end + end, + on_blast = function(self, damage) + local drops = {} + local node = minetest.get_node(self.pos) + if node.name == "3d_armor_stand:armor_stand" then + drop_armor(self.pos) + self.object:remove() + end + return false, false, drops + end, +}) + +minetest.register_abm({ + nodenames = {"3d_armor_stand:locked_armor_stand", "3d_armor_stand:armor_stand"}, + interval = 15, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local num + num = #minetest.get_objects_inside_radius(pos, 0.5) + if num > 0 then return end + update_entity(pos) + end +}) + +minetest.register_craft({ + output = "3d_armor_stand:armor_stand", + recipe = { + {"", "group:fence", ""}, + {"", "group:fence", ""}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + output = "3d_armor_stand:locked_armor_stand", + recipe = { + {"3d_armor_stand:armor_stand", "default:steel_ingot"}, + } +}) diff --git a/3d_armor/3d_armor_stand/mod.conf b/3d_armor/3d_armor_stand/mod.conf new file mode 100644 index 0000000..d1f1a4e --- /dev/null +++ b/3d_armor/3d_armor_stand/mod.conf @@ -0,0 +1,2 @@ +name = 3d_armor_stand +depends = 3d_armor diff --git a/3d_armor/3d_armor_stand/models/3d_armor_entity.obj b/3d_armor/3d_armor_stand/models/3d_armor_entity.obj new file mode 100644 index 0000000..052f692 --- /dev/null +++ b/3d_armor/3d_armor_stand/models/3d_armor_entity.obj @@ -0,0 +1,193 @@ +# Blender v2.73 (sub 0) OBJ File: '3d_armor_entity_3.blend' +# www.blender.org +mtllib 3d_armor_entity.mtl +o Player_Cube +v 2.200000 9.763893 1.200000 +v 2.200000 9.763893 -1.200000 +v 2.200000 2.663871 1.200000 +v 2.200000 2.663871 -1.200000 +v -2.200000 9.763893 -1.200000 +v -2.200000 9.763893 1.200000 +v -2.200000 2.663871 -1.200000 +v -2.200000 2.663871 1.200000 +v 2.300000 13.863962 2.300000 +v 2.300000 13.863962 -2.300000 +v 2.300000 9.263885 2.300000 +v 2.300000 9.263885 -2.300000 +v -2.300000 13.863962 -2.300000 +v -2.300000 13.863962 2.300000 +v -2.300000 9.263885 -2.300000 +v -2.300000 9.263885 2.300000 +v -2.322686 2.473175 -1.300000 +v -2.322686 2.473175 1.300000 +v -4.713554 2.682348 1.300000 +v -4.713554 2.682348 -1.300000 +v -1.686446 9.745432 -1.300000 +v -1.686446 9.745432 1.300000 +v -4.077313 9.954605 1.300000 +v -4.077313 9.954605 -1.300000 +v 4.077313 9.954605 -1.300000 +v 4.077313 9.954605 1.300000 +v 1.686446 9.745432 1.300000 +v 1.686446 9.745432 -1.300000 +v 4.713554 2.682348 -1.300000 +v 4.713554 2.682348 1.300000 +v 2.322686 2.473175 1.300000 +v 2.322686 2.473175 -1.300000 +v 0.139099 2.938947 -1.200000 +v 0.139099 2.938947 1.200000 +v 0.261266 -4.059988 1.200000 +v 0.261266 -4.059988 -1.200000 +v 2.660901 -4.018101 1.190000 +v 2.660901 -4.018101 -1.210000 +v 2.538733 2.980834 1.190000 +v 2.538733 2.980834 -1.210000 +v -0.139099 2.938947 -1.200000 +v -0.139099 2.938947 1.200000 +v -0.261266 -4.059988 1.200000 +v -0.261266 -4.059988 -1.200000 +v -2.538734 2.980834 -1.210000 +v -2.538734 2.980834 1.190000 +v -2.660901 -4.018101 -1.210000 +v -2.660901 -4.018101 1.190000 +v -2.799999 -4.387500 1.390000 +v -2.799999 -4.387500 -1.410000 +v -2.800000 -0.812499 1.390000 +v -2.800000 -0.812499 -1.410000 +v -0.000000 -4.387500 -1.400000 +v -0.000000 -4.387500 1.400000 +v -0.000000 -0.812499 1.400000 +v -0.000000 -0.812499 -1.400000 +v 2.800000 -0.812499 -1.410000 +v 2.800000 -0.812499 1.390000 +v 2.799999 -4.387500 -1.410000 +v 2.799999 -4.387500 1.390000 +v 0.000000 -4.387500 -1.400000 +v 0.000000 -4.387500 1.400000 +v 0.000000 -0.812499 1.400000 +v 0.000000 -0.812499 -1.400000 +v 2.267006 13.830965 2.267006 +v 2.267006 13.830965 -2.267006 +v 2.267006 9.296881 2.267006 +v 2.267006 9.296881 -2.267006 +v -2.267006 13.830965 -2.267006 +v -2.267006 13.830965 2.267006 +v -2.267006 9.296881 -2.267006 +v -2.267006 9.296881 2.267006 +vt 0.250000 0.375000 +vt 0.250000 0.000000 +vt 0.312500 0.000000 +vt 0.312500 0.375000 +vt 0.437500 0.375000 +vt 0.437500 0.500000 +vt 0.312500 0.500000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.375000 +vt 0.625000 0.000000 +vt 0.625000 0.375000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.750000 0.750000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.875000 1.000000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 0.500000 +vt 0.750000 0.375000 +vt 0.812500 0.500000 +vt 0.812500 0.375000 +vt 0.687500 0.375000 +vt 0.687500 0.500000 +vt 0.687500 0.000000 +vt 0.750000 0.000000 +vt 0.812500 0.000000 +vt 0.875000 0.375000 +vt 0.875000 0.000000 +vt 0.125000 0.375000 +vt 0.062500 0.375000 +vt 0.062500 0.500000 +vt 0.125000 0.500000 +vt 0.187500 0.375000 +vt 0.187500 0.500000 +vt 0.000000 0.375000 +vt 0.000000 0.000000 +vt 0.062500 0.000000 +vt 0.187500 0.000000 +vt 0.125000 0.000000 +vt 0.437500 0.875000 +vt 0.437500 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.875000 +vt 0.250000 0.875000 +vt 0.312500 0.875000 +vt 0.312500 0.656250 +vt 0.250000 0.656250 +vt 0.500000 0.875000 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.375000 0.656250 +vt 0.312500 1.000000 +usemtl Armor +s off +f 1/1 3/2 4/3 2/4 +f 5/5 6/6 1/7 2/4 +f 8/6 7/5 4/8 3/9 +f 5/5 2/4 4/3 7/10 +f 7/10 8/11 6/12 5/5 +f 8/11 3/13 1/14 6/12 +f 9/15 11/16 12/17 10/18 +f 13/19 14/20 9/21 10/18 +f 12/22 11/23 16/20 15/19 +f 13/19 10/18 12/17 15/24 +f 14/22 13/19 15/24 16/25 +f 9/26 14/22 16/25 11/27 +f 17/28 18/24 19/29 20/30 +f 24/31 23/32 22/24 21/28 +f 23/31 24/14 20/13 19/33 +f 24/31 21/28 17/34 20/33 +f 21/28 22/30 18/35 17/34 +f 22/30 23/36 19/37 18/35 +f 27/30 31/35 30/37 26/36 +f 28/28 32/34 31/35 27/30 +f 25/31 29/33 32/34 28/28 +f 26/31 30/33 29/13 25/14 +f 25/31 28/28 27/24 26/32 +f 32/28 29/30 30/29 31/24 +f 40/38 33/39 34/40 39/41 +f 36/42 38/38 37/41 35/43 +f 39/44 37/45 38/46 40/39 +f 34/1 35/2 37/47 39/42 +f 40/38 38/48 36/46 33/39 +f 33/42 36/47 35/48 34/38 +f 45/38 46/41 42/40 41/39 +f 41/42 42/38 43/48 44/47 +f 45/38 41/39 44/46 47/48 +f 42/1 46/42 48/47 43/2 +f 46/44 45/39 47/46 48/45 +f 44/42 43/43 48/41 47/38 +f 53/49 54/50 49/51 50/52 +f 51/53 52/54 50/55 49/56 +f 55/57 51/49 49/58 54/59 +f 52/52 56/54 53/55 50/60 +f 56/49 55/52 54/60 53/58 +f 52/52 51/51 55/61 56/54 +f 64/49 61/58 62/60 63/52 +f 57/52 59/60 61/55 64/54 +f 63/57 62/59 60/58 58/49 +f 58/53 60/56 59/55 57/54 +f 61/49 59/52 60/51 62/50 +f 57/52 64/54 63/61 58/51 +f 65/15 66/18 68/17 67/16 +f 69/19 66/18 65/21 70/20 +f 68/22 71/19 72/20 67/23 +f 69/19 71/24 68/17 66/18 +f 70/22 72/25 71/24 69/19 +f 65/26 67/27 72/25 70/22 diff --git a/3d_armor/3d_armor_stand/models/3d_armor_stand.obj b/3d_armor/3d_armor_stand/models/3d_armor_stand.obj new file mode 100644 index 0000000..0df6dc7 --- /dev/null +++ b/3d_armor/3d_armor_stand/models/3d_armor_stand.obj @@ -0,0 +1,280 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib 3d_armor_stand.mtl +o Armor_Stand_Player_Cube_Stand +v 0.062500 0.125002 -0.062500 +v 0.062500 -0.437500 -0.062500 +v 0.062500 -0.437500 0.062500 +v 0.062500 0.125002 0.062500 +v -0.187500 0.250004 0.062500 +v -0.187500 0.250004 -0.062500 +v -0.250000 0.250004 -0.062500 +v -0.250000 0.250004 0.062500 +v -0.062500 -0.437500 -0.062500 +v -0.062500 -0.437500 0.062500 +v -0.187500 -0.437500 0.062500 +v -0.187500 -0.437500 -0.062500 +v -0.187500 0.125002 0.062500 +v -0.187500 0.125002 -0.062500 +v -0.187500 0.937504 0.062500 +v -0.187500 0.937504 -0.062500 +v -0.375000 0.937504 -0.062500 +v -0.375000 0.937504 0.062500 +v -0.062500 0.125002 0.062500 +v 0.187500 0.125002 -0.062500 +v 0.187500 -0.437500 -0.062500 +v -0.062500 0.125002 -0.062500 +v -0.250000 0.125007 -0.062500 +v -0.250000 0.125007 0.062500 +v 0.187500 -0.437500 0.062500 +v 0.187500 0.125002 0.062500 +v -0.062500 0.937504 0.062500 +v -0.187500 0.812504 0.062500 +v -0.062500 0.812504 0.062500 +v -0.062500 0.937504 -0.062500 +v 0.187500 0.250004 -0.062500 +v 0.187500 0.250004 0.062500 +v 0.250000 0.250004 0.062500 +v 0.250000 0.250004 -0.062500 +v 0.250000 0.125007 0.062500 +v 0.250000 0.125007 -0.062500 +v 0.187500 0.812504 0.062500 +v 0.187500 0.812504 -0.062500 +v 0.375000 0.812504 -0.062500 +v 0.375000 0.812504 0.062500 +v 0.187500 0.937504 -0.062500 +v 0.187500 0.937504 0.062500 +v 0.375000 0.937504 0.062500 +v 0.375000 0.937504 -0.062500 +v 0.062500 0.937504 -0.062500 +v 0.062500 0.937504 0.062500 +v -0.062500 0.812504 -0.062500 +v -0.187500 0.812504 -0.062500 +v 0.062500 0.812504 -0.062500 +v 0.062500 0.812504 0.062500 +v -0.375000 0.812504 -0.062500 +v -0.375000 0.812504 0.062500 +v -0.062500 0.250004 0.062500 +v 0.062500 0.250004 0.062500 +v 0.062500 0.250004 -0.062500 +v -0.062500 0.250004 -0.062500 +v -0.062500 1.312504 -0.062500 +v 0.062500 1.312504 -0.062500 +v -0.062500 1.312504 0.062500 +v 0.062500 1.312504 0.062500 +v -0.500000 -0.437500 -0.500000 +v -0.500000 -0.437500 0.500000 +v 0.500000 -0.437500 0.500000 +v 0.500000 -0.437500 -0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +vt 0.062500 0.140625 +vt 0.062500 0.000000 +vt 0.093750 0.000000 +vt 0.093750 0.140625 +vt 0.140625 0.234375 +vt 0.140625 0.203125 +vt 0.156250 0.203125 +vt 0.156250 0.234375 +vt 0.093750 0.171875 +vt 0.062500 0.171875 +vt 0.218750 0.140625 +vt 0.187500 0.140625 +vt 0.187500 0.000000 +vt 0.218750 0.000000 +vt 0.078125 0.437500 +vt 0.078125 0.468750 +vt 0.031250 0.468750 +vt 0.031250 0.437500 +vt 0.250000 0.140625 +vt 0.250000 0.000000 +vt 0.031250 0.140625 +vt 0.031250 0.000000 +vt 0.156250 0.140625 +vt 0.156250 0.000000 +vt 0.187500 0.203125 +vt 0.156250 0.171875 +vt 0.187500 0.171875 +vt 0.125000 0.000000 +vt 0.125000 0.140625 +vt 0.000000 0.140625 +vt 0.000000 0.000000 +vt 0.328125 0.437500 +vt 0.296875 0.437500 +vt 0.296875 0.406250 +vt 0.328125 0.406250 +vt 0.109375 0.437500 +vt 0.109375 0.468750 +vt 0.046875 0.203125 +vt 0.046875 0.234375 +vt 0.031250 0.234375 +vt 0.031250 0.203125 +vt 0.000000 0.203125 +vt 0.000000 0.171875 +vt 0.031250 0.171875 +vt 0.265625 0.468750 +vt 0.265625 0.437500 +vt 0.218750 0.437500 +vt 0.218750 0.468750 +vt 0.218750 0.171875 +vt 0.171875 0.468750 +vt 0.171875 0.437500 +vt 0.078125 0.406250 +vt 0.031250 0.406250 +vt 0.140625 0.468750 +vt 0.140625 0.437500 +vt 0.140625 0.406250 +vt 0.171875 0.406250 +vt 0.109375 0.406250 +vt 0.359375 0.437500 +vt 0.359375 0.406250 +vt 0.390625 0.406250 +vt 0.390625 0.437500 +vt 0.437500 0.406250 +vt 0.437500 0.437500 +vt 0.000000 0.437500 +vt 0.000000 0.406250 +vt 0.250000 0.437500 +vt 0.218750 0.406250 +vt 0.250000 0.406250 +vt 0.359375 0.468750 +vt 0.406250 0.468750 +vt 0.406250 0.437500 +vt 0.109375 0.234375 +vt 0.078125 0.234375 +vt 0.078125 0.203125 +vt 0.109375 0.203125 +vt 0.062500 0.468750 +vt 0.062500 0.562500 +vt 0.031250 0.562500 +vt 0.328125 0.468750 +vt 0.296875 0.468750 +vt 0.062500 0.593750 +vt 0.031250 0.593750 +vt 0.093750 0.468750 +vt 0.093750 0.562500 +vt 0.125000 0.468750 +vt 0.125000 0.562500 +vt 0.000000 0.562500 +vt 0.000000 0.468750 +vt 0.078125 0.171875 +vt 0.046875 0.171875 +vt 0.265625 0.203125 +vt 0.265625 0.171875 +vt 0.296875 0.171875 +vt 0.296875 0.203125 +vt 0.265625 0.234375 +vt 0.281250 0.234375 +vt 0.281250 0.203125 +vt 0.312500 0.171875 +vt 0.312500 0.203125 +vt 0.140625 0.171875 +vt 0.171875 0.234375 +vt 0.171875 0.203125 +vt 0.109375 0.171875 +vt 0.234375 0.203125 +vt 0.203125 0.203125 +vt 0.203125 0.171875 +vt 0.234375 0.171875 +vt 0.234375 0.234375 +vt 0.203125 0.234375 +vt 0.062500 0.375000 +vt 0.062500 0.234375 +vt 0.093750 0.234375 +vt 0.093750 0.375000 +vt 0.031250 0.375000 +vt 0.125000 0.234375 +vt 0.125000 0.375000 +vt 0.000000 0.375000 +vt 0.000000 0.234375 +vt 0.218750 0.375000 +vt 0.187500 0.375000 +vt 0.187500 0.234375 +vt 0.218750 0.234375 +vt 0.250000 0.375000 +vt 0.250000 0.234375 +vt 0.156250 0.375000 +vt 0.250000 1.000000 +vt 0.250000 0.750000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 0.750000 0.750000 +vt 0.750000 1.000000 +vt 0.750000 0.734375 +vt 1.000000 0.734375 +vt 1.000000 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.734375 +vt 0.250000 0.734375 +vt 0.500000 0.734375 +usemtl Stand +s off +f 1/1 2/2 3/3 4/4 +f 5/5 6/6 7/7 8/8 +f 9/1 10/4 11/9 12/10 +f 13/11 14/12 12/13 11/14 +f 15/15 16/16 17/17 18/18 +f 19/19 13/11 11/14 10/20 +f 2/2 1/1 20/21 21/22 +f 14/12 22/23 9/24 12/13 +f 8/25 7/7 23/26 24/27 +f 4/4 3/3 25/28 26/29 +f 22/23 19/29 10/28 9/24 +f 26/30 25/31 21/22 20/21 +f 27/32 15/33 28/34 29/35 +f 16/16 15/15 27/36 30/37 +f 31/38 32/39 33/40 34/41 +f 33/42 35/43 36/44 34/41 +f 37/45 38/46 39/47 40/48 +f 2/49 21/27 25/12 3/11 +f 41/50 42/51 43/47 44/48 +f 38/52 41/15 44/18 39/53 +f 41/50 45/54 46/55 42/51 +f 16/51 30/55 47/56 48/57 +f 41/15 38/52 49/58 45/36 +f 46/59 50/60 37/61 42/62 +f 42/62 37/61 40/63 43/64 +f 43/65 40/66 39/53 44/18 +f 18/67 17/47 51/68 52/69 +f 28/34 15/33 18/67 52/69 +f 16/51 48/57 51/68 17/47 +f 48/59 28/70 52/71 51/72 +f 53/73 54/74 55/75 56/76 +f 30/77 57/78 58/79 45/17 +f 50/60 46/59 27/32 29/35 +f 29/80 47/32 49/33 50/81 +f 47/56 30/55 45/36 49/58 +f 57/78 59/82 60/83 58/79 +f 27/84 59/85 57/78 30/77 +f 46/86 60/87 59/85 27/84 +f 45/17 58/79 60/88 46/89 +f 1/90 55/75 31/38 20/91 +f 54/92 4/93 26/94 32/95 +f 26/92 20/96 36/97 35/98 +f 20/91 31/38 34/41 36/44 +f 32/95 26/94 35/99 33/100 +f 6/6 14/101 23/26 7/7 +f 14/102 13/103 24/7 23/8 +f 6/6 56/76 22/104 14/101 +f 53/105 5/106 13/107 19/108 +f 13/107 5/106 8/25 24/27 +f 1/90 22/104 56/76 55/75 +f 53/105 19/108 4/93 54/92 +f 1/109 4/105 19/106 22/110 +f 49/111 55/112 54/113 50/114 +f 38/115 31/40 55/112 49/111 +f 50/114 54/113 32/116 37/117 +f 37/118 32/119 31/40 38/115 +f 28/120 48/121 6/122 5/123 +f 29/124 28/120 5/123 53/125 +f 48/121 47/126 56/8 6/122 +f 47/126 29/117 53/116 56/8 +usemtl Base +f 61/127 62/128 63/129 64/130 +f 65/129 66/131 67/132 68/130 +f 62/131 68/133 67/134 63/135 +f 63/136 67/137 66/138 64/128 +f 61/129 64/128 66/138 65/139 +f 62/131 61/129 65/139 68/133 diff --git a/3d_armor/3d_armor_stand/models/3d_armor_stand.png b/3d_armor/3d_armor_stand/models/3d_armor_stand.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb26de9d803bcbf7890390ccbcee527361cfe1a GIT binary patch literal 1628 zcmV-i2BZ0jP)zV5HGJAW%*B(^K`<`}I_hpd#+wyXRiMdH~IncZy#c3 za|a7@W(X=^FzjPfORv|f%%8Xc+U+*ZI-IlAY9Xn1IO&RsJLf>AC_kjzA0X@irF>9X z0RzK6Azy}iB4{D~U?U@#oeZnyC~g%A?ud01!BS~Ey3 z-ENF^7NtCtr*PI`t>fIebH59Jq9I_6Aq+yKkXV}{gg{D*j_CT7Zq{*|MDkp z0IfArO7tLQuI3S^l0ni3Ahqd!o@f(Ab&_@uwcqJkXEEAT=1<%J=g*(VIfs)eKgWIS zeoY?^2Bg*y$2}TvWL{E>YFO(qCfh~jE9U3tEAc0u1fM*4f|MSfvj`+oitNvmcv4Xd zYuS#aX|cF4s1XJ=c6W9w^G`$$c=&L0BqV&_NBIh)4efTDMx#Ni)gp=_=H}*TwOTAM zFSEF~h}OCizbeF}_57syGt4l<3^U9y!wfUr+*o%vH`d)*TX&%au3oO=dES}Zcyag6 zb@yQF1wU+c`19Hu#f8mhF>n9z0)PMfUt*dKFd~PqtTwr_+B{PpFk%4TllYz_jONdd z0d#85Wb79Pc+rY^b7cu%Ns_)kdj_!9;d@yme1CsCD-ANsdxNAq{Z*jc2OM>SF1@Yw zl`KBX{|ETTKOc$w8QNIB`tGqPKePPViR}Y!yt~eWtrsID@O4;gHj4XmhPC8{h@I6 z&1W$;-dzWvtQ}5TO#g0LATM*}q_(xwX8iuC*8*WQ&*rnEe~y+XzNs<5ILt6PRL`eP zJIHdEH?9TVTv;lNkYn1kgUomJC@tW7l1s}ABZQ;0!>Kkv7|rwe=?(y^%?O=Znv3<~ zhUY)MI+ncJjHW9Gs32me6^|shG))h#?|Vk>`qR+q9ZG^`|5q5f3M^NI+%u-Z^$*G6 z+qbT{@df9*-dwB~VRGE{k3Rk8R5nC~#yP0<@sZ~N2l_ug_PpR!dcfT~*Z-%NAv(2% zHvqh~c5&qTho5|XsysnG*m}YEdBCrseE&HA)Z^}*>+W@4@!7}kxX(U*XKG%d9XjXu z^4rbV67E0TWtyP!-Ms&Bm+ODK!t=c@|9Sd~n;Yvc*8sU3&c|!b2HIHn!FyLvUCbZq z1IjVK)50{zJY^~jFfMka6vYnbp^$5Xd|b54Q{V}5T+m!xtn=gc9@^L<6!MO*JO=o2 zd++ocV7#>Xo*YqtuPq_dpaus?m#dfS$F{xWW1ZTmdTFY{Xuep`TC*{7vE1{Ik59V@ a%JE-LjdXE6c;~f7=T)} zMmzXdUwPGOXZ*5V0zA)Sa`Fh;Sgf%~3`j{78LG8P{7)PoFK|rr?ISu?E9 zm<#cw7Y}%4MFDE{8kI_=ZG6WGn7=z84?Z$T&rb)ROe9`42Wu^XA7G58QmJ5!VQ_G; zZG5}db`03Lb0^wZ0RD055^}|b`}_OTHuvw}C!f#r@Zm#7_l!~~6foLQtyVMmHp0j>ns%fyU zqFgTH3KvJj6KKT?A&5kiNR#O!!CDMDvKf5GV?eoFPSeux@Gy=eXf~TzYtx@E9C~|t zP)gC?-;eZMj4>=NEoJb=7<|vq^wEkn#u5a62H$ZH0BAHDG#gE-)hg0;sYeQ>RBN?> zs#h@9#1l3aV=RS20i{%mFBEpfgUa-=ij~qux-uoBP$+bsfGCOx`~cwydU|@edFv*% zYAw^|(W6HU4i2UsP_Nf9D|@^ZZ;Zxq9E5NQ{D6AB0VtYEA%sJi3yE};!FQa1d_E6= z@B2(lOkkrX!V8GBCW>M&a9x*3X{6_(lp<0Q!V!c$VY-if-^W^uQ4NF_ppC&1V5}hs zd?KZZbd-8lg6}v1N-2a8sD`E|=TgyvMy(EjHhLvalnBFKYNcwLCXF>jDry_waRPSi z*bxUip?OrPV^(r{v(Z4Ch)ShOzCZSoT$sZcn|g-yBz=8-ZQ(nf1#aECg%B>TH8==_ zaN?gUaD^lnu$M)cg~(ZYG>x|ac!>5=f+oGWzXKJaOk;Ve*Bw{oNgu{BZnu(Mwl2I*-{>m zA;5D5o+}8#zO6%m(q>EU{gi-v#R|`k4&q5ct**8n0mfK7H{J;srsw0-AmX^!s4aJY z7D)b>n)=X2TJgIx-%B5!_{s0VSbll>J8_JVf;UdRiz5X8p1F=T5r6;V&(rpk$KC{M z`QYqN)AnEe=1CBOeZ_ob~HW`zq_y1LoQ$b=Q`ZQOP99w#V*`FWBeDck}-F*^CyrHdp5J zpWT(F!`VBPG~l&rhqvFmx~a9oW3_-M#kyKxZlT25_Fb<9g0PR-I~yNIOA4s2Az-aV z&G?|hq32dVBXyg0ND0_T3p_hIn39lKw`m8Ftm;Nuz;gwAhIVEE8)=74O+XO#@#*aa z0LDf_ls1eE^rj8&-hcR5@YqP$T`@rVAq&MyCb((6TE{1zk+{C}yNm#UXyp`!N)9Zy zWQ4>sy216=$>CG4zhJ+9;QWiI^bGyq@t##>kn3m^T0Pj4^qr03s$`-4qc5T$Z> z_D+SbELX9PVETG|_U4PO#X<7tsT+7wJn{La^?X8EUoDO z;?8TC>%>YkGiiL7nY%~v%9Z&3no@aF+S$`bZL3$TwKFFU+cPH)cg-iXb;so1KR^3K zK(hb4hJa)>r>`$^^u-D8E-mw)+YdQ5xz8pVAd$n#_4r606&d^5k^P%)&#$WkTIKFS zF;;zFIyCxt#*#8wimvbg(W>l{A}Gvx88z6d4o3!hQ|-_d1gsT1t#*5%Mx(ZzzWBJk zP{VUY>M318z*?~*gp;mtvK10-kX)zbau;}lSSx6D5Ac|s literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png b/3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png new file mode 100644 index 0000000000000000000000000000000000000000..6b34d666170181f0151c150d0ac5ecc73ac56e55 GIT binary patch literal 160 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf-dBg(*J||{XR#ZqNNXROjR+K)`vT%}%K@5)re`*qg z4?nlg7f(imuY7!b|Jm($Bnp4ZTW&Qpm>}-=g^}U^X2}8#CZi~z6%3xPelF{r5}E)s CBQ9V7 literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png b/3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png new file mode 100644 index 0000000000000000000000000000000000000000..864bf5cfc1e1fa34f5d4670e033b4574db5bb918 GIT binary patch literal 164 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfQea<6xKA8gn{fZABJoqrby`6n^Zv4KQg9a?E&Hl!E&NDu&Qe#Rm zeem=1bDs0_?T?>S&tTAOV4bg`7rpWoQy1?6h8;qJiaQl~7;>j8OMdc^js;r7;OXk; Jvd$@?2>@ZWHPrwB literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png b/3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png new file mode 100644 index 0000000000000000000000000000000000000000..5441f0c47ef55360a5503a5828083a1e7b4276d5 GIT binary patch literal 159 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfIEGmC zzMZ_0i@}h?IXB&2YyQ0cQ}<^3?TXRXWtW}hIngGtrE&s!giq&Hv5*_66l9Q$j7D*d^O|C%e3v`?AaUHPadH@FZrNR9UA#!Zovj7BP6b L`njxgN@xNArJy)- literal 0 HcmV?d00001 diff --git a/3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png b/3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png new file mode 100644 index 0000000000000000000000000000000000000000..1856baea87c8c740711c5003cd8af1612e78660d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfU%a54lYYQz-RJR(xx?J>ve{T8Q-$x3=izTv~lla mxB3IzjF&I{u%D=@cZ;_u%gD`8t + +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. diff --git a/3d_armor/3d_armor_ui/depends.txt b/3d_armor/3d_armor_ui/depends.txt new file mode 100644 index 0000000..cf4ccf9 --- /dev/null +++ b/3d_armor/3d_armor_ui/depends.txt @@ -0,0 +1,2 @@ +3d_armor +unified_inventory? diff --git a/3d_armor/3d_armor_ui/description.txt b/3d_armor/3d_armor_ui/description.txt new file mode 100644 index 0000000..e6bf11c --- /dev/null +++ b/3d_armor/3d_armor_ui/description.txt @@ -0,0 +1 @@ +Adds 3d_armor page to the unified inventory. diff --git a/3d_armor/3d_armor_ui/init.lua b/3d_armor/3d_armor_ui/init.lua new file mode 100644 index 0000000..41eec7b --- /dev/null +++ b/3d_armor/3d_armor_ui/init.lua @@ -0,0 +1,53 @@ +-- support for i18n +local S = armor_i18n.gettext +local F = minetest.formspec_escape +local has_technic = minetest.get_modpath("technic") ~= nil + +if not minetest.global_exists("unified_inventory") then + minetest.log("warning", S("3d_armor_ui: Mod loaded but unused.")) + return +end + +if unified_inventory.sfinv_compat_layer then + return +end + +armor:register_on_update(function(player) + local name = player:get_player_name() + if unified_inventory.current_page[name] == "armor" then + unified_inventory.set_inventory_formspec(player, "armor") + end +end) + +unified_inventory.register_button("armor", { + type = "image", + image = "inventory_plus_armor.png", + tooltip = S("3d Armor") +}) + +unified_inventory.register_page("armor", { + get_formspec = function(player, perplayer_formspec) + local fy = perplayer_formspec.formspec_y + local name = player:get_player_name() + if armor.def[name].init_time == 0 then + return {formspec="label[0,0;"..F(S("Armor not initialized!")).."]"} + end + local formspec = "background[0.06,"..fy..";7.92,7.52;3d_armor_ui_form.png]".. + "label[0,0;"..F(S("Armor")).."]".. + "list[detached:"..name.."_armor;armor;0,"..fy..";2,3;]".. + "image[2.5,"..(fy - 0.25)..";2,4;"..armor.textures[name].preview.."]".. + "label[5.0,"..(fy + 0.0)..";"..F(S("Level"))..": "..armor.def[name].level.."]".. + "label[5.0,"..(fy + 0.5)..";"..F(S("Heal"))..": "..armor.def[name].heal.."]".. + "listring[current_player;main]".. + "listring[detached:"..name.."_armor;armor]" + if armor.config.fire_protect then + formspec = formspec.."label[5.0,"..(fy + 1.0)..";".. + F(S("Fire"))..": "..armor.def[name].fire.."]" + end + if has_technic then + formspec = formspec.."label[5.0,"..(fy + 1.5)..";".. + F(S("Radiation"))..": "..armor.def[name].groups["radiation"].."]" + end + return {formspec=formspec} + end, +}) diff --git a/3d_armor/3d_armor_ui/mod.conf b/3d_armor/3d_armor_ui/mod.conf new file mode 100644 index 0000000..68eff85 --- /dev/null +++ b/3d_armor/3d_armor_ui/mod.conf @@ -0,0 +1,4 @@ +name = 3d_armor_ui +depends = 3d_armor +optional_depends = unified_inventory +description = Adds 3d_armor page to the unified inventory. diff --git a/3d_armor/LICENSE.md b/3d_armor/LICENSE.md new file mode 100644 index 0000000..f7793ff --- /dev/null +++ b/3d_armor/LICENSE.md @@ -0,0 +1,10 @@ +3D Armor - Visible Player Armor +=============================== + +License Source Code: Copyright (C) 2013-2018 Stuart Jones - LGPL v2.1 + +Armor Textures: Copyright (C) 2017-2018 davidthecreator - CC-BY-SA 3.0 + +Special credit to Jordach and MirceaKitsune for providing the default 3d character model. + +New armor/shield textures CC-BY-SA 3.0 / davidthecreator / https://forum.minetest.net/viewtopic.php?f=11&t=4654&start=800#p356448 diff --git a/3d_armor/README.md b/3d_armor/README.md new file mode 100644 index 0000000..7bfefc0 --- /dev/null +++ b/3d_armor/README.md @@ -0,0 +1,72 @@ +Modpack - 3d Armor [0.4.13] +=========================== + +![](https://github.com/minetest-mods/3d_armor/workflows/luacheck/badge.svg) +![](https://github.com/minetest-mods/3d_armor/workflows/integration-test/badge.svg) + +### Table of Contents + + + + +- [[mod] Visible Player Armor [3d_armor]](#mod-visible-player-armor-3d_armor) +- [[mod] Visible Wielded Items [wieldview]](#mod-visible-wielded-items-wieldview) +- [[mod] Shields [shields]](#mod-shields-shields) +- [[mod] 3d Armor Stand [3d_armor_stand]](#mod-3d-armor-stand-3d_armor_stand) + + + + +[mod] Visible Player Armor [3d_armor] +------------------------------------- + +Minetest Version: 5.0.0 + +Game: minetest_game and many derivatives + +Depends: default + +Adds craftable armor that is visible to other players. Each armor item worn contributes to +a player's armor group level making them less vulnerable to attack. + +Armor takes damage when a player is hurt, however, many armor items offer a 'stackable' +percentage chance of restoring the lost health points. Overall armor level is boosted by 10% +when wearing a full matching set (helmet, chestplate, leggings and boots of the same material) + +Fire protection has been added by TenPlus1 and in use when ethereal mod is found and crystal +armor has been enabled. each piece of armor offers 1 fire protection, level 1 protects +against torches, level 2 against crystal spikes, 3 for fire and 5 protects when in lava. + +Compatible with sfinv, inventory plus or unified inventory by enabling the appropriate +inventory module, [3d_armor_sfinv], [3d_armor_ip] and [3d_armor_ui] respectively. +Also compatible with [smart_inventory] without the need for additional modules. + +built in support player skins [skins] by Zeg9 and Player Textures [player_textures] by PilzAdam +and [simple_skins] by TenPlus1. + +Armor can be configured by adding a file called armor.conf in 3d_armor mod or world directory. +see armor.conf.example for all available options. + +For mod installation instructions, please visit: http://wiki.minetest.com/wiki/Installing_Mods + +[mod] Visible Wielded Items [wieldview] +--------------------------------------- + +Depends: 3d_armor + +Makes hand wielded items visible to other players. + +[mod] Shields [shields] +----------------------- + +Depends: 3d_armor + +Originally a part of 3d_armor, shields have been re-included as an optional extra. +If you do not want shields then simply remove the shields folder from the modpack. + +[mod] 3d Armor Stand [3d_armor_stand] +------------------------------------- + +Depends: 3d_armor + +Adds a chest-like armor stand for armor storage and display. diff --git a/3d_armor/description.txt b/3d_armor/description.txt new file mode 100644 index 0000000..2da5ba4 --- /dev/null +++ b/3d_armor/description.txt @@ -0,0 +1 @@ +Visible player armor & wielded items. diff --git a/3d_armor/integration-test.sh b/3d_armor/integration-test.sh new file mode 100755 index 0000000..9169144 --- /dev/null +++ b/3d_armor/integration-test.sh @@ -0,0 +1,20 @@ +#!/bin/sh +# simple integration test + +CFG=/tmp/minetest.conf +MTDIR=/tmp/mt +WORLDDIR=${MTDIR}/worlds/world + +cat < ${CFG} + enable_3d_armor_integration_test = true +EOF + +mkdir -p ${WORLDDIR} +chmod 777 ${MTDIR} -R +docker run --rm -i \ + -v ${CFG}:/etc/minetest/minetest.conf:ro \ + -v ${MTDIR}:/var/lib/minetest/.minetest \ + -v $(pwd):/var/lib/minetest/.minetest/worlds/world/worldmods/3d_armor \ + registry.gitlab.com/minetest/minetest/server:5.2.0 + +test -f ${WORLDDIR}/integration_test.json && exit 0 || exit 1 diff --git a/3d_armor/modpack.conf b/3d_armor/modpack.conf new file mode 100644 index 0000000..7ba907c --- /dev/null +++ b/3d_armor/modpack.conf @@ -0,0 +1,5 @@ +name = minetest-3d_armor +description = Visible player armor & wielded items. +release = 4043 +title = 3D Armor +author = stu diff --git a/3d_armor/preview_gen.py b/3d_armor/preview_gen.py new file mode 100755 index 0000000..a18954d --- /dev/null +++ b/3d_armor/preview_gen.py @@ -0,0 +1,81 @@ +#!/usr/bin/python + +import os +import sys +import Image + +try : + arg = sys.argv[1] +except IndexError : + print "Usage: preview_gen.py " + sys.exit(1) + +try : + index = open(arg, "r") +except IOError : + print "Failed to open index file%s" %s (arg) + sys.exit(1) + +preview = [] + +for line in index.readlines() : + if ":" in line : + line = line.rstrip('\n') + preview.append(line.split(':')) + +print "Generating preview images..." +for fn, place in preview : + try : + imi = Image.open(fn) + except IOError : + print "Failed to open %s" % (fn) + sys.exit(1) + + w, h = imi.size + if h != w / 2: + print "Incompatible texture size %s" % (fn) + sys.exit(1) + + s = w / 64 + imo = Image.new("RGBA", (16 * s, 32 * s)) + + if place == "all" or place == "head" : + face = (40 * s, 8 * s, 48 * s, 16 * s) + side_l = (56 * s, 8 * s, 57 * s, 16 * s) + side_r = (63 * s, 8 * s, 64 * s, 16 * s) + imo.paste(imi.crop(side_l), (4 * s, 0, 5 * s, 8 * s)) + imo.paste(imi.crop(side_r), (11 * s, 0, 12 * s, 8 * s)) + imo.paste(imi.crop(face), (4 * s, 0, 12 * s, 8 * s)) + + if place == "all" or place == "torso" : + arm = (44 * s, 20 * s, 48 * s, 32 * s) + body = (20 * s, 20 * s, 28 * s, 32 * s) + imo.paste(imi.crop(arm), (0 * s, 8 * s, 4 * s, 20 * s)) + imo.paste(imi.crop(arm).transpose(Image.FLIP_LEFT_RIGHT), + (12 * s, 8 * s, 16 * s, 20 * s)) + imo.paste(imi.crop(body), (4 * s, 8 * s, 12 * s, 20 * s)) + + if place == "all" or place == "legs" : + leg = (4 * s, 20 * s, 8 * s, 32 * s) + imo.paste(imi.crop(leg), (4 * s, 20 * s, 8 * s, 32 * s)) + imo.paste(imi.crop(leg).transpose(Image.FLIP_LEFT_RIGHT), + (8 * s, 20 * s, 12 * s, 32 * s)) + + if place == "all" or place == "feet" : + boot = (20 * s, 4 * s, 24 * s, 11 * s) + imo.paste(imi.crop(boot), (4 * s, 25 * s, 8 * s, 32 * s)) + imo.paste(imi.crop(boot).transpose(Image.FLIP_LEFT_RIGHT), + (8 * s, 25 * s, 12 * s, 32 * s)) + + size = (32 * s, 64 * s) + imo = imo.resize(size) + + if place == "shield" : + shield = (0, 0, 16 * s, 16 * s) + imo.paste(imi.crop(shield), (16 * s, 32 * s, 32 * s, 48 * s)) + + outfile = fn.replace(".png", "_preview.png") + imo.save(outfile) + print outfile + + diff --git a/3d_armor/screenshot.png b/3d_armor/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f9e5824ad93f7ac173e171f3359b6e804028ce GIT binary patch literal 66964 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⩔QH?<@Sd{$xvwV*M#-t> zJg3?Vu)HHnJZq-~mWF>w09{-la(dZtX*)W3Z~io&m(b{&tnyT3z(BdGr#?kDggqRh86Y)Y)=Q=%aEZq}Jns?+2rc86SO~RW_;-9j zY}AGF3wZcvJMeY|=Ly=^z_T57CK>1XW8kK&SM>Q&PIba7j574c!;Z())M1)pt;96p zs%`=;npO2X*5$yrmItKIvmtJu$g@^?&TPTkMbvPeRW)F=f06JMnY)VA_PJ5>2A>)@(f$LIaOeC6kb z*49@3M{{x=O1ijD8wE1xF22KFuar;2e&1~YYUExMmLJ{KjE+WpGV_Bva1l8EwP^TG zmdQE&E{8BLy9Iim-R?OTV`dk23%!Wkt+*coMf(FHEPt?OpG*Zv20joiceG5WS%6oE z!r*;dcXbw=ckV6z3*!TpM&&;mxD<@>;r{^u zLI1wCY^I-p6R@vja(SYTA`QX2!(?Q6Sp|izZv)XZtW03wB%+32C=^sjpE6(a<#Q3W z4Qi+Kpr7IPoKWME#0{f%%T8>rtoVltQj|0b(4%Ynx6S7x)rBZ75LKC`Y3W_sFzE2B z^r*z|s3LiNux(8bv>h6TxN-!pm6|UXFaj|`zCN<-K?k32)?{=x6=|Tw;aCAWfc&&3 z5#oW}Q!n89rwZBKo@4(0n(y2lsxD<4y5TmMfJjtRoT%q3QNnHWj5x9%Z+UOKeT}&n zeq$Mu+Ddd&eS*x;7(OPVbgBS7Lu}k?u7cI6=lek=!Rj((yF`^O3FDIH;kOUb(`=iH}eb5RPCD8tI>1k=ERl^EtSneoEb=yx1Ax^)}m1ICr2I7kKyVcTNlB>L|P z;@=xLZba~2!E>9;=W?L4fQ4FNN;F!C0u(fO`T02H1N~z?HI~dBz0_z41pEoun`qVjQRj8DZ5yS9fv1qW6 zp@r}m!$+GW^r*Ai6u+6_(?txyL*mBLe8n!ARGATMwCG}~R%`wo)-VE9Wuskc)`b#` zcp9Qws*%&MMC6uBuR*7F1(tsI>5q}O{|?w$L8CN)KHSQizPTR1V6+2MYmE-xcC)avBLDccZekyJAL?^sJYN`H@Hu5-1vy_s^2BN0YCw$OTfPyBZ+chG z(IZD;H8u@P@ee8T5vh)hKp}W6<+^+CLpL^z3V20zy{!D%JN^cay6k}xH_`L-=4AC6 zJqNv3DS;Ajj5_h=(`T}JH19N1gG*k1HvmMp@!toYcM1Ri%09ez=M{Tef5+s;%ioo50Bm$}1XA%2-=Rp^K!`wf11C13x>hh*CNu?0>d8Ll zJc;v<&P~Ch8(J_a5GsR!)l%eq>;z8LW(1MJprl->iRmKnDOkw65XI29TzU<9Ty_;K zKjZ^@hd14Mlk|N)^UAlku5Nc;z4%p*#(z9{0Cg(!O91}a5G%; zav_nuvW>XOpq;v%wt%EiyO zjcSwtdIMNRFsf`xK+oB}W4o{}F+FCG4nih#U#UE8f{n#&C=(k7Qqx&Gh=-}O$!I=o>-KSMqUr&K8N0RS-BGYiLx!`_WE$V8joxuor;M{m2%`G?zW9OsQO6{2i`7K zgH43ocJZS^=dsz3d$xWTE{XU(t1BykZYU_y;Ehi9;Q~^xloQw@jrc!eC7laophf;+ ztil_~2%-^L`_n^j;6~hBSUlxq1pSsN{YNe z`CV9gRGJO9l^R{}l2N{+-U*EuUC>ZEWgXsBrXcTG2)U5YxgwVltA-$(MY!p*mjZxX z(Yble_5b>_|HklctD-BjIm0)nlxxY(krRY34P4>MY*zYh& zg()l{vH#{phSv?i+@VFOYh+gL@}o=I!_zr#=GVuwc{)C6HF`rk-X0-o5-pPz)@K;| zfY`GiAN=m8VeEzD05IFtdhI)TEn2(c=I29$&OW?YEF#^vGq?;74WsugaBO<#jX!qU zIj1MKy<_o4RF{6SkVBT6wRU~|sfsycW8=PbiD62^XB+4wKF8i&llUN85xO|)2xk*H zF>s>^zi05<-iv}QO;w^=^=9}oN*JANK z#8emxNS8)PyQnWSi+-erj098AYJ}Lz4PTf^CQIY5O=g^@3I4GklKwzHH*j8${U`b< zlM@rv9eli{0V;e3hyNN%_x1{ZW>Cq65Rz7sSyksRLN!2%}xmy0X_(;dQrqJ9<>_GyGP60&IAiasc&-N>Cy~6rTU=1;0p7qewtOLVk3h`*p5$ z$gXZgLJ=9-@7v-#;f_MCh@??hdnc+ zbQ!K(ckg{o!Xi++71EzLSugC}(Uqh_KKO;3TYqP>AE}X0!ifBTX_aq&?jcUKO^|`x z5Gz`rI??!(D)HOeMbS+saZq%)I}_@2yQ*EGRYZx!!VAmA!0x5%V#LGV&V-8=4ex)F zEVo>G4N5-Z5L!}2AXS}gDugOLr>0-kR*I3lS5(gtD^~6-NT^q;P_I-|9di5=LP^V* zL`0U1TzI}Rk`W7|cVdhZD?*QEcOfIDZAI)n!R71{j(&9=Ux8_Mq1`#VPv;VyZ0JRo z$(rDL(`7GhkqbNVSejmOoYQefi}=}5t)7KFCyY^9P0OUDW&6;PgwBE>9(FOaABSKH z{_VN{4wo>$m8NH)Fg}_13Yyt-HfeW1reL=p>X!*(PQd1`m#|C={B$%y$|%GDn@ zrcB_7mTss~I{yG!=@5?3EJ$e8kmDa+fPfv~KO$kthnNPE*H}$b5Y<$xZky6|9-Phn zy$^aj@?PV>pF@5RMDI^-JD`($estKaqRN8AS*nW-9k4`1NyuF#MMRXY#7RWlFlB_# zwq!tZdQP~|31iJ=q)4WUj2PC4k@0N6t2oIN!eS$v*a-go!o1LP;<6KZ*s|}?aXGM9 ztwOb_*HCn6YnK!$=pS!`E-(9Ou*Ac6$62Zgy)!E!Me)9TLeRfueca9Gq9g@go{v2z zExw*sng8wz3|(#|X=e6g1{UESxDPKlot}w=H2BH3$h-sVFPMLKvj4Ud5fKs+hb)Qg zJ9u40L{yiaW3m?_5@r2J2WnL?T~>uLWiC)0FXxwT95$RP#h%6saHW{Ts-@eheH3i zzU{3k=-gEedKzU07E{MTKf7r@kp4DlYuH33-~Hl~om-6Ms@E$b=ND5(g{39$DGbX3 zE_M$zuj03%ceWlya3Y?-OP;sB-}RhljyXrH!rEaRtIx>kx}{*8JsyOdzHUN5*C7;v zH0e9L9|lGk%-V@4$cOB+cqD^*-u3_aQ=z6B%BGHl&EEQUKKY0;a}ma~`uqFU62B>s zq04(6*$U$1`NI^8+ca2OXk7r zJIG%5r7N!se43Xb6(|jae7r3^2vrT&CPJ_R^!LNnbm4ibC0>=Y`OyI=&n%`!`wbFu zR%c_`Rj-GuhF8HIH~+12fuL{gXYddJglAB9a@5}dXAMZ%M`37H@Y-zFAIKFg#wipE z;!G@?LykG$Glvuh847{G#OR=eu60tEm{-fU$==lHo!VvnrpsOmZ~5_e5nYx;_wO{w z$jC^m$S{=M^qrQ{Z!t%kxiPpWJqEylTJ717% z=V>D$VdzrVbJEEAs`tJd03dZl#0_6!_)*Vhg)n6>ILISD_vPC;;m#~yC_ttYhVu_( zg5P6R^m-*u;vqvm06^(70`fuoN!VVe5&}w+BW?xf_rQHBo=L|M?|rgcbjgnnC|yeF z62m-VG5o6GRVWcrx~Jno()&soBo1H%Tm$0ryB5)N;&M+V0V&&1HWU@NsbXs1A0 z6A?E1k?Ig0MI3Q?M%wrLFv8dsk0;B^jsN%cses^B#*Z+3+ zB0PJ;fbu>`{Thl`bSFqq5_>(bKq;ng7Jm@G4px!BxoxDVLe3`40jxtnWlipw z<76Ja7Qb^=@v>)gT94vQD~nk7MnoNr_vdKRIze_qH{$O(M(4cSPaEJ(RqF4hM{{KN z+%SbI2w&oCK83A}6{O^Jy_KFcI$&^W+7bYNzYZ@2lhd7A@zUCoNxs4&avcldQI;kS92CuDMYs7uyj@uq9>HVE{xq7^S&lgZH&QTR12 zA@rasl!e-Wjes#_H?v^_0Q5qSwU9=yB84+ZQA(-o990_}7>wjIi$y0$F7)&W8Ji47 z`MjVy4WVZ%aS{)w3dM9O+9s)XnPkDphe?*~zAfe7C8r+qxxCcE4oQ|mq0k~ry*<6I z?NUj+1zQ1&B_CwJQOKuKUw-;}(f(T&&}4G?)Y%|tUFP!XYtK~n!yP~y0qHVW97JKD zDDXMf9(iq2_w4iuW6EgSNsR_@MPymweTRl24=Kg_(Pb1np~uXZ3WXl>oibv(C5l$~NAn-4^iFNN znzAK;D%Gkm`QWK5Sf#7=mw3~<yzH)s8#clMmp@W3@f-hqz+tp`xDwu-6@h+ zzw^1BX>@b*jXz2}c7Z;&J@EAbE!_nMVv4TvGux(tauuhMEW zjC`PK6Wu?Q7Z{b`Izg8CGwL<+vO3S7G>@`Hy zituVcf)>$wm9XPLC&CJE$`-E%B+B=2Q&`6)Zp_WY9dnPtRcD zX8X?0b<&1(5xVVV#Q{p^zT1!iOaa?b;lQssz3q=S)*E`A9B0AzLNuAsGQO~_vE#l9<$ zcKNTDzak)A%KKBQ^!&26p0in1gx+oP`QLlO^&D*9k1JmFC)ULp9{q>Z=_brZzsJ)bV{jrRwA11SX^2pAEQrCO(JPZ$8 zZ80z~0079K(n<-Sx8O=dQX>H+K!ooTLa6aoe-!{0PAQU8EW$7GaFdfK=}o$ZhK2<1 zr@4AyK1+G!?nILhOziuZOiWI?#4|B{X7l(m(~mv&2zl@E@xj#i!`gN0NPQ~lexY_f zU$x4X>3$?VI$7q-(ciFPlPwnDGXm;HUA)Jx*HuGgWYeb2j$^gDKYi9}4CyFN;}@

GR@H&owE^~8&C!S$YEePm+U=RM9BvLK!%ge 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 literal 0 HcmV?d00001 diff --git a/3d_armor/settingtypes.txt b/3d_armor/settingtypes.txt new file mode 100644 index 0000000..c6c90de --- /dev/null +++ b/3d_armor/settingtypes.txt @@ -0,0 +1,65 @@ + +[3d_armor] + +armor_material_wood (Enable wood armor) bool true +armor_material_cactus (Enable cactus armor) bool true +armor_material_steel (Enable steel armor) bool true +armor_material_bronze (Enable bronze armor) bool true +armor_material_diamond (Enable diamond armor) bool true +armor_material_gold (Enable gold armor) bool true +armor_material_mithril (Enable mithril armor) bool true +armor_material_crystal (Enable crystal armor) bool true + +# Increase this if you get initialization glitches when a player first joins. +armor_init_delay (Initialization delay) int 2 + +# Number of initialization attempts. +# Use in conjunction with armor_init_delay if initialization problems persist. +armor_init_times (Initialization attempts) int 10 + +# Increase this if armor is not getting into bones due to server lag. +armor_bones_delay (Delay for bones) int 1 + +# How often player armor items are updated. +armor_update_time (Armor refresh rate [seconds]) int 1 + +# Drop armor when a player dies. +# Uses bones mod if present, otherwise items are dropped around the player. +armor_drop (Drop armor on death) bool true + +# Pulverize armor when a player dies, overrides armor_drop. +armor_destroy (Pulverize armor on death) bool false + +# You can use this to increase or decrease overall armor effectiveness, +# eg: level_multiplier = 0.5 will reduce armor level by half. +armor_level_multiplier (Armor effectiveness multiplier) float 1 + +# You can use this to increase or decrease overall armor healing, +# eg: armor_heal_multiplier = 0 will disable healing altogether. +armor_heal_multiplier (Armor healing multiplier) float 1 + +# Enable water protection (periodically restores breath when activated). +armor_water_protect (Enable water protection) bool true + +# Enable fire protection (defaults true if using ethereal mod). +armor_fire_protect (Enable fire protection) bool false + +# Enable punch damage effects. +armor_punch_damage (Enable damage effects) bool true + +# Enable migration of old armor inventories. +armor_migrate_old_inventory (Migrate old armor inventories) bool true + + +[shields] + +shields_disable_sounds (Disable shield sounds) bool false + + +[wieldview] + +# Set number of seconds between visible wielded item updates. +wieldview_update_time (Wieldview refresh rate [seconds]) int 2 + +# Show nodes as tiles, disabled by default. +wieldview_node_tiles (Show nodes as tiles) bool false diff --git a/3d_armor/shields/LICENSE.txt b/3d_armor/shields/LICENSE.txt new file mode 100644 index 0000000..1f84859 --- /dev/null +++ b/3d_armor/shields/LICENSE.txt @@ -0,0 +1,26 @@ +[mod] Shields [shields] +======================= + +License Source Code +------------------- + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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 diff --git a/3d_armor/shields/README.txt b/3d_armor/shields/README.txt new file mode 100644 index 0000000..5a72097 --- /dev/null +++ b/3d_armor/shields/README.txt @@ -0,0 +1,16 @@ +[mod] Shields [shields] +======================= + +Adds shields to 3d_armor + +Depends: 3d_armor + +Originally a part of 3d_armor, shields have been re-included as an optional extra. +If you do not what shields then simply remove the shields folder from the modpack. + +Shields Configuration +--------------------- + +Override the following default settings by adding them to your minetest.conf file. + +shields_disable_sounds = false diff --git a/3d_armor/shields/crafting_guide.txt b/3d_armor/shields/crafting_guide.txt new file mode 100644 index 0000000..9b61dde --- /dev/null +++ b/3d_armor/shields/crafting_guide.txt @@ -0,0 +1,36 @@ +Shields -- Crafting Guide +-------------------------- + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | X | X | ++---+---+---+ +| | X | | ++---+---+---+ + +[shields:shield_wood] X = [default:wood] +[shields:shield_cactus] X = [default:cactus] +[shields:shield_steel] X = [default:steel_ingot] +[shields:shield_bronze] X = [default:bronze_ingot] +[shields:shield_diamond] X = [default:diamond] +[shields:shield_gold] X = [default:gold_ingot] +[shields:shield_mithril] X = [moreores:mithril_ingot] +[shields:shield_crystal] X = [ethereal:crystal_ingot] + +Enhanced Shields +---------------- + ++---+ +| S | ++---+ +| X | ++---+ +| S | ++---+ + +[shields:shield_enhanced_wood] X = [shields:shield_wood] +[shields:shield_enhanced_cactus] X = [shields:shield_cactus] + +S = [default:steel_ingot] + diff --git a/3d_armor/shields/depends.txt b/3d_armor/shields/depends.txt new file mode 100644 index 0000000..585cc7a --- /dev/null +++ b/3d_armor/shields/depends.txt @@ -0,0 +1,2 @@ +default +3d_armor diff --git a/3d_armor/shields/description.txt b/3d_armor/shields/description.txt new file mode 100644 index 0000000..cb378bb --- /dev/null +++ b/3d_armor/shields/description.txt @@ -0,0 +1 @@ +Adds visible shields to 3d armor. diff --git a/3d_armor/shields/init.lua b/3d_armor/shields/init.lua new file mode 100644 index 0000000..754b093 --- /dev/null +++ b/3d_armor/shields/init.lua @@ -0,0 +1,236 @@ +-- support for i18n +local S = armor_i18n.gettext + +local disable_sounds = minetest.settings:get_bool("shields_disable_sounds") +local function play_sound_effect(player, name) + if not disable_sounds and player then + local pos = player:get_pos() + if pos then + minetest.sound_play(name, { + pos = pos, + max_hear_distance = 10, + gain = 0.5, + }) + end + end +end + +if minetest.global_exists("armor") and armor.elements then + table.insert(armor.elements, "shield") + local mult = armor.config.level_multiplier or 1 + armor.config.level_multiplier = mult * 0.9 +end + +-- Regisiter Shields + +armor:register_armor("shields:shield_admin", { + description = S("Admin Shield"), + inventory_image = "shields_inv_shield_admin.png", + groups = {armor_shield=1000, armor_heal=100, armor_use=0, not_in_creative_inventory=1}, +}) + +minetest.register_alias("adminshield", "shields:shield_admin") + +if armor.materials.wood then + armor:register_armor("shields:shield_wood", { + description = S("Wooden Shield"), + inventory_image = "shields_inv_shield_wood.png", + groups = {armor_shield=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}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_wood_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_wood_footstep") + end, + }) + armor:register_armor("shields:shield_enhanced_wood", { + description = S("Enhanced Wood Shield"), + inventory_image = "shields_inv_shield_enhanced_wood.png", + groups = {armor_shield=1, armor_heal=0, armor_use=2000}, + armor_groups = {fleshy=8}, + damage_groups = {cracky=3, snappy=2, choppy=3, crumbly=2, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) + minetest.register_craft({ + output = "shields:shield_enhanced_wood", + recipe = { + {"default:steel_ingot"}, + {"shields:shield_wood"}, + {"default:steel_ingot"}, + }, + }) + minetest.register_craft({ + type = "fuel", + recipe = "shields:shield_wood", + burntime = 8, + }) +end + +if armor.materials.cactus then + armor:register_armor("shields:shield_cactus", { + description = S("Cactus Shield"), + inventory_image = "shields_inv_shield_cactus.png", + groups = {armor_shield=1, armor_heal=0, armor_use=1000}, + armor_groups = {fleshy=5}, + damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=1}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_wood_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_wood_footstep") + end, + }) + armor:register_armor("shields:shield_enhanced_cactus", { + description = S("Enhanced Cactus Shield"), + inventory_image = "shields_inv_shield_enhanced_cactus.png", + groups = {armor_shield=1, armor_heal=0, armor_use=1000}, + armor_groups = {fleshy=8}, + damage_groups = {cracky=3, snappy=3, choppy=2, crumbly=2, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) + minetest.register_craft({ + output = "shields:shield_enhanced_cactus", + recipe = { + {"default:steel_ingot"}, + {"shields:shield_cactus"}, + {"default:steel_ingot"}, + }, + }) + minetest.register_craft({ + type = "fuel", + recipe = "shields:shield_cactus", + burntime = 16, + }) +end + +if armor.materials.steel then + armor:register_armor("shields:shield_steel", { + description = S("Steel Shield"), + inventory_image = "shields_inv_shield_steel.png", + groups = {armor_shield=1, armor_heal=0, armor_use=800, + physics_speed=-0.03, physics_gravity=0.03}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) +end + +if armor.materials.bronze then + armor:register_armor("shields:shield_bronze", { + description = S("Bronze Shield"), + inventory_image = "shields_inv_shield_bronze.png", + groups = {armor_shield=1, armor_heal=6, armor_use=400, + physics_speed=-0.03, physics_gravity=0.03}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=2, snappy=3, choppy=2, crumbly=1, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) +end + +if armor.materials.diamond then + armor:register_armor("shields:shield_diamond", { + description = S("Diamond Shield"), + inventory_image = "shields_inv_shield_diamond.png", + groups = {armor_shield=1, armor_heal=12, armor_use=200}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, choppy=1, level=3}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_glass_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_break_glass") + end, + }) +end + +if armor.materials.gold then + armor:register_armor("shields:shield_gold", { + description = S("Gold Shield"), + inventory_image = "shields_inv_shield_gold.png", + groups = {armor_shield=1, armor_heal=6, armor_use=300, + physics_speed=-0.04, physics_gravity=0.04}, + armor_groups = {fleshy=10}, + damage_groups = {cracky=1, snappy=2, choppy=2, crumbly=3, level=2}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_dig_metal") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_dug_metal") + end, + }) +end + +if armor.materials.mithril then + armor:register_armor("shields:shield_mithril", { + description = S("Mithril Shield"), + inventory_image = "shields_inv_shield_mithril.png", + groups = {armor_shield=1, armor_heal=12, armor_use=100}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_glass_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_break_glass") + end, + }) +end + +if armor.materials.crystal then + armor:register_armor("shields:shield_crystal", { + description = S("Crystal Shield"), + inventory_image = "shields_inv_shield_crystal.png", + groups = {armor_shield=1, armor_heal=12, armor_use=100, armor_fire=1}, + armor_groups = {fleshy=15}, + damage_groups = {cracky=2, snappy=1, level=3}, + reciprocate_damage = true, + on_damage = function(player, index, stack) + play_sound_effect(player, "default_glass_footstep") + end, + on_destroy = function(player, index, stack) + play_sound_effect(player, "default_break_glass") + end, + }) +end + +for k, v in pairs(armor.materials) do + minetest.register_craft({ + output = "shields:shield_"..k, + recipe = { + {v, v, v}, + {v, v, v}, + {"", v, ""}, + }, + }) +end diff --git a/3d_armor/shields/mod.conf b/3d_armor/shields/mod.conf new file mode 100644 index 0000000..9a95629 --- /dev/null +++ b/3d_armor/shields/mod.conf @@ -0,0 +1,3 @@ +name = shields +depends = default, 3d_armor +description = Adds visible shields to 3d armor. diff --git a/3d_armor/shields/textures/preview_index.txt b/3d_armor/shields/textures/preview_index.txt new file mode 100644 index 0000000..4408c61 --- /dev/null +++ b/3d_armor/shields/textures/preview_index.txt @@ -0,0 +1,11 @@ +shields/textures/shields_shield_wood.png:shield +shields/textures/shields_shield_enhanced_wood.png:shield +shields/textures/shields_shield_cactus.png:shield +shields/textures/shields_shield_enhanced_cactus.png:shield +shields/textures/shields_shield_steel.png:shield +shields/textures/shields_shield_bronze.png:shield +shields/textures/shields_shield_gold.png:shield +shields/textures/shields_shield_diamond.png:shield +shields/textures/shields_shield_mithril.png:shield +shields/textures/shields_shield_crystal.png:shield +shields/textures/shields_shield_admin.png:shield diff --git a/3d_armor/shields/textures/shields_inv_shield_admin.png b/3d_armor/shields/textures/shields_inv_shield_admin.png new file mode 100644 index 0000000000000000000000000000000000000000..7ec86c467c3d9f935eea8796a3c40511aaff7029 GIT binary patch literal 277 zcmV+w0qXvVP)B(y+AKr_U&Kmn9QL`232ug=dS-<I|Z2S=)b*Z(#^P6`->KxQ`*- z5NGB{QM>^l5_9PO%2c`aU*k6bDHsf(Fr~pUaLgSbCn2It7-@^>ivW^jgDL{dm4|>i bXk)$Hi)C`W8$X@UWe_HvX4y}Qn-BtcX21QHQ$KfZSZV* z@wob0<4pyr6ow8rGX|GrQ-&ooCU7TYaY!}fSf4Rfk#v~I{h^hyHpZb$LSQ!E2C0TQ n6F8PK-%?HOG8VSHDap|H^)XX7`}{DVgBUzr{an^LB{Ts5ax_2& literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_inv_shield_crystal.png b/3d_armor/shields/textures/shields_inv_shield_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..18e90f5423d36766d212075a1a4c14e65b0673a2 GIT binary patch literal 274 zcmV+t0qy>YP)I^RO8YbmFDFP!mS@c{r0hrd=pPaJYXatc`=&z9XK0K8b@5F2ZQT5QEV zSa9J0Wl8|5plFom8-PRRfZEUBfEZ$Z3JvB1Kr^VZ@zsCeuP^{mN(K+SrHmmy#F@E% z!y5}r;vDQbJu_oiz5uL3gGmqqeQ+9hnma&O3EP1wjcO}PUj(ocH$+APE%OjC0}YJS Y3rPM|S>K59Y5)KL07*qoM6N<$g0$&qzyJUM literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_inv_shield_diamond.png b/3d_armor/shields/textures/shields_inv_shield_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..e17239778569ccec0cf6d9b8f92fb1d808aa0308 GIT binary patch literal 281 zcmV+!0p|XRP)<3!YdH-4)LiTNGI7S7Jw@tUStE|P1# z>b2Xx7j^h-nH~17`T6A9T-tQJT?eu=zEj@=GR+QuO%NVCsko|z*(J^jD? zv8`LTYDmP&E$e5z*-%?u*7)(~=H&-}+?;$of#>nzCm*E_JU`GN{@9cuh1+AIhrr?b zoe^#SZ!HzzNoqdgP^4fQ!OQSdIPJhk+t&wXIhdSa5a`We@X!rocKE0IglU4*A|8ir zvd^R@@hmvO`r}Z8ot}asko>^7GCnY`o zKl{U5x1yRPmWj0l^4!>-E-o?OzWUey&FcLdlP1Xc$aXO*Om=KK=XUA8`S-S_kDJ`| zEu}J=(aH`s5hx}9#q(B!Rt__cS72r z=M5_lvjZd3XQnedPe|O`u%bi_RG{p z@H&)p8Xa3Extj5W9^*~EPi(t3b4oSL+f$f%ESsT7O?ig2=0S$l&lkAOiD5en^cjPv LtDnm{r-UW|Tv%Zk literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_inv_shield_gold.png b/3d_armor/shields/textures/shields_inv_shield_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..d8e9d6b89a3c840f865dafc605314e245003c7c2 GIT binary patch literal 263 zcmV+i0r>ujP)$eP%O22Q}I9xUP#iKqDY+pvbnaQV%0b z3qbTHx*6klD78F0E$sssMmnzoDE3PBu%ypFj7coGL8QV_ihAc=$A=$jV-bI_6z{Q$h+X@rk6!0P}2 N002ovPDHLkV1nq+X3GEo literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_inv_shield_mithril.png b/3d_armor/shields/textures/shields_inv_shield_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..a9dfa06775b0805c827e903d72e4ef8025e11a10 GIT binary patch literal 261 zcmV+g0s8)lP)Sj3`LoN7CJHpU1nf}tiT9aE)^-WL#hk_`X@c>=VA~kzD{TRKN}29+g?}n?k~+5 zxu;yF>ABAHD}r5jOGRF_@&sTUAEiL21kj}zd1?zl7bWR34EIA(2dDtlfgs&7DTk4! z0T8_&-HprgiI{3>ngS?Bx*q}v{sV|d@GYDL@V?SD)`lARvqruwMstWy;bx|gw*Vk= zN^AfTr-_;dz^4$zL5R3&FnwH7t?5}E>NMmjG7DEE2NI*6flB*8POZ`I>z(XjGZz70000< KMNUMnLSTZGGHQ?j literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_inv_shield_wood.png b/3d_armor/shields/textures/shields_inv_shield_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..2365086f96c11eb1102d70bed8d3a54db641cdd8 GIT binary patch literal 210 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Gd*1#Lo7}w|M>sko>^7G$3oik zzdHM3i4AKma`%{jZ)-9%l9oJtB~jwStW4(PrJQUDJ>C3=G}t6obw0Y<(dSsCV5`B_ zV6d^SedTcu=9qu3(+^9s{g~79&b7xt;hOY`tcPq0yP4ucntq(vwpfC}nC0foAB*@` zGyX_oxp}jK*Wo)KM{`VLo^c%WguTsYZ@Ne}%sI*N%+1Sy;ZJ5%ZN!Baiano zWCcTZUhNBk8+c5$4H%RI17q8ray}_PFL}sv_ov+@b)h3i>;DxhS>IH<>iBKhWSRY3 zzXPV*Z%XN$wd2&$lIgQGbLVN!Z4dit{-^)1B14Ax)hp{c9nL;tT%kF`F za~T}6of!gxcl}BZ=s$cU@Pnx#LrSt7gHp77 zWCcTZUhNBk8+c5$4H%RI11~BH&))Nb)luLv*=hwfJDK7uL)Q5pdpn-u! zfq{|30nYqmd*IA6xu_d9TQ@yjuz|l!l_C1}l5g9*e?ED!&+hBhKW+av?q^Y0#JPNZ z8iScUb4##=b4ozkqk?_wR2W)vIUOu|r=Gqr^|7Dkjb&^L3ePZfY+>%uabU>E-N$@D z;3`Al`Eo|DSqAHbq+V+}+-ByyyC(HL!~LdqhAS;QSXCLE1@@}#v9#G7V9Grq=!@g~ z&?P5+a;3f0Y7ex^k>*zTBk)kP$JSy`jg*qGhoSv`4elWOTNcMso-AZh=&Skio>A`N hcfM=l6XBj}(DUxhv`phn-3JUZ22WQ%mvv4FO#r}>ey;!k literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_bronze.png b/3d_armor/shields/textures/shields_shield_bronze.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a7ad4baf244d2e261b8ecefd2acd6ff71c8434 GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|?kTba4#Hxc7FNA=jY*0hi02 z9dp;ZZxDK8+iWh7pE&c7bYz9RzM@kJ^JmFxE{mu7s2Q}pxgUS#Ht+7MWtN!>o(J<@ z)Gz-Rx_0L4x?6W%l^T{toV9BGe4^Ldh(T|+Yqr5XMTSIIp64f~G66HWpfBI-)<+pf4;w}*vQ z*}6@CzcM+1Ss_2;7$jR(ee7pAro?Q(fPoqWUorCE(3hOrn-l{K83s>RKbLh*2~7Z& CnQ^QD literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_bronze_preview.png b/3d_armor/shields/textures/shields_shield_bronze_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..8450130c75d07d3175d24b50f619e8927406138f GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2d_Ffj6Xx;Tbp+~mlzqM*72ds(Pz_4{m4l-*G;+f*T{;Q z$KU`13i04Q&~`O~_n?~~=iHXmGIf9#lXX2a{ek6r@%1shBj_0}C* z#*nmW#+*<&^UoI(WG09>teM~$`8L2szSD6zV^ZnYYuS&EKfSa4Xv76y1{LK;^}!62 z>zF*MS*y72u`Zd{^h@FzXLi6Z!z-sXwuK3PjSZOJuqA52^C*2~-dm1ErOQP{%N+Hk zcyH}&njPXSr0pWioEg=p>Gn&?!zRRV_SMR@UCB#t#k;UcBs4Gri37q5^YtYQODEX@ PgNMP>)z4*}Q$iB}ah-w5 literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_cactus.png b/3d_armor/shields/textures/shields_shield_cactus.png new file mode 100644 index 0000000000000000000000000000000000000000..8c69d76a7b7d6daf21afc4ae45af670de756aafd GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQd>P;978hhy}fS8cUXakH9$Xh zrj>EYQ=vJE*2f=2Svr1~d!4>v%?=*lYq#ouI0>daNK{m2U}><4W14?y|K@YI>;KDr zWH|2|+`i1WxAt~TM#I-9*IU?DJihZJim@%&J%HhM%*&?p)$X!Z+g2`S*Ra)an0;L| zA^Q;XkIUP$JXj~}Vye5#xQ5{#Vj5)!8-T(J_Tm8)!R{%Z0;OXk;vd$@?2>`)TS&0Au literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_cactus_preview.png b/3d_armor/shields/textures/shields_shield_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..ab2a5316da5348ca6bedcd97a31411a8919cb88f GIT binary patch literal 320 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2d_Ffg)vx;Tbp+)MuR|G)iV2c~0z z>^)WqR~Q%bNt7N~!R#h$@TvhrC`abNvNIh?0?TDq{rT>`;!k|}f8(ILjDOe!%*4%G zo=t7IFhAbmMSi^Em*dZY*q zJt$B4qp!eSc;MWuQl5w0%@Se9)+c-1lssZ^yjHgP{T78C%yu?u2|sqsXXBe-3e;31 zRnKwY%7r_Ovo{OuYj16<_7?anW3WK6L7%s$M?hkO3B&26mQ#$gQkmC&`;pYI93T3e|5XtQZ(H{!W-MXSNn7j2Jv!{an^LB{Ts5Mj3k@ literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_crystal.png b/3d_armor/shields/textures/shields_shield_crystal.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee039d8994aee864e6829935bcc54d4f4cf150e GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|^K8hiJgvrT z=4B16Ga4Bs8kmz5{c;X6@LXoxG3~}#h7uUQ)#e);iDsnZ?R>VjrV} zXu<}@mi-(L#a5&@%~;P6GPR-X!}a(rt`jcJXG!>cK=N7-v&Vun=8QcKET(qc3A#!Q fObQq%V&T1KX^vBV7TR401{i~pTv z^Rfok8I6n*4a`Z3emMsjcn&kf_|AC}*{9*!!0lAkzT7MKP0c^gJ1R;qr+cv|FfejB zFfa);Fu<7)-ZNgR(RA%Dy_#jMx28FkMU>({ow-)6_+usCq}`ZNYJ zdFBP7e7+%a0Sgyd7z;np_;oWCHCC#{XmcC#vm#KYn zSMbb*g@-+4qmoSp>IEN)>15w}_VDrrqsF2iufjh1CCXI^ h$^Qfe;r@BSw*Q;s6t6Q9+`uqn@O1TaS?83{1OTk3e6|1p literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_diamond.png b/3d_armor/shields/textures/shields_shield_diamond.png new file mode 100644 index 0000000000000000000000000000000000000000..5bbb4fc1e8499fc40be100f67851e4f7dc80f9bb GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|>}8ba4#Hxc7G2M&3gXJg)gd zUTh7n0;0+aWez?L%@OKJ!bjM?WH#k~;+I!(xp4HS$Nb3;V*aGhe>-Jb_pvQ;wp(x4 ziND)g_{lRlEJ%3s;d>_b^L=J}UzN$f?(|Fg-|@c^3@Wp;UR~#MIP-(CLvw~>n&R1C zd)K}Fa*9F4jD^8ib$LBo!1dq{hKdX;4EY&mvN5b>;y5N~%*i0(6tYa_K!wgV%>P)5nq?3(kCJs$dtq`a_{% jWd{RC0|rWHs$!6R8j{an^LB{Ts5w`7Bx literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_diamond_preview.png b/3d_armor/shields/textures/shields_shield_diamond_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..78e69e61444dd0185645049201c13477769795ed GIT binary patch literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2d_Ffgikx;Tbp+|B-QTUX7UGNsx7PSR{(EkVh1{oaHLI5Fe^~#fpHU$H z%8S*48tHay0*ejU&MSQVb;)E~l_&#i7lXm#O~29`cFj99pOZ1*upGlYCWplg50mEn z>G62mWr8lii!df7L0G!%0` zADF)Q`yMUFMm|}$tPLt*+>fLMcP)6Esn0*Zt-~dA^SZx}A_aaOJZ7l2Sl)~EM5W!2 m?+&Jmto5FW3&K6tu&$&iDo6TE-)3O2F?hQAxvXx0<} zqNQRdgw8meXIU3qrOM_YsLSdk$uz~3&vx--zOI&OyTffPJLevnU!T&wiYv$~aDLQl z_kFM5?yv8!XgFPxH}n1WX-|JR(@7n%R*5 z4A*ut#w-thZQ{kS;0r^Bv=GDV+HAH3zFZ9Uzs#hA7?;dr%&ulgXZYT5fMNeUW+$c} z%@?j&Hn=CowKXv<*~gd8%gEutz$DPXz@oqaV{(3Gni3dq(!mdKI;Vst E0Qe_fIsgCw literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png b/3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..4b85f48c3cef146939039e6c34b23f3e730e82d9 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsSBPijv*QM-d@|td&oebHPPR} z^(>RlL7p!@4`yA`He~3^2v#^Epm5FNOOK9ZSIe^`!GDjQsBC+3KK=EagtUdJEI>0* zz=0eFL$}q+OTUQC|Et#!Tz;l-@0?)izPQ0<0WQVTZfF}(dA!Df;s+f&}GVX}g_dI|6uHF0az>4Q~S_~19B3tM5zpaT;pZjg~`&tp3509jQ zqOl_7H}rD0&s2M8SKr1SXT{KA(e>N?!zHGULU-vMN!%A0541hgeNfonwf2FogC%R) z#MW8kuQj^~*knvrJG|?ArK4sbL1o8oOH!y5IIPe7c`} t?U6O(5oe*lnFSw?Co&2!U_la7qUz7~H2&FCa1$6344$rjF6*2UngEW$d;I_a literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png b/3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..52ba7eb482363a9ea97ed7de1ed206c46b46d671 GIT binary patch literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2d_Ffg)ux;Tbp+jqr~dn z={oE4x7Mbg-zaMH;gNJW!yCTI`O}0Wb=x8(w$FdqcwLr3@z|639QU#q%;{v&9asu_Re3mEl(q?{%-rTD)y+EP}tI= ztG_b!vXu3kY&raIYFf(r=i%Mq@7uP${7{c@=^tGO=3`|&jWfBg90!IAgQu&X%Q~lo FCIC%;fyDp- literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_gold.png b/3d_armor/shields/textures/shields_shield_gold.png new file mode 100644 index 0000000000000000000000000000000000000000..09fa339a8847f2004ed082b7087ceb2934f74026 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|{6-ba4#HxcBz@M&4!v0oH*0 zgBDxf9FU9fImq%Q=OB|vPQ!%d3wDV-nSHoWU`kEwM`@?7{}v_3wr&+(vPP|3{g=Jc zqkA&fulc3uxis}J{iQZP!m488&IgPUZF?UWy~!E(D_Kd^Hs zU|^B=ewdjq{3q~Fw;QuT+02XKM^mF8Z{28p!GbYB>}FUI!;~tf1E08F=oW}KWN|Oa z{;<4&$!R-V;ikhG^93etcG$&uDyv9@p=$knK4+~Rd@3??H5tB$ylC$0+qZ7NbOys0 zl?)D+;D(FKSq=bMu{Ph2dazG$`lIc~{NWoDTLJ?X^ua>jFEVt0s+gM`FmxC^UHx3v IIVCg!0FO6&v;Y7A literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_gold_preview.png b/3d_armor/shields/textures/shields_shield_gold_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..43375448ce67b34daede2729a075d638ae9727f7 GIT binary patch literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2d_Ffj6Yx;Tbp+dKCW`(&8yJpVebU6R@p+V3=s|gmnd>M9e|5|YI z;_F|#6WK1zy&%96>+rgp;Q}Y`#n$3@pJE5DpJ6w64%E9qJy1}6fLo?5bpO6z$}GSD OV(@hJb6Mw<&;$V9`hL*> literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_mithril.png b/3d_armor/shields/textures/shields_shield_mithril.png new file mode 100644 index 0000000000000000000000000000000000000000..38558c4b03756bb011519df7af3b3807cfea5e88 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|{6-ba4#Hxc7GYM&3gKJTCuv zGM&Ybc^v1FY!o$OIvvjK5gTJuOyv z?t6IOnxkh7Y@QX?tXp>LTa@Uz$9YdqFueHvJIUamGsB@SiF1YFOb#6HWpfBI-)<*8f7y4b?%fS)oD69TE2gnA1XnYh*u!MQx{YbV zET&4Hw8N4ecO;IawO>o)s1!dTtWc!N@FC`TYDcSuLSpGOh6Aw&y7{;Z*Bm%8neo8f z0}3}R918kG7)qF$6CQ8Xce7-WJfi>Dh@mg<00R#;RQ8&=toE~oQ1C}k=rDM?`njxg HN@xNAs*ZhK literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_mithril_preview.png b/3d_armor/shields/textures/shields_shield_mithril_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..e5ca98739c05c6487441781131beb06603726216 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2d_Ffj6ax;Tbp+^PaAlCPKjXqV6Vi?V{m|hndgS>16Kcp&lc9R SpRNIh5QC?ypUXO@geCxnl7GJd literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_steel.png b/3d_armor/shields/textures/shields_shield_steel.png new file mode 100644 index 0000000000000000000000000000000000000000..108dffe703a0517915a03a7c97d0fdd01d9027ce GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=%;U|{6*ba4#Hxc7GYMb1MG0xp+l z?*BGP>QaY7M0*GCiinmZaYd^}&ci~gb!jsW2o#n7Hq1AF6L)#rTZi0j*V8&po_#jS zzLxQs;^&wQJ+!ToVd8Z*PqwM*9@`@L`ewSs9EbQmw_wB~0sn0)1Dm>uu1`#=ywSnPsr z2eWoCZOm?-^CsdJ*TQp5TbUKEF*STEm2C@&QCI0ZC&sXatK>r9RmP4&GlnffHy(xj zVSTmqBo~8rqr$5%=HyYdS3j3^ HP6pt%v#&~>*-99hTC5+&FlXyR5EMXx*h$SE7W)&)L88kejuzgfh+sY^P3_JEY1aC zl{emp9W7?@WOQidIh9p?NKRPTikIQ)(bd}|aZ-02TklOq45{S;o24-6ItPgg&ebxsLQ E00(V(l>h($ literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_wood.png b/3d_armor/shields/textures/shields_shield_wood.png new file mode 100644 index 0000000000000000000000000000000000000000..8cc5b85a314d6a19bb7f9613d193dd0638989b7f GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^4nVBH!3HE3&8=$zQfEC~978hhy}fS8*KEMU8lZP^ zrFHSkJH2bGzpsm7>TKM2{Q;BAg{itriFZBDYvfB)Jyv^+R1Q~BGPrK5~x$tHfrPh}S}L>K)1 zDR5vrbJERl#vjf?e=;}xd~CqT;lRKo(7?c=zyN1vXvH5;blXw6*Sa0(F$PapKbLh* G2~7ajpKh7} literal 0 HcmV?d00001 diff --git a/3d_armor/shields/textures/shields_shield_wood_preview.png b/3d_armor/shields/textures/shields_shield_wood_preview.png new file mode 100644 index 0000000000000000000000000000000000000000..c22465e48583da5e587a84a358252cf9e84b8de6 GIT binary patch literal 270 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsjHqYjv*QM-cB>*J7mD)TFj|d z_UzD^W5@38)t>H<^x}l+4hD9fq9q|=E{nMSG8~rPcSR%b*Q5D2cnyzz@MZ-XfB}vw zEkA5lr=)q{ahYG$z2hqX-%Ne{gyHkk9WShSJ-2T3$T7=8}IMkBXsMK-PyITudfxkzUD*b`+MAb zWYtbP?fm@itj6t+dT--jx9xlR!5;38Ke`9FRpi`u_{nFhg9JTY{an^LB{Ts5_X%x* literal 0 HcmV?d00001 diff --git a/3d_armor/wieldview/LICENSE.txt b/3d_armor/wieldview/LICENSE.txt new file mode 100644 index 0000000..e1552c0 --- /dev/null +++ b/3d_armor/wieldview/LICENSE.txt @@ -0,0 +1,18 @@ +[mod] visible wielded items [wieldview] +======================================= + +Copyright (C) 2012-2019 stujones11, Stuart Jones + +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. diff --git a/3d_armor/wieldview/README.txt b/3d_armor/wieldview/README.txt new file mode 100644 index 0000000..ffa5ef0 --- /dev/null +++ b/3d_armor/wieldview/README.txt @@ -0,0 +1,23 @@ +[mod] visible wielded items [wieldview] +======================================= + +Depends on: 3d_armor + +Makes hand wielded items visible to other players. + +default settings: [minetest.conf] + +# Set number of seconds between visible wielded item updates. +wieldview_update_time = 2 + +# Show nodes as tiles, disabled by default +wieldview_node_tiles = false + + +Info for modders +################ + +Wield image transformation: To apply a simple transformation to the item in +hand, add the group “wieldview_transform” to the item definition. The group +rating equals one of the numbers used for the [transform texture modifier +of the Lua API. diff --git a/3d_armor/wieldview/depends.txt b/3d_armor/wieldview/depends.txt new file mode 100644 index 0000000..b6cac21 --- /dev/null +++ b/3d_armor/wieldview/depends.txt @@ -0,0 +1 @@ +3d_armor diff --git a/3d_armor/wieldview/description.txt b/3d_armor/wieldview/description.txt new file mode 100644 index 0000000..0d51ad9 --- /dev/null +++ b/3d_armor/wieldview/description.txt @@ -0,0 +1 @@ +Makes hand wielded items visible to other players. diff --git a/3d_armor/wieldview/init.lua b/3d_armor/wieldview/init.lua new file mode 100644 index 0000000..7f68732 --- /dev/null +++ b/3d_armor/wieldview/init.lua @@ -0,0 +1,85 @@ +local time = 0 +local update_time = tonumber(minetest.settings:get("wieldview_update_time")) +if not update_time then + update_time = 2 + minetest.settings:set("wieldview_update_time", tostring(update_time)) +end +local node_tiles = minetest.settings:get_bool("wieldview_node_tiles") +if not node_tiles then + node_tiles = false + minetest.settings:set("wieldview_node_tiles", "false") +end + +wieldview = { + wielded_item = {}, + transform = {}, +} + +dofile(minetest.get_modpath(minetest.get_current_modname()).."/transform.lua") + +wieldview.get_item_texture = function(self, item) + local texture = "3d_armor_trans.png" + if item ~= "" then + if minetest.registered_items[item] then + if minetest.registered_items[item].inventory_image ~= "" then + texture = minetest.registered_items[item].inventory_image + elseif node_tiles == true and minetest.registered_items[item].tiles + and type(minetest.registered_items[item].tiles[1]) == "string" + and minetest.registered_items[item].tiles[1] ~= "" then + texture = minetest.inventorycube(minetest.registered_items[item].tiles[1]) + end + end + -- Get item image transformation, first from group, then from transform.lua + local transform = minetest.get_item_group(item, "wieldview_transform") + if transform == 0 then + transform = wieldview.transform[item] + end + if transform then + -- This actually works with groups ratings because transform1, transform2, etc. + -- have meaning and transform0 is used for identidy, so it can be ignored + texture = texture.."^[transform"..tostring(transform) + end + end + return texture +end + +wieldview.update_wielded_item = function(self, player) + if not player then + return + end + local name = player:get_player_name() + local stack = player:get_wielded_item() + local item = stack:get_name() + if not item then + return + end + if self.wielded_item[name] then + if self.wielded_item[name] == item then + return + end + armor.textures[name].wielditem = self:get_item_texture(item) + armor:update_player_visuals(player) + end + self.wielded_item[name] = item +end + +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + wieldview.wielded_item[name] = "" + minetest.after(0, function() + local pplayer = minetest.get_player_by_name(name) + if player then + wieldview:update_wielded_item(pplayer) + end + end) +end) + +minetest.register_globalstep(function(dtime) + time = time + dtime + if time > update_time then + for _,player in ipairs(minetest.get_connected_players()) do + wieldview:update_wielded_item(player) + end + time = 0 + end +end) diff --git a/3d_armor/wieldview/mod.conf b/3d_armor/wieldview/mod.conf new file mode 100644 index 0000000..c5f4812 --- /dev/null +++ b/3d_armor/wieldview/mod.conf @@ -0,0 +1,3 @@ +name = wieldview +depends = 3d_armor +description = Makes hand wielded items visible to other players. diff --git a/3d_armor/wieldview/transform.lua b/3d_armor/wieldview/transform.lua new file mode 100644 index 0000000..4d5133e --- /dev/null +++ b/3d_armor/wieldview/transform.lua @@ -0,0 +1,24 @@ +-- Wielded Item Transformations - http://dev.minetest.net/texture + +wieldview.transform = { + ["default:torch"]="R270", + ["default:sapling"]="R270", + ["flowers:dandelion_white"]="R270", + ["flowers:dandelion_yellow"]="R270", + ["flowers:geranium"]="R270", + ["flowers:rose"]="R270", + ["flowers:tulip"]="R270", + ["flowers:viola"]="R270", + ["bucket:bucket_empty"]="R270", + ["bucket:bucket_water"]="R270", + ["bucket:bucket_lava"]="R270", + ["screwdriver:screwdriver"]="R270", + ["screwdriver:screwdriver1"]="R270", + ["screwdriver:screwdriver2"]="R270", + ["screwdriver:screwdriver3"]="R270", + ["screwdriver:screwdriver4"]="R270", + ["vessels:glass_bottle"]="R270", + ["vessels:drinking_glass"]="R270", + ["vessels:steel_bottle"]="R270", +} + diff --git a/README.md b/README.md index 6982a3e..15ebf29 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ All mods have the own README.txt. For further information please consult these f This modpack includes: - techage: The main mod +- ta4_jetpack: A Jetpack for techage with hydrogen as fuel and TA4 recipe - autobahn: Street blocks and slopes with stripes for faster traveling (the only need of bitumen from techage) - compost: The garden soil is needed for the TA4 LED Grow Light based flower bed - signs_bot: For many automation tasks in TA3/TA4 like farming, mining, and item transportation @@ -14,6 +15,7 @@ This modpack includes: - towercrane: Simplifies the building of large techage plants - basic_materials: Needed items for many recipes - stamina: The "hunger" mod from "minetest-mods" +- 3d_armor: Visible player armor & wielded items for minetest (needed for ta4_jetpack) - doc: Ingame documentation mod, used for minecart and signs_bot - unified_inventory: Player's inventory with crafting guide, bags, and more. - tubelib2: Necessary library @@ -41,13 +43,17 @@ Required: Minetest Game ### History -#### 2020-06-23 +#### 2020-06-29 Updates (see local readme files): -- mod stamina added -- autobahn, towercrane and stamina now use a commen player physics lockout mechanism -- signs_bot v1.03 with bugfixes -- techage manual expanded +- autobahn, towercrane, ta4_jetpack, 3d_armor, and stamina now use a commen player physics lockout mechanism +- the new mod ta4_jetpack added +- mod stamina added (adapted to the player physics lockout mechanism) +- mod 3d_armor added (needed for ta4_jetpack, adapted to the player physics lockout mechanism) +- minecart v1.07 with many improvements +- techage v0.14 with many improvements +- hyperloop v2.06 update +- autobahn update #### 2020-06-21 diff --git a/autobahn/init.lua b/autobahn/init.lua index e7efdba..3dfa3a6 100644 --- a/autobahn/init.lua +++ b/autobahn/init.lua @@ -284,7 +284,7 @@ minetest.register_craftitem("autobahn:stripes", { if minetest.global_exists("techage") then minetest.register_craft({ - output = "autobahn:node1 9", + output = "autobahn:node1 12", recipe = { {"techage:sieved_basalt_gravel", "techage:sieved_basalt_gravel", "techage:sieved_basalt_gravel"}, {"techage:sieved_basalt_gravel", "techage:ta3_barrel_bitumen", "techage:sieved_basalt_gravel"}, @@ -293,7 +293,7 @@ if minetest.global_exists("techage") then replacements = {{"techage:ta3_barrel_bitumen", "techage:ta3_barrel_empty"}}, }) minetest.register_craft({ - output = "autobahn:node1 9", + output = "autobahn:node1 12", recipe = { {"techage:sieved_gravel", "techage:sieved_gravel", "techage:sieved_gravel"}, {"techage:sieved_gravel", "techage:ta3_barrel_bitumen", "techage:sieved_gravel"}, @@ -301,7 +301,8 @@ if minetest.global_exists("techage") then }, replacements = {{"techage:ta3_barrel_bitumen", "techage:ta3_barrel_empty"}}, }) -elseif minetest.global_exists("moreblocks") then +end +if minetest.global_exists("moreblocks") then minetest.register_craft({ output = "autobahn:node1 4", recipe = { @@ -309,6 +310,26 @@ elseif minetest.global_exists("moreblocks") then {"default:cobble", "default:cobble"}, }, }) +else + minetest.register_craft({ + output = "autobahn:node1 4", + recipe = { + {"autobahn:tar", "autobahn:tar"}, + {"default:cobble", "default:cobble"}, + }, + }) + minetest.register_craft({ + type = "cooking", + output = "autobahn:tar", + recipe = "default:pine_tree", + }) + minetest.register_node("autobahn:tar", { + description = "Tar", + tiles = {"autobahn1.png^[colorize:#000000:80"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), + }) end minetest.register_craft({ diff --git a/hyperloop/recipes.lua b/hyperloop/recipes.lua index a1afb80..b0b1ebf 100644 --- a/hyperloop/recipes.lua +++ b/hyperloop/recipes.lua @@ -26,7 +26,7 @@ if minetest.global_exists("techage") then minetest.register_craft({ output = "hyperloop:hypersteel_ingot 4", recipe = { - {"techage:aluminum", "default:tin_ingot"}, + {"default:steel_ingot", "default:tin_ingot"}, {"techage:aluminum", "dye:cyan"}, }, }) diff --git a/minecart/README.md b/minecart/README.md index 0606cf5..50e6ffe 100644 --- a/minecart/README.md +++ b/minecart/README.md @@ -114,4 +114,5 @@ History 2020-03-28 v1.04 cart unloading bugfix 2020-05-14 v1.05 API changed to be able to register carts 2020-06-14 v1.06 API changed and chat command added +2020-06-27 v1.07 Route storage and cart command bugfixes diff --git a/minecart/init.lua b/minecart/init.lua index a158230..37e3a9d 100644 --- a/minecart/init.lua +++ b/minecart/init.lua @@ -13,7 +13,7 @@ minecart = {} -- Version for compatibility checks, see readme.md/history -minecart.version = 1.06 +minecart.version = 1.07 minecart.hopper_enabled = minetest.settings:get_bool("minecart_hopper_enabled") ~= false diff --git a/minecart/monitoring.lua b/minecart/monitoring.lua index c433da0..34fb726 100644 --- a/minecart/monitoring.lua +++ b/minecart/monitoring.lua @@ -14,7 +14,7 @@ -- 1) Entity IDs are volatile. For each server restart all carts get new IDs. -- 2) Monitoring is performed for entities only. Stopped carts in form of -- real nodes need no monitoring. --- 3) But nodes at startions have to call 'node_at_station' to be "visible" +-- 3) But nodes at stations have to call 'node_at_station' to be "visible" -- for the chat commands @@ -81,6 +81,7 @@ end function minecart.remove_from_monitoring(myID) if myID then CartsOnRail[myID] = nil + minecart.store_carts() end end @@ -95,12 +96,14 @@ function minecart.start_cart(pos, myID) if item and item.stopped then item.stopped = false item.start_pos = pos + item.start_time = nil -- cart started from a buffer? local start_key = lib.get_route_key(pos) if start_key then item.start_time = minetest.get_gametime() item.start_key = start_key item.junctions = minecart.get_route(start_key).junctions + minecart.store_carts() return true end end @@ -115,6 +118,7 @@ function minecart.stop_cart(pos, myID) item.start_pos = nil item.junctions = nil item.stopped = true + minecart.store_carts() return true end return false @@ -124,7 +128,7 @@ local function monitoring() local to_be_added = {} for key, item in pairs(CartsOnRail) do local entity = minetest.luaentities[key] - --print("Cart:", key, item.owner, item.myID, item.userID, item.stopped) + --print("Cart:", key, item.owner, item.userID, item.stopped) if entity then -- cart entity running local pos = entity.object:get_pos() local vel = entity.object:get_velocity() @@ -147,13 +151,20 @@ local function monitoring() end item.last_pos, item.last_vel = pos, vel else + -- should never happen + minetest.log("error", "[minecart] Cart of owner "..(item.owner or "nil").." got lost") CartsOnRail[key] = nil end end end -- table maintenance + local is_changed = false for key,val in pairs(to_be_added) do CartsOnRail[key] = val + is_changed = true + end + if is_changed then + minecart.store_carts() end minetest.after(1, monitoring) end @@ -208,7 +219,7 @@ minetest.register_chatcommand("mycart", { end -- Check all running carts local state, cart_pos = get_cart_state(name, userID) - if state then + if state and cart_pos then local pos = get_cart_pos(query_pos, cart_pos) if type(pos) == "string" then return true, "Cart #"..userID.." stopped at "..pos.." " diff --git a/minecart/recording.lua b/minecart/recording.lua index 4034ff9..a5d5996 100644 --- a/minecart/recording.lua +++ b/minecart/recording.lua @@ -51,7 +51,7 @@ end function minecart.stop_recording(self, pos, vel, puncher) local dest_pos = lib.get_route_key(pos, self.driver) if dest_pos then - if self.start_key ~= dest_pos then + if self.start_key and self.start_key ~= dest_pos then local route = { waypoints = self.waypoints, dest_pos = dest_pos, diff --git a/minecart/storage.lua b/minecart/storage.lua index dc2016a..34d3f02 100644 --- a/minecart/storage.lua +++ b/minecart/storage.lua @@ -16,39 +16,31 @@ local P2S = function(pos) if pos then return minetest.pos_to_string(pos) end end local S2P = minetest.string_to_pos local S = minecart.S -local DAYS_VALID = (30 * 72) -- 30 real days - local storage = minetest.get_mod_storage() -local function data_maintenance() - minetest.log("info", "[MOD] minecart maintenance") - local day_count = minetest.get_day_count() - local tbl = storage:to_table() - for key,s in pairs(tbl.fields) do - local route = minetest.deserialize(s) - if not route.waypoints or not route.best_before or route.best_before < day_count then - storage:set_string(key, "") - else - minetest.log("info", "[minecart] Route: start="..key.." length="..#(route.waypoints)) - end - end -end -minetest.after(1, data_maintenance) - - +------------------------------------------------------------------------------- -- Store data of running carts +------------------------------------------------------------------------------- minecart.CartsOnRail = {} -for key,val in pairs(minetest.deserialize(storage:get_string("CartsOnRail")) or {}) do - -- use invalid keys to force the cart spawning - minecart.CartsOnRail[-key] = val -end +minetest.register_on_mods_loaded(function() + for key,val in pairs(minetest.deserialize(storage:get_string("CartsOnRail")) or {}) do + -- use invalid keys to force the cart spawning + minecart.CartsOnRail[-key] = val + end +end) minetest.register_on_shutdown(function() - data_maintenance() storage:set_string("CartsOnRail", minetest.serialize(minecart.CartsOnRail)) end) +function minecart.store_carts() + storage:set_string("CartsOnRail", minetest.serialize(minecart.CartsOnRail)) +end + +------------------------------------------------------------------------------- +-- Store routes +------------------------------------------------------------------------------- -- All positions as "pos_to_string" string --Routes = { -- start_pos = { @@ -58,7 +50,6 @@ end) -- {spos = num}, -- {spos = num}, -- }, --- best_before = num -- }, -- start_pos = {...}, --} @@ -66,20 +57,51 @@ local Routes = {} local NEW_ROUTE = {waypoints = {}, junctions = {}} function minecart.store_route(key, route) - Routes[key] = table.copy(route) - Routes[key].best_before = minetest.get_day_count() + DAYS_VALID - storage:set_string(key, minetest.serialize(Routes[key])) + if key and route then + Routes[key] = route + local meta = M(S2P(key)) + if meta then + meta:set_string("route", minetest.serialize(route)) + return true + end + end + return false end function minecart.get_route(key) - Routes[key] = Routes[key] or minetest.deserialize(storage:get_string(key)) or NEW_ROUTE - Routes[key].best_before = minetest.get_day_count() + DAYS_VALID + if not Routes[key] then + local s = M(S2P(key)):get_string("route") + if s ~= "" then + Routes[key] = minetest.deserialize(s) or NEW_ROUTE + else + Routes[key] = NEW_ROUTE + end + end return Routes[key] end function minecart.del_route(key) Routes[key] = nil -- remove from memory - storage:set_string(key, "") -- and from storage + M(S2P(key)):set_string("route", "") -- and as metadata end +------------------------------------------------------------------------------- +-- Convert data to v2 +------------------------------------------------------------------------------- +minetest.after(5, function() + local tbl = storage:to_table() + for key,s in pairs(tbl.fields) do + if key ~= "CartsOnRail" then + local route = minetest.deserialize(s) + if route.waypoints and route.junctions then + if minecart.store_route(key, route) then + storage:set_string(key, "") + end + else + storage:set_string(key, "") + end + end + end +end) + diff --git a/ta4_jetpack/LICENSE.txt b/ta4_jetpack/LICENSE.txt new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/ta4_jetpack/LICENSE.txt @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/ta4_jetpack/README.md b/ta4_jetpack/README.md new file mode 100644 index 0000000..ecfc630 --- /dev/null +++ b/ta4_jetpack/README.md @@ -0,0 +1,46 @@ +# TA4 Jetpack [ta4_jetpack] + +**A Jetpack for techage with hydrogen as fuel and TA4 recipe** + + +![screenshot](https://github.com/joe7575/ta4_jetpack/blob/master/screenshot.png) + +The Jetpack is inspired by the jetpack from spirit689 (https://github.com/spirit689/jetpack) +and by the historical game Lunar Lander. + +Instructions: +- Craft TA4 Jetpack, Jetpack Controller and Training Mat +- Use the armor extension (3d_armor) of the player menu to strap the Jetpack on your back +- You can refuel the jetpack by left-clicking with the controller on a hydrogen tank +- Turn the controller on by right-click and check the fuel tank level (the small colored bar below the controller icon) +- Use the space bar to activate the Jetpack and the WASD keys to control the direction +- Before your first flight you should do some training starts and landings on the Training Mat + (The Jetpack is a bit stubborn, it takes some practice to keep the JetPack in the air) + +Important to know: +- 12 units of hydrogen are sufficient for a flight of 6 minutes +- Maximum 5 items stacks in your inventory are allowed including the controller. + Otherwise you would be too heavy :-) +- The Jetpack also wears out and can be used for approximately 10 flights +- Always hold the controller tight during the flight, otherwise it will switch off :) + + +### License +Copyright (C)2020 Joachim Stolberg + +Code: Licensed under the GNU GPL version 3 or later. See LICENSE.txt + +Textures: CC BY-SA 3.0 + +Sounds: +- "ta4_jetpack_on.ogg" Copyright by lextrack CC0 1.0 (https://freesound.org/s/346323/) +- "ta4_jetpack_alarm.ogg" Copyright by Tim_Verberne CC0 1.0 (https://freesound.org/s/514079/) + + +### Dependencies +Required: techage, default, 3d_armor + + +### History +- 2019-06-23 V0.01 * First version + diff --git a/ta4_jetpack/i18n.py b/ta4_jetpack/i18n.py new file mode 100755 index 0000000..e747193 --- /dev/null +++ b/ta4_jetpack/i18n.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Script to generate the template file and update the translation files. +# +# Copyright (C) 2019 Joachim Stolberg +# LGPLv2.1+ +# +# Copy the script into the mod root folder and adapt the last code lines to you needs. + +from __future__ import print_function +import os, fnmatch, re, shutil + +pattern_lua = re.compile(r'[ \.=^\t]S\("(.+?)"\)', re.DOTALL) +pattern_tr = re.compile(r'(.+?[^@])=(.+)') + +def gen_template(templ_file, lkeyStrings): + lOut = [] + lkeyStrings.sort() + for s in lkeyStrings: + lOut.append("%s=" % s) + open(templ_file, "wt").write("\n".join(lOut)) + +def read_lua_file_strings(lua_file): + lOut = [] + text = open(lua_file).read() + for s in pattern_lua.findall(text): + s = re.sub(r'"\.\.\s+"', "", s) + s = re.sub("@[^@=n]", "@@", s) + s = s.replace("\n", "@n") + s = s.replace("\\n", "@n") + s = s.replace("=", "@=") + lOut.append(s) + return lOut + +def inport_tr_file(tr_file): + dOut = {} + if os.path.exists(tr_file): + for line in open(tr_file, "r").readlines(): + s = line.strip() + if s == "" or s[0] == "#": + continue + match = pattern_tr.match(s) + if match: + dOut[match.group(1)] = match.group(2) + return dOut + +def generate_template(templ_file): + lOut = [] + for root, dirs, files in os.walk('./'): + for name in files: + if fnmatch.fnmatch(name, "*.lua"): + fname = os.path.join(root, name) + found = read_lua_file_strings(fname) + print(fname, len(found)) + lOut.extend(found) + lOut = list(set(lOut)) + lOut.sort() + gen_template(templ_file, lOut) + return lOut + +def update_tr_file(lNew, mod_name, tr_file): + lOut = ["# textdomain: %s\n" % mod_name] + if os.path.exists(tr_file): + shutil.copyfile(tr_file, tr_file+".old") + dOld = inport_tr_file(tr_file) + for key in lNew: + val = dOld.get(key, "") + lOut.append("%s=%s" % (key, val)) + lOut.append("##### not used anymore #####") + for key in dOld: + if key not in lNew: + lOut.append("%s=%s" % (key, dOld[key])) + open(tr_file, "w").write("\n".join(lOut)) + +data = generate_template("./locale/template.txt") +update_tr_file(data, "ta4_jetpack", "./locale/ta4_jetpack.de.tr") +print("Done.\n") + + diff --git a/ta4_jetpack/init.lua b/ta4_jetpack/init.lua new file mode 100644 index 0000000..dd81807 --- /dev/null +++ b/ta4_jetpack/init.lua @@ -0,0 +1,527 @@ +--[[ + + TA4_Jetpack + =========== + + Copyright (C) 2020 Joachim Stolberg + + GPL v3 + See LICENSE.txt for more information + +]]-- + +-- Load support for I18n. +local S = minetest.get_translator("ta4_jetpack") + +local Players = {} +local Jetpacks = {} + +local MAX_HEIGHT = tonumber(minetest.settings:get("ta4_jetpack_max_height")) or 500 +local MAX_VSPEED = tonumber(minetest.settings:get("ta4_jetpack_max_vertical_speed")) or 20 +local MAX_HSPEED = (tonumber(minetest.settings:get("ta4_jetpack_max_horizontal_speed")) or 12) / 4 +local MAX_NUM_INV_ITEMS = tonumber(minetest.settings:get("ta4_jetpack_max_num_inv_items")) or 5 + +-- Flight time maximum 6 min or 360 s or 3600 steps. +-- 12 units hydrogen for 3600 steps means 0.0033 units hydrogen / step. +local MAX_FUEL = 12 -- hydrogen units +local RESERVE_LVL = 2 -- fuel reserve +local FUEL_UNIT = 2 -- tank units per click +local WEAR_CYCLE = 10 -- check wear every 10 sec +local STEPS_TO_FUEL = 0.0033 + +local WEAR_VALUE = 180 -- roughly 10 flys, 6 min each + +local function store_player_physics(player) + local meta = player:get_meta() + -- Check access conflicts with other mods + if meta:get_int("player_physics_locked") == 0 then + local physics = player:get_physics_override() + meta:set_int("player_physics_locked", 1) + meta:set_int("ta4_jetpack_normal_player_speed", physics.speed) + meta:set_int("ta4_jetpack_normal_player_gravity", physics.gravity) + return true + end + return false +end + +local function restore_player_physics(player) + local meta = player:get_meta() + local physics = player:get_physics_override() + physics.speed = meta:get_int("ta4_jetpack_normal_player_speed") + physics.gravity = meta:get_int("ta4_jetpack_normal_player_gravity") + meta:set_int("player_physics_locked", 0) + player:set_physics_override(physics) +end + +local function turn_jetpack_off(player) + local name = player:get_player_name() + restore_player_physics(player) + if Players[name] and Players[name].snd_hdl then + minetest.sound_stop(Players[name].snd_hdl) + end + if Players[name] and Players[name].alarm_snd_hdl then + minetest.sound_stop(Players[name].alarm_snd_hdl) + end + --Jetpacks[name] = nil + Players[name] = nil +end + +local function get_inv_controller_index(player) + local inv = player:get_inventory() + for idx, item in ipairs(inv:get_list("main")) do + if item:get_name() == "ta4_jetpack:controller_on" then + return idx + end + end +end + +local function turn_inv_controller_off(player) + local idx = get_inv_controller_index(player) + if idx then + local inv = player:get_inventory() + inv:set_stack("main", idx, ItemStack("ta4_jetpack:controller_off")) + end +end + +-- Fuel is stored as metadata (0..100) in the jetpack item located at the armor inventory +local function get_fuel_value(name) + if Jetpacks[name] and Jetpacks[name].index then + local index = Jetpacks[name].index + local inv = minetest.get_inventory({type = "detached", name = name.."_armor"}) + local stack = inv:get_stack("armor", index) + local meta = stack:get_meta() + return meta:get_float("fuel") + end + return 0 +end + +local function set_fuel_value(name, value) + if Jetpacks[name] and Jetpacks[name].index then + local index = Jetpacks[name].index + local inv = minetest.get_inventory({type = "detached", name = name.."_armor"}) + local stack = inv:get_stack("armor", index) + local meta = stack:get_meta() + meta:set_float("fuel", value) + inv:set_stack("armor", index, stack) + end +end + +local function subtract_fuel_value(name, value) + if Jetpacks[name] and Jetpacks[name].index then + local index = Jetpacks[name].index + local inv = minetest.get_inventory({type = "detached", name = name.."_armor"}) + local stack = inv:get_stack("armor", index) + local meta = stack:get_meta() + local amount = meta:get_float("fuel") + if amount >= value then + meta:set_float("fuel", amount - value) + inv:set_stack("armor", index, stack) + return amount - value + end + end + return 0 +end + +local function fuel_value_to_wearout(value) + return math.floor(65533 - (value / MAX_FUEL * 65530)) +end + +local function update_controller_fuel_gauge(player, index, value) + local inv = player:get_inventory() + if inv and index then + local stack = inv:get_stack("main", index) + if stack:get_name() == "ta4_jetpack:controller_on" then + stack:set_wear(fuel_value_to_wearout(value)) + inv:set_stack("main", index, stack) + end + end +end + +local function check_player_load(player) + local inv = player:get_inventory() + local meta = player:get_meta() + local bags_meta = meta:get_string("unified_inventory:bags") + if bags_meta then + if next(minetest.deserialize(bags_meta) or {}) then + return S("check your bags!") + end + end + for _, stack in ipairs(inv:get_list("craft") or {}) do + if not stack:is_empty() then + return S("check your carfting menu!") + end + end + local count = 0 + for _, stack in ipairs(inv:get_list("main") or {}) do + count = count + (stack:is_empty() and 0 or 1) + if count > MAX_NUM_INV_ITEMS then + return S("check your inventory!") + end + end +end + +local cycle_time = 0 +minetest.register_globalstep(function(dtime) + cycle_time = cycle_time + dtime + if cycle_time < 0.1 then return end + cycle_time = cycle_time - 0.1 + + for name, def in pairs(Players) do + local player = minetest.get_player_by_name(name) + local fire = player:get_player_control().jump + local ctrl = player:get_player_control_bits() + local pos = player:getpos() + local vel = player:get_player_velocity() + local item = player:get_wielded_item() + + -- The controller as wielded item prevents the player from using other blocks + if item:get_name() ~= "ta4_jetpack:controller_on" then + -- You shouldn't have done that :) + turn_jetpack_off(player) + turn_inv_controller_off(player) + else + -- handle fire button + if fire ~= def.old_fire then + def.old_fire = fire + if fire then + def.gravity = -0.5 + def.speed = MAX_HSPEED + def.correction = true + else + def.gravity = 0.7 + def.speed = MAX_HSPEED + def.correction = true + end + end + + -- handle drive sound + if ctrl ~= def.old_ctrl then + def.old_ctrl = ctrl + if ctrl > 0 and ctrl ~= 256 then + if not def.snd_hdl then + def.snd_hdl = minetest.sound_play("ta4_jetpack", { + max_hear_distance = 16, + gain = 1, + object = player, + loop = true + }) + end + else + if def.snd_hdl then + minetest.sound_stop(def.snd_hdl) + def.snd_hdl = nil + end + end + end + + -- handle smoke and use + if ctrl > 0 then + minetest.add_particle({ + pos = pos, + vel = {x = vel.x, y = vel.y - 10, z = vel.z}, + expirationtime = 1, + size = 5, + vertical = false, + texture = "ta4_jetpack_smoke.png", + }) + def.used = (def.used or 0) + 1 + end + + -- control max height + if pos.y > MAX_HEIGHT then + pos.y = MAX_HEIGHT - MAX_HEIGHT/10 + player:setpos(pos) + end + + -- control max speed + if vel.y > MAX_VSPEED then + player:set_physics_override({gravity = 1, speed = def.speed}) + def.correction = true + elseif vel.y < (-2 * MAX_VSPEED) then + player:set_physics_override({gravity = -1, speed = def.speed}) + def.correction = true + elseif def.correction then + player:set_physics_override({gravity = def.gravity, speed = def.speed}) + def.correction = false + end + end + end +end) + +local function debug_out(name) + local index = Jetpacks[name].index + local inv = minetest.get_inventory({type = "detached", name = name.."_armor"}) + local stack = inv:get_stack("armor", index) + print("used = "..(def.used or 0)..", value = "..get_fuel_value(name)..", wear = "..stack:get_wear()) +end + +-- Called cyclic to maintain wear out and fuel gauge +local function jetpack_wearout() + for name, def in pairs(Players) do + local player = minetest.get_player_by_name(name) + if player and Jetpacks[name] then + -- debug_out(name) + if def.used then + local value = subtract_fuel_value(name, def.used * STEPS_TO_FUEL) + def.used = 0 + def.controller_index = def.controller_index or get_inv_controller_index(player) + update_controller_fuel_gauge(player, def.controller_index, value) + if value == 0 then + ---- Fly is finished :) + turn_jetpack_off(player) + turn_inv_controller_off(player) + elseif value < RESERVE_LVL then + def.alarm_snd_hdl = minetest.sound_play("ta4_jetpack_alarm", { + max_hear_distance = 16, + gain = 1, + object = player, + }) + end + -- Handle the jetpack wear out + local index = Jetpacks[name] and Jetpacks[name].index or 1 + local inv = minetest.get_inventory({type = "detached", name = name.."_armor"}) + local stack = inv:get_stack("armor", index) + armor:damage(player, index, stack, WEAR_VALUE) + if stack:get_wear() > (65535 - WEAR_VALUE * 4) then + def.alarm_snd_hdl = minetest.sound_play("ta4_jetpack_alarm", { + max_hear_distance = 16, + gain = 1, + object = player, + }) + end + else + local value = get_fuel_value(name) + if value < 4 then + def.alarm_snd_hdl = minetest.sound_play("ta4_jetpack_alarm", { + max_hear_distance = 16, + gain = 1, + object = player, + }) + end + end + end + end + minetest.after(WEAR_CYCLE, jetpack_wearout) +end + +minetest.after(WEAR_CYCLE, jetpack_wearout) + +local function load_fuel(itemstack, user, pointed_thing) + local pos = pointed_thing.under + if pos then + local name = user:get_player_name() + -- check jetpack + if not Jetpacks[name] then + minetest.chat_send_player(name, S("[Jetpack] You don't have your jetpack on your back!")) + return itemstack + end + if techage.liquid.srv_peek(pos, 5) == "techage:hydrogen" then + local value = get_fuel_value(name) + local newvalue + + if user:get_player_control().sneak then -- back to tank? + local amount = math.min(value, FUEL_UNIT) + local rest = techage.liquid.srv_put(pos, 5, "techage:hydrogen", amount) + newvalue = value - amount + rest + else + local amount = math.min(FUEL_UNIT, MAX_FUEL - value) + local taken = techage.liquid.srv_take(pos, 5, "techage:hydrogen", amount) + newvalue = value + taken + end + set_fuel_value(name, newvalue) + end + end + return itemstack +end + + +local function turn_controller_on_off(itemstack, user) + local name = user:get_player_name() + if Players[name] then -- turn off + turn_jetpack_off(user) + itemstack = ItemStack("ta4_jetpack:controller_off 1 0") + else + -- check jetpack + if not Jetpacks[name] then + minetest.chat_send_player(name, S("[Jetpack] You don't have your jetpack on your back!")) + return itemstack + end + -- check inventory load + local res = check_player_load(user) + if res then + minetest.chat_send_player(name, S("[Jetpack] You are too heavy: ")..res) + return itemstack + end + -- check fuel + local value = get_fuel_value(name) + if value == 0 then + minetest.chat_send_player(name, S("[Jetpack] Your tank is empty!")) + minetest.chat_send_player(name, S("Use the controller (left click) to fill the tank with hydrogen")) + return itemstack + end + -- start the jetpack + if store_player_physics(user) then + Players[name] = {gravity = 1, speed = 1} + minetest.sound_play("ta4_jetpack_on", { + max_hear_distance = 16, + gain = 1, + object = user, + }) + -- update fuel gauge + itemstack = ItemStack("ta4_jetpack:controller_on") + itemstack:set_wear(fuel_value_to_wearout(value)) + end + end + return itemstack +end + +minetest.register_tool("ta4_jetpack:controller_on", { + description = S("TA4 Jetpack Controller On"), + inventory_image = "ta4_jetpack_controller_inv.png", + wield_image = "ta4_jetpack_controller_inv.png", + groups = {cracky = 1, wieldview_transform = 1, not_in_creative_inventory = 1}, + on_use = load_fuel, + on_secondary_use = turn_controller_on_off, + on_place = turn_controller_on_off, + -- Prevent dropping a running controller + on_drop = function(itemstack) return itemstack end, + node_placement_prediction = "", + stack_max = 1, +}) + +minetest.register_tool("ta4_jetpack:controller_off", { + description = S("TA4 Jetpack Controller Off"), + inventory_image = "ta4_jetpack_controller_off_inv.png", + wield_image = "ta4_jetpack_controller_off_inv.png", + groups = {cracky = 1, wieldview_transform = 1}, + on_use = load_fuel, + on_secondary_use = turn_controller_on_off, + on_place = turn_controller_on_off, + node_placement_prediction = "", + stack_max = 1, +}) + +armor:register_armor("ta4_jetpack:jetpack", { + description = S("TA4 Jetpack"), + texture = "ta4_jetpack_jetpack.png", + inventory_image = "ta4_jetpack_jetpack_inv.png", + groups = {armor_torso=1, armor_heal=0, armor_use=100}, + on_equip = function(player, index, stack) + local name = player:get_player_name() + Jetpacks[name] = {index = index} + Players[name] = nil + end, + on_unequip = function(player, index, stack) + turn_jetpack_off(player) + turn_inv_controller_off(player) + local name = player:get_player_name() + Jetpacks[name] = nil + end, + on_destroy = function(player, index, stack) + turn_jetpack_off(player) + turn_inv_controller_off(player) + local name = player:get_player_name() + Jetpacks[name] = nil + end +}) + +-- For some reason, prevent to move/put/take a running controller +minetest.register_allow_player_inventory_action(function(player, action, inventory, inventory_info) + if inventory_info.stack and inventory_info.stack:get_name() == "ta4_jetpack:controller_on" then + return 0 + end +end) + +local function reset_player(player) + local name = player:get_player_name() + + if Players[name] then + -- Turn Jetpack off + Players[name] = nil + Jetpacks[name] = nil + turn_inv_controller_off(player) + + restore_player_physics(player) + + -- Determine the ground below the player for the next respawn + local pos = vector.round(player:get_pos()) + local res, pos1 = minetest.line_of_sight(pos, {x = pos.x, y = pos.y - MAX_HEIGHT, z = pos.z}) + if not res then + local meta = player:get_meta() + meta:set_string("ta4_jetpack_startpos", + minetest.pos_to_string({x = pos1.x, y = pos1.y + 2, z = pos1.z})) + end + end +end + +minetest.register_on_leaveplayer(function(player) + reset_player(player) +end) + +minetest.register_on_shutdown(function() + for name, def in pairs(Players) do + local player = minetest.get_player_by_name(name) + reset_player(player) + end +end) + +minetest.register_on_joinplayer(function(player) + -- teleport player to the ground position + local meta = player:get_meta() + local s = meta:get_string("ta4_jetpack_startpos") + + if s ~= "" then + meta:set_string("ta4_jetpack_startpos", "") + local pos = minetest.string_to_pos(s) + player:set_pos(pos) + end + meta:set_int("player_physics_under_control", 0) +end) + +minetest.register_node("ta4_jetpack:trainingmat", { + description = S("Jetpack Training Mat"), + tiles = { + "ta4_jetpack_mat_top.png", + "ta4_jetpack_mat_top.png", + "ta4_jetpack_mat_side.png" + }, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-8/16, -8/16, -8/16, 8/16, -2/16, 8/16}, + }, + }, + walkable = true, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 1, fall_damage_add_percent = -80, bouncy = 40}, +}) + +minetest.register_craft({ + output = "ta4_jetpack:jetpack", + recipe = { + {"techage:ta4_carbon_fiber", "", "techage:ta4_carbon_fiber"}, + {"techage:aluminum", "techage:ta3_cylinder_large", "techage:aluminum"}, + {"basic_materials:motor", "basic_materials:steel_bar", "basic_materials:motor"} + }, +}) + +minetest.register_craft({ + output = "ta4_jetpack:controller_off", + recipe = { + {"basic_materials:plastic_sheet", "techage:basalt_glass_thin", "basic_materials:plastic_sheet"}, + {"techage:ta4_wlanchip", "techage:ta4_battery", "techage:ta4_ramchip"}, + {"", "", ""} + }, +}) + +minetest.register_craft({ + output = "ta4_jetpack:trainingmat", + recipe = { + {"dye:green", "dye:green", "dye:green"}, + {"techage:ta4_carbon_fiber", "techage:ta4_carbon_fiber", "techage:ta4_carbon_fiber"}, + {"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"} + }, +}) diff --git a/ta4_jetpack/locale/ta4_jetpack.de.tr b/ta4_jetpack/locale/ta4_jetpack.de.tr new file mode 100644 index 0000000..7a5b4f3 --- /dev/null +++ b/ta4_jetpack/locale/ta4_jetpack.de.tr @@ -0,0 +1,14 @@ +# textdomain: ta4_jetpack + +Jetpack Training Mat=Jetpack Trainingsmatte +TA4 Jetpack=TA4 Jetpac +TA4 Jetpack Controller Off=TA4 Jetpack Controller Aus +TA4 Jetpack Controller On=TA4 Jetpack Controller An +Use the controller (left click) to fill the tank with hydrogen=Benutze den Controller (linksklick) um den Tank mit Wasserstoff zu füllen +[Jetpack] You are too heavy: =[Jetpack] Du bist zu schwer: +[Jetpack] You don't have your jetpack on your back!=[Jetpack] Du hast dein Jetpack nicht auf dem Rücken! +[Jetpack] Your tank is empty!=[Jetpack] Dein Tank ist leer! +check your bags!=Prüfe deine Rucksäcke! +check your carfting menu!=Prüfe dein Crafting Menü! +check your inventory!=Prüfe dein Inventar! +##### not used anymore ##### \ No newline at end of file diff --git a/ta4_jetpack/locale/template.txt b/ta4_jetpack/locale/template.txt new file mode 100644 index 0000000..7e34064 --- /dev/null +++ b/ta4_jetpack/locale/template.txt @@ -0,0 +1,11 @@ +Jetpack Training Mat= +TA4 Jetpack= +TA4 Jetpack Controller Off= +TA4 Jetpack Controller On= +Use the controller (left click) to fill the tank with hydrogen= +[Jetpack] You are too heavy: = +[Jetpack] You don't have your jetpack on your back!= +[Jetpack] Your tank is empty!= +check your bags!= +check your carfting menu!= +check your inventory!= \ No newline at end of file diff --git a/ta4_jetpack/mod.conf b/ta4_jetpack/mod.conf new file mode 100644 index 0000000..dac921b --- /dev/null +++ b/ta4_jetpack/mod.conf @@ -0,0 +1,3 @@ +name = ta4_jetpack +depends = techage,default,3d_armor +description = JetPack for Techage diff --git a/ta4_jetpack/screenshot.png b/ta4_jetpack/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..7a88e4a5105dedc28690d431e08298697d997206 GIT binary patch literal 226016 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𝔶jz=S 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%0D?-~FB6uC)eY8Z?0+ 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 literal 0 HcmV?d00001 diff --git a/ta4_jetpack/settingtypes.txt b/ta4_jetpack/settingtypes.txt new file mode 100644 index 0000000..c1e8f15 --- /dev/null +++ b/ta4_jetpack/settingtypes.txt @@ -0,0 +1,14 @@ +# Maximum altitude a player can reach with the Jetpack +ta4_jetpack_max_height (maximum altitude) int 500 + +# Maximum vertical speed a player can reach with the Jetpack +ta4_jetpack_max_vertical_speed (maximum vertical speed) int 20 + +# Maximum horizontal speed a player can reach with the Jetpack +ta4_jetpack_max_horizontal_speed (maximum horizontal speed) int 12 + +# Maximum number of inventory items a player can take +ta4_jetpack_max_num_inv_items (maximum number of inventory items) int 5 + + + diff --git a/ta4_jetpack/sounds/ta4_jetpack.ogg b/ta4_jetpack/sounds/ta4_jetpack.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ae511b481b1697a083af308478b49f4c2d7bc516 GIT binary patch literal 9367 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 DqhEEN literal 0 HcmV?d00001 diff --git a/ta4_jetpack/sounds/ta4_jetpack_alarm.ogg b/ta4_jetpack/sounds/ta4_jetpack_alarm.ogg new file mode 100644 index 0000000000000000000000000000000000000000..406451a081b4413af98aa8366f193a06da716494 GIT binary patch literal 21820 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 gJJ7wMrU(fX3IG5A0AQb@{ z5<&_HK>|b?0c~s%sn1{mOCcg6AQgn*qgKI+t!H*@dwRcn&OP7#&Oc{=liBlF^V_r5 z`mNb(Cp0-Z9H7DPm;J%%V5E7^-PaXmh1!#uotVl-22j3D$PEDA#dr4$s8D3(pBJ(c z1$!4F!)A>=-~RP-(t3wOgwxTfSt<6R*~z$!)Wk>)IxYa`wO4*#Gc|Ib1| zuu(ei)~+OPj)d?ifK7@ZY$>OHA9&P)&3D{Vo>&@qv@YMAOsQm>hBuH@qV%S(+Hm=p zW#QWhI_1=2YN|z23DUxB4Oqi5aks5Z!o&t#9{fE0m`}T9zLAg`M7YAI7LxTW!ixx3 z`P4wN?i$V#_esm};y}F51rfWkO&~}**1#zZoU+*&M5Yi5N&|K4!b8ZEje|UXeDMQ(@oG|OQh>Qe z1X>>hKxdX|z)91aU)pT_p18H&H;k4$;6kI#aTzM4;GB1wA*kMz`trJExGuw;SUn@U z4!}VZZNYb8wEi#;NW_zltZkj#&o0i}MM_zBb&`{{YG5*8_qxeR5xa+ETfx5OHYH*g zX76%LfpQ|YN!~8PyO#LMq))mO8M{WR&--u-7Rm`*Cw04+)BBD(TXCc2)?2Tr)QrvzxpWwl-PRf6OK$WB-tQXCA1p57y=IhxIth7pD(l z{f?yGsMQ@g{jE)kVYWeo|LM~wsWUi!#I*oIRK zF<947TT|$yB%ZtF)Qwc?mUBJsvkq4EjaU-ErSYIECQAfXO= znV_*B54uOsVrPlZ76kc-wM3MyB%G;2Ys?8Jk-+f0$@cZ<{G(iFd;0Tz17K+l>i!`p z)QmPz#)utcj?A$VmhKsu=Z?;ECsYLqbOG~!ly|B_O?Vix-aAF=ut~QZr>ahEBmbc$ z4nD9m%<}4oHvZW*H%o~Dr<}K*^Zc&gGx&vXm}zi-gkKcLZ=}_4h##!t1P^g&^fm^) zoi#MbiW9I#=X3v3xGOX&QUG{FDXygy)>4Wm+)8aw)z*ywSRib|7oK)2o}iT41PE#a z#1H8;yV4}dA4$)kH6q@K2y)?t4+xS6gqjDWn$>|d%$OQUnhakdS1V-yuGnh`UIIYh zNz0ojEg``JU<0MGE{p{<$TGZM0!a@U|GSQ%FQ7pgw{`yN0010pzNHfV+0Fs{h^=iA z!EF&+&1j*te|K#R?spD`hFt@r4s<3Szx)tqy=KkB`$V-%+9ylzJ1#QI z6Fb!yX5S}IVDhY>(f$T}q2||c*D>rHB>#p}CZwq|9R9K?%erD}GU4jyiQnPN?ogYK zvx}+z&8PW^#Pxgl)Z-1;AY0Iu@JGyt+t&tR0OUJT2(_k(MWlMs<|4w>=j_9dla}ma z(o_|Px^7Cu2?@M{h244)o9b>`#tsRzt%m#ny70HSy063x za1JBPnW1{_Iq)JVoaS{qf)-9=4MouC0?%G&ul@*HuQP1`cH!9}@S_c|`nlX;4sArh z8lGpwn(qmtu|^^o!>%;d9AjuMmp;f%dhSVk8Pw19>gO;AxU5(%gE1czE(lhYG5fi! z;W8#;FLP*qV?T${Ph$>o7(;uQQRf--x!itk!DtyXE{aLV?qSRq#Hz|3au_2~%qZ7L zI2)@f7$4*&lzWEKATp!ZnGwZh#6>YwgB$z#2=Y(_gT4nMGol8$z0L^ounQwffFMT+ zxFZ}W%%s1fMa^;PsLWjIare2W3?z-WwFV!7Czv*Zp zo}PW(mDb(Wa<|>_UdL|Yr7X+tbhXk^-4WK#-5y}9G%2TE78B!_h zqICAPoTXO4ov@^m^%c@I1X)fTR=f{)g&+&3$|Z0c8A7RDthio?AWt5ZKyYG(M5+`_ zl}jP=%u#W=2087nG*yToudk4->z1(=I@C(}ZmBc_BCC;2W^{KvRZ5>|6x3`(zJ6H# zv|HY^pivOnhSa`W&RTvhV?mK3{C!vJhUM!Q6mVBhm9or6X_Ff1K6x$6QY#$3mS-$T zn_esIh83A=r{TF=Ur535jjUl9Cy;`3OgMDgnH5W;#kvF!v@;h@655&LQ20DEc8;qmtwT9VgIJf(a;|S#`Ko}ZylGW;w-AOd34H+K!DQ%JcmWrc^L8{>--XG zpmiPJ1RmF8@UTI8LpdGY@5it?`}{^^Q_{|oA$uK0h!{}%|C z{cBVGC;AzHlEN%d^3fm6q(G7tg#{9>iSjUxlh~xb06Zb_7U`NLq~b%%d<->p{dpzi zXzdSFRyms*a|{Y?n5wNcjs1@FDV2Kc%SmDSliJqEblJwKn3%?mDiQm;uUgI1WiSh8 zcRRug=6%@TlRq6W=IjP|R(D$5y8>=U$NxcTv_%~v@(4pMB2B@Et|~yfde#w0mxCdn z!LpG!$uH5&!o-Qa#9fnY>#l$qH;fo0l=3lwcv!*Ne2hC%X~At3{^Ab06N!c=lhEYf_2 zb~r7Dr#BAZI<+xa9R3wq?}#HzVvpRy=oiphI;#wqSx%xlwS4n^LCNP;l#3U5_FCKf zt}=AVdSuKe(U#sQeK)u9!?yRIpvl^79|bMRJ=>49x}7yZc|7xX1=S8~!2k z!K)V|%5CVNVV$AodTsnCm831!zg>1<(CR+*ckk)l-W&D42sq!)am*ZDjNWV;S3}IS zYfdQXUtttuWOF;m?3?{)hYT;HjFIa=rlGR@rRxr`eZ=nU*SW5?Kk6_1(ng_qmHX{wuAe$_Q@o`*%XVrt*g37rtDFvv z?{rp78@zasU$A%WoXjv&gK7d_)nE{>w zJ^=gH5Q)Iq#v0mH>mFmT-A&2h^^-|O7n_l6*xTqm6yOcUq(43h2Hpc;n~t{`Sm|j7 zKTLzXc>3T+l|I;H7rJ-mW6C0dh??-DBB#>*l5V_lXD9`jQKpLbp3#QBzOFgSTy@PX*66~H*fIC>dRH$DwzZT#eq3A5Q%vU+@!cE#UG7!+vit3q!cnXeZ~Opc4rHo8N2JMf3y54?YG#2y_5aF8M}mdKJ9ly zEiAxjg@0oB>Mu3|%OOF4Ht?Lj^!9JXZ{PT*vtr|l5gXI!(2r*ZV=5NitAOq^gI)(; zNKRy<0oKxnSFf|l<9*|?+>|Be)?Ke$Z*&Kr`@m+=+Yn&YX@>$?3^Vg(z=c9K0KCnI zwjyx6Qf=gRf4$ox=%{wv%{@YYG_XQ}QoI&q-(v8J0z5Z)WJdk?@tuU6vJ0&T8r%A3wqxnuYt!DZ4yA<6PjCO0gaSKJJjZx!NEOE9 zcI5O=?Y(i2&zJ5$8#o_r(w0Nytx8)R8T-8GaoS$O-1Cnd9h_sn-k>Emd6Ep4#l#!Jr0tXZ{J4B*z6D62bb;|IR6 zP>;VpI6vMrGx@Unvn1@{pU;X{z9{j~IiXT}WL}Qdjvet3?nUYMT+K|(`*pJUgG_?W zv0r0iKOl6wKU*u}*IiI05DvU_%Y0S{;@>1~(P}dL0NtW*?`nIfmB-7F69&W78ZVji9ccB8`6nSfTcn#vYFWKj%T}?$E$dX{wtdWbVQ%=m+0-t^aSQ+m zf&OnpI8L3a$CBLCDE*y+9EYkxnVe;%Iz07{*g1>Vi9G63M(a7lFvSUVpd^mFHY z(8ovpY-!KMa7gZ&o=Sez{&rkTQo}$!w z!6Xcq6rjj1Uq)8!e5;lorL5)7$W=Yu7ed+lSB0-gj?41Lah&(}Eg%EHJn83RTaFie zdH81-|A-omMm}%1+fIh5T#sTv^-Xnd<64ivHFH<4_6UL?K&4VawOR!LBuPSY${2Iv zY88m02uYIUBZ?wgZDko+trnR(?}VAE3`e6;J};NcPV(Ehoo*KZn6V0E;*9X8T6cMl zm5`h>;vfg?(umk5_IeK4JA=aYOq&bRyMhty{@$6{>!cd%c=a}6cRlz9uAugI^(|Ue P00000NkvXXu0mjfFM1dN literal 0 HcmV?d00001 diff --git a/ta4_jetpack/textures/ta4_jetpack_controller_off_inv.png b/ta4_jetpack/textures/ta4_jetpack_controller_off_inv.png new file mode 100644 index 0000000000000000000000000000000000000000..719d995089ffbcfea72f2d64f1b3e757cecf2e9b GIT binary patch literal 526 zcmV+p0`dKcP)ug zK~z}7#a2yg!!QheHonx55NNLrDRieYNdJBMD^?geZLmVGErb-ZV|HmWFZGAiq@BRv zV818p$&v$%uvM0|t1N5BaHzmKl{~ahuopVwZJs+9tEvJ3BuV1j^S0l6{U}OQ^Th(+ zP2)U(*7{~`rZvu|lgTBx3iQ!ytr#9CF5E&^Zfx#r`N zKAsiUXJZeB()?0i#4Z@X7!XH>QxKGWLT`^VbM5}Y#Sud1r=?@zjnLK;68 z&vN|7m&8At_m60^+4S?WELp@5ccbE007~w0uy)z+*RwG z=h$k7b3q*B19KXYc*I`Gh@Nc}tn_UjNY6Dv;QhTb*VoB5rg-%p!8?up05#*t^?>G; QYXATM07*qoM6N<$f-?~E4*&oF literal 0 HcmV?d00001 diff --git a/ta4_jetpack/textures/ta4_jetpack_jetpack.png b/ta4_jetpack/textures/ta4_jetpack_jetpack.png new file mode 100644 index 0000000000000000000000000000000000000000..284c67bf64ace96f53da1be9cd71dbd902619c82 GIT binary patch literal 395 zcmeAS@N?(olHy`uVBq!ia0vp^4M6O`!VDx8ekAz-DVB6cUq=Rpjs4tz5?O(K#^NA% zCx&(BWL^R}oCO|{#S9F5M?jcysy3fAP*5enC&bk!v(VPYCL%l>C=j2RC?O$nTT!uZ z#_ZXP*Uy@5zH8U6`j%C5W<>r5nOG9!7tG-B>_!@p^VrkHF(l&f+e-`i4jG8BUbwbs z8++RVH-Xd3JQC$3Zn7WPmvEA$ipjRw?c798n;OO3c;3E!YAec*nq8iJ`wiE@hXocg zeC?l|AFUT>=Hb{Fe{0PN2O;gb5=;%HvHr~sYlD^>EXb%~>^KvwCMLmS@Pm=NS|m-94}B*ZRzBboV4Rt*ET+K3G*4W|fmJQ{_ks1Bti{gm)H>-< zYJ6a;a(pA(2@~nx8VnbtH$*RBDr0UC^=Ob?xY~iKpyh(KgJwK~yGAifS*h)3mOJt+ iEPP(Md&)l?uVFZ+<+8df`&N)g|)1#UwsP$3dv@MM3gw^=jNv7l>oU649-QV zi6yBi3gww484B*6z5ywEsq8@UYo0ESAr_~Tw`|_}_k05jpRC=P2L2m2Z!P)|xk2;O z=g-MIs=w=X&DgZb=FU1}amzh}*z+#)bQV zTtSUCP1dZ1es(2795P=ii=8)bXPyi&48t%C^WSlEaF9t=Z;cn5QH(do0XC6 zqXg(8fD%cX;xfws07;%>T@=>EM+K1^RgPX904}o(Nt#+0KZ_)^7ElXMu8RWuJU>3$ ze_w%3Sd9{(PrDMKiksxbq#@MzTuuAa+oJ;jHF+o7L4u^|JXi(MY`*ARwXSz21yNV$ zZQZG`Qcjp&$Djb4Y;Q}<$pUN>uIa?&AvFD}btUHHA+-1hbi&Z^olO${NcRlGFbu;m d48!~>z5v4UIctL98dm@S002ovPDHLkV1o3-;e7xA literal 0 HcmV?d00001 diff --git a/ta4_jetpack/textures/ta4_jetpack_mat_side.png b/ta4_jetpack/textures/ta4_jetpack_mat_side.png new file mode 100644 index 0000000000000000000000000000000000000000..56c4704c5a2252bb604f8b8c2b621322a67251f5 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnL3?x0byx0z;SkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?smmW`;zRIOpf)rskCZxeN@>MX8A;sVNHOnI#zt?w-B@DSD~wKyl6jkH}&M z25w;xW@MN(M*=9w7T^=&$`|i1cWlX?UxB?q5ou2s#}JO|$v^m6cvgq4jXGOkYGP6n eu+hPfnPKxWZy&?MlaB+HF?hQAxvX<>&pIwO_Z0>to;A9O+X>p%#er@=ltB<)VvZPmw~~#C^fMp zHASI3vm`^o-P1Q9MK6_|fq{|R)5S3);_%h*(_GC40zT6ciO9f( zwwy~lJ-;nnSS_?^_S~~Q$$M@-f4r7`an_M%doEQOc-?P*q;&gRR*agVK!fgt965#! zx$?DowvuKI?_X}1{OnUd!y(b&WeiTb|Gp}90%wg00W&&s>FTI z53g(PaZb6!EW&*A^AXd4U5ZN$U)del`bgx(0rnkXU2`oyFs|F+B|WiL!Q3>wqoD1< zzhj(783XRgP1y5&=?kx43}wbA<;52$O<&}ke@6P)>96fCLWo1+5SS^+4QBl#YCzD6aiF0!BkRA zrE12kbH<~UiA|@<(vSc)Wz34gyeS%{%>71YR8mIX!&Ky3g+teag-P-*^H`Fofnzy` zypJ#iyh$MMB+_cJV;<(Z16A-KM9n@jeqiE?m5KV0^vx?8M$xnOfRT=PH{W=gE#kdW zDISj}vubt61HR>YUv1^P+xy3h>zmn0>o5&`06#$J{nO4?QE1!Qw)-y)a%@w7Ydc2( O0000 0 and item.clust_num_ores ~= nil and item.clust_num_ores > 0 and item.y_max ~= nil and item.y_min ~= nil then - local probability = (techage.ore_rarity / PROBABILITY_FACTOR) * item.clust_scarcity / - (item.clust_num_ores * ((item.y_max - item.y_min) / 65535)) - if ore_probability[drop] == nil then - ore_probability[drop] = probability - else - -- harmonic sum - ore_probability[drop] = 1.0 / ((1.0 / ore_probability[drop]) + - (1.0 / probability)) + local factor = 0.5 + if item.y_max < -250 then + factor = -250 / item.y_max end + local probability = (techage.ore_rarity / PROBABILITY_FACTOR) * item.clust_scarcity / + (item.clust_num_ores * factor) + -- lower value means higher probability + ore_probability[drop] = math.min(ore_probability[drop] or 100000, probability) end end end @@ -55,6 +54,8 @@ local function add_ores() for key, correction in pairs(ProbabilityCorrections) do if ore_probability[key] then ore_probability[key] = ore_probability[key] * correction + -- consider upper and lower level + ore_probability[key] = techage.in_range(ore_probability[key], 10, 100000) end end local overall_probability = 0.0 diff --git a/techage/basis/nodedata_sqlite.lua b/techage/basis/nodedata_sqlite.lua index c7078c6..7c0a33a 100644 --- a/techage/basis/nodedata_sqlite.lua +++ b/techage/basis/nodedata_sqlite.lua @@ -72,14 +72,20 @@ end local api = {} function api.store_mapblock_data(key, mapblock_data) - local s = marshal.encode(mapblock_data) + -- deactivated due to weird server crashes without error logs + --local s = marshal.encode(mapblock_data) + local s = minetest.serialize(mapblock_data) return set_block(key, s) end function api.get_mapblock_data(key) local s = get_block(key) if s then - return marshal.decode(s) + if s:byte(1) == MAR_MAGIC then + return marshal.decode(s) + else + return minetest.deserialize(s) + end end api.store_mapblock_data(key, {}) return {} diff --git a/techage/doc/items.lua b/techage/doc/items.lua index 4261273..488eac6 100644 --- a/techage/doc/items.lua +++ b/techage/doc/items.lua @@ -23,6 +23,7 @@ techage.Items = { baborium = "techage:stone_with_baborium", bauxite = "techage:bauxite_stone", usmium = "techage:usmium_nuggets", + basalt = "techage:basalt_stone", oil = "techage:oil_source", ta1_hopper = "techage:hopper_ta1", wlanchip = "techage:ta4_wlanchip", diff --git a/techage/doc/manual_DE.lua b/techage/doc/manual_DE.lua index 24000cf..36c0d11 100644 --- a/techage/doc/manual_DE.lua +++ b/techage/doc/manual_DE.lua @@ -9,6 +9,7 @@ techage.manual_DE.aTitel = { "3,Baborium", "3,Erdöl", "3,Bauxit", + "3,Basalt", "2,History", "1,TA1: Eisenzeitalter", "2,Köhler / Coal Pile", @@ -225,6 +226,7 @@ techage.manual_DE.aText = { " - Baborium - ein Metall\\, welches für Rezepte in TA3 benötigt wird\n".. " - Erdöl - wird in TA3 benötigt\n".. " - Bauxit - ein Aluminiumerz\\, was in TA4 zur Herstellung von Aluminium benötigt wird\n".. + " - Basalt - entsteht\\, wenn sich Wasser und Lave berühren\n".. "\n", "Meridium ist eine Legierung aus Stahl und Mesekristallen. Meridium Ingots können mit dem Kohlebrenner aus Stahl und Mesesplitter hergestellt werden. Meridium leuchtet im Dunkeln. Auch Werkzeuge aus Meridium leuchten und sind daher im Untertagebau sehr hilfreich.\n".. "\n".. @@ -248,6 +250,13 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", + "Basalt entsteht nur\\, wenn Lava und Wasser zusammenkommen.\n".. + "Dazu sollte man am besten eine Anlage aufbauen\\, bei der eine Lava- und eine Wasserquelle zusammenfließen.\n".. + "Dort wo sich beide Flüssigkeiten treffen\\, entsteht Lava.\n".. + "Einen automatisierten Basalt Generator kann man mit dem Sign Bot aufbauen.\n".. + "\n".. + "\n".. + "\n", " - 28.09.2019: Um Solaranlage erweitert\n".. " - 05.10.2019: Daten zur Solaranlage und Beschreibung zum Wechselrichter und zum Power-Terminal geändert\n".. " - 18.11.2019: Kapitel für Erze\\, Reaktor\\, Aluminium\\, Silo\\, Bauxit\\, Ofenheizung\\, Kieswaschanlage hinzugefügt\n".. @@ -796,7 +805,7 @@ techage.manual_DE.aText = { "Der Destillationsturm muss wie im Plan rechts oben aufgebaut werden. \n".. "Über den Basisblock wird das Bitumen abgelassen. Der Ausgang ist auf der Rückseite des Basisblocks (Pfeilrichtung beachten).\n".. "Auf diesen Basisblock kommen die \"Destillationsturm\" Blöcke mit den Nummern: 1\\, 2\\, 3\\, 2\\, 3\\, 2\\, 3\\, 4\n".. - "An den Öffnungen von unten nach oben werden Schweröl\\, Naphtha und Benzin abgeleitet. Ganz oben wird das Gas abgefangen.\n".. + "An den Öffnungen von unten nach oben werden Schweröl\\, Naphtha und Benzin abgeleitet. Ganz oben wird das Propangas abgefangen.\n".. "Es müssen alle Öffnungen am Turm mit Tanks verbunden werden.\n".. "Der Aufkocher (reboiler) muss mit dem Block \"Destillationsturm 1\" verbunden werden.\n".. "\n".. @@ -806,7 +815,7 @@ techage.manual_DE.aText = { "\n", "Der Aufkocher erhitzt das Erdöl auf ca. 400°C. Dabei verdampft es weitgehend und wird in den Destillationsturm zur Abkühlung geleitet.\n".. "\n".. - "Der Aufkocher benötigt 12 Einheiten Strom und produziert alle 6 s jeweils eine Einheit Bitumen\\, Schweröl\\, Naphtha\\, Benzin und Gas.\n".. + "Der Aufkocher benötigt 14 Einheiten Strom und produziert alle 16 s jeweils eine Einheit Bitumen\\, Schweröl\\, Naphtha\\, Benzin und Propangas.\n".. "Dazu muss der Aufkocher über einen Pumpe mit Erdöl versorgt werden.\n".. "\n".. "\n".. @@ -920,7 +929,7 @@ techage.manual_DE.aText = { "\n".. "\n", "Die Signallampe kann mit 'on'/'off' Kommando ein- bzw. ausgeschaltet werden. Diese Lampe braucht keinen Strom und\n".. - "kann mit der Spritzpistole farbig gemacht werden.\n".. + "kann mit der Spritzpistole aus der Mod \"Unified Dyes\" farbig gemacht werden.\n".. "\n".. "\n".. "\n", @@ -1484,6 +1493,7 @@ techage.manual_DE.aItemName = { "baborium", "oil", "bauxite", + "basalt", "", "techage_ta1", "", @@ -1671,6 +1681,7 @@ techage.manual_DE.aPlanTable = { "", "", "", + "", "coalpile", "coalburner", "", diff --git a/techage/doc/manual_EN.lua b/techage/doc/manual_EN.lua index 147d730..8ed08f0 100644 --- a/techage/doc/manual_EN.lua +++ b/techage/doc/manual_EN.lua @@ -9,6 +9,7 @@ techage.manual_EN.aTitel = { "3,Baborium", "3,Petroleum", "3,Bauxite", + "3,Basalt", "2,History", "1,TA1: Iron Age", "2,Charcoal Pile (charcoal burner)", @@ -225,6 +226,7 @@ techage.manual_EN.aText = { " - Baborium - a metal that is needed for recipes in TA3\n".. " - Petroleum - is needed in TA3\n".. " - Bauxite - an aluminum ore that is needed in TA4 to produce aluminum\n".. + " - Basalt - arises when water and lave touch\n".. "\n", "Meridium is an alloy of steel and mesecons crystals. Meridium ingots can be made with the coal burner from steel and mesecons crystals. Meridium glows in the dark. Tools made of Meridium also light up and are therefore very helpful in underground mining.\n".. "\n".. @@ -248,6 +250,13 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", + "Basalt is only created when lava and water come together.\n".. + "The best thing to do is to set up a system where a lava and a water source flow together.\n".. + "Lava is formed where both liquids meet.\n".. + "You can build an automated basalt generator with the Sign Bot.\n".. + "\n".. + "\n".. + "\n", " - 28.09.2019: Solar system added\n".. " - 05.10.2019: Data on the solar system and description of the inverter and the power terminal changed\n".. " - 18.11.2019: Chapter for ores\\, reactor\\, aluminum\\, silo\\, bauxite\\, furnace heating\\, gravel washing system added\n".. @@ -526,7 +535,7 @@ techage.manual_EN.aText = { "\n", "Part of the power plant.\n".. "\n".. - "The oil burner can be filled with petroleum\\, heavy oil\\, naphtha or petrol. The burning time depends on the power that is requested by the power plant. Under full load\\, petroleum burns 15 s\\, heavy oil 20 s\\, naphtha 22 s and gasoline 25 s.\n".. + "The oil burner can be filled with crude oil\\, fuel oil\\, naphtha or gasoline. The burning time depends on the power that is requested by the power plant. Under full load\\, crude oil burns 15 s\\, fuel oil 20 s\\, naphtha 22 s and gasoline 25 s.\n".. "\n".. "Correspondingly longer under partial load (50% load = double time).\n".. "\n".. @@ -645,7 +654,7 @@ techage.manual_EN.aText = { "\n", "Is part of the TA3 industrial furnace.\n".. "\n".. - "The oil burner can be operated with heavy oil\\, naphtha or gasoline. The burning time is 80 s for heavy oil\\, 90 s for naphtha and 100 s for gasoline.\n".. + "The oil burner can be operated with fuel oil\\, naphtha or gasoline. The burning time is 80 s for fuel oil\\, 90 s for naphtha and 100 s for gasoline.\n".. "\n".. "The oil burner can only hold 50 units of fuel. An additional tank and a pump are therefore advisable.\n".. "\n".. @@ -786,7 +795,7 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", - "Oil is a mixture of substances and consists of many components. The oil can be broken down into its main components such as bitumen\\, heavy oil\\, naphtha\\, gasoline and gas via a distillation tower.\n".. + "Oil is a mixture of substances and consists of many components. The oil can be broken down into its main components such as bitumen\\, fuel oil\\, naphtha\\, gasoline and propane gas via a distillation tower.\n".. "Further processing to end products takes place in the chemical reactor.\n".. "\n".. "\n".. @@ -794,7 +803,7 @@ techage.manual_EN.aText = { "The distillation tower must be set up as in the plan at the top right.\n".. "The bitumen is drained off via the base block. The exit is on the back of the base block (note the direction of the arrow).\n".. "The \"distillation tower\" blocks with the numbers: 1\\, 2\\, 3\\, 2\\, 3\\, 2\\, 3\\, 4 are placed on this basic block\n".. - "Heavy oil\\, naphtha and gasoline are drained from the openings from bottom to top. The gas is caught at the top.\n".. + "Fuel oil\\, naphtha and gasoline are drained from the openings from bottom to top. The propane gas is caught at the top.\n".. "All openings on the tower must be connected to tanks.\n".. "The reboiler must be connected to the \"distillation tower 1\" block.\n".. "\n".. @@ -804,7 +813,7 @@ techage.manual_EN.aText = { "\n", "The reboiler heats the oil to approx. 400 ° C. It largely evaporates and is fed into the distillation tower for cooling.\n".. "\n".. - "The reboiler requires 12 units of electricity and produces one unit of bitumen\\, heavy oil\\, naphtha\\, gasoline and gas every 6 s.\n".. + "The reboiler requires 14 units of electricity and produces one unit of bitumen\\, fuel oil\\, naphtha\\, gasoline and propane every 16 s.\n".. "To do this\\, the reboiler must be supplied with oil via a pump.\n".. "\n".. "\n".. @@ -918,7 +927,7 @@ techage.manual_EN.aText = { "\n".. "\n", "The signal lamp can be switched on or off with the 'on' / 'off' command. This lamp does not need electricity and\n".. - "can be colored with the spray gun.\n".. + "can be colored with the airbrush tool of the mod Unified Dyes.\n".. "\n".. "\n".. "\n", @@ -1474,6 +1483,7 @@ techage.manual_EN.aItemName = { "baborium", "oil", "bauxite", + "basalt", "", "techage_ta1", "", @@ -1661,6 +1671,7 @@ techage.manual_EN.aPlanTable = { "", "", "", + "", "coalpile", "coalburner", "", diff --git a/techage/init.lua b/techage/init.lua index 22fac07..4b08c3b 100644 --- a/techage/init.lua +++ b/techage/init.lua @@ -13,7 +13,7 @@ techage = {} -- Version for compatibility checks, see readme.md/history -techage.version = 0.13 +techage.version = 0.14 if minetest.global_exists("tubelib") then minetest.log("error", "[techage] Techage can't be used together with the mod tubelib!") @@ -298,6 +298,7 @@ dofile(MP.."/items/plastic.lua") dofile(MP.."/items/hydrogen.lua") dofile(MP.."/items/electronic.lua") dofile(MP.."/items/redstone.lua") +dofile(MP.."/items/cement.lua") if techage.basalt_stone_enabled then dofile(MP.."/items/basalt.lua") diff --git a/techage/items/aluminium.lua b/techage/items/aluminium.lua index 60a6613..a837e12 100644 --- a/techage/items/aluminium.lua +++ b/techage/items/aluminium.lua @@ -55,7 +55,7 @@ techage.recipes.add("ta4_doser", { }) techage.furnace.register_recipe({ - output = "techage:aluminum", + output = "techage:aluminum 2", recipe = {"techage:gibbsite_powder", "techage:gibbsite_powder", "techage:gibbsite_powder", "techage:gibbsite_powder"}, time = 16, diff --git a/techage/items/cement.lua b/techage/items/cement.lua new file mode 100644 index 0000000..92a7d97 --- /dev/null +++ b/techage/items/cement.lua @@ -0,0 +1,52 @@ +--[[ + + TechAge + ======= + + Copyright (C) 2020 Joachim Stolberg + + GPL v3 + See LICENSE.txt for more information + + Cement as ingredient and alternative recipe for basic_materials:wet_cement + Cement is cooked and grinded clay + +]]-- + +local S = techage.S + + +if not minetest.global_exists("bakedclay") then + minetest.register_node("techage:cement_block", { + description = S("Cement Block"), + tiles = {"default_clay.png^[colorize:#FFFFFF:160"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), + }) + + minetest.register_craft({ + type = "cooking", + output = "techage:cement_block", + recipe = "default:clay", + }) + + techage.add_grinder_recipe({input="techage:cement_block", output="techage:cement_powder"}) +else + techage.add_grinder_recipe({input="bakedclay:white", output="techage:cement_powder"}) +end + +minetest.register_craftitem("techage:cement_powder", { + description = S("Cement Powder"), + inventory_image = "techage_powder_inv.png^[colorize:#FFFFFF:240", + groups = {powder = 1}, +}) + +minetest.register_craft({ + output = "basic_materials:wet_cement 3", + recipe = { + {"bucket:bucket_water", "techage:cement_powder"}, + {"group:sand", "default:gravel"}, + } +}) + diff --git a/techage/manuals/manual_DE.md b/techage/manuals/manual_DE.md index cd50c95..c6bd734 100644 --- a/techage/manuals/manual_DE.md +++ b/techage/manuals/manual_DE.md @@ -46,7 +46,7 @@ Techage fügt dem Spiel einige neue Items hinzu: - Baborium - ein Metall, welches für Rezepte in TA3 benötigt wird - Erdöl - wird in TA3 benötigt - Bauxit - ein Aluminiumerz, was in TA4 zur Herstellung von Aluminium benötigt wird - +- Basalt - entsteht, wenn sich Wasser und Lave berühren ### Meridium @@ -85,6 +85,15 @@ Es wird zur Herstellung von Aluminium benötigt, was vor allem in TA4 Verwendung [bauxite|image] +### Basalt + +Basalt entsteht nur, wenn Lava und Wasser zusammenkommen. +Dazu sollte man am besten eine Anlage aufbauen, bei der eine Lava- und eine Wasserquelle zusammenfließen. +Dort wo sich beide Flüssigkeiten treffen, entsteht Lava. +Einen automatisierten Basalt Generator kann man mit dem Sign Bot aufbauen. + +[basalt|image] + ## History diff --git a/techage/manuals/manual_EN.md b/techage/manuals/manual_EN.md index f7848e3..c10363e 100644 --- a/techage/manuals/manual_EN.md +++ b/techage/manuals/manual_EN.md @@ -46,6 +46,7 @@ Techage adds some new items to the game: - Baborium - a metal that is needed for recipes in TA3 - Petroleum - is needed in TA3 - Bauxite - an aluminum ore that is needed in TA4 to produce aluminum +- Basalt - arises when water and lave touch ### Meridium @@ -86,6 +87,14 @@ It is required for the production of aluminum, which is mainly used in TA4. [bauxite|image] +### Basalt + +Basalt is only created when lava and water come together. +The best thing to do is to set up a system where a lava and a water source flow together. +Lava is formed where both liquids meet. +You can build an automated basalt generator with the Sign Bot. + +[basalt|image] ## History diff --git a/techage/manuals/manual_ta3_DE.md b/techage/manuals/manual_ta3_DE.md index 87f98bf..1c65dac 100644 --- a/techage/manuals/manual_ta3_DE.md +++ b/techage/manuals/manual_ta3_DE.md @@ -422,7 +422,7 @@ Die weitere Verarbeitung zu Endprodukten erfolgt im Chemischen Reaktor. Der Destillationsturm muss wie im Plan rechts oben aufgebaut werden. Über den Basisblock wird das Bitumen abgelassen. Der Ausgang ist auf der Rückseite des Basisblocks (Pfeilrichtung beachten). Auf diesen Basisblock kommen die "Destillationsturm" Blöcke mit den Nummern: 1, 2, 3, 2, 3, 2, 3, 4 -An den Öffnungen von unten nach oben werden Schweröl, Naphtha und Benzin abgeleitet. Ganz oben wird das Gas abgefangen. +An den Öffnungen von unten nach oben werden Schweröl, Naphtha und Benzin abgeleitet. Ganz oben wird das Propangas abgefangen. Es müssen alle Öffnungen am Turm mit Tanks verbunden werden. Der Aufkocher (reboiler) muss mit dem Block "Destillationsturm 1" verbunden werden. @@ -435,7 +435,7 @@ Der Aufkocher benötigt Strom (nicht im Plan zu sehen)! Der Aufkocher erhitzt das Erdöl auf ca. 400°C. Dabei verdampft es weitgehend und wird in den Destillationsturm zur Abkühlung geleitet. -Der Aufkocher benötigt 12 Einheiten Strom und produziert alle 6 s jeweils eine Einheit Bitumen, Schweröl, Naphtha, Benzin und Gas. +Der Aufkocher benötigt 14 Einheiten Strom und produziert alle 16 s jeweils eine Einheit Bitumen, Schweröl, Naphtha, Benzin und Propangas. Dazu muss der Aufkocher über einen Pumpe mit Erdöl versorgt werden. [reboiler|image] @@ -570,7 +570,7 @@ Im privaten Modul kann nur der Besitzer selbst Kommandos eingeben oder Tasten nu ### TechAge Signallampe / Signal Lamp Die Signallampe kann mit `on`/`off` Kommando ein- bzw. ausgeschaltet werden. Diese Lampe braucht keinen Strom und -kann mit der Spritzpistole farbig gemacht werden. +kann mit der Spritzpistole aus der Mod "Unified Dyes" farbig gemacht werden. [ta3_signallamp|image] @@ -763,4 +763,4 @@ Die Kelle dient zum Verputzen von Stromkabel. Siehe dazu "TA Stromkabel". Mit diesem Werkzeug lassen sich die Bohrgestängezange Blöcke wieder entfernen, wenn dort bspw. ein Tunnel durch soll. -[ta3_drill_pipe_wrench|image] \ No newline at end of file +[ta3_drill_pipe_wrench|image] diff --git a/techage/manuals/manual_ta3_EN.md b/techage/manuals/manual_ta3_EN.md index e3610e3..6dbfa20 100644 --- a/techage/manuals/manual_ta3_EN.md +++ b/techage/manuals/manual_ta3_EN.md @@ -37,7 +37,7 @@ The fire box must be filled with coal or charcoal. The burning time depends on t Part of the power plant. -The oil burner can be filled with petroleum, heavy oil, naphtha or petrol. The burning time depends on the power that is requested by the power plant. Under full load, petroleum burns 15 s, heavy oil 20 s, naphtha 22 s and gasoline 25 s. +The oil burner can be filled with crude oil, fuel oil, naphtha or gasoline. The burning time depends on the power that is requested by the power plant. Under full load, crude oil burns 15 s, fuel oil 20 s, naphtha 22 s and gasoline 25 s. Correspondingly longer under partial load (50% load = double time). @@ -214,7 +214,7 @@ See also TA4 heater. Is part of the TA3 industrial furnace. -The oil burner can be operated with heavy oil, naphtha or gasoline. The burning time is 80 s for heavy oil, 90 s for naphtha and 100 s for gasoline. +The oil burner can be operated with fuel oil, naphtha or gasoline. The burning time is 80 s for fuel oil, 90 s for naphtha and 100 s for gasoline. The oil burner can only hold 50 units of fuel. An additional tank and a pump are therefore advisable. @@ -409,7 +409,7 @@ The chest cart is used to transport items. Like chests, it can be filled or empt ## Oil Processing -Oil is a mixture of substances and consists of many components. The oil can be broken down into its main components such as bitumen, heavy oil, naphtha, gasoline and gas via a distillation tower. +Oil is a mixture of substances and consists of many components. The oil can be broken down into its main components such as bitumen, fuel oil, naphtha, gasoline and propane gas via a distillation tower. Further processing to end products takes place in the chemical reactor. [techage_ta31|image] @@ -420,7 +420,7 @@ Further processing to end products takes place in the chemical reactor. The distillation tower must be set up as in the plan at the top right. The bitumen is drained off via the base block. The exit is on the back of the base block (note the direction of the arrow). The "distillation tower" blocks with the numbers: 1, 2, 3, 2, 3, 2, 3, 4 are placed on this basic block -Heavy oil, naphtha and gasoline are drained from the openings from bottom to top. The gas is caught at the top. +Fuel oil, naphtha and gasoline are drained from the openings from bottom to top. The propane gas is caught at the top. All openings on the tower must be connected to tanks. The reboiler must be connected to the "distillation tower 1" block. @@ -433,7 +433,7 @@ The reboiler needs electricity (not shown in the plan)! The reboiler heats the oil to approx. 400 ° C. It largely evaporates and is fed into the distillation tower for cooling. -The reboiler requires 12 units of electricity and produces one unit of bitumen, heavy oil, naphtha, gasoline and gas every 6 s. +The reboiler requires 14 units of electricity and produces one unit of bitumen, fuel oil, naphtha, gasoline and propane every 16 s. To do this, the reboiler must be supplied with oil via a pump. [reboiler|image] @@ -567,7 +567,7 @@ In the private mode, only the owner can enter commands himself or use keys. ### TechAge Signal Lamp The signal lamp can be switched on or off with the `on` / `off` command. This lamp does not need electricity and -can be colored with the spray gun. +can be colored with the airbrush tool of the mod Unified Dyes. [ta3_signallamp|image] diff --git a/techage/manuals/toc_DE.md b/techage/manuals/toc_DE.md index f348fd5..a78fa08 100644 --- a/techage/manuals/toc_DE.md +++ b/techage/manuals/toc_DE.md @@ -8,6 +8,7 @@ - [Baborium](./manual_DE.md#baborium) - [Erdöl](./manual_DE.md#erdöl) - [Bauxit](./manual_DE.md#bauxit) + - [Basalt](./manual_DE.md#basalt) - [History](./manual_DE.md#history) - [TA1: Eisenzeitalter](./manual_ta1_DE.md#ta1:-eisenzeitalter) - [Köhler / Coal Pile](./manual_ta1_DE.md#köhler--coal-pile) diff --git a/techage/manuals/toc_EN.md b/techage/manuals/toc_EN.md index 03c2002..e708383 100644 --- a/techage/manuals/toc_EN.md +++ b/techage/manuals/toc_EN.md @@ -8,6 +8,7 @@ - [Baborium](./manual_EN.md#baborium) - [Petroleum](./manual_EN.md#petroleum) - [Bauxite](./manual_EN.md#bauxite) + - [Basalt](./manual_EN.md#basalt) - [History](./manual_EN.md#history) - [TA1: Iron Age](./manual_ta1_EN.md#ta1:-iron-age) - [Charcoal Pile (charcoal burner)](./manual_ta1_EN.md#charcoal-pile-(charcoal-burner)) diff --git a/techage/oil/reboiler.lua b/techage/oil/reboiler.lua index 81f4d24..29dc4bf 100644 --- a/techage/oil/reboiler.lua +++ b/techage/oil/reboiler.lua @@ -23,7 +23,7 @@ local Flip = techage.networks.Flip local Cable = techage.ElectricCable local power = techage.power -local CYCLE_TIME = 6 +local CYCLE_TIME = 16 local CAPA = 12 local PWR_NEEDED = 14