From 741554d7ee03f4e8bf216b37b1c4cff645495a5d Mon Sep 17 00:00:00 2001 From: Doloment Date: Sat, 28 Dec 2024 01:12:41 +0700 Subject: [PATCH] Add bows and crossbows (closes #1861, #1858; patially #1523, #1863) Move the archery mods out of _experimental (closes #1774, #1775) Added stable support for Throwable (closes #1866) --- .../{_experimental => Core}/archery/init.lua | 0 .../{_experimental => Core}/archery/mod.conf | 0 .../archery/src/archery.lua | 0 .../archery/src/archery/processor.lua | 14 +- .../src/archery/processor/processing_api.lua | 24 +- .../archery/src/archery/public_api.lua | 0 .../Core/projectiles/src/projectiles/api.lua | 4 +- .../projectiles/src/projectiles/entity.lua | 97 ++++---- .../lord_archery/init.lua | 0 .../lord_archery/locale/lord_bows.en.tr | 0 .../lord_archery/locale/lord_bows.ru.tr | 0 .../lord_archery/mod.conf | 0 .../lord_archery/sounds/LICENSE | 0 .../sounds/lord_archery_arrow_release.ogg | Bin .../sounds/lord_archery_bow_charge.ogg | Bin .../lord_archery/src/lord_archery.lua | 8 +- .../lord_archery/src/lord_archery/config.lua | 9 + .../src/lord_archery/config/bows.lua | 99 ++++++++ .../src/lord_archery/config/crossbows.lua | 137 +++++++++++ .../src/lord_archery/config/throwables.lua | 40 ++++ .../bows/lord_archery_alder_wood_bow.png | Bin 0 -> 230 bytes .../bows/lord_archery_alder_wood_bow_1.png | Bin 0 -> 364 bytes .../bows/lord_archery_alder_wood_bow_2.png | Bin 0 -> 382 bytes .../bows/lord_archery_alder_wood_bow_3.png | Bin 0 -> 371 bytes .../bows/lord_archery_apple_wood_bow.png} | Bin .../bows/lord_archery_apple_wood_bow_1.png} | Bin .../bows/lord_archery_apple_wood_bow_2.png} | Bin .../bows/lord_archery_apple_wood_bow_3.png} | Bin .../bows/lord_archery_birch_wood_bow.png | Bin 0 -> 234 bytes .../bows/lord_archery_birch_wood_bow_1.png | Bin 0 -> 385 bytes .../bows/lord_archery_birch_wood_bow_2.png | Bin 0 -> 373 bytes .../bows/lord_archery_birch_wood_bow_3.png | Bin 0 -> 355 bytes .../bows/lord_archery_lebethron_wood_bow.png | Bin 0 -> 234 bytes .../lord_archery_lebethron_wood_bow_1.png | Bin 0 -> 369 bytes .../lord_archery_lebethron_wood_bow_2.png | Bin 0 -> 371 bytes .../lord_archery_lebethron_wood_bow_3.png | Bin 0 -> 351 bytes .../bows/lord_archery_mallorn_wood_bow.png | Bin 0 -> 234 bytes .../bows/lord_archery_mallorn_wood_bow_1.png | Bin 0 -> 372 bytes .../bows/lord_archery_mallorn_wood_bow_2.png | Bin 0 -> 370 bytes .../bows/lord_archery_mallorn_wood_bow_3.png | Bin 0 -> 351 bytes .../lord_archery_galvorn_crossbow.png | Bin 0 -> 380 bytes .../lord_archery_galvorn_crossbow_1.png | Bin 0 -> 359 bytes .../lord_archery_galvorn_crossbow_2.png | Bin 0 -> 368 bytes .../lord_archery_galvorn_crossbow_3.png | Bin 0 -> 392 bytes .../crossbows/lord_archery_gold_crossbow.png | Bin 0 -> 412 bytes .../lord_archery_gold_crossbow_1.png | Bin 0 -> 399 bytes .../lord_archery_gold_crossbow_2.png | Bin 0 -> 387 bytes .../lord_archery_gold_crossbow_3.png | Bin 0 -> 398 bytes .../lord_archery_mithril_crossbow.png | Bin 0 -> 391 bytes .../lord_archery_mithril_crossbow_1.png | Bin 0 -> 396 bytes .../lord_archery_mithril_crossbow_2.png | Bin 0 -> 372 bytes .../lord_archery_mithril_crossbow_3.png | Bin 0 -> 407 bytes .../lord_archery_silver_crossbow.png | Bin 0 -> 382 bytes .../lord_archery_silver_crossbow_1.png | Bin 0 -> 363 bytes .../lord_archery_silver_crossbow_2.png | Bin 0 -> 358 bytes .../lord_archery_silver_crossbow_3.png | Bin 0 -> 384 bytes .../crossbows/lord_archery_steel_crossbow.png | Bin 0 -> 368 bytes .../lord_archery_steel_crossbow_1.png | Bin 0 -> 379 bytes .../lord_archery_steel_crossbow_2.png | Bin 0 -> 366 bytes .../lord_archery_steel_crossbow_3.png | Bin 0 -> 384 bytes .../crossbows/lord_archery_tin_crossbow.png | Bin 0 -> 385 bytes .../crossbows/lord_archery_tin_crossbow_1.png | Bin 0 -> 384 bytes .../crossbows/lord_archery_tin_crossbow_2.png | Bin 0 -> 382 bytes .../crossbows/lord_archery_tin_crossbow_3.png | Bin 0 -> 398 bytes .../lord_archery_wooden_crossbow.png | Bin 0 -> 397 bytes .../lord_archery_wooden_crossbow_1.png | Bin 0 -> 402 bytes .../lord_archery_wooden_crossbow_2.png | Bin 0 -> 400 bytes .../lord_archery_wooden_crossbow_3.png | Bin 0 -> 419 bytes .../lord_archery_throwing_axe_steel.png | Bin 0 -> 385 bytes .../src/lord_projectiles/config.lua | 220 +++++++++++++++--- .../textures/items_tools_arrow.png | Bin 1604 -> 0 bytes .../lord_projectiles_bronze_arrow.png | Bin 0 -> 282 bytes .../lord_projectiles_bronze_arrow_entity.png | Bin 0 -> 336 bytes .../textures/lord_projectiles_bronze_bolt.png | Bin 0 -> 333 bytes .../lord_projectiles_bronze_bolt_entity.png | Bin 0 -> 271 bytes .../textures/lord_projectiles_flint_arrow.png | Bin 0 -> 282 bytes .../lord_projectiles_flint_arrow_entity.png | Bin 0 -> 329 bytes .../lord_projectiles_galvorn_arrow.png | Bin 0 -> 273 bytes .../lord_projectiles_galvorn_arrow_entity.png | Bin 0 -> 334 bytes .../lord_projectiles_galvorn_bolt.png | Bin 0 -> 308 bytes .../lord_projectiles_galvorn_bolt_entity.png | Bin 0 -> 258 bytes .../lord_projectiles_mithril_arrow.png | Bin 0 -> 285 bytes .../lord_projectiles_mithril_arrow_entity.png | Bin 0 -> 340 bytes .../lord_projectiles_mithril_bolt.png | Bin 0 -> 338 bytes .../lord_projectiles_mithril_bolt_entity.png | Bin 0 -> 275 bytes .../textures/lord_projectiles_steel_arrow.png | Bin 0 -> 262 bytes ...> lord_projectiles_steel_arrow_entity.png} | Bin .../textures/lord_projectiles_steel_bolt.png | Bin 0 -> 322 bytes .../lord_projectiles_steel_bolt_entity.png | Bin 0 -> 270 bytes ...iles_arrow_trajectory_normal_particle.png} | Bin ...tiles_arrow_trajectory_water_particle.png} | Bin ...ctiles_bolt_trajectory_normal_particle.png | Bin 0 -> 104 bytes ...ectiles_bolt_trajectory_water_particle.png | Bin 0 -> 105 bytes ...s_throwable_trajectory_normal_particle.png | Bin 0 -> 113 bytes ...es_throwable_trajectory_water_particle.png | Bin 0 -> 105 bytes .../lord_archery/src/lord_archery/config.lua | 82 ------- .../textures/lord_archery_test_crossbow.png | Bin 198 -> 0 bytes .../textures/lord_archery_test_crossbow_1.png | Bin 213 -> 0 bytes .../textures/lord_archery_test_crossbow_2.png | Bin 222 -> 0 bytes 99 files changed, 562 insertions(+), 172 deletions(-) rename mods/lord/{_experimental => Core}/archery/init.lua (100%) rename mods/lord/{_experimental => Core}/archery/mod.conf (100%) rename mods/lord/{_experimental => Core}/archery/src/archery.lua (100%) rename mods/lord/{_experimental => Core}/archery/src/archery/processor.lua (93%) rename mods/lord/{_experimental => Core}/archery/src/archery/processor/processing_api.lua (86%) rename mods/lord/{_experimental => Core}/archery/src/archery/public_api.lua (100%) rename mods/lord/{_experimental => Tools}/lord_archery/init.lua (100%) rename mods/lord/{_experimental => Tools}/lord_archery/locale/lord_bows.en.tr (100%) rename mods/lord/{_experimental => Tools}/lord_archery/locale/lord_bows.ru.tr (100%) rename mods/lord/{_experimental => Tools}/lord_archery/mod.conf (100%) rename mods/lord/{_experimental => Tools}/lord_archery/sounds/LICENSE (100%) rename mods/lord/{_experimental => Tools}/lord_archery/sounds/lord_archery_arrow_release.ogg (100%) rename mods/lord/{_experimental => Tools}/lord_archery/sounds/lord_archery_bow_charge.ogg (100%) rename mods/lord/{_experimental => Tools}/lord_archery/src/lord_archery.lua (80%) create mode 100644 mods/lord/Tools/lord_archery/src/lord_archery/config.lua create mode 100644 mods/lord/Tools/lord_archery/src/lord_archery/config/bows.lua create mode 100644 mods/lord/Tools/lord_archery/src/lord_archery/config/crossbows.lua create mode 100644 mods/lord/Tools/lord_archery/src/lord_archery/config/throwables.lua create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow_3.png rename mods/lord/{_experimental/lord_archery/textures/items_tools_bow_wooden.png => Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow.png} (100%) rename mods/lord/{_experimental/lord_archery/textures/items_tools_bow_wooden_1.png => Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_1.png} (100%) rename mods/lord/{_experimental/lord_archery/textures/items_tools_bow_wooden_2.png => Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_2.png} (100%) rename mods/lord/{_experimental/lord_archery/textures/items_tools_bow_wooden_3.png => Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_3.png} (100%) create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_galvorn_crossbow.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_galvorn_crossbow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_galvorn_crossbow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_galvorn_crossbow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_gold_crossbow.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_gold_crossbow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_gold_crossbow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_gold_crossbow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_mithril_crossbow.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_mithril_crossbow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_mithril_crossbow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_mithril_crossbow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_steel_crossbow.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_steel_crossbow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_steel_crossbow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_steel_crossbow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_tin_crossbow.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_tin_crossbow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_tin_crossbow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_tin_crossbow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_wooden_crossbow.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_wooden_crossbow_1.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_wooden_crossbow_2.png create mode 100644 mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_wooden_crossbow_3.png create mode 100644 mods/lord/Tools/lord_archery/textures/throwables/lord_archery_throwing_axe_steel.png delete mode 100644 mods/lord/Tools/lord_projectiles/textures/items_tools_arrow.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_bronze_arrow.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_bronze_arrow_entity.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_bronze_bolt.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_bronze_bolt_entity.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_flint_arrow.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_flint_arrow_entity.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_galvorn_arrow.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_galvorn_arrow_entity.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_galvorn_bolt.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_galvorn_bolt_entity.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_arrow.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_arrow_entity.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_bolt.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_bolt_entity.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_steel_arrow.png rename mods/lord/Tools/lord_projectiles/textures/{projectile_arrow.png => lord_projectiles_steel_arrow_entity.png} (100%) create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_steel_bolt.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/lord_projectiles_steel_bolt_entity.png rename mods/lord/Tools/lord_projectiles/textures/{projectiles_trajectory_normal_particle.png => projectiles_arrow_trajectory_normal_particle.png} (100%) rename mods/lord/Tools/lord_projectiles/textures/{projectiles_trajectory_water_particle.png => projectiles_arrow_trajectory_water_particle.png} (100%) create mode 100644 mods/lord/Tools/lord_projectiles/textures/projectiles_bolt_trajectory_normal_particle.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/projectiles_bolt_trajectory_water_particle.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/projectiles_throwable_trajectory_normal_particle.png create mode 100644 mods/lord/Tools/lord_projectiles/textures/projectiles_throwable_trajectory_water_particle.png delete mode 100644 mods/lord/_experimental/lord_archery/src/lord_archery/config.lua delete mode 100644 mods/lord/_experimental/lord_archery/textures/lord_archery_test_crossbow.png delete mode 100644 mods/lord/_experimental/lord_archery/textures/lord_archery_test_crossbow_1.png delete mode 100644 mods/lord/_experimental/lord_archery/textures/lord_archery_test_crossbow_2.png diff --git a/mods/lord/_experimental/archery/init.lua b/mods/lord/Core/archery/init.lua similarity index 100% rename from mods/lord/_experimental/archery/init.lua rename to mods/lord/Core/archery/init.lua diff --git a/mods/lord/_experimental/archery/mod.conf b/mods/lord/Core/archery/mod.conf similarity index 100% rename from mods/lord/_experimental/archery/mod.conf rename to mods/lord/Core/archery/mod.conf diff --git a/mods/lord/_experimental/archery/src/archery.lua b/mods/lord/Core/archery/src/archery.lua similarity index 100% rename from mods/lord/_experimental/archery/src/archery.lua rename to mods/lord/Core/archery/src/archery.lua diff --git a/mods/lord/_experimental/archery/src/archery/processor.lua b/mods/lord/Core/archery/src/archery/processor.lua similarity index 93% rename from mods/lord/_experimental/archery/src/archery/processor.lua rename to mods/lord/Core/archery/src/archery/processor.lua index f13e5260a..79cf50f3c 100644 --- a/mods/lord/_experimental/archery/src/archery/processor.lua +++ b/mods/lord/Core/archery/src/archery/processor.lua @@ -77,7 +77,7 @@ controls.on_release(function(player, key, hold_time) local power = api.calculate_power(stack, hold_time) local projectile_item = meta:get_string("loaded_projectile") - if projectile_item and api.projectile_shoot(player, projectile_item, power) then + if projectile_item and api.projectile_shoot(player, ItemStack(projectile_item), power) then minetest.sound_play(stack:get_definition()["_sound_on_release"], { object = player }) local uses = api.reg_from_archery_item(stack:get_name()).definition.uses stack:add_wear(65535/uses) @@ -141,7 +141,7 @@ controls.on_press(function(player, key) local projectile_item = meta:get_string("loaded_projectile") local power = api.calculate_power(stack, nil, true) - if projectile_item and projectile_item ~= "" and api.projectile_shoot(player, projectile_item, power) then + if projectile_item and projectile_item ~= "" and api.projectile_shoot(player, ItemStack(projectile_item), power) then minetest.sound_play(stack:get_definition()["_sound_on_release"], { object = player }) local uses = api.reg_from_archery_item(stack:get_name()).definition.uses stack:add_wear(65535/uses) @@ -216,17 +216,19 @@ controls.on_release(function(player, key, hold_time) local wield_index = player:get_wield_index() local power = api.calculate_power(stack, hold_time) + local new_stack = ItemStack(table.copy(stack:to_table())) + + local uses = api.reg_from_archery_item(new_stack:get_name()).definition.uses + new_stack:add_wear(65535/uses) local projectile_item = archery.get_throwables()[stack:get_name()].entity_name - if projectile_item and api.projectile_shoot(player, projectile_item, power, stack) then + if projectile_item and api.projectile_shoot(player, new_stack, power) then minetest.sound_play(stack:get_definition()["_sound_on_release"], { object = player }) - local uses = api.reg_from_archery_item(stack:get_name()).definition.uses - stack:add_wear(65535/uses) stack:take_item(1) end api.player_reset_slowdown(player) - --inv:set_stack("main", wield_index, new_stack) + inv:set_stack("main", wield_index, stack) end) -- If the wielded item changed while bow was charging, discharge without shooting the arrow diff --git a/mods/lord/_experimental/archery/src/archery/processor/processing_api.lua b/mods/lord/Core/archery/src/archery/processor/processing_api.lua similarity index 86% rename from mods/lord/_experimental/archery/src/archery/processor/processing_api.lua rename to mods/lord/Core/archery/src/archery/processor/processing_api.lua index 82fbf58c9..982db9b99 100644 --- a/mods/lord/_experimental/archery/src/archery/processor/processing_api.lua +++ b/mods/lord/Core/archery/src/archery/processor/processing_api.lua @@ -11,7 +11,6 @@ end local function reg_from_archery_item(name) local common_table = table.join(table.join(archery.get_bows(), archery.get_crossbows()), archery.get_throwables()) local reg = common_table[to_original_state(name)] - print(dump(reg)) return reg end @@ -70,13 +69,10 @@ local function player_reset_slowdown(player) end local function calculate_power(stack, hold_time, no_hold) - print(dump(reg_from_archery_item(stack:get_name()))) local charging_time = reg_from_archery_item(stack:get_name()).stage_conf.charging_time local draw_power = reg_from_archery_item(stack:get_name()).definition.draw_power local max_holding = charging_time[#charging_time] - print(reg_from_archery_item(stack:get_name())) - if no_hold then return draw_power end @@ -96,35 +92,37 @@ local function calculate_power(stack, hold_time, no_hold) power = 0.1 end - minetest.chat_send_all(dump({ + --[[minetest.chat_send_all(dump({ ["1power"] = power, ["2draw_power"] = draw_power, ["3hold_time"] = hold_time, ["4charging_time_1"] = charging_time[1], ["5max_holding"] = max_holding, ["6Coefficient"] = (hold_time-charging_time[1])/max_holding, - })) + }))]] return power end ---- @param player Player a player that shoots the projectile ---- @param projectile_item string itemstring of a projectile item to shoot ---- @param hold_time number the time the player was holding CONTROL_CHARGE down ---- @param throwable_item ItemStack item that was thrown -local function projectile_shoot(player, projectile_item, power, throwable_item) +--- @param player Player a player that shoots the projectile +--- @param projectile_stack temStack itemstack with item to shoot +--- @param hold_time number the time the player was holding CONTROL_CHARGE down +local function projectile_shoot(player, projectile_stack, power) local look_dir = player:get_look_dir() local player_pos = player:get_pos() local projectile_pos = vector.new(player_pos.x, player_pos.y + 1.5, player_pos.z) + local projectile_item = projectile_stack:get_name() local projectile_reg = projectiles.get_projectiles()[projectile_item] local projectile_entity = minetest.add_entity(projectile_pos, projectile_reg.entity_name) - minetest.chat_send_all(projectile_reg.entity_reg.max_speed * power) + --minetest.chat_send_all(projectile_reg.entity_reg.max_speed * power) projectile_entity:add_velocity(vector.multiply(look_dir, projectile_reg.entity_reg.max_speed * power)) projectile_entity:set_acceleration(vector.new(0, -GRAVITY, 0)) projectile_entity:get_luaentity()._shooter = player - projectile_entity:get_luaentity()._throwable_item = throwable_item + projectile_entity:get_luaentity()._projectile_stack = projectile_stack + projectile_entity:get_luaentity()._remove_on_object_hit = projectile_reg.entity_reg.remove_on_object_hit + projectile_entity:get_luaentity()._rotation_formula = projectile_reg.entity_reg.rotation_formula return true end diff --git a/mods/lord/_experimental/archery/src/archery/public_api.lua b/mods/lord/Core/archery/src/archery/public_api.lua similarity index 100% rename from mods/lord/_experimental/archery/src/archery/public_api.lua rename to mods/lord/Core/archery/src/archery/public_api.lua diff --git a/mods/lord/Core/projectiles/src/projectiles/api.lua b/mods/lord/Core/projectiles/src/projectiles/api.lua index ba5776d1a..a4380a79b 100644 --- a/mods/lord/Core/projectiles/src/projectiles/api.lua +++ b/mods/lord/Core/projectiles/src/projectiles/api.lua @@ -16,12 +16,12 @@ local entity = require("projectiles.entity") --- @param not_register_item boolean whether to register craftitem or not (false/nil = register) local function register_projectile(name, reg, not_register_item) local def = reg.definition - reg.type = reg.type or "arrow" + reg.type = reg.type reg.entity_name = reg.entity_name or name registered_projectiles[name] = reg - entity.register_projectile_entity(reg.entity_name, name, reg.entity_reg) + entity.register_projectile_entity(reg.entity_name, reg.entity_reg) if not_register_item then return diff --git a/mods/lord/Core/projectiles/src/projectiles/entity.lua b/mods/lord/Core/projectiles/src/projectiles/entity.lua index bcd654d56..9f762e635 100644 --- a/mods/lord/Core/projectiles/src/projectiles/entity.lua +++ b/mods/lord/Core/projectiles/src/projectiles/entity.lua @@ -20,15 +20,19 @@ local function update_life_timer(projectile, dtime) end -- Dealing the damage to the target ---- @param projectile LuaEntity projectile entity ---- @param target LuaEntity target entity ---- @param damage_groups table damage groups table ---- @param multipliers table damage multiplier table -local function punch_target(projectile, target, damage_groups, remove_after_punch, multipliers) - if remove_after_punch == nil then - remove_after_punch = true +--- @param projectile LuaEntity projectile entity +--- @param target LuaEntity target entity +--- @param damage_groups table damage groups table +--- @param remove_after_hit boolean true: remove after hit; false/nil: do nothing +--- @param multipliers table damage multiplier table +local function punch_target(projectile, target, damage_groups, remove_after_hit, multipliers) + minetest.chat_send_all("RoOH: "..tostring(remove_after_hit)) + if remove_after_hit == nil then + remove_after_hit = true end + minetest.chat_send_all("RoOH: "..tostring(remove_after_hit)) + local multiplied = table.multiply_each_value(damage_groups, multipliers) local new_damage_groups = table.map(multiplied, function(value) @@ -37,16 +41,19 @@ local function punch_target(projectile, target, damage_groups, remove_after_punc end return math.ceil(value) end) - minetest.chat_send_all(dump(damage_groups)) - minetest.chat_send_all(dump(new_damage_groups)) + --minetest.chat_send_all(dump(damage_groups)) + --minetest.chat_send_all(dump(new_damage_groups)) target:punch(projectile.object, 1.4, { full_punch_interval = 1.4, damage_groups = new_damage_groups, }) - if remove_after_punch == true then - projectile.object:remove() + if remove_after_hit ~= true then + local pos = projectile.object:get_pos() + minetest.add_item(pos, projectile._projectile_stack) end + + projectile.object:remove() end --- @param entity LuaEntity entity to check if it is a projectile @@ -79,7 +86,8 @@ end local function hit_handling(projectile, target, damage_groups, velocity) local function hit() local damage = (vector.length(velocity)/GRAVITY)^(1/2) - punch_target(projectile, target, damage_groups, true, { fleshy = damage }) + minetest.chat_send_all(dump(projectile)) + return punch_target(projectile, target, damage_groups, projectile._remove_on_object_hit, { fleshy = damage }) end -- Hit player if target:is_player() then @@ -138,8 +146,11 @@ end --- @param projectile LuaEntity projectile entity -local function flight_processing(projectile, environment) +local function flight_processing(projectile, environment, rotation_formula) local vel = projectile.object:get_velocity() + print(dump(projectiles.get_projectiles()[projectile._projectile_stack:get_name()])) + local projectile_type = projectiles.get_projectiles()[projectile._projectile_stack:get_name()].type + local particle_texture = "projectiles_"..projectile_type.."_trajectory_"..environment.."_particle.png" if vel.y ~= 0 then math.randomseed(os.clock()) if environment == "water" then @@ -151,32 +162,41 @@ local function flight_processing(projectile, environment) max = vector.new( 0.5, 0.5, 0.5), -- when `bias` is 0, all random values are exactly as likely as any }, - texture = "projectiles_trajectory_"..environment.."_particle.png", + texture = particle_texture, }) else minetest.add_particlespawner({ attached = projectile.object, - texture = "projectiles_trajectory_"..environment.."_particle.png", + texture = particle_texture, }) end local rot = { - x = 0, - y = math_pi + math_arctan(vel.z, vel.x), - z = math_arctan(vel.y, math_sqrt(vel.z * vel.z + vel.x * vel.x))} - projectile.object:set_rotation(rot) + arrow = { + x = 0, + y = math_pi + math_arctan(vel.z, vel.x), + z = math_arctan(vel.y, math_sqrt(vel.z * vel.z + vel.x * vel.x)) + }, + axe = { + x = 0, + y = -math_pi*2 + math_arctan(vel.z, vel.x), + z = -math_arctan(vel.y, math_sqrt(vel.z * vel.z + vel.x * vel.x)) + }, + } + projectile.object:set_rotation(rot[rotation_formula or "arrow"]) end end -local register_projectile_entity = function(name, item, entity_reg) +local register_projectile_entity = function(name, entity_reg) local initial_properties = { hp_max = 1, physical = true, collide_with_objects = true, - collisionbox = {-0.15, -0.15, -0.15, 0.15, 0.15, 0.15}, - selectionbox = {-0.15, -0.15, -0.15, 0.15, 0.15, 0.15}, + collisionbox = { -0.15, -0.15, -0.15, 0.15, 0.15, 0.15 }, + selectionbox = { -0.15, -0.15, -0.15, 0.15, 0.15, 0.15 }, pointable = true, visual = "item", - visual_size = {x = 1.5, y = 1.5, z = 1.5}, + wield_item = "default:clay_brick", + visual_size = { x = 1.5, y = 1.5, z = 1.5 }, use_texture_alpha = true, } minetest.register_entity(name, { @@ -204,12 +224,12 @@ local register_projectile_entity = function(name, item, entity_reg) if (vector.length(self.object:get_velocity()) > 0 and moveresult.collides) or moveresult.standing_on_object then self:_on_collision(moveresult) elseif vector.length(self.object:get_velocity()) > 0 then - flight_processing(self, environment) + flight_processing(self, environment, self._rotation_formula) end if update_life_timer(self, dtime) then - minetest.add_item(pos, item) + minetest.add_item(pos, self._projectile_stack) end end, on_punch = function(self, puncher) @@ -217,27 +237,26 @@ local register_projectile_entity = function(name, item, entity_reg) return end self.object:remove() - local item_to_give = ItemStack(item) - if self._throwable_item then - item_to_give = self._throwable_item - end - minetest.chat_send_all(dump(item_to_give)) - minetest.give_or_drop(puncher, item_to_give) + minetest.give_or_drop(puncher, self._projectile_stack) end, on_activate = function(self, staticdata, dtime_s) - if staticdata == "_timer_is_started" then - self._timer_is_started = true - else + if not staticdata or staticdata == "" then return end + local staticdata_table = minetest.deserialize(staticdata) + print(dump(staticdata_table)) + self._timer_is_started = staticdata_table._timer_is_started + self._projectile_stack = ItemStack(staticdata_table._projectile_stack) update_life_timer(self, dtime_s) end, get_staticdata = function(self) - if self._timer_is_started then - return "_timer_is_started" - else - return "" + local staticdata_table = {} + staticdata_table._timer_is_started = self._timer_is_started + local projectile_stack = self._projectile_stack + if projectile_stack then + staticdata_table._projectile_stack = projectile_stack:to_table() end + return minetest.serialize(staticdata_table) end, _on_collision = function(self, moveresult) self._collision_count = self._collision_count + 1 @@ -249,7 +268,7 @@ local register_projectile_entity = function(name, item, entity_reg) if self._collision_count >= 10 then self.object:remove() if self._shooter and self._shooter:is_player() then - minetest.add_item(pos, ItemStack(item)) + minetest.add_item(pos, self._projectile_stack) end end end diff --git a/mods/lord/_experimental/lord_archery/init.lua b/mods/lord/Tools/lord_archery/init.lua similarity index 100% rename from mods/lord/_experimental/lord_archery/init.lua rename to mods/lord/Tools/lord_archery/init.lua diff --git a/mods/lord/_experimental/lord_archery/locale/lord_bows.en.tr b/mods/lord/Tools/lord_archery/locale/lord_bows.en.tr similarity index 100% rename from mods/lord/_experimental/lord_archery/locale/lord_bows.en.tr rename to mods/lord/Tools/lord_archery/locale/lord_bows.en.tr diff --git a/mods/lord/_experimental/lord_archery/locale/lord_bows.ru.tr b/mods/lord/Tools/lord_archery/locale/lord_bows.ru.tr similarity index 100% rename from mods/lord/_experimental/lord_archery/locale/lord_bows.ru.tr rename to mods/lord/Tools/lord_archery/locale/lord_bows.ru.tr diff --git a/mods/lord/_experimental/lord_archery/mod.conf b/mods/lord/Tools/lord_archery/mod.conf similarity index 100% rename from mods/lord/_experimental/lord_archery/mod.conf rename to mods/lord/Tools/lord_archery/mod.conf diff --git a/mods/lord/_experimental/lord_archery/sounds/LICENSE b/mods/lord/Tools/lord_archery/sounds/LICENSE similarity index 100% rename from mods/lord/_experimental/lord_archery/sounds/LICENSE rename to mods/lord/Tools/lord_archery/sounds/LICENSE diff --git a/mods/lord/_experimental/lord_archery/sounds/lord_archery_arrow_release.ogg b/mods/lord/Tools/lord_archery/sounds/lord_archery_arrow_release.ogg similarity index 100% rename from mods/lord/_experimental/lord_archery/sounds/lord_archery_arrow_release.ogg rename to mods/lord/Tools/lord_archery/sounds/lord_archery_arrow_release.ogg diff --git a/mods/lord/_experimental/lord_archery/sounds/lord_archery_bow_charge.ogg b/mods/lord/Tools/lord_archery/sounds/lord_archery_bow_charge.ogg similarity index 100% rename from mods/lord/_experimental/lord_archery/sounds/lord_archery_bow_charge.ogg rename to mods/lord/Tools/lord_archery/sounds/lord_archery_bow_charge.ogg diff --git a/mods/lord/_experimental/lord_archery/src/lord_archery.lua b/mods/lord/Tools/lord_archery/src/lord_archery.lua similarity index 80% rename from mods/lord/_experimental/lord_archery/src/lord_archery.lua rename to mods/lord/Tools/lord_archery/src/lord_archery.lua index 7c78cef1e..d244bd164 100644 --- a/mods/lord/_experimental/lord_archery/src/lord_archery.lua +++ b/mods/lord/Tools/lord_archery/src/lord_archery.lua @@ -1,9 +1,12 @@ local config = require("lord_archery.config") -local function register_archery_items() +local function register_bows() for name, registration in pairs(config.bows) do archery.register_bow(name, registration) end +end + +local function register_crossbows() for name, registration in pairs(config.crossbows) do archery.register_crossbow(name, registration) end @@ -18,7 +21,8 @@ end return { init = function() - register_archery_items() + register_bows() + register_crossbows() register_throwables() end, } diff --git a/mods/lord/Tools/lord_archery/src/lord_archery/config.lua b/mods/lord/Tools/lord_archery/src/lord_archery/config.lua new file mode 100644 index 000000000..4bac760dc --- /dev/null +++ b/mods/lord/Tools/lord_archery/src/lord_archery/config.lua @@ -0,0 +1,9 @@ +local config_bows = require("lord_archery.config.bows") +local config_crossbows = require("lord_archery.config.crossbows") +local config_throwables = require("lord_archery.config.throwables") + +return { + bows = config_bows, + crossbows = config_crossbows, + throwables = config_throwables, +} diff --git a/mods/lord/Tools/lord_archery/src/lord_archery/config/bows.lua b/mods/lord/Tools/lord_archery/src/lord_archery/config/bows.lua new file mode 100644 index 000000000..631897d35 --- /dev/null +++ b/mods/lord/Tools/lord_archery/src/lord_archery/config/bows.lua @@ -0,0 +1,99 @@ +local S = minetest.get_translator("lord_archery") + +return { + ["lord_archery:apple_wood_bow"] = { + definition = { + description = S("Apple Wood Bow"), + inventory_image = "lord_archery_apple_wood_bow", -- without ".png" + groups = { wooden = 1, bow = 1, allow_hold_abort = 1, archery_item = 1 }, + uses = 90, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "arrow" }, + draw_power = 0.6, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = .5, + [2] = 1.0, + [3] = 1.50, + }, + }, + }, + ["lord_archery:alder_wood_bow"] = { + definition = { + description = S("Alder Wood Bow"), + inventory_image = "lord_archery_alder_wood_bow", -- without ".png" + groups = { wooden = 1, bow = 1, allow_hold_abort = 1, archery_item = 1 }, + uses = 120, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "arrow" }, + draw_power = 0.9, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = .25, + [2] = .75, + [3] = 1.25, + }, + }, + }, + ["lord_archery:birch_wood_bow"] = { + definition = { + description = S("Birch Wood Bow"), + inventory_image = "lord_archery_birch_wood_bow", -- without ".png" + groups = { wooden = 1, bow = 1, allow_hold_abort = 1, archery_item = 1 }, + uses = 180, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "arrow" }, + draw_power = 1, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = .25, + [2] = .75, + [3] = 1.25, + }, + }, + }, + ["lord_archery:mallorn_wood_bow"] = { + definition = { + description = S("Mallorn Wood Bow"), + inventory_image = "lord_archery_mallorn_wood_bow", -- without ".png" + groups = { wooden = 1, bow = 1, allow_hold_abort = 1, archery_item = 1 }, + uses = 210, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "arrow" }, + draw_power = 1, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = .25, + [2] = .65, + [3] = 1.05, + }, + }, + }, + ["lord_archery:lebethron_wood_bow"] = { + definition = { + description = S("Lebethron Wood Bow"), + inventory_image = "lord_archery_lebethron_wood_bow", -- without ".png" + groups = { wooden = 1, bow = 1, allow_hold_abort = 1, archery_item = 1 }, + uses = 350, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "arrow" }, + draw_power = 1.2, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = .25, + [2] = .65, + [3] = 1.05, + }, + }, + }, +} diff --git a/mods/lord/Tools/lord_archery/src/lord_archery/config/crossbows.lua b/mods/lord/Tools/lord_archery/src/lord_archery/config/crossbows.lua new file mode 100644 index 000000000..7e99a0ac0 --- /dev/null +++ b/mods/lord/Tools/lord_archery/src/lord_archery/config/crossbows.lua @@ -0,0 +1,137 @@ +local S = minetest.get_translator("lord_archery") + +return { + ["lord_archery:wooden_crossbow"] = { + definition = { + description = S("Wooden Crossbow"), + inventory_image = "lord_archery_wooden_crossbow", -- without ".png" + groups = { wooden = 1, crossbow = 1, archery_item = 1 }, + uses = 100, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "bolt" }, + draw_power = 0.7, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = 0.75, + [2] = 1.25, + [3] = 1.75, + }, + }, + }, + ["lord_archery:tin_crossbow"] = { + definition = { + description = S("Tin Crossbow"), + inventory_image = "lord_archery_tin_crossbow", -- without ".png" + groups = { tin_item = 1, crossbow = 1, archery_item = 1 }, + uses = 120, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "bolt" }, + draw_power = 0.8, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = 0.65, + [2] = 1.15, + [3] = 1.65, + }, + }, + }, + ["lord_archery:steel_crossbow"] = { + definition = { + description = S("Steel Crossbow"), + inventory_image = "lord_archery_steel_crossbow", -- without ".png" + groups = { steel_item = 1, crossbow = 1, archery_item = 1 }, + uses = 150, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "bolt" }, + draw_power = 0.9, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = 0.55, + [2] = 1.05, + [3] = 1.55, + }, + }, + }, + ["lord_archery:silver_crossbow"] = { + definition = { + description = S("Silver Crossbow"), + inventory_image = "lord_archery_silver_crossbow", -- without ".png" + groups = { silver_item = 1, crossbow = 1, archery_item = 1 }, + uses = 190, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "bolt" }, + draw_power = 1, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = 0.55, + [2] = 1.05, + [3] = 1.55, + }, + }, + }, + ["lord_archery:gold_crossbow"] = { + definition = { + description = S("Gold Crossbow"), + inventory_image = "lord_archery_gold_crossbow", -- without ".png" + groups = { gold_item = 1, crossbow = 1, archery_item = 1 }, + uses = 200, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "bolt" }, + draw_power = 1, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = 0.5, + [2] = 1, + [3] = 1.5, + }, + }, + }, + ["lord_archery:galvorn_crossbow"] = { + definition = { + description = S("Galvorn Crossbow"), + inventory_image = "lord_archery_galvorn_crossbow", -- without ".png" + groups = { galvorn_item = 1, crossbow = 1, archery_item = 1 }, + uses = 250, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "bolt" }, + draw_power = 1.2, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = .25, + [2] = .75, + [3] = 1, + }, + }, + }, + ["lord_archery:mithril_crossbow"] = { + definition = { + description = S("Mithril Crossbow"), + inventory_image = "lord_archery_mithril_crossbow", -- without ".png" + groups = { mithril_item = 1, crossbow = 1, archery_item = 1 }, + uses = 350, + sound_on_release = "lord_archery_arrow_release", + used_projectiles = { "bolt" }, + draw_power = 1.4, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = .25, + [2] = .75, + [3] = 1, + }, + }, + }, +} diff --git a/mods/lord/Tools/lord_archery/src/lord_archery/config/throwables.lua b/mods/lord/Tools/lord_archery/src/lord_archery/config/throwables.lua new file mode 100644 index 000000000..09d78852f --- /dev/null +++ b/mods/lord/Tools/lord_archery/src/lord_archery/config/throwables.lua @@ -0,0 +1,40 @@ +local S = minetest.get_translator("lord_archery") + +return { + ["lord_archery:throwing_axe_steel"] = { + definition = { + description = S("Steel Throwing Axe"), + inventory_image = "lord_archery_throwing_axe_steel", -- without ".png" + groups = { throwing_axe = 1, throwable = 1 }, + uses = 180, + sound_on_release = "lord_archery_arrow_release", + draw_power = 0.75, + }, + stage_conf = { + charging_time = { + [0] = 0, + [1] = 0.25, + [2] = 1.75, + }, + }, + projectile_reg = { + damage_tt = 6, + type = "throwable", + entity_name = "lord_archery:throwing_axe_steel", + entity_reg = { + initial_properties = { + visual = "item", + wield_item = "lord_archery:throwing_axe_steel", + visual_size = { x = 0.25, y = 0.25, z = 0.25 }, + }, + max_speed = 20, + sound_hit_node = { name = "lord_projectiles_arrow_hit_node", gain = 3.0 }, + sound_hit_object = { name = "lord_projectiles_arrow_hit_object", gain = 0.1 }, + damage_groups = { fleshy = 18 }, + remove_on_object_hit = false, + remove_on_node_hit = false, + rotation_formula = "axe" + }, + }, + }, +} diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow.png new file mode 100644 index 0000000000000000000000000000000000000000..c4e5a39e49d44f4efd573ab1defbf64d19c1faa0 GIT binary patch literal 230 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|7I?ZihFJ6_ zCoB*!5L#VOyW;Kt#r^XQ-_-w-(<}S-(b{bf+W`|p1A_ym^J@R}O>AszR8+h0{r{w| zvp2pz-_!jkK55~f`w?L;_HSHsp}yqj42O6gLy@!Rv~HLh85kIth^Gi$>+zObpT-6R zGd7>Rw8!p>*z&YJb!sWrfwL0XCajg5{h9NZ+HLJsao;t7f4(L_}Pgg&ebxsLQ0O?0wCIA2c literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow_1.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..137e56daf9b30688ddf59dace2d0fffec99dc400 GIT binary patch literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D%z)jVAsLo9le zZ|tr9{=fSByT9oRSl-;*`@6npvs9e(wf0;8^fw0l%h%CnIj+I=#)Q?7r!mv%8pq^r z&M$w@9{>U-VT+Q#wu@z%5C4})-}-;grDHsIw)+`wnX}^*NV?$LM{Bnjy=2E{2Y4nX zTbwR<^|E@8RAK|?%*m4CKj(inS3bNreZ8c~RhNRSEWHzd_NV+!bK_y&kv})-#|Pm@ zlibh889(5boFyt I=akR{0D2Im-T(jq literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow_2.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_alder_wood_bow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6a2eb9a8d336d9a727de143b6e64363d47eb005c GIT binary patch literal 382 zcmV-^0fGLBP)Px$I7vi7R5*>Tk-tmBKpe&2Nu9*O;AUeXft1W~C`h}Mj2$|3D1`3a9J)H`AK>OL z?isrEhC-nrfp(Lkn~e!V!TbRZUkANweq6HX+wObc_wMsJ;E!Sez&R(=G+`J9D_isj zZCZvg=20SNtMGHb&p9WrYf;`bX_+)>ndImiIl3nAy?&1Xpe6>c>#~l0LSEOR<1+_G zuK{kKo{KO2s@bR`6952=$|3*2W^_Cuos(zZQ~tOA)U}Rm#RXP_+@uf|AE%QjPm%BK;W0D*B`Mc z`oKDvQ5s(csPM}|@?rqs=o(f1`OVdsfS<2>^rxAPx$ElET{R5*=eV4x5%602~1sO|rwkDoE@fBGIScJ}c*g#O*TcmKb4@7{lOO(hn} z|4S^C{~OB+{Wq2sg3HGQ`u=BNU|?W@3AnntGVb2J`+tnH+J9bYV+QV9rx;pJT*b5r z3e@Fg7*Gs=8Dgg?_+O6UEW@d%@3Cq`2TaJE%(%$^tiKr<9zA=_ps6N;SL4lxPcRMO zzIBS>!%qf=L)YIkK6>_=A;wwlKUUq?T(CaW_Wyn)XA^4(+<>ExpJ7PiGXxfha8P2Q zjMFANO~L=jhQOi_?gE(eae+hE-!q2i)G(YowF|=%CS1-(2fl%Ej8C7wz-kBsatb2^ zHm_fVqLu}hLS%sKXWzg$l*GjdbAhIbH3I_!B6ML1MO|Kop?1P_qB9-I003D3hkjlS Rjr;%r002ovPDHLkV1i==q#6JK literal 0 HcmV?d00001 diff --git a/mods/lord/_experimental/lord_archery/textures/items_tools_bow_wooden.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow.png similarity index 100% rename from mods/lord/_experimental/lord_archery/textures/items_tools_bow_wooden.png rename to mods/lord/Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow.png diff --git a/mods/lord/_experimental/lord_archery/textures/items_tools_bow_wooden_1.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_1.png similarity index 100% rename from mods/lord/_experimental/lord_archery/textures/items_tools_bow_wooden_1.png rename to mods/lord/Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_1.png diff --git a/mods/lord/_experimental/lord_archery/textures/items_tools_bow_wooden_2.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_2.png similarity index 100% rename from mods/lord/_experimental/lord_archery/textures/items_tools_bow_wooden_2.png rename to mods/lord/Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_2.png diff --git a/mods/lord/_experimental/lord_archery/textures/items_tools_bow_wooden_3.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_3.png similarity index 100% rename from mods/lord/_experimental/lord_archery/textures/items_tools_bow_wooden_3.png rename to mods/lord/Tools/lord_archery/textures/bows/lord_archery_apple_wood_bow_3.png diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow.png new file mode 100644 index 0000000000000000000000000000000000000000..95dcaa6e8b5ce2a1fda57f60aa3d78e38a80f527 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|mUy~2hFJ6_ zCoB*!5L*4=`}xEF>uc)|6ny+tx?{%FTxn%)!&wqQ;5Yvk-}NI04jd2=e(_s=`LQ!Q zPW+Fz*ZEifrr_%T?DhRT>FaDx_wU#FyFIycQyR|xWck~ZXT6D0B{MA{Az^`s@g_!>-;%Q# eQ?i$dFfbT@DY;(5wPrQYy$qhNelF{r5}E*MQC{}| literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow_1.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ec9663afc11a26e6aa0180f33c1b345907e3c344 GIT binary patch literal 385 zcmV-{0e=38P)Px$J4r-AR5*=e*u8uA|9kiD{bwK(FfuSOFznvF`~Sj@Y=$L!Z!zLh`1|MK|G&OJ zV7PesI$X@kwhf`)PE+uIjI-K*bWLABEdKxX!{YzP4p;p@cDM>I9~0>NpMimafdwXT z==ys`I|hdTG0tlLd8LgRdM0@>oIbT3( zfdRYokwJ4o=6~P7INVW+%l4Q+U);`y0v2q7%>|kNZ$5m&uw?yaf(Z$30L&(Jc^QV< f3DZeSfs_CMKP)Px$FG)l}R5*>TQ87rvKoor^Ssk1$787W3b`$JUvIreI3ZZ*9=YTGPlY_XpTlWqf zgx=PJ3=u0aLvX9oir~;LrL-NsiGe~$zH2nGP0b8;L9wrw*VaXA;X zm<rC=s01ybDOn-iP)+7LUdmrMV-O2DQwPe+`TrA-H=1yyFsRRIwqJPB?9w(SJ TE8czN00000NkvXXu0mjfRga$6 literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow_3.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_birch_wood_bow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..1adc1f779fff1af3267b5014080e60299db9b965 GIT binary patch literal 355 zcmV-p0i6DcP)Px$9Z5t%R5*=eV4x5%607j{&%^(JeSg4k@$z-Jn3ZiCBMXePd-v}D%F43o_#(|6e*^_uo!a@PCZ6+JAg%VP0TD7VMei#qj0J zABIEM-!ndX_L_l^At(m?{(1QS#mm>>&L-9nxB;-xMh5r{fdwKQeEqN(r%mW#0`ouI z1u*C10*9`@XAIA&VK{ec7ltKFxSWp;d;{YcpFVwo)ewebhpPyNHVkZDzX(Mw3oeDo z0NKyJfpI8_iv?W~EOc)^e8K?Z*G`yDT8bnE002yvi2|+B3XuQ+002ovPDHLkV1hkA BoJjxx literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow.png new file mode 100644 index 0000000000000000000000000000000000000000..4eb49267d619b4d0bc7f1da991de1c1b1513b309 GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|mUy~2hFJ6_ zCoB*!5L*4=`S;!b|Np5x_~Fy5tQ|8Z9c6J7OENJuFfg#$YazL=v$3&JQSHKad%xb9 zg%khpuZ#He|6XU)|L=Yx2^uOZejaO-StBJWAt5n~+lVv!m}-BxF*6XHxtWsr@8@4V zzq3F7oMA~m;3Pf!nd)nE;l6k4=l4$%yLEzL_Givtl6T8em_06?IdI^B!^E@{=8kX1 hX3Qt9`DijQNUSOS{7C5R9-w;}JYD@<);T3K0RVHqV1xhw literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_1.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..4a58a9660997c96e08c3adc2dde92346b7c8f2a4 GIT binary patch literal 369 zcmV-%0gnEOP)Px$D@jB_R5*=e*u8uA|9kiD{bwK(FfuSOFznvF`~Sj@Y=$L!Z!zLh`1|MK|G&OJ zV0d}sEL=>b_@*vW1Q9g^GX{t^i1+%czk{>rcG#o1(^dgM2_Js!^<1ucr{`LnQ@W-Zyd<^ zkIg&Cpt&FuF2{r{(KE@5fsKQO;n4N>jE|nZX2500&4*7g1%LlMj1ovNfNlt~?I=PucMi}Bp4U2siUZD(L$VEFoBG2X; zWqVAZFK%Z;0Sh+4=7P-sHy=J>Sh9XI!Gr`i0A`cAybMF_gz2QEKuQ1rN5qnoYX;vb P00000NkvXXu0mjf(1WUh literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_2.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..6b74788ef0eeccb5c7b808388d3fcf1b52153d9e GIT binary patch literal 371 zcmV-(0gV2MP)Px$ElET{R5*>TQ88=6Kp1^jvUccPsgQuuxr>vFWOQ&W1b4w9f1s0V2ceYi(#^ra z&0C5f1ffC)u^kMwG!k)e5D_8pxp*;&cek`}I==6{_r1pfe*^;n&N*3@1=BQ{in!m+ zDT+cYr`>pFmf9yi=bW5MfwH3QW<=Y~hzjH7-C@CHY?v=ky9zq<@FsN zpPL9ip3W~FQOxI%G5~<#Y|Y95-QXR|X;&)LqEWx6&$lLtBs#9Bkb>w606LST_(DAP zyE!Fe4`*xkvsgi9BKoHcq9{DOq%)DmSMB<}4o$`b%Epfqi1;d0YjqX`AtvJiCF92i zviK^KEEoXzo=dtvZ@CQufUoagy!QGjo*|c}JhWew=7vlFKr8xJ8~|LXnXr46 R_mltt002ovPDHLkV1l4wpWpxh literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_3.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_lebethron_wood_bow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..46619fd2b332857b6c6f66b46f9ed5bb6851a1d8 GIT binary patch literal 351 zcmV-l0igbgP)Px$8A(JzR5*=eV4x5%607j%_q+f9{CUCf^6F~1n3BZ=Miv-n_wL>Qm6eqll$4Yh z(KRtJFfcs5I2o>qfq{V`CeZgk0|NsC+yGZsSH|7DcmI!ZR{PH@ZOqU!H3vfzGEkS7 zVL&keW{91p;D0%WvkWh&VM^i!T&MNYX9-6g?WJqS+Hkn4g(tp z3&Wx7?-?IGd(A+|5EKJ`e!u%4+1bPz0yh8_+QldM@Wx=Ho86f-F xH!uz*aj~E)f`#tQhff$_{MrfANlTHW0086*hcth@ZBqaM002ovPDHLkV1jErnF#;@ literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow.png new file mode 100644 index 0000000000000000000000000000000000000000..d157099eaade36a2dcbd7064b939f5d34a52dade GIT binary patch literal 234 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|mUy~2hFJ6_ zCoB*!5L*4=@9pXT@9(QSRq+2^=#Cky%XO5w4QELJ!MQm%Sg#*BaNvM|@QdH_%a5Je zapHe@-kjh2t6x9*zk9phu>g;N&)dFk-jJ1&kdTm}cS2>2T`=jP0szUID<#jf{vEZn0ql$mqRslP}sxjm6r!PA%-2wZ0YnYYg0;8BP+ bUdq5=&r&Kp{mfjDuNXXC{an^LB{Ts5ff!ys literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_1.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7676e979cc378d2b2525db4976bf128c5e85f450 GIT binary patch literal 372 zcmV-)0gL{LP)Px$E=fc|R5*>Lk}pidKorKmTM7vRfrfw^LE~o@6q%SLDfkA{WSLolszKsNaAfrp zWQbjcs6Z^?+_G+IyOb>$#4@!^Jq%a6_O1!=bNBvz-`zWK&MAr_!XIG(z&WSK+iSS} z3DXs>S0T;fC8pspiJhHa{?u1a_Q6D9_|q)Dj`0D&(GKa&{rNUko2&VCwQ za|zJfmpHaXZs$qAQk}Y4ujy@nW2l0TZP7TMqfj+FKq?&{9pL8f{&zp{KYRhyahDUk SoMiz300005b literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_2.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..11485d6b1708454d4feff76cd4720cc883741660 GIT binary patch literal 370 zcmV-&0ge8NP)Px$EJ;K`R5*>TlCev}KorKmldKNT77GcqIJOt4f51&}Y`SMC zap-|V28V*#N-H#!SSvz@(y4TM4tm!ly}L!f>A3g4-}@eSz#qi`fOAfcJ=)QrjwYalbCqu6Ayh^_nHj?087$bm(@;>$g5ZA@c0bZ zw>OBMU-l>cs#-1~2LOO*yka$gPVkCZGEy3iYPT-vDR?B2#MCQR$Vu!9047M*d>{_n zO+wk&(Rjt)KbKHJ#Qr(JJYDZiGC`E_b+vxbrFb}?VtkoE#Mi0OY_Y}S3-NG3+4vHm zim!td_4AcOpGn QHUIzs07*qoM6N<$g6Pz!L;wH) literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_3.png b/mods/lord/Tools/lord_archery/textures/bows/lord_archery_mallorn_wood_bow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..106982d979ffad94f9280f69f1c10af8dae91b50 GIT binary patch literal 351 zcmV-l0igbgP)Px$8A(JzR5*=eV4x5%607j%_q+ceKm5pW|L#?|n5%azBMXePd-v}D%F4%X0*;QttBwg33k!o0wQELdDs%D~FT z$#CfUd&Wo4UNaCf1jT@#-|zlMb~dqwzzu+fHZs6x2rLlc;LeS6IBh}?6PW+uE`T{7 z7dUkNJ!5!I4a2!pyD%(a!sUE);2Rjn`1I)utcEb`-ny7zXv4tf^@~u{vfxsP43Pco x8yJU@xLD8?!9w@u!zTPx$Hc3Q5R5*>rQaww=Kop#nT(v|HIRx7U3yW&~>2?2n$)`>aiZYg|m^IoqOlq3laeI%j|7c`Hms#q9?^l*KS z!?P>wwi}dX$$T+mtiyF87-N{YxyNq1!Rg5yI*w>c+*=@}q%6zu{QAxSU|-kJaYSR{ zUI%{WM*Mht(J#$+ptXjzwljQsdBgJVvKOZfXG;h{oO4%P+qRA)+SfH^L4Y(bhD+p} zI|qK|G%wgJ2rxfBf*;2%P)dPwKH7Gg7wqHn3&78v3>MN{-V}5kk&dIuVt>VYwV<(5 a|BP?=x|rWKT{m|C0000Px$AxT6*R5*>zlA&(HFc60Sn^I&2OjA^;^w@w&K{i+rEocg=BKalq1bLf~@}h!* zp@Q;}&`MQdWYkDEq;=jK?^ z5~`|#Qp&^Yb_cqSBNp>4`no5rb+qdaeZ5*rtS1wJwbnD-iil{IB*>l~v0g3XgJg`E z%oNC#b2?uD08L%Sf5%PUJ((gGQ{)no{7Ow-M*Hz6eF4gXn9_K?+aCY`002ovPDHLk FV1nP=r1Ag& literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_galvorn_crossbow_2.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_galvorn_crossbow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7edbb1fcc7b9d894d83e489926b88f2bb87b1b22 GIT binary patch literal 368 zcmV-$0gwKPP)Px$DoI2^R5*>zk1tQeKoG^>lC9dDxLg_%>^MXX;tq*8I7O<+CFMihC+Mf429Kcv zfuRCZg;`5NE(Ebz)lCM~<#w<4NAlF{%-fmY1OA;xqY-buiHM1a%d%u5;w;O8`AKXx z#t0%}04U3n0YE8*s;Z!rg0&X?9P#JAF6L8zG4?TY&=WEK?d%+Md4rGFCp^Bq3q)dO z7DD)b5WyHD`p;*lDT?`Y8#PjJp-0wQi`8<$pI>VvQlhFG?~4h1k!2ZMYoWFFy`G?R z&d1pqAPx$LPzP@!%DK@fe@T-D}8Q<|oFL=(iC3Qp8i&>&F_$@U}og8LNQ8WjEn z1_1)W3EU><5T&WOte%SIwj6f^Bu~xmym|B909S`Nj^*&p%)-o)rl~NqXsv7gn`3fW zmc+~g0BM>E04Swkt%Xtw-g{Ji0HDKR=NwHY69IstC}6FHbB+#|h=>qT_=~E-IY*WK z&1QpLzGw`$p%$SmODc*2yL^Es{R-3X$*I9cgepemW;_~*JU(N;UBYIoz&nl*3azzx z?`yVAzbBn;f?dAAbiSrGfe>Lh96~8ovuCpvor@EWIGfGjy>Aev^EH_$l1?{)0U9E~ zf%hK9n6@Rb*^2htB|6=twGZI$2Fxs%U_2TGC&59U=cJSZox$gOg0Jr%e7wC#O`sAv m?eRa(!~Gp@qv#yPx$R!KxbR5*>rlCf*TKorKmE9W3WKqU%7sje;#Eo74_2=yPZ1&1sS9XoaF(J&fIkj$m({b#5>0pwUZ0f3U=0```^5JeOY&Q}*_-_R>)RLPvMSu!0>)s(0+=x-%}W_PzfNG>2qit}g>~58!;RNuebtDIcqeCbO9%|k{JmI{0f?QTbv!-nn5dxF9cX&%*Gy>bE zJ!bA~A=cR{;4OV*Qt=QR^o+rX#W;tWP9nOF5GWN3n9f&Q(>4Yp_VMWg`1vQ2K)&8% zrD6fQ(l+fei*XKjwh&H2&zP_Gc0bjx6E&SgjPt)n_p5IM8=&rR(~0000Px$Nl8ROR5*>rkuPWhaTLeDZ~QI^g2*8VV_vlw3^v&b!c1#2Fjx$WgTdO8ZD2R7 z7%bOJ7lfUxUAQ0&tERya5rj+kgSW8VkNc;y?VEnQ-}^ki-}iw379|U>&(}N{E>wLs zYBB)Sss@&;HS#$D^Zrf!Uqs>AsL6xjfa;qcvSH+WFCQqEbZmEfOy{oZVP+BRyxA^vJTPv4rsrYnv?%v}Hg002ovPDHLkV1n%|ubKb= literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_gold_crossbow_2.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_gold_crossbow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..155ffc4d6f14939bbe71cb33d4ce90b3fa10822a GIT binary patch literal 387 zcmV-}0et?6P)Px$JxN4CR5*>rQaeb)P!v5+o>L$o5()*8tX(=d)TtPu(#=f@6|!{bSPr^4o6t@f=3evSLjwJ*FneyPem`A?0n`e65d(Pq9dmr%MVA;ak(-rlGb6KB^ zngjs#nvUga4OQVV`ZL)-N{T0=CiRAM7K=7hlK?kr1d>w9+KfV7>iD5Q-dO>@3*M^GnB( z20Px$NJ&INR5*>rQaxzGP#C;VvIR0_aVRBghB|aGLlGlbx^*jsl)5-L7CJjQ3mrR1 zHlbv5vLF~+9O~c@2cc7x4pQ1u2xJRCxwr!hN!v<#! zGINZJRp_;=T+puJc^)>4DI9m6s>sYtMA;RZoe9;7PuMJ`C?1`_s+ZGI6G***xAft- zbE5ZGsJfABBBHqWH4efE=eN&-v+8A5bt6`1X9ex>0E#Td-20;$<<$`ifBl9aj8X%R zJ10w$Sk(Px$K}keGR5*>rk}*reP!xsFlVov9Eg|3*95Qx@5QHuYfliKE8t^x?bQUT80DnQ3 zq8Tz3M;)>R)FDI04$@5skG7dyEL;c8BgspvPTuM9?)whs-1~t4E>^v`xw@diXd>>X z;~@cnY1x?1Vi>xHqti>#-zmb=@sI|i3Cp1*@(BP8T@!H1Ga-s9oS*yM4keLKbq|S1 zhKu$+*P$fx>Fn748=O}T_q!ePTt@(#U}*;PS&Sfz8325&*YI42h=>?t(!fjgbbl>n z&f&T^l7rp70~oqiYTiCPPx$MoC0LR5*>rk+Dm|KorKmC)dTPwS<6MaLCvpLJ_(s1UiY6mIhq>2UjrpLYeefPe5z<-PK2ak8x-0ct5 z`DD;z0I+Nat7Qn&DC6Y(R`vJN@MO^AZhuG;TFgca0H#q^a1?KpDe|zaJ-5z_*@%lS zGP4e+$CvQssq;HnO2VC1lRdYd0g4Q?KUgh8jHe+1z&1&cH`!_M_HxevaB=fM0Pytu zN+lrx07Y>$gZ+aem_|9%^n*EVlLUvR0cK_*($+3y@%{OZDBfrPx$E=fc|R5*>rQax(|K@fct&L-6*VOdBgDf|If7)uL-m825EkS2dXv6djIL;M3a zf+ALuO0cjIg2fe<7Qy;B)T`2XFsXL&ygd)n1(fY-(cwm|%=J<})j@0ro3)Ga+$8`wgdt2KMuD%-HwJ*mmv;hy?r2IG z%K`u-jS~^LyuO1JcBD9%E$I-3xRoN&i5B?TeZ%vESi^YklE2+2j-v%UKR`C;7;O$_ zOUhUl#LZQ#W~o3uOX`^bG-_q;j;0iGP^h#?3LBJyr-ys^+x^+arXuM_{)AtXK8*6L S=Ej-;0000Px$QAtEWR5*>rQon1$U=V#*97>mlk`Ou-DOAYNB|{^0XonUjaVkQJOaB4ISwuP) z{Rhk-DB>iY1P7Nu>yRN11&87&A^nl5>vi%&li0ZRO&@pn9`D_Ez<-0ng=W3Pl}1O@ zhwUl@KsuviF?XOU60-T4=9@A^mJ0%bAVi^GldF7g4JrM0T*4 zI~YtHB5w{^GZICFz{~R^13=;7i2$J0AJNC#D`d^U-L<||Lbu8h3jzhVa<5qt} zz}gP7`5LK;1WLgDtpWe@`_IKDqFl`JE;q6hegO!Lim65bOw#}W002ovPDHLkV1n`Z Bta$(c literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow.png new file mode 100644 index 0000000000000000000000000000000000000000..d37316389304713cdff9ab76824d666c987ce36b GIT binary patch literal 382 zcmV-^0fGLBP)Px$I7vi7R5*>zk}+$8KorOSub2-Y!4^sbcE~4aAw#DY0v+154dg3y$d__)acDOO z=ZH>@4iORxo`{z5a4OW06+; z@%(TROs5HvR{XVi!tITLEH7ZWYmzV#b^2Q#_(8 literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow_1.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e6767a0dee56aa65353822a909f1271994b16921 GIT binary patch literal 363 zcmV-x0hIoUP)Px$B}qgzQL#z`K@^-Pm%?<%aS6l-3bs}eQ&^=4_yr-5U$F2~{E2|1*;YuA zI>)8DQsEAw!d(d025#Y{+GY2$hk}jMJa*rkVTJ+z9fS~UzN0wdC{DP@4|+C|qc~x6 zDpHn~mWbLr$pA1L5A|{Vj+vVs2q9RJC!@iy$W;F*@&i9jAJFTD*zHTqmur2)%uGZU z=d2zh+rDG5+7JL#Qerk9Hd{6Yvb1CXxWBt40C;(Qqn76Z09Px$AW1|)R5*>zQ87!yKp1_Wq=Vf;h=rn1hmKB)9h@8r{sJlVFF5q4_$LCA z=7eO*=+J;&ni8_rLJmF$xg$w)D7f@3$KChdICxoi!+ zAfj4Ij7P39i8k2pzfhE$BZ42Mv@0uP9c@sQ8%(aIy)nHYqJd?>b!=0UpFfC`jQ@hw z;z=i=uF2%uK3Z)Pszxm({4k}~8h;b3I<8|wZRp?l20;$Z*C|7j1^@s607*qoM6N<$ Ef)>V?U;qFB literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow_3.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_silver_crossbow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..2c4d26fb7a12ef22c128fc5dcb600e18c3f784b2 GIT binary patch literal 384 zcmV-`0e}99P)Px$I!Q!9R5*>zkv~hrU=YTilQ`I|GztZUI=BSvqG-S_4uYRR3i%2SeiT1Jwt!^G zDrCsgp$W;51`6WPfQ8b~lC26B&OzRgq>1h5v)udV?#FX?z`v7aS)9Lne#D+1aWenP zVr{YKN1TtMD4wJRi1@E8)^(kAUC)xsdCXjRqq6-pO%aA6W}^X2Cm@u>%uGa72@tj) z`!{HJdsvKzFl?9p0_>IBh(F$8IswuA4YHy_ySuI*S{@KjQU-vl%X0#N=a*MnjE9gF z6%V%;wU7+ZXdK|EbzJx~Y?o%E0ovVOtrJNcR;y1W%jrgf=>()n63dDT4cLHWfMhvE z=j5!?reV9J0W2$OT_?XY@cf8((Nq6Eb3$cE=d`)8+PuUpzSnD*PC$hPx$DoI2^R5*>zQax&fKp1@!+yjIl3){^BtP-$JK(LxJS+JTL>QQ)5y83mfALEE+?U~Fe)&ANUV$5|C<+ZIBI8QEZIQL&BVz`eS}a-31X zEX!J8X;HEFj}E|TPb`5rjv411-=&?EHQP82x_+>n{HhN7)585(U|L_2K%vZXKT4DU O00000fhdEP)Px$HAzH4R5*>zl0Rw!Q4q#|6P^bMK?J*Z0ILM76A-MnOa!ZU15aQfIY7t-tR%r^ z;Z+M3))rPCV7ovN@c=GN3VEC7uK7c%e9ika^L;blF!1lt@Aox+JLl9nr)ip&XB@w% zCTCeD&N&4L$<|uD_asSz_nr`^N)Gp7uUl5E=Ba9(9Je3H_qW%-B1`onO;de&ex%)M zvfb^OEmmcYs;Y>baB4H~-ZNjW1>jH=413+LTaE=LlZgUMr&9rVdd;L^3;^fs)C4-6 z4%XU};B2vyLs8IfHP5yWV8Ugy*^uXXt-^e{7FE@UyBmhRuEsMt=^)Q@k|Y6+!-^py z(lCbR)n(02DG-(=5Ml&7Z|_?GMuX37Ed|Eou~=(4=QFm`Fox}J|LtIZ#At9_xIYWT Z_yEU)q<^pyyPx$C`m*?R5*>zQaftHKoETsA_p+JfGQE= zW??IV3fC%J=>U5GA#?x>CPgBlk7a|ayk^k~H~ugr zCrLs|DF%RsEQEkD22x5GW6;DgOm6m@)v|qY$YbVla@T&7{QmlUkvJ5fAwg@+-(R0t z%v}^^g*eT69A;)BYVSrpFvj3;JP`n#>l&NYa@ulNAPhqWfGCOx0CxL?W{v{@m@20y z;CUW|5WQfWW^}G=EavW{lU5+lb69Ifgv0SfMOjUj(+XH?A*H-%Gfp#_IS$;X$5G5_ zHqEeH{pUYy*FNv|3H2NVK|n$X&<%XNy`U(otBt*h?fQ4%?iT3c2Q12sI29_UaR2}S M07*qoM6N<$g1*|6761SM literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_steel_crossbow_3.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_steel_crossbow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..92f1fc63afcb77c22f861fb73a6f664a099398e1 GIT binary patch literal 384 zcmV-`0e}99P)Px$I!Q!9R5*>zQZZ`7KoFb_`hY-q1J2FbpB3M4N|s832+b;Ur1)i)I}&cVcA9kD>@wRpEHpA>Wn+ z1I)}sq~o0ylu~5dHjalKMw2Pxr-!~&13eF0|YB%HYxR=Z}dx}mc9!;i*EsL|wzUPT1sOuU{)AUI4ZAr0ZvE%uO zfu0iGLen$|!|yAwpJI#Us0000Px$J4r-AR5*>zQn5(3`9 z#aT{Qr=vfSS-TKtIlbImV9?i5tT%ANgb6ZZOq!Q6SaJ?G;tT-3c00@`CUub;u)RR? zEXe!pNE;YK1Dd8bny+u~xIP00000NkvXXu0mjfUmc^_ literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_tin_crossbow_1.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_tin_crossbow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..bd09069c85b67e0a958b50638b59d6ef2f0e10b9 GIT binary patch literal 384 zcmV-`0e}99P)Px$I!Q!9R5*>zlD|sBP!z_$BPq!$5(<5VW{c3dL!r18p%n52I!JZ&0URTU9nq)OG$J90000Px$I7vi7R5*>zQax*fP!v6{SadB#0{IJZOCeo5q=asvPy+T3v_nWc_6Kydr4;{x zPy*s61&4r}5H|zPt|G3A!tK&0e#9nY&vf6t=N`^|_X7V8%hxxmzcs@m&9KM~BhpQq z+%Rg?Puk>NyS~>NeNy^X9v& z@m^wEfVBy37}4j$9K(T(I7wkRUV}qK#2Bk`oj=(6KGqwb0YFifP^XiA%XJ63X;YTv zcvk0CjyD%&S&8;KP(}(QNo=Saj>n3!#Bd<@I;jMLU4SghJB0PdXK|ADj#CL_S&obG zc<-Es6-PH5@$N-Y`iL!4Ba5`Vw)HqVGnKl((VU6}{s&;S4c07*qoM6N<$g6uV>-v9sr literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_tin_crossbow_3.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_tin_crossbow_3.png new file mode 100644 index 0000000000000000000000000000000000000000..f07aa4d096174a22283471420ce5e9d49c4a197e GIT binary patch literal 398 zcmV;90df9`P)Px$NJ&INR5*>zQawwE>Q*IN? zoa3ly|8Q>?i^T%#;NCvZIJ?tgO}BD!iV-pgM$>?*Hgf9jWJc@d6#ECqTb(HBB3K28k@PeEPx$M@d9MR5*>rQZZ}7P#C;dB1o1RL@G^7hg5KKsVEee79&oMt&qu4x`;odoAeLV z#j&FfE*WakJs=q)h9Jo#LWQr>3%Qdu zodBAe!Q00;)GrRroqCB(%VFF!=r#xd6giFgat%$*z;*)kTNR3(!c72R=v5kY8+6EV z5Rt$M6>3G5?rv|8%PLs89!Apzi<%i@0w+{3Er&hcUt;BYxW3B4(5rOHd~}2Pavi?> zyWhjmtCVCG&~H^@ow@nt=^;K^^a4%IK#|je_&NT@>vK6)=V*ZK1n{@JP~c~erVHk6 z{IE`9fWO_LT*wP%t_>$MmXajovI?Sg!T|nRk_H=2W^Cnp0DxY*NwI+UuOFt!X`EVn rG+nTiB*EMGu}jWEuid1iQP0L7cS)B~z6bik00000NkvXXu0mjfBag6! literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_wooden_crossbow_1.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_wooden_crossbow_1.png new file mode 100644 index 0000000000000000000000000000000000000000..c5cc6b853bc7690c9db340c503447287513db42b GIT binary patch literal 402 zcmV;D0d4+?P)Px$Oi4sRR5*>rlCf*TU=+mfl?dWeg9OF2bg+Vxi=t3m1QjPo5u6;Qi};6hla8Ib zWbD`$TwGdo=_H6_f+3VRiD2M$DBnk7f~8&h8!z0;-SGkc4IK-$g3hz0DfL04$N*5z zXRtQ6$mvPk-apIlXMXdbQRLauBw?BiTMPhdB98fLgPfkk+T3E?sc?&F z#ePk|%mFP>p;plO>hc0wN`+-RFs2JSHWN`m3sjgbO}e>0hh;m+rZx1N)o|1!LL1Ci z8~Nvh=lys@#u;}i?C$n>c>R!?FdsY*#&kg^E9CSf)I>aR{qg0E4xWc>T8r!-VBD!h zt`2;U*R7X0s*X(H?)E6>Gt%IPh$yBg&{8V8^%6%O5RXL|{D?Z1?EnBqy*7sq+&#UM wnuz06Ph+~En4-Y>bVEsg#i-Yg+~ZGt0S4!sBqX9~3jhEB07*qoM6N<$f@F=g`2YX_ literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_wooden_crossbow_2.png b/mods/lord/Tools/lord_archery/textures/crossbows/lord_archery_wooden_crossbow_2.png new file mode 100644 index 0000000000000000000000000000000000000000..7717d0b59349c68fd1cfa0a3dc46ce3242d2e59b GIT binary patch literal 400 zcmV;B0dM|^P)Px$N=ZaPR5*>rQax+JP!v6{SO_jnkWgt_I;4V=OGQg@DQM{ASPFJ=lrF^|Qo2aT zPC{|)RBFM+#iC0mK{7^^AaM$T1a7B1%!kIUXL_9b?z!i@cY*%~3lo*RLc^)S`DV31 z08q?jp&M(ciipS8FJ3>`Y;INyG@KgDZ|bx(0stv3U_4tuRYd5<8treEOqjW{w#MNCmhGUJ%f{yH_DAe6m4cj+BDIu%@Rue0&vAIVzonP=PZn_S{PDx2 uv;dZX2ki>x%EH~vW#XWn4))oRz3>ON9EuL2QcxiP0000Px$T}ebiR5*>rk}+$-P!xsFEe_(Okin8s1j&%4q8VHYDxDllAzd6xm*Nj8T}rn& z36il>sX~?vwd!Dok|K^lODl0wx7#U?#?;2GXL{WC?tR}mT;RV&yM;*h&n(nXa3;>x_5~Jw?IXR7)w?eB?;s`;rs&c#U zkYN}M0GnYKqv-CYZZRn3fZ|*ZN zI94mrYh~WoxHp5*bOF;E6MeixQnc710+J=SqU|RL zmW7#PlfSt*n@RWq*R@VVLGzq|_o-}lX6Fd();6h(I17pc}*5j~)%+dJZrAkxz$}|>DSZEa~ASxKMh0Aq?Kvrv*tdHK`CN*BquI|MTq6$7F zZ+!LO(VErGs}(rv8Z4|VHFtS*{`cn6O|rFkcYJqs|L*dJ0Da@LucVkw?wSR6?wE0M zT~}i`i$RM(n!v=Fsb@Tcgk+Cjx2>t!+x>CPx#$06YO~HIHTbK{OKr;(&KK~{y~Xyt z_K|`1DXou|A6IyatJFQ&_2{GY^QO~G=Xqwoykb*0BSL4(#!JW6WMmzgd?YaRvS$2= ziZw;|9<7fsuOR<1Pwwqs@{~vsxxAxDG9n(d6nD6TMeKzD_DQk2)Tez=Zc6lMwkNJ(-d!Meq z()iN*2q=ZFU~*3^mn_%`&rkci{+Q| zJIvbUb&r9){eVZ~rt8*wb}!$%z5cw(@8693jEjyoa6Fg{j2E^fZ+91l8iqoKz#hA+ zTYw^*1s;*b3=De8Ak0{?)V>TT$X?><>&pI&T~h=m}d0L%N|Ks^Hhu3o+J|JAFP|3Ox> zkZM0j^Syib8FuX03D(L?iUAcliT`EHzvJt!P(hQKtx`|z3J$dzXp>hT65Nb{G^ zpBdhL_=Z(8$U+PgVXlB_evL;nP6LS5jMV^AG=mI4Ne5rw-u?ga!)u1)C(q;bGe{Fw z0MfjBRqy|YH%@?)C{{&S1i^s_()|3vRR&gWF$Q@J3!DLqML$A_RGSexDP-M?tK@gt Swh2@UF?hQAxvX+kG`UvGcs(cb>1{k8I`h6w+||K;uLlM@o2rQ9g_z|RGN`vdRlv^{zanRUJH#(vBlS9`891et)XR4(4PZ}0E_ zkK3>F9QU86?q$sNI&ez&n8Nx*$603$99EqT bVP^0tsHj>!`@?LY{}?=7{an^LB{Ts5E|PqW literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_bronze_arrow_entity.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_bronze_arrow_entity.png new file mode 100644 index 0000000000000000000000000000000000000000..1155ea446094cad58d41f3668c92d2b2dda10a0d GIT binary patch literal 336 zcmV-W0k8gvP)Px$3Q0skR5*=eU_buOL3-O=+OS&WGR4g5Yal>x5;bO2ZIbVtvBX#rM-ryqVZ zAX|gg1Y~QNkOdn~Nil4AYskQAk&UT9q2WFwj4ka^!ib@Ofq{YH>XU)8D2ko%y4AS z4h97cT}(H;e)gE*>eXuuGBVN(NA~Q%bi>uF*BBgJ-5I#~1hD%8mlbdmUO#)xVDB5w i$iTqBuyi^D+>rnR)>f~nQ-pB<0000#VWNvrn~VR3)X39LKs zIft7m_shTkzy8h!Oa0ZGFS%~tpTj_@lM5~s%%9i@1QREu1tuzjt&5cAPYCV4%rN6w z{Qi1lof~B$%dOT3W&Y#)U;p>t*$*Etr?-7|*Lzs1%59Vmbol?B;R@R}ZQLYu<;;Nw zk&bAilz)eXxTLkU{p=r`FtAN3y=SOld{@CupP89?l6Z+q#KSG;d(>TS+F39#$gPic Ub?;sK85lkcp00i_>zopr0CWhBDF6Tf literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_bronze_bolt_entity.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_bronze_bolt_entity.png new file mode 100644 index 0000000000000000000000000000000000000000..f8947c4a05c451132c8231398dca7dba3e3d4760 GIT binary patch literal 271 zcmV+q0r38bP)Px#$w@>(R5*=eU_b)r8;$>O$&mSvEXIV)*>&M5gN_6%16Bo{ffE1S45Z;~3n6zl8lKRL0$Lr_t$lu$O5V0>y zR@swHWNFL)|6hNbAAY_4y<}M4P5$fdQy4eSYx{3s_wU$&17}Wdc=>=;#FmA(A+zrL zL*v5}wa*(|dCYqx!vFC9c)R+viti7l!_HR3GF<*6)t@$pO<=X;YQ`lQX$e5!_N=D1 z`uqRm{OcwA=G*vBNfY_-_3hpNyTiZ!tFL%`q(112;UN?I`huyAQ=@wv;|@2O%uZ|w dnZ1&YA?#13rD$8@3ZVZOJYD@<);T3K0RT9Ze60Wg literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_flint_arrow_entity.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_flint_arrow_entity.png new file mode 100644 index 0000000000000000000000000000000000000000..28326022495a1949b389db3d4fc5e20a5d039701 GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!3HGtKUiJ>QjEnx?oJHr&dIz4vY9;*u#h>Ww|RPb6*EKY03AedZedy!e_wUuJI5zaScDD3kEucfY*ItOF+xIyQ2y zS+j;GCnu+6O~UbHCT{LTccBmmgB3e1G(SFjZ(lDF5gA#i?O-nF%xGyP++<6HNRXZ?KJG>c8??9EMWddsBa z?5ocde0^ogCMlWOrd(Z?uJZFl*5Bcq9nb}Fe0x*CHdjW^Ef4m$K7 zsGzrTdUNZ;4=0NYrVBr9jqpGGU*5hxIU(U$%8il_OkHwKYzIvC|Nb!Z;fbl~60agT zGXH)0X?%D$|NRYF$6hndcy_(QbP0l+XkKKRPx$2uVaiR5*=eU_b)O%F6%s^z{BCi!m{vf#1J>GvHN#4&Vy(^z{C-v9U4y`t^$e z*&3`SAX~$PENHGM#1Leq#lXtSimBlG_3Ml<_N7ag7%>zuFfcHD{PY>OBXKDr-kU@# z`2OPug(h%va8O_ZD=RAl8yg!TE7e?s@P&}@0Zp*;O&yU?P(>m(^Upss3|HIqY{vX`D5;NI5xVkgEe)gE*$etYx z3L3hYZg~CdF~ilX*BE4Eq#2Iv*@5YXt5>fvIJmkqaPtXZ_XRF1;3m9&_L#xmH=L1y gfq`M^bOyL10q8JNujqJ6OaK4?07*qoM6N<$f)rPm%>V!Z literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_galvorn_bolt.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_galvorn_bolt.png new file mode 100644 index 0000000000000000000000000000000000000000..88dc16909a65d43c59336fe2e50269f24e1becbb GIT binary patch literal 308 zcmV-40n7f0P)Px#?ny*JR5*>zku6RHK@f#M2-T(&1O$m7qdFmFAz=jx4ny_^C=P|<24oEy0T&px zW)uQJhGb_mrb{$p*v-!VWLgoPtg7$Ts}%f|R5gVV(t3SA7dA6uj2pcygSKq}xH&)N z{`RVuBFn&g&&Amh0JCO}s-~hS62L)@!R0UfRev+ByHmXPWEqS{nxYxAW=_?xgv+wr z8#EY?G@TrG+n?V$U|m~_t8g^q>E(Ur+}6g!-Ssl|uFVVePEgfU96~h1i44N9^2QKC zTKwCI@HlxLgf|iZOlzb3{K#SZ2}A_v93nzhRax8rhkgJRELhdI)MMHJ0000Px#yh%hsR5*>*lg$mnFbstsC=M+hBPUh($07*qo IM6N<$f-=Qy7ytkO literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_arrow.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..e218728f4a69608d585cd2e5d1bc33124d369948 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|u6w#ThFJ6_ zCrEGc6Mb0^G-e|)j$GDDJSvT1|JSstE@mk(aw z-u>UcuHtOLpC^@zOcpn+&wu~#{@zvJ{~wlC|2KJ2zu>Z;Kbu$cthtlK^GQl<$xR;S eCAWM`85n{lR=nMFs`n?*iwvHwelF{r5}E)R4vHfH literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_arrow_entity.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_arrow_entity.png new file mode 100644 index 0000000000000000000000000000000000000000..5f72cdd9758c0f480099cec26d6854b3fe9fc737 GIT binary patch literal 340 zcmV-a0jvIrP)Px$4oO5oR5*=eU_b&J<`(}yzNz^?vKSKs8sHLAX27ce9WcTe$2T?q=Mqw8xPS93 zgSe;wgQZ_BBTf^LtzkhH>~EXOASx`xATBC^=>~n9D7bYn<1wuG_~|o-br^0yS47a8 zq$~LT;|GN%aB^@^U;-;ED+3!F8zC#$@tDBE!hjA)_XWYA=HjHpo4^13VPIut#jOC{ zcnk&X?CcCm>e?s@P&}@0Zp*;O&yU?P(>m(^Upss3|HIqY{vX`D5}v!@Ryer2GrWHG znBmBt9SjN@x|nWw{p>Nr)vMPSWMrfnj_lci>4vLUuQ52dx-)R|A@T%KR=`bo{p>M= my>B=p0|NuY(&-FvM*;u|p-d1)QICrN0000UtP)Px$3`s;mR5*>zk+Dm|Kop0+Rxd&)i4^D1AzK|Xi5Udx;-GYOsX_1`=+Z@S6r5cO zL8oqFT-*eQ2rdqFb12SI3{49aa>I4%aN0CCiEq63zVCkT4*sh8aZg2ITm3vQo5COO zuWVM=fAx$6(_{d^b@<5f{*IQyNKmnBM7J*hq~nRUj*;N%vWq1I!>@!^&|sPja9j_7 zl_I$5*Od^fB%_q`iw;INy*K_bMD;2#_8d% z%A_P6Pq>TUmZsDmu^;zT)32*cN-QA?VNDQ)Z8iUIONiW^mnHyc1r36eJrh07*qoM6N<$f>E%N%K!iX literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_bolt_entity.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_mithril_bolt_entity.png new file mode 100644 index 0000000000000000000000000000000000000000..d7aa51e3f0d15f7495d1b40c4750b87f1bc64a49 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^96+qV!3HGtKUiJ>QjEnx?oJHr&dIz4a?X0XIEGmC zCMP&B9XB`q|9*Y{?|z+QEoUqXznL{pUd_%N#`^bb;eXwp(1$rZtYXJj@x(Zt;`v?n z-ocP{-Gd`HZ}Z&0cQ^F_x6qz7|EC}O^{7n6tYOiE$IH+E5KRbnnI-C?`QzVX_Exom zqJn?~CT(qPW@%|@MeQ3OXB;@>bYmimr~prvo?p@4%9`NM|L@oTGuW_clTnP#CLU8? zx%*fC{0G`l@c8@NdyL^njvN32)g@;@)P{uHfydq*oh>OTArWv{y(;aXs#ysm!`xVR V=|+~wc%a7^JYD@<);T3K0RSRjb)f(N literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_steel_arrow.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_steel_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..265e21fa9ed1e0dc89d17048360709b9a0859e6b GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`XFXjULo7}wCrEGa)5)v~kCCy~_G%RYL7;*N!T}_%r(NoE`Dlw;7 z`)mH4`S9+r`I=cDcQGvcX)1Ttf>$BTIE>ljV$Vdref#$Q{{OiBI?r+cdFo!q%)6f5 zU0wCxeox^ed(B@GiL>V0?>KeflPx#{7FPXR5*>zlA%rmK@>$#3A1uV3APD8fT;vAwTL161B5l$C-?$B0gKuG!GsYY zSpg0V7D0k-x=9DOBL+b>X=#^^B3w7~-aYTm%fMgBS{p?q{=DBwHP>~G_kOLG1aQs) zpqh8iPmWenBms;uEZ&|0Solw@wXrPAm<+g|UXv-sY~C;$PjJp*j7dvS93RFu1ZMMw zv&$>I_ZVX+iedmT*k<0}8v<~1TW{>`1$5>%1g3XSy?q-C7pFS5A$%|F@%7h~yUPa= zi61Wyv>}iwwbcwuOB9jVeUwb8-Z%FGI*rB?!tfx)y9&@+ljk{FYpSYBn*KlZ1$+=- UFlYy`Z2$lO07*qoM6N<$f{q-2-2eap literal 0 HcmV?d00001 diff --git a/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_steel_bolt_entity.png b/mods/lord/Tools/lord_projectiles/textures/lord_projectiles_steel_bolt_entity.png new file mode 100644 index 0000000000000000000000000000000000000000..ccefe2ac93e2a2339ae0aa403e998b6c6e8cce95 GIT binary patch literal 270 zcmV+p0rCEcP)Px#$Vo&&R5*>*k}(c~KoCX0hDEU3^O#L2HzppzL{32EVQ41SG$a&WfOvpC2~i74 zBpEA_jlil@{%U6S<XFemB*q7}LulCUS5~M1?aLYbawW&R8owe)b9azHQ)Wc;|L0M093l?~}LulCUS5~M1?aLYbawW&R8owe)bK!L}lSAg^~$f!n9n@fR_}FFxx}8sjvAf5E7!i~J1A=M zv3Bkwxs$4kK3j(sEfY9-^Af+|Q+^lg+ePn`Q>I1Mt_zxdi&NUMXqrNq+B2&_#+Wo- xrsU4ehgMiDDs@UYbDoLFoYhA^9qxj`~c`M22WQ%mvv4FO#ljIOiKU& diff --git a/mods/lord/_experimental/lord_archery/textures/lord_archery_test_crossbow_1.png b/mods/lord/_experimental/lord_archery/textures/lord_archery_test_crossbow_1.png deleted file mode 100644 index c2b2e3b74c485048b1ab60e9af9923caae7a49a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213 zcmV;`04o29P)wyXYc)e5Z8qPAmu_r zNF5*nz+n7JFC44yIIas{Zmik%)7$n7&3Z;Fk zo0w7R>rniBf02Ys94Z!}tMF5Pfe#Pq`L^PlwAbnD-( W59&D~dFv6-!3>_RelF{r5}E+y*jkAI