| 638 | } |
| 639 | |
| 640 | static int paint(lua_State *L) |
| 641 | { |
| 642 | df::coord pos; |
| 643 | OperationMode mode; |
| 644 | |
| 645 | lua_settop(L, 8); |
| 646 | Lua::CheckDFAssign(L, &pos, 1); |
| 647 | if (!pos.isValid()) |
| 648 | luaL_argerror(L, 1, "invalid cursor position"); |
| 649 | mode.brush = (BrushType)luaL_checkoption(L, 2, NULL, brush_name); |
| 650 | mode.paint = (PaintMode)luaL_checkoption(L, 3, NULL, paint_mode_name); |
| 651 | mode.amount = luaL_optint(L, 4, 7); |
| 652 | if (mode.amount < 0 || mode.amount > 7) |
| 653 | luaL_argerror(L, 4, "invalid liquid amount"); |
| 654 | if (!lua_isnil(L, 5)) |
| 655 | Lua::CheckDFAssign(L, &mode.size, 5); |
| 656 | mode.setmode = (ModifyMode)luaL_checkoption(L, 6, ".", modify_mode_name); |
| 657 | mode.flowmode = (ModifyMode)luaL_checkoption(L, 7, "+", modify_mode_name); |
| 658 | mode.permaflow = (PermaflowMode)luaL_checkoption(L, 8, ".", permaflow_name); |
| 659 | |
| 660 | lua_pushboolean(L, df_liquids_execute(*Lua::GetOutput(L), mode, pos)); |
| 661 | return 1; |
| 662 | } |
| 663 | |
| 664 | DFHACK_PLUGIN_LUA_COMMANDS { |
| 665 | DFHACK_LUA_COMMAND(paint), |
nothing calls this directly
no test coverage detected