Skip to content

Commit 93941c5

Browse files
(v2) Scene editor: tile position tooling done.
1 parent 4d4b99c commit 93941c5

File tree

3 files changed

+41
-4
lines changed

3 files changed

+41
-4
lines changed

source/v2/phasereditor/phasereditor.scene.ui/src/phasereditor/scene/ui/editor/SceneCanvas.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -716,6 +716,8 @@ void setSelection_from_internal(List<Object> list) {
716716
if (_editor.getOutline() != null) {
717717
_editor.getOutline().setSelection_from_external(sel);
718718
}
719+
720+
clearInteractiveElements();
719721
}
720722

721723
private static boolean hitsPolygon(int x, int y, float[] polygon) {
@@ -797,7 +799,11 @@ private static boolean hitsPolygon(int x, int y, float[] polygon) {
797799
}
798800

799801
public void setSelection_from_external(IStructuredSelection selection) {
802+
800803
_selection = new ArrayList<>(List.of(selection.toArray()));
804+
805+
clearInteractiveElements();
806+
801807
redraw();
802808
}
803809

source/v2/phasereditor/phasereditor.scene.ui/src/phasereditor/scene/ui/editor/interactive/TilePositionElement.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import phasereditor.scene.core.ObjectModel;
3434
import phasereditor.scene.core.TileSpriteComponent;
3535
import phasereditor.scene.ui.editor.SceneEditor;
36+
import phasereditor.scene.ui.editor.undo.SingleObjectSnapshotOperation;
3637
import phasereditor.ui.PhaserEditorUI;
3738

3839
/**
@@ -246,6 +247,36 @@ public void mouseDown(MouseEvent e) {
246247

247248
@Override
248249
public void mouseUp(MouseEvent e) {
250+
if (_dragging) {
251+
252+
var editor = getEditor();
253+
254+
getModels().forEach(model -> {
255+
256+
model.put("final-tilePositionX", TileSpriteComponent.get_tilePositionX(model));
257+
model.put("final-tilePositionY", TileSpriteComponent.get_tilePositionY(model));
258+
259+
TileSpriteComponent.set_tilePositionX(model, (float) model.get("initial-tilePositionX"));
260+
TileSpriteComponent.set_tilePositionY(model, (float) model.get("initial-tilePositionY"));
261+
262+
});
263+
264+
var before = SingleObjectSnapshotOperation.takeSnapshot(getModels());
265+
266+
getModels().forEach(model -> {
267+
268+
TileSpriteComponent.set_tilePositionX(model, (float) model.get("final-tilePositionX"));
269+
TileSpriteComponent.set_tilePositionY(model, (float) model.get("final-tilePositionY"));
270+
271+
});
272+
273+
var after = SingleObjectSnapshotOperation.takeSnapshot(getModels());
274+
275+
editor.executeOperation(new SingleObjectSnapshotOperation(before, after, "Set tile position.", true));
276+
277+
editor.setDirty(true);
278+
279+
}
249280
_dragging = false;
250281
}
251282

source/v2/phasereditor/phasereditor.scene.ui/src/phasereditor/scene/ui/editor/properties/EditorSection.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
import phasereditor.scene.core.SpriteModel;
4848
import phasereditor.scene.core.TileSpriteModel;
4949
import phasereditor.scene.ui.editor.SceneEditor;
50-
import phasereditor.scene.ui.editor.undo.SceneSnapshotOperation;
50+
import phasereditor.scene.ui.editor.undo.SingleObjectSnapshotOperation;
5151
import phasereditor.scene.ui.editor.undo.WorldSnapshotOperation;
5252
import phasereditor.ui.EditorSharedImages;
5353

@@ -132,15 +132,15 @@ protected void update_editorField() {
132132
getModels().forEach(model -> {
133133
SceneEditor editor = getEditor();
134134

135-
var before = WorldSnapshotOperation.takeSnapshot(editor);
135+
var before = SingleObjectSnapshotOperation.takeSnapshot(getModels());
136136

137137
EditorComponent.set_editorField(model, _fieldAction.isChecked());
138138

139139
editor.setDirty(true);
140140

141-
var after = WorldSnapshotOperation.takeSnapshot(editor);
141+
var after = SingleObjectSnapshotOperation.takeSnapshot(getModels());
142142

143-
editor.executeOperation(new SceneSnapshotOperation(before, after, "Set variables field flag."));
143+
editor.executeOperation(new SingleObjectSnapshotOperation(before, after, "Set variables field flag."));
144144
});
145145
}
146146

0 commit comments

Comments
 (0)