diff --git a/locale/en/ic.cfg b/locale/en/ic.cfg index 3818a7c8..2e1cefdc 100644 --- a/locale/en/ic.cfg +++ b/locale/en/ic.cfg @@ -1,9 +1,11 @@ [ic] transfer_car=Transfer Car car_settings=Car Settings -allow_anyone=Allow everyone to enter: ON +allow_anyone=Allow everyone to enter: On +auto_upgrade=Auto Upgrade Vehicle: On add_player=Add Player off=Off +on=On select_player=Select Player discard=Discard save=Save diff --git a/maps/mountain_fortress_v3/ic/functions.lua b/maps/mountain_fortress_v3/ic/functions.lua index 000b2bdb..4b7ac601 100644 --- a/maps/mountain_fortress_v3/ic/functions.lua +++ b/maps/mountain_fortress_v3/ic/functions.lua @@ -40,7 +40,8 @@ local function get_trusted_system(player) players = { [player.name] = true }, - allow_anyone = 'right' + allow_anyone = 'right', + auto_upgrade = 'left' } end @@ -168,6 +169,18 @@ local function get_player_surface(player) return false end +local function get_player_entity_upgrade_surface(player) + local cars = IC.get('cars') + for k, car in pairs(cars) do + if car.owner == player.index and type(car.entity) == 'boolean' then + return car.name, true + elseif car.owner == player.index then + return car.name, false + end + end + return false, false +end + local function get_player_entity(player) local cars = IC.get('cars') for k, car in pairs(cars) do @@ -1051,10 +1064,15 @@ function Public.create_car(event) return player.print('Multi-surface is not supported at the moment.', Color.warning) end + local storage = get_trusted_system(player) + if get_owner_car_name(player) == 'car' and ce.name == 'tank' or get_owner_car_name(player) == 'car' and ce.name == 'spidertron' or get_owner_car_name(player) == 'tank' and ce.name == 'spidertron' then + if storage.auto_upgrade and storage.auto_upgrade == 'right' then + return + end upgrade_surface(player, ce) render_owner_text(renders, player, ce) player.print('Your car-surface has been upgraded!', Color.success) diff --git a/maps/mountain_fortress_v3/ic/gui.lua b/maps/mountain_fortress_v3/ic/gui.lua index d0b2d2d9..e08b35f8 100644 --- a/maps/mountain_fortress_v3/ic/gui.lua +++ b/maps/mountain_fortress_v3/ic/gui.lua @@ -26,6 +26,7 @@ local main_toolbar_name = Gui.uid_name() local add_player_name = Gui.uid_name() local transfer_car_name = Gui.uid_name() local allow_anyone_to_enter_name = Gui.uid_name() +local auto_upgrade_name = Gui.uid_name() local kick_player_name = Gui.uid_name() local destroy_surface_name = Gui.uid_name() @@ -48,7 +49,8 @@ local function create_player_table(player) players = { [player.name] = true }, - allow_anyone = 'right' + allow_anyone = 'right', + auto_upgrade = 'left' } end return trust_system[player.index] @@ -376,6 +378,17 @@ local function draw_main_frame(player) right_label_caption = ({'ic.off'}) } ) + local auto_upgrade = + inside_table.add( + { + type = 'switch', + name = auto_upgrade_name, + switch_state = player_list.auto_upgrade, + allow_none_state = false, + left_label_caption = ({'ic.auto_upgrade'}), + right_label_caption = ({'ic.off'}) + } + ) local player_table = inside_table.add { @@ -429,6 +442,7 @@ local function draw_main_frame(player) transfer_car_frame = transfer_car_frame, destroy_surface_frame = destroy_surface_frame, allow_anyone_to_enter = allow_anyone_to_enter, + auto_upgrade = auto_upgrade, player = player } draw_players(data) @@ -596,6 +610,35 @@ Gui.on_click( end ) +Gui.on_click( + auto_upgrade_name, + function(event) + local player = event.player + if not player or not player.valid or not player.character then + return + end + + local player_list = create_player_table(player) + + local screen = player.gui.screen + local frame = screen[main_frame_name] + + if frame and frame.valid then + if player_list.auto_upgrade == 'right' then + player_list.auto_upgrade = 'left' + player.print('[IC] Auto upgrade is now enabled!', Color.success) + else + player_list.auto_upgrade = 'right' + player.print('[IC] Auto upgrade is now disabled!', Color.warning) + end + + if player.gui.screen[main_frame_name] then + toggle(player, true) + end + end + end +) + Gui.on_click( save_add_player_button_name, function(event)