# 规则示例
# 基本示例
生成的房子是平顶,四面围墙是同样贴图,屋顶是一个贴图:
version "2019.0"
@StarRule
attr height = 31%:rand(3,9)
59%:rand(10,30)
4%:rand(40,50)
5%:rand(30,40)
1%:rand(80,120)
else:3.5
attr surround_facade_tex = fileRandom("MyTexture/surround/" + "*.jpg")
attr top_facade_tex = fileRandom("MyTexture/top/" + "*.jpg")
Lot-->
extrude(world.up.flatTop, height)
building
building-->
comp(f) {
front : frontfacade |
back : backfacade |
left : leftfacade |
right :rightfacade |
top : topfacade
}
frontfacade-->
surroundTexture
backfacade-->
surroundTexture
leftfacade-->
surroundTexture
rightfacade-->
surroundTexture
topfacade-->
topTexture
surroundTexture-->
# setupProjection(0,scope.xy,scope.sx,scope.sy)
setupProjection(0,scope.xy,6,6)
texture(surround_facade_tex)
projectUV(0)
topTexture-->
setupProjection(0, scope.xy,5,5)
texture(top_facade_tex)
projectUV(0)
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
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