/* * Copyright 2008-2009 Ben Boeckel * * This program 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 3 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, see . */ // Header include #include "Containment.h" // Sigencore includes #include "Creature.h" // Sigscript includes #include #include Sigencore::Containment::Containment(Sigscript::SigmodWrapper* sigmod, Sigscript::Config* parent) : Sigscript::Config(parent), m_sigmod(sigmod) { } Sigencore::Containment::~Containment() { } QList Sigencore::Containment::members() const { return m_members; } int Sigencore::Containment::numMembers() const { return m_members.size(); } bool Sigencore::Containment::addMember(Creature* member) { member->setContainment(this); m_members.append(member); emit(memberAdded(member, m_members.size() - 1)); return true; } bool Sigencore::Containment::removeMember(Creature* member) { // TODO return false; } Sigencore::Creature* Sigencore::Containment::findMember(const QUuid& id) const { foreach (Creature* member, m_members) { if (member->id() == id) return member; } return NULL; } bool Sigencore::Containment::reorder(const int from, const int to) { if ((from < m_members.size()) && (to < m_members.size())) { Creature* member = m_members[from]; m_members.insert(to, m_members.takeAt(from)); emit(memberMoved(member, from, to)); return true; } return false; } Sigscript::SigmodWrapper* Sigencore::Containment::sigmod() const { return m_sigmod; }