File indexing completed on 2024-05-05 04:02:27

0001 /******************************************************************************
0002 *   KBlocks, a falling blocks game by KDE                                     *
0003 *   SPDX-FileCopyrightText: 2010-2021 Julian Helfferich <julian.helfferich@mailbox.org> *
0004 *                                                                             *
0005 *   SPDX-License-Identifier: GPL-2.0-or-later
0006 ******************************************************************************/
0007 
0008 #ifndef TESTINGKBLOCKSITEMGROUP_H
0009 #define TESTINGKBLOCKSITEMGROUP_H
0010 
0011 #include "KBlocksItemGroup.h"
0012 #include "SvgItemInterface.h"
0013 
0014 class TestingKBlocksItemGroup : public KBlocksItemGroup
0015 {
0016 public:
0017     TestingKBlocksItemGroup(int groupID, SingleGameInterface *p, GraphicsInterface *pG, SoundInterface *pS)
0018         : KBlocksItemGroup(groupID, p, pG, pS)
0019     {}
0020     ~TestingKBlocksItemGroup() override = default;
0021 
0022     void callUpdateGame()
0023     {
0024         KBlocksItemGroup::updateGame();
0025     }
0026 
0027     SvgItemInterface *getFreezeCell(int cellNum)
0028     {
0029         if (cellNum < mMaxFreezeCellNum) {
0030             return maFreezeCells[cellNum];
0031         }
0032         return nullptr;
0033     }
0034 
0035     int getMaxPrepareCellNum() const
0036     {
0037         return mMaxPrepareCellNum;
0038     }
0039 
0040     SvgItemInterface *getPrepareCell(int cellNum)
0041     {
0042         if (cellNum < mMaxPrepareCellNum) {
0043             return maPrepareCells[cellNum];
0044         }
0045         return nullptr;
0046     }
0047 
0048     void replacePrepareCell(int cellNum, SvgItemInterface* newItem)
0049     {
0050         if (cellNum >= mMaxPrepareCellNum) {
0051             return;
0052         }
0053         removeFromGroup(maPrepareCells[cellNum]);
0054         delete maPrepareCells[cellNum];
0055 
0056         maPrepareCells[cellNum] = newItem;
0057         addToGroup(maPrepareCells[cellNum]);
0058     }
0059 
0060     void replaceFreezeCell(int cellNum, SvgItemInterface* newItem)
0061     {
0062         if (cellNum >= mMaxFreezeCellNum) {
0063             return;
0064         }
0065         removeFromGroup(maFreezeCells[cellNum]);
0066         delete maFreezeCells[cellNum];
0067 
0068         maFreezeCells[cellNum] = newItem;
0069         addToGroup(maFreezeCells[cellNum]);
0070     }
0071 };
0072 
0073 #endif // TESTINGKBLOCKSITEMGROUP_H