@@ -242,6 +242,28 @@ partial void OnAddonTitleChanged(string value)
242
242
243
243
[ ObservableProperty ]
244
244
private string ? _pathToAddonFolder ;
245
+ partial void OnPathToAddonFolderChanged ( string ? value )
246
+ {
247
+ if ( value is null )
248
+ {
249
+ return ;
250
+ }
251
+
252
+ if ( ! Directory . Exists ( value ) )
253
+ {
254
+ ErrorText = "Folder doesn't exist" ;
255
+ return ;
256
+ }
257
+
258
+ ErrorText = null ;
259
+
260
+ var addonJson = Path . Combine ( value , "addon.json" ) ;
261
+
262
+ if ( File . Exists ( addonJson ) )
263
+ {
264
+ LoadJson ( addonJson ) ;
265
+ }
266
+ }
245
267
246
268
[ ObservableProperty ]
247
269
private string ? _gameCrc ;
@@ -296,12 +318,12 @@ private async Task SelectAddonFolder()
296
318
297
319
PathToAddonFolder = folders [ 0 ] . Path . LocalPath ;
298
320
299
- var addonJson = Path . Combine ( PathToAddonFolder , "addon.json" ) ;
321
+ // var addonJson = Path.Combine(PathToAddonFolder, "addon.json");
300
322
301
- if ( File . Exists ( addonJson ) )
302
- {
303
- LoadJson ( addonJson ) ;
304
- }
323
+ // if (File.Exists(addonJson))
324
+ // {
325
+ // LoadJson(addonJson);
326
+ // }
305
327
}
306
328
307
329
[ RelayCommand ]
@@ -522,6 +544,13 @@ private void CreateZip()
522
544
{
523
545
try
524
546
{
547
+ if ( string . IsNullOrWhiteSpace ( PathToAddonFolder ) &&
548
+ ! Directory . Exists ( PathToAddonFolder ) )
549
+ {
550
+ ErrorText = "Choose addon folder" ;
551
+ return ;
552
+ }
553
+
525
554
var addon = CreateJson ( ) ;
526
555
var jsonStr = JsonSerializer . Serialize ( addon , AddonManifestContext . Default . AddonDto ) ;
527
556
@@ -606,11 +635,6 @@ private AddonDto CreateJson()
606
635
: IsDukeWTSelected ? DukeVersionEnum . Duke3D_WT
607
636
: null ;
608
637
609
- if ( string . IsNullOrWhiteSpace ( PathToAddonFolder ) &&
610
- ! Directory . Exists ( PathToAddonFolder ) )
611
- {
612
- ThrowHelper . Exception ( "Choose existing addon folder" ) ;
613
- }
614
638
if ( string . IsNullOrWhiteSpace ( AddonTitle ) )
615
639
{
616
640
ThrowHelper . Exception ( "Select addon title" ) ;
@@ -788,6 +812,13 @@ private void SaveJson()
788
812
{
789
813
try
790
814
{
815
+ if ( string . IsNullOrWhiteSpace ( PathToAddonFolder ) &&
816
+ ! Directory . Exists ( PathToAddonFolder ) )
817
+ {
818
+ ErrorText = "Choose addon folder" ;
819
+ return ;
820
+ }
821
+
791
822
var addon = CreateJson ( ) ;
792
823
var jsonStr = JsonSerializer . Serialize ( addon , AddonManifestContext . Default . AddonDto ) ;
793
824
0 commit comments