modsvaskr 0.1.8 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
- module Modsvaskr
2
-
3
- VERSION = '0.1.8'
4
-
5
- end
1
+ module Modsvaskr
2
+
3
+ VERSION = '0.1.12'
4
+
5
+ end
@@ -1,52 +1,65 @@
1
- require 'modsvaskr/run_cmd'
2
-
3
- module Modsvaskr
4
-
5
- # Helper to use an instance of xEdit
6
- class Xedit
7
-
8
- include RunCmd
9
-
10
- # String: Installation path
11
- attr_reader :install_path
12
-
13
- # Constructor
14
- #
15
- # Parameters::
16
- # * *install_path* (String): Installation path of xEdit
17
- # * *game_path* (String): Installation path of the game to use xEdit on
18
- def initialize(install_path, game_path)
19
- @install_path = install_path
20
- @game_path = game_path
21
- # Set of scripts that have been run
22
- @runs = {}
23
- end
24
-
25
- # Run an xEdit script
26
- #
27
- # Parameters::
28
- # * *script* (String): Script name, as defined in xedit_scripts (without the Modsvaskr_ prefix and .pas suffix)
29
- # * *only_once* (Boolean): If true, then make sure this script is run only once by instance [default: false]
30
- def run_script(script, only_once: false)
31
- if !only_once || !@runs.key?(script)
32
- FileUtils.cp "#{__dir__}/../../xedit_scripts/Modsvaskr_#{script}.pas", "#{@install_path}/Edit Scripts/Modsvaskr_#{script}.pas"
33
- run_cmd(
34
- {
35
- dir: @install_path,
36
- exe: 'SSEEdit.exe'
37
- },
38
- args: %W[
39
- -IKnowWhatImDoing
40
- -AllowMasterFilesEdit
41
- -SSE
42
- -autoload
43
- -script:"Modsvaskr_#{script}.pas"
44
- ]
45
- )
46
- @runs[script] = nil
47
- end
48
- end
49
-
50
- end
51
-
52
- end
1
+ require 'csv'
2
+ require 'modsvaskr/encoding'
3
+ require 'modsvaskr/run_cmd'
4
+
5
+ module Modsvaskr
6
+
7
+ # Helper to use an instance of xEdit
8
+ class Xedit
9
+
10
+ include RunCmd
11
+
12
+ # String: Installation path
13
+ attr_reader :install_path
14
+
15
+ # Constructor
16
+ #
17
+ # Parameters::
18
+ # * *install_path* (String): Installation path of xEdit
19
+ # * *game_path* (String): Installation path of the game to use xEdit on
20
+ def initialize(install_path, game_path)
21
+ @install_path = install_path
22
+ @game_path = game_path
23
+ # Set of scripts that have been run
24
+ @runs = {}
25
+ end
26
+
27
+ # Run an xEdit script
28
+ #
29
+ # Parameters::
30
+ # * *script* (String): Script name, as defined in xedit_scripts (without the Modsvaskr_ prefix and .pas suffix)
31
+ # * *only_once* (Boolean): If true, then make sure this script is run only once by instance [default: false]
32
+ def run_script(script, only_once: false)
33
+ return if only_once && @runs.key?(script)
34
+
35
+ FileUtils.cp "#{__dir__}/../../xedit_scripts/Modsvaskr_#{script}.pas", "#{@install_path}/Edit Scripts/Modsvaskr_#{script}.pas"
36
+ run_cmd(
37
+ {
38
+ dir: @install_path,
39
+ exe: 'SSEEdit.exe'
40
+ },
41
+ args: %W[
42
+ -IKnowWhatImDoing
43
+ -AllowMasterFilesEdit
44
+ -SSE
45
+ -autoload
46
+ -script:"Modsvaskr_#{script}.pas"
47
+ ]
48
+ )
49
+ @runs[script] = nil
50
+ end
51
+
52
+ # Parse a CSV that has been dumped by a previous run of xEdit
53
+ #
54
+ # Parameters::
55
+ # * *csv* (String): Name of the CSV file (from Edit Scripts), without .csv
56
+ # * *row_block* (Proc): Code called for each CSV row
57
+ # Parameters::
58
+ # * *row* (Array<String>): CSV row
59
+ def parse_csv(csv, &row_block)
60
+ CSV.parse(Encoding.to_utf_8(File.read("#{install_path}/Edit Scripts/#{csv}.csv", mode: 'rb'))).each(&row_block)
61
+ end
62
+
63
+ end
64
+
65
+ end
@@ -20,6 +20,9 @@ end;
20
20
  function Process(e: IInterface): integer;
21
21
  var
22
22
  worldElement : IwbContainer;
23
+ modFile : IwbFile;
24
+ idxMaster : integer;
25
+ masters : string;
23
26
  begin
24
27
  // AddMessage('Processing: ' + FullPath(e));
25
28
  if Signature(e) = 'CELL' then begin
@@ -55,6 +58,16 @@ begin
55
58
  IntToHex(FixedFormID(e), 8) + ',' +
56
59
  GetElementEditValues(e, 'FULL')
57
60
  );
61
+ end else if (Signature(e) = 'TES4') then begin
62
+ modFile := GetFile(e);
63
+ masters := '';
64
+ for idxMaster := 0 to MasterCount(modFile) - 1 do
65
+ masters := masters + ',' + GetFileName(MasterByIndex(modFile, idxMaster));
66
+ slCsv.Add(
67
+ '"' + GetFileName(GetFile(e)) + '",' +
68
+ Signature(e) + ',' +
69
+ masters
70
+ );
58
71
  end;
59
72
  Result := 0;
60
73
  end;
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: modsvaskr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Muriel Salvan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-20 00:00:00.000000000 Z
11
+ date: 2021-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curses_menu
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.10'
47
+ version: '1.12'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.10'
54
+ version: '1.12'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,28 +72,56 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '3.11'
75
+ version: '3.14'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '3.11'
82
+ version: '3.14'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: sem_ver_components
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0.0'
89
+ version: '0.3'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0.0'
96
+ version: '0.3'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.19'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.19'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rubocop-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '2.4'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '2.4'
97
125
  description: Command-line UI handling a full Mods' ecosystem for Bethesda's games.
98
126
  email:
99
127
  - muriel@x-aeon.com
@@ -104,6 +132,7 @@ extra_rdoc_files: []
104
132
  files:
105
133
  - bin/modsvaskr
106
134
  - lib/modsvaskr/config.rb
135
+ - lib/modsvaskr/encoding.rb
107
136
  - lib/modsvaskr/game.rb
108
137
  - lib/modsvaskr/games/skyrim_se.rb
109
138
  - lib/modsvaskr/in_game_tests_runner.rb
@@ -132,14 +161,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
161
  requirements:
133
162
  - - ">="
134
163
  - !ruby/object:Gem::Version
135
- version: '0'
164
+ version: '2.6'
136
165
  required_rubygems_version: !ruby/object:Gem::Requirement
137
166
  requirements:
138
167
  - - ">="
139
168
  - !ruby/object:Gem::Version
140
169
  version: '0'
141
170
  requirements: []
142
- rubygems_version: 3.0.3
171
+ rubygems_version: 3.0.3.1
143
172
  signing_key:
144
173
  specification_version: 4
145
174
  summary: 'Stronghold for mods acting like companions: The Modsvaskr'