From 89c7571db48e4e978cb29e69174a440fb3150367 Mon Sep 17 00:00:00 2001 From: Nathan Salapat Date: Fri, 20 May 2022 22:01:30 -0500 Subject: [PATCH] Map_ID updates to new system so stats work. --- mods/furniture/news.lua | 3 +++ mods/lobby/buttons.lua | 31 +++++++++++++++++++++++-------- mods/lobby/functions.lua | 9 +++++++++ mods/lobby/tdc.lua | 1 - mods/vents/init.lua | 4 ++-- 5 files changed, 37 insertions(+), 11 deletions(-) diff --git a/mods/furniture/news.lua b/mods/furniture/news.lua index 7c660df..96af812 100644 --- a/mods/furniture/news.lua +++ b/mods/furniture/news.lua @@ -61,6 +61,9 @@ minetest.register_node('furniture:news_stand', { }) local news = [[ + 5/20/22 +Claimed buttons can be updated to a new ID by editing the button. Stats will also be migrated over! + 5/18/22 Vents have been added. Only traitors can use then when playing a level. diff --git a/mods/lobby/buttons.lua b/mods/lobby/buttons.lua index 3684ed4..7a0d35c 100644 --- a/mods/lobby/buttons.lua +++ b/mods/lobby/buttons.lua @@ -80,7 +80,7 @@ minetest.register_node('lobby:button_0', { light_source = 5, after_place_node = function(pos, placer) local meta = minetest.get_meta(pos) - meta:set_string('infotext', 'Unconfigured/Claimed button') + meta:set_string('infotext', 'Unconfigured/Unclaimed button') meta:set_string('name', '') meta:set_string('player_count', '') meta:set_string('xp', '') @@ -139,12 +139,7 @@ minetest.register_node('lobby:button_0', { if lobby.take_xp(sender, 15) then minetest.show_formspec(player_name, 'lobby:get_started', lobby.getting_started) meta:set_string('owner', player_name) - local i = 1 - local map_id = player_name..'_'..i - while lobby.savedata.IDs[map_id] do - i = i + 1 - map_id = player_name..'_'..i - end + local map_id = lobby.create_id(player_name) lobby.savedata.IDs[map_id] = true meta:set_string('id', map_id) local pos_string = random_pos() @@ -165,6 +160,26 @@ minetest.register_node('lobby:button_0', { end if owner == player_name or minetest.check_player_privs(sender, {server = true}) then local map_id = meta:get_string('id') + if not string.find(map_id, owner) then --Using old player assigned IDs + local map_id_new = lobby.create_id(owner) + lobby.savedata.IDs[map_id_new] = true + meta:set_string('id', map_id_new) + if lobby.savedata.stats[map_id] then + local stats = lobby.savedata.stats[map_id] or {} + local stats_new = {} + stats_new.solo_play = stats.solo_play or 0 + stats_new.multi_play = stats.multi_play or 0 + stats_new.winner_traitor = stats.winner_traitor or 0 + stats_new.winner_team = stats.winner_team or 0 + stats_new.player_count = stats.player_count or 0 + stats_new.max_players = stats.max_players or 0 + lobby.savedata.stats[map_id_new] = stats_new + lobby.savedata.IDs[map_id] = nil + lobby.savedata.stats[map_id] = nil + lobby.savedata.data[map_id] = nil + end + map_id = map_id_new + end if fields.solo then meta:set_string('solo', fields.solo) elseif fields ['save'] then @@ -221,7 +236,7 @@ minetest.register_node('lobby:button_0', { end elseif fields ['discard'] then meta:set_string('owner', '') - meta:set_string('infotext', '') + meta:set_string('infotext', 'Unconfigured/Unclaimed Button') meta:set_string('id', '') meta:set_string('name', '') meta:set_string('player_count', '') diff --git a/mods/lobby/functions.lua b/mods/lobby/functions.lua index d324568..fefb4eb 100644 --- a/mods/lobby/functions.lua +++ b/mods/lobby/functions.lua @@ -301,3 +301,12 @@ function lobby.player_to_builder(player) inv:set_list('main', old_inv) end +function lobby.create_id(player_name) + local i = 1 + local map_id = player_name..'_'..i + while lobby.savedata.IDs[map_id] do + i = i + 1 + map_id = player_name..'_'..i + end + return map_id +end diff --git a/mods/lobby/tdc.lua b/mods/lobby/tdc.lua index 9190df1..2e39b92 100644 --- a/mods/lobby/tdc.lua +++ b/mods/lobby/tdc.lua @@ -503,7 +503,6 @@ tdc.actions = { local modes = ' builder, ghost, player, solo, traitor' if string.find(modes, params) then local mode = string.sub(params, 2, -1) - print (mode) local player = minetest.get_player_by_name(td_user) local player_attributes = player:get_meta() player_attributes:set_string('mode', mode) diff --git a/mods/vents/init.lua b/mods/vents/init.lua index 8382277..c934ff7 100644 --- a/mods/vents/init.lua +++ b/mods/vents/init.lua @@ -65,8 +65,8 @@ if tubelib2.version < 1.7 then error('Vents requires tubelib2 version 1.7 or newer!!!') else -- Configuration settings - vents.free_tube_placement_enabled = minetest.settings:get_bool('hyperloop_free_tube_placement_enabled', true) - vents.subnet_enabled = minetest.settings:get_bool('hyperloop_subnet_enabled', true) + vents.free_tube_placement_enabled = minetest.settings:get_bool('vents_free_tube_placement_enabled', true) + vents.subnet_enabled = minetest.settings:get_bool('vents_subnet_enabled', true) dofile(minetest.get_modpath('vents') .. '/network.lua') dofile(minetest.get_modpath('vents') .. '/data_base.lua')