diff --git a/init.lua b/init.lua index 8cad266..ddb909c 100644 --- a/init.lua +++ b/init.lua @@ -367,7 +367,7 @@ local fs_model = { w or get(e, "w"), h or get(e, "h"), e.__id, get(e, "mesh"), get(e, "textures"), - get(e, "_rotation") or "", get(e, "_continuous") or "", + get(e, "_rotation") or 0, get(e, "_continuous") or "", get(e, "_mouse_control"), get(e, "_animation") or "", get(e, "_animation_speed") ) @@ -390,7 +390,7 @@ local fs_model = { fs_model.__index = fs_model setmetatable(fs_model, { __call = function(_, x, y, w, h, mesh, textures) - local e = {x = x, y = y, w = w, h = h, mesh = mesh, textures = textures, mouse_control = true} + local e = {x = x, y = y, w = w, h = h, mesh = mesh, textures = textures, mouse_control = true, _styles = {}} e.__id = new_id() setmetatable(e, fs_model) table.insert(ctx, e) @@ -472,9 +472,10 @@ local fs_list = { w = w or get(e, "w") h = h or get(e, "h") - -- These lines will cause `w` and `h` to be interpreted as formspec coordinates rather than numbers of slots. - -- w = w -((w -1) /4) - -- h = h -((h -1) /4) + -- Interpret `w` and `h` as formspec coordinates rather than numbers of slots. + -- This is necessary so that inventories in flex containers will work correctly. + w = w -((w -1) /4) + h = h -((h -1) /4) return string.format("list[%s;%s;%f,%f;%d,%d;%s]", get(e, "location"), get(e, "list"), x or get(e, "x"), y or get(e, "y"), w, h, get(e, "start")) end