@@ -4,6 +4,7 @@ var quizOn: bool = false
4
4
var voted : bool = false
5
5
var countdown : float
6
6
var round_data : Dictionary = {}
7
+ var mediaDict : Dictionary = {}
7
8
8
9
func _ready ():
9
10
countdown = scene_manager .round_duration
@@ -74,38 +75,25 @@ func show_round_data(data: Dictionary):
74
75
$ Quiz/Question/Label .show ()
75
76
elif data .question .type == 1 :
76
77
$ Quiz/Question/Label .hide ()
77
- var img : Image = Image .new ()
78
- var err : Error = img .load_png_from_buffer (data .question .text .to_utf8_buffer ())
79
- if err != OK :
80
- print ("img error " , err )
81
- print ("img " , img )
82
-
83
- var imgtex : ImageTexture = ImageTexture .new ()
84
- imgtex .set_image (img )
85
- print ("imgtex " , imgtex )
86
- $ Quiz/Question/Image .texture = imgtex
87
- $ Quiz/Question/Image .show ()
78
+ $ Quiz/Question/Image .hide ()
79
+ mediaDict [data .question .text ] = $ Quiz/Question/Image
88
80
89
81
if data .answers [0 ].type == 0 :
90
82
$ Quiz/Answers/A/Image .hide ()
91
83
$ Quiz/Answers/A/Label .text = data .answers [0 ].text
92
84
$ Quiz/Answers/A/Label .show ()
93
85
elif data .answers [0 ].type == 1 :
94
86
$ Quiz/Answers/A/Label .hide ()
95
- var img : Image = Image .new ()
96
- img .load_png_from_buffer (data .question .text .to_utf8_buffer ())
97
- $ Quiz/Answers/A/Quiz/Answers/A/Image .Texture = ImageTexture .create_from_image (img )
98
- $ Quiz/Answers/A/Image .show ()
87
+ $ Quiz/Answers/A/Image .hide ()
88
+ mediaDict [data .answers [0 ].text ] = $ Quiz/Question/A/Image
99
89
if data .answers [1 ].type == 0 :
100
90
$ Quiz/Answers/B/Image .hide ()
101
91
$ Quiz/Answers/B/Label .text = data .answers [1 ].text
102
92
$ Quiz/Answers/B/Label .show ()
103
93
elif data .answers [1 ].type == 1 :
104
94
$ Quiz/Answers/B/Label .hide ()
105
- var img : Image = Image .new ()
106
- img .load_png_from_buffer (data .question .text .to_utf8_buffer ())
107
- $ Quiz/Answers/B/Image .Texture = ImageTexture .create_from_image (img )
108
- $ Quiz/Answers/B/Image .show ()
95
+ $ Quiz/Answers/B/Image .hide ()
96
+ mediaDict [data .answers [1 ].text ] = $ Quiz/Answers/B/Image
109
97
110
98
if len (data .answers ) >= 3 :
111
99
if data .answers [2 ].type == 0 :
@@ -114,10 +102,8 @@ func show_round_data(data: Dictionary):
114
102
$ Quiz/Answers/C/Label .show ()
115
103
elif data .answers [2 ].type == 1 :
116
104
$ Quiz/Answers/C/Label .hide ()
117
- var img : Image = Image .new ()
118
- img .load_png_from_buffer (data .question .text .to_utf8_buffer ())
119
- $ Quiz/Answers/C/Image .Texture = ImageTexture .create_from_image (img )
120
- $ Quiz/Answers/C/Image .show ()
105
+ $ Quiz/Answers/C/Image .hide ()
106
+ mediaDict [data .answers [2 ].text ] = $ Quiz/Answers/C/Image
121
107
$ Quiz/Answers/C .show ()
122
108
else :
123
109
$ Quiz/Answers/C .hide ()
@@ -128,13 +114,14 @@ func show_round_data(data: Dictionary):
128
114
$ Quiz/Answers/D/Label .show ()
129
115
elif data .answers [3 ].type == 1 :
130
116
$ Quiz/Answers/D/Label .hide ()
131
- var img : Image = Image .new ()
132
- img .load_png_from_buffer (data .question .text .to_utf8_buffer ())
133
- $ Quiz/Answers/D/Image .Texture = ImageTexture .create_from_image (img )
134
- $ Quiz/Answers/D/Image .show ()
117
+ $ Quiz/Answers/D/Image .hide ()
118
+ mediaDict [data .answers [3 ].text ] = $ Quiz/Answers/D/Image
135
119
$ Quiz/Answers/D .show ()
136
120
else :
137
121
$ Quiz/Answers/D .hide ()
122
+
123
+ if len (mediaDict ) > 0 :
124
+ api .round_media (data .question .text , on_round_media_response )
138
125
139
126
$ Quiz/Answers/VoteIcon/Icon .self_modulate = Color .WHITE
140
127
$ Quiz/Answers/VoteIcon .show ()
@@ -166,3 +153,13 @@ func on_server_api_got_ws_message(msg: Dictionary):
166
153
on_round_end (msg )
167
154
_ :
168
155
print ("Got unkown ws message type: '%s ': %s " % [msg .type , msg ])
156
+
157
+ func on_round_media_response (success : bool , media : String , data : PackedByteArray ):
158
+ if success :
159
+ img .load_png_from_buffer (data )
160
+ mediaDict [media ].show ()
161
+
162
+ mediaDict .erase (media )
163
+ return
164
+ var next_media = mediaDict .keys ()[0 ]
165
+ api .round_media (next_media , on_round_media_response )
0 commit comments