32
32
import com .bladecoder .engine .anim .Tween ;
33
33
import com .bladecoder .engine .anim .Tween .Type ;
34
34
import com .bladecoder .engine .assets .EngineAssetManager ;
35
+ import com .bladecoder .engine .i18n .I18N ;
35
36
import com .bladecoder .engine .model .ActorRenderer ;
36
37
import com .bladecoder .engine .model .AtlasRenderer ;
37
38
import com .bladecoder .engine .model .ImageRenderer ;
@@ -56,6 +57,7 @@ public class EditAnimationDialog extends EditModelDialog<SpriteActor, AnimationD
56
57
InputPanel source ;
57
58
InputPanel atlas ;
58
59
InputPanel id ;
60
+ InputPanel localizable ;
59
61
InputPanel repeat ;
60
62
InputPanel speed ;
61
63
InputPanel count ;
@@ -79,6 +81,9 @@ public EditAnimationDialog(Skin skin, SpriteActor p, AnimationDesc e) {
79
81
atlas = InputPanelFactory .createInputPanel (skin , "Atlas" ,
80
82
"Select the atlas for the selected Spine skeleton" ,
81
83
getAtlases (), true );
84
+ localizable = InputPanelFactory .createInputPanel (skin , "Localizable" ,
85
+ "True if the image is customizable per language." ,Param .Type .BOOLEAN , true , "false"
86
+ );
82
87
id = InputPanelFactory .createInputPanel (skin , "ID" ,
83
88
"Select the id of the animation" , new String [0 ], true );
84
89
repeat = InputPanelFactory .createInputPanel (skin , "Animation type" ,
@@ -100,12 +105,12 @@ public EditAnimationDialog(Skin skin, SpriteActor p, AnimationDesc e) {
100
105
"Select the distance in pixels to add to the actor position when the sprite is changed" ,
101
106
Param .Type .VECTOR2 , false );
102
107
sound = InputPanelFactory .createInputPanel (skin , "Sound" ,
103
- "Select the sound ID that will be play when displayed " );
108
+ "Select the sound ID that will be played when showing " );
104
109
preload = InputPanelFactory .createInputPanel (skin , "Preload" ,
105
110
"Preload the animation when the scene is loaded" ,
106
111
Param .Type .BOOLEAN , true , "true" );
107
112
dispose = InputPanelFactory .createInputPanel (skin , "Dispose When Played" ,
108
- "Dispose de animation when the animation is played " ,
113
+ "Dispose de animation after playing " ,
109
114
Param .Type .BOOLEAN , true , "false" );
110
115
111
116
((SelectBox <String >) repeat .getField ())
@@ -156,11 +161,20 @@ public void changed(ChangeEvent event, Actor actor) {
156
161
157
162
setInfoWidget (spriteWidget );
158
163
159
- init (p , e , new InputPanel [] { source , atlas , id , repeat , speed ,
164
+ init (p , e , new InputPanel [] { source , localizable , atlas , id , repeat , speed ,
160
165
count , in , out , sound , preload , dispose });
161
166
162
167
setVisible (count ,false );
163
168
setVisible (atlas ,false );
169
+ setVisible (localizable ,false );
170
+
171
+ ActorRenderer renderer = parent .getRenderer ();
172
+ if (renderer instanceof ImageRenderer ) {
173
+ setVisible (localizable ,true );
174
+ setVisible (speed ,false );
175
+ setVisible (repeat ,false );
176
+ setVisible (id ,false );
177
+ }
164
178
165
179
addSources ();
166
180
if (e != null ) {
@@ -429,11 +443,22 @@ protected void inputsToModel(boolean create) {
429
443
if (create ) {
430
444
parent .getRenderer ().addAnimation (e );
431
445
}
446
+
447
+ ActorRenderer renderer = parent .getRenderer ();
448
+ if (renderer instanceof ImageRenderer && Boolean .parseBoolean (localizable .getText ())) {
449
+ String key = source .getText ();
450
+
451
+ // if (key == null || key.isEmpty() || key.charAt(0) != I18N.PREFIX)
452
+ // key = Ctx.project.getI18N().genKey(parent.getId(), e.getId(), "image");
453
+ //
454
+ // Ctx.project.getI18N().setTranslation(key, desc.getText());
455
+ }
432
456
433
457
// TODO UNDO OP
434
458
// UndoOp undoOp = new UndoAddElement(doc, e);
435
459
// Ctx.project.getUndoStack().add(undoOp);
436
460
461
+
437
462
Ctx .project .setModified ();
438
463
}
439
464
@@ -455,6 +480,12 @@ protected void modelToInputs() {
455
480
dispose .setText (Boolean .toString (e .disposeWhenPlayed ));
456
481
457
482
showHideFieldsDelayCountFields ();
483
+
484
+ ActorRenderer renderer = parent .getRenderer ();
485
+ if (renderer instanceof ImageRenderer && e .source .charAt (0 ) == I18N .PREFIX ) {
486
+ localizable .setText ("true" );
487
+ source .setText (Ctx .project .translate (e .source ));
488
+ }
458
489
}
459
490
460
491
}
0 commit comments