最后活跃于 1732581561

capitalex's Avatar capitalex 修订了这个 Gist 1732581561. 转到此修订

1 file changed, 670 insertions

paint.generated.lua(文件已创建)

@@ -0,0 +1,670 @@
1 + local min, max, huge = math.min, math.max, math.huge
2 + return function(counters, ports)
3 + if counters["@set resolution"] > 0 then
4 + ports[1].hook(counters)
5 + return true
6 + elseif counters["@set pixel"] > 0 then
7 + ports[2].hook(counters)
8 + return true
9 + elseif counters["@draw line"] > 0 then
10 + ports[3].hook(counters)
11 + return true
12 + elseif counters["@display"] > 0 then
13 + ports[4].hook(counters)
14 + return true
15 + elseif counters["@poll inputs"] > 0 then
16 + ports[5].hook(counters)
17 + return true
18 + elseif counters["@mouse position"] > 0 then
19 + ports[6].hook(counters)
20 + return true
21 + elseif counters["@mouse is down"] > 0 then
22 + ports[7].hook(counters)
23 + return true
24 + elseif counters["@mouse relative position"] > 0 then
25 + ports[8].hook(counters)
26 + return true
27 + elseif counters["@mouse wheel"] > 0 then
28 + ports[9].hook(counters)
29 + return true
30 + elseif counters["@sleep:60"] > 0 then
31 + acc = counters["@sleep:60"]
32 + counters["@sleep:60"] = max(counters["@sleep:60"] - acc, 0)
33 + counters["@sleep"] = counters["@sleep"] + acc * 60
34 + return true
35 + elseif counters["@line x1:10"] > 0 then
36 + acc = counters["@line x1:10"]
37 + counters["@line x1:10"] = max(counters["@line x1:10"] - acc, 0)
38 + counters["@line x1"] = counters["@line x1"] + acc * 10
39 + return true
40 + elseif counters["@line y1:10"] > 0 then
41 + acc = counters["@line y1:10"]
42 + counters["@line y1:10"] = max(counters["@line y1:10"] - acc, 0)
43 + counters["@line y1"] = counters["@line y1"] + acc * 10
44 + return true
45 + elseif counters["@line x2:30"] > 0 then
46 + acc = counters["@line x2:30"]
47 + counters["@line x2:30"] = max(counters["@line x2:30"] - acc, 0)
48 + counters["@line x2"] = counters["@line x2"] + acc * 30
49 + return true
50 + elseif counters["@line y2:10"] > 0 then
51 + acc = counters["@line y2:10"]
52 + counters["@line y2:10"] = max(counters["@line y2:10"] - acc, 0)
53 + counters["@line y2"] = counters["@line y2"] + acc * 10
54 + return true
55 + elseif counters["@pixel r:255"] > 0 then
56 + acc = counters["@pixel r:255"]
57 + counters["@pixel r:255"] = max(counters["@pixel r:255"] - acc, 0)
58 + counters["@pixel r"] = counters["@pixel r"] + acc * 255
59 + return true
60 + elseif counters["@pixel g:255"] > 0 then
61 + acc = counters["@pixel g:255"]
62 + counters["@pixel g:255"] = max(counters["@pixel g:255"] - acc, 0)
63 + counters["@pixel g"] = counters["@pixel g"] + acc * 255
64 + return true
65 + elseif counters["@pixel b:255"] > 0 then
66 + acc = counters["@pixel b:255"]
67 + counters["@pixel b:255"] = max(counters["@pixel b:255"] - acc, 0)
68 + counters["@pixel b"] = counters["@pixel b"] + acc * 255
69 + return true
70 + elseif counters["@pixel r:87"] > 0 then
71 + acc = counters["@pixel r:87"]
72 + counters["@pixel r:87"] = max(counters["@pixel r:87"] - acc, 0)
73 + counters["@pixel r"] = counters["@pixel r"] + acc * 87
74 + return true
75 + elseif counters["@pixel g:87"] > 0 then
76 + acc = counters["@pixel g:87"]
77 + counters["@pixel g:87"] = max(counters["@pixel g:87"] - acc, 0)
78 + counters["@pixel g"] = counters["@pixel g"] + acc * 87
79 + return true
80 + elseif counters["@pixel b:87"] > 0 then
81 + acc = counters["@pixel b:87"]
82 + counters["@pixel b:87"] = max(counters["@pixel b:87"] - acc, 0)
83 + counters["@pixel b"] = counters["@pixel b"] + acc * 87
84 + return true
85 + elseif counters["@pixel r:219"] > 0 then
86 + acc = counters["@pixel r:219"]
87 + counters["@pixel r:219"] = max(counters["@pixel r:219"] - acc, 0)
88 + counters["@pixel r"] = counters["@pixel r"] + acc * 219
89 + return true
90 + elseif counters["@pixel b:12"] > 0 then
91 + acc = counters["@pixel b:12"]
92 + counters["@pixel b:12"] = max(counters["@pixel b:12"] - acc, 0)
93 + counters["@pixel b"] = counters["@pixel b"] + acc * 12
94 + return true
95 + elseif counters["clear @pixel r:255"] > 0 then
96 + acc = counters["clear @pixel r:255"]
97 + counters["clear @pixel r:255"] = max(counters["clear @pixel r:255"] - acc, 0)
98 + counters["clear @pixel r"] = counters["clear @pixel r"] + acc * 255
99 + return true
100 + elseif counters["clear @pixel g:255"] > 0 then
101 + acc = counters["clear @pixel g:255"]
102 + counters["clear @pixel g:255"] = max(counters["clear @pixel g:255"] - acc, 0)
103 + counters["clear @pixel g"] = counters["clear @pixel g"] + acc * 255
104 + return true
105 + elseif counters["clear @pixel b:255"] > 0 then
106 + acc = counters["clear @pixel b:255"]
107 + counters["clear @pixel b:255"] = max(counters["clear @pixel b:255"] - acc, 0)
108 + counters["clear @pixel b"] = counters["clear @pixel b"] + acc * 255
109 + return true
110 + elseif counters["clear old mouse x:1000000"] > 0 then
111 + acc = counters["clear old mouse x:1000000"]
112 + counters["clear old mouse x:1000000"] = max(counters["clear old mouse x:1000000"] - acc, 0)
113 + counters["clear old mouse x"] = counters["clear old mouse x"] + acc * 1000000
114 + return true
115 + elseif counters["clear old mouse y:1000000"] > 0 then
116 + acc = counters["clear old mouse y:1000000"]
117 + counters["clear old mouse y:1000000"] = max(counters["clear old mouse y:1000000"] - acc, 0)
118 + counters["clear old mouse y"] = counters["clear old mouse y"] + acc * 1000000
119 + return true
120 + elseif counters["current mouse x -> old mouse x:1000000"] > 0 then
121 + acc = counters["current mouse x -> old mouse x:1000000"]
122 + counters["current mouse x -> old mouse x:1000000"] = max(counters["current mouse x -> old mouse x:1000000"] - acc, 0)
123 + counters["current mouse x -> old mouse x"] = counters["current mouse x -> old mouse x"] + acc * 1000000
124 + return true
125 + elseif counters["current mouse y -> old mouse y:1000000"] > 0 then
126 + acc = counters["current mouse y -> old mouse y:1000000"]
127 + counters["current mouse y -> old mouse y:1000000"] = max(counters["current mouse y -> old mouse y:1000000"] - acc, 0)
128 + counters["current mouse y -> old mouse y"] = counters["current mouse y -> old mouse y"] + acc * 1000000
129 + return true
130 + elseif counters["@mouse x -> current mouse x:1000000"] > 0 then
131 + acc = counters["@mouse x -> current mouse x:1000000"]
132 + counters["@mouse x -> current mouse x:1000000"] = max(counters["@mouse x -> current mouse x:1000000"] - acc, 0)
133 + counters["@mouse x -> current mouse x"] = counters["@mouse x -> current mouse x"] + acc * 1000000
134 + return true
135 + elseif counters["@mouse y -> current mouse y:1000000"] > 0 then
136 + acc = counters["@mouse y -> current mouse y:1000000"]
137 + counters["@mouse y -> current mouse y:1000000"] = max(counters["@mouse y -> current mouse y:1000000"] - acc, 0)
138 + counters["@mouse y -> current mouse y"] = counters["@mouse y -> current mouse y"] + acc * 1000000
139 + return true
140 + elseif counters["copy old mouse x -> @line x1:1000000"] > 0 then
141 + acc = counters["copy old mouse x -> @line x1:1000000"]
142 + counters["copy old mouse x -> @line x1:1000000"] = max(counters["copy old mouse x -> @line x1:1000000"] - acc, 0)
143 + counters["copy old mouse x -> @line x1"] = counters["copy old mouse x -> @line x1"] + acc * 1000000
144 + return true
145 + elseif counters["copy old mouse y -> @line y1:1000000"] > 0 then
146 + acc = counters["copy old mouse y -> @line y1:1000000"]
147 + counters["copy old mouse y -> @line y1:1000000"] = max(counters["copy old mouse y -> @line y1:1000000"] - acc, 0)
148 + counters["copy old mouse y -> @line y1"] = counters["copy old mouse y -> @line y1"] + acc * 1000000
149 + return true
150 + elseif counters["copy current mouse x -> @line x2:1000000"] > 0 then
151 + acc = counters["copy current mouse x -> @line x2:1000000"]
152 + counters["copy current mouse x -> @line x2:1000000"] = max(counters["copy current mouse x -> @line x2:1000000"] - acc, 0)
153 + counters["copy current mouse x -> @line x2"] = counters["copy current mouse x -> @line x2"] + acc * 1000000
154 + return true
155 + elseif counters["copy current mouse y -> @line y2:1000000"] > 0 then
156 + acc = counters["copy current mouse y -> @line y2:1000000"]
157 + counters["copy current mouse y -> @line y2:1000000"] = max(counters["copy current mouse y -> @line y2:1000000"] - acc, 0)
158 + counters["copy current mouse y -> @line y2"] = counters["copy current mouse y -> @line y2"] + acc * 1000000
159 + return true
160 + elseif counters["clear pixel color"] > 0 then
161 + acc = counters["clear pixel color"]
162 + counters["clear pixel color"] = max(counters["clear pixel color"] - acc, 0)
163 + counters["clear @pixel g:255"] = counters["clear @pixel g:255"] + acc * 1
164 + counters["clear @pixel b:255"] = counters["clear @pixel b:255"] + acc * 1
165 + counters["clear @pixel r:255"] = counters["clear @pixel r:255"] + acc * 1
166 + return true
167 + elseif counters["clear @pixel r"] > 0 and counters["@pixel r"] > 0 then
168 + local acc = huge
169 + acc = min(acc, counters["@pixel r"])
170 + acc = min(acc, counters["clear @pixel r"])
171 + counters["clear @pixel r"] = max(counters["clear @pixel r"] - acc, 0)
172 + counters["@pixel r"] = max(counters["@pixel r"] - acc, 0)
173 + return true
174 + elseif counters["clear @pixel g"] > 0 and counters["@pixel g"] > 0 then
175 + local acc = huge
176 + acc = min(acc, counters["clear @pixel g"])
177 + acc = min(acc, counters["@pixel g"])
178 + counters["clear @pixel g"] = max(counters["clear @pixel g"] - acc, 0)
179 + counters["@pixel g"] = max(counters["@pixel g"] - acc, 0)
180 + return true
181 + elseif counters["clear @pixel b"] > 0 and counters["@pixel b"] > 0 then
182 + local acc = huge
183 + acc = min(acc, counters["@pixel b"])
184 + acc = min(acc, counters["clear @pixel b"])
185 + counters["clear @pixel b"] = max(counters["clear @pixel b"] - acc, 0)
186 + counters["@pixel b"] = max(counters["@pixel b"] - acc, 0)
187 + return true
188 + elseif counters["clear @pixel r"] > 0 then
189 + acc = counters["clear @pixel r"]
190 + counters["clear @pixel r"] = max(counters["clear @pixel r"] - acc, 0)
191 + return true
192 + elseif counters["clear @pixel g"] > 0 then
193 + acc = counters["clear @pixel g"]
194 + counters["clear @pixel g"] = max(counters["clear @pixel g"] - acc, 0)
195 + return true
196 + elseif counters["clear @pixel b"] > 0 then
197 + acc = counters["clear @pixel b"]
198 + counters["clear @pixel b"] = max(counters["clear @pixel b"] - acc, 0)
199 + return true
200 + elseif counters["clear old mouse x"] > 0 and counters["old mouse x"] > 0 then
201 + local acc = huge
202 + acc = min(acc, counters["clear old mouse x"])
203 + acc = min(acc, counters["old mouse x"])
204 + counters["clear old mouse x"] = max(counters["clear old mouse x"] - acc, 0)
205 + counters["old mouse x"] = max(counters["old mouse x"] - acc, 0)
206 + return true
207 + elseif counters["clear old mouse x"] > 0 then
208 + acc = counters["clear old mouse x"]
209 + counters["clear old mouse x"] = max(counters["clear old mouse x"] - acc, 0)
210 + return true
211 + elseif counters["clear old mouse y"] > 0 and counters["old mouse y"] > 0 then
212 + local acc = huge
213 + acc = min(acc, counters["old mouse y"])
214 + acc = min(acc, counters["clear old mouse y"])
215 + counters["clear old mouse y"] = max(counters["clear old mouse y"] - acc, 0)
216 + counters["old mouse y"] = max(counters["old mouse y"] - acc, 0)
217 + return true
218 + elseif counters["clear old mouse y"] > 0 then
219 + acc = counters["clear old mouse y"]
220 + counters["clear old mouse y"] = max(counters["clear old mouse y"] - acc, 0)
221 + return true
222 + elseif counters["current mouse x -> old mouse x"] > 0 and counters["current mouse x"] > 0 then
223 + local acc = huge
224 + acc = min(acc, counters["current mouse x -> old mouse x"])
225 + acc = min(acc, counters["current mouse x"])
226 + counters["current mouse x -> old mouse x"] = max(counters["current mouse x -> old mouse x"] - acc, 0)
227 + counters["current mouse x"] = max(counters["current mouse x"] - acc, 0)
228 + counters["old mouse x"] = counters["old mouse x"] + acc * 1
229 + return true
230 + elseif counters["current mouse y -> old mouse y"] > 0 and counters["current mouse y"] > 0 then
231 + local acc = huge
232 + acc = min(acc, counters["current mouse y"])
233 + acc = min(acc, counters["current mouse y -> old mouse y"])
234 + counters["current mouse y -> old mouse y"] = max(counters["current mouse y -> old mouse y"] - acc, 0)
235 + counters["current mouse y"] = max(counters["current mouse y"] - acc, 0)
236 + counters["old mouse y"] = counters["old mouse y"] + acc * 1
237 + return true
238 + elseif counters["current mouse x -> old mouse x"] > 0 then
239 + acc = counters["current mouse x -> old mouse x"]
240 + counters["current mouse x -> old mouse x"] = max(counters["current mouse x -> old mouse x"] - acc, 0)
241 + return true
242 + elseif counters["current mouse y -> old mouse y"] > 0 then
243 + acc = counters["current mouse y -> old mouse y"]
244 + counters["current mouse y -> old mouse y"] = max(counters["current mouse y -> old mouse y"] - acc, 0)
245 + return true
246 + elseif counters["@mouse x -> current mouse x"] > 0 and counters["@mouse x"] > 0 then
247 + local acc = huge
248 + acc = min(acc, counters["@mouse x -> current mouse x"])
249 + acc = min(acc, counters["@mouse x"])
250 + counters["@mouse x -> current mouse x"] = max(counters["@mouse x -> current mouse x"] - acc, 0)
251 + counters["@mouse x"] = max(counters["@mouse x"] - acc, 0)
252 + counters["current mouse x"] = counters["current mouse x"] + acc * 1
253 + return true
254 + elseif counters["@mouse y -> current mouse y"] > 0 and counters["@mouse y"] > 0 then
255 + local acc = huge
256 + acc = min(acc, counters["@mouse y"])
257 + acc = min(acc, counters["@mouse y -> current mouse y"])
258 + counters["@mouse y -> current mouse y"] = max(counters["@mouse y -> current mouse y"] - acc, 0)
259 + counters["@mouse y"] = max(counters["@mouse y"] - acc, 0)
260 + counters["current mouse y"] = counters["current mouse y"] + acc * 1
261 + return true
262 + elseif counters["@mouse x -> current mouse x"] > 0 then
263 + acc = counters["@mouse x -> current mouse x"]
264 + counters["@mouse x -> current mouse x"] = max(counters["@mouse x -> current mouse x"] - acc, 0)
265 + return true
266 + elseif counters["@mouse y -> current mouse y"] > 0 then
267 + acc = counters["@mouse y -> current mouse y"]
268 + counters["@mouse y -> current mouse y"] = max(counters["@mouse y -> current mouse y"] - acc, 0)
269 + return true
270 + elseif counters["copy old mouse x -> @line x1"] > 0 and counters["old mouse x"] > 0 then
271 + local acc = huge
272 + acc = min(acc, counters["copy old mouse x -> @line x1"])
273 + acc = min(acc, counters["old mouse x"])
274 + counters["copy old mouse x -> @line x1"] = max(counters["copy old mouse x -> @line x1"] - acc, 0)
275 + counters["old mouse x"] = max(counters["old mouse x"] - acc, 0)
276 + counters["used old mouse x"] = counters["used old mouse x"] + acc * 1
277 + counters["@line x1"] = counters["@line x1"] + acc * 1
278 + return true
279 + elseif counters["copy old mouse y -> @line y1"] > 0 and counters["old mouse y"] > 0 then
280 + local acc = huge
281 + acc = min(acc, counters["old mouse y"])
282 + acc = min(acc, counters["copy old mouse y -> @line y1"])
283 + counters["copy old mouse y -> @line y1"] = max(counters["copy old mouse y -> @line y1"] - acc, 0)
284 + counters["old mouse y"] = max(counters["old mouse y"] - acc, 0)
285 + counters["@line y1"] = counters["@line y1"] + acc * 1
286 + counters["used old mouse y"] = counters["used old mouse y"] + acc * 1
287 + return true
288 + elseif counters["copy current mouse x -> @line x2"] > 0 and counters["current mouse x"] > 0 then
289 + local acc = huge
290 + acc = min(acc, counters["copy current mouse x -> @line x2"])
291 + acc = min(acc, counters["current mouse x"])
292 + counters["copy current mouse x -> @line x2"] = max(counters["copy current mouse x -> @line x2"] - acc, 0)
293 + counters["current mouse x"] = max(counters["current mouse x"] - acc, 0)
294 + counters["used current mouse x"] = counters["used current mouse x"] + acc * 1
295 + counters["@line x2"] = counters["@line x2"] + acc * 1
296 + return true
297 + elseif counters["copy current mouse y -> @line y2"] > 0 and counters["current mouse y"] > 0 then
298 + local acc = huge
299 + acc = min(acc, counters["current mouse y"])
300 + acc = min(acc, counters["copy current mouse y -> @line y2"])
301 + counters["copy current mouse y -> @line y2"] = max(counters["copy current mouse y -> @line y2"] - acc, 0)
302 + counters["current mouse y"] = max(counters["current mouse y"] - acc, 0)
303 + counters["@line y2"] = counters["@line y2"] + acc * 1
304 + counters["used current mouse y"] = counters["used current mouse y"] + acc * 1
305 + return true
306 + elseif counters["copy old mouse x -> @line x1"] > 0 then
307 + acc = counters["copy old mouse x -> @line x1"]
308 + counters["copy old mouse x -> @line x1"] = max(counters["copy old mouse x -> @line x1"] - acc, 0)
309 + return true
310 + elseif counters["copy old mouse y -> @line y1"] > 0 then
311 + acc = counters["copy old mouse y -> @line y1"]
312 + counters["copy old mouse y -> @line y1"] = max(counters["copy old mouse y -> @line y1"] - acc, 0)
313 + return true
314 + elseif counters["copy current mouse x -> @line x2"] > 0 then
315 + acc = counters["copy current mouse x -> @line x2"]
316 + counters["copy current mouse x -> @line x2"] = max(counters["copy current mouse x -> @line x2"] - acc, 0)
317 + return true
318 + elseif counters["copy current mouse y -> @line y2"] > 0 then
319 + acc = counters["copy current mouse y -> @line y2"]
320 + counters["copy current mouse y -> @line y2"] = max(counters["copy current mouse y -> @line y2"] - acc, 0)
321 + return true
322 + elseif counters["used old mouse x"] > 0 then
323 + acc = counters["used old mouse x"]
324 + counters["used old mouse x"] = max(counters["used old mouse x"] - acc, 0)
325 + counters["old mouse x"] = counters["old mouse x"] + acc * 1
326 + return true
327 + elseif counters["used old mouse y"] > 0 then
328 + acc = counters["used old mouse y"]
329 + counters["used old mouse y"] = max(counters["used old mouse y"] - acc, 0)
330 + counters["old mouse y"] = counters["old mouse y"] + acc * 1
331 + return true
332 + elseif counters["used current mouse x"] > 0 then
333 + acc = counters["used current mouse x"]
334 + counters["used current mouse x"] = max(counters["used current mouse x"] - acc, 0)
335 + counters["current mouse x"] = counters["current mouse x"] + acc * 1
336 + return true
337 + elseif counters["used current mouse y"] > 0 then
338 + acc = counters["used current mouse y"]
339 + counters["used current mouse y"] = max(counters["used current mouse y"] - acc, 0)
340 + counters["current mouse y"] = counters["current mouse y"] + acc * 1
341 + return true
342 + elseif counters["clear old mouse position"] > 0 then
343 + acc = counters["clear old mouse position"]
344 + counters["clear old mouse position"] = max(counters["clear old mouse position"] - acc, 0)
345 + counters["clear old mouse y:1000000"] = counters["clear old mouse y:1000000"] + acc * 1
346 + counters["clear old mouse x:1000000"] = counters["clear old mouse x:1000000"] + acc * 1
347 + return true
348 + elseif counters["move current mouse position to old mouse position"] > 0 then
349 + acc = counters["move current mouse position to old mouse position"]
350 + counters["move current mouse position to old mouse position"] = max(counters["move current mouse position to old mouse position"] - acc, 0)
351 + counters["current mouse x -> old mouse x:1000000"] = counters["current mouse x -> old mouse x:1000000"] + acc * 1
352 + counters["current mouse y -> old mouse y:1000000"] = counters["current mouse y -> old mouse y:1000000"] + acc * 1
353 + return true
354 + elseif counters["move @mouse position to current mouse position"] > 0 then
355 + acc = counters["move @mouse position to current mouse position"]
356 + counters["move @mouse position to current mouse position"] = max(counters["move @mouse position to current mouse position"] - acc, 0)
357 + counters["@mouse y -> current mouse y:1000000"] = counters["@mouse y -> current mouse y:1000000"] + acc * 1
358 + counters["@mouse x -> current mouse x:1000000"] = counters["@mouse x -> current mouse x:1000000"] + acc * 1
359 + return true
360 + elseif counters["update mouse position"] > 0 then
361 + acc = counters["update mouse position"]
362 + counters["update mouse position"] = max(counters["update mouse position"] - acc, 0)
363 + counters["@mouse position"] = counters["@mouse position"] + acc * 1
364 + counters["move current mouse position to old mouse position"] = counters["move current mouse position to old mouse position"] + acc * 1
365 + counters["clear old mouse position"] = counters["clear old mouse position"] + acc * 1
366 + counters["move @mouse position to current mouse position"] = counters["move @mouse position to current mouse position"] + acc * 1
367 + return true
368 + elseif counters["check if mouse button 1 is down"] > 0 and counters["find brush mode"] > 0 then
369 + local acc = huge
370 + acc = min(acc, counters["check if mouse button 1 is down"])
371 + acc = min(acc, counters["find brush mode"])
372 + counters["check if mouse button 1 is down"] = max(counters["check if mouse button 1 is down"] - acc, 0)
373 + counters["find brush mode"] = max(counters["find brush mode"] - acc, 0)
374 + counters["@mouse button"] = counters["@mouse button"] + acc * 1
375 + counters["checking button 1"] = counters["checking button 1"] + acc * 1
376 + counters["@mouse is down"] = counters["@mouse is down"] + acc * 1
377 + return true
378 + elseif counters["check if mouse button 2 is down"] > 0 and counters["find brush mode"] > 0 then
379 + local acc = huge
380 + acc = min(acc, counters["find brush mode"])
381 + acc = min(acc, counters["check if mouse button 2 is down"])
382 + counters["check if mouse button 2 is down"] = max(counters["check if mouse button 2 is down"] - acc, 0)
383 + counters["find brush mode"] = max(counters["find brush mode"] - acc, 0)
384 + counters["checking button 2"] = counters["checking button 2"] + acc * 1
385 + counters["@mouse button"] = counters["@mouse button"] + acc * 2
386 + counters["@mouse is down"] = counters["@mouse is down"] + acc * 1
387 + return true
388 + elseif counters["check if mouse button 3 is down"] > 0 and counters["find brush mode"] > 0 then
389 + local acc = huge
390 + acc = min(acc, counters["find brush mode"])
391 + acc = min(acc, counters["check if mouse button 3 is down"])
392 + counters["check if mouse button 3 is down"] = max(counters["check if mouse button 3 is down"] - acc, 0)
393 + counters["find brush mode"] = max(counters["find brush mode"] - acc, 0)
394 + counters["@mouse button"] = counters["@mouse button"] + acc * 3
395 + counters["checking button 3"] = counters["checking button 3"] + acc * 1
396 + counters["@mouse is down"] = counters["@mouse is down"] + acc * 1
397 + return true
398 + elseif counters["checking button 1"] > 0 and counters["@mouse button is down"] > 0 then
399 + local acc = huge
400 + acc = min(acc, counters["checking button 1"])
401 + acc = min(acc, counters["@mouse button is down"])
402 + counters["checking button 1"] = max(counters["checking button 1"] - acc, 0)
403 + counters["@mouse button is down"] = max(counters["@mouse button is down"] - acc, 0)
404 + counters["brush is drawing"] = counters["brush is drawing"] + acc * 1
405 + return true
406 + elseif counters["checking button 2"] > 0 and counters["@mouse button is down"] > 0 then
407 + local acc = huge
408 + acc = min(acc, counters["checking button 2"])
409 + acc = min(acc, counters["@mouse button is down"])
410 + counters["checking button 2"] = max(counters["checking button 2"] - acc, 0)
411 + counters["@mouse button is down"] = max(counters["@mouse button is down"] - acc, 0)
412 + counters["brush is erasing"] = counters["brush is erasing"] + acc * 1
413 + return true
414 + elseif counters["checking button 3"] > 0 and counters["@mouse button is down"] > 0 then
415 + local acc = huge
416 + acc = min(acc, counters["checking button 3"])
417 + acc = min(acc, counters["@mouse button is down"])
418 + counters["checking button 3"] = max(counters["checking button 3"] - acc, 0)
419 + counters["@mouse button is down"] = max(counters["@mouse button is down"] - acc, 0)
420 + counters["brush is drawing red"] = counters["brush is drawing red"] + acc * 1
421 + return true
422 + elseif counters["checking button 3"] > 0 then
423 + acc = counters["checking button 3"]
424 + counters["checking button 3"] = max(counters["checking button 3"] - acc, 0)
425 + counters["find brush mode"] = counters["find brush mode"] + acc * 1
426 + return true
427 + elseif counters["checking button 2"] > 0 then
428 + acc = counters["checking button 2"]
429 + counters["checking button 2"] = max(counters["checking button 2"] - acc, 0)
430 + counters["find brush mode"] = counters["find brush mode"] + acc * 1
431 + return true
432 + elseif counters["checking button 1"] > 0 then
433 + acc = counters["checking button 1"]
434 + counters["checking button 1"] = max(counters["checking button 1"] - acc, 0)
435 + counters["find brush mode"] = counters["find brush mode"] + acc * 1
436 + return true
437 + elseif counters["find brush mode"] > 0 then
438 + acc = counters["find brush mode"]
439 + counters["find brush mode"] = max(counters["find brush mode"] - acc, 0)
440 + return true
441 + elseif counters["check if mouse button is down"] > 0 then
442 + acc = counters["check if mouse button is down"]
443 + counters["check if mouse button is down"] = max(counters["check if mouse button is down"] - acc, 0)
444 + counters["check if mouse button 1 is down"] = counters["check if mouse button 1 is down"] + acc * 1
445 + counters["find brush mode"] = counters["find brush mode"] + acc * 1
446 + counters["check if mouse button 3 is down"] = counters["check if mouse button 3 is down"] + acc * 1
447 + counters["check if mouse button 2 is down"] = counters["check if mouse button 2 is down"] + acc * 1
448 + return true
449 + elseif counters["set line color"] > 0 and counters["current color is 1"] > 0 then
450 + local acc = huge
451 + acc = min(acc, counters["current color is 1"])
452 + acc = min(acc, counters["set line color"])
453 + counters["set line color"] = max(counters["set line color"] - acc, 0)
454 + counters["current color is 1"] = max(counters["current color is 1"] - acc, 0)
455 + counters["current color is 1"] = counters["current color is 1"] + acc * 1
456 + counters["@pixel r:255"] = counters["@pixel r:255"] + acc * 1
457 + counters["@pixel g:255"] = counters["@pixel g:255"] + acc * 1
458 + counters["@pixel b:255"] = counters["@pixel b:255"] + acc * 1
459 + return true
460 + elseif counters["set line color"] > 0 and counters["current color is 2"] > 0 then
461 + local acc = huge
462 + acc = min(acc, counters["current color is 2"])
463 + acc = min(acc, counters["set line color"])
464 + counters["set line color"] = max(counters["set line color"] - acc, 0)
465 + counters["current color is 2"] = max(counters["current color is 2"] - acc, 0)
466 + counters["current color is 2"] = counters["current color is 2"] + acc * 1
467 + counters["@pixel r:87"] = counters["@pixel r:87"] + acc * 1
468 + counters["@pixel g:87"] = counters["@pixel g:87"] + acc * 1
469 + counters["@pixel b:87"] = counters["@pixel b:87"] + acc * 1
470 + return true
471 + elseif counters["set line color"] > 0 and counters["current color is 3"] > 0 then
472 + local acc = huge
473 + acc = min(acc, counters["current color is 3"])
474 + acc = min(acc, counters["set line color"])
475 + counters["set line color"] = max(counters["set line color"] - acc, 0)
476 + counters["current color is 3"] = max(counters["current color is 3"] - acc, 0)
477 + counters["current color is 3"] = counters["current color is 3"] + acc * 1
478 + counters["@pixel r:219"] = counters["@pixel r:219"] + acc * 1
479 + counters["@pixel b:12"] = counters["@pixel b:12"] + acc * 1
480 + return true
481 + elseif counters["set line color"] > 0 and counters["current color is 4"] > 0 then
482 + local acc = huge
483 + acc = min(acc, counters["current color is 4"])
484 + acc = min(acc, counters["set line color"])
485 + counters["set line color"] = max(counters["set line color"] - acc, 0)
486 + counters["current color is 4"] = max(counters["current color is 4"] - acc, 0)
487 + counters["current color is 4"] = counters["current color is 4"] + acc * 1
488 + return true
489 + elseif counters["set line position"] > 0 then
490 + acc = counters["set line position"]
491 + counters["set line position"] = max(counters["set line position"] - acc, 0)
492 + counters["copy current mouse y -> @line y2:1000000"] = counters["copy current mouse y -> @line y2:1000000"] + acc * 1
493 + counters["copy old mouse x -> @line x1:1000000"] = counters["copy old mouse x -> @line x1:1000000"] + acc * 1
494 + counters["copy old mouse y -> @line y1:1000000"] = counters["copy old mouse y -> @line y1:1000000"] + acc * 1
495 + counters["copy current mouse x -> @line x2:1000000"] = counters["copy current mouse x -> @line x2:1000000"] + acc * 1
496 + return true
497 + elseif counters["draw the line"] > 0 then
498 + acc = counters["draw the line"]
499 + counters["draw the line"] = max(counters["draw the line"] - acc, 0)
500 + counters["@draw line"] = counters["@draw line"] + acc * 1
501 + return true
502 + elseif counters["plot line"] > 0 then
503 + acc = counters["plot line"]
504 + counters["plot line"] = max(counters["plot line"] - acc, 0)
505 + counters["set line position"] = counters["set line position"] + acc * 1
506 + counters["draw the line"] = counters["draw the line"] + acc * 1
507 + return true
508 + elseif counters["draw a line"] > 0 and counters["brush is drawing"] > 0 then
509 + local acc = huge
510 + acc = min(acc, counters["brush is drawing"])
511 + acc = min(acc, counters["draw a line"])
512 + counters["draw a line"] = max(counters["draw a line"] - acc, 0)
513 + counters["brush is drawing"] = max(counters["brush is drawing"] - acc, 0)
514 + counters["plot line"] = counters["plot line"] + acc * 1
515 + counters["clear pixel color"] = counters["clear pixel color"] + acc * 1
516 + counters["set line color"] = counters["set line color"] + acc * 1
517 + return true
518 + elseif counters["draw a line"] > 0 and counters["brush is erasing"] > 0 then
519 + local acc = huge
520 + acc = min(acc, counters["brush is erasing"])
521 + acc = min(acc, counters["draw a line"])
522 + counters["draw a line"] = max(counters["draw a line"] - acc, 0)
523 + counters["brush is erasing"] = max(counters["brush is erasing"] - acc, 0)
524 + counters["clear pixel color"] = counters["clear pixel color"] + acc * 1
525 + counters["plot line"] = counters["plot line"] + acc * 1
526 + return true
527 + elseif counters["draw a line"] > 0 then
528 + acc = counters["draw a line"]
529 + counters["draw a line"] = max(counters["draw a line"] - acc, 0)
530 + return true
531 + elseif counters["check for color change"] > 0 then
532 + acc = counters["check for color change"]
533 + counters["check for color change"] = max(counters["check for color change"] - acc, 0)
534 + counters["@mouse wheel"] = counters["@mouse wheel"] + acc * 1
535 + counters["update color"] = counters["update color"] + acc * 1
536 + return true
537 + elseif counters["update color"] > 0 and counters["@mouse wheel +y"] > 0 then
538 + local acc = huge
539 + acc = min(acc, counters["@mouse wheel +y"])
540 + acc = min(acc, counters["update color"])
541 + counters["update color"] = max(counters["update color"] - acc, 0)
542 + counters["@mouse wheel +y"] = max(counters["@mouse wheel +y"] - acc, 0)
543 + counters["next color"] = counters["next color"] + acc * 1
544 + return true
545 + elseif counters["update color"] > 0 and counters["@mouse wheel -y"] > 0 then
546 + local acc = huge
547 + acc = min(acc, counters["@mouse wheel -y"])
548 + acc = min(acc, counters["update color"])
549 + counters["update color"] = max(counters["update color"] - acc, 0)
550 + counters["@mouse wheel -y"] = max(counters["@mouse wheel -y"] - acc, 0)
551 + counters["previous color"] = counters["previous color"] + acc * 1
552 + return true
553 + elseif counters["current color is 1"] > 0 and counters["next color"] > 0 then
554 + local acc = huge
555 + acc = min(acc, counters["current color is 1"])
556 + acc = min(acc, counters["next color"])
557 + counters["current color is 1"] = max(counters["current color is 1"] - acc, 0)
558 + counters["next color"] = max(counters["next color"] - acc, 0)
559 + counters["current color is 2"] = counters["current color is 2"] + acc * 1
560 + return true
561 + elseif counters["current color is 2"] > 0 and counters["next color"] > 0 then
562 + local acc = huge
563 + acc = min(acc, counters["current color is 2"])
564 + acc = min(acc, counters["next color"])
565 + counters["current color is 2"] = max(counters["current color is 2"] - acc, 0)
566 + counters["next color"] = max(counters["next color"] - acc, 0)
567 + counters["current color is 3"] = counters["current color is 3"] + acc * 1
568 + return true
569 + elseif counters["current color is 3"] > 0 and counters["next color"] > 0 then
570 + local acc = huge
571 + acc = min(acc, counters["current color is 3"])
572 + acc = min(acc, counters["next color"])
573 + counters["current color is 3"] = max(counters["current color is 3"] - acc, 0)
574 + counters["next color"] = max(counters["next color"] - acc, 0)
575 + counters["current color is 4"] = counters["current color is 4"] + acc * 1
576 + return true
577 + elseif counters["current color is 4"] > 0 and counters["next color"] > 0 then
578 + local acc = huge
579 + acc = min(acc, counters["next color"])
580 + acc = min(acc, counters["current color is 4"])
581 + counters["current color is 4"] = max(counters["current color is 4"] - acc, 0)
582 + counters["next color"] = max(counters["next color"] - acc, 0)
583 + counters["current color is 1"] = counters["current color is 1"] + acc * 1
584 + return true
585 + elseif counters["current color is 1"] > 0 and counters["previous color"] > 0 then
586 + local acc = huge
587 + acc = min(acc, counters["current color is 1"])
588 + acc = min(acc, counters["previous color"])
589 + counters["current color is 1"] = max(counters["current color is 1"] - acc, 0)
590 + counters["previous color"] = max(counters["previous color"] - acc, 0)
591 + counters["current color is 4"] = counters["current color is 4"] + acc * 1
592 + return true
593 + elseif counters["current color is 2"] > 0 and counters["previous color"] > 0 then
594 + local acc = huge
595 + acc = min(acc, counters["current color is 2"])
596 + acc = min(acc, counters["previous color"])
597 + counters["current color is 2"] = max(counters["current color is 2"] - acc, 0)
598 + counters["previous color"] = max(counters["previous color"] - acc, 0)
599 + counters["current color is 1"] = counters["current color is 1"] + acc * 1
600 + return true
601 + elseif counters["current color is 3"] > 0 and counters["previous color"] > 0 then
602 + local acc = huge
603 + acc = min(acc, counters["current color is 3"])
604 + acc = min(acc, counters["previous color"])
605 + counters["current color is 3"] = max(counters["current color is 3"] - acc, 0)
606 + counters["previous color"] = max(counters["previous color"] - acc, 0)
607 + counters["current color is 2"] = counters["current color is 2"] + acc * 1
608 + return true
609 + elseif counters["current color is 4"] > 0 and counters["previous color"] > 0 then
610 + local acc = huge
611 + acc = min(acc, counters["previous color"])
612 + acc = min(acc, counters["current color is 4"])
613 + counters["current color is 4"] = max(counters["current color is 4"] - acc, 0)
614 + counters["previous color"] = max(counters["previous color"] - acc, 0)
615 + counters["current color is 3"] = counters["current color is 3"] + acc * 1
616 + return true
617 + elseif counters["@mouse wheel +y"] > 0 then
618 + acc = counters["@mouse wheel +y"]
619 + counters["@mouse wheel +y"] = max(counters["@mouse wheel +y"] - acc, 0)
620 + return true
621 + elseif counters["@mouse wheel -y"] > 0 then
622 + acc = counters["@mouse wheel -y"]
623 + counters["@mouse wheel -y"] = max(counters["@mouse wheel -y"] - acc, 0)
624 + return true
625 + elseif counters["update"] > 0 then
626 + acc = counters["update"]
627 + counters["update"] = max(counters["update"] - acc, 0)
628 + counters["draw a line"] = counters["draw a line"] + acc * 1
629 + counters["check if mouse button is down"] = counters["check if mouse button is down"] + acc * 1
630 + counters["update mouse position"] = counters["update mouse position"] + acc * 1
631 + return true
632 + elseif counters["poll inputs"] > 0 then
633 + acc = counters["poll inputs"]
634 + counters["poll inputs"] = max(counters["poll inputs"] - acc, 0)
635 + counters["@poll inputs"] = counters["@poll inputs"] + acc * 1
636 + return true
637 + elseif counters["draw brush color"] > 0 then
638 + acc = counters["draw brush color"]
639 + counters["draw brush color"] = max(counters["draw brush color"] - acc, 0)
640 + counters["@line x2:30"] = counters["@line x2:30"] + acc * 1
641 + counters["@line y1:10"] = counters["@line y1:10"] + acc * 1
642 + counters["@line y2:10"] = counters["@line y2:10"] + acc * 1
643 + counters["draw the line"] = counters["draw the line"] + acc * 1
644 + counters["@line x1:10"] = counters["@line x1:10"] + acc * 1
645 + counters["set line color"] = counters["set line color"] + acc * 1
646 + return true
647 + elseif counters["display"] > 0 then
648 + acc = counters["display"]
649 + counters["display"] = max(counters["display"] - acc, 0)
650 + counters["@display"] = counters["@display"] + acc * 1
651 + return true
652 + elseif counters["sleep"] > 0 then
653 + acc = counters["sleep"]
654 + counters["sleep"] = max(counters["sleep"] - acc, 0)
655 + counters["@sleep:16"] = counters["@sleep:16"] + acc * 1
656 + return true
657 + elseif counters["main loop"] > 0 then
658 + acc = counters["main loop"]
659 + counters["main loop"] = max(counters["main loop"] - acc, 0)
660 + counters["sleep"] = counters["sleep"] + acc * 1
661 + counters["display"] = counters["display"] + acc * 1
662 + counters["main loop"] = counters["main loop"] + acc * 1
663 + counters["check for color change"] = counters["check for color change"] + acc * 1
664 + counters["poll inputs"] = counters["poll inputs"] + acc * 1
665 + counters["draw brush color"] = counters["draw brush color"] + acc * 1
666 + counters["update"] = counters["update"] + acc * 1
667 + return true
668 + end
669 + return false
670 + end
上一页 下一页