BEEmod / BEE2-items

Standard Items for the BEE2.4
132 stars 46 forks source link

Backups fail if puzzles folder does not exist #4418

Closed Glartemoon closed 5 months ago

Glartemoon commented 5 months ago

BEE2 Application Version

4.44.1 64bit

BEE2 Package Version

2.4.44.0

What operating system are you running on?

Windows 10 (64bit)

Description of the bug

When trying to export bee2 saying error.

Expected behavior

I don't even know why it's happening.

Steps to reproduce

Step 1. Press "Export" in "Export Window.

Logs and Reports

+ Exception Group Traceback (most recent call last):
  |   File "trio\_core\_run.py", line 963, in __aexit__
  | trio.NonBaseMultiError: FileNotFoundError(2, 'Системе не удается найти указанный путь')
  +-+---------------- 1 ----------------
    | Traceback (most recent call last):
    |   File "app\UI.py", line 778, in export_editoritems
    |   File "app\gameMan.py", line 849, in export
    |   File "app\backup.py", line 383, in auto_backup
    |   File "app\backup.py", line 331, in find_puzzles
    | FileNotFoundError: [WinError 3] Системе не удается найти указанный путь: 'd:\\portal 2\\portal2\\puzzles\\'
    +------------------------------------

log:
[D] localisation.deco(): Add lang callback: <function _update_translations at 0x000001BE8BDE7560>, 1 total
[D] localisation.deco(): Add lang callback: <function _apply_changes at 0x000001BE8BE06F20>, 2 total
[D] BEE2.start_main(): Starting Trio loop.
[D] BEE2.app_main(): Opening nursery...
[D] BEE2.init_app(): Starting loading screen...
[D] BEE2.init_app(): Loading settings...
[I] gameMan.load(): Load game: Game(name='PORTAL 2', steamID='620', root='D:/Portal 2', mod_times={}, exported_style=None, unmarked_dlc3_vpk=False)
[I] gameMan.scan_music_locs(): PS-Mel dir: d:\Portal Stories Mel/portal_stories/pak01_dir.vpk
[I] BEE2.init_app(): Loading Packages...
[D] packages.find_packages(): Reading package "packages\abs_fizz.bee_pack"
[D] packages.find_packages(): Reading package "packages\antlines.bee_pack"
[D] packages.find_packages(): Reading package "packages\barrier_variants.bee_pack"
[D] packages.find_packages(): Reading package "packages\beemod.bee_pack"
[D] packages.find_packages(): Reading package "packages\blocks.bee_pack"
[D] packages.find_packages(): Reading package "packages\bumbleball.bee_pack"
[D] packages.find_packages(): Reading package "packages\buttons.bee_pack"
[D] packages.find_packages(): Reading package "packages\catwalk.bee_pack"
[D] packages.find_packages(): Reading package "packages\checkpoint.bee_pack"
[D] packages.find_packages(): Reading package "packages\clean_style.bee_pack"
[D] packages.find_packages(): Reading package "packages\conveyor.bee_pack"
[D] packages.find_packages(): Reading package "packages\cube_bomb.bee_pack"
[D] packages.find_packages(): Reading package "packages\cube_cleaner.bee_pack"
[D] packages.find_packages(): Reading package "packages\cube_color.bee_pack"
[D] packages.find_packages(): Reading package "packages\deathfizzler.bee_pack"
[D] packages.find_packages(): Reading package "packages\destruction_target.bee_pack"
[D] packages.find_packages(): Reading package "packages\dis_beams.bee_pack"
[D] packages.find_packages(): Reading package "packages\ditch.bee_pack"
[D] packages.find_packages(): Reading package "packages\elevator_videos.bee_pack"
[D] packages.find_packages(): Reading package "packages\fizzler_out_relay.bee_pack"
[D] packages.find_packages(): Reading package "packages\fr_fizzlers.bee_pack"
[D] packages.find_packages(): Reading package "packages\futbol.bee_pack"
[D] packages.find_packages(): Reading package "packages\geometry.bee_pack"
[D] packages.find_packages(): Reading package "packages\glass_hole.bee_pack"
[D] packages.find_packages(): Reading package "packages\hazards.bee_pack"
[D] packages.find_packages(): Reading package "packages\hmw.bee_pack"
[D] packages.find_packages(): Reading package "packages\lifeform_sensor.bee_pack"
[D] packages.find_packages(): Reading package "packages\light_tiles.bee_pack"
[D] packages.find_packages(): Reading package "packages\logic.bee_pack"
[D] packages.find_packages(): Reading package "packages\monitors.bee_pack"
[D] packages.find_packages(): Reading package "packages\music.bee_pack"
[D] packages.find_packages(): Reading package "packages\neurotoxin.bee_pack"
[D] packages.find_packages(): Reading package "packages\obs_variants.bee_pack"
[D] packages.find_packages(): Reading package "packages\oldAp.bee_pack"
[D] packages.find_packages(): Reading package "packages\overgrown.bee_pack"
[D] packages.find_packages(): Reading package "packages\p1_style.bee_pack"
[D] packages.find_packages(): Reading package "packages\paintFizzler.bee_pack"
[D] packages.find_packages(): Reading package "packages\panels.bee_pack"
[D] packages.find_packages(): Reading package "packages\pedestal_variants.bee_pack"
[D] packages.find_packages(): Reading package "packages\pellets.bee_pack"
[D] packages.find_packages(): Reading package "packages\phys_shield.bee_pack"
[D] packages.find_packages(): Reading package "packages\portal.bee_pack"
[D] packages.find_packages(): Reading package "packages\portal_onoff.bee_pack"
[D] packages.find_packages(): Reading package "packages\ret_button.bee_pack"
[D] packages.find_packages(): Reading package "packages\rex_fields.bee_pack"
[D] packages.find_packages(): Reading package "packages\rex_items.bee_pack"
[D] packages.find_packages(): Reading package "packages\rocketTurret.bee_pack"
[D] packages.find_packages(): Reading package "packages\scaffold.bee_pack"
[D] packages.find_packages(): Reading package "packages\sendificator.bee_pack"
[D] packages.find_packages(): Reading package "packages\signage.bee_pack"
[D] packages.find_packages(): Reading package "packages\standing_reclined_fizzlers.bee_pack"
[D] packages.find_packages(): Reading package "packages\tagItems.bee_pack"
[D] packages.find_packages(): Reading package "packages\tagVO.bee_pack"
[D] packages.find_packages(): Reading package "packages\tdb_csfi.bee_pack"
[D] packages.find_packages(): Reading package "packages\test_elements.bee_pack"
[D] packages.find_packages(): Reading package "packages\test_unzipped.bee_pack"
[D] packages.find_packages(): Reading package "packages\trigger_button.bee_pack"
[D] packages.find_packages(): Reading package "packages\turret_dropper.bee_pack"
[D] packages.find_packages(): Reading package "packages\vactubes.bee_pack"
[D] packages.find_packages(): Reading package "packages\voice_line.bee_pack"
[D] packages.find_packages(): Reading package "packages\wom_plates.bee_pack"
[D] packages.load_packages(): Submitted packages.
[D] loadScreen.step(): PAK: "BEE2_VOICE_LINE" = 0.247s
[D] packages.load_packages(): Parsed packages, now parsing objects.
[I] packages.load_packages(): Object counts:
Item           : 124
Music          : 53
Signage        : 49
Elevator       : 36
EditorSound    : 17
QuotePack      : 12
ConfigGroup    : 11
Style          : 8
CorridorGroup  : 8
StyleVar       : 7
SignageLegend  : 6
StyleVPK       : 5
Skybox         : 5
ItemConfig     : 1
PackList       : 1
[D] loadScreen.step(): OBJ: "VALVE_MENU_ACT_4" = 0.455s
[I] packages.parse_type(): Post-process ItemConfig objects...
[I] packages.parse_type(): Post-process Elevator objects...
[I] packages.parse_type(): Post-process EditorSound objects...
[I] packages.parse_type(): Post-process StyleVPK objects...
[I] packages.parse_type(): Post-process SignageLegend objects...
[I] packages.parse_type(): Post-process Signage objects...
[I] packages.parse_type(): Post-process Skybox objects...
[I] packages.parse_type(): Post-process Music objects...
[I] packages.parse_type(): Post-process PackList objects...
[I] packages.parse_type(): Post-process CorridorGroup objects...
[I] packages.parse_type(): Post-process QuotePack objects...
[I] packages.parse_type(): Post-process Style objects...
[D] packages.post_parse(): Inheritance path for <Style: BEE2_PORTAL_1> = [<Style: BEE2_PORTAL_1>]
[D] packages.post_parse(): Inheritance path for <Style: BEE2_OVERGROWN> = [<Style: BEE2_OVERGROWN>]
[D] packages.post_parse(): Inheritance path for <Style: BEE2_CLEAN> = [<Style: BEE2_CLEAN>]
[D] packages.post_parse(): Inheritance path for <Style: BEE2_CLEAN_ORIGINAL> = [<Style: BEE2_CLEAN_ORIGINAL>, <Style: BEE2_CLEAN>]
[D] packages.post_parse(): Inheritance path for <Style: BEE2_1950s> = [<Style: BEE2_1950s>]
[D] packages.post_parse(): Inheritance path for <Style: BEE2_1960s> = [<Style: BEE2_1960s>, <Style: BEE2_1950s>]
[D] packages.post_parse(): Inheritance path for <Style: BEE2_1980s> = [<Style: BEE2_1980s>, <Style: BEE2_1970s>, <Style: BEE2_1950s>]
[D] packages.post_parse(): Inheritance path for <Style: BEE2_1970s> = [<Style: BEE2_1970s>, <Style: BEE2_1950s>]
[I] packages.parse_type(): Post-process StyleVar objects...
[I] packages.parse_type(): Post-process ConfigGroup objects...
[W] (BEE2_SIGNAGE:ITEM_BEE2_SIGNAGE_ANTLINE) item.parse_item_folder(): Item ID "ITEM_BEE2_SIGNAGE_ANTLINE" does not match "ITEM_BEE2_SIGNAGE" in "BEE2_SIGNAGE:items/sign/editoritems.txt"! Info.txt ID will override, update editoritems!
[I] packages.parse_type(): Post-process Item objects...
[I] item.post_parse(): Allocating styled items...
[D] localisation.deco(): Add lang callback: <bound method SelectorWin._update_translations of <SelectorWin "skyboxes">>, 3 total
[D] localisation.deco(): Add lang callback: <bound method SelectorWin._update_translations of <SelectorWin "voicelines">>, 4 total
[D] localisation.deco(): Add lang callback: <bound method SelectorWin._update_translations of <SelectorWin "styles">>, 5 total
[D] localisation.deco(): Add lang callback: <bound method SelectorWin._update_translations of <SelectorWin "elevators">>, 6 total
[I] sound.load(): Loading sound "select" -> D:\BEE2_v4.44.1_win64\sounds\rollover.ogg
[I] sound.load(): Loading sound "add" -> D:\BEE2_v4.44.1_win64\sounds\increment.ogg
[I] sound.load(): Loading sound "config" -> D:\BEE2_v4.44.1_win64\sounds\reconfig.ogg
[I] sound.load(): Loading sound "subtract" -> D:\BEE2_v4.44.1_win64\sounds\decrement.ogg
[I] sound.load(): Loading sound "connect" -> D:\BEE2_v4.44.1_win64\sounds\connection_made.ogg
[I] sound.load(): Loading sound "disconnect" -> D:\BEE2_v4.44.1_win64\sounds\connection_destroyed.ogg
[I] sound.load(): Loading sound "expand" -> D:\BEE2_v4.44.1_win64\sounds\extrude.ogg
[I] sound.load(): Loading sound "delete" -> D:\BEE2_v4.44.1_win64\sounds\collapse.ogg
[I] sound.load(): Loading sound "error" -> D:\BEE2_v4.44.1_win64\sounds\error.ogg
[I] sound.load(): Loading sound "contract" -> D:\BEE2_v4.44.1_win64\sounds\carve.ogg
[I] sound.load(): Loading sound "raise_1" -> D:\BEE2_v4.44.1_win64\sounds\panel_raise_01.ogg
[I] sound.load(): Loading sound "raise_2" -> D:\BEE2_v4.44.1_win64\sounds\panel_raise_02.ogg
[I] sound.load(): Loading sound "raise_3" -> D:\BEE2_v4.44.1_win64\sounds\panel_raise_03.ogg
[I] sound.load(): Loading sound "lower_1" -> D:\BEE2_v4.44.1_win64\sounds\panel_lower_01.ogg
[I] sound.load(): Loading sound "lower_2" -> D:\BEE2_v4.44.1_win64\sounds\panel_lower_02.ogg
[I] sound.load(): Loading sound "lower_3" -> D:\BEE2_v4.44.1_win64\sounds\panel_lower_03.ogg
[I] sound.load(): Loading sound "move" -> D:\BEE2_v4.44.1_win64\sounds\reconfig.ogg
[I] sound.load(): Loading sound "swap" -> D:\BEE2_v4.44.1_win64\sounds\extrude.ogg
[D] localisation.find_basemodui(): Checking lang "d:\portal 2\portal2_dlc2\resource\basemodui_russian.txt"
[D] loadScreen.step(): UI: "package_load" = 0.325s
[I] BEE2.init_app(): Done!
[I] BEE2.init_app(): Initialising UI...
[I] gameMan.cache_invalid(): Need to extract - package counts inconsistent!
[D] loadScreen.step(): UI: "preview" = 0.192s
[I] paletteLoader.load_palettes(): Loading builtin "EMPTY"
[I] paletteLoader.load_palettes(): Loading builtin "PORTAL2"
[I] paletteLoader.load_palettes(): Loading builtin "BEEMOD"
[I] paletteLoader.load_palettes(): Loading builtin "P2_COLLAPSED"
[I] paletteLoader.load_palettes(): Loading builtin "APTAG"
[I] paletteLoader.load_palettes(): Loading "2440898723377756315.bee2_palette"
[I] paletteLoader.load_palettes(): Loading "3641608660431892091.bee2_palette"
[I] paletteLoader.load_palettes(): Loading "4166449805971387656.bee2_palette"
[I] paletteLoader.load_palettes(): Loading "4696941442755537893.bee2_palette"
[I] paletteLoader.load_palettes(): Loading "8620958249782466430.bee2_palette"
[D] localisation.deco(): Add lang callback: <bound method PaletteUI.update_state of <app.paletteUI.PaletteUI object at 0x000001BE90DFD990>>, 7 total
[I] gameMan.cache_invalid(): Need to extract - package counts inconsistent!
[D] localisation.deco(): Add lang callback: <bound method SelectorWin._update_translations of <SelectorWin "music_base">>, 8 total
[D] localisation.deco(): Add lang callback: <bound method SelectorWin._update_translations of <SelectorWin "music_tbeam">>, 9 total
[D] localisation.deco(): Add lang callback: <bound method SelectorWin._update_translations of <SelectorWin "music_bounce">>, 10 total
[D] localisation.deco(): Add lang callback: <bound method SelectorWin._update_translations of <SelectorWin "music_speed">>, 11 total
[D] loadScreen.step(): UI: "options" = 0.609s
[D] localisation.deco(): Add lang callback: <function make_pane.<locals>.update_selector at 0x000001BE914CB880>, 12 total
[D] localisation.deco(): Add lang callback: <function make_widgets.<locals>.set_tab_names at 0x000001BE914CA2A0>, 13 total
[D] localisation.deco(): Add lang callback: <function make_map_widgets.<locals>.update_model_values at 0x000001BE8D2D1260>, 14 total
[D] localisation.deco(): Add lang callback: <function init_widgets.<locals>.set_tab_names at 0x000001BE914FA5C0>, 15 total
[I] item_search.rebuild_database(): Updating search database...
[I] item_search.rebuild_database(): Computed 326 tags.
[I] BEE2.init_app(): UI initialised!
[E] img._load_file(): "bee2_old_ap:items/50s/observation_room.png" does not exist!
[I] gameMan.export(): --------------------
[I] gameMan.export(): Exporting Items and Style for "PORTAL 2"!
[I] gameMan.export(): Style = BEE2_1970s
[I] gameMan.export(): <class 'packages.music.Music'> = {<MusicChannel.BASE: 'base'>: <Music VALVE_REUNION_PART_2>, <MusicChannel.TBEAM: 'tbeam'>: <Music VALVE_CAUSE_SCIENCE_FUNNEL>, <MusicChannel.BOUNCE: 'bouncegel'>: <Music VALVE_GEL_REUNION>, <MusicChannel.SPEED: 'speedgel'>: <Music VALVE_GEL_REUNION>}
[I] gameMan.export(): <class 'packages.skybox.Skybox'> = BEE2_SPHERE_INTERIOR
[I] gameMan.export(): <class 'packages.quote_pack.QuotePack'> = BEE2_CAVE_70s
[I] gameMan.export(): <class 'packages.elevator.Elevator'> = None
[I] gameMan.export(): <class 'packages.item.Item'> = {'item_button_pedestal': {0: (0, 0)}, 'item_button_floor': {0: (1, 0)}, 'item_cube': {0: (2, 0)}, 'item_tbeam': {0: (3, 0)}, 'item_catapult': {0: (0, 1)}, 'item_panel_stairs': {0: (1, 1)}, 'item_light_panel': {0: (2, 1)}, 'item_barrier_hazard': {0: (3, 1)}, 'item_light_bridge': {0: (0, 2)}, 'item_piston_platform': {0: (1, 2)}, 'item_rail_platform': {0: (2, 2)}, 'item_laser_emitter_center': {0: (3, 2)}, 'item_laser_catcher_center': {0: (0, 3)}, 'item_laser_relay_center': {0: (1, 3)}, 'item_barrier': {0: (2, 3)}, 'item_panel_clear': {0: (3, 3)}, 'item_panel_angled': {0: (0, 4)}, 'item_goo': {0: (1, 4)}, 'item_turret': {0: (2, 4)}, 'item_bee2_vactube': {2: (3, 4)}, 'item_high_energy_pellet_catcher': {0: (0, 5)}, 'item_high_energy_pellet_emitter': {0: (1, 5)}, 'item_bee2_scaffold_pist': {0: (2, 5)}, 'item_tspen_logic_delayer': {0: (3, 5)}, 'item_tspen_flip_flop': {0: (0, 6)}, 'item_bee2_angled_block': {1: (1, 6)}, 'item_bee2_partial_flat_block': {0: (2, 6)}, 'door': {0: (3, 6)}, 'item_rex_pellet_field': {0: (0, 7)}, 'item_bee2_fizzler_out_relay': {0: (1, 7)}, 'item_panel_flip': {0: (2, 7)}, 'item_rex_cube_deflector': {0: (3, 7)}}
[I] gameMan.export(): <class 'packages.stylevar.StyleVar'> = {'DoorCameras': True, 'RestartOnExit': True, 'MultiverseCave': True, 'NoMidVoices': False, 'UnlockDefault': True, 'AllowGooMist': True, 'FunnelAllowSwitchedLights': True, 'EnableShapeSignageFrame': True}
[I] gameMan.export(): <class 'packages.signage.Signage'> = [('3', 'SIGN_NUM_1'), ('4', 'SIGN_NUM_2'), ('5', 'SIGN_NUM_3'), ('6', 'SIGN_NUM_4'), ('7', 'SIGN_EXIT'), ('8', 'SIGN_CUBE_DROPPER'), ('9', 'SIGN_BALL_DROPPER'), ('10', 'SIGN_REFLECT_CUBE'), ('11', 'SIGN_GOO_TOXIC'), ('12', 'SIGN_TBEAM'), ('13', 'SIGN_TBEAM_POLARITY'), ('14', 'SIGN_LASER_RELAY'), ('15', 'SIGN_TURRET'), ('16', 'SIGN_LIGHT_BRIDGE'), ('17', 'SIGN_BUTTON_BOX'), ('18', 'SIGN_PAINT_SPEED'), ('19', 'SIGN_CRUSHER'), ('20', 'SIGN_CUBE_HURT')]
[I] gameMan.export(): Should refresh: True
[I] gameMan.cache_invalid(): Need to extract - package counts inconsistent!
[I] gameMan.export(): Cache invalid - copying..
[D] loadScreen.step(): EXP: "style-conf" = 0.124s
[I] gameMan.export(): Exporting "Item"
[D] loadScreen.step(): EXP: "Item" = 0.242s
[I] gameMan.export(): Exporting "ItemConfig"
[I] gameMan.export(): Exporting "StyleVar"
[I] gameMan.export(): Exporting "Elevator"
[I] gameMan.export(): Exporting "EditorSound"
[I] gameMan.export(): Exporting "StyleVPK"
[I] packages.styleVPK.find_vpk(): Found BEE vpk: D:\Portal 2\portal2_dlc3\pak01_dir.vpk
[I] packages.styleVPK.export(): VPK to write: D:\Portal 2\portal2_dlc3\pak01_dir.vpk
[I] packages.styleVPK.export(): Sound cache: D:\Portal 2\portal2_dlc3\maps\soundcache\_master.cache
[I] packages.styleVPK.export(): Written 74 files to VPK!
[D] loadScreen.step(): EXP: "StyleVPK" = 0.301s
[I] gameMan.export(): Exporting "SignageLegend"
[I] gameMan.export(): Exporting "Signage"
[D] loadScreen.step(): EXP: "Signage" = 1.22s
[I] gameMan.export(): Exporting "Skybox"
[I] gameMan.export(): Exporting "Music"
[I] gameMan.export(): Exporting "QuotePack"
[I] quote_pack.export(): Voice conf path: C:\Users\ARTEM\AppData\Roaming\BEEMOD2\config\voice\BEE2_CAVE_70s.cfg
[I] quote_pack.export(): No normal voice config!
[I] quote_pack.export(): Voice conf path: C:\Users\ARTEM\AppData\Roaming\BEEMOD2\config\voice\MID_BEE2_CAVE_70s.cfg
[I] quote_pack.export(): No MidChamber voice config!
[I] quote_pack.export(): Voice conf path: C:\Users\ARTEM\AppData\Roaming\BEEMOD2\config\voice\RESP_BEE2_CAVE_70s.cfg
[I] quote_pack.export(): No Responses voice config!
[I] gameMan.export(): Exporting "PackList"
[I] pack_list.export(): Writing packing list!
[I] gameMan.export(): Exporting "ConfigGroup"
[I] BEE2_config.save(): Saving changes in config "C:\Users\ARTEM\AppData\Roaming\BEEMOD2\config\item_cust_configs.cfg"!
[I] gameMan.export(): Exporting "CorridorGroup"
[D] corridor.export(): No corridors defined for BEE2_1970s:sp_entry
[D] corridor.export(): No corridors defined for BEE2_1970s:sp_entry
[D] corridor.export(): No corridors defined for BEE2_1970s:sp_exit
[D] corridor.export(): No corridors defined for BEE2_1970s:sp_exit
[D] corridor.export(): No corridors defined for BEE2_1970s:coop_entry
[D] corridor.export(): No corridors defined for BEE2_1970s:coop_entry
[D] corridor.export(): No corridors defined for BEE2_1970s:coop_exit
[D] corridor.export(): No corridors defined for BEE2_1970s:coop_exit
[I] corridor.export(): Writing corridor configuration...
[I] gameMan.export(): bin/vbsp.exe: normal=Valve, backup=Valve
[I] gameMan.export(): Backing up original Windows VBSP!
[I] gameMan.export(): bin/vrad.exe: normal=Valve, backup=Valve
[I] gameMan.export(): Backing up original Windows VRAD!

Additional information

I'm use russian language, just to know.

TeamSpen210 commented 5 months ago

Looks like the Portal 2/portal2/puzzles/ folder is missing. Have you saved a puzzle before at all? Also your folder paths look rather weird, which version are you using?

Glartemoon commented 5 months ago

Fixed, i just created puzzles folder xD

пт, 19 апр. 2024 г., 07:24 Spencer Brown @.***>:

Looks like the Portal 2/portal2/puzzles/ folder is missing. Have you saved a puzzle before at all? Also your folder paths look rather weird, which version are you using?

— Reply to this email directly, view it on GitHub https://github.com/BEEmod/BEE2-items/issues/4418#issuecomment-2065732224, or unsubscribe https://github.com/notifications/unsubscribe-auth/BFIW4DGQQ2GSKZKF4DIFQ7DY6CL65AVCNFSM6AAAAABGNSWBGWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANRVG4ZTEMRSGQ . You are receiving this because you authored the thread.Message ID: @.***>