2
0

lua_float_setting.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. /*
  2. * Copyright (c) 2012-2014 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #include "float_setting.h"
  6. #include "lua_stack.h"
  7. #include "lua_environment.h"
  8. namespace crown
  9. {
  10. static int float_setting_value(lua_State* L)
  11. {
  12. LuaStack stack(L);
  13. const char* setting_name = stack.get_string(1);
  14. FloatSetting* setting = FloatSetting::find_setting(setting_name);
  15. if (setting != NULL)
  16. {
  17. stack.push_float(setting->value());
  18. }
  19. else
  20. {
  21. stack.push_float(0.0f);
  22. }
  23. return 1;
  24. }
  25. static int float_setting_synopsis(lua_State* L)
  26. {
  27. LuaStack stack(L);
  28. const char* setting_name = stack.get_string(1);
  29. FloatSetting* setting = FloatSetting::find_setting(setting_name);
  30. if (setting != NULL)
  31. {
  32. stack.push_string(setting->synopsis());
  33. }
  34. else
  35. {
  36. stack.push_string("");
  37. }
  38. return 1;
  39. }
  40. static int float_setting_min(lua_State* L)
  41. {
  42. LuaStack stack(L);
  43. const char* setting_name = stack.get_string(1);
  44. FloatSetting* setting = FloatSetting::find_setting(setting_name);
  45. if (setting != NULL)
  46. {
  47. stack.push_float(setting->min());
  48. }
  49. else
  50. {
  51. stack.push_float(0);
  52. }
  53. return 1;
  54. }
  55. static int float_setting_max(lua_State* L)
  56. {
  57. LuaStack stack(L);
  58. const char* setting_name = stack.get_string(1);
  59. FloatSetting* setting = FloatSetting::find_setting(setting_name);
  60. if (setting != NULL)
  61. {
  62. stack.push_float(setting->max());
  63. }
  64. else
  65. {
  66. stack.push_float(0);
  67. }
  68. return 1;
  69. }
  70. static int float_setting_update(lua_State* L)
  71. {
  72. LuaStack stack(L);
  73. const char* setting_name = stack.get_string(1);
  74. const float setting_value = stack.get_float(2);
  75. FloatSetting* setting = FloatSetting::find_setting(setting_name);
  76. if (setting != NULL)
  77. {
  78. (*setting) = setting_value;
  79. }
  80. return 0;
  81. }
  82. void load_float_setting(LuaEnvironment& env)
  83. {
  84. env.load_module_function("FloatSetting", "value", float_setting_value);
  85. env.load_module_function("FloatSetting", "synopsis", float_setting_synopsis);
  86. env.load_module_function("FloatSetting", "min", float_setting_min);
  87. env.load_module_function("FloatSetting", "max", float_setting_max);
  88. env.load_module_function("FloatSetting", "update", float_setting_update);
  89. }
  90. } // namespace crown