diff --git a/TiledCollisionEditor/main.cpp b/TiledCollisionEditor/main.cpp index 696a60b..a818b69 100644 --- a/TiledCollisionEditor/main.cpp +++ b/TiledCollisionEditor/main.cpp @@ -23,6 +23,9 @@ class TiledCollisionEditor : public olc::PixelGameEngine bool dragTranslate=false; vf2d upperLeftDragOffset{}; + bool dragNewObj=false; + vi2d upperLeftObjTile{}; + Renderable circle; Renderable createNewButtonImg; Renderable editButtonImg; @@ -35,8 +38,6 @@ public: sAppName = "TiledCollisionEditor"; } - Renderable rollingCounter; - Manager gui; ImageCheckBox*createNewButton; @@ -60,8 +61,6 @@ public: std::string tilesetFilename=TILESET_DIR+"Basic Tileset.tsx"; Tileset&tileset=tilesets[tilesetFilename]=TSXParser{tilesetFilename}.GetData(); - rollingCounter.Load("rollingcounter.png",nullptr,false,false); - Renderable&tilesetImg=images[tilesetFilename]; tilesetImg.Load(TILESET_DIR+tileset.filename); @@ -220,6 +219,25 @@ public: } } + void NewObjectUpdate(){ + if(GetMouse(Mouse::LEFT).bPressed){ + const Tileset&tileset=tilesets[activeTileset]; + + vf2d worldCoords=view.ScreenToWorld(GetMousePos()); + upperLeftObjTile=vf2d{round(worldCoords.x/tileset.tilewidth)*tileset.tilewidth,round(worldCoords.y/tileset.tileheight)*tileset.tileheight}; + dragNewObj=true; + } + if(GetMouse(Mouse::LEFT).bReleased){ + dragNewObj=false; + + const Tileset&tileset=tilesets[activeTileset]; + //Check for intersection with other objects, if found then we deny creating this object this way. + for(auto&[name,obj]:tileset.objects){ + + } + } + } + bool OnUserUpdate(float fElapsedTime) override { Clear(VERY_DARK_BLUE); @@ -250,7 +268,11 @@ public: if(editButton->bPressed)createNewButton->bChecked=false; if(GetMouseY()72){ - Update(); + if(!dragNewObj){ + Update(); + }else{ + NewObjectUpdate(); + } } //Font test. @@ -259,7 +281,7 @@ public: DrawStringPropDecal({0,36},"the quick brown fox jumps over the lazy dog 1234567890 !@#$%^&*()-=_+[]{}\\;':\",./<>?~`",WHITE,{1.5f,1.5f}); DrawStringPropDecal({0,54},"THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG 1234567890 !@#$%^&*()-=_+[]{}\\;':\",./<>?~`",WHITE,{1.5f,1.5f}); */ - if(selectedObj.length()>0){ + if(selectedObj.length()>0&&!dragNewObj){ const TilesetObject&obj=tileset.objects.at(selectedObj); Quadrilateral*highlightedQuad=nullptr; @@ -294,6 +316,9 @@ public: } } } + }else + if(dragNewObj){ + } for(auto&[objName,obj]:tileset.objects){ diff --git a/assets/EditButton.png b/assets/EditButton.png new file mode 100644 index 0000000..2a6899c Binary files /dev/null and b/assets/EditButton.png differ diff --git a/assets/font2.png b/assets/font2.png new file mode 100644 index 0000000..daeb4e6 Binary files /dev/null and b/assets/font2.png differ diff --git a/assets/newCollisionButton.png b/assets/newCollisionButton.png new file mode 100644 index 0000000..afc8d3a Binary files /dev/null and b/assets/newCollisionButton.png differ