Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 42d7dca

Browse files
authored
Update hoi4statemapgenerator.py
1 parent 81f06e7 commit 42d7dca

File tree

1 file changed

+25
-14
lines changed

1 file changed

+25
-14
lines changed

‎python3/hoi4statemapgenerator.py

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,13 @@ def load_definition(name):
138138

139139
def load_state_file(name, states_dict):
140140
print("Reading file " + name + "...")
141-
with open(name, "r") as f:
142-
file_str = f.read()
141+
file_str = None
142+
try:
143+
with open(name, "r") as f:
144+
file_str = f.read()
145+
except:
146+
with open(name, "r", encoding='cp1252') as f:
147+
file_str = f.read()
143148
if not file_str:
144149
return
145150
try:
@@ -276,13 +281,15 @@ def get_colors(name):
276281

277282
def get_sequential_colors(space, palette="Reds"):
278283
palette = sns.color_palette(palette, space)
284+
print(palette)
279285
for idx, item in enumerate(palette):
280286
palette[idx] = [int(round(255 * x)) for x in item]
287+
print(palette)
281288
return palette
282289

283290
def get_state_color(value, space, colors):
284291
for idx in range(0, len(colors)-1):
285-
if space[idx] <= value <= space[idx+1]:
292+
if space[idx] <= value < space[idx+1]:
286293
return colors[idx]
287294
return colors[0]
288295

@@ -328,8 +335,8 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
328335
space = np.quantile(data_list, steps)
329336
colors = get_sequential_colors(len(space), palette)
330337
else:
331-
space = np.linspace(0, data_list[-1], num=steps, dtype=int)
332-
print(space)
338+
space = np.linspace(0, data_list[-1], num=data_list[-1]+1, dtype=int)
339+
steps=data_list[-1]+1
333340
colors = get_sequential_colors(steps, palette)
334341
if mode == 1:
335342
space[0] = 0
@@ -355,6 +362,8 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
355362
#############################
356363

357364
parser = argparse.ArgumentParser(description='Given valid provinces.bmp, definition.csv files and a folder of state history files (or strategic region files), generate an image containing a map of states with their IDs.')
365+
parser.add_argument( 'mode',
366+
help='Mode: 1 - population per pixel, 2 - political, 3 - total factories, 4 - civ factories, 5 - mil factories, 6 - infra, 7 - nav factories')
358367
parser.add_argument('provinces',
359368
help='Path to provinces.bmp file')
360369
parser.add_argument( 'definition',
@@ -375,9 +384,11 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
375384

376385
#print(sns.color_palette("Blues"))
377386

378-
load_pdx_colors_file("colors.txt")
387+
#load_pdx_colors_file("colors.txt")
379388

380-
mode = 6
389+
mode = int(args.mode)
390+
if mode < 1 or mode > 7:
391+
sys.exit("Wrong mode - must be between 1 and 7")
381392
manpower_steps = 10
382393
factories_steps = 10
383394

@@ -407,31 +418,31 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
407418
colors = load_pdx_colors_file(args.colors)
408419
elif mode == 3:
409420
factories_list = get_total_factories_list(states_dict)
410-
factories_steps = factories_list[-1]+1
421+
factories_steps = factories_list[-1]
411422
lc = generate_legend_and_colors(factories_steps, factories_list, "Total Factories in State", mode)
412423
colors = lc[0]
413424
space = lc[1]
414425
elif mode == 4:
415426
factories_list = get_civ_factories_list(states_dict)
416-
factories_steps = factories_list[-1]+1
427+
factories_steps = factories_list[-1]
417428
lc = generate_legend_and_colors(factories_steps, factories_list, "Civilian Factories in State", mode, "Oranges")
418429
colors = lc[0]
419430
space = lc[1]
420431
elif mode == 5:
421432
factories_list = get_mil_factories_list(states_dict)
422-
factories_steps = factories_list[-1]+1
433+
factories_steps = factories_list[-1]
423434
lc = generate_legend_and_colors(factories_steps, factories_list, "Military Factories in State", mode, "Greens")
424435
colors = lc[0]
425436
space = lc[1]
426437
elif mode == 6:
427438
factories_list = get_infra_list(states_dict)
428-
factories_steps = factories_list[-1]+1
439+
factories_steps = factories_list[-1]
429440
lc = generate_legend_and_colors(factories_steps, factories_list, "Infrastructure in State", mode, "Oranges")
430441
colors = lc[0]
431442
space = lc[1]
432443
elif mode == 7:
433-
factories_list = get_infra_list(states_dict)
434-
factories_steps = factories_list[-1]+1
444+
factories_list = get_dockyards_list(states_dict)
445+
factories_steps = factories_list[-1]
435446
lc = generate_legend_and_colors(factories_steps, factories_list, "Dockyards in State", mode, "Blues")
436447
colors = lc[0]
437448
space = lc[1]
@@ -470,4 +481,4 @@ def generate_legend_and_colors(steps, data_list, title_str, mode, palette="Reds"
470481

471482
province_map.show()
472483
print("Saving file " + args.output + "...")
473-
province_map.save(args.output, "PNG")
484+
province_map.save(args.output, "PNG")

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /