#include "gameDefines.h" extern Meteos*game; BlockClump::BlockClump(){ blocks.reserve(game->gameBoard.boardSize.x*game->gameBoard.boardSize.y); } std::vector&BlockClump::getBlocks(){ return blocks; } void BlockClump::addBlock(int col,BlockColor color){ blocks.push_back(Block({(float)col*12,0},color)); } void BlockClump::addBlock(int col,int row,BlockColor color){ blocks.push_back(Block({(float)col*12,(float)row*12},color)); } void BlockClump::addBlock(vf2d offset,BlockColor color){ blocks.push_back(Block(offset,color)); } void BlockClump::addBlockOnTopOf(int col,BlockColor color,int defaultY){ int highestY=999999; for (Block&b:blocks) { if (b.pos.x/12==col&&b.pos.y<=highestY) { highestY=b.pos.y; } } addBlock(col,(highestY==999999)?defaultY/12:highestY/12-1,color); } vf2d BlockClump::getBlockPosition(Block&b){ return {b.pos.x,b.pos.y+y}; } void BlockClump::sortBlocks(){ std::sort(blocks.begin(),blocks.end(),[](Block&b1,Block&b2){ return b1.pos.y>b2.pos.y; }); } void BlockClump::removeBlock(int i){ blocks.erase(blocks.begin()+i); }