diff options
| author | 2016-02-04 17:57:27 +0100 | |
|---|---|---|
| committer | 2016-02-04 17:57:27 +0100 | |
| commit | c796cef9dbbf48dcaf21dc4f4ea62db2ba4fe629 (patch) | |
| tree | 2fb48b9a958d8e8ce22dd648ac9df1cf4d2c8c7e | |
| parent | e7e79a8a74657ca6f8488a7cd3742bb2af734b0a (diff) | |
| download | OneRoll-c796cef9dbbf48dcaf21dc4f4ea62db2ba4fe629.tar.gz OneRoll-c796cef9dbbf48dcaf21dc4f4ea62db2ba4fe629.zip | |
Add node for painting dice and new class for result.
| -rw-r--r-- | highlightdice.cpp | 62 | ||||
| -rw-r--r-- | highlightdice.h | 50 | ||||
| -rw-r--r-- | node/paintnode.cpp | 119 | ||||
| -rw-r--r-- | node/paintnode.h | 57 |
4 files changed, 288 insertions, 0 deletions
diff --git a/highlightdice.cpp b/highlightdice.cpp new file mode 100644 index 0000000..7fefc33 --- /dev/null +++ b/highlightdice.cpp @@ -0,0 +1,62 @@ +/*************************************************************************** + * Copyright (C) 2016 by Renaud Guezennec * + * http:://www.rolisteam.org/contact * + * * + * rolisteam is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "highlightdice.h" + +HighLightDice::HighLightDice(QList<quint64> result,bool isHighlighted, QString color) + : m_result(result),m_hasHighlight(isHighlighted),m_color(color) +{ + +} + + +HighLightDice::~HighLightDice() +{ + +} + +QList<quint64> HighLightDice::getResult() const +{ + return m_result; +} + +void HighLightDice::setResult(const QList<quint64> &result) +{ + m_result = result; +} + +bool HighLightDice::isHighlighted() const +{ + return m_hasHighlight; +} + +void HighLightDice::setHighlight(bool hasHighlight) +{ + m_hasHighlight = hasHighlight; +} + +QString HighLightDice::getColor() const +{ + return m_color; +} + +void HighLightDice::setColor(const QString &color) +{ + m_color = color; +} diff --git a/highlightdice.h b/highlightdice.h new file mode 100644 index 0000000..60d0f06 --- /dev/null +++ b/highlightdice.h @@ -0,0 +1,50 @@ +/*************************************************************************** + * Copyright (C) 2016 by Renaud Guezennec * + * http:://www.rolisteam.org/contact * + * * + * rolisteam is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef HighLightDice_H +#define HighLightDice_H + +#include <QList> +#include <QString> + +class HighLightDice +{ + +public: + HighLightDice(QList<quint64> result,bool isHighlighted, QString color); + virtual ~HighLightDice(); + + + + QList<quint64> getResult() const; + void setResult(const QList<quint64> &result); + + bool isHighlighted() const; + void setHighlight(bool hasHighlight); + + QString getColor() const; + void setColor(const QString &color); + +private: + QList<quint64> m_result; + bool m_hasHighlight; + QString m_color; +}; + +#endif // HighLightDice_H diff --git a/node/paintnode.cpp b/node/paintnode.cpp new file mode 100644 index 0000000..19eeb7f --- /dev/null +++ b/node/paintnode.cpp @@ -0,0 +1,119 @@ +/*************************************************************************** + * Copyright (C) 2015 by Renaud Guezennec * + * http:://www.rolisteam.org/contact * + * * + * rolisteam is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#include "paintnode.h" + +ColorItem::ColorItem(QString str, int val) + : m_colorNumber(val),m_color(str) +{ + +} + +int ColorItem::colorNumber() const +{ + return m_colorNumber; +} + +void ColorItem::setColorNumber(int colorNumber) +{ + m_colorNumber = colorNumber; +} + +QString ColorItem::color() const +{ + return m_color; +} + +void ColorItem::setColor(const QString &color) +{ + m_color = color; +} + + +/////////////////////////////////// +/// @brief PainterNode::PainterNode +/////////////////////////////////// + +PainterNode::PainterNode() +{ + +} + + +PainterNode::~PainterNode() +{ + +} + + +void PainterNode::run(ExecutionNode *previous) +{ + m_previousNode = previous; + if(NULL==previous) + { + return; + } + Result* previousResult = previous->getResult(); + m_result = previousResult; + DiceResult* previousDiceResult = dynamic_cast<DiceResult*>(previousResult); + if(NULL!=previousDiceResult) + { + QList<Die*> diceList=previousDiceResult->getResultList(); + foreach(ColorItem item, m_colors) + { + int current=item.colorNumber(); + QList<Die*>::iterator it; + for(it = diceList.begin(); it != diceList.end() && current>0 ; ++it) + { + (*it)->setColor(item.color()); + --current; + } + } + } + if(NULL!=m_nextNode) + { + m_nextNode->run(this); + } +} + + +QString PainterNode::toString(bool wl) const +{ + if(wl) + { + return QString("%1 [label=\"PainterNode\"]").arg(m_id); + } + else + { + return m_id; + } +} + + +qint64 PainterNode::getPriority() const +{ + return 4; +} + + +void PainterNode::insertColorItem(QString color, int value) +{ + ColorItem item(color,value); + m_colors.append(item); +} diff --git a/node/paintnode.h b/node/paintnode.h new file mode 100644 index 0000000..e01eaee --- /dev/null +++ b/node/paintnode.h @@ -0,0 +1,57 @@ +/*************************************************************************** + * Copyright (C) 2015 by Renaud Guezennec * + * http:://www.rolisteam.org/contact * + * * + * rolisteam is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef PAINTERNODE_H +#define PAINTERNODE_H + +#include "executionnode.h" +#include "result/diceresult.h" +#include <QString> + + +class ColorItem +{ + +public: + ColorItem(QString str,int val); + int colorNumber() const; + void setColorNumber(int colorNumber); + + QString color() const; + void setColor(const QString &color); + +private: + int m_colorNumber; + QString m_color; +}; + +class PainterNode : public ExecutionNode +{ +public: + PainterNode(); + virtual ~PainterNode(); + virtual void run(ExecutionNode* previous = NULL); + virtual QString toString(bool )const; + virtual qint64 getPriority() const; + void insertColorItem(QString color, int value); +protected: + QList<ColorItem> m_colors; +}; + +#endif |