modsvaskr 0.1.9 → 0.1.10
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/lib/modsvaskr/game.rb +24 -0
- data/lib/modsvaskr/games/skyrim_se.rb +15 -1
- data/lib/modsvaskr/tests_suites/npc.rb +13 -3
- data/lib/modsvaskr/tests_suites/npc_head.rb +13 -3
- data/lib/modsvaskr/ui.rb +0 -1
- data/lib/modsvaskr/version.rb +1 -1
- data/lib/modsvaskr/xedit.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8d247b6d5b73f10426d5769b031213c408bc6ac8c390baea5e9f6a1b0af7495d
|
4
|
+
data.tar.gz: 97d98a1e6d93088e7a63f9a07ac31b01c3ed8e0aba4e4159a842fff9af8efaae
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d17a2422af5a5428266c5586887ab5210e0ad7026c8c07fced929b2731aafb07c97bad7c4c8be5886cac8d19ae7e51e1f3f386da6d00d64536e0032bde004e76
|
7
|
+
data.tar.gz: 775b864997420ad4e78af51e4511d0ad579a236781cbc30c1f1c577992ae3f486d3ab40f701acf4937d51b2bf4397d02fb54c409d37965a03596e0acc57ad799
|
data/lib/modsvaskr/game.rb
CHANGED
@@ -174,6 +174,30 @@ module Modsvaskr
|
|
174
174
|
end
|
175
175
|
end
|
176
176
|
|
177
|
+
# Get the load order.
|
178
|
+
# Keep a cache of it.
|
179
|
+
#
|
180
|
+
# Result::
|
181
|
+
# * Array<String>: List of all active plugins, including masters
|
182
|
+
def get_load_order
|
183
|
+
@cache_load_order = load_order unless defined?(@cache_load_order)
|
184
|
+
@cache_load_order
|
185
|
+
end
|
186
|
+
|
187
|
+
# Get the mod and base id corresponding to a given form id.
|
188
|
+
# Uses load order to determine it.
|
189
|
+
#
|
190
|
+
# Parameters::
|
191
|
+
# * *form_id* (String or Integer): Form ID, either as hexadecimal string, or numercial value
|
192
|
+
# Result::
|
193
|
+
# * String: Plugin name
|
194
|
+
# * Integer: Base form id, independent from the load order
|
195
|
+
def decode_form_id(form_id)
|
196
|
+
form_id = form_id.to_i(16) if form_id.is_a?(String)
|
197
|
+
[get_load_order[form_id / 16_777_216], form_id % 16_777_216]
|
198
|
+
end
|
199
|
+
|
200
|
+
|
177
201
|
end
|
178
202
|
|
179
203
|
end
|
@@ -37,7 +37,9 @@ module Modsvaskr
|
|
37
37
|
'SkyrimSE.exe'
|
38
38
|
end
|
39
39
|
|
40
|
-
#
|
40
|
+
# Ordered list of default esps present in the game (the ones in the Data folder when 0 mod is being used).
|
41
|
+
# The list is ordered according to the game's load order.
|
42
|
+
# [API] - This method is mandatory
|
41
43
|
#
|
42
44
|
# Result::
|
43
45
|
# * Array<String>: List of esp/esm/esl base file names.
|
@@ -51,6 +53,18 @@ module Modsvaskr
|
|
51
53
|
]
|
52
54
|
end
|
53
55
|
|
56
|
+
# Get the load order.
|
57
|
+
# [API] - This method is mandatory
|
58
|
+
#
|
59
|
+
# Result::
|
60
|
+
# * Array<String>: List of all active plugins, including masters
|
61
|
+
def load_order
|
62
|
+
game_esps +
|
63
|
+
File.read("#{ENV['USERPROFILE']}/AppData/Local/Skyrim Special Edition/plugins.txt").split("\n").map do |line|
|
64
|
+
line =~ /^\*(.+)$/ ? $1.downcase : nil
|
65
|
+
end.compact
|
66
|
+
end
|
67
|
+
|
54
68
|
private
|
55
69
|
|
56
70
|
# Install SKSE64 corresponding to our game
|
@@ -25,9 +25,19 @@ module Modsvaskr
|
|
25
25
|
tests = {}
|
26
26
|
@game.xedit.run_script('DumpInfo', only_once: true)
|
27
27
|
@game.xedit.parse_csv('Modsvaskr_ExportedDumpInfo') do |row|
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
if row[1].downcase == 'npc_'
|
29
|
+
# Know from which mod this ID comes from
|
30
|
+
plugin, base_form_id = @game.decode_form_id(row[2])
|
31
|
+
test_name = "#{plugin}/#{base_form_id}"
|
32
|
+
if tests.key?(test_name)
|
33
|
+
# Add the name of the mod to the description, so that we know which mod modifies which NPC.
|
34
|
+
tests[test_name][:name] << "/#{row[0].downcase}"
|
35
|
+
else
|
36
|
+
tests[test_name] = {
|
37
|
+
name: "Take screenshot of #{row[3]} - #{row[0].downcase}"
|
38
|
+
}
|
39
|
+
end
|
40
|
+
end
|
31
41
|
end
|
32
42
|
tests
|
33
43
|
end
|
@@ -25,9 +25,19 @@ module Modsvaskr
|
|
25
25
|
tests = {}
|
26
26
|
@game.xedit.run_script('DumpInfo', only_once: true)
|
27
27
|
@game.xedit.parse_csv('Modsvaskr_ExportedDumpInfo') do |row|
|
28
|
-
|
29
|
-
|
30
|
-
|
28
|
+
if row[1].downcase == 'npc_'
|
29
|
+
# Know from which mod this ID comes from
|
30
|
+
plugin, base_form_id = @game.decode_form_id(row[2])
|
31
|
+
test_name = "#{plugin}/#{base_form_id}"
|
32
|
+
if tests.key?(test_name)
|
33
|
+
# Add the name of the mod to the description, so that we know which mod modifies which NPC.
|
34
|
+
tests[test_name][:name] << "/#{row[0].downcase}"
|
35
|
+
else
|
36
|
+
tests[test_name] = {
|
37
|
+
name: "Take head screenshot of #{row[3]} - #{row[0].downcase}"
|
38
|
+
}
|
39
|
+
end
|
40
|
+
end
|
31
41
|
end
|
32
42
|
tests
|
33
43
|
end
|
data/lib/modsvaskr/ui.rb
CHANGED
data/lib/modsvaskr/version.rb
CHANGED
data/lib/modsvaskr/xedit.rb
CHANGED
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.10
|
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-
|
11
|
+
date: 2021-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses_menu
|