ctf_map: Convert to modpack; split map maker into separate mod (#475)

This commit is contained in:
ANAND 2019-11-28 10:51:59 +05:30 committed by GitHub
parent 6b33c8e9cc
commit e7d9465d2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
37 changed files with 145 additions and 139 deletions

6
.gitmodules vendored
View file

@ -1,6 +1,6 @@
[submodule "mods/crafting"] [submodule "mods/crafting"]
path = mods/crafting path = mods/crafting
url = https://github.com/rubenwardy/crafting url = https://github.com/rubenwardy/crafting
[submodule "mods/ctf/ctf_map/maps"] [submodule "mods/ctf/ctf_map/ctf_map_core/maps"]
path = mods/ctf/ctf_map/maps path = mods/ctf/ctf_map/ctf_map_core/maps
url = https://github.com/MT-CTF/maps.git url = https://github.com/MT-CTF/maps

View file

@ -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_<color>`. This is because the original nomenclature becomes meaningless
if the modname prefix is changed.

View file

@ -20,7 +20,7 @@ function ctf_map.place_base(color, pos)
end end
-- Spawn chest -- Spawn chest
local chest = { name = "ctf_map:chest_" .. color } local chest = { name = "ctf_map_core:chest_" .. color }
local dz = 2 local dz = 2
if pos.z < 0 then if pos.z < 0 then
dz = -2 dz = -2

View file

@ -17,7 +17,7 @@ end
local colors = {"red", "blue"} local colors = {"red", "blue"}
for _, chest_color in pairs(colors) do 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", description = "Chest",
tiles = { tiles = {
"default_chest_top_" .. chest_color .. ".png", "default_chest_top_" .. chest_color .. ".png",
@ -55,7 +55,7 @@ for _, chest_color in pairs(colors) do
end end
ctf.warning("ctf_map", "Wrong chest, changing to " .. ctf.warning("ctf_map", "Wrong chest, changing to " ..
territory_owner .. " from " .. chest_color) 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 end
local formspec = table.concat({ 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" .. "Try killing an enemy player, or at least try to capture the flag.\n" ..
"Find resources in chests scattered around the map." "Find resources in chests scattered around the map."
formspec = formspec .. "label[0.75,3;" .. minetest.formspec_escape(msg) .. "]" 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 return
end end
@ -100,7 +100,7 @@ for _, chest_color in pairs(colors) do
"listring[" .. chestinv ..";main]" .. "listring[" .. chestinv ..";main]" ..
"listring[current_player;main]" "listring[current_player;main]"
minetest.show_formspec(name, "ctf_map:chest", formspec) minetest.show_formspec(name, "ctf_map_core:chest", formspec)
end, end,
allow_metadata_inventory_move = function(pos, from_list, from_index, allow_metadata_inventory_move = function(pos, from_list, from_index,

View file

@ -26,7 +26,7 @@ function ctf_map.can_cross(player)
return false return false
end end
local modpath = minetest.get_modpath("ctf_map") local modpath = minetest.get_modpath(minetest.get_current_modname())
dofile(modpath .. "/nodes.lua") dofile(modpath .. "/nodes.lua")
dofile(modpath .. "/emerge.lua") dofile(modpath .. "/emerge.lua")
dofile(modpath .. "/barrier.lua") dofile(modpath .. "/barrier.lua")
@ -40,6 +40,4 @@ if minetest.get_modpath("ctf") then
dofile(modpath .. "/maps_catalog.lua") dofile(modpath .. "/maps_catalog.lua")
ctf_match.register_on_build_time_end(ctf_map.remove_middle_barrier) ctf_match.register_on_build_time_end(ctf_map.remove_middle_barrier)
else
dofile(modpath .. "/map_maker.lua")
end end

@ -0,0 +1 @@
Subproject commit 7087ac5b9ef80cfa906c84ddda68628c144688d7

View file

@ -0,0 +1,3 @@
name = ctf_map_core
depends = default
optional_depends = ctf, ctf_match, ctf_stats, ctf_treasure, stairs, wool, irc

View file

@ -1,6 +1,6 @@
-- Special nodes -- Special nodes
do 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 description = "Artificial Ignore", -- this may need to be given a more appropriate name
drawtype = "airlike", drawtype = "airlike",
paramtype = "light", paramtype = "light",
@ -14,7 +14,7 @@ do
groups = {immortal = 1}, groups = {immortal = 1},
}) })
minetest.register_node("ctf_map:ind_glass", { minetest.register_node(":ctf_map:ind_glass", {
description = "Indestructible Glass", description = "Indestructible Glass",
drawtype = "glasslike_framed_optional", drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png", "default_glass_detail.png"}, tiles = {"default_glass.png", "default_glass_detail.png"},
@ -29,7 +29,7 @@ do
sounds = default.node_sound_glass_defaults() 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", description = "Indestructible Red Glass",
drawtype = "glasslike", drawtype = "glasslike",
tiles = {"ctf_map_glass_red.png"}, tiles = {"ctf_map_glass_red.png"},
@ -46,14 +46,14 @@ do
sounds = default.node_sound_glass_defaults() 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", description = "Indestructible Red Stone",
groups = {immortal = 1}, groups = {immortal = 1},
tiles = {"ctf_map_stone_red.png"}, tiles = {"ctf_map_stone_red.png"},
is_ground_content = false is_ground_content = false
}) })
minetest.register_node("ctf_map:killnode", { minetest.register_node(":ctf_map:killnode", {
description = "Kill Node", description = "Kill Node",
drawtype = "glasslike", drawtype = "glasslike",
tiles = {"ctf_map_killnode.png"}, tiles = {"ctf_map_killnode.png"},
@ -67,7 +67,7 @@ do
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
minetest.register_node("ctf_map:reinforced_cobble", { minetest.register_node(":ctf_map:reinforced_cobble", {
description = "Reinforced Cobblestone", description = "Reinforced Cobblestone",
tiles = {"ctf_map_reinforced_cobble.png"}, tiles = {"ctf_map_reinforced_cobble.png"},
is_ground_content = false, is_ground_content = false,
@ -80,14 +80,14 @@ end
do do
-- Stone -- Stone
minetest.register_node("ctf_map:stone", { minetest.register_node(":ctf_map:stone", {
description = "Indestructible Stone", description = "Indestructible Stone",
tiles = {"default_stone.png"}, tiles = {"default_stone.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:cobble", { minetest.register_node(":ctf_map:cobble", {
description = "Indestructible Cobblestone", description = "Indestructible Cobblestone",
tiles = {"default_cobble.png"}, tiles = {"default_cobble.png"},
is_ground_content = false, is_ground_content = false,
@ -95,7 +95,7 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:stonebrick", { minetest.register_node(":ctf_map:stonebrick", {
description = "Indestructible Stone Brick", description = "Indestructible Stone Brick",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -105,7 +105,7 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:stone_block", { minetest.register_node(":ctf_map:stone_block", {
description = "Indestructible Stone Block", description = "Indestructible Stone Block",
tiles = {"default_stone_block.png"}, tiles = {"default_stone_block.png"},
is_ground_content = false, is_ground_content = false,
@ -113,7 +113,7 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:mossycobble", { minetest.register_node(":ctf_map:mossycobble", {
description = "Indestructible Mossy Cobblestone", description = "Indestructible Mossy Cobblestone",
tiles = {"default_mossycobble.png"}, tiles = {"default_mossycobble.png"},
is_ground_content = false, 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", description = "Indestructible Desert Stone",
tiles = {"default_desert_stone.png"}, tiles = {"default_desert_stone.png"},
groups = {immortal = 1}, groups = {immortal = 1},
@ -130,7 +130,7 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:desert_cobble", { minetest.register_node(":ctf_map:desert_cobble", {
description = "Indestructible Desert Cobblestone", description = "Indestructible Desert Cobblestone",
tiles = {"default_desert_cobble.png"}, tiles = {"default_desert_cobble.png"},
is_ground_content = false, is_ground_content = false,
@ -138,7 +138,7 @@ do
sounds = default.node_sound_stone_defaults(), 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", description = "Indestructible Desert Stone Brick",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -148,7 +148,7 @@ do
sounds = default.node_sound_stone_defaults(), 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", description = "Indestructible Desert Stone Block",
tiles = {"default_desert_stone_block.png"}, tiles = {"default_desert_stone_block.png"},
is_ground_content = false, is_ground_content = false,
@ -156,14 +156,14 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:sandstone", { minetest.register_node(":ctf_map:sandstone", {
description = "Indestructible Sandstone", description = "Indestructible Sandstone",
tiles = {"default_sandstone.png"}, tiles = {"default_sandstone.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:sandstonebrick", { minetest.register_node(":ctf_map:sandstonebrick", {
description = "Indestructible Sandstone Brick", description = "Indestructible Sandstone Brick",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -173,7 +173,7 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:sandstone_block", { minetest.register_node(":ctf_map:sandstone_block", {
description = "Indestructible Sandstone Block", description = "Indestructible Sandstone Block",
tiles = {"default_sandstone_block.png"}, tiles = {"default_sandstone_block.png"},
is_ground_content = false, is_ground_content = false,
@ -181,14 +181,14 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:desert_sandstone", { minetest.register_node(":ctf_map:desert_sandstone", {
description = "Indestructible Desert Sandstone", description = "Indestructible Desert Sandstone",
tiles = {"default_desert_sandstone.png"}, tiles = {"default_desert_sandstone.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), 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", description = "Indestructible Desert Sandstone Brick",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -198,7 +198,7 @@ do
sounds = default.node_sound_stone_defaults(), 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", description = "Indestructible Desert Sandstone Block",
tiles = {"default_desert_sandstone_block.png"}, tiles = {"default_desert_sandstone_block.png"},
is_ground_content = false, is_ground_content = false,
@ -206,14 +206,14 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:silver_sandstone", { minetest.register_node(":ctf_map:silver_sandstone", {
description = "Indestructible Silver Sandstone", description = "Indestructible Silver Sandstone",
tiles = {"default_silver_sandstone.png"}, tiles = {"default_silver_sandstone.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), 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", description = "Indestructible Silver Sandstone Brick",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -223,7 +223,7 @@ do
sounds = default.node_sound_stone_defaults(), 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", description = "Indestructible Silver Sandstone Block",
tiles = {"default_silver_sandstone_block.png"}, tiles = {"default_silver_sandstone_block.png"},
is_ground_content = false, is_ground_content = false,
@ -233,14 +233,14 @@ do
-- Soft / Non-Stone -- Soft / Non-Stone
minetest.register_node("ctf_map:dirt", { minetest.register_node(":ctf_map:dirt", {
description = "Indestructible Dirt", description = "Indestructible Dirt",
tiles = {"default_dirt.png"}, tiles = {"default_dirt.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_dirt_defaults(), 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", description = "Indestructible Dirt with Grass",
tiles = {"default_grass.png", "default_dirt.png", tiles = {"default_grass.png", "default_dirt.png",
{name = "default_dirt.png^default_grass_side.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", description = "Indestructible Dirt with Dry Grass",
tiles = {"default_dry_grass.png", tiles = {"default_dry_grass.png",
"default_dirt.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", description = "Indestructible Dirt with Snow",
tiles = {"default_snow.png", "default_dirt.png", tiles = {"default_snow.png", "default_dirt.png",
{name = "default_dirt.png^default_snow_side.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", description = "Indestructible Dirt with Rainforest Litter",
tiles = { tiles = {
"default_rainforest_litter.png", "default_rainforest_litter.png",
@ -292,21 +292,21 @@ do
}), }),
}) })
minetest.register_node("ctf_map:sand", { minetest.register_node(":ctf_map:sand", {
description = "Indestructible Sand", description = "Indestructible Sand",
tiles = {"default_sand.png"}, tiles = {"default_sand.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
}) })
minetest.register_node("ctf_map:desert_sand", { minetest.register_node(":ctf_map:desert_sand", {
description = "Indestructible Desert Sand", description = "Indestructible Desert Sand",
tiles = {"default_desert_sand.png"}, tiles = {"default_desert_sand.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
}) })
minetest.register_node("ctf_map:silver_sand", { minetest.register_node(":ctf_map:silver_sand", {
description = "Indestructible Silver Sand", description = "Indestructible Silver Sand",
tiles = {"default_silver_sand.png"}, tiles = {"default_silver_sand.png"},
groups = {immortal = 1}, groups = {immortal = 1},
@ -314,14 +314,14 @@ do
}) })
minetest.register_node("ctf_map:gravel", { minetest.register_node(":ctf_map:gravel", {
description = "Indestructible Gravel", description = "Indestructible Gravel",
tiles = {"default_gravel.png"}, tiles = {"default_gravel.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_gravel_defaults(), sounds = default.node_sound_gravel_defaults(),
}) })
minetest.register_node("ctf_map:clay", { minetest.register_node(":ctf_map:clay", {
description = "Indestructible Clay", description = "Indestructible Clay",
tiles = {"default_clay.png"}, tiles = {"default_clay.png"},
groups = {immortal = 1}, groups = {immortal = 1},
@ -329,7 +329,7 @@ do
}) })
minetest.register_node("ctf_map:snow", { minetest.register_node(":ctf_map:snow", {
description = "Indestructible Snow", description = "Indestructible Snow",
tiles = {"default_snow.png"}, tiles = {"default_snow.png"},
inventory_image = "default_snowball.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", description = "Indestructible Snow Block",
tiles = {"default_snow.png"}, tiles = {"default_snow.png"},
groups = {immortal = 1}, groups = {immortal = 1},
@ -363,7 +363,7 @@ do
}) })
}) })
minetest.register_node("ctf_map:ice", { minetest.register_node(":ctf_map:ice", {
description = "Indestructible Ice", description = "Indestructible Ice",
tiles = {"default_ice.png"}, tiles = {"default_ice.png"},
is_ground_content = false, is_ground_content = false,
@ -374,7 +374,7 @@ do
-- Trees -- Trees
minetest.register_node("ctf_map:tree", { minetest.register_node(":ctf_map:tree", {
description = "Indestructible Tree", description = "Indestructible Tree",
tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
@ -384,7 +384,7 @@ do
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
minetest.register_node("ctf_map:wood", { minetest.register_node(":ctf_map:wood", {
description = "Indestructible Wooden Planks", description = "Indestructible Wooden Planks",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -394,7 +394,7 @@ do
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
minetest.register_node("ctf_map:leaves", { minetest.register_node(":ctf_map:leaves", {
description = "Indestructible Leaves", description = "Indestructible Leaves",
drawtype = "allfaces_optional", drawtype = "allfaces_optional",
waving = 1, waving = 1,
@ -406,7 +406,7 @@ do
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })
minetest.register_node("ctf_map:apple", { minetest.register_node(":ctf_map:apple", {
description = "Indestructible Apple", description = "Indestructible Apple",
drawtype = "plantlike", drawtype = "plantlike",
tiles = {"default_apple.png"}, 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", description = "Indestructible Jungle Tree",
tiles = {"default_jungletree_top.png", "default_jungletree_top.png", tiles = {"default_jungletree_top.png", "default_jungletree_top.png",
"default_jungletree.png"}, "default_jungletree.png"},
@ -436,7 +436,7 @@ do
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
minetest.register_node("ctf_map:junglewood", { minetest.register_node(":ctf_map:junglewood", {
description = "Indestructible Jungle Wood Planks", description = "Indestructible Jungle Wood Planks",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -446,7 +446,7 @@ do
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
minetest.register_node("ctf_map:jungleleaves", { minetest.register_node(":ctf_map:jungleleaves", {
description = "Indestructible Jungle Leaves", description = "Indestructible Jungle Leaves",
drawtype = "allfaces_optional", drawtype = "allfaces_optional",
waving = 1, 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", description = "Indestructible Pine Tree",
tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png",
"default_pine_tree.png"}, "default_pine_tree.png"},
@ -470,7 +470,7 @@ do
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
minetest.register_node("ctf_map:pine_wood", { minetest.register_node(":ctf_map:pine_wood", {
description = "Indestructible Pine Wood Planks", description = "Indestructible Pine Wood Planks",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -480,7 +480,7 @@ do
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
minetest.register_node("ctf_map:pine_needles",{ minetest.register_node(":ctf_map:pine_needles",{
description = "Indestructible Pine Needles", description = "Indestructible Pine Needles",
drawtype = "allfaces_optional", drawtype = "allfaces_optional",
tiles = {"default_pine_needles.png"}, tiles = {"default_pine_needles.png"},
@ -491,7 +491,7 @@ do
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })
minetest.register_node("ctf_map:acacia_tree", { minetest.register_node(":ctf_map:acacia_tree", {
description = "Indestructible Acacia Tree", description = "Indestructible Acacia Tree",
tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png",
"default_acacia_tree.png"}, "default_acacia_tree.png"},
@ -502,7 +502,7 @@ do
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
minetest.register_node("ctf_map:acacia_wood", { minetest.register_node(":ctf_map:acacia_wood", {
description = "Indestructible Acacia Wood Planks", description = "Indestructible Acacia Wood Planks",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -512,7 +512,7 @@ do
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
minetest.register_node("ctf_map:acacia_leaves", { minetest.register_node(":ctf_map:acacia_leaves", {
description = "Indestructible Acacia Leaves", description = "Indestructible Acacia Leaves",
drawtype = "allfaces_optional", drawtype = "allfaces_optional",
tiles = {"default_acacia_leaves.png"}, tiles = {"default_acacia_leaves.png"},
@ -524,7 +524,7 @@ do
sounds = default.node_sound_leaves_defaults(), sounds = default.node_sound_leaves_defaults(),
}) })
minetest.register_node("ctf_map:aspen_tree", { minetest.register_node(":ctf_map:aspen_tree", {
description = "Indestructible Aspen Tree", description = "Indestructible Aspen Tree",
tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png", tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png",
"default_aspen_tree.png"}, "default_aspen_tree.png"},
@ -535,7 +535,7 @@ do
on_place = minetest.rotate_node on_place = minetest.rotate_node
}) })
minetest.register_node("ctf_map:aspen_wood", { minetest.register_node(":ctf_map:aspen_wood", {
description = "Indestructible Aspen Wood Planks", description = "Indestructible Aspen Wood Planks",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -545,7 +545,7 @@ do
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
minetest.register_node("ctf_map:aspen_leaves", { minetest.register_node(":ctf_map:aspen_leaves", {
description = "Indestructible Aspen Leaves", description = "Indestructible Aspen Leaves",
drawtype = "allfaces_optional", drawtype = "allfaces_optional",
tiles = {"default_aspen_leaves.png"}, tiles = {"default_aspen_leaves.png"},
@ -560,14 +560,14 @@ do
-- Ores -- Ores
-- --
minetest.register_node("ctf_map:stone_with_coal", { minetest.register_node(":ctf_map:stone_with_coal", {
description = "Indestructible Coal Ore", description = "Indestructible Coal Ore",
tiles = {"default_stone.png^default_mineral_coal.png"}, tiles = {"default_stone.png^default_mineral_coal.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:coalblock", { minetest.register_node(":ctf_map:coalblock", {
description = "Indestructible Coal Block", description = "Indestructible Coal Block",
tiles = {"default_coal_block.png"}, tiles = {"default_coal_block.png"},
is_ground_content = false, 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", description = "Indestructible Iron Ore",
tiles = {"default_stone.png^default_mineral_iron.png"}, tiles = {"default_stone.png^default_mineral_iron.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), 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", description = "Indestructible Copper Ore",
tiles = {"default_stone.png^default_mineral_copper.png"}, tiles = {"default_stone.png^default_mineral_copper.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), 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", description = "Indestructible Tin Ore",
tiles = {"default_stone.png^default_mineral_tin.png"}, tiles = {"default_stone.png^default_mineral_tin.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:bronzeblock", { minetest.register_node(":ctf_map:bronzeblock", {
description = "Indestructible Bronze Block", description = "Indestructible Bronze Block",
tiles = {"default_bronze_block.png"}, tiles = {"default_bronze_block.png"},
is_ground_content = false, is_ground_content = false,
@ -605,14 +605,14 @@ do
sounds = default.node_sound_metal_defaults(), 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", description = "Indestructible Mese Ore",
tiles = {"default_stone.png^default_mineral_mese.png"}, tiles = {"default_stone.png^default_mineral_mese.png"},
groups = {immortal = 1}, groups = {immortal = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:mese", { minetest.register_node(":ctf_map:mese", {
description = "Indestructible Mese Block", description = "Indestructible Mese Block",
tiles = {"default_mese_block.png"}, tiles = {"default_mese_block.png"},
paramtype = "light", paramtype = "light",
@ -621,7 +621,7 @@ do
light_source = 3, light_source = 3,
}) })
minetest.register_node("ctf_map:stone_with_diamond", { minetest.register_node(":ctf_map:stone_with_diamond", {
description = "Indestructible Diamond Ore", description = "Indestructible Diamond Ore",
tiles = {"default_stone.png^default_mineral_diamond.png"}, tiles = {"default_stone.png^default_mineral_diamond.png"},
groups = {immortal = 1}, groups = {immortal = 1},
@ -630,7 +630,7 @@ do
-- Plantlife (non-cubic) -- Plantlife (non-cubic)
minetest.register_node("ctf_map:cactus", { minetest.register_node(":ctf_map:cactus", {
description = "Indestructible Cactus", description = "Indestructible Cactus",
tiles = {"default_cactus_top.png", "default_cactus_top.png", tiles = {"default_cactus_top.png", "default_cactus_top.png",
"default_cactus_side.png"}, "default_cactus_side.png"},
@ -640,7 +640,7 @@ do
on_place = minetest.rotate_node, on_place = minetest.rotate_node,
}) })
minetest.register_node("ctf_map:ladder_wood", { minetest.register_node(":ctf_map:ladder_wood", {
description = "Indestructible Wooden Ladder", description = "Indestructible Wooden Ladder",
drawtype = "signlike", drawtype = "signlike",
tiles = {"default_ladder_wood.png"}, tiles = {"default_ladder_wood.png"},
@ -663,7 +663,7 @@ do
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
default.register_fence("ctf_map:fence_wood", { default.register_fence(":ctf_map:fence_wood", {
description = "Indestructible Wooden Fence", description = "Indestructible Wooden Fence",
texture = "default_fence_wood.png", texture = "default_fence_wood.png",
inventory_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", 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() 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", description = "Indestructible Acacia Fence",
texture = "default_fence_acacia_wood.png", texture = "default_fence_acacia_wood.png",
inventory_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", 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() 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", description = "Indestructible Jungle Wood Fence",
texture = "default_fence_junglewood.png", texture = "default_fence_junglewood.png",
inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", 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() 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", description = "Indestructible Pine Fence",
texture = "default_fence_pine_wood.png", texture = "default_fence_pine_wood.png",
inventory_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", 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() 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", description = "Indestructible Aspen Fence",
texture = "default_fence_aspen_wood.png", texture = "default_fence_aspen_wood.png",
inventory_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", 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() sounds = default.node_sound_wood_defaults()
}) })
minetest.register_node("ctf_map:glass", { minetest.register_node(":ctf_map:glass", {
description = "Indestructible Glass", description = "Indestructible Glass",
drawtype = "glasslike_framed_optional", drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png", "default_glass_detail.png"}, tiles = {"default_glass.png", "default_glass_detail.png"},
@ -725,7 +725,7 @@ do
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
minetest.register_node("ctf_map:brick", { minetest.register_node(":ctf_map:brick", {
description = "Indestructible Brick Block", description = "Indestructible Brick Block",
paramtype2 = "facedir", paramtype2 = "facedir",
place_param2 = 0, place_param2 = 0,
@ -735,7 +735,7 @@ do
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
}) })
minetest.register_node("ctf_map:meselamp", { minetest.register_node(":ctf_map:meselamp", {
description = "Indestructible Mese Lamp", description = "Indestructible Mese Lamp",
drawtype = "glasslike", drawtype = "glasslike",
tiles = {"default_meselamp.png"}, tiles = {"default_meselamp.png"},
@ -750,7 +750,7 @@ end
-- Indestructible torches from MTG's default mod -- Indestructible torches from MTG's default mod
do do
minetest.register_node("ctf_map:torch", { minetest.register_node(":ctf_map:torch", {
description = "Torch", description = "Torch",
drawtype = "mesh", drawtype = "mesh",
mesh = "torch_floor.obj", mesh = "torch_floor.obj",
@ -788,21 +788,21 @@ do
local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above))
local fakestack = itemstack local fakestack = itemstack
if wdir == 0 then if wdir == 0 then
fakestack:set_name("ctf_map:torch_ceiling") fakestack:set_name(":ctf_map:torch_ceiling")
elseif wdir == 1 then elseif wdir == 1 then
fakestack:set_name("ctf_map:torch") fakestack:set_name(":ctf_map:torch")
else else
fakestack:set_name("ctf_map:torch_wall") fakestack:set_name(":ctf_map:torch_wall")
end end
itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir)
itemstack:set_name("ctf_map:torch") itemstack:set_name(":ctf_map:torch")
return itemstack return itemstack
end, end,
}) })
minetest.register_node("ctf_map:torch_wall", { minetest.register_node(":ctf_map:torch_wall", {
drawtype = "mesh", drawtype = "mesh",
mesh = "torch_wall.obj", mesh = "torch_wall.obj",
tiles = {{ tiles = {{
@ -823,7 +823,7 @@ do
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
}) })
minetest.register_node("ctf_map:torch_ceiling", { minetest.register_node(":ctf_map:torch_ceiling", {
drawtype = "mesh", drawtype = "mesh",
mesh = "torch_ceiling.obj", mesh = "torch_ceiling.obj",
tiles = {{ tiles = {{
@ -855,7 +855,7 @@ do
nodedef.description = "Indestructible " .. nodedef.description nodedef.description = "Indestructible " .. nodedef.description
end end
nodedef.groups = {immortal = 1} 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 elseif name:find("wool") then
local color = name:split(":")[2] local color = name:split(":")[2]
nodedef = table.copy(nodedef) nodedef = table.copy(nodedef)
@ -863,7 +863,7 @@ do
nodedef.description = "Indestructible " .. nodedef.description nodedef.description = "Indestructible " .. nodedef.description
end end
nodedef.groups = {immortal = 1} 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) minetest.register_alias("ctf_map:" .. color, "ctf_map:wool_" .. color)
end end
end end

View file

@ -27,8 +27,8 @@ minetest.register_alias_force("default:stone_with_gold", "default:stone")
local max_r = 120 local max_r = 120
ctf_map.mapdir = minetest.get_modpath("ctf_map") .. "/maps/"
ctf_map.map = nil ctf_map.map = nil
ctf_map.mapdir = minetest.get_modpath(minetest.get_current_modname()) .. "/maps/"
-- Modify server status message to include map info -- Modify server status message to include map info
local map_str local map_str

View file

Before

Width:  |  Height:  |  Size: 179 B

After

Width:  |  Height:  |  Size: 179 B

View file

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

Before

Width:  |  Height:  |  Size: 206 B

After

Width:  |  Height:  |  Size: 206 B

View file

Before

Width:  |  Height:  |  Size: 140 B

After

Width:  |  Height:  |  Size: 140 B

View file

Before

Width:  |  Height:  |  Size: 665 B

After

Width:  |  Height:  |  Size: 665 B

View file

Before

Width:  |  Height:  |  Size: 425 B

After

Width:  |  Height:  |  Size: 425 B

View file

Before

Width:  |  Height:  |  Size: 625 B

After

Width:  |  Height:  |  Size: 625 B

View file

Before

Width:  |  Height:  |  Size: 614 B

After

Width:  |  Height:  |  Size: 614 B

View file

Before

Width:  |  Height:  |  Size: 564 B

After

Width:  |  Height:  |  Size: 564 B

View file

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 556 B

View file

Before

Width:  |  Height:  |  Size: 593 B

After

Width:  |  Height:  |  Size: 593 B

View file

Before

Width:  |  Height:  |  Size: 587 B

After

Width:  |  Height:  |  Size: 587 B

View file

@ -1,30 +1,23 @@
# CTF Map # CTF Map - Map maker
This mod handles creating and loading maps.
## Attributions
- Indestructible nodes adapted from various mods in `minetest_game`.
## Creating a new map ## Creating a new map
### 1. Dependencies ### 1. Dependencies
* Minetest 0.4.16 or later. * Minetest 5.0.0 or later.
* Mods * `ctf_map` modpack (by copying the folder from this game to `minetest/mods`)
* ctf_map (by copying the folder from this game to `minetest/mods`) * `worldedit` and `worldedit_commands`.
* worldedit and worldedit_commands.
### 2. Find an area ### 2. Find an area
* Can use Minetest Game and any mapgen. * Can use Minetest Game and any mapgen.
* It must be a cube, and the barrier will be in the exact center. * 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. * Feel free to modify the area to your needs.
### 3. Select the area ### 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: * If you haven't modified the map at all, do the following to speed up barrier placement:
* Stop Minetest. * Stop Minetest.
@ -32,7 +25,7 @@ There are multiple ways do this, this is the simplist in most cases.
* Set backend to "dummy". * Set backend to "dummy".
* Save. * Save.
* Using worldedit, select the area. * 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 center location is the right place for the barrier to go.
* Check that the bounds extend far enough. * 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 ### 6. Export
* Click export, and wait until completion. * Click export, and wait until completion.
* Copy the two files from `worlddir/schems/` to `ctf_map/maps/`. * Copy the resultant folder from `worlddir/schems/` into `ctf_map/ctf_map_core/maps/`.
* Rename the files so the two prefixed numbers are consistent to existing maps.
* Profit! * Profit!
## Documentation ## 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 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) (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_<color>`. This is because the original nomenclature becomes meaningless
if the modname prefix is changed.

View file

@ -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

View file

@ -52,19 +52,20 @@ end
minetest.register_on_joinplayer(function(player) minetest.register_on_joinplayer(function(player)
minetest.after(1, function(name) 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()) end, player:get_player_name())
local inv = player:get_inventory() local inv = player:get_inventory()
if not inv:contains_item("main", ItemStack("ctf_map:adminpick")) then if not inv:contains_item("main", "map_maker:adminpick") then
inv:add_item("main", ItemStack("ctf_map:adminpick")) inv:add_item("main", "map_maker:adminpick")
end end
end) end)
minetest.register_on_respawnplayer(function(player) minetest.register_on_respawnplayer(function(player)
local inv = player:get_inventory() local inv = player:get_inventory()
if not inv:contains_item("main", ItemStack("ctf_map:adminpick")) then if not inv:contains_item("main", "map_maker:adminpick") then
inv:add_item("main", ItemStack("ctf_map:adminpick")) inv:add_item("main", "map_maker:adminpick")
end end
end) end)
@ -83,7 +84,7 @@ local function check_step()
end end
minetest.after(1, check_step) minetest.after(1, check_step)
minetest.register_node("ctf_map:flag", { minetest.register_node(":ctf_map:flag", {
description = "Flag", description = "Flag",
drawtype="nodebox", drawtype="nodebox",
paramtype = "light", paramtype = "light",
@ -93,8 +94,8 @@ minetest.register_node("ctf_map:flag", {
"default_wood.png", "default_wood.png",
"default_wood.png", "default_wood.png",
"default_wood.png", "default_wood.png",
"flag_grey2.png", "map_maker_flag_grey.png",
"flag_grey.png" "map_maker_flag_grey.png"
}, },
node_box = { node_box = {
type = "fixed", type = "fixed",
@ -437,9 +438,9 @@ minetest.register_chatcommand("gui", {
}) })
-- Register special pickaxe to break indestructible nodes -- 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.", description = "Admin pickaxe used to break indestructible nodes.",
inventory_image = "ctf_map_adminpick.png", inventory_image = "map_maker_adminpick.png",
range = 16, range = 16,
tool_capabilities = { tool_capabilities = {
full_punch_interval = 1.0, full_punch_interval = 1.0,

View file

@ -0,0 +1,2 @@
name = map_maker
depends = ctf_map_core, worldedit

View file

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

@ -1 +0,0 @@
Subproject commit 98abf0158065cfe0f9747dd07f8c71581708cdd5

View file

@ -1,3 +0,0 @@
name = ctf_map
depends = default
optional_depends = ctf_treasure, stairs, wool, ctf, ctf_match, worldedit, irc, ctf_stats

View file

@ -0,0 +1 @@
name = ctf_map

View file

@ -1,3 +1,3 @@
name = dropondie 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. description = With this mod, players will drop all their items in their inventory on the ground when they die.

View file

@ -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 for f in *; do
if [ -d ${f} ]; then if [ -d ${f} ]; then
# Screenshot # Screenshot