Skip to content

Commit ed79ec7

Browse files
committed
additional creators and authors, better handling
1 parent 5e88bc1 commit ed79ec7

File tree

6 files changed

+6865
-1523
lines changed

6 files changed

+6865
-1523
lines changed

Manifests/UIXR.manifest

Lines changed: 1489 additions & 1493 deletions
Large diffs are not rendered by default.

Manifests/jarvik.manifest

Lines changed: 5288 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,62 @@ Aleanne, Cait, Rhedd and Ren collectively used the following which falls under C
103103
additional permission as long as the above credits and contact information
104104
are included.
105105

106-
Redtreespirit said the following of Nomad's work which falls under the CC-BY-SA:
106+
Redtreespirit said the following of Nomad's work which falls under CC-BY-SA:
107107

108108
Nomad is no longer reachable, so you're welcome to contact me with any questions.
109109
All meshes and textures by Nomad.
110110
My OKs: You are welcome to use the meshes in any Morrowind or TESCS project.
111111

112+
Tom “Neuman” Oldani of Better Bodies has placed his work under CC-BY-SA:
113+
114+
Generally, I've given anyone who asks permission to use our assets, provided
115+
they say somewhere in the documentation where the assets came from.
116+
If that's what you're asking, then sure, feel free to use them.
117+
118+
Gorg & Arathrax (DarkSharp) of Better Heads used the following which falls under the CC-BY-SA license:
119+
120+
YES you can "reuse", "remake", "redistribute" etc some, all or any part of this mod.
121+
Gorg and Arathrax have asked only 2 things.
122+
* First that you give Gorg and Arathrax and any of the original texture artists credit
123+
in your readme
124+
* Second that if you alter any models in any way that you change the name of the model,
125+
if you use it exactly as is please leave the name as is.
126+
(Same request that Rhedd made concerning the reuse of his stuff)
127+
128+
Textures artists:
129+
Allerleirauh, Wormgod, Don Salus, Hellkitty, Eternum, Nomad, Mantodea, Sheikizza,
130+
Astarsis, Zuldazug, Noviere, Silaria, CanadianIce, Motoki, Arathrax, and Gorg
131+
132+
Emma and Robert (Grumpy) have released their work which fall under the CC-BY license:
133+
134+
My meshes and textures can be used freely without any conditions, only if it's modyfied
135+
the file names should be changed to avoid overwriting issues.
136+
137+
Heads - You may use these heads in your mods without asking for further permission.
138+
139+
Korana & Semtex who furthered Neuman, Gorg and DarkSharp's work under the CC-BY license:
140+
141+
Feel free to use any of these items in other projects! Permission is not needed,
142+
but I do appreciate a message letting me know...as I get tickled pink when I see
143+
any of my projects in use in other projects! Please, make sure you give the appropriate
144+
creators credit as well...and give me credit for anything of mine you used.
145+
146+
Steve "Dongle" Deffeyes wrote the following which falls under the CC-BY license:
147+
148+
You are free to use this in any Morrowind project you wish. Asking ahead is not
149+
necessary. Giving credit is not necessary, although you are welcome to if you wish.
150+
151+
If you wish to modify this in any way, ie edit the mesh or the texturing, you
152+
may do so. Please credit yourself with the final product and not me. Also please
153+
change the filenames to avoid conflicts with mods that use the unaltered files.
154+
155+
Razhkul's work falls under the CC-BY license:
156+
157+
The dragons models and all the scripts except the dragon riding
158+
script are freely distributable, you can use them in your mod, the
159+
only thing I ask is that you inform me about its use and please, not use
160+
the dragons excessively.
161+
112162
## People we are looking to make contact with
113163

114164
If you have any information leading to the following people, please create a ticket and we can

make_release.py

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -51,20 +51,17 @@ def worker(work_queue, done_queue):
5151
spinner = spinning_cursor()
5252
p = current_process()
5353
for nif_path in iter(work_queue.get, 'STOP'):
54-
sys.stdout.write("\033[K")
55-
sys.stdout.write(next(spinner))
56-
sys.stdout.write(" [{0}][{1}][{2}]".format(work_queue.qsize(), p.name, nif_path))
54+
sys.stdout.write("\r\b\033[K{0} [{1}][{2}][{3}]".format(
55+
next(spinner), work_queue.qsize(), p.name, nif_path))
5756
sys.stdout.flush()
58-
sys.stdout.write('\r\b')
5957
assets = []
6058
try:
6159
# assets.append('DEADBEEF')
6260
assets = retrieve_assets_from_nif(nif_path)
6361
except Exception:
6462
pass
65-
done_queue.put((p.name, nif_path, assets))
63+
done_queue.put((nif_path, assets))
6664
done_queue.put('STOP')
67-
print("{} finished.".format(p.name))
6865
return True
6966

7067

@@ -75,6 +72,7 @@ def main():
7572
spinner = spinning_cursor()
7673
manifest = []
7774
additional_assets = []
75+
additional_assets_nif = {}
7876

7977
# setup multi-processing job
8078
workers = 8
@@ -86,11 +84,8 @@ def main():
8684
for row in uixr_data:
8785
row_license = row.get('license').lower()
8886
if row_license == 'cc0' or row_license == 'cc-by' or row_license == 'cc-by-nc':
89-
sys.stdout.write("\033[K")
90-
sys.stdout.write(next(spinner))
91-
sys.stdout.write(" [{0}]".format(row.get('asset')))
87+
sys.stdout.write("\r\b \033[K{0} [{1}]".format(next(spinner), row.get('asset')))
9288
sys.stdout.flush()
93-
sys.stdout.write('\r\b')
9489
file_path = os.path.join(ASSET_PATH, row.get('asset'))
9590
if not os.path.exists(file_path):
9691
print("WARNING: asset not found -> {0}".format(row.get('asset')))
@@ -101,14 +96,13 @@ def main():
10196
work_queue.put(file_path)
10297

