summaryrefslogtreecommitdiff
path: root/tools/genlayout.py
blob: 2e7bafe7d2e8dc5d24b5c4ed7646a3b44faa3a01 (plain)
1
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
from bs4 import BeautifulSoup

SCALE = 1.8033333333333332

def readsvg(filename):
    with open(filename) as fp:
        soup = BeautifulSoup(fp, features="xml")

    result = []
    boxes = soup.find('g', id='Mission-Boxes')
    for box in boxes.find_all('g', recursive=False):
        area_name = box.attrs.get('serif:id', box.attrs['id'])
        for rect in box.find_all('rect'):
            rect_id = rect.attrs.get('serif:id', rect.attrs['id'])
            x = float(rect.attrs['x'])
            y = float(rect.attrs['y'])
            w = float(rect.attrs['width'])
            h = float(rect.attrs['height'])
            xc = round((x+w/2.0)/SCALE)
            yc = round((y+h/2.0)/SCALE)
            name = area_name + '-' + rect_id
            result.append([name, xc, yc])

    return result

def print_list(data):
    print("const LAYOUT = {")
    for (name, x, y) in data:
        print(f'\t"{name}": [{x}, {y}],')
    print("}")

result = readsvg("tools/layout.svg")
print_list(result)