Просмотр исходного кода

Added select all to IDE sprite editor, sprite set will now generate sprite frames in correct order

Ivan Safrin 10 лет назад
Родитель
Сommit
b251f8e5a6

+ 2 - 2
Core/Contents/Source/PolySceneSprite.cpp

@@ -789,8 +789,8 @@ void SpriteSet::clearFrames() {
 
 void SpriteSet::createGridFrames(Number width, Number height, const Vector2 &defaultAnchor) {
     
-    for(Number x = 0.0; x+width <= 1.0; x += width) {
-        for(Number y = 0.0; y+height <= 1.0; y += height) {
+    for(Number y = 0.0; y+height <= 1.0; y += height) {
+        for(Number x = 0.0; x+width <= 1.0; x += width) {
             SpriteFrame frame;
             frame.coordinates = Polycode::Rectangle(x, y, width, height);
             frame.anchorPoint = defaultAnchor;

+ 3 - 0
IDE/Contents/Include/PolycodeSpriteEditor.h

@@ -65,6 +65,7 @@ class SpriteSheetEditor : public UIElement {
     
         void deleteSelectedFrames();
     
+        void selectAll();
         void clearSelected();
         bool hasSelectedID(unsigned int frameID);
         std::vector<unsigned int> getSelectedFrameIDs();
@@ -312,6 +313,8 @@ class PolycodeSpriteEditor : public PolycodeEditor {
 		bool openFile(OSFileEntry filePath);
 		void Resize(int x, int y);
 		void saveFile();
+    
+        void selectAll();
 				
 	protected:
 	

+ 15 - 0
IDE/Contents/Source/PolycodeSpriteEditor.cpp

@@ -491,6 +491,16 @@ void SpriteSheetEditor::handleEvent(Event *event) {
     }
 }
 
+void SpriteSheetEditor::selectAll() {
+    if(previewBg->hasFocus) {
+        clearSelected();
+        for(int i=0; i < sprite->getNumFrames(); i++) {
+            SpriteFrame frame = sprite->getSpriteFrame(i);
+            selectedIDs.push_back(frame.frameID);
+        }
+    }
+}
+
 void SpriteSheetEditor::deleteSelectedFrames() {
  
     for(int i=0; i < selectedIDs.size(); i++) {
@@ -1800,6 +1810,7 @@ void PolycodeSpriteEditor::handleEvent(Event *event) {
             state->rebuildStateMeshes();
         }
     }
+    PolycodeEditor::handleEvent(event);
 }
 
 PolycodeSpriteEditor::~PolycodeSpriteEditor() {
@@ -1865,6 +1876,10 @@ bool PolycodeSpriteEditor::openFile(OSFileEntry filePath) {
     return true;
 }
 
+void PolycodeSpriteEditor::selectAll() {
+    spriteSheetEditor->selectAll();
+}
+
 void PolycodeSpriteEditor::saveFile() {
     Object fileObject;
     fileObject.root.name = "sprite_set";