z_mirror/CursorEnhancements

git clone https://git.raiguard.me/z_mirror/CursorEnhancements

raiguardCleanup326e445

proxies
1.5 KiB48 linesraw
1local player_data = {}
2
3local constants = require("constants")
4
5local util = require("scripts.util")
6
7function player_data.init(player_index, player)
8  global.players[player_index] = {
9    flags = {
10      building = false
11    },
12    last_item = nil,
13    main_inventory = player.get_main_inventory(),
14    settings = {}
15  }
16end
17
18function player_data.update_settings(player, player_table)
19  local player_settings = player.mod_settings
20  local saved_settings = player_table.settings
21  for setting_name, save_as in pairs(constants.setting_name_mapping) do
22    saved_settings[save_as] = player_settings[setting_name].value
23  end
24end
25
26function player_data.update_personal_overrides(player, player_table)
27  -- retrieve and parse personal overrides
28  local overrides = game.json_to_table(player.mod_settings['cen-personal-registry-overrides'].value)
29  if not overrides or type(overrides) == "string" then
30    player.print{'cen-message.invalid-personal-overrides-format'}
31    overrides = {}
32  end
33  -- convert to registry and save
34  player_table.registry = util.apply_overrides({}, overrides, game.item_prototypes)
35end
36
37function player_data.refresh(player, player_table)
38  player_data.update_settings(player, player_table)
39  player_data.update_personal_overrides(player, player_table)
40end
41
42function player_data.ensure_valid_inventory(player, player_table)
43  if not player_table.main_inventory or not player_table.main_inventory.valid then
44    player_table.main_inventory = player.get_main_inventory()
45  end
46end
47
48return player_data