Browse Source

Added Lua and AngelScript bindings, refactored according to coding style.

pmatsula 7 years ago
parent
commit
0b36ad6633

+ 15 - 1
Source/Urho3D/AngelScript/Urho2DAPI.cpp

@@ -113,11 +113,13 @@ template <class T> void RegisterStaticSprite2D(asIScriptEngine* engine, const ch
     engine->RegisterObjectMethod(className, "Sprite2D@+ get_sprite() const", asMETHOD(T, GetSprite), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_blendMode(BlendMode)", asMETHOD(T, SetBlendMode), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "BlendMode get_blendMode() const", asMETHOD(T, GetBlendMode), asCALL_THISCALL);
-    engine->RegisterObjectMethod(className, "void SetFlip(bool, bool)", asMETHOD(T, SetFlip), asCALL_THISCALL);
+    engine->RegisterObjectMethod(className, "void SetFlip(bool, bool, bool swapXY = false)", asMETHOD(T, SetFlip), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_flipX(bool)", asMETHOD(T, SetFlipX), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_flipX() const", asMETHOD(T, GetFlipX), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_flipY(bool)", asMETHOD(T, SetFlipY), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "bool get_flipY() const", asMETHOD(T, GetFlipY), asCALL_THISCALL);
+    engine->RegisterObjectMethod(className, "void set_swapXY(bool)", asMETHOD(T, SetSwapXY), asCALL_THISCALL);
+    engine->RegisterObjectMethod(className, "bool get_swapXY() const", asMETHOD(T, GetSwapXY), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_color(const Color&in)", asMETHOD(T, SetColor), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "const Color& get_color() const", asMETHOD(T, GetColor), asCALL_THISCALL);
     engine->RegisterObjectMethod(className, "void set_alpha(float)", asMETHOD(T, SetAlpha), asCALL_THISCALL);
@@ -255,8 +257,17 @@ static void RegisterTileMapDefs2D(asIScriptEngine* engine)
     engine->RegisterObjectMethod("PropertySet2D", "bool HasProperty(const String&in) const", asMETHOD(PropertySet2D, HasProperty), asCALL_THISCALL);
     engine->RegisterObjectMethod("PropertySet2D", "const String& GetProperty(const String&in) const", asMETHOD(PropertySet2D, HasProperty), asCALL_THISCALL);
 
+    engine->RegisterGlobalProperty("const uint FLIP_HORIZONTAL", (void*)&FLIP_HORIZONTAL);
+    engine->RegisterGlobalProperty("const uint FLIP_VERTICAL", (void*)&FLIP_VERTICAL);
+    engine->RegisterGlobalProperty("const uint FLIP_DIAGONAL", (void*)&FLIP_DIAGONAL);
+    engine->RegisterGlobalProperty("const uint FLIP_RESERVED", (void*)&FLIP_RESERVED);
+    engine->RegisterGlobalProperty("const uint FLIP_ALL", (void*)&FLIP_ALL);
+
     RegisterRefCounted<Tile2D>(engine, "Tile2D");
     engine->RegisterObjectMethod("Tile2D", "int get_gid() const", asMETHOD(Tile2D, GetGid), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Tile2D", "bool get_flipX() const", asMETHOD(Tile2D, GetFlipX), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Tile2D", "bool get_flipY() const", asMETHOD(Tile2D, GetFlipY), asCALL_THISCALL);
+    engine->RegisterObjectMethod("Tile2D", "bool get_swapXY() const", asMETHOD(Tile2D, GetSwapXY), asCALL_THISCALL);
     engine->RegisterObjectMethod("Tile2D", "Sprite2D@+ get_sprite() const", asMETHOD(Tile2D, GetSprite), asCALL_THISCALL);
     engine->RegisterObjectMethod("Tile2D", "bool HasProperty(const String&in) const", asMETHOD(Tile2D, HasProperty), asCALL_THISCALL);
     engine->RegisterObjectMethod("Tile2D", "const String& GetProperty(const String&in) const", asMETHOD(Tile2D, HasProperty), asCALL_THISCALL);
@@ -270,6 +281,9 @@ static void RegisterTileMapDefs2D(asIScriptEngine* engine)
     engine->RegisterObjectMethod("TileMapObject2D", "uint get_numPoints() const", asMETHOD(TileMapObject2D, GetNumPoints), asCALL_THISCALL);
     engine->RegisterObjectMethod("TileMapObject2D", "const Vector2& GetPoint(uint) const", asMETHOD(TileMapObject2D, GetPoint), asCALL_THISCALL);
     engine->RegisterObjectMethod("TileMapObject2D", "int get_tileGid() const", asMETHOD(TileMapObject2D, GetTileGid), asCALL_THISCALL);
+    engine->RegisterObjectMethod("TileMapObject2D", "bool get_tileFlipX() const", asMETHOD(TileMapObject2D, GetTileFlipX), asCALL_THISCALL);
+    engine->RegisterObjectMethod("TileMapObject2D", "bool get_tileFlipY() const", asMETHOD(TileMapObject2D, GetTileFlipY), asCALL_THISCALL);
+    engine->RegisterObjectMethod("TileMapObject2D", "bool get_tileSwapXY() const", asMETHOD(TileMapObject2D, GetTileSwapXY), asCALL_THISCALL);
     engine->RegisterObjectMethod("TileMapObject2D", "Sprite2D@+ get_tileSprite() const", asMETHOD(TileMapObject2D, GetTileSprite), asCALL_THISCALL);
     engine->RegisterObjectMethod("TileMapObject2D", "bool HasProperty(const String&in) const", asMETHOD(TileMapObject2D, HasProperty), asCALL_THISCALL);
     engine->RegisterObjectMethod("TileMapObject2D", "const String& GetProperty(const String&in) const", asMETHOD(TileMapObject2D, GetProperty), asCALL_THISCALL);

+ 4 - 1
Source/Urho3D/LuaScript/pkgs/Urho2D/StaticSprite2D.pkg

@@ -5,9 +5,10 @@ class StaticSprite2D : public Drawable2D
 public:
     void SetSprite(Sprite2D* sprite);
     void SetBlendMode(BlendMode mode);
-    void SetFlip(bool flipX, bool flipY);
+    void SetFlip(bool flipX, bool flipY, bool swapXY = false);
     void SetFlipX(bool flipX);
     void SetFlipY(bool flipY);
+    void SetSwapXY(bool swapXY);
     void SetColor(const Color& color);
     void SetAlpha(float alpha);
     void SetUseHotSpot(bool useHotSpot);
@@ -22,6 +23,7 @@ public:
     BlendMode GetBlendMode() const;
     bool GetFlipX() const;
     bool GetFlipY() const;
+    bool GetSwapXY() const;
     const Color& GetColor() const;
     float GetAlpha() const;
     bool GetUseHotSpot() const;
@@ -36,6 +38,7 @@ public:
     tolua_property__get_set BlendMode blendMode;
     tolua_property__get_set bool flipX;
     tolua_property__get_set bool flipY;
+    tolua_property__get_set bool swapXY;
     tolua_property__get_set Color& color;
     tolua_property__get_set float alpha;
     tolua_property__get_set bool useHotSpot;

+ 12 - 0
Source/Urho3D/LuaScript/pkgs/Urho2D/TileMapDefs2D.pkg

@@ -47,9 +47,18 @@ class PropertySet2D
     const String GetProperty(const String name) const;
 };
 
+static const unsigned FLIP_HORIZONTAL;
+static const unsigned FLIP_VERTICAL;
+static const unsigned FLIP_DIAGONAL;
+static const unsigned FLIP_RESERVED;
+static const unsigned FLIP_ALL;
+
 class Tile2D
 {
     int GetGid() const;
+    bool GetFlipX() const;
+    bool GetFlipY() const;
+    bool GetSwapXY() const;
     Sprite2D* GetSprite() const;
     bool HasProperty(const String name) const;
     const String GetProperty(const String name) const;
@@ -68,6 +77,9 @@ class TileMapObject2D
     unsigned GetNumPoints() const;
     const Vector2& GetPoint(unsigned index) const;
     int GetTileGid() const;
+    bool GetTileFlipX() const;
+    bool GetTileFlipY() const;
+    bool GetTileSwapXY() const;
     Sprite2D* GetTileSprite() const;
     bool HasProperty(const String name) const;
     const String GetProperty(const String name) const;

+ 8 - 11
Source/Urho3D/Urho2D/TileMapDefs2D.h

@@ -118,15 +118,12 @@ protected:
     HashMap<String, String> nameToValueMapping_;
 };
 
-/// Tile flipping flag.
-enum TileFlippingFlag2D
-{
-    FLIP_HORIZONTAL = 0x80000000u,
-    FLIP_VERTICAL   = 0x40000000u,
-    FLIP_DIAGONAL   = 0x20000000u,
-    FLIP_RESERVED   = 0x10000000u,
-    FLIP_MASK       = 0xF0000000u
-};
+/// Tile flipping flags.
+static const unsigned FLIP_HORIZONTAL = 0x80000000u;
+static const unsigned FLIP_VERTICAL   = 0x40000000u;
+static const unsigned FLIP_DIAGONAL   = 0x20000000u;
+static const unsigned FLIP_RESERVED   = 0x10000000u;
+static const unsigned FLIP_ALL = FLIP_HORIZONTAL | FLIP_VERTICAL | FLIP_DIAGONAL | FLIP_RESERVED;
 
 /// Tile define.
 class URHO3D_API Tile2D : public RefCounted
@@ -136,7 +133,7 @@ public:
     Tile2D();
 
     /// Return gid.
-    int GetGid() const { return gid_ & ~FLIP_MASK; }
+    int GetGid() const { return gid_ & ~FLIP_ALL; }
     /// Return flip X.
     bool GetFlipX() const { return gid_ & FLIP_HORIZONTAL; }
     /// Return flip Y.
@@ -189,7 +186,7 @@ public:
     const Vector2& GetPoint(unsigned index) const;
 
     /// Return tile Gid.
-    int GetTileGid() const { return gid_ & ~FLIP_MASK; }
+    int GetTileGid() const { return gid_ & ~FLIP_ALL; }
     /// Return tile flip X.
     bool GetTileFlipX() const { return gid_ & FLIP_HORIZONTAL; }
     /// Return tile flip Y.

+ 7 - 7
Source/Urho3D/Urho2D/TmxFile2D.cpp

@@ -150,8 +150,8 @@ bool TmxTileLayer2D::Load(const XMLElement& element, const TileMapInfo2D& info)
                 {
                     SharedPtr<Tile2D> tile(new Tile2D());
                     tile->gid_ = gid;
-                    tile->sprite_ = tmxFile_->GetTileSprite(gid & ~FLIP_MASK);
-                    tile->propertySet_ = tmxFile_->GetTilePropertySet(gid & ~FLIP_MASK);
+                    tile->sprite_ = tmxFile_->GetTileSprite(gid & ~FLIP_ALL);
+                    tile->propertySet_ = tmxFile_->GetTilePropertySet(gid & ~FLIP_ALL);
                     tiles_[y * width_ + x] = tile;
                 }
 
@@ -174,8 +174,8 @@ bool TmxTileLayer2D::Load(const XMLElement& element, const TileMapInfo2D& info)
                 {
                     SharedPtr<Tile2D> tile(new Tile2D());
                     tile->gid_ = gid;
-                    tile->sprite_ = tmxFile_->GetTileSprite(gid & ~FLIP_MASK);
-                    tile->propertySet_ = tmxFile_->GetTilePropertySet(gid & ~FLIP_MASK);
+                    tile->sprite_ = tmxFile_->GetTileSprite(gid & ~FLIP_ALL);
+                    tile->propertySet_ = tmxFile_->GetTilePropertySet(gid & ~FLIP_ALL);
                     tiles_[y * width_ + x] = tile;
                 }
                 ++currentIndex;
@@ -204,8 +204,8 @@ bool TmxTileLayer2D::Load(const XMLElement& element, const TileMapInfo2D& info)
                 {
                     SharedPtr<Tile2D> tile(new Tile2D());
                     tile->gid_ = gid;
-                    tile->sprite_ = tmxFile_->GetTileSprite(gid & ~FLIP_MASK);
-                    tile->propertySet_ = tmxFile_->GetTilePropertySet(gid & ~FLIP_MASK);
+                    tile->sprite_ = tmxFile_->GetTileSprite(gid & ~FLIP_ALL);
+                    tile->propertySet_ = tmxFile_->GetTilePropertySet(gid & ~FLIP_ALL);
                     tiles_[y * width_ + x] = tile;
                 }
                 currentIndex += 4;
@@ -281,7 +281,7 @@ void TmxObjectGroup2D::StoreObject(const XMLElement& objectElem, const SharedPtr
         case OT_TILE:
             object->position_ = info.ConvertPosition(position);
             object->gid_ = objectElem.GetUInt("gid");
-            object->sprite_ = tmxFile_->GetTileSprite(object->gid_ & ~FLIP_MASK);
+            object->sprite_ = tmxFile_->GetTileSprite(object->gid_ & ~FLIP_ALL);
 
             if (objectElem.HasAttribute("width") || objectElem.HasAttribute("height"))
             {