-
Notifications
You must be signed in to change notification settings - Fork 0
/
globals.py
69 lines (49 loc) · 1.78 KB
/
globals.py
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
from pathlib import Path
import Adjacency
from StructureFolder import StructureFolder
from gdpc.src.gdpc import interface
global rngSeed
global structureFolders
global defaultAdjacencies
global defaultStructureWeights
global heightMaps
global buildVolume
def initialize():
global rngSeed
rngSeed = None
global structureFolders
structureFolders = dict()
loadStructureFiles()
global defaultAdjacencies
defaultAdjacencies = dict()
generateAdjacencies()
global defaultStructureWeights
defaultStructureWeights = dict()
setupStructureWeights()
global buildVolume
buildVolume = interface.getBuildArea()
global heightMaps
heightMaps = dict()
print('Loading height maps…')
updateHeightMap('MOTION_BLOCKING_NO_PLANTS')
updateHeightMap('MOTION_BLOCKING')
def loadStructureFiles():
namespace = 'doha9'
for structureFolder in Path('.').glob(f'structures/{namespace}/*/'):
if structureFolder.is_dir():
structureName = structureFolder.name
structureFolders[structureName] = StructureFolder(
structureFolder=structureFolder,
name=structureName,
namespace=namespace
)
def generateAdjacencies():
for name, structureFolder in structureFolders.items():
if hasattr(structureFolder.structureClass, 'adjecencies'):
defaultAdjacencies[name] = structureFolder.structureClass.adjecencies
Adjacency.checkSymmetry(defaultAdjacencies)
def setupStructureWeights():
for name, structureFolder in structureFolders.items():
defaultStructureWeights[name] = structureFolder.structureClass.weight
def updateHeightMap(heightMapType: str = 'WORLD_SURFACE'):
heightMaps[heightMapType] = interface.getHeightMap(heightMapType)