diff --git a/src/Client/languages/de.ts b/src/Client/languages/de.ts index b9d8278..968f86b 100644 --- a/src/Client/languages/de.ts +++ b/src/Client/languages/de.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/en.ts b/src/Client/languages/en.ts index 7a4190f..8184365 100644 --- a/src/Client/languages/en.ts +++ b/src/Client/languages/en.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/es.ts b/src/Client/languages/es.ts index b1bd01d..15911d5 100644 --- a/src/Client/languages/es.ts +++ b/src/Client/languages/es.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/fr.ts b/src/Client/languages/fr.ts index 7a4190f..8184365 100644 --- a/src/Client/languages/fr.ts +++ b/src/Client/languages/fr.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/ja.ts b/src/Client/languages/ja.ts index 7a4190f..8184365 100644 --- a/src/Client/languages/ja.ts +++ b/src/Client/languages/ja.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/pl.ts b/src/Client/languages/pl.ts index 7a4190f..8184365 100644 --- a/src/Client/languages/pl.ts +++ b/src/Client/languages/pl.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/ru.ts b/src/Client/languages/ru.ts index 7a4190f..8184365 100644 --- a/src/Client/languages/ru.ts +++ b/src/Client/languages/ru.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/tr.ts b/src/Client/languages/tr.ts index 7a4190f..8184365 100644 --- a/src/Client/languages/tr.ts +++ b/src/Client/languages/tr.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/uk.ts b/src/Client/languages/uk.ts index 7a4190f..8184365 100644 --- a/src/Client/languages/uk.ts +++ b/src/Client/languages/uk.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/languages/zh.ts b/src/Client/languages/zh.ts index 7a4190f..8184365 100644 --- a/src/Client/languages/zh.ts +++ b/src/Client/languages/zh.ts @@ -2,7 +2,7 @@ - AbsLvlWorld + AbstractLevel::AbsLvlWorld This a abstract lvl diff --git a/src/Client/main.cpp b/src/Client/main.cpp index 1dbd6bf..4316e8f 100644 --- a/src/Client/main.cpp +++ b/src/Client/main.cpp @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include @@ -43,7 +43,7 @@ int main(int argc, char *argv[]) client.registerLevel(); #endif - client.registerLevel(); + client.registerLevel(); client.registerLevel(); if (!client.init(&engine)) { diff --git a/src/Core/Crawl/day.h b/src/Core/Crawl/day.h index 37a84e8..ceccfb1 100644 --- a/src/Core/Crawl/day.h +++ b/src/Core/Crawl/day.h @@ -20,8 +20,32 @@ template /** * @brief The Day class is template wrapper for the moon and sun objects. * The moon and sun objects moving around world center for imitation of the day. + * + * ### Integration on the world. + * You need to add one object of this class in the IWorld::initWorldRules method. + * **Example:** + * + * ```cpp + * CRAWL::WorldRule *World::initWorldRules() { + + using Day = CRAWL::Day; + + return new CRAWL::WorldRule { + {0, { + {registerObject(), 1}, + } + }, + {1000, { + {registerObject(), 1}, + } + }, + }; +} + * ``` * @note All objects will be moving around this objects with radius. The Radius by default is 2000. * @note This class automaticly sets ligth force for the light objects. + * + * */ class Day: public IWorldItem, public Claster { diff --git a/src/Core/Crawl/defaultlight.h b/src/Core/Crawl/defaultlight.h index 4764537..50c14e2 100644 --- a/src/Core/Crawl/defaultlight.h +++ b/src/Core/Crawl/defaultlight.h @@ -14,7 +14,9 @@ namespace CRAWL { /** - * @brief The DefaultLight class This is default implementation of the wirld light. + * @brief The DefaultLight class This is default implementation of the world light. + * This object create uniform illumination for all world. + * For integration This object yo worl see the IWorld::initWorldRules method */ class DefaultLight final: public IWorldLight { diff --git a/src/Core/Crawl/iworldlight.h b/src/Core/Crawl/iworldlight.h index 74d33c5..50dac42 100644 --- a/src/Core/Crawl/iworldlight.h +++ b/src/Core/Crawl/iworldlight.h @@ -18,6 +18,28 @@ namespace CRAWL { * You need to create own qml file with light. * * @note If you wnat to create a new qml file the you need to inherit from the Light.qml file. + * + * ### Integration on the world. + * You need to add one object of this class in the IWorld::initWorldRules method. + * **Example:** + * + * ```cpp + * CRAWL::WorldRule *World::initWorldRules() { + + return new CRAWL::WorldRule { + {0, { + {registerObject(), 1}, + } + }, + {1000, { + {registerObject(), 1}, + } + }, + }; +} + * ``` + * + * For integration This object you world see the IWorld::initWorldRules method */ class CRAWL_EXPORT IWorldLight: public ClasterItem { @@ -30,6 +52,7 @@ class CRAWL_EXPORT IWorldLight: public ClasterItem Q_PROPERTY(float shadowBias READ shadowBias WRITE setShadowBias NOTIFY shadowBiasChanged) public: + IWorldLight(const QString& name, const QString& viewTempalte = "qrc:/CrawlModule/Light.qml", QObject *ptr = nullptr); diff --git a/src/CrawlAbstractLvl/CrawlAbstractLevelAssets b/src/CrawlAbstractLvl/CrawlAbstractLevelAssets index 07295d0..f6554cb 160000 --- a/src/CrawlAbstractLvl/CrawlAbstractLevelAssets +++ b/src/CrawlAbstractLvl/CrawlAbstractLevelAssets @@ -1 +1 @@ -Subproject commit 07295d0e4ea37e7e17b1eca717b6ab6d1f5c8c60 +Subproject commit f6554cb8c46e82f876961a0be781f06de42b0034 diff --git a/src/CrawlAbstractLvl/AbstractLvl.qrc b/src/CrawlAbstractLvl/abstractLevel.qrc similarity index 100% rename from src/CrawlAbstractLvl/AbstractLvl.qrc rename to src/CrawlAbstractLvl/abstractLevel.qrc diff --git a/src/CrawlAbstractLvl/abstractlvl.cpp b/src/CrawlAbstractLvl/abstractlevel.cpp similarity index 68% rename from src/CrawlAbstractLvl/abstractlvl.cpp rename to src/CrawlAbstractLvl/abstractlevel.cpp index 69b9ff7..7ed9c2d 100644 --- a/src/CrawlAbstractLvl/abstractlvl.cpp +++ b/src/CrawlAbstractLvl/abstractlevel.cpp @@ -5,14 +5,14 @@ //# of this license document, but changing it is not allowed. //# -#include "abstractlvl.h" +#include "abstractlevel.h" #include "abslvlworld.h" -AbstractLvl::AbstractLvl() { +AbstractLevel::AbstractLevel() { } -CRAWL::IWorld *AbstractLvl::world() { +CRAWL::IWorld *AbstractLevel::world() { initAbstractLvlResources(); - return new AbsLvlWorld(); + return new AbstractLvl::AbsLvlWorld(); } diff --git a/src/CrawlAbstractLvl/abstractlvl.h b/src/CrawlAbstractLvl/abstractlevel.h similarity index 69% rename from src/CrawlAbstractLvl/abstractlvl.h rename to src/CrawlAbstractLvl/abstractlevel.h index 4c4d527..a6641d8 100644 --- a/src/CrawlAbstractLvl/abstractlvl.h +++ b/src/CrawlAbstractLvl/abstractlevel.h @@ -5,24 +5,24 @@ //# of this license document, but changing it is not allowed. //# -#ifndef ABSTRACTLVL_H -#define ABSTRACTLVL_H +#ifndef ABSTRACTLEVEL_H +#define ABSTRACTLEVEL_H #include #include "abstractlvl_global.h" -inline void initAbstractLvlResources() { Q_INIT_RESOURCE(AbstractLvl); +inline void initAbstractLvlResources() { Q_INIT_RESOURCE(abstractLevel); Q_INIT_RESOURCE(absLvlRes);} /** * @brief The AbstractLvl class This is test lvlv wraper of the crawl */ -class CRAWL_ABSTRACT_LEVEL_EXPORT AbstractLvl: public CRAWL::ILevel { +class CRAWL_ABSTRACT_LEVEL_EXPORT AbstractLevel: public CRAWL::ILevel { public: - AbstractLvl(); + AbstractLevel(); // ILevel interface public: CRAWL::IWorld *world() override; }; -#endif // ABSTRACTLVL_H +#endif // ABSTRACTLEVEL_H diff --git a/src/CrawlAbstractLvl/private/abslvlcontrol.cpp b/src/CrawlAbstractLvl/private/abslvlcontrol.cpp index 5f515a2..3859fb5 100644 --- a/src/CrawlAbstractLvl/private/abslvlcontrol.cpp +++ b/src/CrawlAbstractLvl/private/abslvlcontrol.cpp @@ -7,6 +7,8 @@ #include "abslvlcontrol.h" +namespace AbstractLvl { + AbsLvlControl::AbsLvlControl() { } @@ -14,3 +16,5 @@ AbsLvlControl::AbsLvlControl() { QString AbsLvlControl::initQmlView() const { return "qrc:/qml/AbsLvlControl.qml"; } + +} diff --git a/src/CrawlAbstractLvl/private/abslvlcontrol.h b/src/CrawlAbstractLvl/private/abslvlcontrol.h index d44236a..e44ff9f 100644 --- a/src/CrawlAbstractLvl/private/abslvlcontrol.h +++ b/src/CrawlAbstractLvl/private/abslvlcontrol.h @@ -9,6 +9,8 @@ #define ABSLVLCONTROL_H #include "Crawl/defaultcontrol.h" +namespace AbstractLvl { + /** * @brief The AbsLvlControl class This controll support custom camera-ratation functions. */ @@ -21,4 +23,6 @@ public: }; +} + #endif // ABSLVLCONTROL_H diff --git a/src/CrawlAbstractLvl/private/abslvlsnake.cpp b/src/CrawlAbstractLvl/private/abslvlsnake.cpp index 9153c7a..90d7ed3 100644 --- a/src/CrawlAbstractLvl/private/abslvlsnake.cpp +++ b/src/CrawlAbstractLvl/private/abslvlsnake.cpp @@ -8,12 +8,24 @@ #include "abslvlsnake.h" #include "abslvlsnakeitem.h" -AbsLvlSnake::AbsLvlSnake(): Snake("Snake") { +namespace AbstractLvl { + +AbsLvlSnake::AbsLvlSnake(): Snake(AUTO_CLASS_NAME) { setBreakingForce(50); setAngularVelocity(100); setColor("#90faaa"); setMash("qrc:/mesh/meshes/SnakePatternHead.mesh"); - setSize({2,1,1}); + setStaticRotation(QQuaternion::fromEulerAngles(0,0,90)); + setSize({1,1,1}); + + setScales({{0, 0.9}, + {0.6, 1}, + {1, 0.5}}); + + setLengthBetwinItemsMap({{0, 3}, + {0.001, 0.9}, + {0.6, 1}, + {1, 0.5}}); registerItemType(); } @@ -21,3 +33,5 @@ AbsLvlSnake::AbsLvlSnake(): Snake("Snake") { void AbsLvlSnake::onIntersects(const IWorldItem *item) { Q_UNUSED(item); } + +} diff --git a/src/CrawlAbstractLvl/private/abslvlsnake.h b/src/CrawlAbstractLvl/private/abslvlsnake.h index 7f91e38..3b07aec 100644 --- a/src/CrawlAbstractLvl/private/abslvlsnake.h +++ b/src/CrawlAbstractLvl/private/abslvlsnake.h @@ -10,6 +10,8 @@ #include "Crawl/snake.h" +namespace AbstractLvl { + class AbsLvlSnake : public CRAWL::Snake { Q_OBJECT @@ -23,4 +25,6 @@ protected: }; +} + #endif // ABSLVLSNAKE_H diff --git a/src/CrawlAbstractLvl/private/abslvlsnakeitem.cpp b/src/CrawlAbstractLvl/private/abslvlsnakeitem.cpp index 35b7a68..0de3831 100644 --- a/src/CrawlAbstractLvl/private/abslvlsnakeitem.cpp +++ b/src/CrawlAbstractLvl/private/abslvlsnakeitem.cpp @@ -7,7 +7,9 @@ #include "abslvlsnakeitem.h" -AbsLvlSnakeItem::AbsLvlSnakeItem():CRAWL::SnakeItem("AbstractSnakeItem") { +namespace AbstractLvl { + +AbsLvlSnakeItem::AbsLvlSnakeItem():CRAWL::SnakeItem(AUTO_CLASS_NAME) { setMash("qrc:/mesh/meshes/SnakePatternBody.mesh"); setColor("#20aa9a"); setSize({1,1,1}); @@ -17,3 +19,5 @@ void AbsLvlSnakeItem::onIntersects(const IWorldItem *item) { Q_UNUSED(item); } + +} diff --git a/src/CrawlAbstractLvl/private/abslvlsnakeitem.h b/src/CrawlAbstractLvl/private/abslvlsnakeitem.h index 10143c5..77bea76 100644 --- a/src/CrawlAbstractLvl/private/abslvlsnakeitem.h +++ b/src/CrawlAbstractLvl/private/abslvlsnakeitem.h @@ -10,6 +10,8 @@ #include "Crawl/snakeitem.h" +namespace AbstractLvl { + class AbsLvlSnakeItem: public CRAWL::SnakeItem { Q_OBJECT @@ -22,4 +24,6 @@ protected: void onIntersects(const IWorldItem *item) override; }; +} + #endif // ABSLVLSNAKEITEM_H diff --git a/src/CrawlAbstractLvl/private/abslvlworld.cpp b/src/CrawlAbstractLvl/private/abslvlworld.cpp index 48dce95..2fd1def 100644 --- a/src/CrawlAbstractLvl/private/abslvlworld.cpp +++ b/src/CrawlAbstractLvl/private/abslvlworld.cpp @@ -13,9 +13,14 @@ #include #include "Crawl/iworlditem.h" +#include "Crawl/defaultlight.h" + + +namespace AbstractLvl { AbsLvlWorld::AbsLvlWorld() { - setCameraReleativePosition({0, 0, 100}); + setCameraReleativePosition({20,0,100}); + setCameraRatation(QQuaternion::fromEulerAngles({0,0,0})); } CRAWL::IPlayer *AbsLvlWorld::initPlayer() const { @@ -23,10 +28,27 @@ CRAWL::IPlayer *AbsLvlWorld::initPlayer() const { } CRAWL::WorldRule *AbsLvlWorld::initWorldRules() { + return new CRAWL::WorldRule { - {0, {{registerObject(), 1}}}, - {10, {{registerObject(), 1}}}, - {20, {{registerObject(), 1}}} + + {0, + { + {registerObject(), 10}, {registerObject(), 1} + } + }, + + {20, + { + {registerObject(), 10}, {registerObject(), 1} + } + }, + + {30, + { + {registerObject(), 40}, {registerObject(), 1} + } + } + }; } @@ -58,3 +80,5 @@ CRAWL::IControl *AbsLvlWorld::initUserInterface() const { void AbsLvlWorld::initPlayerControl(CRAWL::IControl *control) { return IWorld::initPlayerControl(control); } + +} diff --git a/src/CrawlAbstractLvl/private/abslvlworld.h b/src/CrawlAbstractLvl/private/abslvlworld.h index 3369bf7..773336b 100644 --- a/src/CrawlAbstractLvl/private/abslvlworld.h +++ b/src/CrawlAbstractLvl/private/abslvlworld.h @@ -10,6 +10,8 @@ #include "Crawl/iworld.h" +namespace AbstractLvl { + class AbsLvlWorld : public CRAWL::IWorld { // IWorld interface @@ -17,6 +19,7 @@ public: AbsLvlWorld(); + CRAWL::IPlayer *initPlayer() const override; CRAWL::WorldRule *initWorldRules() override; QString initHdrBackGround() const override; @@ -29,4 +32,6 @@ public: }; +} + #endif // ABSLEVELWORLD_H diff --git a/src/CrawlAbstractLvl/private/baff.cpp b/src/CrawlAbstractLvl/private/baff.cpp index 5fb6243..47b5e7f 100644 --- a/src/CrawlAbstractLvl/private/baff.cpp +++ b/src/CrawlAbstractLvl/private/baff.cpp @@ -7,12 +7,18 @@ #include "baff.h" -Baff::Baff() : IWorldItem("Baff") { +namespace AbstractLvl { + +Baff::Baff() : IWorldItem(AUTO_CLASS_NAME) { setMash("qrc:/mesh/meshes/Baff.mesh"); setSize({1,1,1}); + setColor("#00ff00"); + setposition({200, 0, 200}); setZ(0); } void Baff::onIntersects(const IWorldItem *item) { Q_UNUSED(item); } + +} diff --git a/src/CrawlAbstractLvl/private/baff.h b/src/CrawlAbstractLvl/private/baff.h index faad420..7377a38 100644 --- a/src/CrawlAbstractLvl/private/baff.h +++ b/src/CrawlAbstractLvl/private/baff.h @@ -9,6 +9,7 @@ #define OBJBAFF_H #include "Crawl/iworlditem.h" +namespace AbstractLvl { class Baff: public CRAWL::IWorldItem { public: @@ -19,4 +20,6 @@ protected: void onIntersects(const IWorldItem *item) override; }; +} + #endif // OBJBAFF_H diff --git a/src/CrawlAbstractLvl/private/obstacleblue.cpp b/src/CrawlAbstractLvl/private/obstacleblue.cpp index 23c4bed..72259bc 100644 --- a/src/CrawlAbstractLvl/private/obstacleblue.cpp +++ b/src/CrawlAbstractLvl/private/obstacleblue.cpp @@ -6,13 +6,18 @@ //# #include "obstacleblue.h" +namespace AbstractLvl { -ObstacleBlue::ObstacleBlue() : IWorldItem("OstacleBlue") { +ObstacleBlue::ObstacleBlue() : IWorldItem(AUTO_CLASS_NAME) { setMash("qrc:/mesh/meshes/ObstacleBlue.mesh"); setSize({1,1,1}); + setColor("#00bfff"); + setposition({250, 0, 200}); setZ(0); } void ObstacleBlue::onIntersects(const IWorldItem *item) { Q_UNUSED(item); } + +} diff --git a/src/CrawlAbstractLvl/private/obstacleblue.h b/src/CrawlAbstractLvl/private/obstacleblue.h index 7f260ed..1506373 100644 --- a/src/CrawlAbstractLvl/private/obstacleblue.h +++ b/src/CrawlAbstractLvl/private/obstacleblue.h @@ -9,6 +9,7 @@ #define OBJOBSTACLEBLUE_H #include "Crawl/iworlditem.h" +namespace AbstractLvl { class ObstacleBlue: public CRAWL::IWorldItem { public: @@ -19,4 +20,6 @@ protected: void onIntersects(const IWorldItem *item) override; }; +} + #endif // OBJOBSTACLEBLUE_H diff --git a/src/CrawlAbstractLvl/private/obstaclered.cpp b/src/CrawlAbstractLvl/private/obstaclered.cpp index 09fbb0a..60a42c5 100644 --- a/src/CrawlAbstractLvl/private/obstaclered.cpp +++ b/src/CrawlAbstractLvl/private/obstaclered.cpp @@ -7,12 +7,17 @@ #include "obstaclered.h" -ObstacleRed::ObstacleRed() : IWorldItem("ObstacleRed") { +namespace AbstractLvl { + +ObstacleRed::ObstacleRed() : IWorldItem(AUTO_CLASS_NAME) { setMash("qrc:/mesh/meshes/ObstacleRed.mesh"); setSize({1,1,1}); + setColor("#ff1927"); setZ(0); } void ObstacleRed::onIntersects(const IWorldItem *item) { Q_UNUSED(item); } + +} diff --git a/src/CrawlAbstractLvl/private/obstaclered.h b/src/CrawlAbstractLvl/private/obstaclered.h index 5d443cd..c82c017 100644 --- a/src/CrawlAbstractLvl/private/obstaclered.h +++ b/src/CrawlAbstractLvl/private/obstaclered.h @@ -9,6 +9,7 @@ #define OBJOBSTACLERED_H #include "Crawl/iworlditem.h" +namespace AbstractLvl { class ObstacleRed: public CRAWL::IWorldItem { public: @@ -19,4 +20,6 @@ protected: void onIntersects(const IWorldItem *item) override; }; +} + #endif // OBJOBSTACLERED_H