void MainWindow::loadScene(const QString& filename) { QSettings config(filename, QSettings::IniFormat); QSettings::Status status = config.status(); if (status == QSettings::AccessError) { qWarning() << "An access error occurred (e.g. trying to load a non-readable file):" << filename; return; } else if (status == QSettings::FormatError) { qWarning() << "A format error in the INI file occurred:" << filename; return; } const int version = config.value("general/version", -1).toInt(); if (version != 1) { qWarning() << "Unknown version in file, aborting:" << filename; return; } m_scene->load(config); config.beginGroup("tool-handler"); m_toolsUi->sbRadius->setValue(ToolHandler::operationRadius()); m_toolsUi->cmbTool->setCurrentIndex(config.value("tool", 0).toInt()); config.endGroup(); Config::self()->load(config); m_sceneFile = filename; updateActionState(); }
void MetalineEnemy::moveMetalineEnemy() { updateActionState(); if (actionState == DEFAULT_ACTION_STATE) { } else if (actionState == PLAYER_DETECTED_ACTION_STATE) { if (!hasCollided) { GameState *gs = GameState::GetInstance(); Vector3f playerPos = gs->GetPlayerPosition(); Vertex newDirection; newDirection.x = playerPos(0) - this->center.x; newDirection.y = playerPos(1) - this->center.y; newDirection.z = playerPos(2) - this->center.z; normalize(newDirection); this->velocity = Vec3f(newDirection.x * this->speed, newDirection.y * this->speed, newDirection.z * this->speed); } } else if (actionState == SOUND_DETECTED_ACTION_STATE) { //Move Toward Sound TODO } this->center.x = this->center.x + (this->velocity)[0]; this->center.y = this->center.y + (this->velocity)[1]; this->center.z = this->center.z + (this->velocity)[2]; }
void ActionRootState::setActionName(const QString &actionName) { if (m_actionName != actionName) { bool wasValid = valid(); m_actionName = actionName; updateActionState(); Q_EMIT actionNameChanged(); if (wasValid != valid()) Q_EMIT validChanged(); } }
void EditTalkableAction::actionInstanceCreated(Action *action) { switch (actionRole(action->context())) { case ChatRole: setChatActionTitleAndIcon(action); break; case BuddyRole: setBuddyActionTitleAndIcon(action); break; } updateActionState(action); }
void ActionRootState::setActionGroup(QDBusActionGroup *actionGroup) { if (m_actionGroup != actionGroup) { bool wasValid = valid(); if (m_actionGroup) { disconnect(m_actionGroup, 0, this, 0); } m_actionGroup = actionGroup; if (m_actionGroup) { connect(m_actionGroup, &QDBusActionGroup::statusChanged, this, [&](bool) { updateActionState(); }); connect(m_actionGroup, &QDBusActionGroup::actionAppear, this, [&](const QString&) { updateActionState(); }); connect(m_actionGroup, &QDBusActionGroup::actionVanish, this, [&](const QString&) { updateActionState(); }); connect(m_actionGroup, &QDBusActionGroup::actionStateChanged, this, [&](QVariant) { updateActionState(); }); connect(m_actionGroup, &QObject::destroyed, this, [&](QObject*) { updateActionState(); }); } updateActionState(); Q_EMIT actionGroupChanged(); if (wasValid != valid()) Q_EMIT validChanged(); } }