Skip to content

Commit 5e97f73

Browse files
committed
Add spriteFencing property
1 parent cc59a9c commit 5e97f73

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

ScratchCPPGui/ProjectPlayer.qml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ProjectScene {
88
property alias fps: loader.fps
99
property alias turboMode: loader.turboMode
1010
property alias cloneLimit: loader.cloneLimit
11+
property alias spriteFencing: loader.spriteFencing
1112

1213
id: root
1314
clip: true

ScratchCPPGui/projectloader.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ void ProjectLoader::setFileName(const QString &newFileName)
7878
m_engine->setStageWidth(m_stageWidth);
7979
m_engine->setStageHeight(m_stageHeight);
8080
m_engine->setCloneLimit(m_cloneLimit);
81+
m_engine->setSpriteFencingEnabled(m_spriteFencing);
8182

8283
auto handler = std::bind(&ProjectLoader::emitTick, this);
8384
m_engine->setRedrawHandler(std::function<void()>(handler));
@@ -265,3 +266,21 @@ void ProjectLoader::setCloneLimit(int newCloneLimit)
265266

266267
emit cloneLimitChanged();
267268
}
269+
270+
bool ProjectLoader::spriteFencing() const
271+
{
272+
return m_spriteFencing;
273+
}
274+
275+
void ProjectLoader::setSpriteFencing(bool newSpriteFencing)
276+
{
277+
if (m_spriteFencing == newSpriteFencing)
278+
return;
279+
280+
m_spriteFencing = newSpriteFencing;
281+
282+
if (m_engine)
283+
m_engine->setSpriteFencingEnabled(m_spriteFencing);
284+
285+
emit spriteFencingChanged();
286+
}

ScratchCPPGui/projectloader.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ class ProjectLoader : public QObject
2828
Q_PROPERTY(unsigned int stageWidth READ stageWidth WRITE setStageWidth NOTIFY stageWidthChanged)
2929
Q_PROPERTY(unsigned int stageHeight READ stageHeight WRITE setStageHeight NOTIFY stageHeightChanged)
3030
Q_PROPERTY(int cloneLimit READ cloneLimit WRITE setCloneLimit NOTIFY cloneLimitChanged)
31+
Q_PROPERTY(bool spriteFencing READ spriteFencing WRITE setSpriteFencing NOTIFY spriteFencingChanged)
3132

3233
public:
3334
explicit ProjectLoader(QObject *parent = nullptr);
@@ -65,6 +66,9 @@ class ProjectLoader : public QObject
6566
int cloneLimit() const;
6667
void setCloneLimit(int newCloneLimit);
6768

69+
bool spriteFencing() const;
70+
void setSpriteFencing(bool newSpriteFencing);
71+
6872
signals:
6973
void fileNameChanged();
7074
void loadedChanged();
@@ -76,6 +80,7 @@ class ProjectLoader : public QObject
7680
void stageWidthChanged();
7781
void stageHeightChanged();
7882
void cloneLimitChanged();
83+
void spriteFencingChanged();
7984

8085
protected:
8186
void timerEvent(QTimerEvent *event) override;
@@ -97,6 +102,7 @@ class ProjectLoader : public QObject
97102
unsigned int m_stageWidth;
98103
unsigned int m_stageHeight;
99104
int m_cloneLimit;
105+
bool m_spriteFencing;
100106
};
101107

102108
} // namespace scratchcppgui

0 commit comments

Comments
 (0)