15
15
******************************************************************************/
16
16
package com .bladecoder .engineeditor .scneditor ;
17
17
18
+ import java .io .File ;
18
19
import java .io .IOException ;
19
20
20
21
import com .badlogic .gdx .Gdx ;
21
22
import com .badlogic .gdx .files .FileHandle ;
23
+ import com .badlogic .gdx .graphics .Texture .TextureFilter ;
22
24
import com .badlogic .gdx .scenes .scene2d .Actor ;
23
25
import com .badlogic .gdx .scenes .scene2d .Stage ;
24
26
import com .badlogic .gdx .scenes .scene2d .ui .Container ;
34
36
import com .bladecoder .engineeditor .Ctx ;
35
37
import com .bladecoder .engineeditor .common .EditorLogger ;
36
38
import com .bladecoder .engineeditor .common .I18NUtils ;
39
+ import com .bladecoder .engineeditor .common .ImageUtils ;
37
40
import com .bladecoder .engineeditor .common .Message ;
38
41
import com .bladecoder .engineeditor .common .ModelTools ;
39
42
import com .bladecoder .engineeditor .common .RunProccess ;
43
+ import com .bladecoder .engineeditor .model .Project ;
40
44
import com .kotcrab .vis .ui .widget .file .FileChooser ;
41
45
import com .kotcrab .vis .ui .widget .file .FileChooser .Mode ;
42
46
import com .kotcrab .vis .ui .widget .file .FileChooser .SelectionMode ;
@@ -60,6 +64,9 @@ public ToolsWindow(Skin skin, ScnWidget sw) {
60
64
TextButton testOnIOSDeviceButton = new TextButton ("Test on IOS device" , skin , "no-toggled" );
61
65
TextButton exportTSVButton = new TextButton ("I18N - Export texts as .tsv" , skin , "no-toggled" );
62
66
TextButton importTSVButton = new TextButton ("I18N - Import.tsv file" , skin , "no-toggled" );
67
+
68
+ TextButton exportUIImages = new TextButton ("Export UI Images" , skin , "no-toggled" );
69
+ TextButton createUIAtlas = new TextButton ("Create UI Atlas" , skin , "no-toggled" );
63
70
64
71
table .defaults ().left ().expandX ();
65
72
table .top ().pad (DPIUtils .getSpacing () / 2 );
@@ -92,6 +99,12 @@ public ToolsWindow(Skin skin, ScnWidget sw) {
92
99
93
100
table .row ();
94
101
table .add (importTSVButton ).expandX ().fill ();
102
+
103
+ table .row ();
104
+ table .add (exportUIImages ).expandX ().fill ();
105
+
106
+ table .row ();
107
+ table .add (createUIAtlas ).expandX ().fill ();
95
108
96
109
// table.row();
97
110
// table.add(tmpButton).expandX().fill();
@@ -153,13 +166,94 @@ public void changed(ChangeEvent event, Actor actor) {
153
166
importTSV ();
154
167
}
155
168
});
169
+
170
+ exportUIImages .addListener (new ChangeListener () {
171
+ @ Override
172
+ public void changed (ChangeEvent event , Actor actor ) {
173
+ exportUIImages ();
174
+ }
175
+ });
176
+
177
+ createUIAtlas .addListener (new ChangeListener () {
178
+ @ Override
179
+ public void changed (ChangeEvent event , Actor actor ) {
180
+ createUIAtlas ();
181
+ }
182
+ });
156
183
157
184
table .pack ();
158
185
setActor (table );
159
186
prefSize (table .getWidth (), Math .max (200 , table .getHeight ()));
160
187
setSize (table .getWidth (), Math .max (200 , table .getHeight ()));
161
188
}
162
189
190
+ protected void createUIAtlas () {
191
+ FileChooser fileChooser = new FileChooser (Mode .OPEN );
192
+ fileChooser .setSize (Gdx .graphics .getWidth () * 0.7f , Gdx .graphics .getHeight () * 0.7f );
193
+ fileChooser .setViewMode (ViewMode .LIST );
194
+
195
+ fileChooser .setSelectionMode (SelectionMode .DIRECTORIES );
196
+ getStage ().addActor (fileChooser );
197
+
198
+ fileChooser .setListener (new FileChooserListener () {
199
+
200
+ @ Override
201
+ public void selected (Array <FileHandle > files ) {
202
+ try {
203
+ // fileChooser.setTitle("Select the file to export the project texts");
204
+
205
+ ImageUtils .createAtlas (files .get (0 ).file ().getAbsolutePath (),
206
+ Ctx .project .getProjectPath () + "/" + Project .UI_PATH + "/1/" , "ui" , 1 , TextureFilter .Linear ,
207
+ TextureFilter .Nearest );
208
+
209
+ Message .showMsg (getStage (), "UI Atlas created sucessfully." , 4 );
210
+ } catch (IOException e ) {
211
+ Message .showMsg (getStage (), "There was a problem creating the UI Atlas." , 4 );
212
+ EditorLogger .printStackTrace (e );
213
+ }
214
+ }
215
+
216
+ @ Override
217
+ public void canceled () {
218
+
219
+ }
220
+ });
221
+
222
+ }
223
+
224
+ protected void exportUIImages () {
225
+ FileChooser fileChooser = new FileChooser (Mode .OPEN );
226
+ fileChooser .setSize (Gdx .graphics .getWidth () * 0.7f , Gdx .graphics .getHeight () * 0.7f );
227
+ fileChooser .setViewMode (ViewMode .LIST );
228
+
229
+ fileChooser .setSelectionMode (SelectionMode .DIRECTORIES );
230
+ getStage ().addActor (fileChooser );
231
+
232
+ fileChooser .setListener (new FileChooserListener () {
233
+
234
+ @ Override
235
+ public void selected (Array <FileHandle > files ) {
236
+ try {
237
+ // fileChooser.setTitle("Select the file to export the project texts");
238
+
239
+ ImageUtils .unpackAtlas (new File (Ctx .project .getProjectPath () + "/" + Project .UI_PATH + "/1/ui.atlas" ),
240
+ files .get (0 ).file ());
241
+
242
+ Message .showMsg (getStage (), "UI Atlas images exported sucessfully." , 4 );
243
+ } catch (Exception e ) {
244
+ Message .showMsg (getStage (), "There was a problem exporting images from UI Atlas." , 4 );
245
+ EditorLogger .printStackTrace (e );
246
+ }
247
+ }
248
+
249
+ @ Override
250
+ public void canceled () {
251
+
252
+ }
253
+ });
254
+
255
+ }
256
+
163
257
private void exportTSV () {
164
258
165
259
FileChooser fileChooser = new FileChooser (Mode .SAVE );
0 commit comments