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.
- checksums.yaml +4 -4
- data/bin/modsvaskr +11 -11
- data/lib/modsvaskr/config.rb +78 -79
- data/lib/modsvaskr/encoding.rb +31 -0
- data/lib/modsvaskr/game.rb +208 -179
- data/lib/modsvaskr/games/skyrim_se.rb +106 -92
- data/lib/modsvaskr/in_game_tests_runner.rb +348 -348
- data/lib/modsvaskr/logger.rb +45 -44
- data/lib/modsvaskr/run_cmd.rb +23 -22
- data/lib/modsvaskr/tests_runner.rb +204 -205
- data/lib/modsvaskr/tests_suite.rb +70 -69
- data/lib/modsvaskr/tests_suites/exterior_cell.rb +120 -117
- data/lib/modsvaskr/tests_suites/interior_cell.rb +63 -63
- data/lib/modsvaskr/tests_suites/npc.rb +67 -39
- data/lib/modsvaskr/tests_suites/npc_head.rb +6 -10
- data/lib/modsvaskr/ui.rb +205 -205
- data/lib/modsvaskr/version.rb +5 -5
- data/lib/modsvaskr/xedit.rb +65 -52
- data/xedit_scripts/Modsvaskr_DumpInfo.pas +13 -0
- metadata +39 -10
data/lib/modsvaskr/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
module Modsvaskr
|
2
|
-
|
3
|
-
VERSION = '0.1.
|
4
|
-
|
5
|
-
end
|
1
|
+
module Modsvaskr
|
2
|
+
|
3
|
+
VERSION = '0.1.12'
|
4
|
+
|
5
|
+
end
|
data/lib/modsvaskr/xedit.rb
CHANGED
@@ -1,52 +1,65 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
@
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
#
|
28
|
-
#
|
29
|
-
#
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
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.
|
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-
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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: '
|
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'
|