diff --git a/.gitmodules b/.gitmodules index 034060a..4a21400 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "mods/crafting"] path = mods/crafting url = https://github.com/rubenwardy/crafting -[submodule "mods/ctf/ctf_map/maps"] - path = mods/ctf/ctf_map/maps - url = https://github.com/MT-CTF/maps.git +[submodule "mods/ctf/ctf_map/ctf_map_core/maps"] + path = mods/ctf/ctf_map/ctf_map_core/maps + url = https://github.com/MT-CTF/maps diff --git a/mods/ctf/ctf_map/ctf_map_core/README.md b/mods/ctf/ctf_map/ctf_map_core/README.md new file mode 100644 index 0000000..1f4c0e1 --- /dev/null +++ b/mods/ctf/ctf_map/ctf_map_core/README.md @@ -0,0 +1,19 @@ +# CTF Map Core + +This mod handles creating and loading maps. + +## Attributions + +- Indestructible nodes adapted from various mods in `minetest_game`. + +## Indestructible nodes + +- `ctf_map_core` provides indestructible nodes for most nodes from default, and all nodes from +stairs. + +- All indestructible nodes have the same item name with the mod prefix being `ctf_map:` +instead of their original prefixes (e.g. `default:stone` -> `ctf_map:stone` and +`stairs:stair_stone` -> `ctf_map:stair_stone`) with the exception of wool, whose +indestructible nodes have slightly different names from the original node names - +`ctf_map:wool_`. This is because the original nomenclature becomes meaningless +if the modname prefix is changed. diff --git a/mods/ctf/ctf_map/barrier.lua b/mods/ctf/ctf_map/ctf_map_core/barrier.lua similarity index 100% rename from mods/ctf/ctf_map/barrier.lua rename to mods/ctf/ctf_map/ctf_map_core/barrier.lua diff --git a/mods/ctf/ctf_map/base.lua b/mods/ctf/ctf_map/ctf_map_core/base.lua similarity index 96% rename from mods/ctf/ctf_map/base.lua rename to mods/ctf/ctf_map/ctf_map_core/base.lua index bf9ea8f..b431168 100644 --- a/mods/ctf/ctf_map/base.lua +++ b/mods/ctf/ctf_map/ctf_map_core/base.lua @@ -20,7 +20,7 @@ function ctf_map.place_base(color, pos) end -- Spawn chest - local chest = { name = "ctf_map:chest_" .. color } + local chest = { name = "ctf_map_core:chest_" .. color } local dz = 2 if pos.z < 0 then dz = -2 diff --git a/mods/ctf/ctf_map/chest.lua b/mods/ctf/ctf_map/ctf_map_core/chest.lua similarity index 96% rename from mods/ctf/ctf_map/chest.lua rename to mods/ctf/ctf_map/ctf_map_core/chest.lua index bb71d70..1eaed75 100644 --- a/mods/ctf/ctf_map/chest.lua +++ b/mods/ctf/ctf_map/ctf_map_core/chest.lua @@ -17,7 +17,7 @@ end local colors = {"red", "blue"} for _, chest_color in pairs(colors) do - minetest.register_node("ctf_map:chest_" .. chest_color, { + minetest.register_node("ctf_map_core:chest_" .. chest_color, { description = "Chest", tiles = { "default_chest_top_" .. chest_color .. ".png", @@ -55,7 +55,7 @@ for _, chest_color in pairs(colors) do end ctf.warning("ctf_map", "Wrong chest, changing to " .. territory_owner .. " from " .. chest_color) - minetest.set_node(pos, "ctf_map:chest_" .. territory_owner) + minetest.set_node(pos, "ctf_map_core:chest_" .. territory_owner) end local formspec = table.concat({ @@ -74,7 +74,7 @@ for _, chest_color in pairs(colors) do "Try killing an enemy player, or at least try to capture the flag.\n" .. "Find resources in chests scattered around the map." formspec = formspec .. "label[0.75,3;" .. minetest.formspec_escape(msg) .. "]" - minetest.show_formspec(name, "ctf_map:no_access", formspec) + minetest.show_formspec(name, "ctf_map_core:no_access", formspec) return end @@ -100,7 +100,7 @@ for _, chest_color in pairs(colors) do "listring[" .. chestinv ..";main]" .. "listring[current_player;main]" - minetest.show_formspec(name, "ctf_map:chest", formspec) + minetest.show_formspec(name, "ctf_map_core:chest", formspec) end, allow_metadata_inventory_move = function(pos, from_list, from_index, diff --git a/mods/ctf/ctf_map/emerge.lua b/mods/ctf/ctf_map/ctf_map_core/emerge.lua similarity index 100% rename from mods/ctf/ctf_map/emerge.lua rename to mods/ctf/ctf_map/ctf_map_core/emerge.lua diff --git a/mods/ctf/ctf_map/give_initial_stuff.lua b/mods/ctf/ctf_map/ctf_map_core/give_initial_stuff.lua similarity index 100% rename from mods/ctf/ctf_map/give_initial_stuff.lua rename to mods/ctf/ctf_map/ctf_map_core/give_initial_stuff.lua diff --git a/mods/ctf/ctf_map/init.lua b/mods/ctf/ctf_map/ctf_map_core/init.lua similarity index 92% rename from mods/ctf/ctf_map/init.lua rename to mods/ctf/ctf_map/ctf_map_core/init.lua index e7ad2b7..d795d90 100644 --- a/mods/ctf/ctf_map/init.lua +++ b/mods/ctf/ctf_map/ctf_map_core/init.lua @@ -26,7 +26,7 @@ function ctf_map.can_cross(player) return false end -local modpath = minetest.get_modpath("ctf_map") +local modpath = minetest.get_modpath(minetest.get_current_modname()) dofile(modpath .. "/nodes.lua") dofile(modpath .. "/emerge.lua") dofile(modpath .. "/barrier.lua") @@ -40,6 +40,4 @@ if minetest.get_modpath("ctf") then dofile(modpath .. "/maps_catalog.lua") ctf_match.register_on_build_time_end(ctf_map.remove_middle_barrier) -else - dofile(modpath .. "/map_maker.lua") end diff --git a/mods/ctf/ctf_map/ctf_map_core/maps b/mods/ctf/ctf_map/ctf_map_core/maps new file mode 160000 index 0000000..7087ac5 --- /dev/null +++ b/mods/ctf/ctf_map/ctf_map_core/maps @@ -0,0 +1 @@ +Subproject commit 7087ac5b9ef80cfa906c84ddda68628c144688d7 diff --git a/mods/ctf/ctf_map/maps_catalog.lua b/mods/ctf/ctf_map/ctf_map_core/maps_catalog.lua similarity index 100% rename from mods/ctf/ctf_map/maps_catalog.lua rename to mods/ctf/ctf_map/ctf_map_core/maps_catalog.lua diff --git a/mods/ctf/ctf_map/ctf_map_core/mod.conf b/mods/ctf/ctf_map/ctf_map_core/mod.conf new file mode 100644 index 0000000..b6ae72e --- /dev/null +++ b/mods/ctf/ctf_map/ctf_map_core/mod.conf @@ -0,0 +1,3 @@ +name = ctf_map_core +depends = default +optional_depends = ctf, ctf_match, ctf_stats, ctf_treasure, stairs, wool, irc diff --git a/mods/ctf/ctf_map/nodes.lua b/mods/ctf/ctf_map/ctf_map_core/nodes.lua similarity index 84% rename from mods/ctf/ctf_map/nodes.lua rename to mods/ctf/ctf_map/ctf_map_core/nodes.lua index 7d21f70..e95414a 100644 --- a/mods/ctf/ctf_map/nodes.lua +++ b/mods/ctf/ctf_map/ctf_map_core/nodes.lua @@ -1,6 +1,6 @@ -- Special nodes do - minetest.register_node("ctf_map:ignore", { + minetest.register_node(":ctf_map:ignore", { description = "Artificial Ignore", -- this may need to be given a more appropriate name drawtype = "airlike", paramtype = "light", @@ -14,7 +14,7 @@ do groups = {immortal = 1}, }) - minetest.register_node("ctf_map:ind_glass", { + minetest.register_node(":ctf_map:ind_glass", { description = "Indestructible Glass", drawtype = "glasslike_framed_optional", tiles = {"default_glass.png", "default_glass_detail.png"}, @@ -29,7 +29,7 @@ do sounds = default.node_sound_glass_defaults() }) - minetest.register_node("ctf_map:ind_glass_red", { + minetest.register_node(":ctf_map:ind_glass_red", { description = "Indestructible Red Glass", drawtype = "glasslike", tiles = {"ctf_map_glass_red.png"}, @@ -46,14 +46,14 @@ do sounds = default.node_sound_glass_defaults() }) - minetest.register_node("ctf_map:ind_stone_red", { + minetest.register_node(":ctf_map:ind_stone_red", { description = "Indestructible Red Stone", groups = {immortal = 1}, tiles = {"ctf_map_stone_red.png"}, is_ground_content = false }) - minetest.register_node("ctf_map:killnode", { + minetest.register_node(":ctf_map:killnode", { description = "Kill Node", drawtype = "glasslike", tiles = {"ctf_map_killnode.png"}, @@ -67,7 +67,7 @@ do sounds = default.node_sound_glass_defaults(), }) - minetest.register_node("ctf_map:reinforced_cobble", { + minetest.register_node(":ctf_map:reinforced_cobble", { description = "Reinforced Cobblestone", tiles = {"ctf_map_reinforced_cobble.png"}, is_ground_content = false, @@ -80,14 +80,14 @@ end do -- Stone - minetest.register_node("ctf_map:stone", { + minetest.register_node(":ctf_map:stone", { description = "Indestructible Stone", tiles = {"default_stone.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:cobble", { + minetest.register_node(":ctf_map:cobble", { description = "Indestructible Cobblestone", tiles = {"default_cobble.png"}, is_ground_content = false, @@ -95,7 +95,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:stonebrick", { + minetest.register_node(":ctf_map:stonebrick", { description = "Indestructible Stone Brick", paramtype2 = "facedir", place_param2 = 0, @@ -105,7 +105,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:stone_block", { + minetest.register_node(":ctf_map:stone_block", { description = "Indestructible Stone Block", tiles = {"default_stone_block.png"}, is_ground_content = false, @@ -113,7 +113,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:mossycobble", { + minetest.register_node(":ctf_map:mossycobble", { description = "Indestructible Mossy Cobblestone", tiles = {"default_mossycobble.png"}, is_ground_content = false, @@ -122,7 +122,7 @@ do }) - minetest.register_node("ctf_map:desert_stone", { + minetest.register_node(":ctf_map:desert_stone", { description = "Indestructible Desert Stone", tiles = {"default_desert_stone.png"}, groups = {immortal = 1}, @@ -130,7 +130,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:desert_cobble", { + minetest.register_node(":ctf_map:desert_cobble", { description = "Indestructible Desert Cobblestone", tiles = {"default_desert_cobble.png"}, is_ground_content = false, @@ -138,7 +138,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:desert_stonebrick", { + minetest.register_node(":ctf_map:desert_stonebrick", { description = "Indestructible Desert Stone Brick", paramtype2 = "facedir", place_param2 = 0, @@ -148,7 +148,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:desert_stone_block", { + minetest.register_node(":ctf_map:desert_stone_block", { description = "Indestructible Desert Stone Block", tiles = {"default_desert_stone_block.png"}, is_ground_content = false, @@ -156,14 +156,14 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:sandstone", { + minetest.register_node(":ctf_map:sandstone", { description = "Indestructible Sandstone", tiles = {"default_sandstone.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:sandstonebrick", { + minetest.register_node(":ctf_map:sandstonebrick", { description = "Indestructible Sandstone Brick", paramtype2 = "facedir", place_param2 = 0, @@ -173,7 +173,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:sandstone_block", { + minetest.register_node(":ctf_map:sandstone_block", { description = "Indestructible Sandstone Block", tiles = {"default_sandstone_block.png"}, is_ground_content = false, @@ -181,14 +181,14 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:desert_sandstone", { + minetest.register_node(":ctf_map:desert_sandstone", { description = "Indestructible Desert Sandstone", tiles = {"default_desert_sandstone.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:desert_sandstone_brick", { + minetest.register_node(":ctf_map:desert_sandstone_brick", { description = "Indestructible Desert Sandstone Brick", paramtype2 = "facedir", place_param2 = 0, @@ -198,7 +198,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:desert_sandstone_block", { + minetest.register_node(":ctf_map:desert_sandstone_block", { description = "Indestructible Desert Sandstone Block", tiles = {"default_desert_sandstone_block.png"}, is_ground_content = false, @@ -206,14 +206,14 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:silver_sandstone", { + minetest.register_node(":ctf_map:silver_sandstone", { description = "Indestructible Silver Sandstone", tiles = {"default_silver_sandstone.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:silver_sandstone_brick", { + minetest.register_node(":ctf_map:silver_sandstone_brick", { description = "Indestructible Silver Sandstone Brick", paramtype2 = "facedir", place_param2 = 0, @@ -223,7 +223,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:silver_sandstone_block", { + minetest.register_node(":ctf_map:silver_sandstone_block", { description = "Indestructible Silver Sandstone Block", tiles = {"default_silver_sandstone_block.png"}, is_ground_content = false, @@ -233,14 +233,14 @@ do -- Soft / Non-Stone - minetest.register_node("ctf_map:dirt", { + minetest.register_node(":ctf_map:dirt", { description = "Indestructible Dirt", tiles = {"default_dirt.png"}, groups = {immortal = 1}, sounds = default.node_sound_dirt_defaults(), }) - minetest.register_node("ctf_map:dirt_with_grass", { + minetest.register_node(":ctf_map:dirt_with_grass", { description = "Indestructible Dirt with Grass", tiles = {"default_grass.png", "default_dirt.png", {name = "default_dirt.png^default_grass_side.png", @@ -252,7 +252,7 @@ do }), }) - minetest.register_node("ctf_map:dirt_with_dry_grass", { + minetest.register_node(":ctf_map:dirt_with_dry_grass", { description = "Indestructible Dirt with Dry Grass", tiles = {"default_dry_grass.png", "default_dirt.png", @@ -265,7 +265,7 @@ do }), }) - minetest.register_node("ctf_map:dirt_with_snow", { + minetest.register_node(":ctf_map:dirt_with_snow", { description = "Indestructible Dirt with Snow", tiles = {"default_snow.png", "default_dirt.png", {name = "default_dirt.png^default_snow_side.png", @@ -277,7 +277,7 @@ do }), }) - minetest.register_node("ctf_map:dirt_with_rainforest_litter", { + minetest.register_node(":ctf_map:dirt_with_rainforest_litter", { description = "Indestructible Dirt with Rainforest Litter", tiles = { "default_rainforest_litter.png", @@ -292,21 +292,21 @@ do }), }) - minetest.register_node("ctf_map:sand", { + minetest.register_node(":ctf_map:sand", { description = "Indestructible Sand", tiles = {"default_sand.png"}, groups = {immortal = 1}, sounds = default.node_sound_sand_defaults(), }) - minetest.register_node("ctf_map:desert_sand", { + minetest.register_node(":ctf_map:desert_sand", { description = "Indestructible Desert Sand", tiles = {"default_desert_sand.png"}, groups = {immortal = 1}, sounds = default.node_sound_sand_defaults(), }) - minetest.register_node("ctf_map:silver_sand", { + minetest.register_node(":ctf_map:silver_sand", { description = "Indestructible Silver Sand", tiles = {"default_silver_sand.png"}, groups = {immortal = 1}, @@ -314,14 +314,14 @@ do }) - minetest.register_node("ctf_map:gravel", { + minetest.register_node(":ctf_map:gravel", { description = "Indestructible Gravel", tiles = {"default_gravel.png"}, groups = {immortal = 1}, sounds = default.node_sound_gravel_defaults(), }) - minetest.register_node("ctf_map:clay", { + minetest.register_node(":ctf_map:clay", { description = "Indestructible Clay", tiles = {"default_clay.png"}, groups = {immortal = 1}, @@ -329,7 +329,7 @@ do }) - minetest.register_node("ctf_map:snow", { + minetest.register_node(":ctf_map:snow", { description = "Indestructible Snow", tiles = {"default_snow.png"}, inventory_image = "default_snowball.png", @@ -352,7 +352,7 @@ do }) }) - minetest.register_node("ctf_map:snowblock", { + minetest.register_node(":ctf_map:snowblock", { description = "Indestructible Snow Block", tiles = {"default_snow.png"}, groups = {immortal = 1}, @@ -363,7 +363,7 @@ do }) }) - minetest.register_node("ctf_map:ice", { + minetest.register_node(":ctf_map:ice", { description = "Indestructible Ice", tiles = {"default_ice.png"}, is_ground_content = false, @@ -374,7 +374,7 @@ do -- Trees - minetest.register_node("ctf_map:tree", { + minetest.register_node(":ctf_map:tree", { description = "Indestructible Tree", tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, paramtype2 = "facedir", @@ -384,7 +384,7 @@ do on_place = minetest.rotate_node }) - minetest.register_node("ctf_map:wood", { + minetest.register_node(":ctf_map:wood", { description = "Indestructible Wooden Planks", paramtype2 = "facedir", place_param2 = 0, @@ -394,7 +394,7 @@ do sounds = default.node_sound_wood_defaults(), }) - minetest.register_node("ctf_map:leaves", { + minetest.register_node(":ctf_map:leaves", { description = "Indestructible Leaves", drawtype = "allfaces_optional", waving = 1, @@ -406,7 +406,7 @@ do sounds = default.node_sound_leaves_defaults(), }) - minetest.register_node("ctf_map:apple", { + minetest.register_node(":ctf_map:apple", { description = "Indestructible Apple", drawtype = "plantlike", tiles = {"default_apple.png"}, @@ -425,7 +425,7 @@ do }) - minetest.register_node("ctf_map:jungletree", { + minetest.register_node(":ctf_map:jungletree", { description = "Indestructible Jungle Tree", tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, @@ -436,7 +436,7 @@ do on_place = minetest.rotate_node }) - minetest.register_node("ctf_map:junglewood", { + minetest.register_node(":ctf_map:junglewood", { description = "Indestructible Jungle Wood Planks", paramtype2 = "facedir", place_param2 = 0, @@ -446,7 +446,7 @@ do sounds = default.node_sound_wood_defaults(), }) - minetest.register_node("ctf_map:jungleleaves", { + minetest.register_node(":ctf_map:jungleleaves", { description = "Indestructible Jungle Leaves", drawtype = "allfaces_optional", waving = 1, @@ -459,7 +459,7 @@ do }) - minetest.register_node("ctf_map:pine_tree", { + minetest.register_node(":ctf_map:pine_tree", { description = "Indestructible Pine Tree", tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", "default_pine_tree.png"}, @@ -470,7 +470,7 @@ do on_place = minetest.rotate_node }) - minetest.register_node("ctf_map:pine_wood", { + minetest.register_node(":ctf_map:pine_wood", { description = "Indestructible Pine Wood Planks", paramtype2 = "facedir", place_param2 = 0, @@ -480,7 +480,7 @@ do sounds = default.node_sound_wood_defaults(), }) - minetest.register_node("ctf_map:pine_needles",{ + minetest.register_node(":ctf_map:pine_needles",{ description = "Indestructible Pine Needles", drawtype = "allfaces_optional", tiles = {"default_pine_needles.png"}, @@ -491,7 +491,7 @@ do sounds = default.node_sound_leaves_defaults(), }) - minetest.register_node("ctf_map:acacia_tree", { + minetest.register_node(":ctf_map:acacia_tree", { description = "Indestructible Acacia Tree", tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", "default_acacia_tree.png"}, @@ -502,7 +502,7 @@ do on_place = minetest.rotate_node }) - minetest.register_node("ctf_map:acacia_wood", { + minetest.register_node(":ctf_map:acacia_wood", { description = "Indestructible Acacia Wood Planks", paramtype2 = "facedir", place_param2 = 0, @@ -512,7 +512,7 @@ do sounds = default.node_sound_wood_defaults(), }) - minetest.register_node("ctf_map:acacia_leaves", { + minetest.register_node(":ctf_map:acacia_leaves", { description = "Indestructible Acacia Leaves", drawtype = "allfaces_optional", tiles = {"default_acacia_leaves.png"}, @@ -524,7 +524,7 @@ do sounds = default.node_sound_leaves_defaults(), }) - minetest.register_node("ctf_map:aspen_tree", { + minetest.register_node(":ctf_map:aspen_tree", { description = "Indestructible Aspen Tree", tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png", "default_aspen_tree.png"}, @@ -535,7 +535,7 @@ do on_place = minetest.rotate_node }) - minetest.register_node("ctf_map:aspen_wood", { + minetest.register_node(":ctf_map:aspen_wood", { description = "Indestructible Aspen Wood Planks", paramtype2 = "facedir", place_param2 = 0, @@ -545,7 +545,7 @@ do sounds = default.node_sound_wood_defaults(), }) - minetest.register_node("ctf_map:aspen_leaves", { + minetest.register_node(":ctf_map:aspen_leaves", { description = "Indestructible Aspen Leaves", drawtype = "allfaces_optional", tiles = {"default_aspen_leaves.png"}, @@ -560,14 +560,14 @@ do -- Ores -- - minetest.register_node("ctf_map:stone_with_coal", { + minetest.register_node(":ctf_map:stone_with_coal", { description = "Indestructible Coal Ore", tiles = {"default_stone.png^default_mineral_coal.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:coalblock", { + minetest.register_node(":ctf_map:coalblock", { description = "Indestructible Coal Block", tiles = {"default_coal_block.png"}, is_ground_content = false, @@ -576,28 +576,28 @@ do }) - minetest.register_node("ctf_map:stone_with_iron", { + minetest.register_node(":ctf_map:stone_with_iron", { description = "Indestructible Iron Ore", tiles = {"default_stone.png^default_mineral_iron.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:stone_with_copper", { + minetest.register_node(":ctf_map:stone_with_copper", { description = "Indestructible Copper Ore", tiles = {"default_stone.png^default_mineral_copper.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:stone_with_tin", { + minetest.register_node(":ctf_map:stone_with_tin", { description = "Indestructible Tin Ore", tiles = {"default_stone.png^default_mineral_tin.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:bronzeblock", { + minetest.register_node(":ctf_map:bronzeblock", { description = "Indestructible Bronze Block", tiles = {"default_bronze_block.png"}, is_ground_content = false, @@ -605,14 +605,14 @@ do sounds = default.node_sound_metal_defaults(), }) - minetest.register_node("ctf_map:stone_with_mese", { + minetest.register_node(":ctf_map:stone_with_mese", { description = "Indestructible Mese Ore", tiles = {"default_stone.png^default_mineral_mese.png"}, groups = {immortal = 1}, sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:mese", { + minetest.register_node(":ctf_map:mese", { description = "Indestructible Mese Block", tiles = {"default_mese_block.png"}, paramtype = "light", @@ -621,7 +621,7 @@ do light_source = 3, }) - minetest.register_node("ctf_map:stone_with_diamond", { + minetest.register_node(":ctf_map:stone_with_diamond", { description = "Indestructible Diamond Ore", tiles = {"default_stone.png^default_mineral_diamond.png"}, groups = {immortal = 1}, @@ -630,7 +630,7 @@ do -- Plantlife (non-cubic) - minetest.register_node("ctf_map:cactus", { + minetest.register_node(":ctf_map:cactus", { description = "Indestructible Cactus", tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, @@ -640,7 +640,7 @@ do on_place = minetest.rotate_node, }) - minetest.register_node("ctf_map:ladder_wood", { + minetest.register_node(":ctf_map:ladder_wood", { description = "Indestructible Wooden Ladder", drawtype = "signlike", tiles = {"default_ladder_wood.png"}, @@ -663,7 +663,7 @@ do sounds = default.node_sound_wood_defaults(), }) - default.register_fence("ctf_map:fence_wood", { + default.register_fence(":ctf_map:fence_wood", { description = "Indestructible Wooden Fence", texture = "default_fence_wood.png", inventory_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -673,7 +673,7 @@ do sounds = default.node_sound_wood_defaults() }) - default.register_fence("ctf_map:fence_acacia_wood", { + default.register_fence(":ctf_map:fence_acacia_wood", { description = "Indestructible Acacia Fence", texture = "default_fence_acacia_wood.png", inventory_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -683,7 +683,7 @@ do sounds = default.node_sound_wood_defaults() }) - default.register_fence("ctf_map:fence_junglewood", { + default.register_fence(":ctf_map:fence_junglewood", { description = "Indestructible Jungle Wood Fence", texture = "default_fence_junglewood.png", inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -693,7 +693,7 @@ do sounds = default.node_sound_wood_defaults() }) - default.register_fence("ctf_map:fence_pine_wood", { + default.register_fence(":ctf_map:fence_pine_wood", { description = "Indestructible Pine Fence", texture = "default_fence_pine_wood.png", inventory_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -703,7 +703,7 @@ do sounds = default.node_sound_wood_defaults() }) - default.register_fence("ctf_map:fence_aspen_wood", { + default.register_fence(":ctf_map:fence_aspen_wood", { description = "Indestructible Aspen Fence", texture = "default_fence_aspen_wood.png", inventory_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", @@ -713,7 +713,7 @@ do sounds = default.node_sound_wood_defaults() }) - minetest.register_node("ctf_map:glass", { + minetest.register_node(":ctf_map:glass", { description = "Indestructible Glass", drawtype = "glasslike_framed_optional", tiles = {"default_glass.png", "default_glass_detail.png"}, @@ -725,7 +725,7 @@ do sounds = default.node_sound_glass_defaults(), }) - minetest.register_node("ctf_map:brick", { + minetest.register_node(":ctf_map:brick", { description = "Indestructible Brick Block", paramtype2 = "facedir", place_param2 = 0, @@ -735,7 +735,7 @@ do sounds = default.node_sound_stone_defaults(), }) - minetest.register_node("ctf_map:meselamp", { + minetest.register_node(":ctf_map:meselamp", { description = "Indestructible Mese Lamp", drawtype = "glasslike", tiles = {"default_meselamp.png"}, @@ -750,7 +750,7 @@ end -- Indestructible torches from MTG's default mod do - minetest.register_node("ctf_map:torch", { + minetest.register_node(":ctf_map:torch", { description = "Torch", drawtype = "mesh", mesh = "torch_floor.obj", @@ -788,21 +788,21 @@ do local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) local fakestack = itemstack if wdir == 0 then - fakestack:set_name("ctf_map:torch_ceiling") + fakestack:set_name(":ctf_map:torch_ceiling") elseif wdir == 1 then - fakestack:set_name("ctf_map:torch") + fakestack:set_name(":ctf_map:torch") else - fakestack:set_name("ctf_map:torch_wall") + fakestack:set_name(":ctf_map:torch_wall") end itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) - itemstack:set_name("ctf_map:torch") + itemstack:set_name(":ctf_map:torch") return itemstack end, }) - minetest.register_node("ctf_map:torch_wall", { + minetest.register_node(":ctf_map:torch_wall", { drawtype = "mesh", mesh = "torch_wall.obj", tiles = {{ @@ -823,7 +823,7 @@ do sounds = default.node_sound_wood_defaults(), }) - minetest.register_node("ctf_map:torch_ceiling", { + minetest.register_node(":ctf_map:torch_ceiling", { drawtype = "mesh", mesh = "torch_ceiling.obj", tiles = {{ @@ -855,7 +855,7 @@ do nodedef.description = "Indestructible " .. nodedef.description end nodedef.groups = {immortal = 1} - minetest.register_node("ctf_map:" .. name:split(":")[2], nodedef) + minetest.register_node(":ctf_map:" .. name:split(":")[2], nodedef) elseif name:find("wool") then local color = name:split(":")[2] nodedef = table.copy(nodedef) @@ -863,7 +863,7 @@ do nodedef.description = "Indestructible " .. nodedef.description end nodedef.groups = {immortal = 1} - minetest.register_node("ctf_map:wool_" .. color, nodedef) + minetest.register_node(":ctf_map:wool_" .. color, nodedef) minetest.register_alias("ctf_map:" .. color, "ctf_map:wool_" .. color) end end diff --git a/mods/ctf/ctf_map/schem_map.lua b/mods/ctf/ctf_map/ctf_map_core/schem_map.lua similarity index 99% rename from mods/ctf/ctf_map/schem_map.lua rename to mods/ctf/ctf_map/ctf_map_core/schem_map.lua index 6509ea5..fbfb9f1 100644 --- a/mods/ctf/ctf_map/schem_map.lua +++ b/mods/ctf/ctf_map/ctf_map_core/schem_map.lua @@ -27,8 +27,8 @@ minetest.register_alias_force("default:stone_with_gold", "default:stone") local max_r = 120 -ctf_map.mapdir = minetest.get_modpath("ctf_map") .. "/maps/" ctf_map.map = nil +ctf_map.mapdir = minetest.get_modpath(minetest.get_current_modname()) .. "/maps/" -- Modify server status message to include map info local map_str diff --git a/mods/ctf/ctf_map/textures/ctf_map_glass_red.png b/mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_glass_red.png similarity index 100% rename from mods/ctf/ctf_map/textures/ctf_map_glass_red.png rename to mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_glass_red.png diff --git a/mods/ctf/ctf_map/textures/ctf_map_ind_overlay.png b/mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_ind_overlay.png similarity index 100% rename from mods/ctf/ctf_map/textures/ctf_map_ind_overlay.png rename to mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_ind_overlay.png diff --git a/mods/ctf/ctf_map/textures/ctf_map_killnode.png b/mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_killnode.png similarity index 100% rename from mods/ctf/ctf_map/textures/ctf_map_killnode.png rename to mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_killnode.png diff --git a/mods/ctf/ctf_map/textures/ctf_map_pro_section.png b/mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_pro_section.png similarity index 100% rename from mods/ctf/ctf_map/textures/ctf_map_pro_section.png rename to mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_pro_section.png diff --git a/mods/ctf/ctf_map/textures/ctf_map_reinforced_cobble.png b/mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_reinforced_cobble.png similarity index 100% rename from mods/ctf/ctf_map/textures/ctf_map_reinforced_cobble.png rename to mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_reinforced_cobble.png diff --git a/mods/ctf/ctf_map/textures/ctf_map_stone_red.png b/mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_stone_red.png similarity index 100% rename from mods/ctf/ctf_map/textures/ctf_map_stone_red.png rename to mods/ctf/ctf_map/ctf_map_core/textures/ctf_map_stone_red.png diff --git a/mods/ctf/ctf_map/textures/default_chest_front_blue.png b/mods/ctf/ctf_map/ctf_map_core/textures/default_chest_front_blue.png similarity index 100% rename from mods/ctf/ctf_map/textures/default_chest_front_blue.png rename to mods/ctf/ctf_map/ctf_map_core/textures/default_chest_front_blue.png diff --git a/mods/ctf/ctf_map/textures/default_chest_front_red.png b/mods/ctf/ctf_map/ctf_map_core/textures/default_chest_front_red.png similarity index 100% rename from mods/ctf/ctf_map/textures/default_chest_front_red.png rename to mods/ctf/ctf_map/ctf_map_core/textures/default_chest_front_red.png diff --git a/mods/ctf/ctf_map/textures/default_chest_side_blue.png b/mods/ctf/ctf_map/ctf_map_core/textures/default_chest_side_blue.png similarity index 100% rename from mods/ctf/ctf_map/textures/default_chest_side_blue.png rename to mods/ctf/ctf_map/ctf_map_core/textures/default_chest_side_blue.png diff --git a/mods/ctf/ctf_map/textures/default_chest_side_red.png b/mods/ctf/ctf_map/ctf_map_core/textures/default_chest_side_red.png similarity index 100% rename from mods/ctf/ctf_map/textures/default_chest_side_red.png rename to mods/ctf/ctf_map/ctf_map_core/textures/default_chest_side_red.png diff --git a/mods/ctf/ctf_map/textures/default_chest_top_blue.png b/mods/ctf/ctf_map/ctf_map_core/textures/default_chest_top_blue.png similarity index 100% rename from mods/ctf/ctf_map/textures/default_chest_top_blue.png rename to mods/ctf/ctf_map/ctf_map_core/textures/default_chest_top_blue.png diff --git a/mods/ctf/ctf_map/textures/default_chest_top_red.png b/mods/ctf/ctf_map/ctf_map_core/textures/default_chest_top_red.png similarity index 100% rename from mods/ctf/ctf_map/textures/default_chest_top_red.png rename to mods/ctf/ctf_map/ctf_map_core/textures/default_chest_top_red.png diff --git a/mods/ctf/ctf_map/time_sky.lua b/mods/ctf/ctf_map/ctf_map_core/time_sky.lua similarity index 100% rename from mods/ctf/ctf_map/time_sky.lua rename to mods/ctf/ctf_map/ctf_map_core/time_sky.lua diff --git a/mods/ctf/ctf_map/README.md b/mods/ctf/ctf_map/map_maker/README.md similarity index 69% rename from mods/ctf/ctf_map/README.md rename to mods/ctf/ctf_map/map_maker/README.md index 3e5e15f..1747179 100644 --- a/mods/ctf/ctf_map/README.md +++ b/mods/ctf/ctf_map/map_maker/README.md @@ -1,30 +1,23 @@ -# CTF Map - -This mod handles creating and loading maps. - -## Attributions - -- Indestructible nodes adapted from various mods in `minetest_game`. +# CTF Map - Map maker ## Creating a new map ### 1. Dependencies -* Minetest 0.4.16 or later. -* Mods - * ctf_map (by copying the folder from this game to `minetest/mods`) - * worldedit and worldedit_commands. +* Minetest 5.0.0 or later. +* `ctf_map` modpack (by copying the folder from this game to `minetest/mods`) +* `worldedit` and `worldedit_commands`. ### 2. Find an area * Can use Minetest Game and any mapgen. * It must be a cube, and the barrier will be in the exact center. -* It should be around 230x230 in surface area, but this can vary. +* It should be around 230x230 in surface area, but this can be lesser. * Feel free to modify the area to your needs. ### 3. Select the area -There are multiple ways do this, this is the simplist in most cases. +There are multiple ways do this, this is the simplest in most cases. * If you haven't modified the map at all, do the following to speed up barrier placement: * Stop Minetest. @@ -32,7 +25,7 @@ There are multiple ways do this, this is the simplist in most cases. * Set backend to "dummy". * Save. * Using worldedit, select the area. -* Type /gui, and click "From WE" then "To WE". +* Type `/gui`, and click "From WE" then "To WE". * Check that the center location is the right place for the barrier to go. * Check that the bounds extend far enough. @@ -50,8 +43,7 @@ There are multiple ways do this, this is the simplist in most cases. ### 6. Export * Click export, and wait until completion. -* Copy the two files from `worlddir/schems/` to `ctf_map/maps/`. -* Rename the files so the two prefixed numbers are consistent to existing maps. +* Copy the resultant folder from `worlddir/schems/` into `ctf_map/ctf_map_core/maps/`. * Profit! ## Documentation @@ -94,16 +86,4 @@ An example `treasures` value that registers steel pick, shotgun, and grenade: treasures = default:pick_steel,0.5,5,1,10;shooter:shotgun,0.04,2,1;shooter:grenade,0.08,2,1 ``` -(See [here](../../other/treasurer/README.md) to understand the magic numbers) - -## Indestructible nodes - -- `ctf_map` provides indestructible nodes for most nodes from default, and all nodes from -stairs. - -- All indestructible nodes have the same item name with the mod prefix being `ctf_map:` -instead of their original prefixes (e.g. `default:stone` -> `ctf_map:stone` and -`stairs:stair_stone` -> `ctf_map:stair_stone`) with the exception of wool, whose -indestructible nodes have slightly different names from the original node names - -`ctf_map:wool_`. This is because the original nomenclature becomes meaningless -if the modname prefix is changed. +(See [here](../../../other/treasurer/README.md) to understand the magic numbers) diff --git a/mods/ctf/ctf_map/map_maker/init.lua b/mods/ctf/ctf_map/map_maker/init.lua new file mode 100644 index 0000000..434765f --- /dev/null +++ b/mods/ctf/ctf_map/map_maker/init.lua @@ -0,0 +1,5 @@ +-- Dofile the scripts only if ctf doesn't exist +if not minetest.global_exists("ctf") then + local modpath = minetest.get_modpath(minetest.get_current_modname()) .. "/" + dofile(modpath .. "map_maker.lua") +end diff --git a/mods/ctf/ctf_map/map_maker.lua b/mods/ctf/ctf_map/map_maker/map_maker.lua similarity index 95% rename from mods/ctf/ctf_map/map_maker.lua rename to mods/ctf/ctf_map/map_maker/map_maker.lua index 449dd82..9264e6d 100644 --- a/mods/ctf/ctf_map/map_maker.lua +++ b/mods/ctf/ctf_map/map_maker/map_maker.lua @@ -52,19 +52,20 @@ end minetest.register_on_joinplayer(function(player) minetest.after(1, function(name) - minetest.chat_send_player(name, "*** CTF_MAP IS IN MAP MAKER MODE ***") + minetest.chat_send_player(name, + minetest.colorize("#BB33EE", "*** ctf_map is in map-maker mode ***")) end, player:get_player_name()) local inv = player:get_inventory() - if not inv:contains_item("main", ItemStack("ctf_map:adminpick")) then - inv:add_item("main", ItemStack("ctf_map:adminpick")) + if not inv:contains_item("main", "map_maker:adminpick") then + inv:add_item("main", "map_maker:adminpick") end end) minetest.register_on_respawnplayer(function(player) local inv = player:get_inventory() - if not inv:contains_item("main", ItemStack("ctf_map:adminpick")) then - inv:add_item("main", ItemStack("ctf_map:adminpick")) + if not inv:contains_item("main", "map_maker:adminpick") then + inv:add_item("main", "map_maker:adminpick") end end) @@ -83,7 +84,7 @@ local function check_step() end minetest.after(1, check_step) -minetest.register_node("ctf_map:flag", { +minetest.register_node(":ctf_map:flag", { description = "Flag", drawtype="nodebox", paramtype = "light", @@ -93,8 +94,8 @@ minetest.register_node("ctf_map:flag", { "default_wood.png", "default_wood.png", "default_wood.png", - "flag_grey2.png", - "flag_grey.png" + "map_maker_flag_grey.png", + "map_maker_flag_grey.png" }, node_box = { type = "fixed", @@ -437,9 +438,9 @@ minetest.register_chatcommand("gui", { }) -- Register special pickaxe to break indestructible nodes -minetest.register_tool("ctf_map:adminpick", { +minetest.register_tool("map_maker:adminpick", { description = "Admin pickaxe used to break indestructible nodes.", - inventory_image = "ctf_map_adminpick.png", + inventory_image = "map_maker_adminpick.png", range = 16, tool_capabilities = { full_punch_interval = 1.0, diff --git a/mods/ctf/ctf_map/map_maker/mod.conf b/mods/ctf/ctf_map/map_maker/mod.conf new file mode 100644 index 0000000..75dd924 --- /dev/null +++ b/mods/ctf/ctf_map/map_maker/mod.conf @@ -0,0 +1,2 @@ +name = map_maker +depends = ctf_map_core, worldedit diff --git a/mods/ctf/ctf_map/textures/ctf_map_adminpick.png b/mods/ctf/ctf_map/map_maker/textures/map_maker_adminpick.png similarity index 100% rename from mods/ctf/ctf_map/textures/ctf_map_adminpick.png rename to mods/ctf/ctf_map/map_maker/textures/map_maker_adminpick.png diff --git a/mods/ctf/ctf_map/map_maker/textures/map_maker_flag_grey.png b/mods/ctf/ctf_map/map_maker/textures/map_maker_flag_grey.png new file mode 100644 index 0000000..7837748 Binary files /dev/null and b/mods/ctf/ctf_map/map_maker/textures/map_maker_flag_grey.png differ diff --git a/mods/ctf/ctf_map/maps b/mods/ctf/ctf_map/maps deleted file mode 160000 index 98abf01..0000000 --- a/mods/ctf/ctf_map/maps +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 98abf0158065cfe0f9747dd07f8c71581708cdd5 diff --git a/mods/ctf/ctf_map/mod.conf b/mods/ctf/ctf_map/mod.conf deleted file mode 100644 index 40faa7a..0000000 --- a/mods/ctf/ctf_map/mod.conf +++ /dev/null @@ -1,3 +0,0 @@ -name = ctf_map -depends = default -optional_depends = ctf_treasure, stairs, wool, ctf, ctf_match, worldedit, irc, ctf_stats diff --git a/mods/ctf/ctf_map/modpack.conf b/mods/ctf/ctf_map/modpack.conf new file mode 100644 index 0000000..c1e0c98 --- /dev/null +++ b/mods/ctf/ctf_map/modpack.conf @@ -0,0 +1 @@ +name = ctf_map diff --git a/mods/pvp/dropondie/mod.conf b/mods/pvp/dropondie/mod.conf index edf00d2..09918c0 100644 --- a/mods/pvp/dropondie/mod.conf +++ b/mods/pvp/dropondie/mod.conf @@ -1,3 +1,3 @@ name = dropondie -depends = ctf_map +depends = ctf_map_core description = With this mod, players will drop all their items in their inventory on the ground when they die. diff --git a/setup_maps.sh b/setup_maps.sh index 9025480..f205e23 100755 --- a/setup_maps.sh +++ b/setup_maps.sh @@ -1,6 +1,6 @@ -cd mods/ctf/ctf_map/maps/ +cd mods/ctf/ctf_map/ctf_map_core/maps/ -# Copy textures from map sub-dirs to ctf_map/textures +# Copy textures from map sub-dirs to ctf_map_core/textures for f in *; do if [ -d ${f} ]; then # Screenshot