return 0;
}
+int Block_enable_if(lua_State *L)
+{
+ assert(lua_gettop(L) == 2);
+ Block *block = *(Block **)luaL_checkudata(L, 1, "Block");
+
+ if (block->alternatives.size() != 2 ||
+ block->alternatives[1]->effect_type != IDENTITY_EFFECT) {
+ luaL_error(L, "enable_if() called on something that wasn't added with add_optional_effect()");
+ }
+ bool enabled = checkbool(L, 2);
+ block->currently_chosen_alternative = enabled ? 0 : 1;
+ return 0;
+}
+
int Block_disable(lua_State *L)
{
assert(lua_gettop(L) == 1);
int Block_display(lua_State* L);
int Block_choose(lua_State* L);
int Block_enable(lua_State *L);
+int Block_enable_if(lua_State *L);
int Block_disable(lua_State *L);
int Block_set_int(lua_State *L);
int Block_set_float(lua_State *L);
{ "display", Block_display },
{ "choose", Block_choose },
{ "enable", Block_enable },
+ { "enable_if", Block_enable_if },
{ "disable", Block_disable },
{ "set_int", Block_set_int },
{ "set_float", Block_set_float },