Colourb.cpp 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #include "precompiled.h"
  2. #include "Colourb.h"
  3. namespace Rocket {
  4. namespace Core {
  5. namespace Lua {
  6. int Colourb__call(lua_State* L)
  7. {
  8. byte red = (byte)luaL_checkint(L,1);
  9. byte green = (byte)luaL_checkint(L,2);
  10. byte blue = (byte)luaL_checkint(L,3);
  11. byte alpha = (byte)luaL_checkint(L,4);
  12. Colourb* col = new Colourb(red,green,blue,alpha);
  13. LuaType<Colourb>::push(L,col,true);
  14. return 1;
  15. }
  16. int Colourb__eq(lua_State* L)
  17. {
  18. Colourb* lhs = LuaType<Colourb>::check(L,1);
  19. Colourb* rhs = LuaType<Colourb>::check(L,2);
  20. lua_pushboolean(L, (*lhs) == (*rhs) ? 1 : 0);
  21. return 1;
  22. }
  23. int Colourb__add(lua_State* L)
  24. {
  25. Colourb* lhs = LuaType<Colourb>::check(L,1);
  26. Colourb* rhs = LuaType<Colourb>::check(L,2);
  27. Colourb* res = new Colourb((*lhs) + (*rhs));
  28. LuaType<Colourb>::push(L,res,true);
  29. return 1;
  30. }
  31. int Colourb__mul(lua_State* L)
  32. {
  33. Colourb* lhs = LuaType<Colourb>::check(L,1);
  34. float rhs = (float)luaL_checknumber(L,2);
  35. Colourb* res = new Colourb((*lhs) * rhs);
  36. LuaType<Colourb>::push(L,res,true);
  37. return 1;
  38. }
  39. //getters
  40. int ColourbGetAttrred(lua_State* L)
  41. {
  42. Colourb* obj = LuaType<Colourb>::check(L,1);
  43. lua_pushinteger(L,obj->red);
  44. return 1;
  45. }
  46. int ColourbGetAttrgreen(lua_State* L)
  47. {
  48. Colourb* obj = LuaType<Colourb>::check(L,1);
  49. lua_pushinteger(L,obj->green);
  50. return 1;
  51. }
  52. int ColourbGetAttrblue(lua_State* L)
  53. {
  54. Colourb* obj = LuaType<Colourb>::check(L,1);
  55. lua_pushinteger(L,obj->blue);
  56. return 1;
  57. }
  58. int ColourbGetAttralpha(lua_State* L)
  59. {
  60. Colourb* obj = LuaType<Colourb>::check(L,1);
  61. lua_pushinteger(L,obj->alpha);
  62. return 1;
  63. }
  64. int ColourbGetAttrrgba(lua_State* L)
  65. {
  66. Colourb* obj = LuaType<Colourb>::check(L,1);
  67. lua_pushinteger(L,obj->red);
  68. lua_pushinteger(L,obj->green);
  69. lua_pushinteger(L,obj->blue);
  70. lua_pushinteger(L,obj->alpha);
  71. return 4;
  72. }
  73. //setters
  74. int ColourbSetAttrred(lua_State* L)
  75. {
  76. Colourb* obj = LuaType<Colourb>::check(L,1);
  77. byte red = (byte)luaL_checkinteger(L,2);
  78. obj->red = red;
  79. return 0;
  80. }
  81. int ColourbSetAttrgreen(lua_State* L)
  82. {
  83. Colourb* obj = LuaType<Colourb>::check(L,1);
  84. byte green = (byte)luaL_checkinteger(L,2);
  85. obj->green = green;
  86. return 0;
  87. }
  88. int ColourbSetAttrblue(lua_State* L)
  89. {
  90. Colourb* obj = LuaType<Colourb>::check(L,1);
  91. byte blue = (byte)luaL_checkinteger(L,2);
  92. obj->blue = blue;
  93. return 0;
  94. }
  95. int ColourbSetAttralpha(lua_State* L)
  96. {
  97. Colourb* obj = LuaType<Colourb>::check(L,1);
  98. byte alpha = (byte)luaL_checkinteger(L,2);
  99. obj->alpha = alpha;
  100. return 0;
  101. }
  102. RegType<Colourb> ColourbMethods[] =
  103. {
  104. { NULL, NULL },
  105. };
  106. luaL_reg ColourbGetters[] =
  107. {
  108. LUAGETTER(Colourb,red)
  109. LUAGETTER(Colourb,green)
  110. LUAGETTER(Colourb,blue)
  111. LUAGETTER(Colourb,alpha)
  112. LUAGETTER(Colourb,rgba)
  113. { NULL, NULL },
  114. };
  115. luaL_reg ColourbSetters[] =
  116. {
  117. LUASETTER(Colourb,red)
  118. LUASETTER(Colourb,green)
  119. LUASETTER(Colourb,blue)
  120. LUASETTER(Colourb,alpha)
  121. { NULL, NULL },
  122. };
  123. }
  124. }
  125. }