mirror of
https://github.com/QuasarApp/Snake.git
synced 2025-05-10 00:19:45 +00:00
Merge branch 'main' into task_72
This commit is contained in:
commit
c8746abe3b
@ -73,3 +73,16 @@ if(QT_VERSION_MAJOR EQUAL 6)
|
|||||||
qt_import_qml_plugins(${CURRENT_PROJECT})
|
qt_import_qml_plugins(${CURRENT_PROJECT})
|
||||||
qt_finalize_executable(${CURRENT_PROJECT})
|
qt_finalize_executable(${CURRENT_PROJECT})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(LANGS ${CMAKE_CURRENT_SOURCE_DIR}/languages/en.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/ru.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/uk.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/ja.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/tr.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/zh.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/de.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/fr.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/es.ts
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/languages/pl.ts)
|
||||||
|
|
||||||
|
prepareQM(${CURRENT_PROJECT} ${CMAKE_CURRENT_SOURCE_DIR}/../ "${LANGS}")
|
||||||
|
14
src/Client/CrawlClient.qrc
Normal file
14
src/Client/CrawlClient.qrc
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="/crawlTranslations">
|
||||||
|
<file>languages/de.qm</file>
|
||||||
|
<file>languages/en.qm</file>
|
||||||
|
<file>languages/es.qm</file>
|
||||||
|
<file>languages/fr.qm</file>
|
||||||
|
<file>languages/ja.qm</file>
|
||||||
|
<file>languages/pl.qm</file>
|
||||||
|
<file>languages/ru.qm</file>
|
||||||
|
<file>languages/tr.qm</file>
|
||||||
|
<file>languages/uk.qm</file>
|
||||||
|
<file>languages/zh.qm</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
@ -11,7 +11,22 @@
|
|||||||
#include <Crawl/clientapp.h>
|
#include <Crawl/clientapp.h>
|
||||||
#include <testlvl.h>
|
#include <testlvl.h>
|
||||||
#include <abstractlvl.h>
|
#include <abstractlvl.h>
|
||||||
|
#include <quasarapp.h>
|
||||||
|
|
||||||
|
void initLang() {
|
||||||
|
QLocale locale = QLocale::system();
|
||||||
|
QString customLanguage = QuasarAppUtils::Params::getArg("lang");
|
||||||
|
if(customLanguage.size()) {
|
||||||
|
locale = QLocale(customLanguage);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!QuasarAppUtils::Locales::init(locale, {":/crawlTranslations/languages/",
|
||||||
|
":/credits_languages/",
|
||||||
|
":/qmlNotify_languages/",
|
||||||
|
":/lv_languages/"})){
|
||||||
|
QuasarAppUtils::Params::log("Error load language : ", QuasarAppUtils::Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@ -29,5 +44,8 @@ int main(int argc, char *argv[])
|
|||||||
if (!client.init(&engine)) {
|
if (!client.init(&engine)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initLang();
|
||||||
|
|
||||||
return app.exec();
|
return app.exec();
|
||||||
}
|
}
|
||||||
|
@ -35,17 +35,4 @@ target_link_libraries(${CURRENT_PROJECT} PUBLIC
|
|||||||
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
|
||||||
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
|
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
|
||||||
|
|
||||||
set(LANGS ${CMAKE_CURRENT_SOURCE_DIR}/languages/en.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/ru.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/uk.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/ja.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/tr.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/zh.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/de.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/fr.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/es.ts
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/languages/pl.ts)
|
|
||||||
|
|
||||||
prepareQM(${CURRENT_PROJECT} ${CMAKE_CURRENT_SOURCE_DIR}/../ "${LANGS}")
|
|
||||||
|
|
||||||
set(QML_IMPORT_PATH ${QML_IMPORT_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/" CACHE STRING "" FORCE)
|
set(QML_IMPORT_PATH ${QML_IMPORT_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/" CACHE STRING "" FORCE)
|
||||||
|
@ -14,19 +14,4 @@
|
|||||||
<file>CrawlModule/DefaultMenu.qml</file>
|
<file>CrawlModule/DefaultMenu.qml</file>
|
||||||
<file>CrawlModule/AbstractMenuView.qml</file>
|
<file>CrawlModule/AbstractMenuView.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="/SnakeTr">
|
|
||||||
<file>languages/de.qm</file>
|
|
||||||
<file>languages/en.qm</file>
|
|
||||||
<file>languages/es.qm</file>
|
|
||||||
<file>languages/fr.qm</file>
|
|
||||||
<file>languages/ja.qm</file>
|
|
||||||
<file>languages/pl.qm</file>
|
|
||||||
<file>languages/ru.qm</file>
|
|
||||||
<file>languages/tr.qm</file>
|
|
||||||
<file>languages/zh.qm</file>
|
|
||||||
<file>languages/uk.qm</file>
|
|
||||||
</qresource>
|
|
||||||
<qresource prefix="/images"/>
|
|
||||||
<qresource prefix="/mesh"/>
|
|
||||||
<qresource prefix="/hdr"/>
|
|
||||||
</RCC>
|
</RCC>
|
||||||
|
@ -54,21 +54,6 @@ ClientApp::~ClientApp() {
|
|||||||
_availableLvls.clear();
|
_availableLvls.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClientApp::initLang() {
|
|
||||||
QLocale locale = QLocale::system();
|
|
||||||
QString customLanguage = QuasarAppUtils::Params::getArg("lang");
|
|
||||||
if(customLanguage.size()) {
|
|
||||||
locale = QLocale(customLanguage);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!QuasarAppUtils::Locales::init(locale, {":/languages/languages/",
|
|
||||||
":/credits_languages/",
|
|
||||||
":/qmlNotify_languages/",
|
|
||||||
":/lv_languages/"})){
|
|
||||||
QuasarAppUtils::Params::log("Error load language : " , QuasarAppUtils::Error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
IWorld *ClientApp::getLastWorld() {
|
IWorld *ClientApp::getLastWorld() {
|
||||||
for (const auto &data : qAsConst(_availableLvls)) {
|
for (const auto &data : qAsConst(_availableLvls)) {
|
||||||
if (data.viewModel && data.viewModel->unlocked()) {
|
if (data.viewModel && data.viewModel->unlocked()) {
|
||||||
@ -120,7 +105,6 @@ bool ClientApp::init(QQmlApplicationEngine *engine) {
|
|||||||
"Error: only enums");
|
"Error: only enums");
|
||||||
|
|
||||||
initCrawlResources();
|
initCrawlResources();
|
||||||
initLang();
|
|
||||||
|
|
||||||
engine->addImportPath(":/CrawlModule/");
|
engine->addImportPath(":/CrawlModule/");
|
||||||
|
|
||||||
|
@ -67,7 +67,6 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
QByteArray initTheme();
|
QByteArray initTheme();
|
||||||
void initLang();
|
|
||||||
IWorld* getLastWorld();
|
IWorld* getLastWorld();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -165,10 +165,10 @@ bool IWorld::prepare() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void IWorld::clearItems() {
|
void IWorld::clearItems() {
|
||||||
QMutexLocker lock(&_ItemsMutex);
|
stop();
|
||||||
|
|
||||||
for (const auto& item : qAsConst(_items)) {
|
while (_items.cbegin() != _items.cend()) {
|
||||||
delete item;
|
removeItem(*_items.cbegin());
|
||||||
}
|
}
|
||||||
|
|
||||||
_items.clear();
|
_items.clear();
|
||||||
@ -202,16 +202,18 @@ void IWorld::addItem(IWorldItem *obj, QList<int> *addedObjectsList) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void IWorld::removeItem(int id, QList<int> *removedObjectsList) {
|
void IWorld::removeItem(int id, QList<int> *removedObjectsList) {
|
||||||
|
removeItem(getItem(id), removedObjectsList);
|
||||||
|
}
|
||||||
|
|
||||||
auto obj = getItem(id);
|
void IWorld::removeItem(IWorldItem* item, QList<int> *removedObjectsList) {
|
||||||
|
|
||||||
if (!obj)
|
if (!item)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Diff diff;
|
Diff diff;
|
||||||
|
|
||||||
// Work wih claster
|
// Work wih claster
|
||||||
if (auto claster = dynamic_cast<Claster*>(obj)) {
|
if (auto claster = dynamic_cast<Claster*>(item)) {
|
||||||
const auto copyOfObjectsList = claster->objects();
|
const auto copyOfObjectsList = claster->objects();
|
||||||
for (auto item : copyOfObjectsList) {
|
for (auto item : copyOfObjectsList) {
|
||||||
if (!item || item->parentClastersCount() > 1)
|
if (!item || item->parentClastersCount() > 1)
|
||||||
@ -226,8 +228,8 @@ void IWorld::removeItem(int id, QList<int> *removedObjectsList) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
removeAtomicItem(obj);
|
removeAtomicItem(item);
|
||||||
diff.removeIds.push_back(id);
|
diff.removeIds.push_back(item->guiId());
|
||||||
|
|
||||||
if (removedObjectsList)
|
if (removedObjectsList)
|
||||||
*removedObjectsList = diff.removeIds;
|
*removedObjectsList = diff.removeIds;
|
||||||
@ -238,7 +240,6 @@ void IWorld::removeItem(int id, QList<int> *removedObjectsList) {
|
|||||||
void IWorld::reset() {
|
void IWorld::reset() {
|
||||||
|
|
||||||
if (_player) {
|
if (_player) {
|
||||||
delete _player;
|
|
||||||
_player = nullptr;
|
_player = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -287,7 +288,7 @@ bool IWorld::removeAtomicItem(int id) {
|
|||||||
_itemsGroup.remove(obj->className(), id);
|
_itemsGroup.remove(obj->className(), id);
|
||||||
_items.remove(id);
|
_items.remove(id);
|
||||||
|
|
||||||
delete obj;
|
obj->deleteLater();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -302,7 +303,7 @@ bool IWorld::removeAtomicItem(IWorldItem *obj) {
|
|||||||
_itemsGroup.remove(obj->className(), obj->guiId());
|
_itemsGroup.remove(obj->className(), obj->guiId());
|
||||||
_items.remove(obj->guiId());
|
_items.remove(obj->guiId());
|
||||||
|
|
||||||
delete obj;
|
obj->deleteLater();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -419,10 +419,19 @@ private:
|
|||||||
* @brief removeItem This method remove item from the world. If the @a id are id of the claster object then its child object will be removed too.
|
* @brief removeItem This method remove item from the world. If the @a id are id of the claster object then its child object will be removed too.
|
||||||
* @param id This is id of removed object.
|
* @param id This is id of removed object.
|
||||||
* @param removedObjectsList This is list of removed objects. Leave this argument nullptr for ignore this argument.
|
* @param removedObjectsList This is list of removed objects. Leave this argument nullptr for ignore this argument.
|
||||||
|
* @note this is wrapper of the removeItem(IWorldItem*, QList<int>*);
|
||||||
*/
|
*/
|
||||||
void removeItem(int id,
|
void removeItem(int id,
|
||||||
QList<int>* removedObjectsList = nullptr);
|
QList<int>* removedObjectsList = nullptr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief removeItem This method remove item from the world. If the @a id are id of the claster object then its child object will be removed too.
|
||||||
|
* @param item This is object than will be removed.
|
||||||
|
* @param removedObjectsList This is list of removed objects. Leave this argument nullptr for ignore this argument.
|
||||||
|
*/
|
||||||
|
void removeItem(IWorldItem* item,
|
||||||
|
QList<int>* removedObjectsList = nullptr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief addAtomicItem This method execure atomic operation of add new item. This method support only atomic objects. (not clasters)
|
* @brief addAtomicItem This method execure atomic operation of add new item. This method support only atomic objects. (not clasters)
|
||||||
* @param obj This is pointer to the atomic object. If the object are claster then it will be added without childs objects.
|
* @param obj This is pointer to the atomic object. If the object are claster then it will be added without childs objects.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user