From 44f4d80ec2826a099fa583858906ca93c6ea9084 Mon Sep 17 00:00:00 2001 From: Joachim Stolberg Date: Thu, 2 Jul 2020 21:30:02 +0200 Subject: [PATCH] built on 02/07/2020 21:30:02 --- .../.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 151606 -> 0 bytes .../3d_armor/models/3d_armor_character.blend | Bin 775480 -> 0 bytes .../textures/3d_armor_boots_admin.png | Bin 258 -> 0 bytes .../textures/3d_armor_boots_admin_preview.png | Bin 261 -> 0 bytes .../textures/3d_armor_boots_bronze.png | Bin 253 -> 0 bytes .../3d_armor_boots_bronze_preview.png | Bin 241 -> 0 bytes .../textures/3d_armor_boots_cactus.png | Bin 252 -> 0 bytes .../3d_armor_boots_cactus_preview.png | Bin 239 -> 0 bytes .../textures/3d_armor_boots_crystal.png | Bin 261 -> 0 bytes .../3d_armor_boots_crystal_preview.png | Bin 258 -> 0 bytes .../textures/3d_armor_boots_diamond.png | Bin 265 -> 0 bytes .../3d_armor_boots_diamond_preview.png | Bin 270 -> 0 bytes .../3d_armor/textures/3d_armor_boots_gold.png | Bin 245 -> 0 bytes .../textures/3d_armor_boots_gold_preview.png | Bin 226 -> 0 bytes .../textures/3d_armor_boots_mithril.png | Bin 261 -> 0 bytes .../3d_armor_boots_mithril_preview.png | Bin 272 -> 0 bytes .../textures/3d_armor_boots_steel.png | Bin 233 -> 0 bytes .../textures/3d_armor_boots_steel_preview.png | Bin 232 -> 0 bytes .../3d_armor/textures/3d_armor_boots_wood.png | Bin 267 -> 0 bytes .../textures/3d_armor_boots_wood_preview.png | Bin 233 -> 0 bytes .../textures/3d_armor_chestplate_admin.png | Bin 409 -> 0 bytes .../3d_armor_chestplate_admin_preview.png | Bin 285 -> 0 bytes .../textures/3d_armor_chestplate_bronze.png | Bin 396 -> 0 bytes .../3d_armor_chestplate_bronze_preview.png | Bin 282 -> 0 bytes .../textures/3d_armor_chestplate_cactus.png | Bin 393 -> 0 bytes .../3d_armor_chestplate_cactus_preview.png | Bin 286 -> 0 bytes .../textures/3d_armor_chestplate_crystal.png | Bin 404 -> 0 bytes .../3d_armor_chestplate_crystal_preview.png | Bin 289 -> 0 bytes .../textures/3d_armor_chestplate_diamond.png | Bin 429 -> 0 bytes .../3d_armor_chestplate_diamond_preview.png | Bin 290 -> 0 bytes .../textures/3d_armor_chestplate_gold.png | Bin 402 -> 0 bytes .../3d_armor_chestplate_gold_preview.png | Bin 281 -> 0 bytes .../textures/3d_armor_chestplate_mithril.png | Bin 416 -> 0 bytes .../3d_armor_chestplate_mithril_preview.png | Bin 286 -> 0 bytes .../textures/3d_armor_chestplate_steel.png | Bin 385 -> 0 bytes .../3d_armor_chestplate_steel_preview.png | Bin 274 -> 0 bytes .../textures/3d_armor_chestplate_wood.png | Bin 324 -> 0 bytes .../3d_armor_chestplate_wood_preview.png | Bin 275 -> 0 bytes .../textures/3d_armor_helmet_admin.png | Bin 348 -> 0 bytes .../3d_armor_helmet_admin_preview.png | Bin 261 -> 0 bytes .../textures/3d_armor_helmet_bronze.png | Bin 337 -> 0 bytes .../3d_armor_helmet_bronze_preview.png | Bin 271 -> 0 bytes .../textures/3d_armor_helmet_cactus.png | Bin 325 -> 0 bytes .../3d_armor_helmet_cactus_preview.png | Bin 203 -> 0 bytes .../textures/3d_armor_helmet_crystal.png | Bin 350 -> 0 bytes .../3d_armor_helmet_crystal_preview.png | Bin 257 -> 0 bytes .../textures/3d_armor_helmet_diamond.png | Bin 353 -> 0 bytes .../3d_armor_helmet_diamond_preview.png | Bin 269 -> 0 bytes .../textures/3d_armor_helmet_gold.png | Bin 353 -> 0 bytes .../textures/3d_armor_helmet_gold_preview.png | Bin 251 -> 0 bytes .../textures/3d_armor_helmet_mithril.png | Bin 338 -> 0 bytes .../3d_armor_helmet_mithril_preview.png | Bin 253 -> 0 bytes .../textures/3d_armor_helmet_steel.png | Bin 354 -> 0 bytes .../3d_armor_helmet_steel_preview.png | Bin 267 -> 0 bytes .../textures/3d_armor_helmet_wood.png | Bin 327 -> 0 bytes .../textures/3d_armor_helmet_wood_preview.png | Bin 237 -> 0 bytes .../textures/3d_armor_inv_boots_admin.png | Bin 216 -> 0 bytes .../textures/3d_armor_inv_boots_bronze.png | Bin 207 -> 0 bytes .../textures/3d_armor_inv_boots_cactus.png | Bin 194 -> 0 bytes .../textures/3d_armor_inv_boots_crystal.png | Bin 217 -> 0 bytes .../textures/3d_armor_inv_boots_diamond.png | Bin 220 -> 0 bytes .../textures/3d_armor_inv_boots_gold.png | Bin 202 -> 0 bytes .../textures/3d_armor_inv_boots_mithril.png | Bin 224 -> 0 bytes .../textures/3d_armor_inv_boots_steel.png | Bin 209 -> 0 bytes .../textures/3d_armor_inv_boots_wood.png | Bin 215 -> 0 bytes .../3d_armor_inv_chestplate_admin.png | Bin 256 -> 0 bytes .../3d_armor_inv_chestplate_bronze.png | Bin 261 -> 0 bytes .../3d_armor_inv_chestplate_cactus.png | Bin 246 -> 0 bytes .../3d_armor_inv_chestplate_crystal.png | Bin 258 -> 0 bytes .../3d_armor_inv_chestplate_diamond.png | Bin 264 -> 0 bytes .../textures/3d_armor_inv_chestplate_gold.png | Bin 256 -> 0 bytes .../3d_armor_inv_chestplate_mithril.png | Bin 246 -> 0 bytes .../3d_armor_inv_chestplate_steel.png | Bin 252 -> 0 bytes .../textures/3d_armor_inv_chestplate_wood.png | Bin 244 -> 0 bytes .../textures/3d_armor_inv_helmet_admin.png | Bin 188 -> 0 bytes .../textures/3d_armor_inv_helmet_bronze.png | Bin 180 -> 0 bytes .../textures/3d_armor_inv_helmet_cactus.png | Bin 183 -> 0 bytes .../textures/3d_armor_inv_helmet_crystal.png | Bin 186 -> 0 bytes .../textures/3d_armor_inv_helmet_diamond.png | Bin 189 -> 0 bytes .../textures/3d_armor_inv_helmet_gold.png | Bin 178 -> 0 bytes .../textures/3d_armor_inv_helmet_mithril.png | Bin 180 -> 0 bytes .../textures/3d_armor_inv_helmet_steel.png | Bin 194 -> 0 bytes .../textures/3d_armor_inv_helmet_wood.png | Bin 151 -> 0 bytes .../textures/3d_armor_inv_leggings_admin.png | Bin 214 -> 0 bytes .../textures/3d_armor_inv_leggings_bronze.png | Bin 245 -> 0 bytes .../textures/3d_armor_inv_leggings_cactus.png | Bin 217 -> 0 bytes .../3d_armor_inv_leggings_crystal.png | Bin 212 -> 0 bytes .../3d_armor_inv_leggings_diamond.png | Bin 213 -> 0 bytes .../textures/3d_armor_inv_leggings_gold.png | Bin 238 -> 0 bytes .../3d_armor_inv_leggings_mithril.png | Bin 250 -> 0 bytes .../textures/3d_armor_inv_leggings_steel.png | Bin 233 -> 0 bytes .../textures/3d_armor_inv_leggings_wood.png | Bin 211 -> 0 bytes .../textures/3d_armor_leggings_admin.png | Bin 288 -> 0 bytes .../3d_armor_leggings_admin_preview.png | Bin 298 -> 0 bytes .../textures/3d_armor_leggings_bronze.png | Bin 278 -> 0 bytes .../3d_armor_leggings_bronze_preview.png | Bin 273 -> 0 bytes .../textures/3d_armor_leggings_cactus.png | Bin 251 -> 0 bytes .../3d_armor_leggings_cactus_preview.png | Bin 261 -> 0 bytes .../textures/3d_armor_leggings_crystal.png | Bin 290 -> 0 bytes .../3d_armor_leggings_crystal_preview.png | Bin 268 -> 0 bytes .../textures/3d_armor_leggings_diamond.png | Bin 294 -> 0 bytes .../3d_armor_leggings_diamond_preview.png | Bin 308 -> 0 bytes .../textures/3d_armor_leggings_gold.png | Bin 272 -> 0 bytes .../3d_armor_leggings_gold_preview.png | Bin 257 -> 0 bytes .../textures/3d_armor_leggings_mithril.png | Bin 286 -> 0 bytes .../3d_armor_leggings_mithril_preview.png | Bin 315 -> 0 bytes .../textures/3d_armor_leggings_steel.png | Bin 288 -> 0 bytes .../3d_armor_leggings_steel_preview.png | Bin 287 -> 0 bytes .../textures/3d_armor_leggings_wood.png | Bin 255 -> 0 bytes .../3d_armor_leggings_wood_preview.png | Bin 217 -> 0 bytes 3d_armor/3d_armor/textures/3d_armor_trans.png | Bin 274 -> 0 bytes .../3d_armor/textures/3d_armor_ui_form.png | Bin 9116 -> 0 bytes .../3d_armor/textures/character_preview.png | Bin 349 -> 0 bytes .../textures/inventory_plus_armor.png | Bin 571 -> 0 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 1628 -> 0 bytes .../models/3d_armor_stand_locked.png | Bin 1992 -> 0 bytes .../textures/3d_armor_stand_feet.png | Bin 160 -> 0 bytes .../textures/3d_armor_stand_head.png | Bin 164 -> 0 bytes .../textures/3d_armor_stand_legs.png | Bin 159 -> 0 bytes .../textures/3d_armor_stand_shield.png | Bin 166 -> 0 bytes .../textures/3d_armor_stand_torso.png | Bin 191 -> 0 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 66964 -> 0 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 277 -> 0 bytes .../textures/shields_inv_shield_bronze.png | Bin 264 -> 0 bytes .../textures/shields_inv_shield_cactus.png | Bin 190 -> 0 bytes .../textures/shields_inv_shield_crystal.png | Bin 274 -> 0 bytes .../textures/shields_inv_shield_diamond.png | Bin 281 -> 0 bytes .../shields_inv_shield_enhanced_cactus.png | Bin 211 -> 0 bytes .../shields_inv_shield_enhanced_wood.png | Bin 263 -> 0 bytes .../textures/shields_inv_shield_gold.png | Bin 263 -> 0 bytes .../textures/shields_inv_shield_mithril.png | Bin 261 -> 0 bytes .../textures/shields_inv_shield_steel.png | Bin 260 -> 0 bytes .../textures/shields_inv_shield_wood.png | Bin 210 -> 0 bytes .../shields/textures/shields_shield_admin.png | Bin 344 -> 0 bytes .../textures/shields_shield_admin_preview.png | Bin 345 -> 0 bytes .../textures/shields_shield_bronze.png | Bin 320 -> 0 bytes .../shields_shield_bronze_preview.png | Bin 325 -> 0 bytes .../textures/shields_shield_cactus.png | Bin 238 -> 0 bytes .../shields_shield_cactus_preview.png | Bin 320 -> 0 bytes .../textures/shields_shield_crystal.png | Bin 343 -> 0 bytes .../shields_shield_crystal_preview.png | Bin 346 -> 0 bytes .../textures/shields_shield_diamond.png | Bin 347 -> 0 bytes .../shields_shield_diamond_preview.png | Bin 349 -> 0 bytes .../shields_shield_enhanced_cactus.png | Bin 261 -> 0 bytes ...shields_shield_enhanced_cactus_preview.png | Bin 265 -> 0 bytes .../textures/shields_shield_enhanced_wood.png | Bin 311 -> 0 bytes .../shields_shield_enhanced_wood_preview.png | Bin 318 -> 0 bytes .../shields/textures/shields_shield_gold.png | Bin 324 -> 0 bytes .../textures/shields_shield_gold_preview.png | Bin 327 -> 0 bytes .../textures/shields_shield_mithril.png | Bin 324 -> 0 bytes .../shields_shield_mithril_preview.png | Bin 328 -> 0 bytes .../shields/textures/shields_shield_steel.png | Bin 322 -> 0 bytes .../textures/shields_shield_steel_preview.png | Bin 317 -> 0 bytes .../shields/textures/shields_shield_wood.png | Bin 262 -> 0 bytes .../textures/shields_shield_wood_preview.png | Bin 270 -> 0 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 | 9 +- autobahn/init.lua | 17 +- techage/README.md | 32 +- techage/doc/items.lua | 1 + techage/doc/manual_DE.lua | 12 +- techage/doc/manual_EN.lua | 13 +- techage/init.lua | 1 + techage/items/cement.lua | 3 +- techage/lamps/growlight.lua | 6 +- techage/liquids/liquid_pipe.lua | 6 +- techage/liquids/valve.lua | 204 +++++++ techage/logic/doorblock.lua | 41 +- techage/logic/gateblock.lua | 12 +- techage/manuals/manual_ta3_DE.md | 7 + techage/manuals/manual_ta3_EN.md | 8 + techage/manuals/manual_ta4_DE.md | 4 +- techage/manuals/manual_ta4_EN.md | 5 +- techage/manuals/toc_DE.md | 1 + techage/manuals/toc_EN.md | 1 + techage/sounds/techage_valve.ogg | Bin 0 -> 7074 bytes .../textures/techage_gaspipe_valve_closed.png | Bin 0 -> 254 bytes .../textures/techage_gaspipe_valve_hole.png | Bin 0 -> 274 bytes .../textures/techage_gaspipe_valve_open.png | Bin 0 -> 252 bytes 248 files changed, 345 insertions(+), 6298 deletions(-) delete mode 100644 3d_armor/.github/workflows/integration-test.yml delete mode 100644 3d_armor/.github/workflows/luacheck.yml delete mode 100644 3d_armor/.luacheckrc delete mode 100644 3d_armor/3d_armor/LICENSE.txt delete mode 100644 3d_armor/3d_armor/README.txt delete mode 100644 3d_armor/3d_armor/api.lua delete mode 100644 3d_armor/3d_armor/armor.conf.example delete mode 100644 3d_armor/3d_armor/armor.lua delete mode 100644 3d_armor/3d_armor/crafting_guide.txt delete mode 100644 3d_armor/3d_armor/depends.txt delete mode 100644 3d_armor/3d_armor/description.txt delete mode 100644 3d_armor/3d_armor/init.lua delete mode 100644 3d_armor/3d_armor/integration_test.lua delete mode 100644 3d_armor/3d_armor/intllib.lua delete mode 100644 3d_armor/3d_armor/locale/es.po delete mode 100644 3d_armor/3d_armor/locale/fr.po delete mode 100644 3d_armor/3d_armor/locale/it.po delete mode 100644 3d_armor/3d_armor/locale/ms.po delete mode 100644 3d_armor/3d_armor/locale/pt.po delete mode 100644 3d_armor/3d_armor/locale/pt_BR.po delete mode 100644 3d_armor/3d_armor/locale/ru.po delete mode 100644 3d_armor/3d_armor/locale/template.pot delete mode 100644 3d_armor/3d_armor/mod.conf delete mode 100644 3d_armor/3d_armor/models/3d_armor_character.b3d delete mode 100644 3d_armor/3d_armor/models/3d_armor_character.blend delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_admin.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_admin_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_bronze.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_bronze_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_cactus.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_crystal.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_diamond.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_diamond_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_gold.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_gold_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_mithril.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_mithril_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_steel.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_steel_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_wood.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_boots_wood_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_bronze.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_bronze_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_diamond_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_gold.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_gold_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_mithril_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_steel_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_chestplate_wood_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_admin.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_admin_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_bronze_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_diamond.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_diamond_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_gold.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_gold_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_mithril_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_steel.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_steel_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_wood.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_helmet_wood_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_admin.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_bronze.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_diamond.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_gold.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_mithril.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_steel.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_boots_wood.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_admin.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_bronze.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_diamond.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_gold.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mithril.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_steel.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_chestplate_wood.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_admin.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_bronze.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_diamond.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_gold.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_mithril.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_steel.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_helmet_wood.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_admin.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_bronze.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_diamond.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_gold.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_mithril.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_steel.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_inv_leggings_wood.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_admin.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_bronze.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_bronze_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_diamond_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_gold.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_gold_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_mithril_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_steel.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_steel_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_wood.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_leggings_wood_preview.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_trans.png delete mode 100644 3d_armor/3d_armor/textures/3d_armor_ui_form.png delete mode 100644 3d_armor/3d_armor/textures/character_preview.png delete mode 100644 3d_armor/3d_armor/textures/inventory_plus_armor.png delete mode 100644 3d_armor/3d_armor/textures/preview_index.txt delete mode 100644 3d_armor/3d_armor/tools/README.md delete mode 100755 3d_armor/3d_armor/tools/updatepo.sh delete mode 100644 3d_armor/3d_armor_ip/LICENSE.txt delete mode 100644 3d_armor/3d_armor_ip/depends.txt delete mode 100644 3d_armor/3d_armor_ip/description.txt delete mode 100644 3d_armor/3d_armor_ip/init.lua delete mode 100644 3d_armor/3d_armor_ip/mod.conf delete mode 100644 3d_armor/3d_armor_sfinv/LICENSE.txt delete mode 100644 3d_armor/3d_armor_sfinv/depends.txt delete mode 100644 3d_armor/3d_armor_sfinv/description.txt delete mode 100644 3d_armor/3d_armor_sfinv/init.lua delete mode 100644 3d_armor/3d_armor_sfinv/mod.conf delete mode 100644 3d_armor/3d_armor_stand/LICENSE.txt delete mode 100644 3d_armor/3d_armor_stand/README.txt delete mode 100644 3d_armor/3d_armor_stand/depends.txt delete mode 100644 3d_armor/3d_armor_stand/init.lua delete mode 100644 3d_armor/3d_armor_stand/mod.conf delete mode 100644 3d_armor/3d_armor_stand/models/3d_armor_entity.obj delete mode 100644 3d_armor/3d_armor_stand/models/3d_armor_stand.obj delete mode 100644 3d_armor/3d_armor_stand/models/3d_armor_stand.png delete mode 100644 3d_armor/3d_armor_stand/models/3d_armor_stand_locked.png delete mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png delete mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png delete mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png delete mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_shield.png delete mode 100644 3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png delete mode 100644 3d_armor/3d_armor_ui/LICENSE.txt delete mode 100644 3d_armor/3d_armor_ui/depends.txt delete mode 100644 3d_armor/3d_armor_ui/description.txt delete mode 100644 3d_armor/3d_armor_ui/init.lua delete mode 100644 3d_armor/3d_armor_ui/mod.conf delete mode 100644 3d_armor/LICENSE.md delete mode 100644 3d_armor/README.md delete mode 100644 3d_armor/description.txt delete mode 100755 3d_armor/integration-test.sh delete mode 100644 3d_armor/modpack.conf delete mode 100755 3d_armor/preview_gen.py delete mode 100644 3d_armor/screenshot.png delete mode 100644 3d_armor/settingtypes.txt delete mode 100644 3d_armor/shields/LICENSE.txt delete mode 100644 3d_armor/shields/README.txt delete mode 100644 3d_armor/shields/crafting_guide.txt delete mode 100644 3d_armor/shields/depends.txt delete mode 100644 3d_armor/shields/description.txt delete mode 100644 3d_armor/shields/init.lua delete mode 100644 3d_armor/shields/mod.conf delete mode 100644 3d_armor/shields/textures/preview_index.txt delete mode 100644 3d_armor/shields/textures/shields_inv_shield_admin.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_bronze.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_cactus.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_crystal.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_diamond.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_enhanced_wood.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_gold.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_mithril.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_steel.png delete mode 100644 3d_armor/shields/textures/shields_inv_shield_wood.png delete mode 100644 3d_armor/shields/textures/shields_shield_admin.png delete mode 100644 3d_armor/shields/textures/shields_shield_admin_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_bronze.png delete mode 100644 3d_armor/shields/textures/shields_shield_bronze_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_cactus.png delete mode 100644 3d_armor/shields/textures/shields_shield_cactus_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_crystal.png delete mode 100644 3d_armor/shields/textures/shields_shield_crystal_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_diamond.png delete mode 100644 3d_armor/shields/textures/shields_shield_diamond_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_enhanced_cactus.png delete mode 100644 3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_enhanced_wood.png delete mode 100644 3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_gold.png delete mode 100644 3d_armor/shields/textures/shields_shield_gold_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_mithril.png delete mode 100644 3d_armor/shields/textures/shields_shield_mithril_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_steel.png delete mode 100644 3d_armor/shields/textures/shields_shield_steel_preview.png delete mode 100644 3d_armor/shields/textures/shields_shield_wood.png delete mode 100644 3d_armor/shields/textures/shields_shield_wood_preview.png delete mode 100644 3d_armor/wieldview/LICENSE.txt delete mode 100644 3d_armor/wieldview/README.txt delete mode 100644 3d_armor/wieldview/depends.txt delete mode 100644 3d_armor/wieldview/description.txt delete mode 100644 3d_armor/wieldview/init.lua delete mode 100644 3d_armor/wieldview/mod.conf delete mode 100644 3d_armor/wieldview/transform.lua create mode 100644 techage/liquids/valve.lua create mode 100644 techage/sounds/techage_valve.ogg create mode 100644 techage/textures/techage_gaspipe_valve_closed.png create mode 100644 techage/textures/techage_gaspipe_valve_hole.png create mode 100644 techage/textures/techage_gaspipe_valve_open.png diff --git a/3d_armor/.github/workflows/integration-test.yml b/3d_armor/.github/workflows/integration-test.yml deleted file mode 100644 index 1eeaa6a..0000000 --- a/3d_armor/.github/workflows/integration-test.yml +++ /dev/null @@ -1,14 +0,0 @@ -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 deleted file mode 100644 index a03fe92..0000000 --- a/3d_armor/.github/workflows/luacheck.yml +++ /dev/null @@ -1,17 +0,0 @@ -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 deleted file mode 100644 index b01ed8e..0000000 --- a/3d_armor/.luacheckrc +++ /dev/null @@ -1,34 +0,0 @@ - -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 deleted file mode 100644 index f253f29..0000000 --- a/3d_armor/3d_armor/LICENSE.txt +++ /dev/null @@ -1,26 +0,0 @@ -[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 deleted file mode 100644 index 7dbe82d..0000000 --- a/3d_armor/3d_armor/README.txt +++ /dev/null @@ -1,191 +0,0 @@ -[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 deleted file mode 100644 index 6aae7d2..0000000 --- a/3d_armor/3d_armor/api.lua +++ /dev/null @@ -1,542 +0,0 @@ --- 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 deleted file mode 100644 index 9ce34b4..0000000 --- a/3d_armor/3d_armor/armor.conf.example +++ /dev/null @@ -1,65 +0,0 @@ --- 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 deleted file mode 100644 index 171ce03..0000000 --- a/3d_armor/3d_armor/armor.lua +++ /dev/null @@ -1,372 +0,0 @@ --- 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 deleted file mode 100644 index abd1519..0000000 --- a/3d_armor/3d_armor/crafting_guide.txt +++ /dev/null @@ -1,79 +0,0 @@ -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 deleted file mode 100644 index a33755d..0000000 --- a/3d_armor/3d_armor/depends.txt +++ /dev/null @@ -1,8 +0,0 @@ -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 deleted file mode 100644 index b0a9b0a..0000000 --- a/3d_armor/3d_armor/description.txt +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index e83bc10..0000000 --- a/3d_armor/3d_armor/init.lua +++ /dev/null @@ -1,493 +0,0 @@ -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 deleted file mode 100644 index 65e9dfd..0000000 --- a/3d_armor/3d_armor/integration_test.lua +++ /dev/null @@ -1,25 +0,0 @@ - -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 deleted file mode 100644 index 6669d72..0000000 --- a/3d_armor/3d_armor/intllib.lua +++ /dev/null @@ -1,45 +0,0 @@ - --- 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 deleted file mode 100644 index 8eeaf6e..0000000 --- a/3d_armor/3d_armor/locale/es.po +++ /dev/null @@ -1,384 +0,0 @@ -# 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 deleted file mode 100644 index f2d258f..0000000 --- a/3d_armor/3d_armor/locale/fr.po +++ /dev/null @@ -1,295 +0,0 @@ -# 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 deleted file mode 100644 index 5d6f46b..0000000 --- a/3d_armor/3d_armor/locale/it.po +++ /dev/null @@ -1,295 +0,0 @@ -# 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 deleted file mode 100644 index 518e438..0000000 --- a/3d_armor/3d_armor/locale/ms.po +++ /dev/null @@ -1,296 +0,0 @@ -# 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 deleted file mode 100644 index 0166637..0000000 --- a/3d_armor/3d_armor/locale/pt.po +++ /dev/null @@ -1,295 +0,0 @@ -# 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 deleted file mode 100644 index b429d11..0000000 --- a/3d_armor/3d_armor/locale/pt_BR.po +++ /dev/null @@ -1,295 +0,0 @@ -# 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 deleted file mode 100644 index 4beee8a..0000000 --- a/3d_armor/3d_armor/locale/ru.po +++ /dev/null @@ -1,294 +0,0 @@ -# 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 deleted file mode 100644 index 0b0222c..0000000 --- a/3d_armor/3d_armor/locale/template.pot +++ /dev/null @@ -1,294 +0,0 @@ -# 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 deleted file mode 100644 index 56f7973..0000000 --- a/3d_armor/3d_armor/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index c4d45b50e371fd8030dec685c001809526ea1b87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_admin.png b/3d_armor/3d_armor/textures/3d_armor_boots_admin.png deleted file mode 100644 index 833f6b71cd55ce00e5f184094dffc147a0dce9c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 2487a7ea08d77637bab4f6bc72d65ddf0b6daffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_cactus.png b/3d_armor/3d_armor/textures/3d_armor_boots_cactus.png deleted file mode 100644 index 350b065b211d1f94f1db78cd3501320a1812783c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_crystal.png b/3d_armor/3d_armor/textures/3d_armor_boots_crystal.png deleted file mode 100644 index 31c06b5861dcac2d934ed75c0d7d40b7c4ace012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 01a6bfafcb883894a63a52a47e14fc9b7517fd48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_diamond.png b/3d_armor/3d_armor/textures/3d_armor_boots_diamond.png deleted file mode 100644 index 187035962c6af2312a5eed1c4fa6451918d333eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_mithril.png b/3d_armor/3d_armor/textures/3d_armor_boots_mithril.png deleted file mode 100644 index af7b9439b7e79cf2e8bc79798c57c8eb7f576674..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 1ebf92a050fbbeda0ab4984d131285e2d91ea106..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 968ffc5be36df37cc81d0b02713d84871326b1f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_boots_wood.png b/3d_armor/3d_armor/textures/3d_armor_boots_wood.png deleted file mode 100644 index e62bdc5f42f218f1e35020430cab8663c3394b29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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%^| 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 deleted file mode 100644 index de841b01960e9d41801e3f794675f7158e46cae2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVsSTbkjv*QM-d Sa!&!>&fw|l=d#Wzp$Py+3RTGf diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png deleted file mode 100644 index d8df83df1016ec5641a86937db6f63e64a676d23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 1bb10fd3d88a9df40dcac8dde2c0486c738dcf0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index b166c7cf4f4088f9264a8d061c1fb4483216fb17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png deleted file mode 100644 index 4a268f4d595240e4b6175f3af9cc522d876cbe9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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> diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_diamond.png deleted file mode 100644 index f61e28f629b32f2dca99fd7477545bacf5bab60a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 9ec9971232e8a69c9ca544fba972a56556fcaa65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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^ diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_mithril.png deleted file mode 100644 index aa06d189980608b7c1536629ba43915c477f7c25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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* diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_steel.png deleted file mode 100644 index cc6d57094cfe1de71877414a64b89563426cc920..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 385 zcmV-{0e=38P)PA~E|zV!!k}ipzjf=~c{b-_9QCID!mK&_BB=3hL3vF~-Q f*!O*^e@*}&5KNB1E}#&o00000NkvXXu0mjfLbIU+ 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 deleted file mode 100644 index 162ce4b9763e89d7e964c3bceeb3a519a83086ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png b/3d_armor/3d_armor/textures/3d_armor_chestplate_wood.png deleted file mode 100644 index 2db95ce231ebfb338549b88de1badfcd106b9aef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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* diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png b/3d_armor/3d_armor/textures/3d_armor_helmet_bronze.png deleted file mode 100644 index 17b87c9af398125f47b4a4252db61c05751d984e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 7e750cca89b2de97bc668d9ef2085e312148bec9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 936fa669bed0bf5dd9c91a081b5b023106fccc7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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( diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_gold.png b/3d_armor/3d_armor/textures/3d_armor_helmet_gold.png deleted file mode 100644 index 3a51908cf07a0d3a3872bf7386ea2f0542d8950a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index fb3ba0e9a4ab875911b1aff7a4cff4d9eff41a8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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|^$ diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png b/3d_armor/3d_armor/textures/3d_armor_helmet_mithril.png deleted file mode 100644 index 2e9caef98cd3e28179670de82ff9dc3e5c65c6b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 91e7c185226ab624f9641795e100145409886232..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_steel.png b/3d_armor/3d_armor/textures/3d_armor_helmet_steel.png deleted file mode 100644 index f3c4a39518cad394cf697221a7ade4914792960f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_helmet_wood.png b/3d_armor/3d_armor/textures/3d_armor_helmet_wood.png deleted file mode 100644 index 8bda21c7fb8a00e80c160685e3118f4d61ee530a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 1b013957fa563bd7459646aeede9b25fb92150b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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% 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 deleted file mode 100644 index 43e6b14b4f98882369273e93203c9c43afd6f6a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 170f0d9b303e5655c3600bbbfbeaaf3e2cd82f02..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index a5e7863085a061f199904b5bee6c16261129298e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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{ 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 deleted file mode 100644 index ca315dfce39db75c787fe7ccf3b4b0df48b4f3bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 46742a1cd1ec3b135be47b6d92793f68a2adc6ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 258 zcmV+d0sa1oP)!X<}I|#MfQy*p+Lxfje%(}OaMKfSLI?LZ89R?x4ehP%$P05xIV!Ipxe(g zOMp4ZcYyALfY}7@KdA!B1kHfe`D7CKBuxN*rc#770hR 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 deleted file mode 100644 index bdbea82b2234066208e37098f3541d227932c9bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 434f1bc3191b0ac401c01e0774d3ec9da02f6cf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index f5f2fa67c6c08a7205af2f7106e072ea7046680b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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@ 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 deleted file mode 100644 index 850991c6211995089e490f9a5c33d6d050f71488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 5414f9a2e54497b6a54784014db9a0c6ee3770b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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?_* 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 deleted file mode 100644 index 8197b01bbf70a4bbb78e4c31d14a98e250a3f95f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 9dac33bebbd840d8c48d959641b8a13296fd5bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 5aeccb588d6beda200114dc6efff9113e400c590..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index c46cdd9258a31ccd88aa5ca741ac0d90e33ed721..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_admin.png b/3d_armor/3d_armor/textures/3d_armor_leggings_admin.png deleted file mode 100644 index 1f7207d0d8a5b050c2fba0621c99e5de3c3a11a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 95c973a44492b3248ce3568e900019c5d28229c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png b/3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png deleted file mode 100644 index 537adcbfac3489ee91de0531fa6f418e014466fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 09f848e99bf3e801a217fd20210c9a308dd9caa5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png b/3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png deleted file mode 100644 index 6bf702f76a7fd2f132ae897becb2412d6b97c38b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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)_ 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 deleted file mode 100644 index 96a11bf72c3a7f6446cd2852be1cb51106d0f514..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png b/3d_armor/3d_armor/textures/3d_armor_leggings_diamond.png deleted file mode 100644 index df3cf162dcc69473694fb11378db7f069aa3ff32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 1bb32956dd4781fd28904cf7056f949e01d420bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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; diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png b/3d_armor/3d_armor/textures/3d_armor_leggings_mithril.png deleted file mode 100644 index 9fc78fb5104c9aa2c91753f0636176a52d30e600..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index dde7b3deadb9794d4a2eaf1f1268e77e508e61ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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- diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_steel.png b/3d_armor/3d_armor/textures/3d_armor_leggings_steel.png deleted file mode 100644 index 974cb5d8ee6740e6645e60cf1cabb075afcf32b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/3d_armor_leggings_wood.png b/3d_armor/3d_armor/textures/3d_armor_leggings_wood.png deleted file mode 100644 index 96081449832f68efb5d438d6ea0e21fad7f44c7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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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 diff --git a/3d_armor/3d_armor/textures/inventory_plus_armor.png b/3d_armor/3d_armor/textures/inventory_plus_armor.png deleted file mode 100644 index 7f7d63e55aa33b25f5324baed0d6dfd3259e5c6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/3d_armor/textures/preview_index.txt b/3d_armor/3d_armor/textures/preview_index.txt deleted file mode 100644 index 9e2fe9d..0000000 --- a/3d_armor/3d_armor/textures/preview_index.txt +++ /dev/null @@ -1,44 +0,0 @@ -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 deleted file mode 100644 index 6aa7ffe..0000000 --- a/3d_armor/3d_armor/tools/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 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 deleted file mode 100755 index 52de990..0000000 --- a/3d_armor/3d_armor/tools/updatepo.sh +++ /dev/null @@ -1,24 +0,0 @@ -#! /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 deleted file mode 100644 index b924ac0..0000000 --- a/3d_armor/3d_armor_ip/LICENSE.txt +++ /dev/null @@ -1,18 +0,0 @@ -[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 deleted file mode 100644 index e96293b..0000000 --- a/3d_armor/3d_armor_ip/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -3d_armor -inventory_plus? diff --git a/3d_armor/3d_armor_ip/description.txt b/3d_armor/3d_armor_ip/description.txt deleted file mode 100644 index 58b700e..0000000 --- a/3d_armor/3d_armor_ip/description.txt +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 7701a70..0000000 --- a/3d_armor/3d_armor_ip/init.lua +++ /dev/null @@ -1,38 +0,0 @@ --- 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 deleted file mode 100644 index 0fe7f4e..0000000 --- a/3d_armor/3d_armor_ip/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index 2b2a9f6..0000000 --- a/3d_armor/3d_armor_sfinv/LICENSE.txt +++ /dev/null @@ -1,18 +0,0 @@ -[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 deleted file mode 100644 index c7beeda..0000000 --- a/3d_armor/3d_armor_sfinv/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -3d_armor -sfinv? diff --git a/3d_armor/3d_armor_sfinv/description.txt b/3d_armor/3d_armor_sfinv/description.txt deleted file mode 100644 index 15f4e96..0000000 --- a/3d_armor/3d_armor_sfinv/description.txt +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index a937127..0000000 --- a/3d_armor/3d_armor_sfinv/init.lua +++ /dev/null @@ -1,21 +0,0 @@ --- 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 deleted file mode 100644 index bc0eb89..0000000 --- a/3d_armor/3d_armor_sfinv/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index e3cb55d..0000000 --- a/3d_armor/3d_armor_stand/LICENSE.txt +++ /dev/null @@ -1,43 +0,0 @@ -[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 deleted file mode 100644 index 6a98ab9..0000000 --- a/3d_armor/3d_armor_stand/README.txt +++ /dev/null @@ -1,21 +0,0 @@ -[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 deleted file mode 100644 index fdbb290..0000000 --- a/3d_armor/3d_armor_stand/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -3d_armor - diff --git a/3d_armor/3d_armor_stand/init.lua b/3d_armor/3d_armor_stand/init.lua deleted file mode 100644 index ab4549b..0000000 --- a/3d_armor/3d_armor_stand/init.lua +++ /dev/null @@ -1,353 +0,0 @@ --- 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 deleted file mode 100644 index d1f1a4e..0000000 --- a/3d_armor/3d_armor_stand/mod.conf +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index 052f692..0000000 --- a/3d_armor/3d_armor_stand/models/3d_armor_entity.obj +++ /dev/null @@ -1,193 +0,0 @@ -# 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 deleted file mode 100644 index 0df6dc7..0000000 --- a/3d_armor/3d_armor_stand/models/3d_armor_stand.obj +++ /dev/null @@ -1,280 +0,0 @@ -# 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 deleted file mode 100644 index aeb26de9d803bcbf7890390ccbcee527361cfe1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 6b34d666170181f0151c150d0ac5ecc73ac56e55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 864bf5cfc1e1fa34f5d4670e033b4574db5bb918..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 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 deleted file mode 100644 index 5441f0c47ef55360a5503a5828083a1e7b4276d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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)- 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 deleted file mode 100644 index 1856baea87c8c740711c5003cd8af1612e78660d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 deleted file mode 100644 index cf4ccf9..0000000 --- a/3d_armor/3d_armor_ui/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -3d_armor -unified_inventory? diff --git a/3d_armor/3d_armor_ui/description.txt b/3d_armor/3d_armor_ui/description.txt deleted file mode 100644 index e6bf11c..0000000 --- a/3d_armor/3d_armor_ui/description.txt +++ /dev/null @@ -1 +0,0 @@ -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 deleted file mode 100644 index 41eec7b..0000000 --- a/3d_armor/3d_armor_ui/init.lua +++ /dev/null @@ -1,53 +0,0 @@ --- 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 deleted file mode 100644 index 68eff85..0000000 --- a/3d_armor/3d_armor_ui/mod.conf +++ /dev/null @@ -1,4 +0,0 @@ -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 deleted file mode 100644 index f7793ff..0000000 --- a/3d_armor/LICENSE.md +++ /dev/null @@ -1,10 +0,0 @@ -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 deleted file mode 100644 index 7bfefc0..0000000 --- a/3d_armor/README.md +++ /dev/null @@ -1,72 +0,0 @@ -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 deleted file mode 100644 index 2da5ba4..0000000 --- a/3d_armor/description.txt +++ /dev/null @@ -1 +0,0 @@ -Visible player armor & wielded items. diff --git a/3d_armor/integration-test.sh b/3d_armor/integration-test.sh deleted file mode 100755 index 9169144..0000000 --- a/3d_armor/integration-test.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/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 deleted file mode 100644 index 7ba907c..0000000 --- a/3d_armor/modpack.conf +++ /dev/null @@ -1,5 +0,0 @@ -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 deleted file mode 100755 index a18954d..0000000 --- a/3d_armor/preview_gen.py +++ /dev/null @@ -1,81 +0,0 @@ -#!/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 deleted file mode 100644 index c1f9e5824ad93f7ac173e171f3359b6e804028ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66964 zcmY&gcQ{~iRY%QCXcs-bD!cqX(uJcEda0p z%5pL~UQ;^_-ao7q-Pimb_Y8DrO>|4%Hot(=64qiNd>k;@ z*~Fy%X%dmv3jh9 zR#R86m?mYM*q;!2IFXdCQ*d&fMjZ%yP@7`IF5IuW#XWq&k`0f{TXm7&7VBNDsLxA& zbt_VMAo*K(7BR6AAN1}0d&8KKcqH<5xhAQQZuyY1GK2eu9oN*mXcwoyI(rQV*{tac zig?KAt@GDqSNZu5w$C-2{PHuPBZLg;X(RbbR7@3*HP^m{CtR@j=SMQTYa>P`Hu5dQ zUS>8kb?t8B6!G$25i-&5%@3`*8lJJ$demwkad~n(k;-}+?oa6w$IGgBw&U`_WVSjgb`OD;ZA3Px; zYLir?&_C?%e_0ZYqzV}@zmW2w%m9aY-bZ%P4kJ(MH@Y4UZ};8%pcoaE2ffhLbjqKH zj<{(fbkBPI#^656|DsPVvlTK*7Jpr6zD-X0J*1!LO)B2*?)UCBN-N0!d5DHGK=e+L z@Z-~S0B8=wd`E;EMn%B>;N{MXYVI>Wwfv9;EMU;nAdHkaiP?nQ4}}e2;7c2mWqqN; zx{>s|*N7*#qEf^9V2NVYlNtV@Ev%OL?R_uKn+XU3iQhY-{)ZUa1SCWHFQ^P{mrKjO zwAf(*7HhJ^P5k(SQ`pT|TH4y$!x9KVLB7q?t{?6ff_?q`UBdcB1Kj&6>`?mpC#fQ; zCW>ymaxW1Q*aZc}Fgdvdf^2TVKMRTdskvps2zx;xl$9+Gl4?XqE#$0buo}iHG21h- zQJ(`VeW%i5C(iuqo6B^T@tXT}ewRY$een*@+FR4FD{)<-El6)e(1=o6eqi8v0QGzuM+WeZK5v z8ZRtNvb)diiNR=6X>5Qj0ARtr@c6IGA&0y9EwpO&O+i=xi{F2LwL8vx-k5fZXfAzc zocvG}t8ANdD&f|3Jx7sXyCgI^gydDTMzOJqyAArQ^(GXKKvlnd**R@Mr={?5z2ouq zXIEo~yFh+RK8MJsglZy+TSxwuPP_|%o(w56%YMT(vj3n`vlRlw3|7Ee|D2KSX2HKFxMn>K@m}Imf zU!!=~v#@}xwl8TIK#;Uh3?9BSKvBi;9+&%{R`+4GvB-8WBs{3>W#+=An02r?-_J*^ zDQVx0HY@c>)HQ~V%SwB;3nmX>SuL(Gro8tJDlKa`!7 z-Q|uVM6$;m4i+` zJmT5BQ-ct-Rr1+S)5r?aUF&SeDim%4RAEnO`rlglzWfrMwzHS!C-gs3UOd+S#H_iF z1kY_r3D=EY@PmQGiuI35wQtNioa$UyWXo5n^qMnBPcA&xyz)eB?<1#0aLJn=F+Vv% zbXeH*bH|&6tqttkAs=Zq4_1 z2&QWbtKcXl9G0|j-dcWA00^kM-7zSCh!2kF&9&nQRx}JFyoWYmGuf`QN+ow`fn0rw`i26 z{_BnZnY4c2@+88nPFw^LhmR)ik@J|%s$+2S^W0|sm{cQH>_yo8b1<6px*08ry9g?Z z;K4cgs4zVMZ74e}#~)pMW6V@RQm|FM_MWvUd{{9jno2V?#xPkO$jtDKd9&@rP^n3eNrb~Duajk4}NJsR3op;db! zUL`*j!71x!1IzOFJS$QZ3_x_ZMp4<(i$FqB=&!f!$TWEvqo3WD&YzoHtSA%4!Six3 zX$_=!wq@P7*@xUloOzG4d`#heivPky^jI@IbrH|egP9K>t1WQuUw)gXR)3MHazD(B zT%HYYWo=rLn|(oX{xUEs{NOkP%HFUk+C-vyN2Y-TfnS71oFwCmKZiFLb4)kA6;_*j`mOeDsB zVvy4=tWv%2NhaRJ#ngA-4amj93G3>r+{OM5WL~s;altsrsTY}{?_X-|F#ZBrJ;)Iw zx!||}qlgZ|4V&57jubvtVx(a;mP;x?WYlLtMt5(WrO73CXM!VjqQUc4-tFX&x#sly zY{$%I=>XppqPW-YJsU-z2z0=RQB59^-2beR!ZOySf=FOf8J};P*ak3OEUhI{ph9NP7K~g^S`8J z2P`ry9h<5nRwWwT-B=k$hQW)8&F{x7N;H|sm~3RkqhTFIjhMWR_RX?3nOx-C?s~TkBrB|d={nZF1B`hKG%)+IAy1OCPm3=n1z||PDLzg-pw9(miEG%f;E7~ zSw#_lm-c%Dnm?b(>bzS^Y&+z&I;3sqa`DGv=7wjZ? zE@W~WbnLr#c9}7)G4FS<2}7?|7%Z;y1Jb|ZRoFE`|D$McJEv-n`|&bpJTMK&|HLp$ zGL+g9q8{s8){!({{x^u1MB@g0naMv97HpK}zkMd5`(|C8{Eh zBL319Ja2nK6WN-YcunAPO*pWBPVfwM(q={C6a-MOp1=k1P0Y*|o#_wx5YT-7I8I7}d@-4I&L8{gwr*kkm2KXxc?Cdu(Vc z!V9em1+L@oKVq(bSMF8oXi;iqnGO!EP=Gk^wcpbEszGwZb9EHzI0R(zjrF^~o z^zHwcFd&C9DN_9E{Yx(_vN-XM`H+y44adU1jE(Jy+=Q%00R=5E3_zMLeSigAWS3n% zx+dP`uziRD>8>lili&6B^dx`PLYsLO`D8MQ9ItiCD|%Cr)NSuZ^!|;a2U?fbF{w7g zH)G>fX#GZEQZ;n$Pn&mCWo4z-`jf;JUQ=R9l%dv3TFK>_G8Gmasd0XtFOt8e{`Nq8KHNb=fcv*R$V3XKkH z|18ke$R^dSj1}pb6M(*gAv4=ce;)-|l+n4aFrpt;xsIDEM5!Ux#n{>(U(xqOTA3n?ck9}|OcO9qDHXLku$mc9P8$s4JegV4-o= zPdKI5FvUM`p6_Th=05NX=Sn;Ft6fP8IEmkASC(sFL7`osZu`{>A^(Z9^uk1N^k2#X zU?noCF>l|}I_&*_TMm%1RWR;oI?U&>dbTOs_OTh-f0d{*bQOKbnbgm{8VIVI&f-IxLh=Cz_PuxY4?|zG6w^5ZF9Az@mPM?K1W#0)u~4@LtzlbXI4FK?fVQ({{4y@?G;&CS}%wo-}}S%t@}fQoiEF5?Zpd< z%|vvRX!3?4L5v4WV_Y)yZ`rby!p-MoC0rJ86#mQ%DBAxF2(YBw#JGhoeK7oASKuIl zQ?HXO09(H1{prPfDU4aYB%D{%^!>4c<2RXIgn;*0( z-+h=bj7={uQMIlF1IB!c;{BwPx?;r9iLQ*6LMGNHLTo7ecd`3Mh~iL(!i~*@JaM0` zDK5AzQUN_CNLhRbAuEbTlD|nI8RDoMPHR4U$@of*^Vgoeb&;g~c3YcCq$pL5S@CXS z^vJLvWg1N8QiGKhnP*!gK0ogIG5tkche*%Gj*9!0?M`FB)k=GEW0dcKgqds?)6-XO z6(I8iSb}zXQM7&&iidIuN_Z?1{PiFsSw6zNlSqN*_`W}6ayF~6((?~dSQz1|KTtj_ z{N(>zM}Yv0@W+l&oECw{|5YropDwG^W1}=R&x9}l1Vd?+D@rP{ITaFLe#r}!cNF+ZqPhE<` z%kNY@7t@*UL#WI&|Inc@8f;nTpp#6QL{DmFo^2^SQw{!|$_M7&o-Lo&j=eSZC5G59 zV8?&p+7j7x0qw%Iel9Liuu2nu$(1(JD?-Nlt95eNf07nZD)ZGIk3=)Oa#ie6uTDWX z9;2F^!&JV4A#l?z7f#`y1HoAUf`^%mKp z(pSsxNzYsnxSR)mdV98f^b$Bo>4bS<{^xLMlCmizN>daC&p`g=`|XxSv55V+`DdX_V{Sh&vf{D=WVA5 z)z~u%9xDy-zTwsKvB4VA&awOHlen_4JtbKePbx(@0&aFd7cPsl&kt}0*_EB2hRb&& zBE)JpX6BHI5GRD#Nw%fF6gIG6dcahzo>ptllW#A+IpJa9p?4`Rp8ovp2=a^igGs=E zT{>y^BbmGS=aM!Vw+wN{=U8QM+SBBrLBXZ;1rIasqXNCp4ihP&HA(?qZn*hK8BGu44^s>|bZ{QTg2U?i<%~FH0R{D>Mcq>6;(jvu3w&vd*D@U! z^8ee91?S~$Jk0MHUX%Y@*K_$9iGSLK%h$YF)U?S~4`;2IC)-o}B90_~qOXy}nQ9*`}%Ne&rMv9o0=0T?8LK0~SS3M~hq>Q{%S$U20XZvrw-*6w- z`fQzRY-|SlzdwK7bY(jbd>I~j2_3ybwUwR1OJQmIUq>I`8SDCgR(TF@B|P_QWj3)jz7dg9l4t1Xa8W&&c9|^Zy!Yin5$`~Y zqwI$>-nLRKsa}rk?Pe3Hl3zaD@Xd*hcji88pl3CZ+`IZaYP~c=Sg2((A|inr zDzNrFG|xZ{62^At5Qst=ej%csIl1v4gZd@vmp>g|`ea+SE#LOLq>h_|0W-aoH*Lbj zLp6xI-v-&qj=6`&m^*rhYy078Mp4$KQro93==FDpPoT>^!I?R(X4|@gj3aCyoe@w6 zM}K)zaF7YQ)}x*-M3GY8uE~lacx4~$Q&Wr-l<#II{g}*O26xC}dLrD?$i2i!{|sKT^%UOWNidI$jA>Bz#@f?m25W`7)iTbl(ucLo47y zEW>sE3abrD$tyUJq`e%k)Ui36t+lHhasTTOn&*G#HZdgp(U^UPNbodK2I+`OveSh| z9i(PM%5$eVejNm0*3!1JaNKw7Zmw2E*@0($Q;OfgnB@Up`g4qJ(3Oe)@#DvXw19zi zU~-h?ftrl}?niTR=fOZ^1}x2CYsxlW!aku#0vU+h?Upx_Djxrm3d5od0B)aOom(#b zBmv0mBJI|HRb`sI@>awn0RT5tdREo&A;v+5(o68`?+Ob5Y8n^?kdK$e1Mry(u+V3o z_Fg-OotbwD4zM&+eid!JK@Hf){7Fkxk%#Vv{0m|4tny#qw?3n0C!W%*X?&dQrr=|y zEkO;xwT;Y$<)M8Nd36h}6KQCZ&s2XqWoRRDlp)q-B{{YVZ!hZsl(E$bn;N8HSctcv z;KQli$(uE+-mCf`m`vgY%eC!e6w$BxFMb=Q=ZL{`1dBf$?DBWqboj~syH7szH?Qzv z4?w{#Hfv&H4gWv_n6ClY?{uJRVU)3_20Zsp`Yv*8qlPMf7TEIf`@gWw7Wau1La8BuUG0Bi>O32CIi$qH zpLjO8H>KnysctB5v`0UwcWP=7qvg;@-`maV{dl`ixRn$>@sErWd_@NXLE&$S%DTk{ znm;KV&3$_}!}Gt0@zeKkuxUbB1``;R26y&c0|+p)W-yapn32gi7h|FVfZKaOxD?L? zy(Y(~iZR7kx;VA=ZXThIBUzWFsOV_b4A-NP_(ZZ9!SZ`jp=k=NK_jl&kudEPpS6{f zl~_ciJPzcGi*oPe*Ls*NL5SIyf;+0u)rV&F#D0et&RuP0`n{d2h`R_rlmSz~-_d@T zt#G?)lH1pt=*f;I8vImvKKK(gv!U%BU3Y6dn)Vd{$kcVjowTB|zn|k-bPc{Xwd=UQ z5S;YPPvY?i0=v2SV%g8MB=~7FNm|fLY0l}uWff`Ld{2?TLxGP{bX6s!$2OWHT=4$7 zt$zzru(y>}hSKOXf!~)ehp{0Qgx7-o(Ak#*Sda=FZ^UJMzL$+gd3{&*+LVcUAVv@p z=o2kXQbYZ&WFZ+8bO$rbjva658BDVKnD<$39d7YnZ{9T=2zxOtFcy@T50y%Mv>bZX zA+1AEZvDnp#{d<>(3w}~QoQpDn@5nwE0Ys=TPQ(fM*21TKJc^T`MaIzYFd8GM%Q1M zWJ+ZIFYax)xL~BKyoOWcckl5s43d*4SjGK`JQDBT>t$zMbMY=YV-q*EHQV#nLH!D*u zG(AHJ8QBoHWB74haR%&TA7pq?G|q5U_$AQI3PeUy$~9_Yy5eLOJ%1YyG*SjMUvoAF z0KkhvCC!l9r2`BAYf}QR=DcWyw%Jpml5dMHpo`;gU*D_BY2MLD%ha8%L{>LF=mQ4E zghq9kvSey{>gcdCdrdfUgc9g7Id$?I$`jVI@0?iDaU&-uZsUx@o4+j? zlB_DcksK+hW*_YlIf79R#;j5AIiksLm&W!XqoPs!->05Sb!rG+i)Um{o%-Fx9nS|cA7Xzf z0kA0mfE7<~3#3x#1K|%TM~GF{iSO_t%P0n{1NS@TF3ZGHi(=&g17G0h(&k*PyA}A! zDlZS(frE6GqZ}~!<@B_pc1Ba-<*!MxU%!mG1<4by&P5z^|JieF*OKK{%(+kaUk__P z#Q18oE0l_oM#Rp!|Mgc>h7iZVaN)M{y^=M$?_HTT3hI{L@v%VUBNCpWvKBYNtsq0N zU^i+rB}5Pg^kOIpwVq%!a00CAHCp$qrPt*HzLMY(LrnIXlg)m3nrNu^3T$ytX~5e8 zx9u0iAB3++d<@#D*Q`lYU;h>fOG|t^BKUfqn`{3deeXhDUA4@Q^Z#Yj!WnrQv_ZrN z3q}`E^<&8Vf370d{QwqX*7t#grt|>t?&3A@vZs<$<0UpP?q%Qdl0@a?<6Ik?yt=*i zl5j2+Edx_i5Bs9=G&FVOfB~MIpgQ#z`GRHn_}+o`WW#=MZ5tDfejOg}Kg@72;&c}f z@fg*9iOEOK9q;o@8QRO+t952T)fXA_mZDAND@;DbKv*AA^c9u|gDERR-t&`zdCvcx z1*jQSm%o=U?qh?k>>=*sVp!or-!f&ZbH%wX(WXCV?SIE56M1g5$2_;TxQlXMYbeiy zva!4-p?hU(wat1y@cKf1w}R>C{$naaf0CA?pX1@FxU}c@yR$gS!u#5UmTmVzBZ3Lc z-^0u<1KNeu?t@bQlLDj%=L1aPjUFUNb+3pDpMt9e%EsmL(z+QDIpD{+k&68l16UAU zr3f`{^#rBJ&vxRlu(HK#dE0Crr5j1{S}>MZ*oByQ=*N-02&X5q?};^bch`es!Y@${ z5}uBp_NnRV36gLw8BINn$pn5?rVVAV3mrs0w4!;lrmbMz00*L)%Zl;`nKZ#EHG7fr zq^$x{((~OE+$wmU4C4D4wX)+HmItdi?M^uR+R9T61`KM8J3$juOmBQ7t-*NPJ(*W} z8-JF5)xRC@KIFO;@1AhPw=JQ&Q<*<#VA1Ru+UiNql;F-dFUHTaP2Z?J<^^S5C92Qij95x0*jppAd9nbY(Muo$hgCt^8qDn7R3y)wW)3wG254f zU>aXXzdJ2kt3YW#^=<4Q8XDRM(-eKxKO-XUZEnZ+P>-9b&z!s{_-R}71$Lb{UjJlK z#f`}yQZ$UtOa9y}ucra$g+2Gynv>*Znt)qj8a+py3`j0(%?Sp{jdPvc_bdObXQFf~W!FMKf5l#2B#Ra-kGnY1tX2G-IoC zLZpfl8F?S{PiPaa#K=xhHE3An;^X^N!f`7C?p{&~8ejlgJHap<)uiuuKl~wqz&(F^ z`SCI3wuy zKY@s$PqOOKx?=|O1q)Kg1ZJASCmC;#L1XD+xHSd$FtPIa2@kz9st4%@>85`q8o0JK z9X$ygv@>TT41P(Q{p1AMC2r@Z)^#jk23vVUx`u*4TfSYL6b{Bqz?OfXT9q+@AWYEU zY_WqAzWsa~4a^+yg69#u7FNEJ%~6INNNOIsHN8z(=b|D|S+)uszyA&sWuX2IY`fxg zq-pldnvL+VE!5%h_QBAMeU-V;_mh_WLd*xyBUG8*{fIDre9%ckOe{EV5F@@Wy=~y8 zs8MEOt1gfDoCXVNEgTU6%?CZx+B^eNR_~-+QVc>ERFMm}ZSjYMVf%y@*Mn*S!se6h zTAxya*i}4TjUiXp8`szV@W|T-*z?>))`N|4m1_KYGSMyu(Jpn``enSoC7xmve&)@& zb00v74;RLlmgeHs7^(SBwn48A)PdK8ARb(Cf+!kj=LO2fU1^MoHBgQ*k}21B<7fg= z(qWV*!!2GV*W}avN!^Dv=wh97bXsa^LT%JuWV|!7(s&f9ZH+Q;rjt;-Yhn$%?%Y z*bF38Q)9@#X9`}mZ^fZZkh(v@y?v10axuU%t*ptt4gDh_U-WbPx5Vt=@G(Ej%+WDu zj;QX>VgdwM0W|^UEo8;QBvPmM<$xHA^{Dha;_x!kO#3|O{9va$4xIgG>1q(H+gm-E zo__@Paj*wY`rO!UF>kc(Vd|gQIH8nd!3MZ{}PUYFenhjt<1k+$a=sp`< zZ4HAbAwGG-hSu2yaOOsBp+jux1q^Qh&~zs$So0?C0u$psl9M0iHx==sRHQrIpKrL$ zk!`v!aN)RZ9(aak9(Sw`;0}lgZlx2OzNb@w2nIzNrVlU_C7OE7Z43;qyfKLWI)9>s z_#D;(9>O4!BLjC7fKqnF1;~I8JfQsyn8yypW)Z+&pb2CC^nex6$pafKHbr$q@h~F* zY-(=MfZ-p0aiLQ_1)80Lo)15Pv;T4Q`fG`mM5WC|^I*C|LD9e4*v!D-Z8a$|@tHpu zB!#*_9%Bsr2a3502##qY2jQ$3&#t)cPin zwIs`e0)I}4e?o%arrdO11OD#$)N-S?l1dj|8LV{0HU(VB+8;}k=@odsPY$~WW zBy81Ncr>a)#~RQD4rM_C1AyT&mt#W(^)}W6npwb!fFu_m^c8TLoiO_WHhbKsL~t^5 z<+DZT!mGR4&(lTwVggX)^@7*C=ZX9xqr1;#Q7`rT$r3oz@Yvewg7)QFf(1c*g;Iu; z5_aS!8C!(r{!Yz9mu9hcF>ocMO_T0PElhY^O;WnN zNX(w5I_HN`UcTBy{s|nGkft&`{_fcTg zDUDi5ud$3a=cHAZEFv%65M}?q=LwyjEo>})#Eq-BZhX}uM02EI^D>i24XJQ0L%Zl# zP%5<=Wqn=Ha*izSPofywItl= z)uL|2IM)WuZ)3bgXPTfESjlIP53fmN@Y8UBW;rn|F9gt>L?RUWVINT50M#s#5{zM} z27YN#JiCth%!E;xC+NM?RKJ(>U|NnajQvNBiK8)7bq0YlpL1y|gL#Vbu%Mb_mr5+8 z(bSV8!zhNCJy~Jrm;)0f{l7>MC8EoX58Ng#XvMiM>Z^c6ABR? z?*+%*Qk-LIQ%au;H=NCJ6O1= zT$ZcmQn+dun6V)Q5sijiT}{tq_tIGNZ1e2yCz4uxrK?J9$w%Th2y94lZFsB^MMm8J zOBZjJ5lmVcZ64C~kDuk2Z~y`2Pa02J$2@Ykxs%Xs{6|?}&*r2ct`rp|zs=UG7gu?q z^CK7GudROfmDwdnmMmg<$!q`?WS@Zv)&P>=9o3q}H_gl>d-MB~HHT`HKeK>`%>j&9 z00Z_fO97S~^SZ?_BdSEzwW2pF#g3_+2$ zt5@v?`Nzb_+!}T`M{bs-(VxbPlgt1p;#xi;m zeKjYOP`Rw1=yUj~FSHHJc#hyQms$uR;=v>rAD>OtMbYaaJTqx?7Fgon+K6O7U?c23 z@hHm`h{o-Y&-INK1^%&zKW80gZPI`#_jKE=P`HO49SO>O10z4XqGH0ix%bXqgk%X` zbP9~P#ZL0`D}C&-sgUEP$F;b$)&u~l@YMZyR4PxSwmxY|zEo<#7N_ijMnBah&9(H2 zFkQ1#M~{=s8DD{ISfa@M{U1rssBbW^nOWx2U=S>FX|HR$&q3h%qJw(>&DIwEaIzLW zV2++${9c>(Jph{-XrzKtzT33@%lZQIyUY_iu5SXQI%&XPZT$re8E{KET0S!Y=S+Sl zEUUNuSWz#_+4``Q+0*%7#C(i`F&H%EqK@Nir!8;t;6;pRU7p$X5p_6H>&#wCqk6g4 zq|*O^ly660AJO$piwWa&mE+XXgcEf0hozB$0OhyhyteK1aj_~L_+(87qNu2d@e>0* zeeCc6)L67Oy>i_9+>(L)NGv-YA+Z#ar!1x>zuz=q{3TVWOUS|0#v#M9S1eNmuAZL7 zd-jbY#!Do{tw${4WrL%*@yCu8#Y#so=VvbTNQh?E?!I1X78@;t6v<~idJ}}sB=D`c4!zFuT4t_mF&N5U#gh@RAbvK**154BX?fS z8QnNuKp7`%`79-}=Xy-qzd##N4S6c_+q=?D?4tMZH!>>OXw{}(>oC`5Hm6#W&((>+ zP|DxYRedrki=sOPTL!s6@tIV-~JolmSi!OHG9pA7{p2 zwz{$nZ#f^E*SH(=q*AJKEBJEKw^yAS4ENmlefFxneAMoldC$jO=#ee8Y(iT2=edt; z9ntF4%tc0|A(Kgx=ui7UA&)k1b{U^Dw7C^=62rL;syI0=#Y-QZf9#%|v;`VB54r=7 zQgK2O`r0-`Yo4*?#whFT9PL122cJ5!Ms-0K0hS{fB{vOHfQY=gLmFS;MR{`kOo&=P z*Zn{u0L#dk&g+F4qZ9xP;5JA5D zMNHmo4u0|9Mfdmj%PWi@4@hX7S6h^GT}_7)Gt|OFlX{g+nx=(!){|i{68C@J^(<9M z+HmzDL>i~4PLB`Fbzn37`$eA$nx6lALr3Acspopn$LCMiCvVYjN*1+d1cG`HO`2OT zIG?Of3dZIwLL@@ar86iTl{43GxBF$aq`S2@YMDcSY_9G>)?buYKELeq%^i@D`><}8 z#w*BoT8+pYxFX}@l=J%5u;dGYE?s95zclqjrbwU;ZX~?X#Zo zBzG&$bA}|0@{hDZtj=p3AYWROmO$NN9i=di-Lq zso|g_YF-L@`^LCteB0$Vdc;4B7=6-WRPC5c**|16tC;RiR44Ab_H_iR7WKG$He*M) z+59`5$$ZVCSrgl8)J|KeUep&`yb4l;;l+SPPIb20jVExs-1l0E(m(v{*q^d|;JVmQRYi3KJRKFIt?f^w zrdDe>$W?>jwZ5Vj!dWD^V+a-9KAXP<^}3(k<4kr7o$Qcs;CmWoWD=wLQ&YK_9EYZ& zuOFehTmAR%NOhtKYUdGqYvY7@^}5a(NlkJ?qg{GAU7((=7jC3ig$=Gvt<;?UbeBy}X#Gvua7`I^0{7kNCmM#XGJGmDh)!=``>)o$ya>VNswtfzzl<0p{cSFKts@0$lMwq5J0UKIn zV=S2TW}sV2Xw?V}5Ezs=-_YH!LFRtte+V9=(0!}3MS~~GzHzWw%f7Vpbxy-@&3W&% zyIN}(raio0e!8sVgTJIy{Z_9b)Wsl}41Llt{?&N?a#He-L;UOHtugWVLLCaktRpkb znmLx;m-w%;x#Ii6Y2jko0v=x8*6W?N${pDXt1@zHoxIxXqj7o^;+rU&`S+)oP$9pT zunh=`6{iR=7wBFcL{iCt{_X)xw86U=1~fUiR5WB$W*@*;(quPj0Ovm0i}1eb`8XTd|S%aUDE zB02hFM}-`S)HUSOhko-F6a+?1lU)q|@weR2zCOyOlOeTk%`cl(tiJ}iJ+<(hmA{=f z;xBrnHt1W>0S>dAT!H)cn3x8OSOTx;XwEwo#IwrUKlT;G)jPg?+c($=@+}{UCqFo& zlk@5Y1&F*M7~#Lef(%qMmqmk5)5W3M|2$irFweCHd!x60i#8mjYT7v+xeuoCy2}#e z(V6kkw3V;x6Ro!^IHtcBwd`Gfog6BvjVkBt=ya+mD%!OwB4%jMSg2cdpU_OMprz&< zx}t)JS$aIuA#987yN~ri;GoK)vICouO=Dv%%*Y_s(F~> zOy|Y)I+eQ1hGJj+nGf{$O6-Ymh(YD{_HxCud}Kw(G)=JAQ2kYWMvXz)5-_-d3uBKY#FwwWTv^^hY$F1IH^7_Hw8Xjh$AJ z7{pbijcuQ}FzJxpstzliNH^S;i(xq;hjD&0 z9-cF2cRY_fKS2!a{LS}L8wuyYu5=sOI!KK1(JdYCb2dQbX-CyYI`#7@!}v z$))77N`;tey6lF7XK97BY%oNTBZ4zlJlqXskuZki%Lay1cj-0pJ&CtSg|s?N?XK+& z5x-t2)Asd~C+?*O1|@or4F2jIiR&E6>zw{k|05wRJZb=q{1@ozHC9iGR{3?B_T3)e zr@`$iugi1mT#erk{stP?Mr^jl3ATTb48L}onU_gYr&XN`6K2jCpSO@5g6TilPa~^z zeE&!E3&D1LNJ&HY#VhKjO>4%_5A`9YO3zhD=hUcB`3c)zZ<=X)x*`Zm_J48w#3I8_ z742Ml>Nx$QrS9u%qw0~|IHVkaIS4L4F!<&6FWMK3A1xRPl8CW9ye&R! znOCHe^!CkcR0-AgFxsPTUx$af@U6bA>{70wl*=xII5dedH20bDhlRWy@TA%T(?ipH zkiE8+fLsT>d#xHZYeayGHPr9)H3uw%OS?c_Ta9B?YHrnKpgfjZ0a+o9Ts$%NJ5^(+ z@ZT=T+WfguU;(cw)<(KCD6kke{x)PbXF%o8yxFGeEx-TlMyJYAYv?z_Ulc6xMHO->rrsN;k< zPw@CiqJo{otNgE-n-t3Y`iXxnaNJM9v3NH;X|K@ZRCs5jxsTHC%yJ_Y=(2gm_1pZO zO3jMDmwuWTh0r-ned}2F2oL*bD;Qb>%nGG#{IKKz>0qj4s`-e&cxkdm^lgb-c{0)c zeeMeLcx86iFFaRn_M*m~T`F5!pVaSqZjaPiqDwc`RF=Wj31xfJ`ikD|u!?BbW4)oof!4%Lvr}@K^xAlPy<73t#H%!=Lr7rkgMOF+ zIr;U5qSV&;toRI1s=9z-@4RBcP8tncoX7j5#1U6__dlrPP~z)otW%3fQ}o9YJSLMZ z?^hmbU$k;*e&or#KKgjrnAhJk#SQ1A&)jRf82%dc%_g>mnEF?l-=3jZ{?=r^V+|sQ zh`^;^Z@Xt5y3Mn#s4LW;!)8CC6&4c3*VfVl5keuOZHDQv_iHim+3r7>yWA==l#=qY zVAnaT^7r*s2;b(L3{JuU$kkq{i&x=HI?J|u&V4Rl22*b-P@PVvp37G;^KR3&K8vEd zetAZQ7Br8^7zU<8nn7^~1Bp8gAwX?E9s17hp=w;o#~+&*i`9(=Rj>*--B>}!oD2lmM%h^jYv&=7~S zzIW3cU*H37mtRZP|3ZCvJ0-##iS{SCuh628+nmfUqCClUTg&UwvQkeaZhR+?iF^jU z)4dJ5GfxF#dMs?2WPKXY#G9@5aK!J@Yt5?b-CnZ~8(xzwXLV3!(W|8o#v(s-oNCwiX>`V-$Kwhv?ju z4&A)uoJNa+jx<+kDg4rJ>?Q2OQBux6KDl-cj>F&h8*<2hC=^5emjBR}ix>%OX{F>L zl`&h+hu`xvSo>|FoP2FROh=T>k#iH9dLySLc7E@wervQJ`R0<5bvA^ML>#GajCD

Eg|U11P#@%GtD)=L2cX*eX;2`GY!!()Vs3OH1&|Vo^}CBvBp^^-aw8#Sy_a{SS9r zM06BWrn29I{7g*!W?Ukgw0Wuv_49s_4Qbyu}o1g9iep&1}rx265Xt<;=gO&5+wMfKz(dVmz|7Y=&Uismrmvl9~jDas)lVW zjWlcEk5r0m>5{44lxx`;;A(#Kh2l&UnUB?kytq1ow2>bin{^@_lgU^m(E)A+H&{kOXZUlyAe*d zNtj$S#)k9#SjkClw|4(AS|QcFAslxbq-jkvuAG~O$as2z7W$D8^+DJ+K_E@zsrcb~ zacZ*uw1eP1(cX7GcSjJFG(L1s#_x`_u8i#xh^=Py5NjXFZj5&>-VpbdEYguD&3BQOo8J<8q$&Kl=mS z6Mj-Qt`DF6GtWRiMD5FexNG|S&Vg%N6TL1B79q*CbNrY3!2n(bc@E2jj4;u>OOGAr z-$5Q3?(f%z$KQrQEvoWX*j?0nKioAGYwwG|XW3b6ue|r+T_3L|JET~%Aa&wlmgM9m zR67ukxw&ZnuJOLffq7=X@bK`Pqgr0$vs6t~GW0@CGpo+XaEY)BKyGUvmNga+ZTK$z zo|~B3oo2XTYWnCbah@M?Ac3mhuaAQ+j+TYK{rq{{#MilKT)-ZA1oNEpJ`t=_JctE$ zp}T6odymkS57QFQa-Eyu2+nN)JKhdx)V1rOe&52Sq; zm`C@Pu_4==tD*uz>9{H653C6SFfa&LFcu`=(Fab%-U{&Xf(ZEE{{?6!vIDPs-ytGc zgKLhjhpo>zDcg~p9kq*F+2fL~94g!|VAQpT`>7b-Aw;oG+~v7 zJ8x>y;Pzj~@$Zm0zWo>5l|L*%z-h;zb|2_LAAofJJLtR^;P2r4)T4K+xb^W2i zT_7w&%*n0)yzn<=TUkJWNm)b0mfUYcHgPmcLi|YPDl7ST=z$Nlb+I=K>2-TfFKqk( zGUi9tbbd6x<+d5JAJG^i;wt^TSnMIRxX`gzti~a`F0L`B$`l_?H3rCe3d{46=V|dt zFwoBIDBPWj&N+IKTX8(s+vh*f-!EQeEoiX2UGy$FumqEg>s}>!IDM?lGjdJcXZfo5 zQD&y5Q4RAaMI?p=dXp^4+g+NQeT(8Qa_M4F=UJnNw!A)Ts6iaB=GQE42XE{=GO&W;&0(g_kWR)vNRvwM4c z50d$+re}+T1+aNnas(F%Abb;P|5P!WhsXey8Me6mJq%zGLl#UW%XB3*IY%GtKhxe# z?4}}VBam2+rtsgKUZP&)tuhV%ZRHf$b!dpCT+ z)Z~H2k&KM*hIFc7&xJMb6Mg$0tI!~wA9;?U1~X4%7F|%%9`W1-( zkEXYPYUBI5hS37Wt+-3E;!>cv6))~m+$ru*plER|ZpGapNN{)eK(PdO3-adof4*;J zWo1?-Gnu(_?z!jeyU)Ifv7~0on8775<^bEe(*xg{)h%*NY{i3G%SPh|o!`|ZR{NVU z2LTD|q#}G&rx2^CglMRWQs|4kJ%?1Eny{}NWl{0Pkoq&h=7@g^^O-+5l^d%jC6>wD z-Wdh(g_}8A0|Gw5iCYAelWZEqXH$h?QzZP~qjm}FO0b%Xc9>I!5i>=t87FUKx$c=2 zJ|E7^Hddx7*;Xx&#UXUJfei~>cbUZ8>3b)Bs3{AXtJg%tMKbkP`Dd6G8EzqGlw9Nc zCh7ecG4-vPQklNsCXqi7C80sys@C=j9Mm;Tn&+j_HL4%78M~cfz`HVGP!GS>_eiEn zN-*1MOmsE2Pn%7dZ*-{*Pl;W!>r_6r(Z{E^C{bn~)tHi%$;|W+BqRJ(Hne7|N=Cs3 zgy>NG{U@j8Z!5{Ekx<2;U$QeTENUVWNVQo>$pcgm=ImK*Q(_(GU+qiy()(h8*CD zU*L+GycdJLVB^lu_ZrFi+!CYuBF5(vG4UdWS4e?s(T;Q!#i)S1pYcRStn|CrTe!i4IqGRi`I~i&Pnz6ZH&J)Dc+Amvb6f zi+SXSzF)Fe8heOpw4XeOB#aAA>oH#+p8UBSbvQfjgmKxre~(Y?jk@-hZ$egmL<^T^ zQs$E*nNpP%v=DFKzbRFf_`ra34Tdqhu~nOX65)w*JQtiw< zgN|>y9u8z=6xaK*Iyz|->*0U=bZD~1Z7HUW#3tErh9Tt@`*ZbZy7m#*Jg~wpfUUSH zEq9vuGBAAdzW}uL*-Eb8>3~;_q@>nR1rBv4UVE%$iBB`2Y+aOR#M6p+{q(Wm?i$v9 z;>BpDAM0e`OgnHxpil5(?+cO0ermFS8722a4iT78>g3_X-opm}A5?okF$!a|+H{D8 z=)p66k-dDTD&97o`MtAz4x)qPJ=U^`(r|c0@58jl4kK28F03V6_s$?!hsumXtzqSI zyabi2qAP_(fcZT}<9oKn_Hk5g)I;qwOKnL)wm1bst1*MKSB;5)==X13UZBA*N!LOi z!BZPiJZRQtM)gNZN8^8y>1dBP7#V%k>u4LRN*a7C{)-^~GMAQa=SFKC3R*g9T9j6m zDCrR_MrD_5ynNIk#ym!82-MtDgo$&|l3~upSETqosCm8E7@5*bJgM#c;vo%eqW!Z* z8OZw%ek7yOx=Do-$T|Jlc5`MXrSmT2hIxFVuEBK_Mv^a?oLk;$Aw%oO7ZDg>)0ex! z7I$VWB{)d%T6IoCmU8iUF3A&}pUQQ=Fe<$$g8MZP!NRNQ;m>%;QS^^zv&QdaI`jvw zbT{5RxNv0CGq|2Qad(&}+g^u*@w)#A!f|rKLf)QIcsMCU>du4M!VetLOJUC!t|GfV zuZTGC@R8&lUZ>%xWo2*}Sa5%C;mnBN!8TgQ7vKDL$^I%=saJo6A&Ye*|4D#|4!1nE z`{>kGOETu9aYV2aNv9s}+$_whD^9ZuS#U$do9Jm-boO$sZD-5(w*sIm0YnFfMqMpQ zjtX}2@OI^eFb;|pPj9N55s*Yz(5u&3RzlI_D4+Ogf-}wSVZ!@if_h!n#`?+NZ5ti+ zM=`C89E=vyV~qg!69ZNJKV}`=&uLhyi$o3gA93Qp9pX(1B(Gs`NErSyzBePdoz^f0 z2_r13l~%AU-t-UrY6pbO&!61Ik_ia4j2Z)VVR}7ot5qD5F4M+LRRCX6LJ^N90tm_9 zw93jWeOI2Oy=x!&Pu44GaHWR>f3tIoxl1jlK7M*UOk32DgE6Kc86?c>3$qQdviol- z|J_BaD<%IYk7McwrH2WLyNtps;>8x+wTxH03`vY7F<}9M)H~JED%VzPav0uh1S@>- z8t`ejii$H~U1T}k$cIYH2(>5tK7qD9cBMD0i#<l-yI_|CWJuWhQxvpRj}Ho&a3?9a`3C~D+`aGZ>6T4 zq6YmQeuJQ%k!J@V1E?M=&x3*$?@hnqfWWV(gd85X{$hLl#too!>-IY`ul`q8cEK~wLWU^TvtjspRo?%&|l#Oowb5)Q84j>V`$;w46w zgU%F2VA1?f(~vaA%@86a*0T#aU_dkHXOdS4BkCS}?aRK2BqsvS59%IN5#Rn*Qi;fQ z6GphYU3t8xmg@C_|JBBc?{QKGPnYf44}=jUe%2d^Q@}IkPxjEdxvY1AL}Y&9E1q@h z0SRQGrbrY(hU;OP4TswOI4g!~bNs&(S}ZG(wN)uT$%xpko|t|>(90|TC$M>!!4f!s z#Pg!i1~VDXHq$RKBHGXHkV+?s-zO)ZB;L8Pz~`uQwz7BM%~sEUxB03*?(&E=$Q+9` zC}9d+a-4&zNREGlK`=q(t~qr&bO{5@C@PT&f0v<4SI^X5tNRcdPx&@a&c&!ifMLPmw{0gMWpc~${MGiV?X*QSTMgQKt4sm%xM{+mg9LI-M zzn-sSo_#59bgQpekMKI7rY+PjenIa3%(LE+$ouccZx!=7WvV!=@mZMgq}Da=$n_WS z3b@7(-F;`^x9j|BeD;OIFDhT_WJhNmGo&T)LVP_* zao3O3jVA*jck%7mFe$;<{XZxMC!|JQbG+ES&)gh!!aHg2_ zNsr{kS3U~01}GApb^}$&s8LECg2`X`y65QUeNgv4EDZ%w_VWgd>Y`EnFQSKo8R~x< zTePG@$Z*6MZBfC`)Tz_h@*h*Z6Y1&vR8sBT1jzx48`q?tWam~`7Axi?L!FYR4~;;r z-9jf+~SaL3#Z~}W~i7*94aZrlp!vRyRd>ErKM-o+DCI;nKm6NmU+JQ%~nV#s%4R@6L7S=2BP3Cy1$>k7kG zVGa}y&Z6xP*6oIMWC)cUFwvJo+vDSA7!i!d?t(538)+fGKBUrT*dE~jDAspz(9kPS zl(Lrjnkqf#KedX_Ei9mz5{z4(Fnx%uKZSOmF2aF3`<@0(Bz=6Ayr{Gyje8>7Gws^7 z7(wd1-}&f43A~<{2JlF@FdFb)jdyKlV>=vFPn_lcSYG@r>Bj=aq6O$zG{uT%wLi9Z zHxsmQ@f{K50EU0_cf9D*7yMVoD4rRLf+dLr_wxgB$Ub~m(xgDlg<83S*?m0rTZ$5Q zloBm>BnI~gXJk#gJ2nH}I|d9|y6@lmzSh2MJy<8nFJ{WetELD~eN@OMN<@RaZ-jZ) z99Y$oBN48e@b@nnD(~Z+Yj{-_GQI|0?{hdY_ymDlU!#?hBb6FyfZr1&q?Zi=S$Jrn z82xoNDk)!yQ{oOhfCZH>p1PQdiLr}43@@urWM7;Zmk|fpHkcfd9q&tmMbl*cZ1I9 zghzOlE3%~J7`4lG?v%Ngo<;eNH~7Tf;;_lBrsoYaHUphEJdgP|q1YJlNrNWOCeE}+ zGl5>?(*|!)gY#FU*;Tz}n8?)ibUi@Q-Rgr127F`(Y+@1ls@&!K>b_u$GVQ$0>q=R+ zQa`o%CsD4+=2LqpF}vZ_&4#)K$gfql+vbktSV>D6Q#o`EflT&TPQUW6l3iy+$*U81 z3nQWGzMOkko48Kkm6aW9m3w(ia{W$O2cw&W9zK81{{4|u*n1wH7SkT;jzj*X=fH$} z5&$e8x!o6%RrF29n7474u6}&v+^V(LCEGbfa>tf!jB~UDUEEt817m&D-v?l5U|NJ% z_r8;=D~z74NtngXouC8=3YhAcq&J_8-5cP_TW^I5Y;;qtfUP znN-o1^0)E6aZhZ#Z1AV1(zX90O&##YTGgUx-z((&JnYHgzkB%iRKsG|`iS_01%2pm zVI3Wv)FwlH{e=eQX?JV=?osJNzLPN_q%tm~aq9k3tBZwlW>4t9!tAsS09m1Hu1eJS zV*m)4UgN)`)xD;}z0>q!K`W85kx;puk&%(+)ez$dIORdfSWMmTZq_UhT{z0y6&0ci zk}sW$*8f1fd8NKCsW~sy?L@6aH_l?20eqD_&bG2`>c*N zEKkA_GIqSNDf+9+HgOmgO%ePfyG~kE33Sit;c}n+amw!Q;ywa>=AD5yrXU$P6cbiz zi3p999yZ;~FCz1hOcu*WJ=T-FVfK|ZpBlGTuNoVp>XzhE)okyUB5{4;_G$^a4jQYb zB)3s&(rKMCZGm#_T8(O}xwOfSRlg?V#sHAK5WkPUckP|I%9Qu#&|j0wE6IaVk>LV? z)AgsSL6@7=c{1`FO95N1!=E;ti*6Uo%e!VtX{`gOHeNiyMiqiJAl9AEc9U8^40K~g zx5gHrHjQ2~$nuP4O#To#dQ6|@GS5hsuXnvZ$ZTNexc^7q_n}3kbIQW3G-sevdFgF{r#+1 z6MVt?_1bM;9}#dnU3v~Jc8zKkfWK;4%_d>|v)A5okYgetSqd~qdTVE;Xx@3E-NUG&Nb|!zOg)hu_uPsw$iZey16CkfA~EY$XX>4 zWj-JQ$MIK}rGYi0a-m)g{hjjf2kp}=6NwNEaSQyZPUrvZ!vG%?mGy`#aZ?W5wqd(2l~Ic%Jc>plTDk%3q)~bX zJTwKyWTRNrK*pc?AnM<>uqauA_t}y*MgaMVBVpqrIW8kusj(;`|M8X%u$X~+p(PyD z5R`Ndj+K+Rq=9o`q~~9v#Yhk9C%C}U^m*FDGmFR37N{<0VOr=-`EK>XgM%5A;d*_r zO|%)N2-gag)R=+eS^i*R@1Ml$P#MPm<|G(u8uLEgOTBuD$x$)?+_N?Zy5x^7sy)Sj zPypP2I@Vvez-y_7>c+oZc!@0+_$v+`SZ^Q9uu4sHx!$k9re3-I+<*t5*Y$o7cC%4! z6}a}Z0ZZx%4cVy-YL-OgtUhK}-d|UNGeS`}&d~Tdy~A%|C$jB)hC+CK2J>^RFCO+x z(J1%C?Y^#hpL|65k~AtU9r}Hx`+sUi_*86pZ7WUb24+CszD%zk8VfqvI_s|qyqoR9 z#xuG_XigUKk#+)}W}z&Z+nSv44?Jg*Ils~S3g9Y?e<}%RdoH%O(hGVwvkvFHCSzULPdJgiCgF^55@Dp`1HGTWuGUhc^@EVy zYeTU?#m@Y$r$Ia2AvmJ5&`VLF?yJOAZ!xR306hN^O1JClsco0lb|K%cDI#&FVyClX z{V4hDgE$7-<>VR6C_Gd3bt)f-y>?pqD1oh>MUw?yVLQG1nJ#Xivdo&>nt8wRAwMwT zVfWlB1EjWZ?|VV&opleMCKxwpPdw8!^e2qaKEGcbi2Y|F~*Vy%zg&S+_Qn zJ~M9@v(S*e>wrA=&b@0vMLeQIb9T!HyPSJ+>1Jr(HC1We0VCq;Oy=EC<{c&q+Kv3W z1F+nF{tmMNLxw9-ee|TqDnJ175AfyWBVzk&x~Ly(kO|*qrn*2UMBw}0lBriv zX{ic3pHQs6gh&5*%F?rn+xxo`Pyuh#ye0I&r6P-Q@tBb!$IuDMvwCOZU515vySgK? z|EZ7wX}74|@3ms}sOAhTvfJ9SE<_kAsH~tg=g>X}oiCG+_GoPU_(uu)gSt^f+tra} zi||0BX5#kbp2aW5WW)8vL&S}hKWAlk#R@Y9beR*xSUB_}#AEZ9v-|MM!N*oMB`|ks z_blb%i#_N;;qM6)J?~Aj)XDyb)cdWwxYnrC%{2NoER1D@v*tI*fxG{~e9+pH-hL$) z@fXnt2Vu2a{Emg87~v~E*_O-hA@}E%9j~fGpXo$3YwBr#2rpjv)yuoVTW24Y;qyiP z*w=kGxi4K-!sZQ+6a!#y#OkL-YQT;FmSEgrx2y5Z^KXa-)zk0{#Bb*`XuiFd7ZTOl z%|$LSi~(QY;uZM#N`-cO#klH_b{2G6xm^Woi1cx@brRAX^qpoh%gHY|p%~n$*WxUT zc1+FQ(1^2>GNo$XP}CZ{m78agvq+V2OIfVrAFZb7_F0?`tf3m&oFeL#nTt3M3uR8mD>HVbN!Lfl4HASGD zm^a?z_~+|#v92~gO`rL9B@xmWcx!^`NBxeVx69?vEgrWSTu1vsAiB4vC4Sq;7F($; zu7H<&DnS~<-J+dqvPNH5bX-re?{0%SZ|yt}*5Qxi{BdnGuld5dk(@_~D6NzEcQH66 zwpnTJ)jxe#SgAgAj>~Yay*U$yEPr1s*=|M(9ucxKPD7XJsmqyad4~me>GB{ew?0w_ z%^|MDS*W9ty69+rS68EmD;q@8VHMwN6R(vdY4svxj$O+3SG? zt6+(_VVEA}+vA2*-R!clv3+hi-KgKJKRwx~x)D^A5fq^az8#zGhA9L;Y#NezSyK2e zzL(6TN}7~yGJDXpF?p%b!N;9Fsmjh(Xc?upm)r2b`r(-|I@cJlJi3URCVg}8N9$OL z`3&rXI5{=Oa7RSg#Opt!UY>o=?LU4OZd9u!CA;20_0qZyo@sX00!%FG7*#u`vqL9f zDjGN@DwTdF0yFd#A%wV546pJ^VhGY+EQ%hvQx?-!OI;$L!W*fM7MjFvpYzFdx3<})O?()tBTx$xo2*Pnj?y6*==-o^uMAO&`PzU_}^O`IA6GaJTnGQl9EVY8n@B!q>7HGR$Xg8-sULzkmy2d z7mq9|I4^v(kBDnt9kqT&${7j1n4ND~t&ha$&mX^YK7M$g#2cf1Ra4JzVIMdu*kuiD zr>q?0_IqxUQS1oZtQkbc-@Kx60z&$wrEe1NP4*tLYzS|1=80@>2gpTzhZ?rc{d_iH zXL9tn)t~Rm@M{c`*{}iLVp*$h@eAd7o`H>g$VmcH{yRh8;ob+4joIDRT3EKAE)nU` z+rwyhb>9U7>WtgfWk)ZIKME zyJY8U)ylB04xclle~|62N8iia_jSxT$HLqLEXHoBatldt5Ehlle6DfVD!P(157c;0 zXY-TqL7djcr&L4Rb}yW(!OLS`yBBCu?D4|axQcO^rDIOa4=wIJW9BufBJi$%MB_&5-qq&%^NTb`}-Ozc^Loe_n?JY8)nCGwoVF=D8 zNX*^Nc-3SqkgKMZw^aM}uQ`3Q%=2)jD5&J6Bp?T$;CYe(k7M`L*|mkP3aFGr3uw$E zp9oK@4FYqyFSL>TeAvV%Nb3o;=QJRjUpifaGoSzC_DX-u&kpy;gr#X}b5{J2v{xy1 zj`+;na{}i(?=|jHcqy?_5}rjU5~P+dI(y@4LErq58Dj3#{wgFSyeNo11Va!6L-75? z=Q_1(hkU~a`nQDoq|6=bvQ~51TNZ_FiEkb*r2a(^ADr(5ET6i)GoC_o`qe8ZHiAUe zMG7h^$`N>s*69j4I2@F3H>94on;`FAhj~Xcltm1Mz=PCt2$UrAo&#W=O49OtlVS35 zEk;jUxVhY|*ET)`k?{ z`e)GYb}yw-V*1kyFLXD~1Slz3E{b!Eq0ETe#RH`)_WMX%xIg9RZR9ha9?xgac{)|@1<8iKOc|HVn~*Jz3RTU zU(N|oO@|6ek9Tfer; zsB+I3@Hl6Q@{R>HvHXw|Jxx)wVo}@NXu)RL_HU_1dEE8cR&$5F__oc+w83Pb!)?im zp|IauS4ezaZvaXA{?it81*W{)sDh>szqB}8Ef20`pkTWB|G5Cqi}u1~tZ9Dr)4rBn zHQ+<0*-tCrrTie9({VX56U>R`;({!bm%xYE=^3}$_R(}G(K|OC6Pf!>x7tJBx7%ug z;lA2e*vI^7Z6JSwy%+SUAVlN>OoF8Qu!Jmtr|e%^`nF>@Ym$;}5@Z>n73Ee~HH5sJpvj6R^S1<4!cUG%Lzof~ zm99k7IbOIIVh_}`3KSx~zl@wE)5&?*mE1LC!WJhel&!*KU4)Wd91INI0})iKVwZae zzW2J`fYk~Wy95R9Eu|R5akXR(n=S7Cq=#m?E<5M?9FVva>FuCLu77#;rXwmdyHwjP zpK|G@z0D%jw13x-fDtIfGNZp_{Q(_$O-6W|I+Oou0N+l3P5RRZeIn@5h;wLjX7j4BE_ z{r7hO<{eh3Lv2y)DVN%#9UL!f5&OE5Sc&BVYTv)Ij_rbkjRV}rEXqnAureH<`%Ho?HVJ- zrlM)sveq~$pIOo2j|lDzlzRhy01|T{=2{Uf(0h`q6;( zA(`{3pv2l^+9zHS5fM1dg9pu$V~!QY->MXtCuuq#&r7vv*ScM#9WD?&F>^c}peIK- zT>&ROg$|b;6bgs`}NpF`X9xftDc13ZfJY#vCm7qQa0MN9)MvnGyxhCYp##B z;*=6hMJ1?gemtk(8RW?YctmQS+|@L4L{fO!Q*RrMkLP_JZW9lhI-h30SX(}BzKEWh zKp+gy-2kPcR|0;HA84N8e z+S}xfR-g$$HTEJ%^@!KIaz!s2yc9&dzQx+5k`w@Nmu$OR9abe_qz=k2Uj6}A8;AsP z`5_;Gxc!sWbqnF3Nkl- z2lPrMOQ+8o+Tr2hD{cpFg5|=z8H5oH_FXEeT92~cjqsnyQh0&fCo3maofTS-#z~qi zcBu~Y4wpnG`h8Q0^FK$ZZi`15)d?-}m{G2fFw zPtfWv`rP!~C+cKO$^Y&}s5@i@_&`jGhHuc~;IgKdULaQ}eh?<`tTWu=*L?>pKHuFQ z-zo`k-gw>2m10C4wRF=LO}eHMv_8fL!0;r4bv)bV8L{ zAOrVs$`k)~eA)*Lxc$&A*#TvET7EhD1j5@;WnOaT6c**LTdEYYIIVqqfEKhlXYfg$ zM22rZc}`17?Vw4*eQO4lX_pymWCV~e!KeH&(#7hOJR-VIBIKrAn${pDAql48tg5PF zvcvC$r7vEt-Y(S7v43z^m~D3T&gQMf&ewEsW_pHgy}3{r!4|g7UyBurck?g`pRuWj z{aztFH&N+b$&(E5TfO_SJ=Wn_cJX`_(vMUVK+yhsvOj$zv&nRE^ zVZ>{k0^8D8V|H2-$%(rvZQbD_G3iE|Pt~#l%ripQTC}O(?=wtn&yvwBw|72BOde@g zrZF?m1@b*(rq9l*eMV6|B9tGl>6w{w)MO=)%20Cpgh<=r{7{B4(T|w<3Oqf31j;2v zBGHU$hBv=htTf+OqdEL~l{KgyP+!gCYBxks4nDTz-V>dwdOsvqqY(F-EiHT6i0y;^ zIMxc;T;V%+#?7zqrc37Q-P@%I&!nYU+lMrxAOrG$9MRZqJx=!Ldi%JO zS#0<8iT?Q!(}RR%kww^?P@pljj&|nDR_tMWc`< zIFGV@r8plt(Q^7Cw?KN-g+S+I#fB@GZWZVrV6#>kke$1=rVG?CTn;EYI{AEHHAIUy z9mnAIjBGK3v>1Rc1gDCChrv&5_QCi-g-!C;&y2jh2vis_)idZ%fsJEs96-SfhKK2H zb?-E5=FfV(VpEBW?}<%@k%Ii*HiHd=EG>~)!#ZMD1yM`aEdM0w;n$M6!^mRY&fj;3 zV*7xL6@(B!lu!vDr`6l(Z{)a|0s4%6cOS5L(mgks!snm%dnPaRkn28;a zS48+~hhq>IedaBWIS8*7K?F0PS@O%psA^7j2sUhOg+)HT=cy>9Y$cWhQZZqVJ*xO?9kbVMcW#S~U~CLvBY zRGVEPP3jTjY+9BGsI~T=-N<(1Iwa@GP|RLCVk+hyGPC{m+bZ$pZ54Xutypoip>?<* zcsOMaT1RwKo!LbF{L_a?fi~*m2P)S=#-GEV@BBZDYLfr^h0B|O!xbHZJ4=+*dH5Vj z%R!1Ftt@R>l0^w|^6hLr_dm}#esNLBX{@xXHu76`KhiuMtPOHsE_bQ!T6*p7x?A&e zst=eN0Gs}E|KV@do0=e#I;xvF6qO?gz=pdR9S%xldI>UJ52}A&cb)}+`n(cnpZ|Um ztUQuP`3%?GgV!Ztjb-tE+%0sfyR4xOhm7_XDE7h%y2mNUNAtBySNiUw?WJN_qt%72 zGQ|FyE>i}VhDC9T_U2rz(e3T<4ab*Ff2HPL=6X_r06r=yf29{t2`{O8`Cd5wB;P%U z9*Y}ep-; zLRDxw;S0Sk{LfI7Jc%G3^dI4@=NrVUV#Tp3Rfnb@UoAt_lM9@X{%FuCxkFxPDT9L;hg;%KCl8TQ~3se@d)~}mv}$A@A_># z$4M~FXth+oBL7Rnve0zkdfF$)0D-so>a%TXDj=k>N%E;rSg$ojq86YWn=u z#B03<#d|kvtIYi*)ZcVZLjH#|8{1>ANNt!&ciT%9Hl|2%$}}$JEEB=N(^aL|9drZa z{I&vQmT}wjIQJ_+#BY}<%HA51K783-rU>{9*RwgjS(3s^J>3mGjx#rCb%3winaU0M z+@g%9jcxH&EPYz8uTWt>i2&`AMfJ<0MNuNB`mqQF7P*l0Eb+0QHcOq$+z*$l@S}9? zY*z2KPj2=M-~P#*tOUqt*Ys)Mnw|5tww)Lp(q_b8aX=2D9SiRv$B-s&gY4I0)>^mc zz|(tYH}Y{jz)FFHc0#C#;vN^zI4gek8yX!QM)f(^nveL{jzSAQksu!A+@uhM~M2<0cEn&df7Ia%t zCwIL$u*d2fATgoJxQp}y5mDASmVG`W8p|bZ*rgg%Ol;rtl!%f1=ahknA52l&b(tg# zyXGJS2(xZ2>Zz&E+UF68%hTy?9)2- z`nA~ZZs`^Armdpu2XzeWLA26JQXB?DuHOr%9fge^w4Iv^!f}Lnrieh{I@U|}V)b(S zt=r$}K9w8~OJrxi{9eIyd*{CKtypdPe|btd-VTO$qC0Aov^gy~N@h_PZVUJL6VoPFgU2sevA4FJ3tu4y)P&M|mE( z+db8Fu&>_r2_Cc>A?Th9x@$LlzVG{|KJ2~<#^}g{uYs9W9Hq#S?-q>}o%$OfM#ZV~ z+2|Sn45971CKRly^9o815P?qVY~Obw)chh7y9hjMrh48hH7lRaSQWfE|C_zk)$Ou3 z^4&z#X@TL%h2HABdU^Ey?k0OgJb82&d%fre?ZHC%PQl*l_CXtnYS(Fy-lqbqy z=?K23h_J_4N?UD6Dz6%=aTpz|-KquybNX0ch`J<7v9=c1S9Tk74G2N7d_|d79UfDm zw9NnYj{lxtQke{>#WCwfhVbvoyW}vRk1)>S_t4#yY|~x>IAidx&XrHSQEV%whPV}sM;xcT8BK*k*njx+x8!M8Ntp4yn0 zM90Ok5xX3V0kgs9+NvF0VYuVYK)`8(>13DtrOn14_pIMd5bo<1K~=T2W2|PpqY(?2 z<$TFx!7+D?XeT+R3QClyVG131yBuNb!X+)3oC_hy6E!b6k}xPFDanM^2B}uD|7&-E z==E4DB3w__S!a|jfMTJT=4hAZ(J94@=}jl;rzaa33Wgd5vFp9ohszhs6iU7;Dw?Q( zBTZ+C$BqU3n7FQ18t`}{Ph+r{0gUgF*_zH7!yZS;3`<1-PUVQB5Fs`;BF72QO28pj zB6deZEW6A5MfMbW#1z&(Lg6*)7cr%W#_wx)L4J&F`pqg} zt;9M4&IDew1(kOfBc7gl@zNAI*?jYuFLjh%Au+ln@|I&%L3H}RlUr{ZGHd(!86~lcN7)JAAHEeh*;s_R6;d0BeD<#VYJxx?$Y1)-wg~63GQ6V1Ibru05e5*dr6DT z&4~W0V8BKuDVdUT7%)=$lLWLBh%^u8Rg!W@ZOLMlKFu1x%V zEI+)9fu#ic4MSaNwNb|hEGp5x$CB_&Khg{~qH!2Gv{e^V;uANKZTTEDs`RjGpr5ZK z@>ucQ9vMA@iTaAele%`GN0Q@k<*_SgAn zuALnDhgRw<`xi03hc7mR&^}0CK=aPAuTne!m$r(>zxAN0|7GfTJ87D9wLg7a-1h@| zD;a4|c>%N5mC!`uL(63mflhY$B5C>7By75>+|O&K-*WX%tcF-`%~fe+GpK}V)aEEA zS!wSVPO-Uv{iHlR<#nD~pxB-@xeGH|TOuGa<#1!atMc}6$T7HIV^^G?YEL^5CG-5Q zQ~ECvsr)#vTNRwUyy-{fD#GA`&J^IociX{hC54z z9J7%b@?_WzI}WE1H(ptgIe?8e;Ik}?#Z!)1In&LFWHY$LJZGM~MaSnB)LzYhGX8i(NK56=N?)79quLpe72=K91 zqslwK#1F!PQ0${?6fRWae$0#6Gncw>(Hf!hH(%(p-?pXn=li$7M7NH@k*SU*QilD{ zQOUx+&l~r2@6XbR&y&z`W*-!b0{iq@>*GQi8D${#9U#WSG7YsD2n2G;R4IbqaFi}p zAI@NUQ}_Lg-MN$NNG{;38=SYk2OAxtLUc^wff2C@!a6{Jerk#ejPF>Ly@Ec1&z*CG z9du`E?MOP<*iS5#vWeDp&ALDw3}YCA%#j+LUHvU?SH69|(UQ7vs0NxqU)BM- z>6_NWudlDVLqrUhGGUtQUrEs}cR~MNcc-UUioH9MV~F98KKA`dC6F{5u-`pd`68Up zTSrNRT=DdtK_MwdDkYRvE$IVZ3B6N_YE(n!L!)Kd^8NMAk|?!ESjcqWm<^)`DVjaK zrj^8UW1RV--Q;p(o!?ri%Aj)kD^IZYQXo%5^uq1iqsDOkbm!G6_@xeG;6mt<@1Wi~ zs-`Mz_b2#6l(^0jDwsyMgeHAlFpiKunx=lOK%qD!m$l`6`q5eHujTjecc-3)9BSR< zwTudho1z!i7PT*w;L>uqViJZ7W3gDtj;Ru3(Rl>@WB8ND(Kj27nem5nDm8t_W{5Yp zjz|jbFd&!(aDl|VMsE*%gqL(f5TOpE4)D_HN`)}-XXexaiubG+cW#u;c8J~kFAXaq zeglYNfoJ}9YtA%z)@$$ZH0Xt9w@TPINj-2`9aJyAZYrmD5o}#=t0LH>7X~sO?4}G^ zexQsj@{USXNczar$g>e1SIsg%`Bi#h*z(!n#?YY${<_P|MKIBEQdyN-Xn4&szM5(Y z^-IdqFP-saqcsbTS*m=%o@q8Um(9%Q02v&=P?{}v4|k-+U1LhxQjvCZ;cSlsJqm~I z5azPTl0@<^o(L+r_!~z3wUvSXfH|@xUP)RA7Wkq2L$~mEsJFcN z3aX(Yw&r?a=|J^YLXXdcrpo^}bcWumEHXbaQU+b`5cNkmy~gW8=Dy|2L?M96=YQ&x zu#Y-U?)t5u$w%L)s!DPH13A(5fdQ@;Ho;#Q3%7H}gi=`fOqRzx?F}W%mOa4r|IS`r z4m-!Z{149qx~Q}U;x=`fw!f&qJpFNMHXp|Nd_BR_1!`p0?ftAJO^Nb&%YZEyhiMGO z@Co$Ey<0Cv_LWFj4OoghEf(mEgBtVH5vzu|+)?2sLSL^c(}Lo&Ri@+5sQw;vUrD(e zehD?J-^&kWZaJ?JysacbZ*|CdhS^h*6#tdPiUn@dTT(D?&IhxYaz#ewlYi^k!Gsh4+noHJ-oo&5cMd4+h7f+%aV>)y_=g$xiHMC#r1aAVV48;=?@9; zZbgGuf8Q?Ph0Ohqtidq2DVHNKpbhX&AkJBi(2?c>41|#BRxR`wiiDqFzQmMCHysOl zu8mxvzQ3E(=D@QUl8z$21h>>DNw@#XbS$LjJMC$Q*FzCd)t*#@)C)haqwXw>EDgxI zn$vu4qok@NrLbdA=p4DsKn_A0pdKMlR8yZzXqWnZY4>VzY2@m!?huc|02%mbcG}4+ z5_)z$+f2=N@alM09(;OQFyoGTwcvCN6mb5U8dO>^`LKxW*+pqr#QQvlT{Q2+KiU?ShAP zi0#>KfT@dwMpG1napL0}bmSm$arfmRST42W$4(6}6rPF5RSfnMsN;|%@7zlF67dTx z*7peDaEQ2S_i-^|XMeIu_p$Gopji&M2_Y)D$FFYeLH#e7mVbcO9oJiD4J*wB=eXT~ zXGh#uZO{b^WA}dfZ=^V79cZ$o{`zOBpxvvAjM)2>OWANPNDnG8`$MCrXDl0_w*Z8> zimglDWCHEdLcmR>+zv%;Xj-9JXxf467lX8RZ; zWyWF;c0Foxv)?`wZ{oN)@5mGkfYh;pe9^I~#37A<7^e(C(HCJ?OJe3`2_`*??}cW6 zm*G?5OUDNg?z*?-rX7D0+C0C(kjI>Fa8;y1uDh{4p*6lDJrpKt{E_53q&d)Uvt#H{ zIt#0P>Qy6}?lMTq^JP@z5p_8;GQX3`?R-x*U%r+b-rdIBwL?%B0z@1)SAHLH867aV zN97t2EmWp$&|jz5bYj6(A)h~zo795O`y`a{@BAi)lc`@`Uh0~fkRJWF=GghTjoE)D zoe{PGCA^-n+CWi_b=`4yJ8rK}7oDm`nTn^3W`nE}UCnW}y%5~k!>?3WI$hl__bCa9 zh0_QD80ez|i6fl8g1RxrBZq4A*<3O2Ud7-3Jm_s>-{Q;H{8CBTwU>BBJ0fABp@uD< z@_)Jj-xZ4W9bX{7vcCwv`=}bHHzG$rgyv=IW7`fxt!S%1weRepY==isp}JQU%{#8v zlKXH15)WQq1HDi4fJ>xrnLz*rTLph%jCGT4FcHVe$no=!lLatPUNQ8@wWy)wsdl@V`$VQX31dN9dT{}bOE1P+YKfky46f(Cs>o(Axh3JKW6+Iz|DHHqNc3HhC7GQk`mc2kT⩔QH?<@Sd{$xvwV*M#-t> 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

GR@H&owE^~8&C!S$YEePm+U=RM9BvLK!%ge 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 diff --git a/3d_armor/settingtypes.txt b/3d_armor/settingtypes.txt deleted file mode 100644 index c6c90de..0000000 --- a/3d_armor/settingtypes.txt +++ /dev/null @@ -1,65 +0,0 @@ - -[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 deleted file mode 100644 index 1f84859..0000000 --- a/3d_armor/shields/LICENSE.txt +++ /dev/null @@ -1,26 +0,0 @@ -[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 deleted file mode 100644 index 5a72097..0000000 --- a/3d_armor/shields/README.txt +++ /dev/null @@ -1,16 +0,0 @@ -[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 deleted file mode 100644 index 9b61dde..0000000 --- a/3d_armor/shields/crafting_guide.txt +++ /dev/null @@ -1,36 +0,0 @@ -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 deleted file mode 100644 index 585cc7a..0000000 --- a/3d_armor/shields/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -3d_armor diff --git a/3d_armor/shields/description.txt b/3d_armor/shields/description.txt deleted file mode 100644 index cb378bb..0000000 --- a/3d_armor/shields/description.txt +++ /dev/null @@ -1 +0,0 @@ -Adds visible shields to 3d armor. diff --git a/3d_armor/shields/init.lua b/3d_armor/shields/init.lua deleted file mode 100644 index 754b093..0000000 --- a/3d_armor/shields/init.lua +++ /dev/null @@ -1,236 +0,0 @@ --- 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 deleted file mode 100644 index 9a95629..0000000 --- a/3d_armor/shields/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index 4408c61..0000000 --- a/3d_armor/shields/textures/preview_index.txt +++ /dev/null @@ -1,11 +0,0 @@ -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 deleted file mode 100644 index 7ec86c467c3d9f935eea8796a3c40511aaff7029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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& diff --git a/3d_armor/shields/textures/shields_inv_shield_crystal.png b/3d_armor/shields/textures/shields_inv_shield_crystal.png deleted file mode 100644 index 18e90f5423d36766d212075a1a4c14e65b0673a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_inv_shield_diamond.png b/3d_armor/shields/textures/shields_inv_shield_diamond.png deleted file mode 100644 index e17239778569ccec0cf6d9b8f92fb1d808aa0308..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_inv_shield_gold.png b/3d_armor/shields/textures/shields_inv_shield_gold.png deleted file mode 100644 index d8e9d6b89a3c840f865dafc605314e245003c7c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_inv_shield_mithril.png b/3d_armor/shields/textures/shields_inv_shield_mithril.png deleted file mode 100644 index a9dfa06775b0805c827e903d72e4ef8025e11a10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_inv_shield_wood.png b/3d_armor/shields/textures/shields_inv_shield_wood.png deleted file mode 100644 index 2365086f96c11eb1102d70bed8d3a54db641cdd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_bronze.png b/3d_armor/shields/textures/shields_shield_bronze.png deleted file mode 100644 index e3a7ad4baf244d2e261b8ecefd2acd6ff71c8434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_bronze_preview.png b/3d_armor/shields/textures/shields_shield_bronze_preview.png deleted file mode 100644 index 8450130c75d07d3175d24b50f619e8927406138f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_cactus.png b/3d_armor/shields/textures/shields_shield_cactus.png deleted file mode 100644 index 8c69d76a7b7d6daf21afc4ae45af670de756aafd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_cactus_preview.png b/3d_armor/shields/textures/shields_shield_cactus_preview.png deleted file mode 100644 index ab2a5316da5348ca6bedcd97a31411a8919cb88f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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@ diff --git a/3d_armor/shields/textures/shields_shield_crystal.png b/3d_armor/shields/textures/shields_shield_crystal.png deleted file mode 100644 index 1ee039d8994aee864e6829935bcc54d4f4cf150e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_diamond.png b/3d_armor/shields/textures/shields_shield_diamond.png deleted file mode 100644 index 5bbb4fc1e8499fc40be100f67851e4f7dc80f9bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_diamond_preview.png b/3d_armor/shields/textures/shields_shield_diamond_preview.png deleted file mode 100644 index 78e69e61444dd0185645049201c13477769795ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png b/3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png deleted file mode 100644 index 4b85f48c3cef146939039e6c34b23f3e730e82d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png b/3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png deleted file mode 100644 index 52ba7eb482363a9ea97ed7de1ed206c46b46d671..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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- diff --git a/3d_armor/shields/textures/shields_shield_gold.png b/3d_armor/shields/textures/shields_shield_gold.png deleted file mode 100644 index 09fa339a8847f2004ed082b7087ceb2934f74026..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_gold_preview.png b/3d_armor/shields/textures/shields_shield_gold_preview.png deleted file mode 100644 index 43375448ce67b34daede2729a075d638ae9727f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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*> diff --git a/3d_armor/shields/textures/shields_shield_mithril.png b/3d_armor/shields/textures/shields_shield_mithril.png deleted file mode 100644 index 38558c4b03756bb011519df7af3b3807cfea5e88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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 diff --git a/3d_armor/shields/textures/shields_shield_mithril_preview.png b/3d_armor/shields/textures/shields_shield_mithril_preview.png deleted file mode 100644 index e5ca98739c05c6487441781131beb06603726216..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2d_Ffj6ax;Tbp+^PaAlCPKjXqV6Vi?V{m|hndgS>16Kcp&lc9R SpRNIh5QC?ypUXO@geCxnl7GJd diff --git a/3d_armor/shields/textures/shields_shield_steel.png b/3d_armor/shields/textures/shields_shield_steel.png deleted file mode 100644 index 108dffe703a0517915a03a7c97d0fdd01d9027ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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($ diff --git a/3d_armor/shields/textures/shields_shield_wood.png b/3d_armor/shields/textures/shields_shield_wood.png deleted file mode 100644 index 8cc5b85a314d6a19bb7f9613d193dd0638989b7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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} diff --git a/3d_armor/shields/textures/shields_shield_wood_preview.png b/3d_armor/shields/textures/shields_shield_wood_preview.png deleted file mode 100644 index c22465e48583da5e587a84a358252cf9e84b8de6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 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* diff --git a/3d_armor/wieldview/LICENSE.txt b/3d_armor/wieldview/LICENSE.txt deleted file mode 100644 index e1552c0..0000000 --- a/3d_armor/wieldview/LICENSE.txt +++ /dev/null @@ -1,18 +0,0 @@ -[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 deleted file mode 100644 index ffa5ef0..0000000 --- a/3d_armor/wieldview/README.txt +++ /dev/null @@ -1,23 +0,0 @@ -[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 deleted file mode 100644 index b6cac21..0000000 --- a/3d_armor/wieldview/depends.txt +++ /dev/null @@ -1 +0,0 @@ -3d_armor diff --git a/3d_armor/wieldview/description.txt b/3d_armor/wieldview/description.txt deleted file mode 100644 index 0d51ad9..0000000 --- a/3d_armor/wieldview/description.txt +++ /dev/null @@ -1 +0,0 @@ -Makes hand wielded items visible to other players. diff --git a/3d_armor/wieldview/init.lua b/3d_armor/wieldview/init.lua deleted file mode 100644 index 7f68732..0000000 --- a/3d_armor/wieldview/init.lua +++ /dev/null @@ -1,85 +0,0 @@ -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 deleted file mode 100644 index c5f4812..0000000 --- a/3d_armor/wieldview/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index 4d5133e..0000000 --- a/3d_armor/wieldview/transform.lua +++ /dev/null @@ -1,24 +0,0 @@ --- 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 4d4ea4c..660c7e5 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,6 @@ 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 @@ -39,10 +38,18 @@ All mods have their own licenses. See the license files in the subfoldes. Required: Minetest Game +ta4_jetpack requires the modpack 3d_armor. 3d_armor is itself a modpack and can't be integrated into the techage modpack. + ### History +#### 2020-07-02 +Updates (see local readme files): +- mod 3d_armor removed again (please install separately) +- techage v0.15 improvements and bugfixes +- autobahn v0.04 improvements + #### 2020-06-29 Updates (see local readme files): diff --git a/autobahn/init.lua b/autobahn/init.lua index 3dfa3a6..47caab1 100644 --- a/autobahn/init.lua +++ b/autobahn/init.lua @@ -10,6 +10,7 @@ 2017-11-11 v0.01 first version 2019-09-13 v0.02 adapted to 5.0.0 2020-03-19 v0.03 recipe added for techage bitumen + 2020-07-02 v0.04 further slope nodes added ]]-- @@ -122,16 +123,26 @@ local NodeTbl1 = { ["autobahn:node2"] = true, ["autobahn:node3"] = true, ["autobahn:node4"] = true, + ["autobahn:node5"] = true, ["autobahn:node12"] = true, ["autobahn:node22"] = true, ["autobahn:node32"] = true, ["autobahn:node42"] = true, + ["autobahn:node52"] = true, } local NodeTbl2 = { ["autobahn:node11"] = true, ["autobahn:node21"] = true, ["autobahn:node31"] = true, ["autobahn:node41"] = true, + ["autobahn:node51"] = true, +} +local NodeTbl3 = { + ["autobahn:node1"] = true, + ["autobahn:node2"] = true, + ["autobahn:node3"] = true, + ["autobahn:node4"] = true, + ["autobahn:node5"] = true, } -- 1) _o_ @@ -166,7 +177,7 @@ local function update_node(pos) npos = vector.add(pos, Facedir2Dir[facedir]) npos.y = npos.y - 1 nnode = minetest.get_node(npos) - if NodeTbl1[nnode.name] then + if NodeTbl1[nnode.name] and NodeTbl3[node.name] then node.name = node.name .. "1" minetest.swap_node(pos, node) return @@ -184,7 +195,7 @@ local function update_node(pos) npos = vector.add(pos, Facedir2Dir[facedir]) npos.y = npos.y - 1 nnode = minetest.get_node(npos) - if NodeTbl1[nnode.name] then + if NodeTbl1[nnode.name] and NodeTbl3[node.name] then node.name = node.name .. "1" node.param2 = 3 minetest.swap_node(pos, node) @@ -264,11 +275,13 @@ local Nodes = { {name="node21", tiles={"autobahn2.png","autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp1.obj", box=sb1, drop="node2"}, {name="node31", tiles={"autobahn3.png","autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp1.obj", box=sb1, drop="node3"}, {name="node41", tiles={"autobahn2.png^[transformR180]","autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp1.obj", box=sb1, drop="node4"}, + {name="node51", tiles={"autobahn4.png^[transformR90]","autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp1.obj", box=sb1, drop="node5"}, {name="node12", tiles={"autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp2.obj", box=sb2, drop="node1"}, {name="node22", tiles={"autobahn2.png","autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp2.obj", box=sb2, drop="node2"}, {name="node32", tiles={"autobahn3.png","autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp2.obj", box=sb2, drop="node3"}, {name="node42", tiles={"autobahn2.png^[transformR180]","autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp2.obj", box=sb2, drop="node4"}, + {name="node52", tiles={"autobahn4.png^[transformR90]","autobahn1.png"}, drawtype="mesh", mesh="autobahn_ramp2.obj", box=sb2, drop="node5"}, } for _,item in ipairs(Nodes) do diff --git a/techage/README.md b/techage/README.md index 1b1416b..08980dc 100644 --- a/techage/README.md +++ b/techage/README.md @@ -55,30 +55,32 @@ It is highly recommended that you install the following mods, too: * [compost](https://github.com/joe7575/compost): The garden soil is needed for the TA4 LED Grow Light based flower bed * [techpack_stairway](https://github.com/joe7575/techpack_stairway): Ladders, stairways, and bridges for your machines * [autobahn](https://github.com/joe7575/autobahn): Street blocks and slopes with stripes for faster traveling +* [[ta4_jetpack](https://github.com/joe7575/ta4_jetpack): A Jetpack with hydrogen as fuel and TA4 recipe -For large servers with many player, the following packages are recommended: +For large servers with many player `lsqlite3` is recommended. +The package has to be installed via [luarocks](https://luarocks.org/): -* `lua-mashal` for faster serialization/deserialization of data -* `lsqlite3` for storing node and network data - -Both packages are installed via [luarocks](https://luarocks.org/): - - luarocks install lua-marshal luarocks install lsqlite3 -To enable this `unsafe` packages, add 'techage' to the list of trusted mods in minetest.conf: +To enable this `unsafe` package, add 'techage' to the list of trusted mods in minetest.conf: secure.trusted_mods = techage For the installation of 'luarocks' (if not already available), see [luarocks](https://luarocks.org/) -If you enable 'lsqlite3' you also have to enable 'lua-marshal'. Available worlds will be converted -to 'lsqlite3' and 'lua-marshal', but there is no way back, so: +Available worlds will be converted to 'lsqlite3', but there is no way back, so: -** Never disable 'lsqlite3' and 'lua-marshal' for a world, which it was already used!** +** Never disable 'lsqlite3' for a world that has already been used!** -### History +### History + +**2020-07-02 V0.15** +- pipe valve added +- growlight bugfix +- further textures to gate/door blocks added +- cement recipe bugfix +- manual improvements **2020-06-29 V0.14** - quarry sound bugfix @@ -128,9 +130,3 @@ to 'lsqlite3' and 'lua-marshal', but there is no way back, so: **2019-06-16 V0.01** - First upload - -- -- -- -- - diff --git a/techage/doc/items.lua b/techage/doc/items.lua index 488eac6..ef5ac6b 100644 --- a/techage/doc/items.lua +++ b/techage/doc/items.lua @@ -113,6 +113,7 @@ techage.Items = { ta3_pipe = "techage:ta3_pipeS", ta3_pipe_wall_entry = "techage:ta3_pipe_wall_entry", ta3_mesecons_converter = "techage:ta3_mesecons_converter", + ta3_valve = "techage:ta3_valve_closed", ---------------------------- techage_ta4 = "techage_ta4.png", ta4_windturbine = "techage:ta4_wind_turbine", diff --git a/techage/doc/manual_DE.lua b/techage/doc/manual_DE.lua index 36c0d11..aeb9a73 100644 --- a/techage/doc/manual_DE.lua +++ b/techage/doc/manual_DE.lua @@ -76,6 +76,7 @@ techage.manual_DE.aTitel = { "3,TA Einfülltrichter / TA Liquid Filler", "3,TA4 Röhre / Pipe", "3,TA3 Rohr/Wanddurchbruch / TA3 Pipe Wall Entry Blöcke", + "3,TA Ventil / TA Valve", "2,Öl-Förderung", "3,TA3 Ölexplorer / Oil Explorer", "3,TA3 Ölbohrkiste / Oil Drill Box", @@ -716,6 +717,11 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", + "Für die gelben Röhren gibt es ein Ventil\\, welches über Mausklicks geöffnet und geschlossen werden kann.\n".. + "Das Ventil kann auch über on/off Kommandos angesteuert werden.\n".. + "\n".. + "\n".. + "\n", "Um deine Generatoren und Öfen mit Öl betreiben zu können\\, muss du zuerst nach Öl suchen und einen Bohrturm errichten und danach das Öl fördern.\n".. "Dazu dienen dir TA3 Ölexplorer\\, TA3 Ölbohrkiste und TA3 Ölpumpe.\n".. "\n".. @@ -1212,7 +1218,9 @@ techage.manual_DE.aText = { "\n".. "\n".. "\n", - "Der Reaktor dient dazu\\, die über den Destillationsturm oder aus anderen Rezepten gewonnenen Zutaten zu neuen Produkten weiter zu verarbeiten. Ein Reaktor besteht aus:\n".. + "Der Reaktor dient dazu\\, die über den Destillationsturm oder aus anderen Rezepten gewonnenen Zutaten zu neuen Produkten weiter zu verarbeiten. Der Plan links zeigt nur eine mögliche Variante\\, da die Anordnung der Silos und Tanks rezeptabhängig ist.\n".. + "\n".. + "Ein Reaktor besteht aus:\n".. "\n".. " - div. Tanks und Silos mit den Zutaten\\, die über Leitungen mit dem Dosierer verbunden sind\n".. " - optional einem Reaktorsockel\\, welcher die Abfälle aus dem Reaktor ableitet (nur bei Rezepten mit zwei Ausgangsstoffen notwendig)\n".. @@ -1560,6 +1568,7 @@ techage.manual_DE.aItemName = { "ta3_filler", "ta3_pipe", "ta3_pipe_wall_entry", + "ta3_valve", "techage_ta3", "ta3_oilexplorer", "ta3_drillbox", @@ -1754,6 +1763,7 @@ techage.manual_DE.aPlanTable = { "", "", "", + "", "ta3_loading", "", "", diff --git a/techage/doc/manual_EN.lua b/techage/doc/manual_EN.lua index 8ed08f0..7786168 100644 --- a/techage/doc/manual_EN.lua +++ b/techage/doc/manual_EN.lua @@ -76,6 +76,7 @@ techage.manual_EN.aTitel = { "3,TA Liquid Filler", "3,TA4 Pipe", "3,TA3 Pipe Wall Entry Blocks", + "3,TA Valve", "2,Oil Production", "3,TA3 Oil Explorer", "3,TA3 Oil Drill Box", @@ -714,6 +715,11 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", + "There is a valve for the yellow pipes\\, which can be opened and closed with a click of the mouse.\n".. + "The valve can also be controlled via on/off commands.\n".. + "\n".. + "\n".. + "\n", "In order to run your generators and stoves with oil\\, you must first look for oil and build a derrick and then extract the oil.\n".. "TA3 oil explorer\\, TA3 oil drilling box and TA3 pump jack are used for this.\n".. "\n".. @@ -1202,7 +1208,10 @@ techage.manual_EN.aText = { "\n".. "\n".. "\n", - "The reactor is used to process the ingredients obtained from the distillation tower or from other recipes into new products. A reactor consists of:\n".. + "The reactor is used to process the ingredients obtained from the distillation tower or from other recipes into new products.\n".. + "The plan on the left shows only one possible variant\\, since the arrangement of the silos and tanks depends on the recipe.\n".. + "\n".. + "A reactor consists of:\n".. "\n".. " - Various tanks and silos with the ingredients that are connected to the doser via pipes\n".. " - optionally a reactor base\\, which discharges the waste from the reactor (only necessary for recipes with two starting materials)\n".. @@ -1550,6 +1559,7 @@ techage.manual_EN.aItemName = { "ta3_filler", "ta3_pipe", "ta3_pipe_wall_entry", + "ta3_valve", "techage_ta3", "ta3_oilexplorer", "ta3_drillbox", @@ -1744,6 +1754,7 @@ techage.manual_EN.aPlanTable = { "", "", "", + "", "ta3_loading", "", "", diff --git a/techage/init.lua b/techage/init.lua index 4b08c3b..d603588 100644 --- a/techage/init.lua +++ b/techage/init.lua @@ -127,6 +127,7 @@ dofile(MP.."/steam_engine/flywheel.lua") -- Liquids I dofile(MP.."/liquids/liquid_pipe.lua") +dofile(MP.."/liquids/valve.lua") dofile(MP.."/liquids/node_api.lua") dofile(MP.."/liquids/pipe_wall_entry.lua") diff --git a/techage/items/cement.lua b/techage/items/cement.lua index 92a7d97..1947567 100644 --- a/techage/items/cement.lua +++ b/techage/items/cement.lua @@ -47,6 +47,7 @@ minetest.register_craft({ recipe = { {"bucket:bucket_water", "techage:cement_powder"}, {"group:sand", "default:gravel"}, - } + }, + replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}, }) diff --git a/techage/lamps/growlight.lua b/techage/lamps/growlight.lua index c0bfd79..f0403fe 100644 --- a/techage/lamps/growlight.lua +++ b/techage/lamps/growlight.lua @@ -51,8 +51,10 @@ local function node_timer(pos, elapsed) if plant_node and plant_node.name == "air" then if mem.grow_pos[plant_idx] then local idx = math.floor(math.random(1, #Flowers)) - minetest.set_node(plant_pos, {name = Flowers[idx]}) - mem.grow_pos[plant_idx] = false + if Flowers[idx] then + minetest.set_node(plant_pos, {name = Flowers[idx]}) + mem.grow_pos[plant_idx] = false + end else mem.grow_pos[plant_idx] = true end diff --git a/techage/liquids/liquid_pipe.lua b/techage/liquids/liquid_pipe.lua index 4da00ee..19925c7 100644 --- a/techage/liquids/liquid_pipe.lua +++ b/techage/liquids/liquid_pipe.lua @@ -29,13 +29,15 @@ local Pipe = tubelib2.Tube:new({ tube_type = "pipe2", primary_node_names = { "techage:ta3_pipeS", "techage:ta3_pipeA", - "techage:ta3_pipe_wall_entry", + "techage:ta3_pipe_wall_entry", "techage:ta3_valve_open", }, - secondary_node_names = {}, + secondary_node_names = {"techage:ta3_valve_closed"}, after_place_tube = function(pos, param2, tube_type, num_tubes) local name = minetest.get_node(pos).name if name == "techage:ta3_pipe_wall_entry" then minetest.swap_node(pos, {name = "techage:ta3_pipe_wall_entry", param2 = param2}) + elseif name == "techage:ta3_valve_open" then + minetest.swap_node(pos, {name = "techage:ta3_valve_open", param2 = param2}) else minetest.swap_node(pos, {name = "techage:ta3_pipe"..tube_type, param2 = param2}) end diff --git a/techage/liquids/valve.lua b/techage/liquids/valve.lua new file mode 100644 index 0000000..d594667 --- /dev/null +++ b/techage/liquids/valve.lua @@ -0,0 +1,204 @@ +--[[ + + TechAge + ======= + + Copyright (C) 2019-2020 Joachim Stolberg + + GPL v3 + See LICENSE.txt for more information + + TA3 Valve + +]]-- + +local S2P = minetest.string_to_pos +local P2S = minetest.pos_to_string +local M = minetest.get_meta +local S = techage.S +local Pipe = techage.LiquidPipe +local liquid = techage.liquid + +local function switch_node(pos, node) + if node.name == "techage:ta3_valve_open" then + node.name = "techage:ta3_valve_closed" + --node.name = "default:dirt" + minetest.swap_node(pos, node) + local number = M(pos):get_string("node_number") + M(pos):set_string("infotext", S("TA3 Valve closed")..": "..number) + Pipe:after_dig_tube(pos, {name = "techage:ta3_valve_open", param2 = node.param2}) + elseif node.name == "techage:ta3_valve_closed" then + node.name = "techage:ta3_valve_open" + minetest.swap_node(pos, node) + local number = M(pos):get_string("node_number") + M(pos):set_string("infotext", S("TA3 Valve open")..": "..number) + Pipe:after_place_tube(pos) + end + minetest.sound_play("techage_valve", { + pos = pos, + gain = 1, + max_hear_distance = 10}) +end + +local function on_rightclick(pos, node, clicker) + if not minetest.is_protected(pos, clicker:get_player_name()) then + switch_node(pos, node) + end +end + +--local function node_timer(pos, elapsed) +-- if techage.is_activeformspec(pos) then +-- local nvm = techage.get_nvm(pos) +-- M(pos):set_string("formspec", liquid.formspec(pos, nvm)) +-- return true +-- end +-- return false +--end + +--local function can_dig(pos, player) +-- if minetest.is_protected(pos, player:get_player_name()) then +-- return false +-- end +-- return liquid.is_empty(pos) +--end + +--local function take_liquid(pos, indir, name, amount) +-- amount, name = liquid.srv_take(pos, indir, name, amount) +-- if techage.is_activeformspec(pos) then +-- local nvm = techage.get_nvm(pos) +-- M(pos):set_string("formspec", liquid.formspec(pos, nvm)) +-- end +-- return amount, name +--end + +--local function put_liquid(pos, indir, name, amount) +-- -- check if it is not powder +-- local ndef = minetest.registered_craftitems[name] or {} +-- if not ndef.groups or ndef.groups.powder ~= 1 then +-- local leftover = liquid.srv_put(pos, indir, name, amount) +-- if techage.is_activeformspec(pos) then +-- local nvm = techage.get_nvm(pos) +-- M(pos):set_string("formspec", liquid.formspec(pos, nvm)) +-- end +-- return leftover +-- end +-- return amount +--end + +minetest.register_node("techage:ta3_valve_open", { + description = S("TA Valve"), + tiles = { + "techage_gaspipe.png^techage_gaspipe_valve_open.png^[transformR90", + "techage_gaspipe.png^techage_gaspipe_valve_open.png^[transformR90", + "techage_gaspipe.png^techage_gaspipe_valve_open.png", + "techage_gaspipe.png^techage_gaspipe_valve_open.png", + "techage_gaspipe_valve_hole.png", + "techage_gaspipe_valve_hole.png", + }, + + after_place_node = function(pos, placer, itemstack, pointed_thing) + if not Pipe:after_place_tube(pos, placer, pointed_thing) then + minetest.remove_node(pos) + return true + end + local meta = M(pos) + local nvm = techage.get_nvm(pos) + nvm.liquid = {} + local number = techage.add_node(pos, "techage:ta3_valve_closed") + meta:set_string("node_number", number) + meta:set_string("owner", placer:get_player_name()) + meta:set_string("infotext", S("TA3 Valve open")..": "..number) + return false + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + Pipe:after_dig_tube(pos, oldnode, oldmetadata) + end, + + on_rightclick = on_rightclick, + + paramtype2 = "facedir", -- important! + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-1/8, -1/8, -4/8, 1/8, 1/8, 4/8}, + {-3/16, -3/16, -3/16, 3/16, 3/16, 3/16}, + }, + }, + on_rotate = screwdriver.disallow, -- important! + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {crumbly = 2, cracky = 2, snappy = 2}, + sounds = default.node_sound_metal_defaults(), +}) + +minetest.register_node("techage:ta3_valve_closed", { + description = S("TA Valve"), + tiles = { + "techage_gaspipe.png^techage_gaspipe_valve_closed.png^[transformR90", + "techage_gaspipe.png^techage_gaspipe_valve_closed.png^[transformR90", + "techage_gaspipe.png^techage_gaspipe_valve_closed.png", + "techage_gaspipe.png^techage_gaspipe_valve_closed.png", + "techage_gaspipe_valve_hole.png", + "techage_gaspipe_valve_hole.png", + }, + + tubelib2_on_update2 = function(pos, outdir, tlib2, node) + liquid.update_network(pos, outdir) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + Pipe:after_dig_node(pos) + techage.remove_node(pos, oldnode, oldmetadata) + end, + + on_rightclick = on_rightclick, + + paramtype2 = "facedir", -- important! + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-1/8, -1/8, -4/8, 1/8, 1/8, 4/8}, + {-3/16, -3/16, -3/16, 3/16, 3/16, 3/16}, + }, + }, + on_rotate = screwdriver.disallow, -- important! + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {crumbly = 2, cracky = 2, snappy = 2, not_in_creative_inventory = 1}, + sounds = default.node_sound_metal_defaults(), + drop = "techage:ta3_valve_open", +}) + +techage.register_node({"techage:ta3_valve_closed", "techage:ta3_valve_open"}, { + on_recv_message = function(pos, src, topic, payload) + local node = techage.get_node_lvm(pos) + if topic == "on" and node.name == "techage:ta3_valve_closed" then + switch_node(pos, node) + return true + elseif topic == "off" and node.name == "techage:ta3_valve_open" then + switch_node(pos, node) + return true + elseif topic == "state" then + if node.name == "techage:ta3_valve_open" then + return "on" + end + return "off" + else + return "unsupported" + end + end, +}) + +minetest.register_craft({ + output = "techage:ta3_valve_closed", + recipe = { + {"", "", ""}, + {"techage:ta3_pipeS", "techage:iron_ingot", "techage:ta3_pipeS"}, + {"", "", ""}, + }, +}) diff --git a/techage/logic/doorblock.lua b/techage/logic/doorblock.lua index 70108db..bdca9bd 100644 --- a/techage/logic/doorblock.lua +++ b/techage/logic/doorblock.lua @@ -16,27 +16,30 @@ local M = minetest.get_meta local S = techage.S -- See also gateblock!!! -local NUM_TEXTURES = 20 +local NUM_TEXTURES = 22 local sTextures = "Wood,Aspen Wood,Jungle Wood,Pine Wood,".. "Cobblestone,Sandstone,Stone,Desert Sandstone,".. "Desert Stone,Silver Sandstone,Mossy Cobble,Desert Cobble,".. "Copper,Steel,Tin,Coral,".. - "Glas,Obsidian Glas,Ice,Gate Wood" + "Glas,Obsidian Glas,Basalt Glass,Basalt Glass 2,".. + "Ice,Gate Wood" local tTextures = { ["Wood"]=1, ["Aspen Wood"]=2, ["Jungle Wood"]=3, ["Pine Wood"]=4, ["Cobblestone"]=5, ["Sandstone"]=6, ["Stone"]=7, ["Desert Sandstone"]=8, ["Desert Stone"]=9, ["Silver Sandstone"]=10, ["Mossy Cobble"]=11, ["Desert Cobble"]=12, ["Copper"]=13, ["Steel"]=14, ["Tin"]=15, ["Coral"]=16, - ["Glas"]=17, ["Obsidian Glas"]=18, ["Ice"]=19, ["Gate Wood"]=20, + ["Glas"]=17, ["Obsidian Glas"]=18, ["Basalt Glass"]=19, ["Basalt Glass 2"]=20, + ["Ice"]=21, ["Gate Wood"]=22, } local tPgns = {"default_wood.png", "default_aspen_wood.png", "default_junglewood.png", "default_pine_wood.png", "default_cobble.png", "default_sandstone.png", "default_stone.png", "default_desert_sandstone.png", "default_desert_stone_block.png", "default_silver_sandstone.png", "default_mossycobble.png", "default_desert_cobble.png", "default_copper_block.png", "default_steel_block.png", "default_tin_block.png", "default_coral_skeleton.png", - "default_glass.png", "default_obsidian_glass.png", "default_ice.png", "techage_gate.png"} + "default_glass.png", "default_obsidian_glass.png", "techage_basalt_glass.png", "techage_basalt_glass2.png", + "default_ice.png", "techage_gate.png"} for idx,pgn in ipairs(tPgns) do minetest.register_node("techage:doorblock"..idx, { @@ -84,6 +87,7 @@ for idx,pgn in ipairs(tPgns) do paramtype = "light", paramtype2 = "facedir", + use_texture_alpha = true, sunlight_propagates = true, sounds = default.node_sound_stone_defaults(), groups = {cracky=2, choppy=2, crumbly=2, not_in_creative_inventory = idx==NUM_TEXTURES and 0 or 1}, @@ -102,3 +106,32 @@ minetest.register_craft({ }, }) + + +minetest.register_lbm({ + label = "Upgrade doors and gates", + name = "techage:replace_legacy_doors_and_gates", + + nodenames = { + "techage:doorblock19", + "techage:doorblock20", + "techage:gateblock19", + "techage:gateblock20", + }, + + run_at_every_load = false, + + action = function(pos, node) + if node.name == "techage:doorblock19" then + node.name = "techage:doorblock21" + elseif node.name == "techage:doorblock20" then + node.name = "techage:doorblock22" + elseif node.name == "techage:gateblock19" then + node.name = "techage:gateblock21" + elseif node.name == "techage:gateblock20" then + node.name = "techage:gateblock22" + end + minetest.swap_node(pos, node) + end, +}) + diff --git a/techage/logic/gateblock.lua b/techage/logic/gateblock.lua index f5ceb55..b43a600 100644 --- a/techage/logic/gateblock.lua +++ b/techage/logic/gateblock.lua @@ -16,27 +16,30 @@ local M = minetest.get_meta local S = techage.S -- See also doorblock!!! -local NUM_TEXTURES = 20 +local NUM_TEXTURES = 22 local sTextures = "Wood,Aspen Wood,Jungle Wood,Pine Wood,".. "Cobblestone,Sandstone,Stone,Desert Sandstone,".. "Desert Stone,Silver Sandstone,Mossy Cobble,Desert Cobble,".. "Copper,Steel,Tin,Coral,".. - "Glas,Obsidian Glas,Ice,Gate Wood" + "Glas,Obsidian Glas,Basalt Glass,Basalt Glass 2,".. + "Ice,Gate Wood" local tTextures = { ["Wood"]=1, ["Aspen Wood"]=2, ["Jungle Wood"]=3, ["Pine Wood"]=4, ["Cobblestone"]=5, ["Sandstone"]=6, ["Stone"]=7, ["Desert Sandstone"]=8, ["Desert Stone"]=9, ["Silver Sandstone"]=10, ["Mossy Cobble"]=11, ["Desert Cobble"]=12, ["Copper"]=13, ["Steel"]=14, ["Tin"]=15, ["Coral"]=16, - ["Glas"]=17, ["Obsidian Glas"]=18, ["Ice"]=19, ["Gate Wood"]=20, + ["Glas"]=17, ["Obsidian Glas"]=18, ["Basalt Glass"]=19, ["Basalt Glass 2"]=20, + ["Ice"]=21, ["Gate Wood"]=22, } local tPgns = {"default_wood.png", "default_aspen_wood.png", "default_junglewood.png", "default_pine_wood.png", "default_cobble.png", "default_sandstone.png", "default_stone.png", "default_desert_sandstone.png", "default_desert_stone_block.png", "default_silver_sandstone.png", "default_mossycobble.png", "default_desert_cobble.png", "default_copper_block.png", "default_steel_block.png", "default_tin_block.png", "default_coral_skeleton.png", - "default_glass.png", "default_obsidian_glass.png", "default_ice.png", "techage_gate.png"} + "default_glass.png", "default_obsidian_glass.png", "techage_basalt_glass.png", "techage_basalt_glass2.png", + "default_ice.png", "techage_gate.png"} for idx,pgn in ipairs(tPgns) do minetest.register_node("techage:gateblock"..idx, { @@ -70,6 +73,7 @@ for idx,pgn in ipairs(tPgns) do paramtype = "light", paramtype2 = "facedir", + use_texture_alpha = true, sunlight_propagates = true, sounds = default.node_sound_stone_defaults(), groups = {cracky=2, choppy=2, crumbly=2, not_in_creative_inventory = idx==NUM_TEXTURES and 0 or 1}, diff --git a/techage/manuals/manual_ta3_DE.md b/techage/manuals/manual_ta3_DE.md index 1c65dac..0e9b713 100644 --- a/techage/manuals/manual_ta3_DE.md +++ b/techage/manuals/manual_ta3_DE.md @@ -298,6 +298,13 @@ Die Blöcke dienen als Wanddurchbrüche für Röhren, so dass keine Löcher offe [ta3_pipe_wall_entry|image] +### TA Ventil / TA Valve + +Für die gelben Röhren gibt es ein Ventil, welches über Mausklicks geöffnet und geschlossen werden kann. +Das Ventil kann auch über on/off Kommandos angesteuert werden. + +[ta3_valve|image] + ## Öl-Förderung diff --git a/techage/manuals/manual_ta3_EN.md b/techage/manuals/manual_ta3_EN.md index 6dbfa20..bcf463f 100644 --- a/techage/manuals/manual_ta3_EN.md +++ b/techage/manuals/manual_ta3_EN.md @@ -297,6 +297,14 @@ The blocks serve as wall openings for tubes, so that no holes remain open. [ta3_pipe_wall_entry|image] +### TA Valve + +There is a valve for the yellow pipes, which can be opened and closed with a click of the mouse. +The valve can also be controlled via on/off commands. + +[ta3_valve|image] + + ## Oil Production In order to run your generators and stoves with oil, you must first look for oil and build a derrick and then extract the oil. diff --git a/techage/manuals/manual_ta4_DE.md b/techage/manuals/manual_ta4_DE.md index b08d5bc..39ad7db 100644 --- a/techage/manuals/manual_ta4_DE.md +++ b/techage/manuals/manual_ta4_DE.md @@ -223,7 +223,9 @@ Die Brennstoffzelle kann bis zu 25 ku an Strom abgeben und benötigt dazu alle 4 ## Chemischer Reaktor / chemical reactor -Der Reaktor dient dazu, die über den Destillationsturm oder aus anderen Rezepten gewonnenen Zutaten zu neuen Produkten weiter zu verarbeiten. Ein Reaktor besteht aus: +Der Reaktor dient dazu, die über den Destillationsturm oder aus anderen Rezepten gewonnenen Zutaten zu neuen Produkten weiter zu verarbeiten. Der Plan links zeigt nur eine mögliche Variante, da die Anordnung der Silos und Tanks rezeptabhängig ist. + +Ein Reaktor besteht aus: - div. Tanks und Silos mit den Zutaten, die über Leitungen mit dem Dosierer verbunden sind - optional einem Reaktorsockel, welcher die Abfälle aus dem Reaktor ableitet (nur bei Rezepten mit zwei Ausgangsstoffen notwendig) - dem Reaktorständer, der auf den Sockel gesetzt werden muss (sofern vorhanden). Der Ständer hat einen Stromanschluss und zieht bei Betrieb 8 ku. diff --git a/techage/manuals/manual_ta4_EN.md b/techage/manuals/manual_ta4_EN.md index 9fc5120..8247146 100644 --- a/techage/manuals/manual_ta4_EN.md +++ b/techage/manuals/manual_ta4_EN.md @@ -223,7 +223,10 @@ The fuel cell can deliver up to 25 ku of electricity and needs a hydrogen item e ## Chemical Reactor -The reactor is used to process the ingredients obtained from the distillation tower or from other recipes into new products. A reactor consists of: +The reactor is used to process the ingredients obtained from the distillation tower or from other recipes into new products. +The plan on the left shows only one possible variant, since the arrangement of the silos and tanks depends on the recipe. + +A reactor consists of: - Various tanks and silos with the ingredients that are connected to the doser via pipes - optionally a reactor base, which discharges the waste from the reactor (only necessary for recipes with two starting materials) - the reactor stand, which must be placed on the base (if available). The stand has a power connection and draws 8 ku during operation. diff --git a/techage/manuals/toc_DE.md b/techage/manuals/toc_DE.md index a78fa08..8ca24f5 100644 --- a/techage/manuals/toc_DE.md +++ b/techage/manuals/toc_DE.md @@ -75,6 +75,7 @@ - [TA Einfülltrichter / TA Liquid Filler](./manual_ta3_DE.md#ta-einfülltrichter--ta-liquid-filler) - [TA4 Röhre / Pipe](./manual_ta3_DE.md#ta4-röhre--pipe) - [TA3 Rohr/Wanddurchbruch / TA3 Pipe Wall Entry Blöcke](./manual_ta3_DE.md#ta3-rohrwanddurchbruch--ta3-pipe-wall-entry-blöcke) + - [TA Ventil / TA Valve](./manual_ta3_DE.md#ta-ventil--ta-valve) - [Öl-Förderung](./manual_ta3_DE.md#Öl-förderung) - [TA3 Ölexplorer / Oil Explorer](./manual_ta3_DE.md#ta3-Ölexplorer--oil-explorer) - [TA3 Ölbohrkiste / Oil Drill Box](./manual_ta3_DE.md#ta3-Ölbohrkiste--oil-drill-box) diff --git a/techage/manuals/toc_EN.md b/techage/manuals/toc_EN.md index e708383..1c997e3 100644 --- a/techage/manuals/toc_EN.md +++ b/techage/manuals/toc_EN.md @@ -75,6 +75,7 @@ - [TA Liquid Filler](./manual_ta3_EN.md#ta-liquid-filler) - [TA4 Pipe](./manual_ta3_EN.md#ta4-pipe) - [TA3 Pipe Wall Entry Blocks](./manual_ta3_EN.md#ta3-pipe-wall-entry-blocks) + - [TA Valve](./manual_ta3_EN.md#ta-valve) - [Oil Production](./manual_ta3_EN.md#oil-production) - [TA3 Oil Explorer](./manual_ta3_EN.md#ta3-oil-explorer) - [TA3 Oil Drill Box](./manual_ta3_EN.md#ta3-oil-drill-box) diff --git a/techage/sounds/techage_valve.ogg b/techage/sounds/techage_valve.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7530c0d8c89d8758ba2c72c2e0c89805c21e9689 GIT binary patch literal 7074 zcmeHKXH*o+w(bEXNt8hW$$~Hl3J4NK7y+3<(vY)&BRMlf2`b1DJ;Wi11O*0UhMWYH zU?3w&qC*gnEO5w4;Ps&AhWFlD_pWvBzxQfYS65f<+SU8pU+-P5ZD*$kkO9BSLda$y zse2N^L;>M~__%r6ICzl;$oLFNHvo`}{&~kkv`H)fR!A!$;L~2KN+pBB(La_c@}GJ{ zz-eO#cl%4)o_0LW4mO6z+IbK>5@O;~V&Y;_JVKMt!~RxbB;AmcKiBfZZx})VDgX%O zp6lO(i>uZvj{#%K^@@z3?x zbRG!s;=F9sag93O3M5=a4d+mo5~UgU4q&;PLpB9EX2VmF!!D0VOg(so8_0S(gKBL93{b z5pDrMpEl?~Z^m-8m+*h;1#OhT*Y1_n z{QPg$pTL4F=lKo(Nc>MSgfeEviub_;-r;WZeq<8wIfza}^&jb^0W` z&5o7$2j-AC^x&BHARN{)Abmhis`DNzJ*MMNv#0~qWs-FBeJ^2xFBCTH)6IrXTir^1g zc`Rf~_7tJ-JOIRJQvF$!))X3;HIRWXil!3O zqQM)Cp2wy87Biy-vzWozU(bK(_CNOmH&T+c_@xxw3*3m&;y+^7UwYC1U;KXn0VM!X z3MB`xa2@-WNPtHRX!t6V2qyI?w8I$ykV!lg5cT{^_%i!MrRCYEaRIYJS!?U`d?z&jj-|7;d5X+c4Qehk_q z@xD+>4!)*Pr2VQGxRN9^Op$y%LcFSEU}2Pq9pdbkiyze9HR zMLbGkh9is-31b7tC~??MWiTsaQM2Hg4~c-0&UgYieH0ZhHU=e}hb4{Spl~W26ae(U zf=A8USuHas&MSvM%0B_1AOLMt7I^A0Nw-T$yaOWcpDvh^bJv8_nf1?UU02ZFPyx}4 zp93)tNEb@EV6^!Ycg@1@{+X~yJig`+g{~{AMm{cnq@{~(SMQiW4Oq@O6D2MBD_qXK z!ix|~UC50REru&yAi!5@dO+#q)%+-Tl;j!XV>8JCKQ!?tQco?fKQoIR!8XP%( zRX7_+DpeAx0GZiTuTI&2ZvOE&`uBtBpFL_|=&?I^6*JP%nNR~^;67BmCtwLEBuqdL z34?*&K*FA(kO-mU9-EgA@_1}M8GHI?@2AM|?0>!?18#9~0548Er&9(zg6G(vseUvZ^ zcN&}xgM#G4p->3UY<)N)FIyjp5WvR4VZ0zx!mx0C6b!@+4&nvkBS7lqfxroY4GIaO zfR91`3dOXBQl(yM`kd7uaamksU<9@~y1(r?I9C7+*OjBa2Gr)AawzYi)vjFI=s zeI*E#wFL+z4?6(^UKBUz)O4TZRf)OuK!mHxeX@yJI<@;H-LWJDF0P{9LJ>+GNiz@J z_PDS6zet`u{!eJ21QY?_G%XJgUrIIY?{rc0(F`$+u}mO2m4IJ|5HN5Z|2v+@69EDrbO6zp;r(=KS{xT&#(k(VCA9o+)>*D6@=jLtiX6NdGVb_*Vao3T(;48EEsyU8~ zz@$8wIfXw$zeY(rCA0eNf=$ z)r-xqt@nAx;6-o8i-Ye~j*Hxw9m|(x-8qmyJe*_DT1T8Vl6PZPp0+pM`1D1X@%DYY zo@)naGqtszO$LU<8n-Llb>3xOR?^eh`fr}DM6YdM&ESd~W+N;`4uVN8-VtVe4vqXy z+(B=*8djg|G!gdCP@*sKjaWY%!{t^elHYIDcUef^`f%H|$8I%S^nobk%*&5^Uu_&V zqF!TSc5De;-X=rHZxbdTTO5yF^-iH+{ zr@({N-R4DI1B6`dk%nAa=MloBa?)sUBBLcFA*8SCFp9I%^jg9=*Vg5Wm0rI|1u^9L zq^BLEJvulmqndu0Hgqc7bfkaC-PZ#gpqUlxEp z7q|7Hqq6F40YV`qkGY8*BGo>o3GpB35pItyL*rE#TTskr}S;w zJ5C3pdyMNApEO~$o6XY{R#*pa8r_uBuTiA`onAlVqHl&Jj8=p!Fx?lkx%Ms@U{4_5 zWVoL=Vd<}-`9mN)K66d2vv;QZp!!|w@92~yyJ$`Kt;K0%;X(1eKwH6t^XE2ue~4dh z4~h%q4#0(f)8c!)(O0XhE+?0kEiH>GZoWxrByMbFyjWLiDZHXtSN{%evh$*@*g|+6 z8J~Wo$TRZFq7f6tc<1M+hwaI8g?Iw~5vOosNM&j7876g~-p#UG0DZ(Gr@Q5XYtGy= zD%SB|PgI%{at=pOIf9oezF$E2Egc?4aQl3S$*?@!T<218F20XVrZQGu-9&JEvXy^k&* zOkHKGOk!}E9hu#od7fcVSQPza|C?B$el`9qcVS#i_SAyw_KwlAM$bN_FydPXcZg!n z;e^MH8@99NUY*uXovC9PU6Y&o@poqme;gUrZ%O7SNEAiaU!QjP)a_?Qurzf@IJiIj z#5^#0b#K?7`AXa_XMdVDv`g>KFGV z^YFJcatMyI0Xm}hCO5gwG1Yg2cQ!t#a_5f@?(K}5?pIYD2I*Ya8^YsFM;j6<$D7no zBNS`v_m=Vrd?PF7L(_YE!{aH_6GKvVGjNOmMTc1+7p>Hr^1F5Y=8MkdssQ|rl+Aer z&_Yw7#a|J(&5SK~>M!V=?qi`l*V>xxYU#G(WDxPlKR#N~Vyu44%1*B1gZ7)G{@VPp z4cyZBmci$8he+*IBIb3ZyH!Bajl=8LSA`WlZm-Vo3>3u$k2NpZwkhE2D@Q2Dg_0H( zqYvipwi%h}*DhE`2Dq4y2Ht*WKfGR2kmDOEn7hATgE!omUVKs~PN(goGE=;lSLv;} zo1_F-R_E~10qXT?4ip!rs24@L`VVqbpQ_-uA{eR((c0- zY9z*wxOM{%)_9p7y&{f|Jux*?_l&n~sopDfH07=z$V+&`D)MPh6zXW;R%>M+z?NW$ zGf2ofVVdA$u@t{ZEx*)5G!dD~($Ko*qghJ}pm33nH)J5)U!bPS=bFhJxWhhXUb(D| zimX;6_L$A4XD?I*v-OU2BxM-+UoaqyPLJi7*Y3@G%NP*F}_xmU7!p!NGwnu!ix1kmk$z22eM)bDy%2^_XFYQZtPH{b z_(tcFyN4{#VVD)8=_MhznYF@IOtZhA`WCoXew3t&)AV&73PD!NdaW4;4s5ZnS?RYxP~9dPnuuO9h;7_t(-w zmh|J`1JLCy^9OT9C(C`B%&8NKPttroux;RKK9D;0#S!6&GWBFMCADzbonc4gQ>$ zChVz=v}e=v2vzA8pBMAh=1p2TS+Zk?l|r7z46TFu_l_Lk<74!ZvlA@Qs>`PUVSflr zlr5X~xtxGhYX8YUcH}mXP(cZjQl6`Awzik!wi;&^mOcp*>9%j~x;J2IfAEGNtQ0>R z`B_xGH(f%xb3AJtSl3&5BXBd*pJ}G{@+r$Kj`HCg_@%ci6Zf+oy2kbOmdjS8_SWjS zAbZuhOlFb?06q)_7SbT6vcM?V=;vbCP^N!$nRwMPpAC0(=XFYi+~T)*nJBb;y@<-m$>3d;VK#&Pd%l^oj<)Ran%MG{*brXz#TVBq)82m_K)YdgI|l^?gdXUK zUZ@c;b?j1DU}txszvH0>=x;#{BJWdNDNNTosPFS*>G!7G!uu7@K5P%#@MFJPe?1sq zp4Z)<`nh!BiBbK+n2Mlfrwiq%xHHQ-Fi>sw2OgT5wz#&C~3G-UZQyOcv^VI{EL|&*2F`fUXA3r*xixb_h#L61u;WDbvZcYQlt#|(2e18<7T1N3h6>%G9$38rSH*d{@sP%HP)s&YxIJu(AZ*aQC4%^hGkfT@By4noV zZJ!sv?#%gEiD?aVwobCE=WLs5YG;Zho}KtGT6Meq1igb(;gV|y58r{%xmT2w^c3j+ zdC}FR!r6C@!`_4a0UhmxW(Mu;r192;rEQ|4y`1baakBuIyTjpGlV)KU{^6N}f={!> z$#0HEiW#<;Y^&Gf9@V@cP*pdVZvejjYD>!SOxDh~KB!>~xv literal 0 HcmV?d00001 diff --git a/techage/textures/techage_gaspipe_valve_closed.png b/techage/textures/techage_gaspipe_valve_closed.png new file mode 100644 index 0000000000000000000000000000000000000000..58b0b9050c4acda84a308e0a6c23c9b73531e289 GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzwj^(N7a$D;Kb?2i11Zh|kH}&M z25w;xW@MN(M*=9wUgGKN%Kn6%QAApC>)RQcKq1-8kcblJ{M_8syb>Unfx)>bHL)Z$ zMWH;iBtya7(>EYRFO?lAp5*D`7!q;#?UaqY4Guia%)dfy7-y$k$Z?u_>9E6L21ouq zUw$kpDJ$_3G*)c+VeM`D;vM_RAh8Blm(23jTobmOsrkc{?O(Y+ZN`BQ+#U{0!5mxW oefqYPfnoRL+Q->kibv+m+4o-1=SY;M11x;ortrKqrQ z@{Wp+N`Yyc1ztCVua7gdssA_UmEr-XRc+?&vL8=%-*~rtE%S#+rxS%Y7%n@g9|~me zv1(WoUnfx)>bHL)Z$ zMWH;iBtya7(>EYRFO?lAp5W=?7!q;#?UjSP2NZai4{S*i^*^8{X)^oE)aC7&?imwS zXf?j?b_`^i(b@6l-3qq5f7K#SF>UD3n0t2>>x3<5=G<%i{9bTHgW0Z!Rgv#cmoIoN ml=qv9;fBYz?)YGr6kq;5D+RVJRoEs7a)hU=pUXO@geCyz_EVAo literal 0 HcmV?d00001