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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
# coding: utf-8
# Copyright 2019 DragonRuby LLC
# MIT License
# args.rb has been released under MIT (*only this file*).
module GTK
class Args
include ArgsDeprecated
attr_accessor :inputs, :outputs, :passes, :runtime,
:grid, :recording, :geometry
def initialize runtime, recording
@inputs = Inputs.new
@outputs = Outputs.new
@passes = []
@state = OpenEntity.new
@state.tick_count = -1
@runtime = runtime
@recording = recording
@grid = Grid.new runtime.ffi_draw
@render_targets = {}
@all_tests = []
@geometry = GTK::Geometry
end
def tick_count
@state.tick_count
end
def tick_count= value
@state.tick_count = value
end
def gtk
@runtime
end
def state
@state
end
def state= value
@state = value
end
def serialize
{
state: state.hash,
inputs: inputs.serialize,
passes: passes.serialize,
outputs: outputs.serialize,
grid: grid.serialize
}
end
def destructure
[grid, inputs, state, outputs, runtime, passes]
end
def clear_render_targets
@render_targets = {}
end
def render_target name
name = name.to_s
if !@render_targets[name]
@render_targets[name] = Outputs.new name
@passes << @render_targets[name]
end
@render_targets[name]
end
def solids
@outputs.solids
end
def static_solids
@outputs.static_solids
end
def sprites
@outputs.sprites
end
def static_sprites
@outputs.static_sprites
end
def labels
@outputs.labels
end
def static_labels
@outputs.static_labels
end
def lines
@outputs.lines
end
def static_lines
@outputs.static_lines
end
def borders
@outputs.borders
end
def static_borders
@outputs.static_borders
end
def primitives
@outputs.primitives
end
def static_primitives
@outputs.static_primitives
end
def keyboard
@inputs.keyboard
end
def click
return nil unless @inputs.mouse.click
@inputs.mouse.click.point
end
def click_at
return nil unless @inputs.mouse.click
@inpust.mouse.click.created_at
end
def mouse
@inputs.mouse
end
def controller_one
@inputs.controller_one
end
def controller_two
@inputs.controller_two
end
end
end
|