~adrian-arroyocalle/freerct/freerct

« back to all changes in this revision

Viewing changes to graphics/sprites/terrain/groundtiles/mask/IJM_GenerateGroundTileMasks.ijm

  • Committer: charlespigott at googlemail
  • Date: 2013-07-09 17:30:05 UTC
  • Revision ID: svn-v4:d3bf82d2-0c16-e458-5408-27be57bd1276:trunk:780
-Codechange: Reorganise the project files.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
path=getDirectory("");
 
2
 
 
3
tilew=newArray(64, 128, 256);
 
4
var carrn=newArray(0, 1, 1, 1, 1, 2);
 
5
var carre=newArray(0, 0, 1, 0, 1, 1);
 
6
var carrs=newArray(0, 0, 0, 1, 1, 0);
 
7
var carrw=newArray(0, 0, 0, 0, 0, 1);
 
8
slfac=0.25;
 
9
borderfac=16;
 
10
boffs=newArray(0, 0, 0.25, 0, 0.5, 0.5);
 
11
dotdensity=4;
 
12
 
 
13
nlayouts=3;
 
14
simgs=newArray(nlayouts);
 
15
timgs=newArray(nlayouts);
 
16
 
 
17
//setBatchMode(true);
 
18
for (i=0; i<lengthOf(tilew); i++) {
 
19
        for (j=0; j<nlayouts; j++) {
 
20
                newImage("Temp1", "8-bit Black", tilew[i], tilew[i], lengthOf(carrn)*4);
 
21
                simgs[j]=getImageID();
 
22
        }
 
23
        for (c=0; c<lengthOf(carrn); c++) {
 
24
                for (o=0; o<4; o++) {
 
25
                        var carr=newArray(4);
 
26
                        carr[(0+o)%4]=carrn[c];
 
27
                        carr[(1+o)%4]=carre[c];
 
28
                        carr[(2+o)%4]=carrs[c];
 
29
                        carr[(3+o)%4]=carrw[c];
 
30
                        selectImage(simgs[0]);
 
31
                        setSlice(c*4+o+1);
 
32
                        makeSele(tilew[i], slfac, 0, 0, 255);
 
33
                        selectImage(simgs[1]);
 
34
                        setSlice(c*4+o+1);
 
35
                        makeSele(tilew[i], slfac, 0, 0, 255);
 
36
                        twtmp=tilew[i]-2*tilew[i]/borderfac;
 
37
                        twxoff=tilew[i]/borderfac;
 
38
                        ta=carr[1]+carr[3];
 
39
                        twyoff=(boffs[c]+0.5)*tilew[i]/borderfac;
 
40
                        makeSele(twtmp, slfac, twxoff, twyoff, 0);
 
41
                        run("Select All");
 
42
                        run("Copy");
 
43
                        selectImage(simgs[2]);
 
44
                        setSlice(c*4+o+1);
 
45
                        run("Paste");
 
46
                        makeSele(twtmp, slfac, twxoff, twyoff, 128);
 
47
                        for (x=0; x<getWidth(); x++) {
 
48
                                for (y=0; y<getHeight(); y++) {
 
49
                                        if (x%dotdensity==0 && y%dotdensity==0 && getPixel(x, y)==128) {
 
50
                                                setPixel(x, y, 255);
 
51
                                        }
 
52
                                }
 
53
                        }
 
54
                        changeValues(0, 254, 0);
 
55
                }
 
56
        }
 
57
        for (j=0; j<nlayouts; j++) {
 
58
                selectImage(simgs[j]);
 
59
                run("Flip Vertically", "stack");
 
60
                newImage("Temp1", "8-bit Black", tilew[i]*4, tilew[i]*lengthOf(carrn), 1);
 
61
                timgs[j]=getImageID();
 
62
        }
 
63
        for (c=0; c<lengthOf(carrn); c++) {
 
64
                for (o=0; o<4; o++) {
 
65
                        for (j=0; j<nlayouts; j++) {
 
66
                                selectImage(simgs[j]);
 
67
                                setSlice(c*4+o+1);
 
68
                                run("Select All");
 
69
                                run("Copy");
 
70
                                setPasteMode("Copy");
 
71
                                selectImage(timgs[j]);
 
72
                                makeRectangle(o*tilew[i], c*tilew[i], tilew[i], tilew[i]);
 
73
                                run("Paste");
 
74
                        }
 
75
                }
 
76
        }
 
77
        for (j=0; j<nlayouts; j++) {
 
78
                selectImage(simgs[j]);
 
79
                close();
 
80
                selectImage(timgs[j]);
 
81
                if (j==0) {
 
82
                        str="";
 
83
                } else {
 
84
                        str=j;
 
85
                }
 
86
                saveAs("PNG", path+tilew[i]+"px"+str+".png");
 
87
                close();
 
88
        }
 
89
}
 
90
 
 
91
function makeSele(tilew, slfac, xoffs, yoffs, col) {
 
92
        slshift=tilew*slfac;
 
93
        xs=newArray(0, -1, tilew/2+1, tilew/2-1, tilew+1, tilew+1, tilew/2-1, tilew/2+1);
 
94
        xs[0]=-1;
 
95
        ys=newArray(0, tilew/4+carr[3]*slshift, 0-1+carr[2]*slshift, 0-1+carr[2]*slshift, tilew/4+carr[1]*slshift, tilew/4-1+carr[1]*slshift, tilew/2+carr[0]*slshift, tilew/2+carr[0]*slshift);
 
96
        ys[0]=tilew/4-1+carr[3]*slshift;
 
97
        for (i=0; i<lengthOf(xs); i++) {
 
98
                xs[i]+=xoffs;
 
99
                ys[i]+=yoffs;
 
100
        }
 
101
        makeSelection("polygon", xs, ys);
 
102
        setColor(col);
 
103
        getRawStatistics(area);
 
104
        if (area!=0) {
 
105
                fill();
 
106
        }
 
107
        run("Select None");
 
108
}