Colourb.cpp 3.3 KB

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