Optimized perfomance + code cleaning
parent
22f7a4f8f4
commit
8b8a8542ff
22
SETTINGS.lua
22
SETTINGS.lua
|
@ -51,6 +51,21 @@ skywars_settings.background_height = 11
|
||||||
|
|
||||||
-- The x position offset from the background border of the first buttons row
|
-- The x position offset from the background border of the first buttons row
|
||||||
-- in real coordinates, the bigger it is the righter the row will be placed.
|
-- in real coordinates, the bigger it is the righter the row will be placed.
|
||||||
|
--[[
|
||||||
|
1.7
|
||||||
|
|------|--------------------> x
|
||||||
|
| |
|
||||||
|
| * * * Background * * *
|
||||||
|
| * | *
|
||||||
|
| * | *
|
||||||
|
6.6 ---*-- Button1 Button2 * --> FIRST ROW
|
||||||
|
| * Button3 Button4 *
|
||||||
|
| * *
|
||||||
|
| * *
|
||||||
|
| * * * * * * * * * * * *
|
||||||
|
|
|
||||||
|
\/ y
|
||||||
|
]]
|
||||||
skywars_settings.starting_x = 1.7
|
skywars_settings.starting_x = 1.7
|
||||||
|
|
||||||
-- The y position offset from the background border of the first buttons row
|
-- The y position offset from the background border of the first buttons row
|
||||||
|
@ -72,6 +87,12 @@ skywars_settings.buttons_width = 1.8
|
||||||
-- The buttons height in real coordinates.
|
-- The buttons height in real coordinates.
|
||||||
skywars_settings.buttons_height = 1.6
|
skywars_settings.buttons_height = 1.6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- AUTO EQUIP. SYSTEM --
|
||||||
|
|
||||||
|
|
||||||
-- The items importances that are used by the auto equip system:
|
-- The items importances that are used by the auto equip system:
|
||||||
-- when a player takes an item from a chest, if it has a greater
|
-- when a player takes an item from a chest, if it has a greater
|
||||||
-- importance and it's in the same group of the one in the hotbar,
|
-- importance and it's in the same group of the one in the hotbar,
|
||||||
|
@ -113,6 +134,7 @@ skywars_settings.items_importances = {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- MAP RESET SYSTEM SETTINGS --
|
-- MAP RESET SYSTEM SETTINGS --
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,11 @@ local function remove_privs() end
|
||||||
local function create_barrier_cage() end
|
local function create_barrier_cage() end
|
||||||
local function keep_teleporting() end
|
local function keep_teleporting() end
|
||||||
local function drop_items() end
|
local function drop_items() end
|
||||||
|
local update_timer_hud = skywars.update_timer_hud
|
||||||
|
local kill_players_out_map = skywars.kill_players_out_map
|
||||||
|
local add_node = minetest.add_node
|
||||||
|
local get_node = minetest.get_node
|
||||||
|
local remove_node = minetest.remove_node
|
||||||
|
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
@ -190,8 +195,8 @@ end)
|
||||||
|
|
||||||
|
|
||||||
arena_lib.on_time_tick("skywars", function(arena)
|
arena_lib.on_time_tick("skywars", function(arena)
|
||||||
skywars.kill_players_out_map(arena)
|
kill_players_out_map(arena)
|
||||||
skywars.update_timer_hud(arena)
|
update_timer_hud(arena)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
|
@ -207,7 +212,7 @@ function add_privs(pl_name)
|
||||||
local privs = minetest.get_player_privs(pl_name)
|
local privs = minetest.get_player_privs(pl_name)
|
||||||
local player = minetest.get_player_by_name(pl_name)
|
local player = minetest.get_player_by_name(pl_name)
|
||||||
|
|
||||||
-- preventing players with noclip to fall when placing nodes
|
-- Preventing players with noclip to fall when placing nodes.
|
||||||
if privs.noclip then
|
if privs.noclip then
|
||||||
player:get_meta():set_string("sw_can_noclip", "true")
|
player:get_meta():set_string("sw_can_noclip", "true")
|
||||||
privs.noclip = nil
|
privs.noclip = nil
|
||||||
|
@ -256,10 +261,11 @@ function create_barrier_cage(player)
|
||||||
|
|
||||||
for _, relative_pos in pairs(glass_nodes) do
|
for _, relative_pos in pairs(glass_nodes) do
|
||||||
local node_pos = vector.round(vector.add(original_pos, relative_pos))
|
local node_pos = vector.round(vector.add(original_pos, relative_pos))
|
||||||
if minetest.get_node(node_pos).name == "air" then
|
|
||||||
minetest.add_node(node_pos, {name="skywars:barrier"})
|
if get_node(node_pos).name == "air" then
|
||||||
|
add_node(node_pos, {name="skywars:barrier"})
|
||||||
minetest.after(skywars_settings.loading_time, function()
|
minetest.after(skywars_settings.loading_time, function()
|
||||||
minetest.remove_node(node_pos)
|
remove_node(node_pos)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -276,8 +282,8 @@ function drop_items(player)
|
||||||
|
|
||||||
for i, itemstack in pairs(inv) do
|
for i, itemstack in pairs(inv) do
|
||||||
local pl_pos = player:get_pos()
|
local pl_pos = player:get_pos()
|
||||||
local random_x = pl_pos.x + math.random() + math.random(-noise, noise-1)
|
local random_x = pl_pos.x + math.random() + math.random(-noise-1, noise-1)
|
||||||
local random_z = pl_pos.z + math.random() + math.random(-noise, noise-1)
|
local random_z = pl_pos.z + math.random() + math.random(-noise-1, noise-1)
|
||||||
local random_pos = {
|
local random_pos = {
|
||||||
x = random_x,
|
x = random_x,
|
||||||
y = pl_pos.y,
|
y = pl_pos.y,
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
local function fill_chests() end
|
local function fill_chests() end
|
||||||
local function generate_particles() end
|
local function generate_particles() end
|
||||||
|
|
||||||
|
|
||||||
function skywars.place_chests(arena)
|
function skywars.place_chests(arena)
|
||||||
|
local add_node = minetest.add_node
|
||||||
|
|
||||||
for i=1, #arena.chests do
|
for i=1, #arena.chests do
|
||||||
minetest.add_node(arena.chests[i].pos, {name="default:chest"})
|
add_node(arena.chests[i].pos, {name="default:chest"})
|
||||||
end
|
end
|
||||||
fill_chests(arena)
|
fill_chests(arena)
|
||||||
end
|
end
|
||||||
|
@ -26,9 +27,12 @@ end
|
||||||
|
|
||||||
|
|
||||||
function fill_chests(arena)
|
function fill_chests(arena)
|
||||||
|
local get_meta = minetest.get_meta
|
||||||
|
local select_random_treasures = skywars.select_random_treasures
|
||||||
|
|
||||||
for i, chest in pairs(arena.chests) do
|
for i, chest in pairs(arena.chests) do
|
||||||
local treasures = skywars.select_random_treasures(chest, arena)
|
local treasures = select_random_treasures(chest, arena)
|
||||||
local meta = minetest.get_meta(chest.pos)
|
local meta = get_meta(chest.pos)
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
|
|
||||||
inv:set_list("main", {})
|
inv:set_list("main", {})
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
-- Select the treasures to put in the chests inventory
|
-- Select the treasures to put in the chests inventory
|
||||||
local mod = "skywars"
|
local mod = "skywars"
|
||||||
|
local random = math.random
|
||||||
|
local ceil = math.ceil
|
||||||
|
local table_insert = table.insert
|
||||||
local function treasure_to_itemstack() end
|
local function treasure_to_itemstack() end
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,13 +38,13 @@ end
|
||||||
function skywars.select_random_treasures(chest, arena)
|
function skywars.select_random_treasures(chest, arena)
|
||||||
local preciousness_filtered_treasures = {}
|
local preciousness_filtered_treasures = {}
|
||||||
local generated_treasures = {}
|
local generated_treasures = {}
|
||||||
local treasure_amount = math.ceil(math.random(chest.min_treasures, chest.max_treasures))
|
local treasure_amount = ceil(random(chest.min_treasures, chest.max_treasures))
|
||||||
local treasures_to_be_generated = treasure_amount
|
local treasures_to_be_generated = treasure_amount
|
||||||
|
|
||||||
for i = 1, #arena.treasures do
|
for i = 1, #arena.treasures do
|
||||||
local treasure = arena.treasures[i]
|
local treasure = arena.treasures[i]
|
||||||
if treasure.preciousness >= chest.min_preciousness and treasure.preciousness <= chest.max_preciousness then
|
if treasure.preciousness >= chest.min_preciousness and treasure.preciousness <= chest.max_preciousness then
|
||||||
table.insert(preciousness_filtered_treasures, treasure)
|
table_insert(preciousness_filtered_treasures, treasure)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -49,13 +52,13 @@ function skywars.select_random_treasures(chest, arena)
|
||||||
for i = 1, treasures_to_be_generated do
|
for i = 1, treasures_to_be_generated do
|
||||||
if not generated_treasures[i] then
|
if not generated_treasures[i] then
|
||||||
for j = 1, #preciousness_filtered_treasures do
|
for j = 1, #preciousness_filtered_treasures do
|
||||||
local random = math.random(1, 100)
|
local random = random(1, 100)
|
||||||
local treasure_itemstack = treasure_to_itemstack(preciousness_filtered_treasures[j])
|
local treasure_itemstack = treasure_to_itemstack(preciousness_filtered_treasures[j])
|
||||||
|
|
||||||
if treasure_itemstack == "error" then return generated_treasures end
|
if treasure_itemstack == "error" then return generated_treasures end
|
||||||
|
|
||||||
if treasure_itemstack and random % (preciousness_filtered_treasures[j].rarity * 10) == 0 then
|
if treasure_itemstack and random % (preciousness_filtered_treasures[j].rarity * 10) == 0 then
|
||||||
table.insert(generated_treasures, treasure_itemstack)
|
table_insert(generated_treasures, treasure_itemstack)
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
local saved_huds = {} -- id = hud
|
local saved_huds = {} -- id = hud
|
||||||
|
local get_player_by_name = minetest.get_player_by_name
|
||||||
|
|
||||||
function skywars.generate_HUD(arena, pl_name)
|
function skywars.generate_HUD(arena, pl_name)
|
||||||
local player = minetest.get_player_by_name(pl_name)
|
local player = get_player_by_name(pl_name)
|
||||||
local players_count_
|
local players_count_
|
||||||
local players_killed_
|
local players_killed_
|
||||||
local timer_
|
local timer_
|
||||||
|
@ -89,7 +89,7 @@ end
|
||||||
|
|
||||||
|
|
||||||
function skywars.remove_HUD(arena, pl_name)
|
function skywars.remove_HUD(arena, pl_name)
|
||||||
local player = minetest.get_player_by_name(pl_name)
|
local player = get_player_by_name(pl_name)
|
||||||
|
|
||||||
for name, id in pairs(saved_huds[pl_name]) do
|
for name, id in pairs(saved_huds[pl_name]) do
|
||||||
if type(id) == "table" then id = id.id end
|
if type(id) == "table" then id = id.id end
|
||||||
|
@ -109,7 +109,7 @@ function skywars.update_players_counter(arena, players_amount_updated)
|
||||||
end
|
end
|
||||||
|
|
||||||
for pl_name in pairs(arena.players) do
|
for pl_name in pairs(arena.players) do
|
||||||
local player = minetest.get_player_by_name(pl_name)
|
local player = get_player_by_name(pl_name)
|
||||||
|
|
||||||
if arena.players_original_amount == nil then return end
|
if arena.players_original_amount == nil then return end
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ end
|
||||||
|
|
||||||
|
|
||||||
function skywars.increment_players_killed(pl_name)
|
function skywars.increment_players_killed(pl_name)
|
||||||
local player = minetest.get_player_by_name(pl_name)
|
local player = get_player_by_name(pl_name)
|
||||||
local players_killed = saved_huds[pl_name].players_killed.amount + 1
|
local players_killed = saved_huds[pl_name].players_killed.amount + 1
|
||||||
saved_huds[pl_name].players_killed.amount = players_killed
|
saved_huds[pl_name].players_killed.amount = players_killed
|
||||||
|
|
||||||
|
@ -132,7 +132,7 @@ end
|
||||||
|
|
||||||
function skywars.update_timer_hud(arena)
|
function skywars.update_timer_hud(arena)
|
||||||
for pl_name in pairs(arena.players) do
|
for pl_name in pairs(arena.players) do
|
||||||
local player = minetest.get_player_by_name(pl_name)
|
local player = get_player_by_name(pl_name)
|
||||||
player:hud_change(saved_huds[pl_name].timer, "text", arena.current_time)
|
player:hud_change(saved_huds[pl_name].timer, "text", arena.current_time)
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -4,6 +4,7 @@ local function reset_node_inventory() end
|
||||||
local deserialize = minetest.deserialize
|
local deserialize = minetest.deserialize
|
||||||
local add_node = minetest.add_node
|
local add_node = minetest.add_node
|
||||||
local get_node = minetest.get_node
|
local get_node = minetest.get_node
|
||||||
|
local get_inventory = minetest.get_inventory
|
||||||
local on_step = minetest.registered_entities["__builtin:item"].on_step
|
local on_step = minetest.registered_entities["__builtin:item"].on_step
|
||||||
minetest.registered_entities["__builtin:item"].match_id = -2
|
minetest.registered_entities["__builtin:item"].match_id = -2
|
||||||
|
|
||||||
|
@ -123,10 +124,18 @@ end
|
||||||
|
|
||||||
function reset_node_inventory(pos)
|
function reset_node_inventory(pos)
|
||||||
local location = {type="node", pos = pos}
|
local location = {type="node", pos = pos}
|
||||||
local inv = minetest.get_inventory(location)
|
local inv = get_inventory(location)
|
||||||
if inv then
|
if inv then
|
||||||
for index, list in ipairs(inv:get_lists()) do
|
for index, list in ipairs(inv:get_lists()) do
|
||||||
inv:set_list(list, {})
|
inv:set_list(list, {})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_on_mods_loaded(function()
|
||||||
|
for i, arena in pairs(arena_lib.mods["skywars"].arenas) do
|
||||||
|
arena.is_resetting = false
|
||||||
|
end
|
||||||
|
end)
|
|
@ -1,4 +1,5 @@
|
||||||
local function save_node() end
|
local function save_node() end
|
||||||
|
local get_inventory = minetest.get_inventory
|
||||||
|
|
||||||
|
|
||||||
minetest.register_on_placenode(function(pos, newnode, player, oldnode, itemstack, pointed_thing)
|
minetest.register_on_placenode(function(pos, newnode, player, oldnode, itemstack, pointed_thing)
|
||||||
|
@ -73,7 +74,8 @@ function skywars.save_nodes_with_inventories(arena)
|
||||||
local maps = skywars.load_table("maps")
|
local maps = skywars.load_table("maps")
|
||||||
local manip = minetest.get_voxel_manip()
|
local manip = minetest.get_voxel_manip()
|
||||||
local emerged_pos1, emerged_pos2 = manip:read_from_map(arena.min_pos, arena.max_pos)
|
local emerged_pos1, emerged_pos2 = manip:read_from_map(arena.min_pos, arena.max_pos)
|
||||||
local area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2})
|
local emerged_area = VoxelArea:new({MinEdge=emerged_pos1, MaxEdge=emerged_pos2})
|
||||||
|
local original_area = VoxelArea:new({MinEdge=arena.min_pos, MaxEdge=arena.max_pos})
|
||||||
local nodes = manip:get_data()
|
local nodes = manip:get_data()
|
||||||
local get_inventory = minetest.get_inventory
|
local get_inventory = minetest.get_inventory
|
||||||
local get_name_from_content_id = minetest.get_name_from_content_id
|
local get_name_from_content_id = minetest.get_name_from_content_id
|
||||||
|
@ -84,11 +86,11 @@ function skywars.save_nodes_with_inventories(arena)
|
||||||
maps[arena.name].always_to_be_reset_nodes = {}
|
maps[arena.name].always_to_be_reset_nodes = {}
|
||||||
|
|
||||||
-- Saving every node with an inventory.
|
-- Saving every node with an inventory.
|
||||||
for i in area:iterp(emerged_pos1, emerged_pos2) do
|
for i in emerged_area:iterp(emerged_pos1, emerged_pos2) do
|
||||||
local node_pos = area:position(i)
|
local node_pos = emerged_area:position(i)
|
||||||
local location = {type="node", pos=node_pos}
|
local location = {type = "node", pos = node_pos}
|
||||||
|
|
||||||
if get_inventory(location) then
|
if original_area:containsp(node_pos) and get_inventory(location) then
|
||||||
local node = get_node(node_pos)
|
local node = get_node(node_pos)
|
||||||
local serialized_pos = serialize(node_pos)
|
local serialized_pos = serialize(node_pos)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
|
local get_player_by_name = minetest.get_player_by_name
|
||||||
|
|
||||||
|
|
||||||
function skywars.kill_players_out_map(arena)
|
function skywars.kill_players_out_map(arena)
|
||||||
for pl_name in pairs(arena.players) do
|
for pl_name in pairs(arena.players) do
|
||||||
local player = minetest.get_player_by_name(pl_name)
|
local player = get_player_by_name(pl_name)
|
||||||
local pl_pos = player:get_pos()
|
local pl_pos = player:get_pos()
|
||||||
local min_pos = vector.add(arena.min_pos, 5)
|
local min_pos = vector.add(arena.min_pos, 5)
|
||||||
local max_pos = vector.subtract(arena.max_pos, 5)
|
local max_pos = vector.subtract(arena.max_pos, 5)
|
||||||
|
@ -21,27 +24,9 @@ end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("skywars:barrier", {
|
|
||||||
description = skywars.T("Unbreakable without skywars_admin priv transparent node"),
|
|
||||||
drawtype = "airlike",
|
|
||||||
paramtype = "light",
|
|
||||||
sunlight_propagates = true,
|
|
||||||
air_equivalent = true,
|
|
||||||
drop = "",
|
|
||||||
inventory_image = "sw_node_barrier.png",
|
|
||||||
wield_image = "sw_node_barrier.png",
|
|
||||||
groups = {oddly_breakable_by_hand = 2},
|
|
||||||
can_dig = function(pos, player)
|
|
||||||
if minetest.get_player_privs(player:get_player_name()).skywars_admin then
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function skywars.iterate_area_nodes(min_pos, max_pos, func)
|
function skywars.iterate_area_nodes(min_pos, max_pos, func)
|
||||||
|
local get_node = minetest.get_node
|
||||||
|
|
||||||
for x = 1, max_pos.x - min_pos.x do
|
for x = 1, max_pos.x - min_pos.x do
|
||||||
for y = 1, max_pos.y - min_pos.y do
|
for y = 1, max_pos.y - min_pos.y do
|
||||||
for z = 1, max_pos.z - min_pos.z do
|
for z = 1, max_pos.z - min_pos.z do
|
||||||
|
@ -50,7 +35,7 @@ function skywars.iterate_area_nodes(min_pos, max_pos, func)
|
||||||
y = min_pos.y+y,
|
y = min_pos.y+y,
|
||||||
z = min_pos.z+z
|
z = min_pos.z+z
|
||||||
}
|
}
|
||||||
local node = minetest.get_node(node_pos)
|
local node = get_node(node_pos)
|
||||||
local func_result = func(node, node_pos)
|
local func_result = func(node, node_pos)
|
||||||
|
|
||||||
if func_result then return func_result end
|
if func_result then return func_result end
|
||||||
|
|
|
@ -71,12 +71,10 @@ function compare_items(item1, item2)
|
||||||
local item1_category, item1_importance = get_item_importance(item1)
|
local item1_category, item1_importance = get_item_importance(item1)
|
||||||
local item2_category, item2_importance = get_item_importance(item2)
|
local item2_category, item2_importance = get_item_importance(item2)
|
||||||
|
|
||||||
if item1_category and item2_category then
|
if (item1_category and item2_category) and (item1_category == item2_category) then
|
||||||
if item1_category == item2_category then
|
|
||||||
if item1_importance > item2_importance then return item1
|
if item1_importance > item2_importance then return item1
|
||||||
elseif item1_importance < item2_importance then return item2 end
|
elseif item1_importance < item2_importance then return item2 end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,10 @@ function skywars.test_async_speed(arena)
|
||||||
local area_size = 10
|
local area_size = 10
|
||||||
local min_pos = arena.min_pos
|
local min_pos = arena.min_pos
|
||||||
local max_pos = vector.add(min_pos, area_size)
|
local max_pos = vector.add(min_pos, area_size)
|
||||||
|
local set_node = minetest.set_node
|
||||||
|
|
||||||
skywars.iterate_area_nodes(min_pos, max_pos, function(node, node_pos)
|
skywars.iterate_area_nodes(min_pos, max_pos, function(node, node_pos)
|
||||||
minetest.set_node(node_pos, {name="skywars:test_node"})
|
set_node(node_pos, {name="skywars:test_node"})
|
||||||
end)
|
end)
|
||||||
|
|
||||||
minetest.after(1, function() skywars.reset_map(arena, true) end)
|
minetest.after(1, function() skywars.reset_map(arena, true) end)
|
||||||
|
@ -86,19 +87,3 @@ function get_nodes_at_arena_edges(arena)
|
||||||
|
|
||||||
return node1, node2
|
return node1, node2
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_node("skywars:test_node", {
|
|
||||||
description = "Skywars test node, don't use it!",
|
|
||||||
groups = {crumbly=1, soil=1, dig_immediate=3},
|
|
||||||
tiles = {"sw_node_test.png"},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
minetest.register_on_mods_loaded(function()
|
|
||||||
for i, arena in pairs(arena_lib.mods["skywars"].arenas) do
|
|
||||||
arena.is_resetting = false
|
|
||||||
end
|
|
||||||
end)
|
|
1
init.lua
1
init.lua
|
@ -32,6 +32,7 @@ arena_lib.register_minigame("skywars", {
|
||||||
|
|
||||||
|
|
||||||
dofile(minetest.get_modpath("skywars") .. "/chatcmdbuilder.lua")
|
dofile(minetest.get_modpath("skywars") .. "/chatcmdbuilder.lua")
|
||||||
|
dofile(minetest.get_modpath("skywars") .. "/nodes.lua")
|
||||||
dofile(minetest.get_modpath("skywars") .. "/utils.lua")
|
dofile(minetest.get_modpath("skywars") .. "/utils.lua")
|
||||||
dofile(minetest.get_modpath("skywars") .. "/_map_handler/map_utils.lua")
|
dofile(minetest.get_modpath("skywars") .. "/_map_handler/map_utils.lua")
|
||||||
dofile(minetest.get_modpath("skywars") .. "/_map_handler/map_reset.lua")
|
dofile(minetest.get_modpath("skywars") .. "/_map_handler/map_reset.lua")
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
minetest.register_node("skywars:barrier", {
|
||||||
|
description = skywars.T("Unbreakable without skywars_admin priv transparent node"),
|
||||||
|
drawtype = "airlike",
|
||||||
|
paramtype = "light",
|
||||||
|
sunlight_propagates = true,
|
||||||
|
air_equivalent = true,
|
||||||
|
drop = "",
|
||||||
|
inventory_image = "sw_node_barrier.png",
|
||||||
|
wield_image = "sw_node_barrier.png",
|
||||||
|
groups = {oddly_breakable_by_hand = 2},
|
||||||
|
can_dig = function(pos, player)
|
||||||
|
if minetest.get_player_privs(player:get_player_name()).skywars_admin then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
minetest.register_node("skywars:test_node", {
|
||||||
|
description = "Skywars test node, don't use it!",
|
||||||
|
groups = {crumbly=1, soil=1, dig_immediate=3},
|
||||||
|
tiles = {"sw_node_test.png"},
|
||||||
|
})
|
|
@ -27,7 +27,7 @@ end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- reordering the corners positions so that min_pos is smaller than max_pos
|
-- Reordering the corners positions so that min_pos is smaller than max_pos.
|
||||||
function skywars.reorder_positions(min_pos, max_pos)
|
function skywars.reorder_positions(min_pos, max_pos)
|
||||||
local temp
|
local temp
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue