From edb19cf061fa26d067e3de64ad1fc45da1618201 Mon Sep 17 00:00:00 2001 From: BrunoMine Date: Thu, 13 Jul 2017 09:33:00 -0300 Subject: [PATCH] Separate weapons and API Use less generic mod names to avoid conflicts --- init.lua | 26 ----------- modpack.txt | 1 + LICENSE.txt => shooter/LICENSE.txt | 0 README.txt => shooter/README.txt | 0 shooter.lua => shooter/api.lua | 0 depends.txt => shooter/depends.txt | 0 description.txt => shooter/description.txt | 0 shooter/init.lua | 7 +++ mod.conf => shooter/mod.conf | 0 screenshot.png => shooter/screenshot.png | Bin .../shooter.conf.example | 0 {sounds => shooter/sounds}/shooter_click.ogg | Bin {sounds => shooter/sounds}/shooter_reload.ogg | Bin {sounds => shooter/sounds}/shooter_throw.ogg | Bin .../textures}/shooter_ammo.png | Bin .../textures}/shooter_bullet.png | Bin .../textures}/shooter_cap.png | Bin .../textures}/shooter_hit.png | Bin shooter_crossbow/depends.txt | 2 + crossbow.lua => shooter_crossbow/init.lua | 43 ++++++++++-------- .../models}/shooter_arrow.b3d | Bin .../models}/shooter_arrow.blend | Bin .../textures}/shooter_arrow_inv.png | Bin .../textures}/shooter_arrow_uv.png | Bin .../textures}/shooter_crossbow.png | Bin .../textures}/shooter_crossbow_loaded.png | Bin shooter_flaregun/depends.txt | 3 ++ flaregun.lua => shooter_flaregun/init.lua | 24 ++++++---- .../sounds}/shooter_flare_burn.ogg | Bin .../sounds}/shooter_flare_fire.ogg | Bin .../textures}/shooter_flare.png | Bin .../textures}/shooter_flare_inv.png | Bin .../textures}/shooter_flare_light.png | Bin .../textures}/shooter_flare_particle.png | Bin .../textures}/shooter_flaregun.png | Bin shooter_grenade/depends.txt | 2 + grenade.lua => shooter_grenade/init.lua | 11 +++-- .../textures}/shooter_grenade.png | Bin .../textures}/shooter_hand_grenade.png | Bin shooter_guns/depends.txt | 2 + guns.lua => shooter_guns/init.lua | 29 +++++++----- .../sounds}/shooter_pistol.ogg | Bin .../sounds}/shooter_rifle.ogg | Bin .../sounds}/shooter_shotgun.ogg | Bin shooter_guns/textures/shooter_ammo.png | Bin 0 -> 268 bytes .../textures}/shooter_pistol.png | Bin .../textures}/shooter_rifle.png | Bin .../textures}/shooter_shotgun.png | Bin .../textures}/shooter_smgun.png | Bin shooter_hook/depends.txt | 2 + grapple.lua => shooter_hook/init.lua | 30 ++++++------ .../textures}/shooter_hook.png | Bin .../textures}/shooter_hook_gun.png | Bin .../textures}/shooter_hook_gun_loaded.png | Bin shooter_rocket/depends.txt | 2 + rocket.lua => shooter_rocket/init.lua | 28 +++++++----- .../sounds}/shooter_rocket_fire.ogg | Bin .../textures}/shooter_rocket_gun.png | Bin .../textures}/shooter_rocket_gun_loaded.png | Bin .../textures}/shooter_rocket_inv.png | Bin shooter_turret/depends.txt | 2 + turret.lua => shooter_turret/init.lua | 22 +++++---- .../models}/shooter_turret.b3d | Bin .../models}/shooter_turret.blend | Bin .../textures}/shooter_turret_base.png | Bin .../textures}/shooter_turret_gun.png | Bin .../textures}/shooter_turret_uv.png | Bin textures/crosshair.png | Bin 364 -> 0 bytes 68 files changed, 134 insertions(+), 102 deletions(-) delete mode 100644 init.lua create mode 100644 modpack.txt rename LICENSE.txt => shooter/LICENSE.txt (100%) rename README.txt => shooter/README.txt (100%) rename shooter.lua => shooter/api.lua (100%) rename depends.txt => shooter/depends.txt (100%) rename description.txt => shooter/description.txt (100%) create mode 100644 shooter/init.lua rename mod.conf => shooter/mod.conf (100%) rename screenshot.png => shooter/screenshot.png (100%) rename shooter.conf.example => shooter/shooter.conf.example (100%) rename {sounds => shooter/sounds}/shooter_click.ogg (100%) rename {sounds => shooter/sounds}/shooter_reload.ogg (100%) rename {sounds => shooter/sounds}/shooter_throw.ogg (100%) rename {textures => shooter/textures}/shooter_ammo.png (100%) rename {textures => shooter/textures}/shooter_bullet.png (100%) rename {textures => shooter/textures}/shooter_cap.png (100%) rename {textures => shooter/textures}/shooter_hit.png (100%) create mode 100644 shooter_crossbow/depends.txt rename crossbow.lua => shooter_crossbow/init.lua (84%) rename {models => shooter_crossbow/models}/shooter_arrow.b3d (100%) rename {models => shooter_crossbow/models}/shooter_arrow.blend (100%) rename {textures => shooter_crossbow/textures}/shooter_arrow_inv.png (100%) rename {textures => shooter_crossbow/textures}/shooter_arrow_uv.png (100%) rename {textures => shooter_crossbow/textures}/shooter_crossbow.png (100%) rename {textures => shooter_crossbow/textures}/shooter_crossbow_loaded.png (100%) create mode 100644 shooter_flaregun/depends.txt rename flaregun.lua => shooter_flaregun/init.lua (82%) rename {sounds => shooter_flaregun/sounds}/shooter_flare_burn.ogg (100%) rename {sounds => shooter_flaregun/sounds}/shooter_flare_fire.ogg (100%) rename {textures => shooter_flaregun/textures}/shooter_flare.png (100%) rename {textures => shooter_flaregun/textures}/shooter_flare_inv.png (100%) rename {textures => shooter_flaregun/textures}/shooter_flare_light.png (100%) rename {textures => shooter_flaregun/textures}/shooter_flare_particle.png (100%) rename {textures => shooter_flaregun/textures}/shooter_flaregun.png (100%) create mode 100644 shooter_grenade/depends.txt rename grenade.lua => shooter_grenade/init.lua (85%) rename {textures => shooter_grenade/textures}/shooter_grenade.png (100%) rename {textures => shooter_grenade/textures}/shooter_hand_grenade.png (100%) create mode 100644 shooter_guns/depends.txt rename guns.lua => shooter_guns/init.lua (76%) rename {sounds => shooter_guns/sounds}/shooter_pistol.ogg (100%) rename {sounds => shooter_guns/sounds}/shooter_rifle.ogg (100%) rename {sounds => shooter_guns/sounds}/shooter_shotgun.ogg (100%) create mode 100644 shooter_guns/textures/shooter_ammo.png rename {textures => shooter_guns/textures}/shooter_pistol.png (100%) rename {textures => shooter_guns/textures}/shooter_rifle.png (100%) rename {textures => shooter_guns/textures}/shooter_shotgun.png (100%) rename {textures => shooter_guns/textures}/shooter_smgun.png (100%) create mode 100644 shooter_hook/depends.txt rename grapple.lua => shooter_hook/init.lua (76%) rename {textures => shooter_hook/textures}/shooter_hook.png (100%) rename {textures => shooter_hook/textures}/shooter_hook_gun.png (100%) rename {textures => shooter_hook/textures}/shooter_hook_gun_loaded.png (100%) create mode 100644 shooter_rocket/depends.txt rename rocket.lua => shooter_rocket/init.lua (74%) rename {sounds => shooter_rocket/sounds}/shooter_rocket_fire.ogg (100%) rename {textures => shooter_rocket/textures}/shooter_rocket_gun.png (100%) rename {textures => shooter_rocket/textures}/shooter_rocket_gun_loaded.png (100%) rename {textures => shooter_rocket/textures}/shooter_rocket_inv.png (100%) create mode 100644 shooter_turret/depends.txt rename turret.lua => shooter_turret/init.lua (91%) rename {models => shooter_turret/models}/shooter_turret.b3d (100%) rename {models => shooter_turret/models}/shooter_turret.blend (100%) rename {textures => shooter_turret/textures}/shooter_turret_base.png (100%) rename {textures => shooter_turret/textures}/shooter_turret_gun.png (100%) rename {textures => shooter_turret/textures}/shooter_turret_uv.png (100%) delete mode 100644 textures/crosshair.png diff --git a/init.lua b/init.lua deleted file mode 100644 index 1eceb96..0000000 --- a/init.lua +++ /dev/null @@ -1,26 +0,0 @@ -local modpath = minetest.get_modpath(minetest.get_current_modname()) - -dofile(modpath.."/shooter.lua") - -if SHOOTER_ENABLE_CROSSBOW == true then - dofile(modpath.."/crossbow.lua") -end -if SHOOTER_ENABLE_GUNS == true then - dofile(modpath.."/guns.lua") -end -if SHOOTER_ENABLE_FLARES == true then - dofile(modpath.."/flaregun.lua") -end -if SHOOTER_ENABLE_HOOK == true then - dofile(modpath.."/grapple.lua") -end -if SHOOTER_ENABLE_GRENADES == true then - dofile(modpath.."/grenade.lua") -end -if SHOOTER_ENABLE_ROCKETS == true then - dofile(modpath.."/rocket.lua") -end -if SHOOTER_ENABLE_TURRETS == true then - dofile(modpath.."/turret.lua") -end - diff --git a/modpack.txt b/modpack.txt new file mode 100644 index 0000000..33d91f5 --- /dev/null +++ b/modpack.txt @@ -0,0 +1 @@ +The presence of this file indicates that the current folder is a modpack. \ No newline at end of file diff --git a/LICENSE.txt b/shooter/LICENSE.txt similarity index 100% rename from LICENSE.txt rename to shooter/LICENSE.txt diff --git a/README.txt b/shooter/README.txt similarity index 100% rename from README.txt rename to shooter/README.txt diff --git a/shooter.lua b/shooter/api.lua similarity index 100% rename from shooter.lua rename to shooter/api.lua diff --git a/depends.txt b/shooter/depends.txt similarity index 100% rename from depends.txt rename to shooter/depends.txt diff --git a/description.txt b/shooter/description.txt similarity index 100% rename from description.txt rename to shooter/description.txt diff --git a/shooter/init.lua b/shooter/init.lua new file mode 100644 index 0000000..d1616d0 --- /dev/null +++ b/shooter/init.lua @@ -0,0 +1,7 @@ +local modpath = minetest.get_modpath(minetest.get_current_modname()) + +dofile(modpath.."/api.lua") + + + + diff --git a/mod.conf b/shooter/mod.conf similarity index 100% rename from mod.conf rename to shooter/mod.conf diff --git a/screenshot.png b/shooter/screenshot.png similarity index 100% rename from screenshot.png rename to shooter/screenshot.png diff --git a/shooter.conf.example b/shooter/shooter.conf.example similarity index 100% rename from shooter.conf.example rename to shooter/shooter.conf.example diff --git a/sounds/shooter_click.ogg b/shooter/sounds/shooter_click.ogg similarity index 100% rename from sounds/shooter_click.ogg rename to shooter/sounds/shooter_click.ogg diff --git a/sounds/shooter_reload.ogg b/shooter/sounds/shooter_reload.ogg similarity index 100% rename from sounds/shooter_reload.ogg rename to shooter/sounds/shooter_reload.ogg diff --git a/sounds/shooter_throw.ogg b/shooter/sounds/shooter_throw.ogg similarity index 100% rename from sounds/shooter_throw.ogg rename to shooter/sounds/shooter_throw.ogg diff --git a/textures/shooter_ammo.png b/shooter/textures/shooter_ammo.png similarity index 100% rename from textures/shooter_ammo.png rename to shooter/textures/shooter_ammo.png diff --git a/textures/shooter_bullet.png b/shooter/textures/shooter_bullet.png similarity index 100% rename from textures/shooter_bullet.png rename to shooter/textures/shooter_bullet.png diff --git a/textures/shooter_cap.png b/shooter/textures/shooter_cap.png similarity index 100% rename from textures/shooter_cap.png rename to shooter/textures/shooter_cap.png diff --git a/textures/shooter_hit.png b/shooter/textures/shooter_hit.png similarity index 100% rename from textures/shooter_hit.png rename to shooter/textures/shooter_hit.png diff --git a/shooter_crossbow/depends.txt b/shooter_crossbow/depends.txt new file mode 100644 index 0000000..98dfd74 --- /dev/null +++ b/shooter_crossbow/depends.txt @@ -0,0 +1,2 @@ +wool +shooter diff --git a/crossbow.lua b/shooter_crossbow/init.lua similarity index 84% rename from crossbow.lua rename to shooter_crossbow/init.lua index 69c3083..3c625ac 100644 --- a/crossbow.lua +++ b/shooter_crossbow/init.lua @@ -2,7 +2,7 @@ SHOOTER_CROSSBOW_USES = 50 SHOOTER_ARROW_TOOL_CAPS = {damage_groups={fleshy=2}} SHOOTER_ARROW_LIFETIME = 180 -- 3 minutes -minetest.register_alias("shooter:arrow", "shooter:arrow_white") +minetest.register_alias("shooter_crossbow:arrow", "shooter_crossbow:arrow_white") minetest.register_alias("shooter:crossbow_loaded", "shooter:crossbow_loaded_white") local dye_basecolors = (dye and dye.basecolors) or @@ -30,7 +30,7 @@ local function get_texture(name, colour) return "shooter_"..name..".png^wool_"..colour..".png^shooter_"..name..".png^[makealpha:255,126,126" end -minetest.register_entity("shooter:arrow_entity", { +minetest.register_entity("shooter_crossbow:arrow_entity", { physical = false, visual = "mesh", mesh = "shooter_arrow.b3d", @@ -84,7 +84,7 @@ minetest.register_entity("shooter:arrow_entity", { on_punch = function(self, puncher) if puncher then if puncher:is_player() then - local stack = "shooter:arrow_"..self.color + local stack = "shooter_crossbow:arrow_"..self.color local inv = puncher:get_inventory() if inv:room_for_item("main", stack) then inv:add_item("main", stack) @@ -169,11 +169,11 @@ minetest.register_entity("shooter:arrow_entity", { }) for _, color in pairs(dye_basecolors) do - minetest.register_craftitem("shooter:arrow_"..color, { + minetest.register_craftitem("shooter_crossbow:arrow_"..color, { description = color:gsub("%a", string.upper, 1).." Arrow", inventory_image = get_texture("arrow_inv", color), }) - minetest.register_tool("shooter:crossbow_loaded_"..color, { + minetest.register_tool("shooter_crossbow:crossbow_loaded_"..color, { description = "Crossbow", inventory_image = get_texture("crossbow_loaded", color), groups = {not_in_creative_inventory=1}, @@ -182,13 +182,13 @@ for _, color in pairs(dye_basecolors) do if not minetest.setting_getbool("creative_mode") then itemstack:add_wear(65535/SHOOTER_CROSSBOW_USES) end - itemstack = "shooter:crossbow 1 "..itemstack:get_wear() + itemstack = "shooter_crossbow:crossbow 1 "..itemstack:get_wear() local pos = user:getpos() local dir = user:get_look_dir() local yaw = user:get_look_yaw() if pos and dir and yaw then pos.y = pos.y + 1.5 - local obj = minetest.add_entity(pos, "shooter:arrow_entity") + local obj = minetest.add_entity(pos, "shooter_crossbow:arrow_entity") local ent = nil if obj then ent = obj:get_luaentity() @@ -235,27 +235,27 @@ for _, color in pairs(dye_basecolors) do }) end -minetest.register_tool("shooter:crossbow", { +minetest.register_tool("shooter_crossbow:crossbow", { description = "Crossbow", inventory_image = "shooter_crossbow.png", on_use = function(itemstack, user, pointed_thing) local inv = user:get_inventory() local stack = inv:get_stack("main", user:get_wield_index() + 1) - local color = string.match(stack:get_name(), "shooter:arrow_(%a+)") + local color = string.match(stack:get_name(), "shooter_crossbow:arrow_(%a+)") if color then minetest.sound_play("shooter_reload", {object=user}) if not minetest.setting_getbool("creative_mode") then - inv:remove_item("main", "shooter:arrow_"..color.." 1") + inv:remove_item("main", "shooter_crossbow:arrow_"..color.." 1") end - return "shooter:crossbow_loaded_"..color.." 1 "..itemstack:get_wear() + return "shooter_crossbow:crossbow_loaded_"..color.." 1 "..itemstack:get_wear() end for _, color in pairs(dye_basecolors) do - if inv:contains_item("main", "shooter:arrow_"..color) then + if inv:contains_item("main", "shooter_crossbow:arrow_"..color) then minetest.sound_play("shooter_reload", {object=user}) if not minetest.setting_getbool("creative_mode") then - inv:remove_item("main", "shooter:arrow_"..color.." 1") + inv:remove_item("main", "shooter_crossbow:arrow_"..color.." 1") end - return "shooter:crossbow_loaded_"..color.." 1 "..itemstack:get_wear() + return "shooter_crossbow:crossbow_loaded_"..color.." 1 "..itemstack:get_wear() end end minetest.sound_play("shooter_click", {object=user}) @@ -264,7 +264,7 @@ minetest.register_tool("shooter:crossbow", { if SHOOTER_ENABLE_CRAFTING == true then minetest.register_craft({ - output = "shooter:crossbow", + output = "shooter_crossbow:crossbow", recipe = { {"default:stick", "default:stick", "default:stick"}, {"default:stick", "default:stick", ""}, @@ -272,7 +272,7 @@ if SHOOTER_ENABLE_CRAFTING == true then }, }) minetest.register_craft({ - output = "shooter:arrow_white", + output = "shooter_crossbow:arrow_white", recipe = { {"default:steel_ingot", "", ""}, {"", "default:stick", "default:paper"}, @@ -282,12 +282,19 @@ if SHOOTER_ENABLE_CRAFTING == true then for _, color in pairs(dye_basecolors) do if color ~= "white" then minetest.register_craft({ - output = "shooter:arrow_"..color, + output = "shooter_crossbow:arrow_"..color, recipe = { - {"", "dye:"..color, "shooter:arrow_white"}, + {"", "dye:"..color, "shooter_crossbow:arrow_white"}, }, }) end end end + +--Backwards compatibility +minetest.register_alias("shooter:crossbow", "shooter_crossbow:crossbow") +for _, color in pairs(dye_basecolors) do + minetest.register_alias("shooter:arrow_"..color, "shooter_crossbow:arrow_"..color) + minetest.register_alias("shooter:crossbow_loaded_"..color, "shooter_crossbow:crossbow_loaded_"..color) +end diff --git a/models/shooter_arrow.b3d b/shooter_crossbow/models/shooter_arrow.b3d similarity index 100% rename from models/shooter_arrow.b3d rename to shooter_crossbow/models/shooter_arrow.b3d diff --git a/models/shooter_arrow.blend b/shooter_crossbow/models/shooter_arrow.blend similarity index 100% rename from models/shooter_arrow.blend rename to shooter_crossbow/models/shooter_arrow.blend diff --git a/textures/shooter_arrow_inv.png b/shooter_crossbow/textures/shooter_arrow_inv.png similarity index 100% rename from textures/shooter_arrow_inv.png rename to shooter_crossbow/textures/shooter_arrow_inv.png diff --git a/textures/shooter_arrow_uv.png b/shooter_crossbow/textures/shooter_arrow_uv.png similarity index 100% rename from textures/shooter_arrow_uv.png rename to shooter_crossbow/textures/shooter_arrow_uv.png diff --git a/textures/shooter_crossbow.png b/shooter_crossbow/textures/shooter_crossbow.png similarity index 100% rename from textures/shooter_crossbow.png rename to shooter_crossbow/textures/shooter_crossbow.png diff --git a/textures/shooter_crossbow_loaded.png b/shooter_crossbow/textures/shooter_crossbow_loaded.png similarity index 100% rename from textures/shooter_crossbow_loaded.png rename to shooter_crossbow/textures/shooter_crossbow_loaded.png diff --git a/shooter_flaregun/depends.txt b/shooter_flaregun/depends.txt new file mode 100644 index 0000000..a36e713 --- /dev/null +++ b/shooter_flaregun/depends.txt @@ -0,0 +1,3 @@ +tnt +wool +shooter diff --git a/flaregun.lua b/shooter_flaregun/init.lua similarity index 82% rename from flaregun.lua rename to shooter_flaregun/init.lua index b3e071d..8126afe 100644 --- a/flaregun.lua +++ b/shooter_flaregun/init.lua @@ -1,9 +1,9 @@ -minetest.register_craftitem("shooter:flare", { +minetest.register_craftitem("shooter_flaregun:flare", { description = "Flare", inventory_image = "shooter_flare_inv.png", }) -minetest.register_node("shooter:flare_light", { +minetest.register_node("shooter_flaregun:flare_light", { drawtype = "glasslike", tiles = {"shooter_flare_light.png"}, paramtype = "light", @@ -17,7 +17,7 @@ minetest.register_node("shooter:flare_light", { }) minetest.register_abm({ - nodenames = "shooter:flare_light", + nodenames = "shooter_flaregun:flare_light", interval = 5, chance = 1, action = function(pos, node) @@ -34,7 +34,7 @@ minetest.register_abm({ end, }) -minetest.register_entity("shooter:flare_entity", { +minetest.register_entity("shooter_flaregun:flare_entity", { physical = true, timer = 0, visual = "cube", @@ -66,7 +66,7 @@ minetest.register_entity("shooter:flare_entity", { if minetest.get_node(pos).name == "air" and node.name ~= "default:water_source" and node.name ~= "default:water_flowing" then - minetest.place_node(pos, {name="shooter:flare_light"}) + minetest.place_node(pos, {name="shooter_flaregun:flare_light"}) local meta = minetest.get_meta(pos) pos.y = pos.y - 0.1 local id = minetest.add_particlespawner( @@ -95,12 +95,12 @@ minetest.register_entity("shooter:flare_entity", { end, }) -minetest.register_tool("shooter:flaregun", { +minetest.register_tool("shooter_flaregun:flaregun", { description = "Flare Gun", inventory_image = "shooter_flaregun.png", on_use = function(itemstack, user, pointed_thing) local inv = user:get_inventory() - if not inv:contains_item("main", "shooter:flare") then + if not inv:contains_item("main", "shooter_flaregun:flare") then minetest.sound_play("shooter_click", {object=user}) return itemstack end @@ -113,7 +113,7 @@ minetest.register_tool("shooter:flaregun", { local yaw = user:get_look_yaw() if pos and dir and yaw then pos.y = pos.y + 1.5 - local obj = minetest.add_entity(pos, "shooter:flare_entity") + local obj = minetest.add_entity(pos, "shooter_flaregun:flare_entity") if obj then minetest.sound_play("shooter_flare_fire", {object=obj}) obj:setvelocity({x=dir.x * 16, y=dir.y * 16, z=dir.z * 16}) @@ -131,13 +131,13 @@ minetest.register_tool("shooter:flaregun", { if SHOOTER_ENABLE_CRAFTING == true then minetest.register_craft({ - output = "shooter:flare", + output = "shooter_flaregun:flare", recipe = { {"tnt:gunpowder", "wool:red"}, }, }) minetest.register_craft({ - output = "shooter:flaregun", + output = "shooter_flaregun:flaregun", recipe = { {"wool:red", "wool:red", "wool:red"}, {"", "", "default:steel_ingot"} @@ -145,3 +145,7 @@ if SHOOTER_ENABLE_CRAFTING == true then }) end + +--Backwards compatibility +minetest.register_alias("shooter:flaregun", "shooter_flaregun:flaregun") +minetest.register_alias("shooter:flare", "shooter_flaregun:flare") diff --git a/sounds/shooter_flare_burn.ogg b/shooter_flaregun/sounds/shooter_flare_burn.ogg similarity index 100% rename from sounds/shooter_flare_burn.ogg rename to shooter_flaregun/sounds/shooter_flare_burn.ogg diff --git a/sounds/shooter_flare_fire.ogg b/shooter_flaregun/sounds/shooter_flare_fire.ogg similarity index 100% rename from sounds/shooter_flare_fire.ogg rename to shooter_flaregun/sounds/shooter_flare_fire.ogg diff --git a/textures/shooter_flare.png b/shooter_flaregun/textures/shooter_flare.png similarity index 100% rename from textures/shooter_flare.png rename to shooter_flaregun/textures/shooter_flare.png diff --git a/textures/shooter_flare_inv.png b/shooter_flaregun/textures/shooter_flare_inv.png similarity index 100% rename from textures/shooter_flare_inv.png rename to shooter_flaregun/textures/shooter_flare_inv.png diff --git a/textures/shooter_flare_light.png b/shooter_flaregun/textures/shooter_flare_light.png similarity index 100% rename from textures/shooter_flare_light.png rename to shooter_flaregun/textures/shooter_flare_light.png diff --git a/textures/shooter_flare_particle.png b/shooter_flaregun/textures/shooter_flare_particle.png similarity index 100% rename from textures/shooter_flare_particle.png rename to shooter_flaregun/textures/shooter_flare_particle.png diff --git a/textures/shooter_flaregun.png b/shooter_flaregun/textures/shooter_flaregun.png similarity index 100% rename from textures/shooter_flaregun.png rename to shooter_flaregun/textures/shooter_flaregun.png diff --git a/shooter_grenade/depends.txt b/shooter_grenade/depends.txt new file mode 100644 index 0000000..8f4d06f --- /dev/null +++ b/shooter_grenade/depends.txt @@ -0,0 +1,2 @@ +tnt +shooter diff --git a/grenade.lua b/shooter_grenade/init.lua similarity index 85% rename from grenade.lua rename to shooter_grenade/init.lua index 0313ce8..90f5bb4 100644 --- a/grenade.lua +++ b/shooter_grenade/init.lua @@ -1,4 +1,4 @@ -minetest.register_entity("shooter:grenade_entity", { +minetest.register_entity("shooter_grenade:grenade_entity", { physical = false, timer = 0, visual = "cube", @@ -35,7 +35,7 @@ minetest.register_entity("shooter:grenade_entity", { end, }) -minetest.register_tool("shooter:grenade", { +minetest.register_tool("shooter_grenade:grenade", { description = "Grenade", inventory_image = "shooter_hand_grenade.png", on_use = function(itemstack, user, pointed_thing) @@ -54,7 +54,7 @@ minetest.register_tool("shooter:grenade", { local yaw = user:get_look_yaw() if pos and dir then pos.y = pos.y + 1.5 - local obj = minetest.add_entity(pos, "shooter:grenade_entity") + local obj = minetest.add_entity(pos, "shooter_grenade:grenade_entity") if obj then obj:setvelocity({x=dir.x * 15, y=dir.y * 15, z=dir.z * 15}) obj:setacceleration({x=dir.x * -3, y=-10, z=dir.z * -3}) @@ -71,10 +71,13 @@ minetest.register_tool("shooter:grenade", { if SHOOTER_ENABLE_CRAFTING == true then minetest.register_craft({ - output = "shooter:grenade", + output = "shooter_grenade:grenade", recipe = { {"tnt:gunpowder", "default:steel_ingot"}, }, }) end + +--Backwards compatibility +minetest.register_alias("shooter:grenade", "shooter_grenade:grenade") diff --git a/textures/shooter_grenade.png b/shooter_grenade/textures/shooter_grenade.png similarity index 100% rename from textures/shooter_grenade.png rename to shooter_grenade/textures/shooter_grenade.png diff --git a/textures/shooter_hand_grenade.png b/shooter_grenade/textures/shooter_hand_grenade.png similarity index 100% rename from textures/shooter_hand_grenade.png rename to shooter_grenade/textures/shooter_hand_grenade.png diff --git a/shooter_guns/depends.txt b/shooter_guns/depends.txt new file mode 100644 index 0000000..8f4d06f --- /dev/null +++ b/shooter_guns/depends.txt @@ -0,0 +1,2 @@ +tnt +shooter diff --git a/guns.lua b/shooter_guns/init.lua similarity index 76% rename from guns.lua rename to shooter_guns/init.lua index d31a724..5def56a 100644 --- a/guns.lua +++ b/shooter_guns/init.lua @@ -1,4 +1,4 @@ -shooter:register_weapon("shooter:pistol", { +shooter:register_weapon("shooter_guns:pistol", { description = "Pistol", inventory_image = "shooter_pistol.png", rounds = 200, @@ -12,7 +12,7 @@ shooter:register_weapon("shooter:pistol", { }, }) -shooter:register_weapon("shooter:rifle", { +shooter:register_weapon("shooter_guns:rifle", { description = "Rifle", inventory_image = "shooter_rifle.png", rounds = 100, @@ -26,7 +26,7 @@ shooter:register_weapon("shooter:rifle", { }, }) -shooter:register_weapon("shooter:shotgun", { +shooter:register_weapon("shooter_guns:shotgun", { description = "Shotgun", inventory_image = "shooter_shotgun.png", rounds = 50, @@ -40,7 +40,7 @@ shooter:register_weapon("shooter:shotgun", { }, }) -shooter:register_weapon("shooter:machine_gun", { +shooter:register_weapon("shooter_guns:machine_gun", { description = "Sub Machine Gun", inventory_image = "shooter_smgun.png", rounds = 50, @@ -55,21 +55,21 @@ shooter:register_weapon("shooter:machine_gun", { }, }) -minetest.register_craftitem("shooter:ammo", { +minetest.register_craftitem("shooter_guns:ammo", { description = "Ammo pack", inventory_image = "shooter_ammo.png", }) if SHOOTER_ENABLE_CRAFTING == true then minetest.register_craft({ - output = "shooter:pistol 1 65535", + output = "shooter_guns:pistol 1 65535", recipe = { {"default:steel_ingot", "default:steel_ingot"}, {"", "default:mese_crystal"}, }, }) minetest.register_craft({ - output = "shooter:rifle 1 65535", + output = "shooter_guns:rifle 1 65535", recipe = { {"default:steel_ingot", "", ""}, {"", "default:bronze_ingot", ""}, @@ -77,7 +77,7 @@ if SHOOTER_ENABLE_CRAFTING == true then }, }) minetest.register_craft({ - output = "shooter:shotgun 1 65535", + output = "shooter_guns:shotgun 1 65535", recipe = { {"default:steel_ingot", "", ""}, {"", "default:steel_ingot", ""}, @@ -85,15 +85,15 @@ if SHOOTER_ENABLE_CRAFTING == true then }, }) minetest.register_craft({ - output = "shooter:machine_gun 1 65535", + output = "shooter_guns:machine_gun 1 65535", recipe = { - {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"shooter_guns:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, {"", "default:bronze_ingot", "default:mese_crystal"}, {"", "default:bronze_ingot", ""}, }, }) minetest.register_craft({ - output = "shooter:ammo", + output = "shooter_guns:ammo", recipe = { {"tnt:gunpowder", "default:bronze_ingot"}, }, @@ -125,3 +125,10 @@ minetest.register_globalstep(function(dtime) end end) + +--Backwards compatibility +minetest.register_alias("shooter:shotgun", "shooter_guns:shotgun") +minetest.register_alias("shooter:pistol", "shooter_guns:pistol") +minetest.register_alias("shooter:machine_gun", "shooter_guns:machine_gun") +minetest.register_alias("shooter:rifle", "shooter_guns:rifle") +minetest.register_alias("shooter:ammo", "shooter_guns:ammo") diff --git a/sounds/shooter_pistol.ogg b/shooter_guns/sounds/shooter_pistol.ogg similarity index 100% rename from sounds/shooter_pistol.ogg rename to shooter_guns/sounds/shooter_pistol.ogg diff --git a/sounds/shooter_rifle.ogg b/shooter_guns/sounds/shooter_rifle.ogg similarity index 100% rename from sounds/shooter_rifle.ogg rename to shooter_guns/sounds/shooter_rifle.ogg diff --git a/sounds/shooter_shotgun.ogg b/shooter_guns/sounds/shooter_shotgun.ogg similarity index 100% rename from sounds/shooter_shotgun.ogg rename to shooter_guns/sounds/shooter_shotgun.ogg diff --git a/shooter_guns/textures/shooter_ammo.png b/shooter_guns/textures/shooter_ammo.png new file mode 100644 index 0000000000000000000000000000000000000000..daa348e5e1055aa9784dc9b1587edbf78a5ccd27 GIT binary patch literal 268 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85p>QL70(Y)*K0-AbW|YuPggKb|E1qgXMEKo(2l_c)B=-Se#By zkcc~QEoical%#=D_Bz|TzxImWvvf@*`Q`WXJvUycZJ^+=m|4whZ*SrOV*3|K)yn$oXzVW1}OF zmfill6BZgc&TIsN#K$GI6|)kKJX;^j!}Gth^q>I)!>ns&>JKMaNCDl&;OXk;vd$@? F2>=BrTlN3| literal 0 HcmV?d00001 diff --git a/textures/shooter_pistol.png b/shooter_guns/textures/shooter_pistol.png similarity index 100% rename from textures/shooter_pistol.png rename to shooter_guns/textures/shooter_pistol.png diff --git a/textures/shooter_rifle.png b/shooter_guns/textures/shooter_rifle.png similarity index 100% rename from textures/shooter_rifle.png rename to shooter_guns/textures/shooter_rifle.png diff --git a/textures/shooter_shotgun.png b/shooter_guns/textures/shooter_shotgun.png similarity index 100% rename from textures/shooter_shotgun.png rename to shooter_guns/textures/shooter_shotgun.png diff --git a/textures/shooter_smgun.png b/shooter_guns/textures/shooter_smgun.png similarity index 100% rename from textures/shooter_smgun.png rename to shooter_guns/textures/shooter_smgun.png diff --git a/shooter_hook/depends.txt b/shooter_hook/depends.txt new file mode 100644 index 0000000..41d166d --- /dev/null +++ b/shooter_hook/depends.txt @@ -0,0 +1,2 @@ +shooter +shooter_guns diff --git a/grapple.lua b/shooter_hook/init.lua similarity index 76% rename from grapple.lua rename to shooter_hook/init.lua index 44a60b1..1372ae9 100644 --- a/grapple.lua +++ b/shooter_hook/init.lua @@ -8,7 +8,7 @@ local function throw_hook(itemstack, user, vel) itemstack:add_wear(65535/100) end pos.y = pos.y + 1.5 - local obj = minetest.add_entity(pos, "shooter:hook") + local obj = minetest.add_entity(pos, "shooter_hook:hook") if obj then minetest.sound_play("shooter_throw", {object=obj}) obj:setvelocity({x=dir.x * vel, y=dir.y * vel, z=dir.z * vel}) @@ -23,12 +23,12 @@ local function throw_hook(itemstack, user, vel) end end -minetest.register_entity("shooter:hook", { +minetest.register_entity("shooter_hook:hook", { physical = true, timer = 0, visual = "wielditem", visual_size = {x=1/2, y=1/2}, - textures = {"shooter:grapple_hook"}, + textures = {"shooter_hook:grapple_hook"}, player = nil, itemstack = "", collisionbox = {-1/4,-1/4,-1/4, 1/4,1/4,1/4}, @@ -67,7 +67,7 @@ minetest.register_entity("shooter:hook", { end, }) -minetest.register_tool("shooter:grapple_hook", { +minetest.register_tool("shooter_hook:grapple_hook", { description = "Grappling Hook", inventory_image = "shooter_hook.png", on_use = function(itemstack, user, pointed_thing) @@ -79,17 +79,17 @@ minetest.register_tool("shooter:grapple_hook", { end, }) -minetest.register_tool("shooter:grapple_gun", { +minetest.register_tool("shooter_hook:grapple_gun", { description = "Grappling Gun", inventory_image = "shooter_hook_gun.png", on_use = function(itemstack, user, pointed_thing) local inv = user:get_inventory() - if inv:contains_item("main", "shooter:grapple_hook") and + if inv:contains_item("main", "shooter_hook:grapple_hook") and inv:contains_item("main", "tnt:gunpowder") then inv:remove_item("main", "tnt:gunpowder") minetest.sound_play("shooter_reload", {object=user}) - local stack = inv:remove_item("main", "shooter:grapple_hook") - itemstack = "shooter:grapple_gun_loaded 1 "..stack:get_wear() + local stack = inv:remove_item("main", "shooter_hook:grapple_hook") + itemstack = "shooter_hook:grapple_gun_loaded 1 "..stack:get_wear() else minetest.sound_play("shooter_click", {object=user}) end @@ -97,7 +97,7 @@ minetest.register_tool("shooter:grapple_gun", { end, }) -minetest.register_tool("shooter:grapple_gun_loaded", { +minetest.register_tool("shooter_hook:grapple_gun_loaded", { description = "Grappling Gun", inventory_image = "shooter_hook_gun_loaded.png", groups = {not_in_creative_inventory=1}, @@ -106,15 +106,15 @@ minetest.register_tool("shooter:grapple_gun_loaded", { return itemstack end minetest.sound_play("shooter_pistol", {object=user}) - itemstack = ItemStack("shooter:grapple_hook 1 "..itemstack:get_wear()) + itemstack = ItemStack("shooter_hook:grapple_hook 1 "..itemstack:get_wear()) throw_hook(itemstack, user, 20) - return "shooter:grapple_gun" + return "shooter_hook:grapple_gun" end, }) if SHOOTER_ENABLE_CRAFTING == true then minetest.register_craft({ - output = "shooter:grapple_hook", + output = "shooter_hook:grapple_hook", recipe = { {"default:steel_ingot", "default:steel_ingot", "default:diamond"}, {"default:steel_ingot", "default:steel_ingot", ""}, @@ -122,7 +122,7 @@ if SHOOTER_ENABLE_CRAFTING == true then }, }) minetest.register_craft({ - output = "shooter:grapple_gun", + output = "shooter_hook:grapple_gun", recipe = { {"", "default:steel_ingot", "default:steel_ingot"}, {"", "", "default:diamond"}, @@ -130,3 +130,7 @@ if SHOOTER_ENABLE_CRAFTING == true then }) end +--Backwards compatibility +minetest.register_alias("shooter:grapple_hook", "shooter_hook:grapple_hook") +minetest.register_alias("shooter:grapple_gun", "shooter_hook:grapple_gun") +minetest.register_alias("shooter:grapple_gun_loaded", "shooter_hook:grapple_gun_loaded") diff --git a/textures/shooter_hook.png b/shooter_hook/textures/shooter_hook.png similarity index 100% rename from textures/shooter_hook.png rename to shooter_hook/textures/shooter_hook.png diff --git a/textures/shooter_hook_gun.png b/shooter_hook/textures/shooter_hook_gun.png similarity index 100% rename from textures/shooter_hook_gun.png rename to shooter_hook/textures/shooter_hook_gun.png diff --git a/textures/shooter_hook_gun_loaded.png b/shooter_hook/textures/shooter_hook_gun_loaded.png similarity index 100% rename from textures/shooter_hook_gun_loaded.png rename to shooter_hook/textures/shooter_hook_gun_loaded.png diff --git a/shooter_rocket/depends.txt b/shooter_rocket/depends.txt new file mode 100644 index 0000000..8f4d06f --- /dev/null +++ b/shooter_rocket/depends.txt @@ -0,0 +1,2 @@ +tnt +shooter diff --git a/rocket.lua b/shooter_rocket/init.lua similarity index 74% rename from rocket.lua rename to shooter_rocket/init.lua index ac9f6ed..c98e9e5 100644 --- a/rocket.lua +++ b/shooter_rocket/init.lua @@ -1,10 +1,10 @@ -minetest.register_craftitem("shooter:rocket", { +minetest.register_craftitem("shooter_rocket:rocket", { description = "Rocket", stack_max = 1, inventory_image = "shooter_rocket_inv.png", }) -minetest.register_entity("shooter:rocket_entity", { +minetest.register_entity("shooter_rocket:rocket_entity", { physical = false, timer = 0, visual = "cube", @@ -41,7 +41,7 @@ minetest.register_entity("shooter:rocket_entity", { end, }) -minetest.register_tool("shooter:rocket_gun_loaded", { +minetest.register_tool("shooter_rocket:rocket_gun_loaded", { description = "Rocket Gun", inventory_image = "shooter_rocket_gun_loaded.png", groups = {not_in_creative_inventory=1}, @@ -49,7 +49,7 @@ minetest.register_tool("shooter:rocket_gun_loaded", { if not minetest.setting_getbool("creative_mode") then itemstack:add_wear(65535/50) end - itemstack = "shooter:rocket_gun 1 "..itemstack:get_wear() + itemstack = "shooter_rocket:rocket_gun 1 "..itemstack:get_wear() if pointed_thing.type ~= "nothing" then local pointed = minetest.get_pointed_thing_position(pointed_thing) if vector.distance(user:getpos(), pointed) < 8 then @@ -62,7 +62,7 @@ minetest.register_tool("shooter:rocket_gun_loaded", { local yaw = user:get_look_yaw() if pos and dir and yaw then pos.y = pos.y + 1.5 - local obj = minetest.add_entity(pos, "shooter:rocket_entity") + local obj = minetest.add_entity(pos, "shooter_rocket:rocket_entity") if obj then minetest.sound_play("shooter_rocket_fire", {object=obj}) obj:setvelocity({x=dir.x * 20, y=dir.y * 20, z=dir.z * 20}) @@ -78,17 +78,17 @@ minetest.register_tool("shooter:rocket_gun_loaded", { end, }) -minetest.register_tool("shooter:rocket_gun", { +minetest.register_tool("shooter_rocket:rocket_gun", { description = "Rocket Gun", inventory_image = "shooter_rocket_gun.png", on_use = function(itemstack, user, pointed_thing) local inv = user:get_inventory() - if inv:contains_item("main", "shooter:rocket") then + if inv:contains_item("main", "shooter_rocket:rocket") then minetest.sound_play("shooter_reload", {object=user}) if not minetest.setting_getbool("creative_mode") then - inv:remove_item("main", "shooter:rocket 1") + inv:remove_item("main", "shooter_rocket:rocket 1") end - itemstack = "shooter:rocket_gun_loaded 1 "..itemstack:get_wear() + itemstack = "shooter_rocket:rocket_gun_loaded 1 "..itemstack:get_wear() else minetest.sound_play("shooter_click", {object=user}) end @@ -98,17 +98,23 @@ minetest.register_tool("shooter:rocket_gun", { if SHOOTER_ENABLE_CRAFTING == true then minetest.register_craft({ - output = "shooter:rocket_gun", + output = "shooter_rocket:rocket_gun", recipe = { {"default:bronze_ingot", "default:steel_ingot", "default:steel_ingot"}, {"", "", "default:diamond"}, }, }) minetest.register_craft({ - output = "shooter:rocket", + output = "shooter_rocket:rocket", recipe = { {"default:bronze_ingot", "tnt:gunpowder", "default:bronze_ingot"}, }, }) end +--Backwards compatibility +minetest.register_alias("shooter:rocket", "shooter_rocket:rocket") +minetest.register_alias("shooter:rocket_gun", "shooter_rocket:rocket_gun") +minetest.register_alias("shooter:rocket_gun_loaded", "shooter_rocket:rocket_gun_loaded") + + diff --git a/sounds/shooter_rocket_fire.ogg b/shooter_rocket/sounds/shooter_rocket_fire.ogg similarity index 100% rename from sounds/shooter_rocket_fire.ogg rename to shooter_rocket/sounds/shooter_rocket_fire.ogg diff --git a/textures/shooter_rocket_gun.png b/shooter_rocket/textures/shooter_rocket_gun.png similarity index 100% rename from textures/shooter_rocket_gun.png rename to shooter_rocket/textures/shooter_rocket_gun.png diff --git a/textures/shooter_rocket_gun_loaded.png b/shooter_rocket/textures/shooter_rocket_gun_loaded.png similarity index 100% rename from textures/shooter_rocket_gun_loaded.png rename to shooter_rocket/textures/shooter_rocket_gun_loaded.png diff --git a/textures/shooter_rocket_inv.png b/shooter_rocket/textures/shooter_rocket_inv.png similarity index 100% rename from textures/shooter_rocket_inv.png rename to shooter_rocket/textures/shooter_rocket_inv.png diff --git a/shooter_turret/depends.txt b/shooter_turret/depends.txt new file mode 100644 index 0000000..41d166d --- /dev/null +++ b/shooter_turret/depends.txt @@ -0,0 +1,2 @@ +shooter +shooter_guns diff --git a/turret.lua b/shooter_turret/init.lua similarity index 91% rename from turret.lua rename to shooter_turret/init.lua index 67472d9..6a629fe 100644 --- a/turret.lua +++ b/shooter_turret/init.lua @@ -4,7 +4,7 @@ local function get_turret_entity(pos) for _, obj in ipairs(objects) do local ent = obj:get_luaentity() if ent then - if ent.name == "shooter:turret_entity" then + if ent.name == "shooter_turret:turret_entity" then -- Remove duplicates if entity then obj:remove() @@ -17,7 +17,7 @@ local function get_turret_entity(pos) return entity end -minetest.register_entity("shooter:tnt_entity", { +minetest.register_entity("shooter_turret:tnt_entity", { physical = false, timer = 0, visual = "cube", @@ -53,7 +53,7 @@ minetest.register_entity("shooter:tnt_entity", { end, }) -minetest.register_entity("shooter:turret_entity", { +minetest.register_entity("shooter_turret:turret_entity", { physical = true, visual = "mesh", mesh = "shooter_turret.b3d", @@ -70,7 +70,7 @@ minetest.register_entity("shooter:turret_entity", { on_activate = function(self, staticdata) self.pos = self.object:getpos() self.yaw = self.object:getyaw() - if minetest.get_node(self.pos).name ~= "shooter:turret" then + if minetest.get_node(self.pos).name ~= "shooter_turret:turret" then self.object:remove() return end @@ -147,7 +147,7 @@ minetest.register_entity("shooter:turret_entity", { minetest.sound_play("shooter_click", {object=self.object}) return end - minetest.sound_play("shooter_shotgun", {object=self.object}) + minetest.sound_play("guns_shotgun", {object=self.object}) if not minetest.setting_getbool("creative_mode") then inv:remove_item("main", "tnt:tnt") end @@ -160,7 +160,7 @@ minetest.register_entity("shooter:turret_entity", { }) local pos = {x=self.pos.x, y=self.pos.y + 0.87, z=self.pos.z} pos = vector.add(pos, {x=dir.x * 1.5, y=dir.y * 1.5, z=dir.z * 1.5}) - local obj = minetest.add_entity(pos, "shooter:tnt_entity") + local obj = minetest.add_entity(pos, "shooter_turret:tnt_entity") if obj then local ent = obj:get_luaentity() if ent then @@ -183,7 +183,7 @@ minetest.register_entity("shooter:turret_entity", { end }) -minetest.register_node("shooter:turret", { +minetest.register_node("shooter_turret:turret", { description = "Turret Gun", tiles = {"shooter_turret_base.png"}, inventory_image = "shooter_turret_gun.png", @@ -217,7 +217,7 @@ minetest.register_node("shooter:turret", { local node = minetest.get_node({x=pos.x, y=pos.y + 1, z=pos.z}) if node.name == "air" then if not get_turret_entity(pos) then - minetest.add_entity(pos, "shooter:turret_entity") + minetest.add_entity(pos, "shooter_turret:turret_entity") end end end, @@ -255,7 +255,7 @@ minetest.register_node("shooter:turret", { if SHOOTER_ENABLE_CRAFTING == true then minetest.register_craft({ - output = "shooter:turret", + output = "shooter_turret:turret", recipe = { {"default:bronze_ingot", "default:bronze_ingot", "default:steel_ingot"}, {"", "default:bronze_ingot", "default:steel_ingot"}, @@ -264,3 +264,7 @@ if SHOOTER_ENABLE_CRAFTING == true then }) end + +--Backward compatibility +minetest.register_alias("shooter:turret", "shooter_turret:turret") + diff --git a/models/shooter_turret.b3d b/shooter_turret/models/shooter_turret.b3d similarity index 100% rename from models/shooter_turret.b3d rename to shooter_turret/models/shooter_turret.b3d diff --git a/models/shooter_turret.blend b/shooter_turret/models/shooter_turret.blend similarity index 100% rename from models/shooter_turret.blend rename to shooter_turret/models/shooter_turret.blend diff --git a/textures/shooter_turret_base.png b/shooter_turret/textures/shooter_turret_base.png similarity index 100% rename from textures/shooter_turret_base.png rename to shooter_turret/textures/shooter_turret_base.png diff --git a/textures/shooter_turret_gun.png b/shooter_turret/textures/shooter_turret_gun.png similarity index 100% rename from textures/shooter_turret_gun.png rename to shooter_turret/textures/shooter_turret_gun.png diff --git a/textures/shooter_turret_uv.png b/shooter_turret/textures/shooter_turret_uv.png similarity index 100% rename from textures/shooter_turret_uv.png rename to shooter_turret/textures/shooter_turret_uv.png diff --git a/textures/crosshair.png b/textures/crosshair.png deleted file mode 100644 index 30844f7a916666e5a34cb50accc06d9d6748cc74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 364 zcmeAS@N?(olHy`uVBq!ia0vp^Iv~u!1|;QLq8Nb`V{wqX6T`Z5GB1G~wj^(N7l!{J zxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwYTS{11|6iO_Bv9y$r;B4q#NoFy z4+=Ib2)O>Yn$p;s5WZ5SbxD5&$Cr&e*PK%A67HDwr@Tm}z1HH)p-qcc$vN;JNS@20 z(BbHO^xE&pNh@b~e2gdBFz3%hh6ij1cE5S5p~PP!8J(1weDgrd z#fM1&GY*N^Iat&xp07LgMq``lGs}-9Px@K}ocdg)RDZ6V(v^OLPc9OeI9=5QjXZ3*8A%0 z(L=|QD#A^s1(?RKUUgs4ddC_zZNbc~rPGi2Gd$w{_;|ggLf`XSKz}oMy85}Sb4q9e E0Ohok?EnA(