10398
# let multiprocessing parse the nifs
104-
print("Parsing NIFs for additional sub-assets: ")
99+
print("\n\nParsing NIFs for additional sub-assets: ")
105100
for i in range(workers):
106101
p = Process(target=worker, args=(work_queue, done_queue))
107102
processes.append(p)
108103
work_queue.put('STOP')
109104
p.start()
110105

111-
print("Building assets to validate.")
112106
stops = 0
113107
while True:
114108
item = done_queue.get()
@@ -118,10 +112,11 @@ def main():
118112
break
119113
else:
120114
# for worker_name, nif_name, nif_assets in iter(done_queue.get, 'STOP'):
121-
_, _, nif_assets = item
115+
nif_path, nif_assets = item
122116
additional_assets += nif_assets
117+
additional_assets_nif[nif_path] = nif_assets
123118

124-
print("Filtering assets.")
119+
print("\n\nFiltering assets.")
125120
# remove duplicates
126121
additional_assets = set(additional_assets)
127122

@@ -135,9 +130,19 @@ def main():
135130
if filename in additional_assets:
136131
additional_assets.remove(filename)
137132

138-
print("Gathering sub-assets: ")
133+
# match assets back to NIF
134+
additional_assets = list(additional_assets)
135+
for i in range(len(additional_assets)):
136+
asset = additional_assets[i]
137+
nifs_found = []
138+
for nif, assets in additional_assets_nif.items():
139+
if asset in assets:
140+
nifs_found.append(nif)
141+
additional_assets[i] = (asset, [nif.replace(ASSET_PATH, '') for nif in nifs_found])
142+
143+
print("\n\nGathering sub-assets: ")
139144
# iterate through all sub assets
140-
for nif_asset in additional_assets:
145+
for nif_asset, nifs in additional_assets:
141146
found = False
142147
na_filename, _ = os.path.splitext(nif_asset.lower())
143148
na_filename += '.*'
@@ -147,11 +152,8 @@ def main():
147152
relative_asset_path = os.path.relpath(os.path.realpath(asset_path), ASSET_PATH)
148153
if relative_asset_path in tar_ball.getnames():
149154
break # file already exists, skip
150-
sys.stdout.write("\033[K")
151-
sys.stdout.write(next(spinner))
152-
sys.stdout.write(" [{0}]".format(relative_asset_path))
155+
sys.stdout.write("\r\b\033[K{0} [{1}]".format(next(spinner), relative_asset_path))
153156
sys.stdout.flush()
154-
sys.stdout.write('\r\b')
155157
f.seek(0) # reset to beginning of csv file
156158
for row in uixr_data:
157159
if find_match(row.get('asset'), relative_asset_path):
@@ -163,12 +165,10 @@ def main():
163165
elif row_license == 'cc-by-nc':
164166
break # good to go, break
165167
else:
166-
print("WARNING: Non-CC license asset -> {0}".format(relative_asset_path))
167-
found = False
168-
tar_ball.add(asset_path, relative_asset_path)
168+
print("\nWARNING: Non-CC license asset -> {0} ({1})\n".format(
169+
relative_asset_path, nifs))
169170
if not found:
170-
print("WARNING: sub-asset not found -> {0}".format(nif_asset))
171-
171+
print("\nWARNING: sub-asset not found -> {0} ({1})\n".format(nif_asset, nifs))
172172
tar_ball.close()
173173

174174

nif_walker.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def walk_nif(nif_path, use_stdout=True):
6565
if use_stdout:
6666
print(assets_string, sep=', ', end='\n', file=stdout, flush=True)
6767
except ValueError as ex:
68-
print(" Error with {0}: {1}".format(stream.name, str(ex.args)), sep='', end='\n', file=stdout, flush=True)
68+
print("\n Error with {0}: {1}".format(stream.name, str(ex.args)), sep='', end='\n', file=stdout, flush=True)
6969
except Exception as ex:
7070
print(ex)
7171
raise

validate_uix.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,14 @@
2222
with open("Manifests/vurt.manifest", 'r') as content_file:
2323
vurt_md5 = content_file.read()
2424

25+
jarvik_md5 = None
26+
with open("Manifests/jarvik.manifest", 'r') as content_file:
27+
jarvik_md5 = content_file.read()
28+
2529

2630
def validate(md5_list):
2731
print("\nComparing md5sum of UIX:R to the other files.")
28-
beth_counter = starboi_counter = vurt_counter = 0
32+
beth_counter = starboi_counter = vurt_counter = jarvik_counter = 0
2933
for line in md5_list.split('\n'):
3034
if len(line) > 0:
3135
md5, rest = line.split(",", 1)
@@ -44,13 +48,17 @@ def validate(md5_list):
4448
if md5 in vurt_md5:
4549
vurt_counter += 1
4650
print("{0},{1},Found in Vurt's work".format(md5, rest))
51+
if md5 in jarvik_md5:
52+
jarvik_counter += 1
53+
print("{0},{1},Found in Jarvik bsa".format(md5, rest))
4754

4855
print("""\
4956
Out of {0} files, found:
5057
{1} bethesda files
5158
{2} starboi files
52-
{3} vurt files""".format(
53-
len(md5_list.split('\n'))-1, beth_counter, starboi_counter, vurt_counter))
59+
{3} vurt files
60+
{4} jarvik files""".format(
61+
len(md5_list.split('\n'))-1, beth_counter, starboi_counter, vurt_counter, jarvik_counter))
5462

5563

5664
# uixr files

0 commit comments

Comments
 (0)